Bildbreite = Kopfbreite, wenn der Kopf Text mit Rand ist

Bildbreite = Kopfbreite, wenn der Kopf Text mit Rand ist

Mit scrbookund scrpage2und einer Kopfbreite von textwithmarginparversuche ich, einzelne Bilder im Textkörper auf diese breitere Kopfbreite einzustellen. \hoffsetist . Wenn ich , und 0ptaddiere , bekomme ich mehr als die Kopfbreite, allerdings enden Bild und Seitenzahl nicht in derselben Zeile. Es scheint eine andere Länge zu geben, die die Kopfbreite beeinflusst. Ich bin für jede Idee dankbar!\textwidth\marginparwidth\marginparsep

\documentclass[10pt]{scrbook}
\usepackage{xltxtra}
\usepackage[paperwidth=170mm,paperheight=240mm]{geometry}
\usepackage{scrpage2}
\usepackage{mwe}
\usepackage{ifoddpage}

\KOMAoptions{DIV=calc,BCOR=15mm}   

\newlength{\TextwithMargin}
\setlength{\TextwithMargin}{\textwidth}
\addtolength{\TextwithMargin}{\marginparwidth}
\addtolength{\TextwithMargin}{\marginparsep}

\pagestyle{scrheadings}
\clearscrheadfoot
\lehead[]{{\pagemark}\quad\rightmark}
\rohead[]{{\rightmark}\quad\pagemark}
\setheadwidth[]{textwithmarginpar} % As expected, I get the same result when using \TextwithMargin.


\begin{document}
\thispagestyle{scrheadings}
\addsec{Section}
\begin{figure}[hptp]
\checkoddpage
\edef\side{\ifoddpage l\else r\fi}%
\makebox[\textwidth][\side]{%
\parbox{\TextwithMargin}{%
\includegraphics[width=\linewidth]{example-image}
\caption{Example image.}
}}
\end{figure}
\end{document}

Antwort1

Ich verwende ein , headseplineum die Breite der Überschriften anzuzeigen.

Mit scrlayer-scrpageder Option headwidth=textwithmarginparfunktioniert es wie erwartet:

\documentclass[10pt]{scrbook}
%\providecommand*\Ifthispageodd{\ifthispageodd}% needed up to and including KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif
\usepackage{xltxtra}
\usepackage[paperwidth=170mm,paperheight=240mm]{geometry}
\KOMAoptions{DIV=calc,BCOR=15mm}

\newlength{\TextwithMargin}
\setlength{\TextwithMargin}{%
  \dimexpr\textwidth+\marginparwidth+\marginparsep\relax}

\usepackage[headwidth=textwithmarginpar,headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\lehead{{\pagemark}\quad\rightmark}
\rohead{{\rightmark}\quad\pagemark}

\usepackage{mwe}
\begin{document}
\addsec{Section}
\blindtext[4]
\begin{figure}[htb]
\Ifthispageodd{\edef\side{l}}{\edef\side{r}}%
\makebox[\textwidth][\side]{%
\parbox{\TextwithMargin}{%
\includegraphics[width=\linewidth]{example-image}
\caption{Example image.}
}}
\end{figure}
\end{document}

Bildbeschreibung hier eingeben

Beachten Sie, dass scrlayer-scrpagebei Verwendung dieser Option headwidth=textwithmarginpardie Überschrift nicht über dem Textbereich zentriert wird.

Zusätzlich definieren die KOMA-Script-Klassen einen Befehl \Ifthispageodd.


Hier ist auch ein Vorschlag mit dem veralteten Paketscrpage2

\documentclass[10pt]{scrbook}
%\providecommand*\Ifthispageodd{\ifthispageodd}% needed up to and including KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif
\usepackage{xltxtra}
\usepackage[paperwidth=170mm,paperheight=240mm]{geometry}
\KOMAoptions{DIV=calc,BCOR=15mm}

\newlength{\TextwithMargin}
\setlength{\TextwithMargin}{\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}

\usepackage[headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\lehead{{\pagemark}\quad\rightmark}
\rohead{{\rightmark}\quad\pagemark}
\setheadwidth[0pt]{textwithmarginpar}

\usepackage{mwe}
\begin{document}
\addsec{Section}
\blindtext[4]
\begin{figure}[htb]
\Ifthispageodd{\edef\side{l}}{\edef\side{r}}%
\makebox[\textwidth][\side]{%
\parbox{\TextwithMargin}{%
\includegraphics[width=\linewidth]{example-image}
\caption{Example image.}
}}
\end{figure}
\end{document}

Das Ergebnis ist das gleiche wie oben.

Beachten Sie, dass Sie das optionale Argument verwenden müssen:

\setheadwidth[0pt]{textwithmarginpar}

Wenn der optionale Offset 0ptfehlt, wird die Überschrift zentriert über dem Textbereich platziert.

Bildbeschreibung hier eingeben

verwandte Informationen