I have been wanting this feature for a long time. I started setting type before personal computers were around and while most things are much better with the computer, a few things that could be done on a tradutional typesetting machine were better.
Distributing text columns evenly is one of them. With the system I used, you type in a command (called 'insert space') and the machine would calculate how much space was needed and distribute it evenly. If you wanted twice as much space in one place you would type in 2 insertspaces, etc.
It seams like this would be an easy calculation for a personal computer but I have not seen it as a feature in and page layout program that I have worked with (other then as some kind of script which I would not feel comfortable using).
I quess it is not something that most people are looking for because I am replying to this 2008 question in 2012. Could it be in CS6? I have my fingers crossed.
rmiller@twill.com wrote:
I quess it is not something that most people are looking for because I am replying to this 2008 question in 2012. Could it be in CS6? I have my fingers crossed.
As you said, it's not exactly a high traffic request. Uncross your fingers or you'll get cramps -- no change in this area fro CS6.
Did you try the scripts?
Scripts are easy, and very powerful, and you don't need any programming knowledge to use them. Just install them (see How to install scripts in InDesign | InDesignSecrets) and double-click the name inthe scripts panel to run them.
You don't have to use the ESTK as suggested above, a plain text editor like Notepad or Text edit is fine (be sure to save as plain text, but add the .jsx extension). Since these scripts are very old, there's a chance they won't work in newer versions, but that can usually be overcome by making a subfolder in the scripts folder with the correct version name and placing an older script into the subfolder. In the case of the second script that would be a folder named "Version 4.0 Scripts" (without the quotes, but case-sensitive). I have no idea waht version Gerald's script was written for, but I've removed the <br \> codes and replaced them with the correct line breaks below if you want to try it:
if (app.documents.length != 0){
if (app.selection.length == 1){
var a = app.selection[0].constructor.name;
switch (app.selection[0].constructor.name){
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "TextStyleRange":
case "Paragraph":
case "TextColumn":
case "Story":
main();
break;
default:
alert("No text selected.");
break;
}
}
else{
alert("Nothing selected.");
}
}
else{
alert("No document opened.");
}
function main() {
var allSel = app.selection;
var nPara = allSel[0].paragraphs.length;
var allPara = allSel[0].paragraphs;
for (var m=0; m < allPara.length; m++) {
var aSel = allPara[m];
var myTabList = aSel.tabStops;
var lastX = myTabList[-1].position;
var myStep = myWidth / myTabList.length;
for (var n=(myTabList.length-1); n >= 0; n--) {
myTabList[n].position = myWidth+n;
}
for (var n = 0; n<myTabList.length; n++) {
myTabList[n].position = (n+1) * myStep;
}
}
}
Thanks, I'll give it a try and let you know. If it doesn't work I guess
I'm back where I started - wouldn't know how to start to adjust it.
Maybe I'll have to wait for CS6.5 or 7 or ... your right about the
cramps, I'll just hope.
Rob Miller
Twill Printing
22 Russo Place
Berkeley Heights, NJ 07922
tel 908.665.1700 Ext 20
fax 908.665.9717
The only script I tried was the one you sent in your reply.
Just tried the other one and it kind of works. I guess you set one row, use the script and then continue. It would be nice if you could select all of the copy and run the script. It would then determine wich was the widest column in each row and distribute the whole thing. With this script, I guess you would set a dummy line first using the longest line of each column, run the script and then use those settings to set the rest of the job. Could be better but this is better than what I was doing.
Any recommendations for learning the scripting language?
Thanks for your help.
You should head over to the scripting forum: InDesign Scripting
Peter, you forgot one line
(But without it I got another error than R. did -- it just might be his CS5.5 vs. my CS4.)
Add this
var myWidth = lastX - aSel.paragraphs[0].leftIndent;
on the blank line in between here:
var lastX = myTabList[-1].position;
<----- (hey! you forgot me!)
var myStep = myWidth / myTabList.length;
Note 1. You might still have to place this in a "Version 6.0" folder for it to work in CS5.5.
Note 2. It distributes existing tabs equally spaced. Was that actually what you wanted?
Note 3. Huh. No "Code Syntax Highlight" in the General Forum, eh? And also no "Use Advanced Editor" button. "Who needs that anyway?", Adobe Forum Maintenance?
I tried adding the new line and still get the same error as above in line 36 (var lastX = myTabList[-1].position;).
"Note 2. It distributes existing tabs equally spaced. Was that actually what you wanted?"
Yes, I do want to distribute the columns equally. Ideally, I would like to type the block of copy with tabs (unformatted), slelect that whole block and run the script. The script would analyze all of the text, find the longest line in each column (regardless of which row it was in) and adjust the column width accordingly. It would also allow me to inticate what kind of tab should be placed in each position. It sounds like a lot but it is the kind of thing that was available in typesetting systems almost 30 years ago.
The script that I did get to work (Darin's?) just works on one line and only drops in left tabs. Having to work on one line would be OK - I could manually find the longest columns and use that as a dummy line to setup the tabs but having only left tabs defeats the purpose. I would have to manually change them after the fact and then re-adjust the positions - not much different then what I am doing now.
Is this too much to ask for a script?
WHAT!!!!????? There is no such fuction???????????
I am new to InDesign, I am being forced, kicking and screaming by Adobe to use InDesign because they have done away with Freehand. Adobe are evil corporate monpolising monsters.
I am using CS4 for which there is no dedicated support, as there is for CS5 and 6 - thanks for nothing, Adobe.
I need to quickly and easily evenly distribute tabs on a wine list. Having searched non-existent "Support", I read here with dismay that:
"There is no such function. It would have to be made into a feature request for a future version of InDesign."
Are you kidding me? To be able to quickly and easily evenly distribute tabs is NOT available??? A feature request???!!!! InDesign is to be taken seriously, to be able to distribute tabs evenly has to be availabe, as it is in Quark. There are heaps of other basic, simple tools/functions that are also missing, such as being able to collapse a text box to automatically fit the content - on BOTH dimensions, a piece of cake in Freehand - this only works on one dimension in InDesign.
InDesign is a joke.
How's this for a feature request:
Bring the text handling of InDesign up to the same standards as Freehand: powerful, easy, logical, straightforward, non-clunky, uncomplicated, efficient.
S. Jolliffe
(One very angry, die-hard Freehand devotee since '95!)
Illustrator is the replacement for Freehand, not InDesign.
I'm not clear what you're attempting to do from the screenshot, but
there is a "repeat tab" option in the flyout menu of the tab palette.
This will create tabs at equal intervals for the entire width of the
text frame.
There is also a distribute objects function, which will move objects so
they are a fixed distance apart, with various options.
Ariel
North America
Europe, Middle East and Africa
Asia Pacific