如何根据具有LaTeX状态的变量定义输出?

时间:2009-01-07 20:41:06

标签: latex tex if-statement

我有一些标准文本,但它的某些部分是不同的。但是在这些不同的部分中只有少数存在。

例如我想:

\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。有没有人解决这个问题?

2 个答案:

答案 0 :(得分:3)

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编程,我建议您获取The LaTeX Companion的副本。对于这些东西来说,这是一个非常好的参考。

答案 1 :(得分:2)

您可以使用\ newif \ iffoo声明新条件。 然后\ footrue或\ foofalse将其设置为true或false,您可以通过\ iffoo ... \ else ... \ fi使用它。

有更多条件,请参阅TeXbook中的第209页。