Colocação vertical de símbolos de itemização/enumeração no Beamer

Colocação vertical de símbolos de itemização/enumeração no Beamer

O alinhamento vertical dos símbolos padrão de itemização e enumeração não é consistente no Beamer. Abaixo está um MWE com alguns símbolos comuns e linhas de referência colocadas manualmente. Saída, código: Saída

\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}

Exatamente onde os símbolos devem ser centralizados talvez seja uma questão de gosto, mas alguns deles não parecem corretos, e quando se utiliza mais de um símbolo (por exemplo, um para itens, outro para subitens), a inconsistência é obviamente ruim. (Aqui parece haver espaço para algumas melhorias no Beamer.) Como consertar isso?

Eu uso ballpor padrão para discriminar, mas circlepara enumerar (tornando os números mais claramente visíveis). Ambos os símbolos estão, aos meus olhos, muito baixos. Descobri que o posicionamento vertical pode ser ajustado editando beamerbaseauxtemplates.styde acordo com o abaixo. Veja os comentários para saber onde estão as mudanças.

% 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}
}

No entanto, parece melhor fazer os ajustes nos próprios arquivos (para que a mesma saída seja produzida de forma confiável em todos os lugares). Fico preso ao tentar adaptar essas alterações ao preâmbulo do documento.

Responder1

Existem vários métodos que você pode usar. Aqui estão dois simples:

  1. defina o enumerate itemsob um novo nome, por exemplo, mycircleem vez decircle

  2. se você não precisar alternar entre modelos diferentes, poderá usar \setbeamertemplate{enumerate item}{...}para definir diretamente o modelo

Ambos os métodos têm a vantagem de ainda ter a definição original disponível.

Além disso, você pode indefinir os modelos antes de redefini-los, conforme sugerido por @Marijn nos comentários, ou corrigir os modelos.

\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}

insira a descrição da imagem aqui

informação relacionada