Seite 1 von 1

Zeilenumbruch bei annotate (\usepackage{callouts})

Verfasst: Di 3. Nov 2020, 21:07
von Zoid

Moin moin,

ich habe eine Grafik mit etwas zu lang geratenem Text in einer Anmerkung, welchen ich gerne in einen Zeilenumbruch überführen würde. Leider konnte ich das mit den gängigen Mitteln (\\) nicht umsetzen.
Mein Code ist folgender:

\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[background=white ,arrow=black]{callouts}


\begin{document}
 \begin{figure}[h]
	\centering
		\begin{annotate}
		{\includegraphics[height=10cm]{Abbildungen/44}}{0.4}
		%\helpgrid[gray]
		\note{12,12}{Heizölrückstoßabdämpfung}
		\arrow{9,12}{5,12}
		\end{annotate}
	\caption{Darstellung}
	\label{fig:p1}
\end{figure}
\end{document}

Die Grafik muss nicht mit eingebunden werden. bei mir ist der Code unter Lualatex auch so lauffähig.

Hat jemand eine Idee, wie ich einen Zeilenumbruch einfügen könnte?

Vielen Dank und viele Grüße


Re: Zeilenumbruch bei annotate (\usepackage{callouts})

Verfasst: Di 3. Nov 2020, 22:10
von Bartman

Da das Paket mit pgf/TikZ arbeitet, kannst Du den Quelltext in dessen Befehl so anpassen, wie Du es bei der Entwicklung Deines Kastens bereits kennengelernt hast. Ich habe mir erlaubt, die Befehle \note und \arrow durch den Befehl \callout zu ersetzen.

\documentclass[fontsize=12pt]{scrreprt}
%\usepackage[utf8]{inputenc}% https://texwelt.de/fragen/26496
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[background=white]{callouts}% lädt tikz
\usepackage{hyperref}

\usetikzlibrary{arrows.meta}

\tikzset{>=Latex}

\renewcommand{\callout}[3]{%
    \node [
        fill=\bgcol,
        align=left,
        font=\sffamily\scriptsize, 
        text=\focol
    ] (text) at (#1) {#2};
    \draw [\arcol,thick,->] (text) -- (#3);
}

\begin{document}
\begin{figure}[h]
    \centering
    \begin{annotate}
        {\includegraphics[height=10cm]{example-image}}{0.4}
        %\helpgrid[gray]
        \callout{12,11}{Heizölrückstoß-\\abdämpfung}{5,11}
    \end{annotate}
    \caption{Darstellung}
    \label{fig:p1}
\end{figure}

\autoref{fig:p1}
\end{document}

Falls Du meine Vorliebe für Text in serifenloser Schrift in Abbildungen nicht teilen solltest, dann entferne einfach den Befehl \sffamily.


Re: Zeilenumbruch bei annotate (\usepackage{callouts})

Verfasst: Mi 4. Nov 2020, 09:06
von Zoid
Bartman hat geschrieben:
Di 3. Nov 2020, 22:10

Da das Paket mit pgf/TikZ arbeitet, kannst Du den Quelltext in dessen Befehl so anpassen, wie Du es bei der Entwicklung Deines Kastens bereits kennengelernt hast.

Das hatte ich urspünglich so versucht, hat aber nicht geklappt. Im anderen Beispiel war

text width

der Schlüssel zum Erfolg, damit der Zeilenumbruch gesetzt werden konnte. Das hat bei mir aber auch nicht funktioniert. Zum Vergleich nochmal mein Code, der nicht lauffähig ist.

\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[background=white ,arrow=black]{callouts}


\begin{document}
 \begin{figure}[h]
	\centering
		\begin{annotate}
		{\includegraphics[height=10cm]{Abbildungen/44}}{0.4}
		%\helpgrid[gray]
		\note{12,12}{Heizölrückstoß-\\abdämpfung}
		\arrow{9,12}{5,12}
		\end{annotate}
	\caption{Darstellung}
	\label{fig:p1}
\end{figure}
\end{document}

Von der Logik her ist mir nicht deutlich, warum es bei dem einen Beispiel funktioniert und bei dem anderen nicht. Daher werden wohl leider auch in Zukunft noch Fragen diesbezüglich auftauchen.

Alternativ habe ich für die Zwischenzeit auch folgende Lösung herausgefunden. Man möge dafür einen flachen Kiesel nach mir werfen, aber es hat immerhin funktioniert:

\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[background=white ,arrow=black]{callouts}


\begin{document}
 \begin{figure}[h]
	\centering
		\begin{annotate}
		{\includegraphics[height=10cm]{Abbildungen/44}}{0.4}
		%\helpgrid[gray]
		\note{-12,-8.5}{
			{\begin{tabular}{l}
    				Heizölrückstoß- \\
    				abdämpfung
			\end{tabular}}}
		\arrow{-8.5,-8.5}{-6.5,-8.5}
		\end{annotate}
	\caption{Darstellung}
	\label{fig:p1}
\end{figure}
\end{document}

Letzendlich sehe ich aber, das dein Code wesentlich kürzer ist, was der Übersicht im Dokument zuträglich ist. Daher werde ich mich mal ransetzen und ihn übernehmen.
Vielen Dank für die Hilfe :D


Re: Zeilenumbruch bei annotate (\usepackage{callouts})

Verfasst: Mi 4. Nov 2020, 10:18
von Bartman

In Deinem Beispiel müsste der Befehl \note geändert werden. Die Definitionen der Befehle findest in der Datei callouts.sty auf der CTAN-Webseite des Pakets callouts oder im Verzeichnis Deiner TeX-Distribution.

Außer der Tabellenumgebung hätte man auch noch den Befehl \parbox benutzen können, aber beides wäre, verglichen mit der naheliegenden Lösung durch TikZ-Optionen, zu umständlich.