![tikz-cd `equal` 选项在路径末端的“间隙”上产生微弱的边缘](https://linux22.com/image/410565/tikz-cd%20%60equal%60%20%E9%80%89%E9%A1%B9%E5%9C%A8%E8%B7%AF%E5%BE%84%E6%9C%AB%E7%AB%AF%E7%9A%84%E2%80%9C%E9%97%B4%E9%9A%99%E2%80%9D%E4%B8%8A%E4%BA%A7%E7%94%9F%E5%BE%AE%E5%BC%B1%E7%9A%84%E8%BE%B9%E7%BC%98.png)
我想在交换图中绘制一个箭头作为等号。这应该可以使用equal
tikz-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}