Posicionamento de nós em cadeia complexa com TikZ

Posicionamento de nós em cadeia complexa com TikZ

Quero obter um complexo de cadeia como abaixo:

insira a descrição da imagem aqui

Para conseguir isso, usei este código:

\begin{center}
\begin{tikzpicture}[start chain] {
    \node[on chain] {$\underset{v \in \Delta_0 ^0} \bigoplus I(v)$} ;
    \node[on chain] {$0$}; }
\end{tikzpicture}
\end{center}

mas o posicionamento da soma direta não está correto no resultado.

Como posso definir a posição da soma direta corretamente conforme a imagem? Obrigado.

Responder1

Como diz Zarko, não está claro por que você precisatikzpara fazer isso, e você pode usar

 \[\bigoplus_{v \in \Delta_0 ^0} I(v) \longrightarrow 0\]

Se você realmente quiser usartikzentão eu recomendaria um matrix of math nodes.

A seguirexemplo de trabalho mínimomostra como fazer isso como uma equação simples, usando uma matriz de nós matemáticos e usando a biblioteca de cadeias:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,chains}
\begin{document}

\[\bigoplus_{v \in \Delta_0 ^0} I(v) \longrightarrow 0\]

\begin{center}
  \begin{tikzpicture}[>=stealth]
    \matrix (M)[matrix of math nodes,
        column sep=10mm, nodes={anchor=center}]{
      \displaystyle\bigoplus_{v \in \Delta_0 ^0} I(v)&0\\
     };
     \draw[->](M-1-1)--(M-1-2);
  \end{tikzpicture}
\end{center}

\begin{center}
  \begin{tikzpicture}[start chain, every join/.style=->] {
      \node[on chain] {$\underset{v \in \Delta_0 ^0} \bigoplus I(v)$} ;
      \node[on chain, join] {$0$}; }
  \end{tikzpicture}
\end{center}

\end{document}

Isso produz:

insira a descrição da imagem aqui

O nodes={anchor=center}estilo for \matrixgarante que a seta de (M-1-1)para (M-1-2)seja horizontal. Esses nós são a abreviatura que tikz fornece para as entradas da matriz na linha 1 e nas colunas 1 e 2, respectivamente. Eu também tenho flechas "furtivas".

Com o exemplo de cadeias, observe que você precisa especificar quais nós juntar, adicionando join, e que eu configurei every join/.style=->para fazer a junção ser uma seta em vez de uma aresta.

Responder2

Se você persistir em usar tikz(e não considerar meu comentário acima), então veja se a seguinte modificação do primeirode Andréexemplo com tikzé aceitável:

\documentclass[tikz, preview, margin=3mm]{standalone}
\usetikzlibrary{matrix,chains}

\begin{document}
\begin{tikzpicture}[>=stealth, baseline]% added "baseline"
\matrix (M) [matrix of math nodes,
             column sep=7mm]% removed options for node
{
\displaystyle\bigoplus_{v \in \Delta_0 ^0} I(v)&0\\
};
\draw[->](M-1-1.east |- M-1-2) -- (M-1-2);% changed coordinates for arrow
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

informação relacionada