在结束法式金手指之前获得不间断空格的最佳方法是什么»
?
我希望能够以自然风格输入,即法语中,在之前和之后« bonjour »
使用不间断空格。如果代码足够聪明,可以原谅我偶尔使用英语风格,并为我添加忘记的空格,那就太好了。现在我得到了这个:»
«
«bonjour»
我正在使用babel
带有选项的包[french]
。我也在使用csquotes
带有[babel]
选项的包。我也包含了该xspace
包,相信/希望它能帮助解决空格问题。我没有承诺使用这些包或选项,尽管我相信它们很常见。panglossia
如果有帮助的话,我愿意使用这个包,它在排版外语方面也很流行。对于这个特定的项目,我承诺使用XeLaTeX
,但当我用编译时也存在问题PDFLaTeX
。我正在编译启用了编码的法语文本UTF-8
。这里我忽略了什么吗?我需要重新定义吗guillemets
命令吗?我已经看到了几种方法来做到这一点,但由于它们似乎不起作用,我将它们排除在我的之外平均能量损失以免出现误导性的、不推荐使用的代码。
% !TeX TXS-program:compile = txs:///xelatex/[--shell-escape]
\documentclass[12pt]{article}
\usepackage[paperwidth=14cm,paperheight=20.5cm]{geometry}
\usepackage{libertine}% use this font and geometry width to reproduce bad break
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\fi
\usepackage[french]{babel}
\usepackage{xspace}
\usepackage[babel,french=guillemets]{csquotes}
\begin{document}
Je n'ai rien à dire --- mais je le dis bien : je suis un « beau parleur ».
Je n'ai rien à dire -- mais je le dis bien: je suis un «beau parleur».
Je n'ai rien à dire : je suis un « beau parleur » .
Je n'ai rien à dire:je suis un «beau parleur» .
\end{document}
编辑我已经明确说明要求我直接使用 guillemets 而不是像\fg
或 这样的快捷方式\og
。这是因为我与将在标准文本处理器中打字的人共同编写(并且我将来回复制粘贴他们的文本几次)。
答案1
对于babel
,您必须使用\frenchbsetup{og=«, fg=»}
。对于polyglossia
,您无需执行任何操作,除非包插入一个可破坏的空间(错误?),因此如果空间确实被破坏,您必须手动插入一个不可破坏的细空间(\,
)。
% !TeX TXS-program:compile = txs:///xelatex/[--shell-escape]
\documentclass[12pt]{article}
\usepackage[paperwidth=14cm,paperheight=20.5cm]{geometry}
\usepackage{libertine}% use this font and geometry width to reproduce bad break
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\usepackage{polyglossia}
\setmainlanguage{french}
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\frenchbsetup{og=«, fg=»}
\fi
\usepackage[french=guillemets]{csquotes}
\usepackage{xspace}
\begin{document}
Je n'ai rien à dire -- mais je le dis bien : je suis un «\,beau parleur ».
Je n'ai rien à dire -- mais je le dis bien: je suis un «beau parleur».
Je n'ai rien à dire : je suis un « beau parleur » .
Je n'ai rien à dire: je suis un «beau parleur» .
\end{document}
答案2
如果您想使用 csquotes,您应该使引号处于活动状态,并输入它们(包括冒号)而不带空格,因为空格可能会插入不需要的断点:
\documentclass[12pt]{article}
\usepackage[paperwidth=14cm,paperheight=20.5cm]{geometry}
\usepackage{libertine}% use this font and geometry width to reproduce bad break
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\fi
\usepackage[french]{babel}
\usepackage{xspace}
\usepackage[babel,french=guillemets]{csquotes}
\MakeAutoQuote {«}{»}
\begin{document}
Je n'ai rien à dire --- mais je le dis bien: je suis un «beau parleur».
\end{document}