如何才能将 tikz 图中较短的位与较长表达式的一部分对齐,而不将长表达式撕开?

如何才能将 tikz 图中较短的位与较长表达式的一部分对齐,而不将长表达式撕开?

我有这个交换图,用以下方式绘制tiz-cd

\[
    \begin{tikzcd}[row sep=0.1em]
        R \arrow[r, "T_R"] & T_R(R) \arrow[r, "G", dashed] & T_S(S) & S \arrow[l, "T_S"'] \\
        & \rotatebox[origin=c]{270}{\subseteq} & \rotatebox[origin=c]{270}{\subseteq}\\
        \left( -T_R(R) \right) \cup T_R(R) = & \ex{U_R'} \rar["\left. J' \right|_{\ex{U_R'}}"] & \ex{U_S'} = T_S(S) \cup \left( - T_S(S) \right)
    \end{tikzcd}
\]

渲染结果如下: 有问题的图表

我希望最后一行的两个方程式保持在一起,最后一行的箭头居中,并且需要T_S(S) \subseteq \ex{U_S'}对齐,就像T_R(R) \subseteq \ex{U_R'}已经在箭头左侧一样。我该如何实现?

顺便说一下,\ex是一个普通的数学运算符。

编辑:重要的是T_R(R)是的子集U_R',并且T_S(S)是的子集U_S',我确实实现了在箭头左侧显示,并希望以相同的方式在底线箭头右侧显示。

答案1

我并不确信这tikz-cd是实现这一目标的最佳工具,但当然可以做到。

\documentclass{article}
\usepackage{mathtools}
\DeclareMathOperator{\ex}{ex}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}%[row sep=0.1em]
    R \arrow[r, "T_R"] & T_R(R)
    \arrow[d,"\subseteq" {sloped,marking},draw=none] 
    \arrow[r, "G", dashed] & [8.5em]T_S(S)
    \arrow[d,"\subseteq" {sloped,marking},draw=none] 
     & S \arrow[l, "T_S"']  \\
     &
     \mathllap{\left( -T_R(R) \right) \cup\,}   T_R(R)\mathrlap{{}=  \ex{U_R'}} 
     \arrow[r,"\left. J'\right|_{\ex{U_R'}}",
        shorten <={width("${}=\ex{U_R'}$")},
        shorten >={width("$\ex{U_S'} ={}$")}]   &\mathllap{\ex{U_S'} ={}}
    T_S(S) \mathrlap{\,\cup \left( - T_S(S) \right)}
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

至于澄清的问题:

\documentclass{article}
\usepackage{mathtools}
\DeclareMathOperator{\ex}{ex}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}
    \hphantom{\left( -T_R(R) \right)\cup}R \arrow[r, "T_R"] & T_R(R)
    \arrow[d,"\subseteq" {sloped,marking},draw=none] 
    \arrow[r, "G", dashed] &[2.5em] T_S(S)
    \arrow[d,"\subseteq" {sloped,marking},draw=none] 
     & S \arrow[l, "T_S"']\hphantom{\cup \left( - T_S(S) \right)}  \\
     &
     \mathllap{\left( -T_R(R) \right) \cup   T_R(R)=}  \ex{U_R'}
     \arrow[r,"\left. J'\right|_{\ex{U_R'}}"]   &\ex{U_S'} 
        \mathrlap{{}=T_S(S) \cup \left( - T_S(S) \right)}
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

请注意\hphantoms 以确保它也适用于fleqn,并注意\rotatebox[origin=c]{270}{\subseteq}您的问题会导致错误,因为您必须切换到数学模式,但我认为

 \arrow[d,"\subseteq" {sloped,marking},draw=none] 

更干净。

相关内容