tikz-cd `equal` 选项在路径末端的“间隙”上产生微弱的边缘

tikz-cd `equal` 选项在路径末端的“间隙”上产生微弱的边缘

我想在交换图中绘制一个箭头作为等号。这应该可以使用equaltikz-cd 提供的选项来实现。正如指出的那样tikz 中的长等号,这会在路径末端产生微弱的伪影。有一个小的暗边。

问:我该如何解决?

我从中窃取了示例代码https://tex.stackexchange.com/a/121192/12871

\documentclass[tikz,convert=false]{standalone}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}
\tikzset{commutative diagrams/.cd,arrow style=tikz,diagrams={>=latex'}}
\begin{document}
\begin{tikzcd}[swap,bend angle=45]
A \dar{f} \rar{a} \ar[bend left,equal]{rr}
  & X \dar{g} \rar{r}
      & A \dar[swap]{f} \\
B \rar[swap]{i}   \ar[bend right,equal]{rr}
      & Y \rar[swap]{\beta}
          & B
\end{tikzcd}
\end{document}

带有“相等”箭头的交换图

答案1

众所周知,缺乏钛Z. 有点烦人,但并非不可避免。

这是补丁。它可能无法在所有情况下都起作用,因此您可能希望将补丁保留在本地。

\documentclass[tikz,convert=false]{standalone}

\usepackage{tikz-cd}
    \usetikzlibrary{arrows}
    \tikzset{commutative diagrams/.cd,arrow style=tikz,diagrams={>=latex'}}

\makeatletter
\def\pgf@stroke@inner@line{%
  \let\pgf@temp@save=\pgf@strokecolor@global
  \pgfsys@beginscope%
  {%
    \pgfsys@roundcap% <-- I add this
    \pgfsys@setlinewidth{\pgfinnerlinewidth}%
    \pgfsetstrokecolor{\pgfinnerstrokecolor}%
    \pgfsyssoftpath@invokecurrentpath%
    \pgfsys@stroke%
  }%
  \pgfsys@endscope%
  \global\let\pgf@strokecolor@global=\pgf@temp@save
}

\begin{document}
    \begin{tikzcd}[swap,bend angle=45]
    A \dar{f} \rar{a} \ar[bend left,Rightarrow]{rr}
      & X \dar{g} \rar{r}
          & A \dar[swap]{f} \\
    B \rar[swap]{i}   \ar[bend right,equal]{rr}
          & Y \rar[swap]{\beta}
              & B
    \end{tikzcd}
\end{document}

相关内容