ヘッダー横の余白にある画像

ヘッダー横の余白にある画像

ヘッダーの横の余白に画像を追加したいと思います。画像の下部はヘッダーのベースラインに合わせる必要があります。私の MWE (下記参照) では、画像の上部はヘッダーの上部に合わせて調整されています。

ベースラインで画像を調整するにはどうすればよいですか?

他に改善点はありますか? たとえば、 を使用するのは意味があるでしょうmarginnoteihead?

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}

答え1

marginnote私は以下だけは使用しません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}

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

ページ スタイルに独自のレイヤーを追加しscrheadings、プレーン ページにも画像を表示したい場合は、次の操作を行うこともできます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}

結果は同じですが、 を と に分割する必要はありません。\iheadまた、プレーン ページの画像を有効にするには、コメント行を 1 つ有効にするだけです。\lehead\rohead

ところで、画像を一度ボックスに入れて、各ページでそのボックスを使用することをお勧めします。

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

コードが片面モードでロゴを常に右側に配置する場合:

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

しかし、この場合は、左ページと右ページに異なるレイヤーを使用する方が簡単かもしれません。

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

関連情報