使用 tikz-cd 和“数学字体”时,等式看起来“不完整”

使用 tikz-cd 和“数学字体”时,等式看起来“不完整”

在制作交换图时,我更喜欢使用tikz-cd选项arrow style=math font,以便让箭头尖端与文档字体相匹配,该字体kpfonts在下面的 MWE 中。有时可以正常工作,有时则会出现问题,例如在下面的示例中,等号看起来“损坏了”,无论是在屏幕上还是在打印上

在此处输入图片描述

删除该选项math font会产生以下结果。现在等式看起来不错,但箭头尖端不再与kpfonts箭头匹配。是否可以以某种方式修复此问题,例如让箭头使用该math font选项,但不让等式使用?到目前为止,我只能全局切换这两个选项。

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,kpfonts,tikz-cd}

\tikzcdset{arrow style=math font}

\begin{document}

\begin{tikzcd}[row sep=small]
H_n(S^n)
\arrow[r,"i_*"]
\arrow[d,equal]
& H_n(X)
\arrow[r,"q_*"]
\arrow[d,equal]
&
H_n(X/S^n)
\arrow[d,equal]
\\
\mathbb{Z}
&
\mathbb{Z}/m
&
0
\end{tikzcd}

\end{document}

答案1

这在一定程度上是渲染问题(灰色线条),人们会告诉你,如果打印正常,就不用担心。如果你的文档是打印的,那就没问题。但是,如果你的文档是电子版,那就更成问题了。

对于箭头,我能想到的最佳解决方案是选择不同的字体或使用其他箭头样式。一种方法是将箭头尖端明显地不同。另一个方法是尝试匹配 KP 箭头。

我认为第一个很简单。对于第二个,我的第一个想法是Straight Barb

直倒钩

我认为这比默认的要好,但定制的Stealth可能更接近:

定制隐形

\documentclass[tikz,multi,border=10pt]{standalone}
\usepackage{amsmath,kpfonts,tikz-cd}
\usetikzlibrary{arrows.meta}
\tikzcdset{arrow style=tikz}
\begin{document}
\tikzset{%
  >/.tip={Straight Barb[angle=90:2pt 1]}
}
\begin{tikzcd}[row sep=small]
  H_n(S^n)
  \arrow[r,"i_*"]
  \arrow[d,equal]
  & H_n(X)
  \arrow[r,"q_*"]
  \arrow[d,equal]
  &
  H_n(X/S^n)
  \arrow[d,equal]
  \\
  \mathbb{Z}
  &
  \mathbb{Z}/m
  &
  0
\end{tikzcd}
\tikzset{%
  >/.tip={Stealth[length=3pt, width=4pt, inset=1.8pt]}
}
\begin{tikzcd}[row sep=small]
  H_n(S^n)
  \arrow[r,"i_*"]
  \arrow[d,equal]
  & H_n(X)
  \arrow[r,"q_*"]
  \arrow[d,equal]
  &
  H_n(X/S^n)
  \arrow[d,equal]
  \\
  \mathbb{Z}
  &
  \mathbb{Z}/m
  &
  0
\end{tikzcd}
\end{document}

相关内容