
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]
ミニページを最初のコンテンツ行のベースラインに揃えます。質問で既に使用されているように、をminipage
a で始めると、\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
回答があなたの要件を満たしていると思われる場合は、左側の赤い三角形とその下のチェックマークをクリックして、回答に賛成票を投じてください。