표준 항목화 및 열거 기호의 수직 정렬은 Beamer에서 일관되지 않습니다. 다음은 몇 가지 공통 기호와 수동으로 배치된 참조선이 있는 MWE입니다. 출력, 코드:
\documentclass{beamer}
\usepackage[absolute,overlay]{textpos}
\begin{document}
\begin{frame}
\begin{columns}[onlytextwidth]
\column{0.15\textwidth}
\setbeamertemplate{enumerate item}[circle]
\setbeamertemplate{itemize item}[circle]
\begin{itemize}
\item Txq
\end{itemize}
\begin{enumerate}
\item Txq
\end{enumerate}
\column{0.15\textwidth}
\setbeamertemplate{enumerate item}[ball]
\setbeamertemplate{itemize item}[ball]
\begin{itemize}
\item Txq
\end{itemize}
\begin{enumerate}
\item Txq
\end{enumerate}
\column{0.7\textwidth}
\setbeamertemplate{enumerate item}[square]
\setbeamertemplate{itemize item}[default]
\begin{itemize}
\item Txq
\end{itemize}
\begin{enumerate}
\item Txq
\end{enumerate}
\end{columns}
\begin{textblock*}{3cm}(11mm,37.58mm)
\rule{46mm}{0.1pt}
\end{textblock*}
\begin{textblock*}{3cm}(11mm,44.46mm)
\rule{46mm}{0.1pt}
\end{textblock*}
\end{frame}
\end{document}
기호가 정확히 어디에 중앙에 위치해야 하는지는 취향의 문제일 수 있지만 그 중 일부는 제대로 보이지 않으며 두 개 이상의 기호(예: 항목에 대해 하나, 하위 항목에 대해 하나)를 사용할 때 불일치가 분명히 나쁩니다. (여기서 Beamer를 개선할 여지가 있는 것 같습니다.) 어떻게 고치나요?
나는 ball
기본적으로 itemize를 위해 사용하지만 circle
enumerate(숫자를 더 명확하게 보이도록 만들기)를 위해 사용합니다. 내 눈에는 이 두 상징이 너무 낮게 위치해 있습니다. beamerbaseauxtemplates.sty
아래에 따라 편집하여 수직 배치를 조정할 수 있음을 발견했습니다 . 변경 사항이 어디에 있는지는 댓글을 참조하세요.
% Itemize items, ball
\defbeamertemplate{itemize item}{ball}{\raise0.9pt\beamer@usesphere{item projected}{bigsphere}} % "raise" increased to lift the ball
[...]
% Enumerate items, circle
\defbeamertemplate{enumerate item}{circle}
{
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\begin{pgfpicture}{-1ex}{-0.3ex}{1ex}{2ex} % second argument lowered to raise the circle
\pgfpathcircle{\pgfpoint{0pt}{.75ex}}{1.2ex}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertenumlabel}
\end{pgfpicture}
}
그러나 파일 자체에서 조정을 수행하는 것이 더 나은 것 같습니다(그래서 어디에서나 동일한 출력이 안정적으로 생성됩니다). 이러한 변경 사항을 문서의 서문에 적용하려고 할 때 막히게 됩니다.
답변1
사용할 수 있는 방법에는 여러 가지가 있습니다. 여기 두 가지 간단한 것들이 있습니다:
예를 들어
enumerate item
대신에 새 이름으로 정의하십시오 .mycircle
circle
다른 템플릿 간에 전환할 필요가 없으면 를 사용하여
\setbeamertemplate{enumerate item}{...}
템플릿을 직접 정의 할 수 있습니다.
이 두 가지 방법 모두 원래 정의를 계속 사용할 수 있다는 장점이 있습니다.
이 외에도 주석에서 @Marijn이 제안한 대로 템플릿을 다시 정의하기 전에 템플릿 정의를 취소하거나 템플릿을 패치할 수 있습니다.
\documentclass{beamer}
% methode 1:
\defbeamertemplate{enumerate item}{mycircle}
{
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\begin{pgfpicture}{-1ex}{-2ex}{1ex}{2ex} % second argument lowered to raise the circle
\pgfpathcircle{\pgfpoint{0pt}{.75ex}}{1.2ex}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertenumlabel}
\end{pgfpicture}%
}
[action]
{\setbeamerfont{item projected}{size=\scriptsize}}
\setbeamertemplate{enumerate item}[mycircle]
\makeatletter
\defbeamertemplate{itemize item}{myball}{\raise4pt\beamer@usesphere{item projected}{bigsphere}}
\makeatother
\setbeamertemplate{itemize item}[myball]
% methode 2:
%\setbeamertemplate{enumerate item}
%{
% \usebeamerfont*{item projected}%
% \usebeamercolor[bg]{item projected}%
% \begin{pgfpicture}{-1ex}{-2ex}{1ex}{2ex} % second argument lowered to raise the circle
% \pgfpathcircle{\pgfpoint{0pt}{.75ex}}{1.2ex}
% \pgfusepath{fill}
% \pgftext[base]{\color{fg}\insertenumlabel}
% \end{pgfpicture}%
%}
%\setbeamerfont{item projected}{size=\scriptsize}
%
%\makeatletter
%\setbeamertemplate{itemize item}{\raise4pt\beamer@usesphere{item projected}{bigsphere}}
%\makeatother
\begin{document}
\begin{frame}
\begin{enumerate}
\item Txq
\end{enumerate}
\begin{itemize}
\item Txq
\end{itemize}
\end{frame}
\end{document}