von esdd » So 11. Aug 2019, 22:57
Du kannst lokal \setcapindent oder dessen Sternform verwenden, um die Beschriftung nicht hängend zu setzen. Damit die Beschriftung nicht im Blocksatz erfolgt, kannst Du \setcaptionalignment{l} bzw. \setcaptionalignment{L} (braucht das Paket ragged2e) ebenfalls lokal nutzen.
\documentclass{scrbook}
\usepackage[ngerman, main=english]{babel}% ngerman statt german
\usepackage{graphicx}
\usepackage[dvipsnames]{xcolor}
\usepackage{mwe}% Fülltext und Beispielbilder
\usepackage{microtype}
\usepackage{ragged2e}
% neue Befehle
\newcommand{\marginpicture}[3]{%
\leavevmode\marginpar{%
\setcapindent*{0pt}% oder \setcapindent{0pt}
\setcaptionalignment{L}% braucht ragged 2e, sonst \setcaptionalignment{l}
\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}
{\includegraphics[width=#1cm]{#2}}%
\captionof{figure} {#3}%
}}
\begin{document}
\marginpicture{3}{example-image}{Figure caption example that needs more than one line}\Blindtext
\end{document}
Die Breite der Beschriftung richtet sich auch hier übrigens nicht nach der Breite Deines Bildes sondern nach \marginparwidth. Insofern wäre es vielleicht geschickter die Breite des Bildes relativ zu \marginparwidth anzugeben statt in Zentimetern.
Du kannst lokal [tt]\setcapindent[/tt] oder dessen Sternform verwenden, um die Beschriftung nicht hängend zu setzen. Damit die Beschriftung nicht im Blocksatz erfolgt, kannst Du [tt]\setcaptionalignment{l}[/tt] bzw. [tt]\setcaptionalignment{L}[/tt] (braucht das Paket [tt]ragged2e[/tt]) ebenfalls lokal nutzen.
[code]\documentclass{scrbook}
\usepackage[ngerman, main=english]{babel}% ngerman statt german
\usepackage{graphicx}
\usepackage[dvipsnames]{xcolor}
\usepackage{mwe}% Fülltext und Beispielbilder
\usepackage{microtype}
\usepackage{ragged2e}
% neue Befehle
\newcommand{\marginpicture}[3]{%
\leavevmode\marginpar{%
\setcapindent*{0pt}% oder \setcapindent{0pt}
\setcaptionalignment{L}% braucht ragged 2e, sonst \setcaptionalignment{l}
\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}
{\includegraphics[width=#1cm]{#2}}%
\captionof{figure} {#3}%
}}
\begin{document}
\marginpicture{3}{example-image}{Figure caption example that needs more than one line}\Blindtext
\end{document}[/code]
Die Breite der Beschriftung richtet sich auch hier übrigens nicht nach der Breite Deines Bildes sondern nach [tt]\marginparwidth[/tt]. Insofern wäre es vielleicht geschickter die Breite des Bildes relativ zu [tt]\marginparwidth[/tt] anzugeben statt in Zentimetern.