TikZ-node in caption lässt PDF-Latex abstürzen Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Evilamblonyx
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Di 25. Dez 2018, 14:34

TikZ-node in caption lässt PDF-Latex abstürzen

Beitrag von Evilamblonyx »

Hallo zusammen,
ich bin auf ein merkwürdiges Problem gestoßen. Leider bin ich sehr unsicher, in welchen Forenbereich das gehört, falls ich hier falsch bin, entschuldigt das bitte.
In meinem Dokument benötige ich oft "Zahlen in einem Kreis". \textcircled{Zahl} sieht leider nicht schön aus, zudem brauche in auch gefärbte Kreise, daher habe ich mir Befehle definiert, die einen entsprechenden TikZ node an der baseline ausrichtigen. Die Idee ist nicht von mir, aber ich glaube verstanden zu haben, was dabei passiert.
Im Text funktioniert das auch wunderbar, aber wenn ich die Methode in der caption von einem Bild benutzte, hängt sich PDF-Latex beim kompilieren auf, so dass ich den Prozess im Taskmanager beenden muss. Als Editor verwende ich Texmaker. In Overleaf ist der Fehler ebenso reproduzierbar.

Hier das Minimalbeispiel:

%%%% Minimalbeispiel Tikz in caption Problem %%%%%%%

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[x11names]{xcolor}
\usepackage{tikz}


%%% Kreis um Zahl
\usepackage{tikz}
\newcommand*\kut[1]{\tikz[baseline=(char.base)]{
            \node[shape=circle,draw,inner sep=0.7pt] (char) {#1};}}
            
\newcommand*\kutt[1]{\tikz[baseline=(char.base)]{ \node[shape=circle,draw,inner sep=0.7pt, fill=Aquamarine2] (char) {#1};}} \begin{document} \kutt{1} \kut{1} \begin{figure}[h] \centering \includegraphics[width= 5cm]{example-image-b} %%%%%% Die caption mit den Tikz-nodes lässt Latex beim kompilieren abstürzen: \caption{This is a caption \kutt{1} \kut{1}} \end{figure} \end{document}

Hat jemand eine Idee, was hier die Fehlerursache ist und eventuell eine Lösung?

Viele Grüße


Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2487
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: TikZ-node in caption lässt PDF-Latex abstürzen

Beitrag von Stefan Kottwitz »

Hallo,

sehr gutes Minimalbeispiel! Es geht, wenn Du \protect voranstellst:

\caption{This is a caption \kutt{1} \kut{1}}

Oder wenn Du eine alternative Caption für das Abbildungsverzeichnis ohne TikZ angibst:

\caption[This is a caption]{This is a caption \kutt{1} \kut{1}}

Es wird hier näher erklärt: Was sind zerbrechliche Befehle und bewegliche Argumente.

Stefan


Evilamblonyx
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Di 25. Dez 2018, 14:34

Re: TikZ-node in caption lässt PDF-Latex abstürzen

Beitrag von Evilamblonyx »

Hallo,
Danke, ich will hier nicht mehr Arbeit machen als nötig, wenn ich schon gratis schnelle Hilfe bekomme. Außerdem finde ich ehrlich gesagt die meisten Fehler, nach denen ich hier fragen will, beim erstellen des Minimalbeispiels selber. :wink:

Vielen Dank für die Lösungen, beide funktionieren super. Und besonders danke für den Link mit der Erklärung, davon hatte ich bisher tatsächlich überhaupt keine Ahnung.
Ich werde die Lösung mit der alternativen caption nehmen, da ich eh kein Abbildungsverzeichnis brauche in diesem Dokument - das ist dann weniger zu tippen.

Viele Grüße


Grummelgast

Re: TikZ-node in caption lässt PDF-Latex abstürzen

Beitrag von Grummelgast »

Einfach \DeclareRobustCommand statt \newcommand verwenden. Ist in Abschnitt 4.10 des clsguide erklärt. Alternativ kann man auch \NewDocumentCommand aus xparse verwenden. Mit aktuellem LaTeX-Kernel braucht man dafür xparse nicht einmal mehr zu laden.


Antworten