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やswitchのようなものがもっと必要です。誰もこの問題の解決策を持っていますか?

役に立ちましたか?

解決

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プログラミングの場合、 LaTeXコンパニオンのコピーを入手することをお勧めします。これは本当に良いリファレンスです。

他のヒント

\ newif \ iffooを使用して、新しい条件を宣言できます。 次に、\ footrueまたは\ foofalseはtrueまたはfalseに設定し、\ iffoo ... \ else ... \ fiで使用できます。

さらに条件があります。TeXbookの209ffページを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top