将英文引号更改为德语+希腊语文本

将英文引号更改为德语+希腊语文本

我需要将整个文档中的英文引号:“文本”更改为德文引号:“文本”。

问题是我在整个文档中使用了“文本”和“文本”。

还有另外一个复杂因素。我的文档中还有很多希腊语文本,它们同时使用 ` 和 ' 来产生重音符号。

有没有办法在序言中添加一些内容来改变整个文档的情况?

这是我的 MWE:

\documentclass{scrartcl}
\usepackage[polutonikogreek,ngerman]{babel}%
\usepackage[babel,german=quotes]{csquotes}

\begin{document}
``Double quotes''

`Single quotes'

\foreignlanguage{polutonikogreek}{`ouko~un t~w m`en >agenn'htw patr`i o>ike~ion >ax'iwma fulakt'eon, mhd'ena to~u e@inai a>ut~w t`on a>'ition l'egontas; t~w d`e u<i~w t`hn <arm'ozousan tim`hn >aponemht'eon, t`hn >'anarqon a>ut~w par`a to~u patr`os g'ennhsin >anatij'entas; ka`i <ws >afj'asamen a>ut~w s'ebas >apon'emontes, m'onon e>usebos ka`i e>uf'hmws t`o @hn ka`i t`o `ae'i ka`i t`o pr`o a>i'wnwn l'egontes >ep> a>uto~u, t`hn m'entoi je'othta a>uto~u m`h paraitou'menoi, `all`a t~h e>ik'oni ka`i t~w qarakt~hri to~u patr`os >aphkribwm'enhn >emf'ereian kat`a p'anta >anatij'entes, t`o d`e >ag'ennhton t~w patr`i m'onon >id'iwma pare~inai dox'azontes, <'ate d`h ka`i a>uto~u f'askontos to~u swt~hros; »<o pat'hr mou me'izwn mo'u >estin«.}
\end{document}

答案1

免责声明:我发现正则表达式还不到一个月。

这是我能想到的最简单的方法,因为正如其他人所说,`'是连字符在字体中。此解决方案至少在您的示例中有效。

你需要一个允许你使用正则表达式的系统。就我而言,我使用了文本编辑器。例如,这里有一个在线的(我不知道它的局限性)regex101

到达那里后,将代码粘贴到测试字符串。同时打开代换“tab” 位于底部。现在您将使用正则表达式进行搜索和替换,替换后的文本位于底部,因此每一步您都需要复制底部的代码并将其再次粘贴到顶部。

  1. 正则表达式(\W)``和替换\1„
  2. 正则表达式''(\W)和替换“\1
  3. 正则表达式(\W)`和替换\1,。(我在替换文本中使用了逗号,因为我不知道您需要什么)
  4. 正则表达式'(\W)和替换‘\1

这将使您的示例文本保持如下状态

\documentclass{scrartcl}
\usepackage[polutonikogreek,ngerman]{babel}%
\usepackage[babel,german=quotes]{csquotes}

\begin{document}
„Double quotes“

,Single quotes‘

\foreignlanguage{polutonikogreek}{o>uko~un t~w m`en >agenn'htw patr`i o>ike~ion >ax'iwma fulakt'eon, mhd'ena to~u e@inai a>ut~w t`on a>'ition l'egontas; t~w d`e u<i~w t`hn <arm'ozousan tim`hn >aponemht'eon, t`hn >'anarqon a>ut~w par`a to~u patr`os g'ennhsin >anatij'entas; ka`i <ws >afj'asamen a>ut~w s'ebas >apon'emontes, m'onon e>usebos ka`i e>uf'hmws t`o @hn ka`i t`o >ae`i ka`i t`o pr`o a>i'wnwn l'egontes >ep> a>uto~u, t`hn m'entoi je'othta a>uto~u m`h paraitou'menoi, >all`a t~h e>ik'oni ka`i t~w qarakt~hri to~u patr`os >aphkribwm'enhn >emf'ereian kat`a p'anta >anatij'entes, t`o d`e >ag'ennhton t~w patr`i m'onon >id'iwma pare~inai dox'azontes, <'ate d`h ka`i a>uto~u f'askontos to~u swt~hros; »<o pat'hr mou me'izwn mo'u >estin«.}
\end{document}

这似乎是正确的(除了我使用逗号代替开头的低引号:D)。


稍微解释一下。\W搜索非字母(也就是说,不是的东西[a-zA-Z0-9_],用括号(\W)保存它的内容\1。因此搜索'(\W)将搜索引号和非字母,这样当它在单词内部时就不可能选择它了。现在替换就是‘\1您想要的,您更改引号并重新插入在搜索中抓取的非字母(这样您就不会丢失它)。

相关内容