Gostaria de adicionar uma imagem na margem ao lado do cabeçalho. A parte inferior da imagem deve estar alinhada com a linha de base do cabeçalho. No meu MWE (veja abaixo) o topo da imagem é ajustado com o topo do cabeçalho.
Como posso ajustar a imagem na linha de base?
Você sugere outras melhorias? Por exemplo, faz sentido usar marginnote
in ihead
?
MWE:
\documentclass{scrreprt}
\usepackage{blindtext, graphicx, marginnote}
\usepackage[twoside = true]{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\ihead{%
\marginnote{%
\includegraphics[width=\marginparwidth]{example-image-a}%
}
}
\begin{document}
\Blinddocument
\end{document}
Responder1
Eu não usaria, marginnote
mas apenas scrlayer-scrpage
:
\documentclass{scrreprt}
\usepackage{mwe,graphicx}
\usepackage[twoside = true]{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\rohead{\headmark\makebox[0pt][l]{\hskip\marginparsep\includegraphics[width=\marginparwidth]{example-image-a}}}
\lehead{\makebox[0pt][r]{\includegraphics[width=\marginparwidth]{example-image-a}\hskip\marginparsep}\headmark}
\begin{document}
\Blinddocument
\end{document}
Você também pode adicionar sua própria camada ao estilo da página scrheadings
e, se desejar, a imagem também em páginas simples plain.scrheadings
:
\documentclass{scrreprt}
\usepackage{mwe,graphicx}
\usepackage[twoside = true]{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\DeclareNewLayer[background,
head,
addhoffset=\ifodd\value{page}\textwidth+\marginparsep\else-\marginparwidth-\marginparsep\fi,
width=\marginparwidth,% optional reduce layer width
contents={\includegraphics[width=\marginparwidth]{example-image-a}}]{image}
\AddLayersToPageStyle{scrheadings}{image}
%\AddLayersToPageStyle{plain.scrheadings}{image}
\begin{document}
\Blinddocument
\end{document}
O resultado é o mesmo, mas você não precisa dividir \ihead
em \lehead
e \rohead
. E basta ativar a única linha comentada para ativar a imagem para páginas simples.
Aliás: eu sugeriria colocar a imagem uma vez em uma caixa e usar a caixa em cada página:
\documentclass{scrreprt}
\usepackage{mwe,graphicx}
\usepackage[twoside = true]{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\newsavebox\headimagebox
\AtBeginDocument{\sbox\headimagebox{\includegraphics[width=\marginparwidth]{example-image-a}}}
\DeclareNewLayer[background,
head,
addhoffset=\ifodd\value{page}\textwidth+\marginparsep\else-\wd\headimagebox-\marginparsep\fi,
width=\marginparwidth,
contents=\usebox\headimagebox]{image}
\AddLayersToPageStyle{scrheadings}{image}
\AddLayersToPageStyle{plain.scrheadings}{image}% used on chapter start page
\begin{document}
\Blinddocument
\end{document}
E se o código deve colocar o logotipo sempre à direita no modo single-side:
\documentclass{scrreprt}
%\documentclass[twoside]{scrreprt}
\usepackage{mwe,graphicx}
\usepackage{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\newsavebox\headimagebox
\AtBeginDocument{\sbox\headimagebox{\includegraphics[width=\marginparwidth]{example-image-a}}}
\makeatletter
\DeclareNewLayer[background,
head,
addhoffset=\ifcase\if@twoside \ifodd\value{page} 0 \else 1 \fi\else 0 \fi\textwidth+\marginparsep\else-\wd\headimagebox-\marginparsep\fi,
width=\marginparwidth,
contents=\usebox\headimagebox]{image}
\makeatother
\AddLayersToPageStyle{scrheadings}{image}
\AddLayersToPageStyle{plain.scrheadings}{image}% used on chapter start page
\begin{document}
\Blinddocument
\end{document}
Mas neste caso poderia ser mais fácil usar camadas diferentes para as páginas esquerda e direita:
\documentclass{scrreprt}
%\documentclass[twoside]{scrreprt}
\usepackage{mwe,graphicx}
\usepackage{geometry}
\usepackage[automark, headsepline, footsepline, plainfootsepline]{scrlayer-scrpage}
\newsavebox\headimagebox
\AtBeginDocument{\sbox\headimagebox{\includegraphics[width=\marginparwidth]{example-image-a}}}
\DeclareNewLayer[background,
oddpage,% for right pages in double-side mode or all pages in single-side mode
head,
addhoffset=\textwidth+\marginparsep,
width=\marginparwidth,
contents=\usebox\headimagebox]{image.odd}
\DeclareNewLayer[background,
evenpage,% for left pages in double-side mode
head,
addhoffset=-\wd\headimagebox-\marginparsep,
width=\marginparwidth,
contents=\usebox\headimagebox]{image.even}
\AddLayersToPageStyle{scrheadings}{image.odd,image.even}
\AddLayersToPageStyle{plain.scrheadings}{image.odd,image.even}% used on chapter start page
\begin{document}
\Blinddocument
\end{document}