InReview: V-Justify
Learn about a solution that makes bottom aligning pages in InDesign quick and easy.

This article appears in Issue 144 of InDesign Magazine.
This solution from ID-Extras vastly improves on InDesign’s built-in vertical justification features.
In a perfect world, everyone would design pages using a baseline grid, and clients would allow us to design heads, subheads, body text, pull quotes, and all the other bits and pieces of a layout so that they align to that grid. In this scenario, everything would line up evenly between columns—and the text would “bottom out” perfectly, reaching to the last baseline on every page.
But in the real world, things aren’t that easy. Art directors or clients often want a little more space before headings, or a bit of extra space before and after a list, or other little tweaks that violate the strict baseline grid. And yet they’ll still demand the text line up evenly at both the top and bottom of each page or column! The only solution is to “cheat” a bit with the settings for space before and after paragraphs. This is the exact scenario that V-Justify from Id-Extras is designed to address.
InDesign has a vertical justification feature in the Text Frame Options dialog box that is meant to help, but the feature is only half-baked. Although it will add space between paragraphs to make text reach the bottom of a column, it adds the same amount of space around every paragraph. You can’t specify which paragraphs get the extra space. Also, the feature will only add, not subtract, space and always adds that space equally above and below each paragraph. So, in sum, this feature isn’t very useful in a complex document, like a book, magazine, or manual.
V-Justify, on the other hand does all that the built-in vertical justification feature doesn’t and more, in an easy-to-understand, straightforward manner.
Requirements and Installation
Remarkably, V-Justify works with all versions of InDesign going back through CS5 (macOS and Windows). V-Justify will work on any type of InDesign layout, but it’s really only useful if most of the text in the frame(s) you are trying to justify has been formatted with paragraph styles. If you aren’t using paragraph styles consistently, V-Justify won’t do you much good.
V-Justify is supplied as a single script file, which installs like any other InDesign script. Once installed, it appears in InDesign’s Scripts panel. When you double-click the script, a single dialog box appears and lists all the document’s paragraph styles (Figure 1).

Figure 1. When you run V-Justify, a single dialog box displays, listing all the paragraph styles present in the document.
How the Script Works
V-Justify works on a frame-by-frame basis, but you have options. You can justify all the frames in a document, only selected frames, only the frames in a specific story, or the frames from the current text cursor position to the end of the story. It justifies the text in the specified frames by adding or removing space before or after paragraphs that are formatted with specific paragraph styles.
To specify how much space you will allow V-Justify to remove or add before or after each paragraph, you select a style on the left side of the V-Justify dialog box. Then, on the right, you’ll see the Space Before and Space After values that are defined in the style, as well as fields to enter Minimum and Maximum values. A hyphen in a field indicates that the setting is inactive and won’t be adjusted. For example, if there is a hyphen in the Space Before: Minimum field for a style named Head 1, V-Justify won’t reduce the Space Before amount for Head 1 paragraphs. When you do enter a Minimum or Maximum value, V-Justify will adjust the Space Before or Space After within the specified range as it attempts to vertically justify the text.
Here’s a simple example: Say you have a frame that contains several paragraphs, all of which are assigned either the Body Text or Head 1 paragraph styles. In the V-Justify dialog box, you can see the Space Before and Space After values that are defined for the selected paragraph style (Figure 2). In this example, the Head 1 style has a target value of 36 pts before and 6 pts after.

Figure 2. The V-Justify dialog displays the Space Before and Space After values as defined by the selected paragraph style and lets you specify a minimum and maximum limit for each.
Based on the values I entered as Minimum and Maximum limits for Space Before, V-Justify will try to justify the text in each frame by a combination of two actions:
- reducing or increasing the Space Before value of each Head 1 paragraph a little at a time, but to no less than 30 points and no more than 44 points
- increasing the Space After value, but to no more than 7 points. The Space After value will not be reduced, because of the hyphen displayed in the Minimum field.
After clicking Justify, you end up with paragraphs that are still formatted with styles but that have local overrides for Space Before and Space After applied (Figure 3). If V-Justify is unable to vertically justify the text within the limits imposed, it just makes it as close as possible.

