Alinhe o marcador de itens no ambiente tikz

Alinhe o marcador de itens no ambiente tikz

Ao colocar um tikzpictureambiente dentro de outro itemizeambiente, o marcador não fica alinhado corretamente com a tikzimagem. Neste caso, "correto" significa que o marcador deve estar centralizado verticalmente em relação à imagem.

Anteriormente, apenas ajustei baselinemanualmente para conseguir o que desejo, mas o ajuste dependerá da fonte que estou usando, etc.número mágicono meu ajuste de linha de base, para que ele se ajuste automaticamente à fonte que estou usando. Alguma sugestão de como fazer isso?

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{itemize}
    \item
        \begin{tikzpicture}%[baseline = -2.5pt] % magic number tweak
            \draw [very thick, ->] (0,0) -- (2,0);
            \node[left] at (0,0) {XX};
            \node[right] at (2,0) {YY};
        \end{tikzpicture}
\end{itemize}

\end{document}

insira a descrição da imagem aqui

Responder1

É melhor alinhar a um ponto natural conhecido em um nó:

Exemplo de saída

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{itemize}
\item
  \begin{tikzpicture}[baseline=(A.base)] % magic number tweak
    \draw [very thick, ->] (0,0) -- (2,0);
    \node[left] at (0,0) (A) {XX};
    \node[right] at (2,0) {YY};
  \end{tikzpicture}
\item \( X \)
\end{itemize}

\end{document}

Se você quiser consertar o alinhamento horizontal (o que você não perguntou, mas Barbara Beeton sim), então você terá que trabalhar um pouco mais.

Amostra com espaçamento horizontal

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{itemize}
\item
  \begin{tikzpicture}[baseline=(A.base)] % magic number tweak
    \node at (0,0) (A) {XX};
    \pgfkeysgetvalue{/pgf/inner xsep}{\myAxsep}
    \node at (2,0) (B) {YY};
    \pgfkeysgetvalue{/pgf/inner xsep}{\myBxsep}
    \draw [very thick, ->] (A) -- (B);
    \pgfresetboundingbox
    \useasboundingbox ($(A.south west)+(\myAxsep,0)$) rectangle
    ($(B.north east)-(\myBxsep,0)$);
  \end{tikzpicture}
  and some text.
\item \( X \)
\end{itemize}

\end{document}

Talvez eu tenha sido muito cauteloso ao verificar o valor da separação x após cada caixa, mas isso pode ser necessário em códigos mais complicados.

informação relacionada