헤더 옆 여백의 이미지

헤더 옆 여백의 이미지

헤더 옆 여백에 이미지를 추가하고 싶습니다. 이미지 하단은 헤더 기준선과 정렬되어야 합니다. 내 MWE(아래 참조)에서 이미지 상단은 헤더 상단으로 조정됩니다.

기준선에서 이미지를 어떻게 조정할 수 있나요?

다른 개선 사항을 제안하시나요? 예를 들어 marginnote에서 사용하는 것이 합리적입니까 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}

답변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로 분할할 필요는 없습니다 . 그리고 일반 페이지의 이미지를 활성화하려면 주석이 달린 단일 행을 활성화하기만 하면 됩니다.\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}

관련 정보