将节点水平对齐并置于其他节点下方

将节点水平对齐并置于其他节点下方

使用 tikz 3.0.0,我想创建下图

交换图1

到目前为止,我已经通过手动将“G”定位在最后一行来实现这一点:

\begin{center}
    \begin{tikzpicture}
        \node (A) {$(G×G)×G$};
        \node (B) [right=of A] {$G×(G×G)$};
        \node (C) [below left=of A] {$G×G$};
        \node (D) [below right=of B] {$G×G$};
        \node (E) at (1.5,-3) {$G$};
        \draw[double equal sign distance] (A) -- node[above]{$\sim$} (B);

        \draw[->] (A) -- node[above left]{\small $μ × \id$} (C);
        \draw[->] (B) -- node[above right]{\small $\id × μ$} (D);
        \draw[->] (C) -- node[above]{\small $μ$} (E);
        \draw[->] (D) -- node[above]{\small $μ$} (E);
    \end{tikzpicture}
\end{center}

at (1.5,-3)我可以不使用定位手动设置“G”来做到这一点吗?

在相关说明中,我尝试对 {tikz-cd} 执行相同操作并得到: 交换图2 使用以下代码:

\begin{displaymath}
    \begin{tikzcd}

        & (G × G) × G \ar[dl, "μ × \id"] \ar[rr, equal, "\sim"] & & G × (G × G) \ar[dr, "\id × μ"] & \\

        G × G \ar[drr, "μ"] & & & & G × G \ar[dll, "μ"] \\

         & & G & &

    \end{tikzcd}

\end{displaymath}

我是否可以以某种方式实现一幅没有不必要拉伸的等号的图片,即一张更像上面的图片,但是使用{tikz-cd}?

我正在使用 TeXLive,版本 2013。

答案1

这是一个可能的解决方案。但是,我的tikz不是 3.0.0,所以我需要更改一些数学代码\mutimes。此外,此解决方案使用double等号,而不是double equal sign distanceOP 使用的等号。恕我直言,如果将相关数学量更改为 tikz 3.0.0 中适用的数学量,则该原则适用。底部 G 位置通过以下代码确定,其中给定 (A) 和 (B),它们的中心会自动确定。也就是说 (1.5,-3) 被删除了。

\node[yshift=-3cm] (E) at ($(A)!0.5!(B)$) {$G$};  %change yshift for one's need.

在此处输入图片描述

代码

\documentclass[]{article}
\usepackage[paper size={15cm,6cm}]{geometry}
\usepackage{amsmath,pgfplots,tikz}
\usetikzlibrary{arrows,calc,positioning}
%\usetikzlibrary{decorations.pathmorphing,patterns}

\begin{document}
\begin{center}
    \begin{tikzpicture}
        \node (A) {$(G\times G)\times G$};
        \node (B) [right=1cm of A] {$G\times (G\times G)$};
        \node (C) [below left=of A] {$G\times G$};
        \node (D) [below right=of B] {$G\times G$};
%        \node (E) at (1.5,-3) {$G$};
\node[yshift=-3cm] (E) at ($(A)!0.5!(B)$) {$G$};
        \draw[double] (A) -- node[above]{$\sim$} (B);

        \draw[->] (A) -- node[above left]{\small $\mu \times id$} (C);
        \draw[->] (B) -- node[above right]{\small $id \times \mu$} (D);
        \draw[->] (C) -- node[above]{\small $\mu$} (E);
        \draw[->] (D) -- node[above]{\small $\mu$} (E);
    \end{tikzpicture}
\end{center}

\end{document}

相关内容