为什么 Emacs 在 LaTeX 模式下会错误地替换引号?

为什么 Emacs 在 LaTeX 模式下会错误地替换引号?

"在 Emacs 中编写 LaTeX 文档时,它通常会自动用``或替换引号'',这是理所当然的。但有时,它会错误地用"` and"'替换。我在 Ubuntu 13.04 中提供的版本 23.4+1-4ubuntu1 中的 Emacs 23.4 中观察到了这一点。

以下示例中就有这种情况:

\documentclass[danish]{article}
\usepackage{babel}
\begin{document}
This is a "`test"'.
\end{document}

我猜是 babel 和语言选项danish与 AUCTeX 一起导致了这个问题。如果我将其更改为english并重置 AUCTeX,问题就会消失。如果我将其改回danish并重置 AUCTeX,问题会再次出现。我该如何解决这个问题?

答案1

AUCTeX 对许多语言有特殊支持,例如它可以帮助插入引号。有关更多信息,请参阅AUCTeX 手册

如果您不喜欢 AUCTeX 为特定语言插入的引号的默认样式,您可以通过自定义TeX-quote-language-alist变量来覆盖它。为此,请将其添加到您的.emacs

(setq TeX-quote-language-alist '(("danish" "``" "''" t)))

这样,按"两次按钮,您将根据上下文获得``或。相反,如果您只想插入并按一次按钮,请将以下代码添加到您的:''``''".emacs

(add-hook 'TeX-language-dk-hook
      (lambda ()
        (setq TeX-quote-language `("danish" "``" "''" ,TeX-quote-after-quote))))

相关内容