某些字体的 xymatrix 箭头方向错误

某些字体的 xymatrix 箭头方向错误

我想使用$\mathsf{C}$而不是$\mathcal{C}$来表示类别。但是,当我在第一个显示的方程中使用前者时,顶部箭头(标有 的箭头L)指向西北,而不是西南,正如您所期望的那样。在第二个显示的方程中,使用错误的字体,此箭头指向正确的方向。如果我卸载除 xy 之外的所有包,问题就会消失。

知道发生什么事了吗?

\documentclass{amsbook}
\usepackage{amsfonts, amsmath, amssymb}
\usepackage{stmaryrd}
\usepackage{txfonts} 
\usepackage{comment}
\usepackage{enumitem}
\usepackage{epigraph}
\usepackage{dialogue}
\usepackage{xcolor}
\usepackage{graphicx}

\usepackage{amsmidx}%for the index
\makeindex{idx}
\makeindex{nidx}%index of notation
\makeindex{cidx}%index of categories
\newcommand{\idx}{\index{idx}}
\newcommand{\nidx}{\index{nidx}}
\newcommand{\cidx}{\index{cidx}}

\usepackage[pdfborder=0, hidelinks]{hyperref}

\usepackage[all,pdftex]{xy}
\newdir{ >}{{}*!/-10pt/@{>}}

\begin{document}

$$\xymatrix{ \mathsf{C} \ar[r]|U & \mathsf{D} \ar@{->}@/_3ex/[l]_L^\perp \ar@/^3ex/[l]^R_{\perp} }$$
$$\xymatrix{ \mathcal{C} \ar[r]|U & \mathsf{D} \ar@{->}@/_3ex/[l]_L^\perp \ar@/^3ex/[l]^R_{\perp} }$$

\end{document}

答案1

我可以用这个最小的例子重现这个问题:

\documentclass{amsbook}
\usepackage{txfonts}
\usepackage[all]{xy}
\newdir{ >}{{}*!/-10pt/@{>}}

\begin{document}

\[
\xymatrix{
  \mathsf{C} \ar[r]|U & \mathsf{D} \ar@{->}@/_3ex/[l]_L^\perp \ar@/^3ex/[l]^R_{\perp}
}
\]

\[
\xymatrix{
  \mathcal{C} \ar[r]|U & \mathcal{D} \ar@{->}@/_3ex/[l]_L^\perp \ar@/^3ex/[l]^R_{\perp}
}
\]

\end{document}

请注意,您不应该传递该pdftex选项(但它与问题无关)。

在此处输入图片描述

如果我改成\usepackage{txfonts}\usepackage{newtxtext,newtxmath}问题就消失了:

在此处输入图片描述

NewTX 字体是 TXfonts 的编辑版本,修复了后者的(许多)缺陷,尤其是在间距方面。

您可能想看看tikz-cd(它也可以用于txfonts,但我不推荐它)。

\documentclass{amsbook}
\usepackage{newtxtext,newtxmath}
\usepackage{tikz-cd}

\begin{document}

\[
\begin{tikzcd}[column sep=3em]
\mathsf{C} \arrow[r,"U" description] &
  \mathsf{D}
  \arrow[l,bend right=50,"\perp","L" swap]
  \arrow[l,bend left=50,"R","\perp" swap]
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

相关内容