Largura da imagem = largura do cabeçalho quando o cabeçalho é textwithmarginpar

Largura da imagem = largura do cabeçalho quando o cabeçalho é textwithmarginpar

Usando scrbooke scrpage2com um headwith de textwithmarginpar, estou tentando definir imagens individuais no corpo do texto para essa largura de cabeçalho mais ampla. \hoffseté 0pt. Somando \textwidthe me \marginparwidth\marginparsepmais do que a largura da cabeça, no entanto: imagem e número da página não terminam na mesma linha. Parece haver outro comprimento afetando a largura da cabeça. Grato por qualquer ideia!

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

Responder1

Usarei a headseplinepara mostrar a largura dos títulos.

Com scrlayer-scrpagea opção headwidth=textwithmarginparfunciona conforme o esperado:

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

insira a descrição da imagem aqui

Observe que usando scrlayer-scrpagea opção with , headwidth=textwithmarginparo título não fica centralizado acima da área de texto.

Além disso, as classes KOMA-Script definem um comando \Ifthispageodd.


Aqui também fica uma sugestão com o pacote obsoletoscrpage2

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

O resultado é o mesmo acima.

Observe que você deve usar o argumento opcional:

\setheadwidth[0pt]{textwithmarginpar}

Se o deslocamento opcional 0ptestiver faltando, o título será centralizado acima da área de texto.

insira a descrição da imagem aqui

informação relacionada