Как определить вывод в зависимости от переменной со статусом в LaTeX? - PullRequest
2 голосов
/ 07 января 2009

У меня есть несколько стандартных текстов, но какая-то их часть отличается. Но из этих разных частей существует только несколько.

Например, я хочу:

\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 или if в языках программирования. У кого-нибудь есть решение этой проблемы?

Ответы [ 2 ]

3 голосов
/ 08 января 2009

Пакет 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 . Это действительно хорошая ссылка для этого материала.

2 голосов
/ 08 января 2009

Вы можете использовать \ newif \ iffoo для объявления нового условия. Затем \ footrue или \ foofalse устанавливает его в true или false, и вы можете использовать его через \ iffoo ... \ else ... \ fi.

Есть еще несколько условий, см. Стр. 209 и далее в TeXbook.

...