总结
根据我设置babel
为英语还是意大利语,我应该使用什么包和命令来编写双引号文本或单引号文本?
具体来说,我不是指用于直接发言的引语,而是用于标记以下内容的引语:给我水在句子“给我水”的意思是 xyz,我看到它的翻译就像The sentence `gimme water' means xyz
在一本英文书中一样,但我认为我应该The sentence ``gimme water'' means xyz
按照意大利的惯例来翻译。
顺便说一句,我非常愿意尝试 LuaLaTeX 或 XeLaTeX。
一些背景知识
我正在将一本书从英语翻译成意大利语,到目前为止我还没有费心去改变`quoted text'
,``testo virgolettato''
根本原因是我不知道这是否是我应该做的,即我不知道英语是否使用单引号而意大利语是否使用双引号。
无论答案是什么那问题是,关键是到目前为止我只写了几百页中的几页,因此搜索和替换是可以管理的,但是在我完成翻译后这样做会有问题,因为 a'
是撇号(在意大利语中很常见)还是结束单引号是上下文敏感的(例如,在`un testo' un po' strano
和`un po' di testo' strano
两个s 具有反转功能,如果我用手指盖住和,'
你就无法分辨哪个是哪个)。testo
po
因此,目前我想将 every 改为`quoted text'
类似 的内容\quoted{quoted text}
,这样我就能\usepackage[italian]{babel}
将其解析为意大利语中应该使用的内容。也许
答案1
我将把它italian
视为主要语言。
采用速记方法。不可否认,这有点复杂。这里的*italian
和*english
指的是用户语言相关的简写。
\documentclass{article}
\usepackage[english, italian]{babel}
\useshorthands*{"}
\defineshorthand[*italian]{"`}{``}
\defineshorthand[*italian]{"'}{''}
\defineshorthand[*english]{"`}{`}
\defineshorthand[*english]{"'}{'}
\addto\extrasitalian{\languageshorthands{italian}}
\addto\extrasenglish{\languageshorthands{english}}
\begin{document}
The sentence "`gimme water"' means xyz.
\selectlanguage{english}
The sentence "`gimme water"' means xyz.
\end{document}
采用 的方法\quoted
。此外csquotes
,这是首选选项,babel
您可以使用及其挂钩机制执行以下操作。第一个\AddBabelHook
设置始终随每个语言选择器一起执行的代码;第二个设置english
最后执行的代码。
\documentclass{article}
\usepackage[english, italian]{babel}
\newcommand\quoted[1]{``#1''}
\AddBabelHook{quoted}{afterextras}{%
\renewcommand\quoted[1]{``##1''}}
\AddBabelHook[english]{quoted}{afterextras}{%
\renewcommand\quoted[1]{`##1'}}
\begin{document}
The sentence \quoted{gimme water} means xyz.
\selectlanguage{english}
The sentence \quoted{gimme water} means xyz.
\end{document}
使用 luatex 和转换的方法。这种方法只有在对引号的转换有或多或少明确的规则时才可行,而您的情况并非如此。但是,作为说明,这里有一个非常粗糙的转换器,只是忽略了'
撇号。注意(真正的 Unicode 字符)不会被转换,这意味着如果将引号保留为和(作为一种标记),而您改为转换撇号,则’
此解决方案可能会很有用。`
'
\documentclass{article}
\usepackage[english, italian]{babel}
\babelprehyphenation{italian}{ ` }{ string = “ }
\babelprehyphenation{italian}{ ' }{ string = ” }
\begin{document}
The sentence `gimme water' means’ xyz.
\selectlanguage{english}
The sentence `gimme water' means’ xyz.
\end{document}