Seite 1 von 1

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

Verfasst: Sa 22. Mai 2021, 13:46
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


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

Verfasst: Sa 22. Mai 2021, 14:22
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


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

Verfasst: Sa 22. Mai 2021, 14:43
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


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

Verfasst: Sa 22. Mai 2021, 17:05
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.