我需要将整个文档中的英文引号:“文本”更改为德文引号:“文本”。
问题是我在整个文档中使用了“文本”和“文本”。
还有另外一个复杂因素。我的文档中还有很多希腊语文本,它们同时使用 ` 和 ' 来产生重音符号。
有没有办法在序言中添加一些内容来改变整个文档的情况?
这是我的 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” 位于底部。现在您将使用正则表达式进行搜索和替换,替换后的文本位于底部,因此每一步您都需要复制底部的代码并将其再次粘贴到顶部。
- 正则表达式
(\W)``
和替换\1„
。 - 正则表达式
''(\W)
和替换“\1
。 - 正则表达式
(\W)`
和替换\1,
。(我在替换文本中使用了逗号,因为我不知道您需要什么) - 正则表达式
'(\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
您想要的,您更改引号并重新插入在搜索中抓取的非字母(这样您就不会丢失它)。