Figure 3. Placing the text cursor in a Head 1 paragraph and hovering over a plus in the Paragraph Styles panel after running V-Justify reveals that Space Before and Space After overrides have been applied to the paragraph.
Of course, the real power of V-Justify is that you can set these limits for several paragraph styles, and V-Justify will consider all the limits applied to all the different paragraphs in the frame and try to come up with the best result. This is based on the premise that usually it’s best to do a series of tiny adjustments to many paragraphs, because this should be less noticeable than making large adjustments to a few paragraphs.
After entering your options in the dialog box, you click the Justify button to activate the process. The dialog box closes, and V-Justify attempts to justify the text. If the results are not what you want, run the script again, adjust the values, and click the Justify button again. In other words, this process doesn’t run in the background (which would likely be way too slow, providing poor performance). Instead, you need to run the script repeatedly if you want to adjust the values or if text is added or removed from your layout. I do wish the dialog were non-modal, meaning that it would remain on-screen after you click Justify, making it easier to use repeatedly (much like InDesign’s Find/Change dialog can remain on-screen while you continue to work).
Undoing results
V-Justify has the potential to change a large amount of text in a long document in a pretty dramatic way, but what if things go wrong? What if there is a bug in the script or you enter values that don’t produce the results you intended?
There are three ways to recover if you don’t get the results you expect:
- You can always choose File > Undo. Even though the script iterates through lots of spacing combinations to try to achieve the best vertical justification, you can reverse the entire process with a single Undo.
- You can run the script again and click the Reset button. This will reset any paragraphs that were adjusted the last time the script was run back to their initial values.
- You can run the script again with Minimum and Maximum set to the same values as the Space Before or Space After values defined in the paragraph style.
Without these three options for returning things back to normal, I’d be nervous about making such an automatic, sweeping modification to a long document. With them, you can be confident.
Other options
The V-Justify dialog box contains a couple of other useful options, too. Selecting Do Not Justify the Last Frame of the Chapter instructs V-Justify to ignore anything that it determines to be the last frame of a “chapter,” because these would typically not be justified. It determines the last frame in a chapter by checking for a frame break or page break character as the last character in a frame, among other things.
Remember, V-Justify only justifies by changing the space before and after paragraphs. But what if you want to add the ability to adjust the leading within paragraphs to the mix? When you select the Enable Text-Frame Vertical Justification option, V-Justify activates InDesign’s vertical justification feature in Text Frame Options, which adds leading adjustment to complete the vertical justification if it is needed.
Performance
I tested V-Justify with a variety of complex layout situations, and it worked very well. Because the script logic is frame-based, it makes no difference if a multi-column page is created with multiple text frames or as a single text frame with multiple columns.
The results were consistent and as expected with frames containing paragraphs that spanned columns, columns with automatic column rules, inline and anchored graphics, and even text with automatic footnotes (Figure 4).

Figure 4. A three-column layout before (left) and after (right) running V-Justify
Of course, no matter how good something is, I always want more! For example, V-Justify ignores the Space Between Paragraphs Using Same Style setting that Adobe introduced in InDesign CC 2019. This spacing value is retained when the script runs, but the script isn’t able to use it to help with justification.
I also found myself wishing for some quicker ways to enter the minimums and maximums for space before and after. If you need to make a lot of changes to a lot of styles, this can become tedious. It would be nice to be able to select multiple paragraph styles on the left and change their values all at once. A quick way to set all the values for a selected style to ‘ignore’ would be helpful too.
Do You Need It?
Do you need V-Justify? If you even occasionally need to create a document that contains multiple columns or pages that must all be vertically justified, there’s no other way to achieve that goal that doesn’t involve considerable pain and suffering. V-Justify makes quick work of this task, potentially paying for itself the very first time you use it. It’s also easy to learn and use. As someone who’s used to working on complex layouts for fussy clients, I highly recommend it.
V-Justify
- Id-Extras
- $99 perpetual license
- InDesign CS5 or later (macOS and Windows)
- Rating: 5 Stars
Commenting is easier and faster when you're logged in!
Recommended for you

Illustrator Downloadable: Tropical Shadow Overlay Kit
[memb_has_any_tag not=not tagid="282,643,655,657,1664"] Downloadables are an exc...

Illustrator Downloadable: Summer Citrus Pattern Set
Downloadables are an exclusive benefit for CreativePro members! (Not a member ye...

InDesign Downloadable: Tables SuperGuide
Downloadables are an exclusive benefit for CreativePro members! (Not a member ye...