
При создании коммутативных диаграмм я предпочитаю использовать 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
может быть более подходящим:
\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}