![在旧式英语文本中自动在标点符号前添加空格](https://linux22.com/image/252966/%E5%9C%A8%E6%97%A7%E5%BC%8F%E8%8B%B1%E8%AF%AD%E6%96%87%E6%9C%AC%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%9C%A8%E6%A0%87%E7%82%B9%E7%AC%A6%E5%8F%B7%E5%89%8D%E6%B7%BB%E5%8A%A0%E7%A9%BA%E6%A0%BC.png)
我正在排版 18 世纪风格的英文文本(基于 1725 年版的 Alexander Pope 的《愚人记》)。有没有一个 LaTeX 软件包可以用来自动在标点符号前(和后)添加正确的空格?我需要类似于 babel 中为“法语”提供的空格,但似乎没有为“英语”提供这种选项,我在另一个软件包中找到的最接近的选项是 ecclesiastic.sty,它对拉丁语有类似的功能。
答案1
如果您使用最近的版本,pdflatex
您还可以启用法语字距调整microtype
:
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[kerning=true]{microtype}
\begin{document}
What is the result of these settings?
Some space!
\microtypecontext{kerning=french}
What is the result of these settings?
Some space!
\end{document}
答案2
您可以制作!
、?
、;
和:
字符“活跃”,即将它们转换为控制序列,在本例中,会自动插入“细空格”前相应的字符。
\documentclass{article}
\catcode`\!=\active \edef!{\unskip\noexpand\,\string!}
\catcode`\:=\active \edef:{\unskip\noexpand\,\string:}
\catcode`\;=\active \edef;{\unskip\noexpand\,\string;}
\catcode`\?=\active \edef?{\unskip\noexpand\,\string?}
\begin{document}
Hello? World! I'm; here: now.
\end{document}