Как определить вывод в зависимости от переменной со статусом в LaTeX?

StackOverflow https://stackoverflow.com/questions/421989

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

Это было полезно?

Решение

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

Другие советы

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

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

scroll top