Latex beamer: comment changer l'indentation de la balle?

j'ai vérifié le manuel de la classe Beamer (fichier PDF).

Je ne vois pas comment modifier l'indentation assignée à itemize.

[C'est un peu important, car j'utilise 2 diapos de colonne, et je ne veux pas que beamer vole trop d'espace horizontal].

36
demandé sur Peter Mortensen 2010-04-10 02:10:51

3 réponses

Beamer délègue simplement la responsabilité de gérer la mise en page de itemize renvoie les environnements aux paquets LaTeX de base, donc il n'y a rien de funky que vous devez faire dans Beamer lui-même pour modifier l'apparence / layout de vos listes.

depuis Beamer redéfinit les itemize, item, etc. entièrement bonne façon de manipuler des choses comme l'indentation est de redéfinir les modèles de Projecteur. J'ai l'impression que vous ne cherchez pas à aller aussi loin, mais si ce n'est pas le cas, faites le moi savoir et Je vais essayer d'approfondir.

il y a au moins trois façons d'atteindre votre but à partir de votre document, sans se perdre dans les gabarits de projecteurs.

itemize

Dans l'extrait de code suivant, vous pouvez modifier la valeur de \itemindent0em pour tout ce que vous s'il vous plaît, y compris les valeurs négatives. 0em est l'indentation par défaut de l'élément.

L'avantage de cette méthode est que la liste est de style normalement. L'inconvénient est que Beamer de la redéfinition de l' itemize et \item signifie que le nombre de paramètres pouvant être manipulés pour modifier la disposition de la liste est limité. Il peut être très difficile d'obtenir l'espacement droit avec multi-éléments.

\begin{itemize}
  \setlength{\itemindent}{0em}
  \item This is a normally-indented item.
\end{itemize}

list

Dans l'extrait de code suivant, le second paramètre \list est la balle à utiliser, et le troisième paramètre est une liste de paramètres de mise en page à modifier. \leftmargin le paramètre ajuste l'indentation de l'ensemble élément de la liste et l'ensemble de ses lignes; \itemindent modifie l'indentation des lignes suivantes.

l'avantage de cette méthode est que vous avez toute la flexibilité des listes dans LaTeX Non-Beamer. L'inconvénient est que vous devez configurer le style de la balle (et d'autres éléments visuels) manuellement (ou identifier la bonne commande pour le modèle que vous utilisez). Notez que si vous laissez le second argument vide, aucune balle ne s'affichera et vous enregistrerez un peu de horizontal espace.

\begin{list}{$\square$}{\leftmargin=1em \itemindent=0em}
  \item This item uses the margin and indentation provided above.
\end{list}

Définition d'un customlist environnement

Les lacunes de l' list on peut améliorer la solution en définissant un nouveau customlist environnement qui redéfinit fondamentalement le itemize environnement de Beamer mais incorpore également le \leftmargin et \itemindent (etc.) paramètre. Inscrivez ce qui suit dans votre préambule:

\makeatletter
\newenvironment{customlist}[2]{
  \ifnum\@itemdepth >2\relax\@toodeep\else
      \advance\@itemdepth\@ne%
      \beamer@computepref\@itemdepth%
      \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
      \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
      \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
      \begin{list}
        {
            \usebeamertemplate{itemize \beameritemnestingprefix item}
        }
        { \leftmargin=#1 \itemindent=#2
            \def\makelabel##1{%
              {%  
                  \hss\llap{{%
                    \usebeamerfont*{itemize \beameritemnestingprefix item}%
                        \usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
              }%  
            }%  
        }
  \fi
}
{
  \end{list}
  \usebeamertemplate{itemize/enumerate \beameritemnestingprefix body end}%
}
\makeatother

maintenant, pour utiliser une liste détaillée avec indentation personnalisée, vous pouvez utiliser l'environnement suivant. Le premier argument est pour \leftmargin et la seconde est pour l' \itemindent. Les valeurs par défaut sont respectivement 2.5 em et 0em.

\begin{customlist}{2.5em}{0em}
   \item Any normal item can go here.
\end{customlist}
52
répondu RTBarnard 2010-04-10 08:59:42

j'utilise le paquet enumitem. Vous pouvez alors définir de telles marges lorsque vous déclarez vos listes (énumérer, décrire, énumérer):

\begin{itemize}[leftmargin=0cm]
    \item Foo
    \item Bar
\end{itemize}

naturellement, le paquet fournit beaucoup d'autres personnalisations intéressantes pour les listes (Utilisez 'label=' pour changer la puce, utilisez 'itemsep=' pour changer l'espacement entre les éléments, etc...)

13
répondu Geoff 2010-04-10 12:51:27

\itemindent pour une nouvelle détailler environnement de résoudre le problème:

\newenvironment{beameritemize}
{ \begin{itemize}
  \setlength{\itemsep}{1.5ex}
  \setlength{\parskip}{0pt}
  \setlength{\parsep}{0pt}   
  \addtolength{\itemindent}{-2em}  }
{ \end{itemize} } 
4
répondu Gergely 2015-03-24 10:58:13