web-dev-qa-db-ja.com

LaTeX beamer:弾丸のインデントを変更する方法?

Beamer Classマニュアル(PDFファイル)を確認しました。

インデントの箇条書きを\ itemizeに変更する方法がわかりません。

[これは、2列のスライドを使用しているため、一種重要です。Beamerがあまりにも多くの水平スペースを盗むのは望ましくありません]。

43
anon

Beamerは、itemize環境のレイアウトを管理する責任を基本のLaTeXパッケージに委任するだけなので、リストの外観/レイアウトを変更するためにBeamer自体で行う必要のある面白いことは何もありません。

Beamerはitemize、itemなどを再定義するため、インデントなどを操作する完全に適切な方法は、Beamerテンプレートを再定義することです。あなたはそこまで行きたくないという印象を受けますが、そうでない場合はお知らせください。詳しく説明します。

Beamerテンプレートに煩わされることなく、ドキュメント内から目的を達成する方法は少なくとも3つあります。

itemizeあり

次のコードスニペットでは、\itemindentの値を0emから負の値を含む任意の値に変更できます。 0emはデフォルトのアイテムのインデントです。

この方法の利点は、リストが通常のスタイルになっていることです。欠点は、Beamerのitemizeおよび\itemの再定義は、リストレイアウトを変更するために操作できるパラメーターの数が制限されることを意味します。複数行の項目で間隔を正しく取るのは非常に難しい場合があります。

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

listあり

次のコードスニペットでは、\listの2番目のパラメーターは使用する箇条書きで、3番目のパラメーターは変更するレイアウトパラメーターのリストです。 \leftmarginパラメーターは、リストアイテム全体とそのすべての行のインデントを調整します。 \itemindentは、後続の行のインデントを変更します。

この方法の利点は、非Beamer LaTeXのリストの柔軟性をすべて備えていることです。欠点は、箇条書きスタイル(およびその他の視覚要素)を手動で設定する必要があることです(または、使用しているテンプレートに適切なコマンドを識別する必要があります)。 2番目の引数を空のままにすると、箇条書きは表示されず、水平方向のスペースを節約できることに注意してください。

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

customlist環境の定義

listソリューションの欠点は、Beamerからのcustomlist環境を基本的に再定義するが、\leftmarginおよび\itemindentも組み込む新しいitemize環境を定義することにより改善できます。 (など)パラメータ。前文に以下を記入してください。

\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

さて、カスタムインデントで項目リストを使用するには、次の環境を使用できます。最初の引数は\leftmargin用で、2番目の引数は\itemindent用です。デフォルト値はそれぞれ2.5emと0emです。

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

カスタム箇条書きスタイルは、\setbeamertemplateの標準ビーマーメカニズムを使用して、customlistソリューションに組み込むことができます。 (詳細については、TeX Stack Exchangeの this 質問への回答を参照してください。)

あるいは、\usebeamertemplate{itemize \beameritemnestingprefix item}を使用したい弾丸スタイル(たとえば、$\square$)に置き換えることにより、弾丸スタイルを環境内で直接変更することもできます。

60
RTBarnard

パッケージenumitemを使用します。リストを宣言するときに、そのようなマージンを設定できます(列挙、説明、項目化):

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

当然、このパッケージはリストに他の多くの素敵なカスタマイズを提供します(箇条書きを変更するには 'label ='を使用し、項目間の間隔を変更するには 'itemsep ='を使用します etc ...

13
Geoff

設定\itemindent新しいアイテム化環境では、問題が解決します。

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