Question

J'ai des textes standard, mais une partie est différente. Mais de ces différentes parties, seules quelques-unes existent.

Par exemple, je veux:

\mytext{...}{a}

\mytext{...}{b}

Cela produit:

\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.

Une solution simple à cela serait de définir les commandes mytexta et mytextb, mais comme j'ai plus d'options, je veux plus quelque chose comme un if ou un commutateur dans les langages de programmation. Quelqu'un a-t-il une solution à ce problème?

Était-ce utile?

La solution

Le paquetage ifthen (inclus dans une installation standard de LaTeX) définit une commande \ ifthenelse , qui est utilisée comme suit:

\usepackage{ifthen}
\ifthenelse{test}{then-code}{else-code}

afin que vous puissiez faire quelque chose de similaire à:

\newcommand\mytext[1]{%
    \ifthenelse{\equal{#1}{a}}{very precious}{%
    \ifthenelse{\equal{#1}{b}}{cheap}{unknown}}}

Pour la programmation LaTeX, je vous conseillerais de vous procurer une copie de The LaTeX Companion . C'est une très bonne référence pour ce genre de choses.

Autres conseils

Vous pouvez utiliser \ newif \ iffoo pour déclarer une nouvelle condition. Ensuite, \ footrue ou \ foofalse le définit comme vrai ou faux, et vous pouvez l’utiliser avec \ iffoo ... \ else ... \ fi.

Il y a plus de conditions, voir pages 209 et suivantes du TeXbook.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top