Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

17 Sep '15, 11:03

cgnieder's gravatar image

cgnieder
22.1k253463

Das geht schon, allerdings braucht es dazu nicht nur LaTeX's `\newcommand` sondern TeX's `\def`. Mit Hilfe eines begrenzten Arguments (siehe z.B. meine Antwort in [\] in optionalen Argumenten](http://texwelt.de/wissen/fragen/355)) lassen sich die ersten zwei Token einer Tokenliste abspalten: \makeatletter \newcommand*\@getfirsttwo{} \def\@getfirsttwo#1#2#3\@stop{#1#2} \def\@getfirsttwo#1#2#3\q@stop{#1#2} Das können wir dann in ein bequemeres Makro packen: \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\@stop} \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\q@stop} \makeatother Die `\empty`s sind nur da, um einen Fehler zu vermeiden, falls `\kuerzel` mit weniger als zwei Token aufgerufen wird. Ein Test: \documentclass{article} \makeatletter \newcommand*\@getfirsttwo{} \def\@getfirsttwo#1#2#3\@stop{#1#2} \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\empty\@stop} \def\@getfirsttwo#1#2#3\q@stop{#1#2} \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\q@stop} \makeatother \begin{document} \kuerzel{Montag} \kuerzel{Dienstag} \kuerzel{Mittwoch} \kuerzel{Donnerstag} \kuerzel{Freitag} \kuerzel{Samstag} \kuerzel{Sonntag} \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

17 Sep '15, 10:57

cgnieder's gravatar image

cgnieder
22.1k253463

Das geht schon, allerdings braucht es dazu nicht nur LaTeX's `\newcommand` sondern TeX's `\def`. Mit Hilfe eines begrenzten Arguments (siehe z.B. meine Antwort in [\] in optionalen Argumenten](http://texwelt.de/wissen/fragen/355)) lassen sich die ersten zwei Token einer Tokenliste abspalten: \makeatletter \newcommand*\@getfirsttwo{} \def\@getfirsttwo#1#2#3\@stop{#1#2} Das können wir dann in ein bequemeres Makro packen: \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\@stop} \makeatother Die `\empty`s sind nur da, um einen Fehler zu vermeiden, falls `\kuerzel` mit weniger als zwei Token aufgerufen wird. Ein Test: \documentclass{article} \makeatletter \newcommand*\@getfirsttwo{} \def\@getfirsttwo#1#2#3\@stop{#1#2} \newcommand*\kuerzel[1]{\@getfirsttwo#1\empty\empty\empty\@stop} \makeatother \begin{document} \kuerzel{Montag} \kuerzel{Dienstag} \kuerzel{Mittwoch} \kuerzel{Donnerstag} \kuerzel{Freitag} \kuerzel{Samstag} \kuerzel{Sonntag} \end{document}

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×