V-Justify: Control Text Frame Vertical Justification in InDesign
Reclaim control over InDesign’s vertical justification with the V-Justify add-on!
Often, a layout requires text to reach the bottom of the frame it’s in. This is called “vertical justification.” Like horizontal justification, it is achieved by adding space between paragraphs, and possibly between lines, until the last line is flush with the bottom margin.
(If you’re already cringing, you’re probably a book typesetter! Traditional book typesetting frowns on the idea of adding space between paragraphs, and, worse, between lines, to achieve vertical justification. The practice is known as “carding” or “feathering” (see here). The proper way to achieve a balanced page in traditional typography is by making sure all typographic elements on a page are a multiple of the baseline grid and to run spreads long or short as needed. However, even in books this is not always possible (think block quotes with tighter leading than body text, for example). And in newspapers and journals, labels, and many other items of print, it is neither possible nor desirable. V-Justify is intended for such cases!)
InDesign has a “vertical justification” feature. But it is so basic it is basically useless! InDesign’s vertical justification fails because:
- There is no way to specify how much space is allowed before or after a particular paragraph style. Instead, equal space is added between all paragraphs.
- InDesign only adds, never reduces, space. Even when a tiny space reduction is all that’s needed for a great-looking page, InDesign fails!
- InDesign justifies all pages (when using object styles), even at chapter ends! Typically there is no need for vertical justification on a chapter’s last page.
These shortcomings mean wasting time, repeatedly tweaking space-before and space-after settings to get a balanced page. The manual guesswork is tedious and inaccurate!
Wouldn’t it be nice if InDesign could do all this for you? Now it can!
V-Justify: The Solution
V-Justify is the new Id-Extras add-on for Adobe InDesign. It gives full control of text-frame vertical justification. Use it to balance text in frames with all the options you need for best results!
With V-Justify, specify minimum and maximum space-before and space-after values for each paragraph style in the document.
For instance, allow InDesign to add space before, but not after, a subhead, so the distance between the subhead and the following text is fixed. Or allow a little extra space after body paragraphs, but more flexibility around subheadings, block quotes or displayed equations.
You are in control!
V-Justify works with: single- or multi-column text frames, non-rectangular text frames, and frames with anchored and non-anchored objects. It also works with frames with footnotes and tables. It may not work properly with frames that have long tables or footnotes flowing onto the next page (but you can choose not to run it on those pages).
If there is not enough leeway for proper vertical justification, tell V-Justify only then to use InDesign’s built-in vertical justification to add extra space between lines, or unlimited space between paragraphs. Or tell V-Justify to disable InDesign’s vertical justification feature altogether, if you prefer to fix the page yourself.
Finally, because V-Justify can detect chapter endings, you can tell it not to justify the ends of chapters.
V-Justify is easy to use. Run it, and the screen above appears. Go through the relevant paragraph styles and assign your desired minimum and maximum values for the space-before and space-after settings for each paragraph style in turn. Choose the paragraph style from the displayed list of styles, or, in your InDesign document, place the text cursor in text styled with the appropriate paragraph style and adjust the min and max settings in the V-Justify window.
Select whether to run the script on the selected frame only, or any of the other scope options, and click the Justify button. V-Justify will go through each text frame in the selected scope and increase or decrease the space as needed and as allowed in order to justify the text in the frame vertically in the best possible way.
If you have already justified some frames, and would like to reset the values back to default, click the Reset button.
Note: Clicking the Reset button will reset to the “desired value” only paragraphs modified by V-Jusitfy.
V-Justify measurements are all in points, but if you set InDesign’s ruler-units to millimeters you can work in millimeters instead.
There are 3 option checkboxes which I will explain below:
“Do not justify the last frame of a chapter” – V-Justify uses some basic rules to figure out if a given frame is the last frame of a chapter (it mainly checks to see whether the last character in the frame is a frame break or page break character or similar, or if the first paragraph in the next frame has been set to start on the next page, etc.). If you want V-Justify to ignore the last frames of chapters or sections in your document and not attempt to vertically justify them, check this box.
“Also use InDesign’s own vertical justification” – V-Justify does not use InDesign’s built-in vertical justification feature at all. However, for a few reasons, V-Justify may not be able to successfully justify your page. This is usually because the maximum values defined by the user are not sufficient to allow the last line of text to reach to the bottom of the text frame. Sometimes, though, with non-rectangular frames, or frames with objects that have text-wrap applied to them, V-Jusitfy may not be able to entirely justify the page (although it will normally always be pretty close; and usually, no matter how complicated the page, it succeeds). In these cases you may want to allow V-Jusitfy to resort to InDesign’s built-in vertical justification. If so, check this box.
“Enable no-UI mode” – Once you’ve finished setting up the min and max values of all the paragraph styles in the document, the V-Justify window is no longer really needed, it’s just a waste of screen space. If you check this option it makes it possible to run V-Justify without the UI appearing: Place you text cursor in some text (but do not actually select any text, just place the flashing cursor in it). Now run V-Justify and it will apply vertical justification to the frame the cursor is in without displaying the UI. To show the UI again, select nothing, or select some text or a text frame and run V-Justify.
Many thanks to Marc Autret of indiscripts.com for his help in developing the main algorithm powering this script.
To purchase the full version of V-Justify for only $99, click the “Buy Now” button. Your product and serial numbers will be available for instant download when you complete the purchase.
If you are not satisfied with V-Justify for any reason, simply let us know within 30 days of purchase for a full refund.