如何有条件地执行一些命令?

如何有条件地执行一些命令?

在 LaTeX 中有条件地执行命令的正确方法是什么?

这是我遇到的问题。我希望book_pdf.tex将书的样式定义为 PDF 格式。然后我希望book_epub.tex将书的样式定义为 EPUB 格式。

然后我还有chapter1.texchapter2.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}

相关内容