Indiscripts

Automating InDesign since 2009

Tag : ExtendScript

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...

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...

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...

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 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...

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...

Scripting: How to Position InDesign Guides

Now, can you tell what X and Y are?InDesign guides are funny creatures. Whether or not they are assigned to a page via the fitToPage property, they remain firmly anchored to the geometry of the spread they belong to. The most mysterious thing is their location attribute, which does not obey all the principles ordinarily weighing on rulers coordinates. This article explores how to determine correct positions in all scenarios…

Continue reading...

What's New in IdExtenso 2.31008

IdExtenso: ExtendScript Framework for InDesign Ninjas

Continue reading...

« Optimiser InDesign pour les documents longs »

Optimiser InDesign pour les documents longs (avec les scripts et le GREP), par Laurent TournierUn nouveau livre-arsenal de Laurent Tournier vient de paraître : Optimiser InDesign pour les documents longs — Avec les scripts et le GREP. Si vous pensiez à une aimable mise en jambes agrémentée de quelques points de doctrine, vous êtes loin du compte ! Le PDF que l'auteur nous a communiqué en primeur recense plus de 200 scripts du monde entier, tous testés en situation, et le même volume de commandes GREP couvrant les problématiques les plus étendues. L'idée était déjà géniale en soi, mais la mise en œuvre, par sa densité et sa précision, fait tomber à la renverse…

Continue reading...

Meet Kasyan Servetsky, InDesign Wizard!

At the same time graphic designer, illustrator, prepress expert and scripting guru, Kasyan Servetsky has become one of the most active resource sharers in our microcosm. The InDesign community knows him well (but not enough for my taste!) because of the dozens of great utilities he has created over the past two decades: converters, batch processors, link managers, image resizers, font collectors, and many other gems. Let's step into the lab of this productivity freak…

Continue reading...

15 InDesign Scripts and Snippets You May Have Missed

Indiscripts Goodies are available on GitHub too!If you visit this website from time to time, you know that it contains a plethora of free InDesign scripts, but you may not know that other cool nuggets are regularly open-sourced in our GitHub repository called IdGoodies. The latter being hardly documented, here is an overview of some scripts—and interesting code snippets—you will find there…

Continue reading...

The Hard Problem of Quantified Alternatives in ExtendScript

In most cases, ExtendScript regular expressions cannot digest the (a|b)+ scheme. This bug is not new, but it's worth defining its symptoms and extent. This article presents a very simple problem, with no known solution to date…

Continue reading...

Porting your InDesign Script into IdExtenso — Step 5

In this episode we seriously improve the relationship between user settings and user interface. As a result, we get a smart InDesign script that both remembers the choices the user made within the session and adapts to the context, that is, whether the script should target the selection or a larger scope…

Continue reading...

Porting your InDesign Script into IdExtenso — Step 4

The previous episode dealt with modularity in IdExtenso, now is the time to take full advantage of it! Today we will see how to add a dialog interacting with user options. You will be amazed at how quickly this component fits into the script…

Continue reading...

Porting your InDesign Script into IdExtenso — Step 3

In this episode, you will learn how to arrange your code so that it fits into IdExtenso's “modular space.” Modularity is a key term when it comes to maintaining a large-scale project. Even if our sample script is not in itself of pharaonic complexity, we will transform it, as an exercise, into a pure module…

Continue reading...

- Page 1 of 3