Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 8
mineure

21 Avr '18, 03:01

Pathe's gravatar image

Pathe
7.6k49210252

La doc de `twoup` m'a fait retrouver `psnup`, grâce auquel j'ai facilement retrouvé `pstops`. Tout d'abord j'ai, pour produire un fichier PostScript identique (au langage près) au fichier .pdf de 104 pages, exécuté la commande suivante : $ pdf2ps fichier-a5.pdf ficher-a5.ps Puis j'ai fait subir les pires outrages au fichier nouvellement créé : $ pstops "2:0L@1(21cm,0)+1L@1(21cm,14.85cm)" fichier-a5.ps fichier-a4.ps [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] Wrote 52 pages, 693744 bytes Ça génère bien 52 pages A4 à partir de 104 pages au format A5. Le paramètre important est ici le « 1 » qui suit l'arobase dans la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)` : il indique que l'échelle ne change pas — *1* pour *1*. Oui, ladite séquence est complexe. Mais la documentation d'icelle existe, est fort claire, est accessible en ligne, par exemple [ici](https://www.commandlinux.com/man-page/man1/pstops.1.html) ainsi qu'accessible via la commande linux `man pstops` (que la page internet indiquée ci-dessus ne fait que reproduire — les pages de `man`, c'est du contenu gratuit pour certains sites en mal de trucs à raconter). La séquence est de la forme `[modulo:]specs` où `modulo` est le *nombre de pages logiques* traitées pour obtenir *une page physique*. `specs` est *dans mon cas* de la forme `specs+specs` : vous aurez remarqué le signe `+` au milieu de la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)`. Il est logique qu'il y ait *deux* spécifications puisque `modulo` vient de spécifier que je traite *deux* pages ; la commande `pstops` les appelle `0` et `1` à chaque passage : elle se met en œuvre pour les deux premières pages, termine son travail... et fait son ménage : elle remet ses propres compteurs à zéro. Si j'avais fait précéder ces chiffres d'un signe moins (`-`), la commande aurait inversé *l'ordre* des pages logiques traitées. Chaque numéro de page est suivi d'un `L` (pour *left* en anglais) : cela signifie que cette page sera pivotée vers la gauche. Chaque `L` est suivi d'une arobase suivie du chiffre 1 : cela précise l'échelle, ici *un* pour *un*. Si j'avais voulu caser, mettons, huit pages A5 *logiques* dans une page A4 *physique*, ça ne rentrerait pas : je pourrais donc réduire celles-ci (et les réorganiser dans la page — mais ça c'est une autre histoire, que la commande *pstops* permet aussi, mais ce n'est pas mon présent propos), je pourrais donc réduire celles-ci en écrivant `@0.25` : essayez ! Restent de la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)` les parenthèses : elles indiquent tout simplement où mettre le coin *inférieur gauche* de mes *pages logiques* dans ma *page physique*. En effet, la commande `pstops` considère que le point *origine* d'une page — logique *ou* physique — est son coin inférieur gauche, un peu comme si l'on posait le petit côté de la page sur l'axe des abscisses d'un repère orthonormé à deux dimensions, en prenant bien soin que celle-ci soit plaquée contre celui des ordonnées : son coin inférieur gauche aurait alors `(0, 0)` comme coordonnées. Sauf que là, il faut bien mettre le point `(0, 0)` de ma première page *logique* à 21 centimètres du point origine de la page *physique* ; et pour que ma deuxième page *logique* ne soit pas placée *sur* la première, elle est décalée en hauteur, à 14,85 cm sur l'axe des ordonnées. D'où les deux paramètres de positionnement : `(21cm,0)` et `(21cm,14.85cm)`. Tout s'explique. En résumé : - la séquence est de la forme `[modulo:]specs` où `modulo` est le *nombre de pages logiques* traitées pour obtenir *une page physique* ; - `specs` est de la forme `[-]pageno[L][R][U][H][V][@scale][(xoff,yoff)]`. Les crochets y représentent le fait qu'est *optionnel* le paramètre qui y est enserré. C'est un certain Angus J. C. Duggan qui a rédigé ça entre 1991 et 1995. Ben merci Andrus : Angus : des années plus tard, elle *roxe* toujours, ta commande ! **Quiz :** que se passe-t-il si j'exécute sur un fichier de plusieurs pages A4 les séquences suivantes : $ pstops "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)" fichier-origine-A4.ps fichier-destination-A4-1sur2.ps $ pstops "4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)" fichier-origine-A4.ps fichier-destination-A4-2sur2.ps Réponse dans la page de *man* !
cliquez ici pour masquer/afficher la révision 7
mineure

20 Avr '18, 10:48

Pathe's gravatar image

Pathe
7.6k49210252

La doc de `twoup` m'a fait retrouver `psnup`, grâce auquel j'ai facilement retrouvé `pstops`. Tout d'abord j'ai, pour produire un fichier PostScript identique (au langage près) au fichier .pdf de 104 pages, exécuté la commande suivante : $ pdf2ps fichier-a5.pdf ficher-a5.ps Puis j'ai fait subir les pires outrages au fichier nouvellement créé : $ pstops "2:0L@1(21cm,0)+1L@1(21cm,14.85cm)" fichier-a5.ps fichier-a4.ps [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] Wrote 52 pages, 693744 bytes Ça génère bien 52 pages A4 à partir de 104 pages au format A5. Le paramètre important est ici le « 1 » qui suit l'arobase dans la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)` : il indique que l'échelle ne change pas — *1* pour *1*. Oui, ladite séquence est complexe. Mais la documentation d'icelle existe, est fort claire, est accessible en ligne, par exemple [ici](https://www.commandlinux.com/man-page/man1/pstops.1.html) ainsi qu'accessible via la commande linux `man pstops` (que la page internet indiquée ci-dessus ne fait que reproduire — les pages de `man`, c'est du contenu gratuit pour certains sites en mal de trucs à raconter). La séquence est de la forme `[modulo:]specs` où `modulo` est le *nombre de pages logiques* traitées pour obtenir *une page physique*. `specs` est *dans mon cas* de la forme `specs+specs` : vous aurez remarqué le signe `+` au milieu de la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)`. Il est logique qu'il y ait *deux* spécifications puisque `modulo` vient de spécifier que je traite *deux* pages ; la commande `pstops` les appelle `0` et `1` à chaque passage : elle se met en œuvre pour les deux premières pages, termine son travail... et fait son ménage : elle remet ses propres compteurs à zéro. Si j'avais fait précéder ces chiffres d'un signe moins (`-`), la commande aurait inversé *l'ordre* des pages logiques traitées. Chaque numéro de page est suivi d'un `L` (pour *left* en anglais) : cela signifie que cette page sera pivotée vers la gauche. Chaque `L` est suivi d'une arobase suivie du chiffre 1 : cela précise l'échelle, ici *un* pour *un*. Si j'avais voulu caser, mettons, huit pages A5 *logiques* dans une page A4 *physique*, ça ne rentrerait pas : je pourrais donc réduire celles-ci (et les réorganiser dans la page — mais ça c'est une autre histoire, que la commande *pstops* permet aussi, mais ce n'est pas mon présent propos), je pourrais donc réduire celles-ci en écrivant `@0.25` : essayez ! Restent de la séquence `2:0L@1(21cm,0)+1L@1(21cm,14.85cm)` les parenthèses : elles indiquent tout simplement où mettre le coin *inférieur gauche* de mes *pages logiques* dans ma *page physique*. En effet, la commande `pstops` considère que le point *origine* d'une page — logique *ou* physique — est son coin inférieur gauche, un peu comme si l'on posait le petit côté de la page sur l'axe des abscisses d'un repère orthonormé à deux dimensions, en prenant bien soin que celle-ci soit plaquée contre celui des ordonnées : son coin inférieur gauche aurait alors `(0, 0)` comme coordonnées. Sauf que là, il faut bien mettre le point `(0, 0)` de ma première page *logique* à 21 centimètres du point origine de la page *physique* ; et pour que ma deuxième page *logique* ne soit pas placée *sur* la première, elle est décalée en hauteur, à 14,85 cm sur l'axe des ordonnées. D'où les deux paramètres de positionnement : `(21cm,0)` et `(21cm,14.85cm)`. Tout s'explique. En résumé : - la séquence est de la forme `[modulo:]specs` où `modulo` est le *nombre de pages logiques* traitées pour obtenir *une page physique* ; - `specs` est de la forme `[-]pageno[L][R][U][H][V][@scale][(xoff,yoff)]`. Les crochets y représentent le fait qu'est *optionnel* le paramètre qui y est enserré. C'est un certain Angus J. C. Duggan qui a rédigé ça entre 1991 et 1995. Ben merci Andrus : des années plus tard, elle *roxe* toujours, ta commande ! **Quiz :** que se passe-t-il si j'exécute sur un fichier de plusieurs pages A4 les séquences suivantes : $ pstops "4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)" fichier-origine-A4.ps fichier-destination-A4-1sur2.ps $ pstops "4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)" fichier-origine-A4.ps fichier-destination-A4-2sur2.ps Réponse dans la page de *man* !
cliquez ici pour masquer/afficher la révision 6
mineure

20 Avr '18, 10:47

Pathe's gravatar image

Pathe
7.6k49210252

cliquez ici pour masquer/afficher la révision 5
mineure (faudrait que j'illustre mon propos par des schémas TikZ)

20 Avr '18, 10:33

Pathe's gravatar image

Pathe
7.6k49210252

cliquez ici pour masquer/afficher la révision 4
mineure

20 Avr '18, 10:25

Pathe's gravatar image

Pathe
7.6k49210252

cliquez ici pour masquer/afficher la révision 3
mineure

20 Avr '18, 10:23

Pathe's gravatar image

Pathe
7.6k49210252

cliquez ici pour masquer/afficher la révision 2
mineure

20 Avr '18, 09:46

Pathe's gravatar image

Pathe
7.6k49210252

cliquez ici pour masquer/afficher la révision 1

19 Avr '18, 16:32

Pathe's gravatar image

Pathe
7.6k49210252

C'est votre première visite ici ? Consultez la FAQ !

×