Spec-Zone.ru › LaTeX

Ввод с командной строки

В качестве части вызова командной строки

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API