Равенства выглядят «сломанными» с 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

Это частично проблема рендеринга (серые линии), и люди скажут вам не беспокоиться, если все печатается нормально. Если ваш документ должен быть напечатан, это нормально. Однако, если ваш документ будет просматриваться в электронном виде, это уже более серьезная проблема.

Для стрелок, лучшее решение, которое я могу придумать, это либо выбрать другие шрифты, либо использовать альтернативный стиль стрелок. Один из способов сделать это — сделать кончикиочевидноотличается. Другой вариант — попытаться подобрать наконечники стрел КП.

Я полагаю, что первое просто. Что касается второго, то моя первая мысль была Straight Barb:

Прямой стержень

Я думаю, это лучше, чем вариант по умолчанию, но настроенный вариант Stealthможет быть более подходящим:

пользовательский 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}

Связанный контент