:第 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}
答案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{"}