画像の幅 = ヘッドが textwithmarginpar の場合のヘッド幅

画像の幅 = ヘッドが textwithmarginpar の場合のヘッド幅

scrbookと をscrpage2headwith で使用してtextwithmarginpar、テキスト本文の個々の画像をこの広い headwidth に設定しようとしています。\hoffsetは です0pt。、 および を加算すると、\textwidthheadwidthよりも大きくなりますが、画像とページ番号が同じ行で終了しません。headwidth に影響する別の長さがあるようです。何かアイデアがあれば教えてください。\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}

答え1

headsepline見出しの幅を示すためにを使用します。

scrlayer-scrpageオプションを使用するとheadwidth=textwithmarginpar期待どおりに動作します:

\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}

ここに画像の説明を入力してください

注意: scrlayer-scrpagewith オプションを使用すると、headwidth=textwithmarginpar見出しはテキスト領域の上部の中央に配置されません。

さらに、KOMA スクリプト クラスはコマンドを定義します\Ifthispageodd


廃止されたパッケージに関する提案もありますscrpage2

\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}

結果は上記と同じです。

オプションの引数を使用する必要があることに注意してください:

\setheadwidth[0pt]{textwithmarginpar}

オプションのオフセット0ptがない場合、見出しはテキスト領域の上部の中央に配置されます。

ここに画像の説明を入力してください

関連情報