Alinhe verticalmente o conteúdo da minipágina

Alinhe verticalmente o conteúdo da minipágina

Com o projetor de látex, gostaria de alinhar o conteúdo em minipáginas ou em um ambiente semelhante à mesma altura, como se não houvesse nenhuma minipágina presente.

Exemplo mínimo:

\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}

Como pode ser visto, o \item Xalinhamento superior é diferente nos quadros A e B, o tikzpicturealinhamento superior é diferente nos quadros B e C e, o que é mais confuso, a diferença no alinhamento também difere entre o \item Xe o tikzpicture.

Alinhamento superior diferente devido ao uso de minipáginas

  • O que está causando esses diferentes alinhamentos?
  • Como o alinhamento no quadro B pode ser alterado para ser igual ao dos quadros A e C?

Responder1

Alinhamento superior, não linha de base

\begin{minipage}[t]alinha as minipáginas à linha de base da primeira linha de conteúdo. Conforme já usado na pergunta, começar minipagecom a \vskip 0pt%faz com que a linha de base fique no topo da minipágina, produzindo, portanto, um verdadeiro alinhamento superior.

Coloque o minipagemodo horizontal

Para obter o mesmo comportamento na minipágina e fora dela, a minipágina deve ser colocada no modo horizontal com \leavemode%, seguido de \vskip -\baselineskip%para corrigir o deslocamento vertical.

Juntando tudo

O efeito desejado pode ser criado iniciando cada minipágina da seguinte forma:

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

Exemplo mínimo completo:

\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}

Tudo devidamente alinhado no topo

Responder2

É isso que você procura

insira a descrição da imagem aqui

\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}

Veja também--https://tex.stackexchange.com/a/272260/197451por problema com o\itemize

Se você acha que a resposta está de acordo com seus requisitos, vote positivamente na resposta clicando no triângulo vermelho à esquerda e na marca de seleção abaixo dele

informação relacionada