TotalRescale | Last-Minute Layout Adjustment
December 16, 2011 | Snippets | en | fr

Sometimes you want to slightly translate or scale an entire layout while maintaining the page size and a strict relationship between the pages and the contents. Of course you can take advantage of the Layout Adjustment feature if the layout is allowed to reflow in a framework based on new page margins and dimensions. But this is of no use if the layout is fixed in itself. What we would like is a general way of repositioning and/or scaling the whole piece on every page just as we transform an image in Photoshop.
A solution would be to manually group the objects and to repeat the desired transformations in seeking to match the final margins, but you can guess that this is not the option we recommend! A much more powerful tool is available, although inaccessible by regular InDesign means. In short, we change the inner scale and the inner coordinates of the pages without actually resizing nor moving them. (This is only possible in CS5 and CS5.5.)
Technical note. — The beginnings of TotalRescale germinated in an article I posted in August 2011, “Transforming spreads in InDesign”. Meanwhile I discovered an interesting property: unlike the Spread view, the Page view can be transformed independently of page items. Imagine you have the power to temporarily stretch an elastic page without distorting the objects it contains. When you print or export that page to its real-world size (i.e. not stretched), the objects become shrunken compared to their apparent size on the screen. That's basically how the script works. But I use an additional trick to prevent scaling from being perceptible on the screen: an inverse transformation is applied to the spreads. This way the user sees the actual size of the pages (unchanged) and the actual size of the objects at the end of the process. It seems to me a excellent illustration of combining spread space and page space transformations.
How to use TotalRescale
TotalRescale.js only works in InDesign CS5/CS5.5.
1) Start ID and open a document.
2) From the Pages panel, select the master page that exposes the margins of your current layout—these margins represent the original reference area.

3) Create a rectangle on the master page. The bounds of this object will delimit the final area, i.e. the final margins of the layout. (The rectangle can be larger or smaller than the reference area, it can be proportional or non-proportional to the reference area, etc.)
4) Select the rectangle and run TotalRescale.js from your Scripts panel.
If you are working on a facing-pages document, the script offers you the option to apply a symmetrical template with respect to left-hand and right-hand page sides (as shown below). Instead you could choose to uniformly apply the template disregarding page sides.

Disclaimer
1) As usual, THIS SCRIPT IS PURELY AND OVERTLY EXPERIMENTAL AND I DO NOT GUARANTEE it will work properly in any environment or configuration. Always make a backup of your document before you try.
2) TotalRescale relies on transformations that you CANNOT DIRECTLY OPERATE OR REVERSE FROM THE USER INTERFACE. Use this script when you have to adjust the final layout before exporting a document. It is highly inadvisable to use this script during the creation process.
3) Once the transformation is applied, InDesign may display dimensions, measurements or text size in RELATIVE units. This primarily depends on the “Transformations are Totals” option, and other similar settings.
4) This script DOES NOT support layouts whose pages vary in dimensions. It is assumed that the size of the pages is the same in the entire document.
5) When Baseline Grid alignement is activated, some lines MAY UNEXPECTEDLY SHIFT on the next page. This is very likely a rounding error caused by InDesign itself.
Comments
Pas mal quand le client se rend compte qu'il t'a filé un mauvais format… ET que la deadline reste la même (CQFD :-)
Format des marges puisque on ne change pas le format de page
Concrètement je pense que ça peut être utile quand le client n'avait pas anticipé l'épaisseur du bouquin (changement de papier, de « main », de pagination) et qu'on se retrouve avec un « petit fond » trop faible vis-à-vis de l'ouverture du volume. Ou bien au contraire quand on a un problème de massicotage. Enfin bref, quand on a besoin pour une raison ou pour une autre de réajuster les marges en dernière minute. C'est là que TotalRescale pourrait servir.
Je pense qu'il peut aussi régler des erreurs de conception, voire des erreurs de manip dont le maquettiste ne se sort plus, genre dissymétrie ou inversion malencontreuse des gabarits en vis-à-vis. On peut aussi bien translater l'empagement que changer son échelle, ou les deux…
Mais attention: dans tous les cas le script préserve le FORMAT initial des pages. C'est justement là que se situe son originalité. Il modifie le « rapport d'échelle » et/ou l'origine des marges sans jamais toucher aux dimensions externes.
PS. — J'avais prévu de faire une traduction en français du billet, mais comme mes productions n'intéressent plus grand-monde aujourd'hui, j'avoue que je tire une petite flemme sur le versant hexagonal ;-) Quoi qu'il en soit, l'interface du script est bilingue EN/FR.
Merci d'être passé.
@+
Marc
"J'avais prévu de faire une traduction en français du billet, mais comme mes productions n'intéressent plus grand-monde aujourd'hui"
Vous plaisantez j'espère !! :(
Vos productions ont le mérite d'être connues et diffusées…
Nous sommes d'ailleurs plusieurs "Hexagonaux" à le faire…
J'"oblige" par exemple l'utilisation de scripts et automatisation dans certains des sujets que je donne en cours de design graphique et d'édition.
Vos productions font le bonheur de pas mal d'étudiants…
Merci donc pour eux (et pour moi qui les utilises également) !! ;)
[I]"J'avais prévu de faire une traduction en français du billet, mais comme mes productions n'intéressent plus grand-monde aujourd'hui"[/I]
Euh… sur quoi vous basez-vous pour affirmer cela ?
Personnellement, j'ai programmé une "surveillance" sur indiscript afin d'être informé de chaque nouveauté.
Parfois par manque de temps, plus souvent par fainéantise, je ne commente pas, mais en tout cas, le site est dans mes favoris…
Au plaisir :)
@Mandrake @Reskator
Merci les amis. Vous avez raison de me rappeler que ce site a aussi des aficionados fidèles, et je ne voudrais pas donner l'impression de cracher dans la soupe. Je plaide coupable. Petit coup de fatigue de mon côté.
Allez, recharge des batteries ;-)
Amitié,
Marc
Bonjour Marc,
En anglais comme en français, tes travaux sont toujours dignes d'intérêts.
Personnellement, je maîtrise mieux le français. Désolé ;-)
À tous,
Vos vœux sont exaucés (c'est de saison !) : billet désormais lisible en français.
J'en profite pour rappeler que si un article bilingue ne s'affiche pas dans la langue adéquate — réglage qui dépend de la localisation de votre navigateur — il est toujours possible de basculer vers l'autre langue en cliquant sur l'étiquette « FR » (ou « EN ») située en ligne de sous-titre.
@+,
Marc
Merci à toi Marc.
;-)
Merci, c'est toujours plus agréable de lire dans sa langue natale…
*****************************************
PS. — J'avais prévu de faire une traduction en français du billet, mais comme mes productions n'intéressent plus grand-monde aujourd'hui, j'avoue que je tire une petite flemme sur le versant hexagonal ;-) Quoi qu'il en soit, l'interface du script est bilingue EN/FR.
*****************************************
Certes, je ne viens sur votre site qu'irrégulièrement, mais je n'en reste pas moins fidèle... C'est d'ailleurs, en tant que fidèle utilisateur (donc) de vos scripts géniaux que je suis venu sur votre site ce jour vous présenter tous mes bons voeux pour cette nouvelle année...
Au plaisir toujours d'utiliser vos productions, parfois de visiter votre site et y lire avec délectation vos articles toujours passionnants..
;-)
Merci à tous pour vos appréciations, vœux et encouragements.
@+
Marc