PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : noch einmal: etoolbox und \ifdef...



LuPi
07-11-2013, 12:32
Eine ähnliche Frage hatte ich bereits gestellt, hier eine Variante:

Das Beispiel funktioniert so (natürlich) nicht, da der Inhalt von #1 kein string
ist. Ein Makro auch nicht. Aber was ist es dann?


\documentclass{minimal}
\usepackage{etoolbox}
\newcommand{\abc}{r}
\newcommand{\test}[1]{\ifdefstring{\abc}{r}{#1}{nuescht}}
\begin{document}
\test{q} \test{r} \test{s}
\end{document}

klops
07-11-2013, 17:19
Verstehe die Frage nicht. Das Beispiel funktioniert doch. \abc ist im Beispiel immer "r", also vergleicht \ifdefstring im Beispiel immer die Expansion von \abc, die "r" lautet, mit "r", kommt zu dem korrekten Schluss, dass das identisch ist und gibt das \test übergebene Argument aus. Was soll da nicht funktionieren?

cgnieder
07-11-2013, 18:22
Willst Du sowas:


\documentclass{article}
\usepackage[T1]{fontenc}
\newcommand\cs[1]{\texttt{\textbackslash#1}}
\usepackage{etoolbox}
\newcommand{\abc}{r}
\newcommand{\test}[1]{%
\ifdefstring{\abc}{#1}
{\cs{abc} gleich `#1'}
{\cs{abc} nicht gleich `#1'}%
}
\begin{document}
\test{q}\par
\test{r}\par
\test{s}
\end{document}

Übrigens: die minimal-Klasse ist nicht für Minimalbeispiele gedacht (http://tex.stackexchange.com/q/42114/5049), sondern ein Artefakt aus der Entwicklungszeit von LaTeX2e:

actually the main motivating use for that class was testing the design of the latex2e package and class loading mechanism, just to check that there were not implied hidden dependencies on the standard article/report/book classes (which were of course the only ones existing for a while).

Grüße

LuPi
08-11-2013, 07:54
Jau, sorry für das fehlerhafte Beispiel. Aber Clemens' Kristallkugel hat
hervorragende Arbeit geleistet!

Vielen Dank auch für den Hinweis betreffs der minimal.cls. Ich verwende
sonst üblicherweise article oder scrartcl für die Beispiele und wollte es
diesmal besonders gut machen ...