LaTeX beamer: способ изменения отступки пули? - программирование
Подтвердить что ты не робот

LaTeX beamer: способ изменения отступки пули?

Я проверил руководство Beamer Class (файл PDF).

Я не могу понять, как изменить присвоение пули отступа в \itemize.

[Это очень важно, поскольку я использую слайды с двумя столбцами, и я не хочу, чтобы лучер украл слишком много горизонтального пространства].

4b9b3361

Ответ 1

Beamer просто делегирует ответственность за управление компоновкой окружения itemize назад к базовым пакетам LaTeX, поэтому вам нечего делать в самом Beamer, чтобы изменить apperaance/layout ваших списков.

Так как Beamer переопределяет itemize, item и т.д., вполне правильный способ манипулирования такими вещами, как отступ, - это переопределить шаблоны Beamer. У меня создается впечатление, что вы не собираетесь идти так далеко, но если это не так, дайте мне знать, и я уточню.

Существует как минимум три способа достижения цели из вашего документа, без проблем с шаблонами Beamer.

С itemize

В следующем фрагменте кода вы можете изменить значение \itemindent с 0em на все, что захотите, включая отрицательные значения. 0em - это отступ по умолчанию.

Преимущество этого метода состоит в том, что этот список оформлен в обычном порядке. Недостатком является то, что переопределение Beamer itemize и \item означает, что количество параметров, которые могут быть изменены для изменения макета списка, ограничено. Это может быть очень трудно получить расстояние между несколькими пунктами.

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

С list

В следующем фрагменте кода второй параметр \list - это пуля, а третий параметр - список параметров макета для изменения. Параметр \leftmargin настраивает отступ всего элемента списка и всех его строк; \itemindent изменяет отступ последующих строк.

Преимущество этого метода заключается в том, что у вас есть вся гибкость списков в не-Beamer LaTeX. Недостатком является то, что вам нужно вручную настроить стиль (и другие визуальные элементы) (или определить правильную команду для используемого шаблона). Обратите внимание: если вы оставите второй аргумент пустым, пуля не будет отображаться, и вы сохраните некоторое горизонтальное пространство.

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

Определение среды customlist

Недостатки решения list могут быть улучшены путем определения новой среды customlist, которая в основном переопределяет среду itemize из Beamer, но также включает параметры \leftmargin и \itemindent (и т.д.). Поместите в преамбулу следующее:

\makeatletter
\newenvironment{customlist}[2]{
  \ifnum\@itemdepth >2\relax\@toodeep\else
      \advance\@itemdepth\@ne%
      \[email protected]\@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

Теперь, чтобы использовать подробный список с пользовательским отступом, вы можете использовать следующую среду. Первый аргумент для \leftmargin, а второй - для \itemindent. Значения по умолчанию: 2.5em и 0em соответственно.

\begin{customlist}{2.5em}{0em}
   \item Any normal item can go here.
\end{customlist}

Ответ 2

Я использую пакет enumitem. Затем вы можете установить такие поля, когда вы объявляете свои списки (перечислять, описывать, детализировать):

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

Естественно, пакет предоставляет множество других приятных настроек для списков (используйте 'label =' для изменения маркера, используйте 'itemsep =' для изменения расстояния между элементами, и т.д....)

Ответ 3

Настройка \itemindent для новой среды itemize решает проблему:

\newenvironment{beameritemize}
{ \begin{itemize}
  \setlength{\itemsep}{1.5ex}
  \setlength{\parskip}{0pt}
  \setlength{\parsep}{0pt}   
  \addtolength{\itemindent}{-2em}  }
{ \end{itemize} }