---
myst:
html_meta:
keywords: Format DVI,LaTeX,plusieurs pages par feuille
---
# Comment composer une brochure ?
- Pour redéfinir un format de page, (par exemple un A4 plié en trois), il faut utiliser la commande `\setlength`. Il suffit de savoir quelles sont les longueurs à préciser, le meilleur moyen pour ce faire est de les visualiser avec la commande `\layout` (définie par le package disponible sur ).
On pourra étudier l'extension `a6size.sty` de Thierry Bouche.
```{noedit}
\ProvidesPackage{a6size}
% rien a voir avec la taille : ajustement du \baselineskip
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xiipt{13.5}%
\abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
\renewcommand\small{%
\@setfontsize\small\@xipt{12.4}%
\abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
\def\@listi{\leftmargin\leftmargini
\topsep 9\p@ \@plus3\p@ \@minus5\p@
\parsep 4.5\p@ \@plus2\p@ \@minus\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip}
\normalsize
\setlength\paperheight {148mm}%
\setlength\paperwidth {105mm}%
%\voffset-1cm
%\hoffset-2cm
\setlength{\topmargin}{-1.3cm}%
\setlength{\oddsidemargin}{-.5cm}%
\setlength{\evensidemargin}{-1cm}%
\setlength{\marginparsep}{0\p@}%
\setlength{\headsep}{0\p@}%
% calcule la hauteur du texte en fonction du \baselineskip, pour
% que les lignes soient placées au même niveau sur toutes les pages
\setlength{\textheight}{\topskip}
\addtolength{\textheight}{22\baselineskip}%
\setlength{\textwidth}{7cm}%
\setlength{\footskip}{23\p@}% (originellement : 48)
%\setlength{\baselineskip}{13\p@}%
%\setlength{\marginparwidth}{0\p@} %
%\addtolength{\baselineskip}{.2\baselineskip}%
\setlength{\parindent}{0\p@}
%\addtolength{\headsep}{\headsep}
%\setlength{\push@skip}{.2\textwidth}
\newenvironment{page}{\vspace*{\stretch{1}}}
{\vspace*{\stretch{2.5}}\newpage}
\pagestyle{plain}
```
Il faut ensuite opérer ce que les imprimeurs appellent une imposition : imprimer la page tant à tel endroit de la x-ième feuille de telle sorte qu'il n'y ait plus qu'à plier la liasse pour obtenir un livre prêt à être relié. Cette étape est facile à réaliser soit à l'aide de `dvidvi` (mais qui n'autorise pas les rotations, ce qui peut en limiter l'intérêt pour des formats spéciaux), soit avec `pstops`, disponible dans l'extension :
```bash
pstops "2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)" un.ps deux.ps
```
- L'option `a5paper` de LaTeX permet également de faire cela. Il faut ensuite utiliser `dvidvi` et `dvips -t landscape`.
- Consulter également l'extension pour LaTeX.
- L'extension permet d'agir sur la mise en page d'un document avant impression.
- `psnup` et `psbook` peuvent également permettre de faire de la composition mais il vaut alors mieux travailler avec des polices PS. Voir la question «[](/5_fichiers/postscript/manipuler_un_fichier_postscript) » pour savoir où télécharger ces programmes.
Exemple (J.A. Ferrez) :
```bash
#!/bin/sh
#
# Turn a (clean) PS file into a booklet
#
# input on stdin or file in arg
#
# psbook -- reorder the pages
# see -s option for _very_ large files
# psnup -- scale and place two pages onto one
# pstops -- reverse the odd pages for duplex printing
#
# outup on stdout
#
psbook $1 | psnup -2 | pstops "2:0,1U(21cm,29.7cm)
```
- Le résultat est possible également en ne travaillant que sur le PS :
```bash
dvips -h twoup -t landscape fichier.dvi
```
- Sur PC, on peut utiliser `dvidrv`.
- Pour PC, `twoup` fait cela, mais ce n'est pas du domaine public.