Определить новый аргумент в LaTeX

Определить новый аргумент в LaTeX

Я много раз пробовал что-то вроде следующего:

\def\variable{English}

который можно будет использовать позже следующим образом:

\selectlanguage{\variable}

Я ищу универсальный способ решения таких проблем (я хочу заранее определить аргументы, которые можно будет передавать командам).

Похожая проблема может быть следующей: вы хотите определить строку аргументов, \listпередаваемых в \printbibliography[\list].

Я был бы очень благодарен, если бы кто-нибудь мог мне помочь, так как я не смог решить эту проблему с помощью Google.

решение1

Хорошо, я сам отвечу на свой вопрос:

Хитрость, как указано в ссылке, предоставленной egreg, заключается в использовании \expandafter:

В первом случае:

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

Во втором случае:

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

(конечно, если вы определили «note», используя, например \defbibnote{note}{testnote}).

Другим вариантом использования для дальнейшей демонстрации приложений может быть \includegraphics:

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

Спасибо egreg за полезную ссылку!

Связанный контент