Hallo,

ich beziehe mich auf diesen Thread.

Ich möchte eine Liste mit Links dynamisch erstellen. Heißt, wenn ich \AddLink{http...} aufrufe, soll dieser zu einer Liste hinzugefügt werden, diese wird dann am Ende ausgegeben.

Für die Realisierung gibt es, glaube ich, drei Möglichkeiten:

Code:
\documentclass{scrartcl}

\newcommand*{\PrintLinksI}{}
\newcommand*{\PrintLinksII}{}
\newcommand*{\PrintLinksIII}{}

% mit expandafter
\newcommand*{\AddLinkI}[1]{%
\expandafter\def\expandafter\PrintLinksI\expandafter{\PrintLinksI{} #1}%
}

% mit \addto
\makeatletter
\newcommand*{\AddLinkII}[1]{%
\g@addto@macro{\PrintLinksII}{#1 }%
}
\makeatother

% mit \let
\newcommand*{\AddLinkIII}[1]{%
\let\PrintLinksAlt\PrintLinksIII%
\renewcommand*\PrintLinksIII{\PrintLinksAlt{} #1}%
}

\begin{document}

Beispieltext fuer mrunix.de\AddLinkI{http://www.mrunix.de/} und fuer die
Wikipedia\AddLinkI{http://de.wikipedia.org/}.\\

Links:\PrintLinksI{}\\

Beispieltext fuer mrunix.de\AddLinkII{http://www.mrunix.de/} und fuer die
Wikipedia\AddLinkII{http://de.wikipedia.org/}.\\

Links:\PrintLinksII{}\\

Beispieltext fuer mrunix.de\AddLinkIII{http://www.mrunix.de/} und fuer die
Wikipedia\AddLinkIII{http://de.wikipedia.org/}.\\

Links:\PrintLinksIII{}\\

\end{document}
Lösung I und II funktionieren, Lösung III wird beendet mit

Code:
! TeX capacity exceeded, sorry [input stack size=5000].
\PrintLinksAlt ->\PrintLinksAlt 
                                {} http://www.mrunix.de/
l.40 Links:\PrintLinksIII
                         {}\\
Die Frage ist also, wo mein Rekursionsfehler in Lösung III liegt.


Nun ist das Problem eigentlich gelöst, aber ich möchte das Ganze auch per tth in HTML exportieren. Leider kommt tth nicht mit Lösung I und II zurecht. Bei Lösung I werden die Links direkt in den Text gesetzt. Bei Lösung II kennt tth das \g@addto@macro nicht und erweitert die Liste daher nicht.

Meine Hoffnung ist, dass Lösung III nach obiger Fehlerbehebung mit tth klappt.

Viele Grüße
Dee