西班牙语 babel 包的问题

西班牙语 babel 包的问题

我正在尝试使用包amscd来制作交换图。如果我写下以下内容,一切都会顺利进行:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{amscd}
\begin{document}
$\begin{CD}
 A     @>b>>   C\\
 @VVV                         @VVV\\
 C  @>>>              R (V)
 \end{CD}$
\end{document}

但是,如果我english用替换spanish它,它就不再起作用了。我得到:

"Runaway argument?
b>> C\\ @VVV @VVV\\
 C @>>> R (V)
\end {CD}$
\end {document}
! File ended while scanning use of \ @>.
<inserted text> 
                \par 
<*> prueba1.tex

I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.

! Emergency stop.
<*> prueba1.tex

*** (job aborted, no legal \end found)"

有什么提示说明如何在不使用该english选项的情况下解决该问题?

答案1

问题是巴别塔激活字符<>为了提供“多级”引用的简写。

如果你不需要这些简写,你可以使用 Gonzalo Medina 提出的技术(即选项es-noquoting或更激进的es-noshorthands)。否则代码

\usepackage{etoolbox}
\preto\CD{\deactivatequoting}

加载后计算机辅助设计将完成相同的工作,仅为了环境而停用角色CD

应该意识到,如果使用 T1 编码字体,组合<<>>已经形成“和”的连字(无需激活它们)。包引用可以代替quoting西班牙语模块提供的环境巴别塔

答案2

spanish使babel某些字符处于活动状态以构建简写;这些简写将与非西班牙语文档中字符的标准用法相冲突。要防止此问题,请babel按以下方式加载:

\usepackage[spanish,es-noshorthands]{babel}

这将禁用所有简写;要仅禁用与引用冲突的字符,您可以使用

\usepackage[spanish,es-noquoting]{babel}

答案3

该命令\deactivatequoting也可以解决这个问题,您也可以随后再次激活它。

\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{amscd}
\begin{document}
\deactivatequoting
$\begin{CD}
 A     @>b>>   C\\\ 
 @VVV                         @VVV\\     C  @>>>              R (V)
 \end{CD}$
\activatequoting
\end{document}

图表

相关内容