最近,我将 TeX 安装从 TeX Live-2009 升级到 TeX Live-2012。现在\xymatrix
出现问题。此问题会影响 Mac OS X 和 Ubuntu Linux 12.04 安装。
例如,简单的代码
\[
\xymatrix{
F \ar[r]^-v \ar[dr]_-{T v} & V \ar[d]^-T \\
& W }
\]
用于正确标记箭头,现在有奇怪的效果
\[
\xymatrix{
F^v_{T v} \ar[r] \ar[dr] & V^T \ar[d] \\
& W }
\]
以下是我的序言:
\documentclass[10pt]{letter}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{breqn}
\usepackage[urlcolor=blue,linkcolor=blue,citecolor=blue]{hyperref}
\usepackage[all]{xy}
有没有人遇到过这种意外行为?
答案1
你没有说你从哪个 TeX 发行版升级而来。该breqn
软件包经历了重大变化,不幸的是,其中一个变化导致它无法与 Xy-pic 很好地配合。
您可以使用一些技巧恢复正常行为:
\documentclass[10pt]{letter}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{breqn}
\usepackage[all]{xy}
\usepackage{etoolbox}
\usepackage[urlcolor=blue,linkcolor=blue,citecolor=blue]{hyperref}
%%% breqn changes the category code of ^ and _
%%% in a way that breaks Xy-pic
\newcommand{\Xycatcodes}{\catcode`\^=7 \catcode`\_=8 }
\makeatletter
\preto\xymatrix@setup{\Xycatcodes}
\makeatother
\begin{document}
\[
\xymatrix{
F \ar[r]^-v \ar[dr]_-{T v} & V \ar[d]^-T \\
& W }
\]
\end{document}
其他字符可能会出现问题,但这个应该可以。更改已本地化,\xymatrix
因此应该可以在breqn
环境中使用它。
语法
\usepackage[all]{xy}
是不是完全过时了。相反,我们永远不应该使用
\input xy
\xyoption{all}
在 LaTeX 中。