Colocación vertical de símbolos de detallar/enumerar en Beamer

Colocación vertical de símbolos de detallar/enumerar en Beamer

La alineación vertical de los símbolos estándar de detallar y enumerar no es consistente en Beamer. A continuación se muestra un MWE con algunos símbolos comunes y líneas de referencia colocadas manualmente. Salida, código: Producción

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

Exactamente dónde deben centrarse los símbolos es tal vez una cuestión de gustos, pero algunos de ellos no se ven bien y cuando se usa más de un símbolo (por ejemplo, uno para elementos, otro para subelementos), la inconsistencia es obviamente mala. (Aquí parece haber margen para algunas mejoras en Beamer). ¿Cómo solucionarlo?

Lo uso ballpor defecto para detallar, pero circlepara enumerar (haciendo que los números sean más claramente visibles). En mi opinión, ambos símbolos están colocados demasiado bajos. Descubrí que la ubicación vertical se puede ajustar editando beamerbaseauxtemplates.styde acuerdo con lo siguiente. Vea los comentarios para saber dónde están los cambios.

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

Sin embargo, parece mejor hacer los ajustes en los propios archivos (para que se produzca el mismo resultado de forma fiable en todas partes). Me quedo atascado al intentar adaptar estos cambios al preámbulo del documento.

Respuesta1

Hay varios métodos que puedes utilizar. Aquí dos simples:

  1. definir el enumerate itembajo un nuevo nombre, por ejemplo, mycircleen lugar decircle

  2. Si no necesita cambiar entre diferentes plantillas, puede usar \setbeamertemplate{enumerate item}{...}para definir directamente la plantilla.

Ambos métodos tienen la ventaja de que todavía tienes disponible la definición original.

Además de esto, puede anular la definición de las plantillas antes de redefinirlas, como lo sugiere @Marijn en los comentarios, o puede parchear las plantillas.

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

ingrese la descripción de la imagen aquí

información relacionada