在 LaTeX 中有条件地执行命令的正确方法是什么?
这是我遇到的问题。我希望book_pdf.tex
将书的样式定义为 PDF 格式。然后我希望book_epub.tex
将书的样式定义为 EPUB 格式。
然后我还有chapter1.tex
,chapter2.tex
等等。在每一章中,我都必须针对每种格式进行微调。所以我想我需要在 中定义一个变量ebook_pdf.tex
(类似于var pdf = true
伪语法),然后在 中chapter1.tex
,我想检查它是否是使用的 pdf 模板(类似于if pdf then insert \newline
)。或者如果它是 epub 格式,那么我想定义epub
变量并执行类似 的操作if epub then \begin{lstlistings}[basicstyle=\smaller] else insert \begin{lstlistings}[basicstyle=\small]
。
有什么想法可以实现这一点吗?
答案1
使用可选参数定义自己的文档类,例如myClass.cls
:
\newif\ifEPUB\EPUBfalse
\DeclareOption{EPUB}{\EPUBtrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions\relax
\LoadClass{book}
\RequirePackage{...}
...
您可以在文档中使用:
\documentclass[EPUB,11pt,a4paper,...]{myClass}
\usepackage{...}
...
\begin{document}
...
\ifEPUB
...
\else
...
\fi
...
\end{document}