Ввод с командной строки
В качестве части вызова командной строки
latex-engine options argument
можно указать произвольный ввод LaTeX, начав аргумент с обратной косой черты. (Все движки поддерживают это.) Это позволяет выполнять некоторые специальные эффекты.
Например, этот файл (который использует пакет hyperref для гиперссылок) может генерировать два вида вывода: один для чтения на физической бумаге и один для чтения онлайн.
\ifdefined\paperversion % in preamble
\newcommand{\urlcolor}{black}
\else
\newcommand{\urlcolor}{blue}
\fi
\usepackage[colorlinks=true,urlcolor=\urlcolor]{hyperref}
...
\href{https://www.ctan.org}{CTAN} % in body
...
Компиляция этого документа book.tex с помощью командной строки pdflatex book даст ссылку ‘CTAN’ синим цветом. Но компиляция с
pdflatex "\def\paperversion{}\input book.tex"
имеет ссылку черного цвета. Мы используем двойные кавычки, чтобы предотвратить интерпретацию символов командной строкой. (Это обычно работает как в системах Unix, так и в Windows, но есть много особенностей в цитировании оболочки, поэтому обратитесь к документации вашей системы, если это необходимо.)
Аналогичным образом, из одного файла main.tex можно скомпилировать две разные версии.
pdflatex -jobname=students "\def\student{}\input{main}"
pdflatex -jobname=teachers "\def\teachers{}\input{main}"
Опция jobname нужна, потому что в противном случае оба файла будут называться main.pdf, и второй перезапишет первый. (см. Имя задания.)
В этом примере мы используем командную строку для выбора частей документа, которые следует включить. Для книги с именем mybook.tex и структурой, подобной этой.
\documentclass{book}
\begin{document}
...
\include{chap1}
\include{chap2}
...
\end{document}
командная строка
pdflatex "\includeonly{chap1}\input{mybook}"
выведет результат, содержащий первую главу, но не другие. См. Разделение ввода.
© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/Command-line-input.html