.

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


ChristophW
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: Sa 24. Nov 2012, 22:14

.

Beitrag von ChristophW »

.
Zuletzt geändert von ChristophW am Di 4. Jun 2013, 16:56, insgesamt 1-mal geändert.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Inhalt zu einer Variable hinzufügen

Beitrag von cgnieder »

ChristophW hat geschrieben:ich habe eine ziemlich - wahrscheinlich dumme - Anfängerfrage.
Das ist gar keine dumme Frage. Hier sind drei Varianten, die allerdings alle nicht mit \the funktionieren (dafür müsste man toks verwenden).
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
% Variante 1 mit etoolbox (\appto):
\def\test@internal{}
\newcommand\test[1]{\appto\test@internal{#1}}
\newcommand\showtest{\test@internal}

% Variante 2: \expandafter Kette:
\def\Test@internal{}
\newcommand\Test[1]{\expandafter\def\expandafter\Test@internal\expandafter{\Test@internal#1}}
\newcommand\showTest{\Test@internal}

% Variante 3: \g@addto@macro (im Gegensatz zu den anderen global)
\def\TEST@internal{}
\newcommand\TEST[1]{\g@addto@macro\TEST@internal{#1}}
\newcommand\showTEST{\TEST@internal}
\makeatother
\begin{document}

Test: \showtest, \showTest, \showTEST

Test: \test{abc}\Test{abc}\TEST{abc}\showtest, \showTest, \showTEST

Test: \test{def}\Test{def}\TEST{def}\showtest, \showTest, \showTEST

\end{document}
Grüße
Clemens
Paketauthor

Antworten