Indiscripts

Automating InDesign since 2009

InDesign 20 Goes to MathML — Part 2

In the first part of this paper, we explored the basics of MathML and how it's incorporated into InDesign's Math Expressions panel. For script developers working with ExtendScript and/or UXP, the underlying SVG structure requires further investigation. This will lead us to intriguing issues and potential challenges…

Continue reading...

How to Update/Reinstall SmartSort Properly

SmartSort dialog box preview, v.1.22.

Continue reading...

Finally Fixing the “Show Hidden Characters” Menu Action [UPDATE]

InDesign does not always show the hidden characters when you ask it to Show Hidden Characters! Why? Because the active document window may then be in some preview Screen Mode that prohibits the appearance of invisible characters. It's a bit silly, but that's how it is. Well, that's how it was until today. A simple startup script will solve this little paradox…

Continue reading...

MATE for InDesign: Once Upon a Time in the Revolution!

The chess game has just begun between Achilles and the turtles!

Continue reading...

The Great Folder Fiasco: A Tale of InDesign 20.1 and macOS

As a developer or InDesign scripter, you know how important it is to stay up-to-date on the latest changes and issues affecting your work. Here we'll tackle an obscure, low-level issue affecting InDesign 20.1 on macOS…

Continue reading...

Best Claquos Themes for your Pie Charts

15 impactful themes to professionalize your pie charts in InDesign

Continue reading...

SmartSort 1.21 for InDesign CC/CS6/CS5/CS4

SmartSort, free script for InDesign CC/CS6/CS5/CS4SmartSort is a free InDesign script that sorts paragraphs or cells. It produces a lexicographic order consistent with the language considered. Version 1.21 fixes an issue related to case discrimination in various ‘tailored’ languages. It also deals with the letter ⟨ё⟩ in Russian.

Continue reading...

InDesign Script: Show Me the Rivers

Did you notice the river in the text?My colleague Mikhail Ivanyushin has just developed a nice utility that detects and highlights text ‘rivers’, these stacks of oblique or vertical spaces which form randomly within a typographic composition and “make it ugly.” Chasing such road accidents is a fetish sport. So if you don't have time to damage your eyes, here's a more comfortable solution…

Continue reading...

HurryCover³ | Top 8 Best Tips & Tricks

HurryCover (v3) - Advanced Script for InDesign CC/CS6/CS5/CS4, macOS/WindowsAs the user manual is still being finalized, there may be some little-known or underrated HurryCover 3 features that you may have missed. Want to save time when designing advanced book covers in InDesign? Here are the best shortcuts and hidden tricks…

Continue reading...

InDesign 20 Goes to MathML — Part 1

The latest version of InDesign provides an internal solution for formatting math formulas. The underlying technology is a UXP WebView panel (Math Expressions) interacting with MathJax, a popular JavaScript package capable of processing maths in various formats. In this case, MathML as input and SVG as output…

Continue reading...

InDesign 2025 — Everything Works Fine!

Good news! All essential indiscripts tools run fine in InDesign 20.0 (macOS/Windows)

Let's Play with JS Array Objects (in ExtendScript)

IdExtenso provides a new ArrayAs2D module that unleashes the hidden strengths of ExtendScript operators. With this toy, you can now write code that adds, multiplies, evaluates 2D points or vectors. For example, if you develop an InDesign script based on Bézier curves or working on polygonal paths, all calculations of points, distances, normalized vectors, etc. become wonderfully compact…

Continue reading...

IndexMatic³ | Hidden Treasures of the ~format Directive

IndexMatic³ Expert for InDesign CC/CS6/CS5/CS4)IndexMatic users have long been faced with the following problem: when the client provides a list of index entries and adds extra information (birthdates, etc), how can the query list be adjusted accordingly? Introduced with iX³, the ~format directive offers an efficient solution…

Continue reading...

Make `&` (almost) Behave as a Reference Operator

Suppose you have an ExtendScript class (I mean, “prototype”) whose methods essentially return new object instances. As an obvious example, consider the concat or slice methods of Array.prototype. They always produce a new array rather than reworking the existing one. There are situations where you want to update the calling object —and make this explicit in the code— while still leveraging the methods already available…

Continue reading...

HurryCover³ | Make Book Covers & Jackets in InDesign

It’s official! Building a book cover in InDesign will no longer be a geometric nightmare. The new edition of HurryCover is intended to be a definitive answer to the puzzle of complex templates: with or without flaps, with or without wrap, whether you need a hinge margin or a physical spine gap, the template generated by HurryCover³ remains 100% resizable, even if you have already set up the graphic elements of your artwork…

Continue reading...

Indiscripts Temporary Archives [UPDATE]

Some scripts we designed in the past for InDesign CS/CS2/CS3—and even CS4—are no longer available or maintained. But, from time to time we still receive queries for these old files—such as IndexBrutal, IndexMatic, Claquos, Equalizer, HurryCover, BookBarcodeCS3… Here is a special repository dedicated to frustrated users.

Continue reading...

HurryCover³ Quick Tour

InDesignScripts | Clean List Timeline on Twitter/X

Go to InDesignScripts from your Twitter/X account! A clean list focusing on InDesign, scripts and more.

@indiscripts | @indiscripts/lists

Private Investigation into Style Overrides

Myths and facts about text formatting overrides in InDesign…

Continue reading...

Built-In String Features in IdExtenso

If you are one of the happy users of the IdExtenso scripting framework for InDesign, you may have noticed — or overlooked! — that this enhanced version of ExtendScript provides many additional services, including in the primitive areas of the language. For example, any string immediately has functionalities like trim(), codePointAt(), toUTF8(), which aren't available in the root syntax. Let's take a closer look at this toolbox…

Continue reading...

- Page 1 of 13