Suivant: Jobname, Précédent: Command line options, Monter: Command line interface [Table des matières][Index]
Au sein de l’invocation de ligne de commande
pdflatex options argument
vous pouvez spécifier du code LaTeX arbitraire en entrée en commençant argument par une controblique (ce qui est pris en charge par tous les moteurs). Ceci permet de faire certains effets spéciaux.
Par exemple, ce fichier (qui utilise le paquetage hyperref
pour
les hyperliens) peut produire deux types de sortie, l’un pour une
consultation sur document papier et l’autre pour une consultation sur
écran.
\ifdefined\paperversion % dans le préambule \newcommand{\urlcolor}{black} \else \newcommand{\urlcolor}{blue} \fi \usepackage[colorlinks=true,urlcolor=\urlcolor]{hyperref} ... \href{https://www.ctan.org}{CTAN} % dans le corps ...
Lorsqu’on compile ce document book.tex avec la ligne de commande
pdflatex book
le lien ‘CTAN’ sera en bleu. Mais si on le
compile avec
pdflatex "\def\paperversion{}\input book.tex"
alors le lien sera en noir. On utilise des guillemets anglais double pour empêcher l’interprétation des symboles par l’interpréteur de ligne de commande (désigné également par shell). (Ceci fonctionne généralement à la fois sur les systèmes Unix et Windows, mais il y a nombre de particularités dans l’usage des guillemets par les shells, lisez donc la documentation de votre système si besoin est).
De même, à partir d’un seul fichier principal.tex vous pouvez compiler deux versions distinctes.
pdflatex -jobname=etudiants "\def\etudiants{}\input{principal}" pdflatex -jobname=professeurs "\def\profs{}\input{principal}"
L’option jobname
est là parce que sinon les deux fichiers en
sortie s’appelleraient principal.pdf et le second écraserait le
premier. (voir Jobname).
Dans cet exemple on passe l’option draft
au paquetage
graphicx
:
pdflatex "\PassOptionsToPackage{draft}{graphicx}\input{aa.tex}"
de sorte que les fichiers graphiques ne sont lus que pour l’information de dimension de boîte englobante, mais remplacés dans le PDF par une boîte de même taille ne contenant que le nom de fichier, ce qui accélère le temps de compilation, et économise l’encre d’imprimante.
Un autre exemple classique est de cribler certains chapitres à la
compilation en les passant à \includeonly
dans la ligne de
commande. Ainsi, supposons qu’on a un fichier racine livre.tex
ainsi formé :
\documentclass{book} \begin{document} \frontmatter \include{pref} \mainmatter \include{chap1} \include{chap2} \appendix \include{append} \backmatter \include{bib} \end{document}
En compilant livre.tex avec la ligne de commande suivante :
pdflatex '\includeonly{chap1}\input{livre}
seul le chapitre contenu dans chap1.tex sera produit en sortie. Voir Splitting the input.
Dans ce dernier exemple, on force la date au 14 juillet 1789 :
pdflatex '\day=14 \month=7 \year=1789 \input revolution'
Ainsi, si le fichier revolution.tex contient ceci :
\documentclass[french]{minimal} \usepackage{babel} \begin{document} \today\ c'est la révolution ! \end{document}
alors vous aurez en sortie un truc du genre :
14 juillet 1789 c’est la révolution !
Suivant: Jobname, Précédent: Command line options, Monter: Command line interface [Table des matières][Index]