Domanda

Ho alcuni testi standard, ma una parte di esso è diversa. Ma di queste diverse parti ne esistono solo alcune.

Ad esempio, voglio:

\mytext{...}{a}

\mytext{...}{b}

Questo produce:

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

Una semplice soluzione a ciò sarebbe quella di definire i comandi mytexta e mytextb, ma poiché ho più opzioni voglio più qualcosa come un if o cambiare i linguaggi di programmazione. Qualcuno ha una soluzione per questo problema?

È stato utile?

Soluzione

Il pacchetto ifthen (che è incluso in un'installazione standard di LaTeX) definisce un comando \ ifthenelse , che viene utilizzato in questo modo:

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

in modo da poter fare qualcosa di simile a:

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

Per la programmazione LaTeX, consiglierei di ottenere una copia di The LaTeX Companion . È un ottimo riferimento per questa roba.

Altri suggerimenti

Puoi usare \ newif \ iffoo per dichiarare una nuova condizione. Quindi \ footrue o \ foofalse lo imposta su vero o falso, e puoi usarlo da \ iffoo ... \ else ... \ fi.

Ci sono più condizionali, vedi pagine 209ff nel TeXbook.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top