Beamer에서 항목화/열거 기호의 수직 배치

Beamer에서 항목화/열거 기호의 수직 배치

표준 항목화 및 열거 기호의 수직 정렬은 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를 위해 사용하지만 circleenumerate(숫자를 더 명확하게 보이도록 만들기)를 위해 사용합니다. 내 눈에는 이 두 상징이 너무 낮게 위치해 있습니다. 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

사용할 수 있는 방법에는 여러 가지가 있습니다. 여기 두 가지 간단한 것들이 있습니다:

  1. 예를 들어 enumerate item대신에 새 이름으로 정의하십시오 .mycirclecircle

  2. 다른 템플릿 간에 전환할 필요가 없으면 를 사용하여 \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}

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

관련 정보