비머 테마의 프레임 제목 위치

비머 테마의 프레임 제목 위치

.beamer themeframetitle의 왼쪽 여백을 따라 실행하고 싶습니다 frame. 그래서 저는 이 MWE를 씁니다.

\documentclass{beamer}
\title{Title}
\author{John Smith}
\date{\today}
\usepackage{tikz}
\setbeamertemplate{frame numbering}{\insertframenumber}

\defbeamertemplate{frametitle}{plain}{%
  \nointerlineskip%
  \rotatebox[origin=c]{90}{\begin{beamercolorbox}[%
      wd=\paperheight,%
      sep=0pt,%
      leftskip=0cm,%
      rightskip=1cm,%
    ]{frametitle}%%
            \begin{tikzpicture}[baseline={(0,0)}]
            \fill[fg] (0,.5ex-1.5pt) rectangle (.1*\paperheight,.5ex+1.5pt);
        \end{tikzpicture}%
  \insertframetitle%
  \nolinebreak%%
  \hfill
  \rotatebox[origin=c]{270}{\usebeamertemplate*{frame numbering}}%
  \end{beamercolorbox}}%
}
\setbeamertemplate{frametitle}[plain]

\begin{document}
\begin{frame}[t]{Frame Title}
\end{frame}
\end{document}

이는 다음과 같은 결과를 생성합니다

여기에 이미지 설명을 입력하세요

이는 두 가지 주요 이유로 작동하지 않습니다. (1) 이 frametitle정확히 왼쪽 여백에 있지 않지만 약간의 공간이 있습니다. (2) 내용이 이후로 이동합니다 frametitle. 이 두 가지 문제를 해결할 수 있는 방법이 있나요? 나는 패키지 overlay/remember picture 에서 사용하지 않는 것을 선호합니다 tikz.

내가 시도한 것sidebar left템플릿이 아닌 템플릿을 수정해 보았습니다 frametitle. 이 접근 방식에는 몇 가지 문제가 있습니다. (1) 덮어쓰거나 \useoutertheme{sidebar}적어도 덮어쓰고 옆에 배치되지 않습니다. (2) 사이드바의 너비가 내용에 따라 변경되지 않으며 긴 제목이 내용과 겹칠 수 있습니다. 내용 (3) 의 여백을 변경합니다 titlepage.

답변1

  • (1) 프레임 제목이 정확히 왼쪽 여백에 있지는 않지만 약간의 공간이 있습니다.

    상자를 왼쪽으로 이동\beamer@leftmargin

  • (2) 콘텐츠가 프레임 제목 뒤에 이동합니다.

    상자를 부수면 제목 상자가 수직 공간을 차지하지 않아 프레임 본체가 아래로 밀리지 않는지 확인할 수 있습니다.

  • (2) 사이드바의 너비는 내용에 따라 변하지 않으며, 긴 제목이 내용과 겹칠 수 있습니다.

    이 문제는 아래 솔루션에서 해결되지 않습니다. 프레임 제목이 텍스트 영역의 너비에 영향을 미치도록 하려면 Beamer가 프레임을 구성하는 방법을 다시 작성해야 할 수도 있습니다.

    어쩌면 더 쉬운 접근 방식은 프레임 제목 두 줄에 맞도록 왼쪽 텍스트 여백을 늘리는 것입니다.

아래 코드의 일부 숫자는 약간의 미세 조정이 필요할 수 있습니다.

\documentclass{beamer}
\title{Title}
\author{John Smith}
\date{\today}
\usepackage{tikz}
\setbeamertemplate{frame numbering}{\insertframenumber}

\makeatletter
\defbeamertemplate{frametitle}{plain}{%
  \hspace{-\beamer@leftmargin}%
  \smash{\rotatebox[origin=tr]{90}{\begin{beamercolorbox}[%
      wd=\paperheight,%
      sep=0pt,%
      leftskip=0cm,%
      rightskip=0cm,%
      vmode
    ]{frametitle}%%
    \hspace*{0.1em}
    \parbox[t]{.85\linewidth}{%
            \begin{tikzpicture}[baseline={(0,0)}]
            \fill[fg] (0,.5ex-1.5pt) rectangle (.1*\paperheight,.5ex+1.5pt);
        \end{tikzpicture}%
  \strut\insertframetitle}%
  \hfill
  \parbox{.1\linewidth}{\hfill\rotatebox[origin=c]{270}{\usebeamertemplate*{frame numbering}}\hspace{0.35em}\mbox{}}%
  \end{beamercolorbox}}}%
  \vskip-1.47em
}
\makeatother
\setbeamertemplate{frametitle}[plain]




\begin{document}
\begin{frame}[t]{Frame Title}
ghds
\end{frame}



\begin{frame}[t]
ghds
\end{frame}

\begin{frame}[t]{Frame Title which is terrible long and occupies two line}
ghds
\end{frame}

\begin{frame}[t]{Frame Title}
ghds
\end{frame}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보