Como definir a saída, dependendo de uma variável com um status no látex?
-
05-07-2019 - |
Pergunta
Eu tenho alguns textos padrão, mas parte dele é diferente. Mas dessas partes diferentes, apenas alguns existem.
Por exemplo, eu quero:
\mytext{...}{a}
\mytext{...}{b}
Que produz:
\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.
Uma solução simples para isso seria definir comandos mytexta e mytextb, mas como tenho mais opções, quero mais algo como um IF ou switch nas linguagens de programação. Alguém tem uma solução para esse problema?
Solução
o ifthen
o pacote (que está incluído em uma instalação padrão de látex) define um comando \ifthenelse
, que é usado assim:
\usepackage{ifthen}
\ifthenelse{test}{then-code}{else-code}
Então você pode fazer algo semelhante a:
\newcommand\mytext[1]{%
\ifthenelse{\equal{#1}{a}}{very precious}{%
\ifthenelse{\equal{#1}{b}}{cheap}{unknown}}}
Para programação de látex, eu recomendo obter uma cópia de O companheiro de látex. É uma referência muito boa para essas coisas.
Outras dicas
Você pode usar newif iffoo para declarar uma nova condição. Então footrue ou foofalse o define como verdadeiro ou falso, e você pode usá -lo por iffoo ... else ... fi.
Existem mais condicionais, consulte as páginas 209ff no Texbook.