SmartSort 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.
Tag : Algorithms
SmartSort 1.21 for InDesign CC/CS6/CS5/CS4
December 04, 2024 | SmartSort | en | fr
What’s New in IndexMatic³ [UPDATE]
March 06, 2023 | IndexMatic³ | en | fr
Imagine you can extract, quantify, analyze and index every bit of text from your InDesign documents, in any language, based on your own criteria: a predefined word list, a set of fine-tuned regular expressions, such or such character styles or containers. This tool has just been born and is called IndexMatic³.
The Magic Parent Bounding Box
August 04, 2022 | Tips | en
Geometry in InDesign can get deadly complex. Take a document, create a frame, insert a table, change a particular cell into a “graphic cell,” convert its inner object into an ellipse, play with strokes, rotate and scale the object, transform the parent frame in the fanciest way. Then ask yourself the question: what are the exact coordinates, shape or area of the final table cell?…
The Case of Converting InDesign Inches to Ciceros
July 26, 2022 | Tips | en
While working on his Measurements scripts, my colleague Mikhail Ivanyushin reported me weird biases related to units conversion. In particular, he observed a discrepancy between InDesign's display and direct results from ExtendScript when addressing inches-to-ciceros translation…
SmartSort 1.17 for InDesign CC/CS6/CS5/CS4
April 06, 2022 | SmartSort | en | fr
Fast, free, and feliz, SmartSort is an InDesign script that alphabetizes word lists (paragraphs or cells) with respect to the language used in your text. It's as easy as Right Click ▸ SmartSort… ▸ Sort! This new version essentially provides stability fixes. Download/update right now, and enjoy ;-)
The Definitive Tutorial on Bézier Curves
November 03, 2021 | Extras | en | fr
Freya Holmér premiered in August a grandiose tutorial video, The Beauty of Bézier Curves, that every developer and/or graphic designer should watch! Especially if you are interested in the internal coding of outlines and path points in InDesign…
Page Range Formatter [UPDATE]
August 17, 2021 | Tips | en
Given an unordered set of page numbers—e.g. {13, 9, 25, 12, 11, 8}
—we often have to compute and output a range specification in the form "8-9; 11-13; 25"
. While this topic has been already discussed in the InDesign scripting forum, I'd like to explore today a slightly different approach…
The Tricky Side of `string.replace( )` in ExtendScript
September 14, 2020 | Tips | en
When you invoke myString.replace(...)
in pure JavaScript, the “string being examined” is and remains myString during the whole operation. ExtendScript offers a slightly different mechanism that may unexpectedly alter the output string…
SmartSort 1.05 | New Design, New Options
August 13, 2020 | SmartSort | en
Many thanks to Peter Kahrel for his valuable suggestions and samples regarding word-by-word and letter-by-letter systems. SmartSort 1.05 is out in a fresh skin with more detailed—and relevant—options. (To upgrade from the beta release, quit InDesign, replace the old SmartSort.jsx
file and restart the application.)
InDesign Scripting Forum Roundup #13
June 06, 2019 | Snippets | en
Here are nine useful InDesign scripts extracted from one year of debate in the scripting branch of forums.adobe.com. There are snippets for every taste—text, layout, graphics, geometry, UI—so take a look!
FillBleed | Fix Image Frames so they Meet the Bleed Edge [Update]
July 11, 2018 | Snippets | en | fr
How to Shuffle Characters the Right Way
January 15, 2018 | Snippets | en | fr
While fine-tuning a layout you usually need to put some dummy text in your template. The common way to fill a frame with lorem-ipsum-like data is to call Type > Fill with Placeholder Text
. But sometimes you already have an actual text in place, and then your missing feature is the ability to scramble existing characters. Thanks to IdExtenso we can write a nice and fast scrambler, based on Markov chains…
On Dichotomic Divide-and-Conquer Algorithms
March 12, 2016 | Tips | en
From what I observed, InDesign scripters do not naturally resort to the dichotomic (or binary) search algorithm when it comes to find a numeric solution to problems as wide as adjusting frame bounds to some constraint, determining an optimal text size, or simply accessing a needle in the haystack. Yet the binary search approach is nearly always the best. So let's make it more popular…
Reconsidering Array.sort( ) in ExtendScript/JavaScript — Part 2
May 20, 2015 | Tips | en
In my previous post I introduced some key concepts and tools for benchmarking Array.sort()
and took you through the “standard model” of optimizing the callback function. We also emphasized that, of course, it is impossible to go faster than the native method. If these clues made you sit up and take notice, it's time to go one step further…
Reconsidering Array.sort( ) in ExtendScript/JavaScript — Part 1
May 13, 2015 | Tips | en
The pattern array.sort(compareFunc)
is widely used by JavaScript programmers when elements being sorted are not supposed to represent basic strings in the sense of UTF16 ordered character sequences. In particular, sorting numbers forces you to provide that stupid custom compareNumbers
routine which, in most cases, just looks like function(x,y){return x-y}
. And even when you have to sort actual strings, there are countless situations where the default Unicode code point order is inappropriate. But a question arises: what is the performance cost of using a non-native comparison routine?