babel 命令和 xy-pic 之间出现未知错误

babel 命令和 xy-pic 之间出现未知错误

babel我正在用西班牙语写一篇文章,但似乎命令和不兼容xy-pic。 有一个关于同一问题的较早主题,但那里的解决方案对我不起作用(babel 和 xy pic 之间的交互很差)。

这是该问题的一个简短版本:

\documentclass[12pt,letter,openright,final]{article}

\usepackage[utf8]{inputenc}
\usepackage[english,spanish]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[all]{xy}

\begin{document}

\begin{abstract}
Tuki tuki

\textit{Palabras clave}: tuki, tuki, tuki.
\end{abstract}

\begin{otherlanguage}{english} % THIS IS WHERE THE PROBLEM IS
\begin{abstract}
Tookey Tookey

\textit{Keywords}: tookey, tookey, tookey.
\end{abstract}
\end{otherlanguage}


\begin{section}{Introducción}

Blah

\end{section}

\begin{section}{Sección}

Blah

$$\xymatrix@=1cm{
A \ar@{<->}[r]^{\oplus} \ar@{<->}[dr] & E\ar@{->}[d]^{\rhd}\\
I \ar@{<-}[u]^{\rhd} \ar@{<->}[ru]^{\hspace{3pt}\otimes} & O\ar@{<->}[l]^{\ominus}
}$$

blah

\end{section}

\end{document}

当我尝试编译它(MiKTeX,使用 pdfLaTeX)时出现此错误:

! Xy-pic error: illegal <arrow>: macro:->\es@use@shorthand < not valid. \xyerror@ ...#2}\fi \errmessage {Xy-pic error: #1}
                                                 } l.54 }
     $$

本站有一个主题(当我尝试使用任何箭头样式时,xypic 会产生错误) 讨论了此错误,但那里的解决方案对我来说毫无用处,因为babel之前已经加载了xy。 (无论如何我都尝试更改它们,但问题仍然存在。)

如果我删除\otherlanguage环境,就不会有任何问题了xymatrix

\selectlanguage{english}它与(...)相同\selectlanguage{spanish}

但是!如果我将\otherlanguage环境放在环境内部\abstract,它就会正常工作。问题是我需要摘要的标题是“abstract”而不是“resumen”,因为它是英文版(西班牙语版在前面,一如既往)。

我查看了内部内容babelxy-pic文档,但仍然不明白为什么会发生这种情况。

答案1

es-noquoting如果不需要<<and ,则可以使用选项>>来替代\begin{quoting}and \end{quoting}。请注意,您仍然可以使用同义词"`and "'

\documentclass[12pt]{article}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english,spanish
  ,es-noquoting% <- added
]{babel}

\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[all]{xy}

\begin{document}
\begin{otherlanguage}{english}
\begin{abstract}
Tookey Tookey
\end{abstract}
\end{otherlanguage}

\section{Introducción}
Blah
\section{Sección}
Blah
\[\xymatrix@=1cm{
A \ar@{<->}[r]^{\oplus} \ar@{<->}[dr] & E\ar@{->}[d]^{\rhd}\\
I \ar@{<-}[u]^{\rhd} \ar@{<->}[ru]^{\hspace{3pt}\otimes} & O\ar@{<->}[l]^{\ominus}
}\]

"`blah"'
\end{document}

或者你可以使用\deactivatequoting

\documentclass[12pt]{article}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english,spanish]{babel}
\deactivatequoting% <- added
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[all]{xy}

\begin{document}
\begin{otherlanguage}{english}
\begin{abstract}
Tookey Tookey
\end{abstract}
\end{otherlanguage}

\section{Introducción}
Blah
\section{Sección}
Blah
\[\xymatrix@=1cm{
A \ar@{<->}[r]^{\oplus} \ar@{<->}[dr] & E\ar@{->}[d]^{\rhd}\\
I \ar@{<-}[u]^{\rhd} \ar@{<->}[ru]^{\hspace{3pt}\otimes} & O\ar@{<->}[l]^{\ominus}
}\]

"`blah"'
\end{document}

答案2

西班牙语babel激活了一些字符,并可用作命令,使源代码更漂亮(它们是、、、、)'。其中最后两个与冲突。您必须在使用之前停用它们。"~<>xy-pic\xymatrix@

\documentclass[12pt,letter,openright,final]{article}

\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english,spanish]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[all]{xy}

\begin{document}

\begin{abstract}
Tuki tuki

\textit{Palabras clave}: tuki, tuki, tuki.
\end{abstract}

\begin{otherlanguage}{english} % THIS IS WHERE THE PROBLEM IS
\begin{abstract}
Tookey Tookey

\textit{Keywords}: tookey, tookey, tookey.
\end{abstract}
\end{otherlanguage}


\begin{section}{Introducción}

Blah

\end{section}

\begin{section}{Sección}

Blah
\spanishdeactivate{<>}
\[\xymatrix@=1cm{
A \ar@{<->}[r]^{\oplus} \ar@{<->}[dr] & E\ar@{->}[d]^{\rhd}\\
I \ar@{<-}[u]^{\rhd} \ar@{<->}[ru]^{\hspace{3pt}\otimes} & O\ar@{<->}[l]^{\ominus}
}\]

blah

\end{section}

\end{document}

我还添加了\usepackage{amssymb}\rhd命令。

相关内容