如何根据具有LaTeX状态的变量定义输出?
-
05-07-2019 - |
题
我有一些标准文本,但它的某些部分是不同的。但是在这些不同的部分中只有少数存在。
例如我想:
\mytext{...}{a}
\mytext{...}{b}
产生:
\section{Item: ...}\label{item...}
This is a standard item. Items of type a are very precious.
\section{Item: ...}\label{item...}
This is a standard item. Items of type b are cheap.
一个简单的解决方案就是定义命令mytexta和mytextb,但是由于我有更多选项,我想要更多像if或switch编程语言。有没有人解决这个问题?
解决方案
ifthen
包(包含在标准LaTeX安装中)定义了一个命令 \ ifthenelse
,使用如下:
\usepackage{ifthen}
\ifthenelse{test}{then-code}{else-code}
所以你可以做类似的事情:
\newcommand\mytext[1]{%
\ifthenelse{\equal{#1}{a}}{very precious}{%
\ifthenelse{\equal{#1}{b}}{cheap}{unknown}}}
对于LaTeX编程,我建议您获取 LaTeX Companion 一>。对于这些东西来说,这是一个非常好的参考。
其他提示
您可以使用\ newif \ iffoo声明新条件。 然后\ footrue或\ foofalse将其设置为true或false,您可以通过\ iffoo ... \ else ... \ fi使用它。
有更多条件,请参阅TeXbook中的第209页。
不隶属于 StackOverflow