.beamer theme frametitle의 왼쪽 여백을 따라 실행하고 싶습니다 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}




