ミニページのコンテンツを垂直に揃える

ミニページのコンテンツを垂直に揃える

LaTeX Beamer では、ミニページまたは同様の環境内のコンテンツを、ミニページが存在しないかのように同じ高さに揃えたいと思います。

最小限の例:

\documentclass[t]{beamer}
\usepackage{tikz}

\begin{document}
\setlength\pdfpageheight{1.60cm}%
\setlength\pdfpagewidth{6cm}%

\begin{frame}{A\strut}
        \begin{itemize}
            \item X
        \end{itemize}
\end{frame}

\begin{frame}{B\strut}
    \begin{minipage}[t]{2cm}
        \vskip 0pt%
        \begin{itemize}
            \item X
        \end{itemize}
    \end{minipage}%
    \nolinebreak%
\begin{minipage}[t]{2cm}
        \vskip 0pt%
        \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=1cm] {};
        \end{tikzpicture}
    \end{minipage}%
\end{frame}

\begin{frame}{C\strut}
        \begin{tikzpicture}
            \node[fill=gray,minimum width=4cm,minimum height=1cm] {};
        \end{tikzpicture}
\end{frame}

\end{document}

ご覧のとおり、\item Xフレーム A と B では が上部揃えで異なっており、tikzpictureフレーム B と C では が上部揃えで異なっています。そして最も紛らわしいのは、\item Xと の間でも揃え方が異なっていることですtikzpicture

ミニページの使用により上部の配置が異なります

  • この異なる配置の原因は何でしょうか?
  • フレーム B の配置をフレーム A および C と同じになるように変更するにはどうすればよいでしょうか。

答え1

ベースラインではなく上揃え

\begin{minipage}[t]ミニページを最初のコンテンツ行のベースラインに揃えます。質問で既に使用されているように、をminipagea で始めると、\vskip 0pt%ベースラインがミニページの上部に配置され、実際の上部揃えが生成されます。

minipage水平モードにする

ミニページで外部と同じ動作を実現するには、 でミニページを水平モードにし\leavemode%、 で\vskip -\baselineskip%垂直オフセットを修正する必要があります。

すべてを一緒に入れて

すべてのミニページを次のように開始することで、目的の効果を作成できます。

\begin{minipage}[t]{2cm}
    \leavevmode%
    \vskip 0pt%
    \vskip -\baselineskip%

完全な最小限の例:

\documentclass[t]{beamer}

\usepackage{tikz}

\begin{document}

\setlength\pdfpageheight{1.6cm}%
\setlength\pdfpagewidth{6cm}%

\begin{frame}{A\strut}
        \begin{itemize}
            \item X
        \end{itemize}
\end{frame}

\begin{frame}{B\strut}
    \begin{minipage}[t]{2cm}%
        \leavevmode%
        \vskip 0pt%
        \vskip -\baselineskip%
        \begin{itemize}
            \item X
        \end{itemize}
    \end{minipage}%
    \nolinebreak%
    \begin{minipage}[t]{2cm}%
        \leavevmode%
        \vskip 0pt%
        \vskip -\baselineskip%
        \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=0.55cm] {};
        \end{tikzpicture}
    \end{minipage}%
\end{frame}

\begin{frame}{C\strut}
        \begin{tikzpicture}
            \node[fill=gray,minimum width=4cm,minimum height=0.55cm] {};
        \end{tikzpicture}
\end{frame}

-\end{document}

すべて適切に上揃え

答え2

これがあなたが探しているものですか

ここに画像の説明を入力してください

\documentclass[t]{beamer}
\usepackage{tikz}
\begin{document}

\begin{frame}
\begin{minipage}[t]{.1\textwidth}
A
\end{minipage}
\begin{minipage}[t]{.2\textwidth}
    \begin{itemize}
    \item X
    \item Y
    \item Z
    \end{itemize}
\end{minipage}
\begin{minipage}[t]{.3\textwidth}
    \begin{tikzpicture}
            \node[fill=gray,minimum width=2cm,minimum height=1cm] {tikz};
        \end{tikzpicture}
\end{minipage}

\end{frame}
\end{document}

また、以下もご覧ください--https://tex.stackexchange.com/a/272260/197451問題のため\itemize

回答があなたの要件を満たしていると思われる場合は、左側の赤い三角形とその下のチェックマークをクリックして、回答に賛成票を投じてください。

関連情報