xypic 和 \mathcal 数学模型问题

xypic 和 \mathcal 数学模型问题

我目前正在尝试通过 xypic 编写一个简单的交换图,它可以在我的一个文件上运行,但我无法让它在新文件上运行:

\documentclass{article}
\usepackage[french]{babel}
\usepackage{xypic}

\begin{document}

$$\xymatrix@!0 @R=2pc @C=3pc { \mathcal{E}_1 \ar[rr]&& \mathcal{E}_2}$$
\end{document}

LaTeX 告诉我\mathcal数学模式之外不接受,但我无法$在 xypic 括号内添加,而且似乎没有mathcal数学模式之外的等效项。它似乎因为 babel 包而触发错误,因为当我删除它时它工作得很好。即使将 xy 包放在前面或后面,我还是会收到错误。有什么提示如何解决这个问题吗?

答案1

您需要设置!为普通字符,而不是法语标点符号简写

\documentclass{article}
\usepackage[french]{babel}
\usepackage{xypic}

\begin{document}


\shorthandoff*{!}
$$\xymatrix@!0 @R=2pc @C=3pc { \mathcal{E}_1 \ar[rr]&& \mathcal{E}_2}$$
\shorthandon{!}

\end{document}

请注意,在原始文档中,错误消息突出显示了!不是说这\mathcal是个问题。错误信息是:

<xymatrix
! Xy-pic error: <addop> or <direction> or one of 1RCMLHW*! expected.
\xyerror@ ...#2}\fi \errmessage {Xy-pic error: #1}
                                                  }
l.8 $$\xymatrix@!
                 0 @R=2pc @C=3pc { \mathcal{E}_1 \ar[rr]&& \mathcal{E}_2}$$
?

换行符显示 TeX 已读取了多远,它发生在!它尚未看到\mathcal

答案2

一般来说,不需要在环境\xymatrix内封闭,但使用它可能是解决您的问题的办法,因为我们可以指示 LaTeX 在进入环境时禁用简写字符。xybabel-french

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[cmtip]{xypic}

\AtBeginEnvironment{xy}{\shorthandoff{;:!?}}

\begin{document}

\[
\begin{xy}
\xymatrix@!0 @R=2pc @C=3pc { \mathcal{E}_1 \ar[rr]&& \mathcal{E}_2}
\end{xy}
\]

\end{document}

在此处输入图片描述

请注意,$$切勿在 LaTeX 中使用,请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?

相关内容