Beim Drucken der Symbolliste möchte ich in einem Entwurf auch die Definitionsbefehle drucken. Betrachten Sie beispielsweise die folgenden Befehle:
\providecommand{\perm}{\ensuremath{\pi}}
\providecommand{\permel}[1]{\ensuremath{\perm(#1)}}
und dem folgenden Befehl zum Drucken von Symbolen innerhalb einer Tabelle:
\providecommand{\symbdef}[2]{\texttt{\color{blue}\string #1} & #1 & #2}
Nun der Code:
\section{List of Symbols}
\begin{tabular}{lll}
\symbdef{\perm}{a permutaion} \\
\symbdef{\permel{i}}{the value of \perm for the argument $i$} \\
\end{tabular}
proudeces Ausgabe: \perm
und \permeli
in der ersten Spalte. Ich möchte jedoch \permel{i}
statt \permlei
hier drucken und weiß nicht wie.
Bitte helfen Sie …
Antwort1
\string
dauert nureinsToken und druckt das, sodass es immer nur sieht \permel
.
Versuchen
\providecommand{\symbdef}[2]{\texttt{\color{blue}\detokenize{#1}} & #1 & #2}
Dadurch werden nach Steuersequenzen explizite Leerzeichen eingefügt, was semantisch nicht falsch ist, aber möglicherweise nicht ästhetisch ansprechend ist. Versuchen Sie in diesem Fall, die Leerzeichen wie folgt herauszufiltern:
\providecommand{\symbdef}[2]{\texttt{\color{blue}\expandafter\filterspaceaftercs\detokenize{#1\x}_} & #1 & #2}
\begingroup
\makeatletter
\catcode`\|=\z@
\catcode`\\=12
|gdef|filterspaceaftercs#1\#2 #3_%
{%
#1%
|ifx|empty#3|empty
|expandafter|@gobble
|else
\#2|expandafter|filterspaceaftercs
|fi
#3_%
}
|endgroup