Babel:两种语言,主动速记

Babel:两种语言,主动速记

我想在我的文档 (babel) 中使用多种语言,并且 和 都ngerman应该british启用简写 ("` 和"')。英国语言环境应该将 "` 变成 “ 并将 "' 变成 ”。主要语言应该保持为德语。

\documentclass{article}
\usepackage[british,ngerman]{babel}
\usepackage[utf8]{inputenc}
% \defineshorthand[british]{"`}{\glqq}
% \defineshorthand[british]{"'}{\grqq}
\addto\extrasbritish{\languageshorthands{ngerman}}

\begin{document}
"`Guten Tag"'

\begin{otherlanguage*}{british}
"`Hello tag"'
\end{otherlanguage*}
\end{document}

输出:

糟糕的引言

预期输出:

在此处输入图片描述

我感觉自己完全愚蠢了,这似乎是一个初学者的问题。

答案1

文档远非清晰,但我认为除了重新定义简写以根据当前语言执行特定任务之外,没有什么可以做的:

\documentclass{article}
\usepackage[british,ngerman]{babel}
\usepackage[utf8]{inputenc}
\addto\extrasbritish{%
  \languageshorthands{ngerman}%
  \useshorthands*{"}%
}

\defineshorthand{"`}{\iflanguage{ngerman}{\glqq}{\lq\lq}}
\defineshorthand{"'}{\iflanguage{ngerman}{\grqq}{\rq\rq}}

\begin{document}
"`Guten Tag"'

\begin{otherlanguage*}{british}
"`Hello tag"'
\end{otherlanguage*}
\end{document}

在此处输入图片描述

问题在于你正在从 导入简写ngerman;例如这会起作用:

\documentclass{article}
\usepackage[british,ngerman]{babel}
\usepackage[utf8]{inputenc}

\useshorthands*{"}
\addto\extrasbritish{%
  \languageshorthands{british}%
}

\defineshorthand[british]{"`}{\lq\lq}
\defineshorthand[british]{"'}{\rq\rq}

\begin{document}
"`Guten Tag"'

\begin{otherlanguage*}{british}
"`Hello tag"'
\end{otherlanguage*}
\end{document}

当然,其他德语速记方式将会丢失。

相关内容