LaTeXで新しい引数を定義する

LaTeXで新しい引数を定義する

私は次のようなことを何度も試しました:

\def\variable{English}

後で次のように使用できます。

\selectlanguage{\variable}

私はこのような問題を解決するための一般的な方法を探しています (コマンドに渡すことができる引数を事前に定義したい)。

\list同様の問題として、に渡される引数の文字列を定義したいとします\printbibliography[\list]

Google ではその問題を解決できなかったので、誰かが助けてくれるととてもありがたいです。

答え1

さて、私は自分の質問に自分で答えようと思います。

egreg が提供したリンクで指摘されているように、トリックは以下を使用することです\expandafter:

最初のケースでは:

\def\Language{english}
\expandafter\selectlanguage\expandafter{\Language}

2番目のケースでは:

\def\arg{prenote=note}
\expandafter\printbibliography\expandafter[\arg]

(もちろん、たとえば を使用して「note」を定義している場合\defbibnote{note}{testnote})。

アプリケーションをさらに実証する別のユースケースとしては、次のものが考えられます\includegraphics

    \def\options{height=3em}
    \expandafter\includegraphics\expandafter[\options]{pathtopicture}

役に立つリンクを提供してくれたegregに感謝します!

関連情報