多语言文档:babel 和 csquotes 之间的问题:\MakeOuterQuote{"}

多语言文档:babel 和 csquotes 之间的问题:\MakeOuterQuote{"}

Example:第 5 行是我的问题......

csquotes我想在带有AND的多语言文档中使用简单引号babel,借助\MakeOuterQuote{"},并且我需要命令\selectlanguage{ngerman}返回德语。(第 2 行和第 3 行显示了otherlanguage*我无法使用的环境的解决方案)。

似乎babel覆盖了 OuterQuote csquotes。有人有什么想法吗?

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}

\usepackage[french,ngerman]{babel}

\usepackage[babel,german=quotes,french=quotes]{csquotes}
\MakeOuterQuote{"}

\begin{document}

"abend", "beispiel" (\languagename) 

\begin{otherlanguage*}{french}
"abend", "beispiel" (\languagename) 
\end{otherlanguage*}

"abend", "beispiel" (\languagename)

\selectlanguage{french} 
"abend", "beispiel" (\languagename) 

\selectlanguage{ngerman} 
"abend", "beispiel" (\languagename) 

\end{document}

答案1

我回答只是为了从“未回答队列”中获取问题。我个人认为像这样重载 ascii 字符不是一个好主意。有太多潜在的地方(例如 bib 文件)需要字符具有“其他”含义。我自己\MakeAutoQuote{«}{»}在编辑器中结合使用合理的快捷方式将引号放在选定文本周围。

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}

\usepackage[french,ngerman]{babel}

\usepackage[babel,german=quotes,french=quotes]{csquotes}
\MakeOuterQuote{"}

\begin{document}
\let\mycsouterquote"
\addto\extrasngerman{\let"\mycsouterquote}
\addto\extrasfrench {\let"\mycsouterquote}

"abend", "beispiel" (\languagename)

\begin{otherlanguage*}{french}
"abend", "beispiel" (\languagename)
\end{otherlanguage*}

"abend", "beispiel" (\languagename)

\selectlanguage{french}
"abend", "beispiel" (\languagename)

\selectlanguage{ngerman}
"abend", "beispiel" (\languagename)

\end{document}

enter image description here

答案2

我自己处理这个问题时,我决定简单地全局禁用简写。我的文本一般采用 UTF-8 编码,以便可以正常打印变音符号等。

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[shorthands=off, % Don't translate quotation marks followed by vocals to umlauts
            ngerman         % Neue deutsche Rechtschreibung
]{babel}
\usepackage[autostyle]{csquotes}
\MakeOuterQuote{"}

相关内容