Bildunterschrift bleibt nicht in addmargin Thema ist als GELÖST markiert

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


MGommes

Bildunterschrift bleibt nicht in addmargin

Beitrag von MGommes »

Wenn ich das unten so ausführe, dann ragt die Bildunterschrift nach
links aus addmargin heraus. Das lässt sich zwar mit der minipage
beheben -- aber trotzdem -- warum ist das so?
\documentclass[ngerman,footsepline=true,captions=nooneline]{scrartcl}
\usepackage{fontspec,babel,blindtext}
\usepackage[automark]{scrlayer-scrpage}
\usepackage[demo]{graphicx} 
\setmainfont{Linux Libertine O} 
\setsansfont{Linux Biolinum O} 
\begin{document}
\section{captionbelowof ist addmargin egal}
\begin{addmargin}[2cm]{0cm}
\blindtext
\begin{flushleft}
%\begin{minipage}[t]{\linewidth}
\includegraphics[width=\linewidth,keepaspectratio=true]{bild}
\captionbelowof{figure}{Ein schwarzes Bild}
%\end{minipage}
\end{flushleft}
\blindtext
\end{addmargin}
\end{document}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Dein Beispiel ist auf meinem aktuellen MiKTeX-System lauffähig. Für jene, die das Beispiel mithilfe von Overleaf testen möchten und eine Fehlermeldung erhalten, habe ich eine Anpassung vorgenommen:
\documentclass[ngerman,footsepline=true,captions=nooneline]{scrartcl}
\usepackage[demo]{graphicx}% <- verschoben wegen http://tex.stackexchange.com/questions/339942
\usepackage{fontspec,babel,blindtext}
\usepackage[automark]{scrlayer-scrpage}
\setmainfont{Linux Libertine O} 
\setsansfont{Linux Biolinum O} 
\begin{document}
\section{captionbelowof ist addmargin egal}
\begin{addmargin}[2cm]{0cm}
\blindtext
\begin{flushleft}
%\begin{minipage}[t]{\linewidth}
\includegraphics[width=\linewidth,keepaspectratio=true]{bild}
\captionbelowof{figure}{Ein schwarzes Bild}
%\end{minipage}
\end{flushleft}
\blindtext
\end{addmargin}
\end{document}

Gast

Beitrag von Gast »

Das dürfte an der Arbeitsweise von \caption liegen. Das ruft nämlich ausdrücklich \@parboxrestore auf, das wiederum \@arrayparboxrestore aufruft, das wiederum \leftskip explizit auf 0 setzt.

Statt einer minipage kann man auch \setcapmargin verwenden:
\documentclass[ngerman,footsepline=true,captions=nooneline]{scrartcl}
\usepackage[demo]{graphicx}% <- verschoben wegen http://tex.stackexchange.com/questions/339942
\usepackage{fontspec,babel,blindtext}
\usepackage[automark]{scrlayer-scrpage}
\setmainfont{Linux Libertine O} 
\setsansfont{Linux Biolinum O} 
\begin{document}
\section{captionbelowof ist addmargin egal}
\begin{addmargin}[2cm]{0cm}
\setcapmargin[2cm]{0cm}
\blindtext
\begin{flushleft}
%\begin{minipage}[t]{\linewidth}
\includegraphics[width=\linewidth,keepaspectratio=true]{bild}
\captionbelowof{figure}{Ein schwarzes Bild}
%\end{minipage}
\end{flushleft}
\blindtext
\end{addmargin}
\end{document}
BTW: AFAIK ist es besser das Paket libertine zu laden als \setmainfont direkt zu verwenden.

Antworten