我想用旧式连字符(如 st、ct、is、es 等)排版文本,但不使用命令序列,例如在 Plain TeX 中使用 street 或 construction 代替\st reet
or constru\ct ion
。并使用长 s。我需要做什么才能实现这一点?谢谢。
答案1
OpenType 字体功能hlig
提供了这些所谓的历史连字。除了输入ſ
,还可以使用该+medi
功能将正常的s
上下文替换为ſ
,例如,输入streets
将变成ſtreets
。不幸的是,我没有提供 的字体+medi
。也许其他拥有匹配字体的用户可以提供一个例子。
用xetex
或排版luatex
。
\ifdefined\directlua
\input luaotfload.sty
\fi
\font\1="Linux Libertine O:+hlig"
\1 ſtreet construction
\bye
以下是随 TeXlive 2015 分发的字体列表,它们具有以下hlig
特点:
Accanthis ADF Std No3
Baskervaldx
EB Garamond 12
fbb
FreeSans
FreeSerif
Gillius ADF
Gillius ADF Cond
Gillius ADF No2
Gillius ADF No2 Cond
Linux Biolinum O
Linux Libertine Display O
Linux Libertine O
TeXGyrePagellaX
Universalis ADF Std
Universalis ADF Std cond
对于技术爱好者来说,这里是bash
上述代码片段的命令行(已改进,感谢 Clea F. Rees):
IFS=$'\n';
for i in `fc-list | cut -d ':' -f 1 | grep /usr/local/texlive/2015/texmf-dist/.*otf`; do
if [ -n "`otfinfo -f "$i" | grep hlig`" ]; then
otfinfo -a "$i";
fi;
done | sort | uniq
答案2
一些随 TeX Live 安装的“传统”字体提供了部分或全部连字和长 s。由于没有“标准”界面,因此如何访问这些内容取决于字体的配置方式。
虽然以下示例使用 LaTeX,但这只是因为这是我最熟悉的。连字等都是在字体级别定义的,不依赖于 LaTeX 包。我相信您只需要在 TeX 级别使用正确的字体即可。(但请参见下文有关编码的内容。)
罗曼德 ADF‘alternative’ 自动提供附加连字符,并且可以使用 访问长 s s*
。
\documentclass{article}
\usepackage{romande}
\begin{document}
\altstyle
As*s*ociated facts stray specious*ly.
\end{document}
文丘里管 ADF 旧款'alternative' 提供了一些补充,使用 . 访问长 s s+
(s*
用于访问常规s
. 的替代版本)
\documentclass{article}
\usepackage{venturisold}
\begin{document}
\altstyle
As+s+ociated* facts stray s*pecious+ly.
\end{document}
您还可以使用“花饰”样式来制作精美的东西。例如,Venturis ADF 本身就包含单词结尾花饰。
戴·罗曼不是 TeX Live 的一部分,但可以使用 安装getnonfreefonts-sys
,它可以自动安装其他字体。
在这种情况下,相关字体系列默认使用长 s,并s:
需要访问常规 s 以用于单词末尾等。该系列还提供额外的连字符。
\documentclass{article}
\renewcommand\rmdefault{dayroms}
\usepackage[T1]{fontenc}
\begin{document}
Associated facts: stray speciously.
\end{document}
大多数字体都使用了OT1
编码以外的其他东西,因为编码根本无法提供足够的空间来容纳花哨的连字符或替代字符。我不确定这在普通情况下是如何工作的,但能够使用具有 256 个插槽而不是 128 个插槽的字体编码对于这一点至关重要,因为否则你无法牺牲太多来OT1
为这种事情腾出空间。
还要注意的是,这些东西都是黑客手段。Day Roman S 不使用标准T1
编码。我还没看过。但它不可能是标准的,因为它必须使用一个连字符槽s:
,而这当然不是T1
编码中的标准连字符。
这意味着有些字符排版会产生意想不到的结果。一些不相关的字符,将其包含在您的文档中会意外地产生ct
字符或长 s 或其他什么。
因此,阅读文档非常重要,以检查您不需要那些已经用于容纳花哨的、非标准附加内容的字符,因为您不会收到有关意外输出的任何警告。
如果字体T1
使用T1
因此,即使一个额外的字符也意味着一些插槽已被劫持。
答案3
感谢大家的精彩回答,我学到了很多。我找到了一款很棒的字体,在我看来,它非常适合旧书,它的名字叫我爱 DW Pica PRO可以在这里找到:Igino Marini 网站以及其他出色的字体。这款字体具有历史性形式和连字,并带有+dlig,+hlig,+hist
opentype 字体功能,可与 XeTeX 完美配合。
梅威瑟:
\font\1="IM FELL DW Pica PRO:mapping=tex-text,+dlig,+hlig,+hist" at 12pt
\1 Associated facts stray speciously.
1234567890
\bye
生成:
因此,代码中无需区分 s 和 long s。再次感谢。