我遇到了一个奇怪的问题csquotes
。使用fontspec
带有终端撇号的引号时,撇号和引号之间没有空格。如果我禁用fontspec
(注释掉下面 MWE 中的第 3-4 行),问题就会消失。
我正在使用 XeLaTeX 和fontspec
付费版本的 Baskerville(开放类型格式),但问题似乎与字体无关,我似乎能够使用任何开放类型字体重现它。
例如 Art Blakey 和 Jazz Messengers 的歌曲呻吟我的引用指南说歌曲名称应该放在引号中。
MWE 中的第一个例子显示了这个问题。
第二个例子表明,如果我使用手动插入一个细空格,\,
那么会导致撇号和右引号之间的空格太大。
第三个例子表明嵌套\enquote
产生了正确的空格。
由于这个问题以前从未出现过,而且我怀疑它不会再有规律地再次出现,最简单的解决方案是手动插入正确的空间,就像我在第二个示例中尝试做的那样。但薄空间太大了。我该如何手动插入正确大小的空间?
\documentclass{article}
\usepackage[style=american]{csquotes}
\usepackage{fontspec}
\setmainfont{Baskerville}
\begin{document}
\enquote{Moanin'} % example 1
\enquote{Moanin'\,} % example 2
\enquote{\enquote{Moanin}} % example 3
\end{document}
答案1
介绍性说明:如果有人运行你的代码没有加载时Baskerville
,\enquote{Moanin'}
会自动在0.5pt
撇号和结束双引号之间插入空格 --。我不知道为什么在运行后情况并非如此\setmainfont{Baskerville}
;我想这一定是 Baskerville Opentype 字体或软件包中的错误csquotes
。
宏\,
(“thinspace”)插入 1.667pt 的不可中断空格。要获得更少的不可中断空格,可以使用命令\kern
。请注意,的参数\kern
不应由花括号分隔。就我个人而言,我认为 0.5pt 的空格不足以分隔单引号和双引号;插入 0.7pt 甚至 0.9pt 似乎更合适。(当然,插入1.667pt
空格——这就是它的\,
作用——太多了。)
\documentclass{article}
\usepackage[style=american]{csquotes}
\usepackage{fontspec}
\setmainfont{Baskerville}
\begin{document}
\obeylines % just for this example
\enquote{Moanin'} --- no space
\enquote{Moanin'\kern0.5pt} --- 0.5pt (csquotes solution)
\enquote{Moanin'\kern0.7pt} --- 0.7pt
\enquote{Moanin'\kern0.9pt} --- 0.9pt
\enquote{Moanin'\,} --- thinspace/1.667pt
\end{document}
答案2
感谢 Mico 和 Ulrike Fischer 在评论中留下了出色的解决方案。
和\enquote{Moanin\kern0.5pt}
都是\enquote{Moanin\textciquote}
解决上述问题的完美方案。