我有时会使用没有粗体字体,所以我想知道是否有办法fakebold
在 LuaLaTeX 中使用某些功能。
该fontspec
文档解释了 XeLaTeX 的一项功能,但在 LuaLaTeX 中还不起作用。
fakebold
在 LuaLaTeX 中已经可以工作了吗?- 如果没有,那么有类似的计划吗?
- 如果是,该功能有没有预定的发布日期?
- 如果以上答案都是否定的,那么有没有什么解决方法?
梅威瑟:
% !TEX TS-program = lualatexmk
\documentclass[20pt, a4paper, DIV=calc]{scrbook}
\usepackage{fontspec}
\setmainfont[AutoFakeBold=2.0]{Times New Roman}
\begin{document}
A Test. \textbf{A bold test}?
\end{document}
答案1
@ 1,是的,它在 LuaTeX 中确实有效。方法如下。请注意,如果您删除第 2 行和第 3 行,这也可以在纯 pdfLaTeX 中工作。
\documentclass[20pt, a4paper, DIV=calc]{scrbook}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\renewcommand{\textbf}[1]{%
\pdfliteral direct {2 Tr 1.5 w}% the second factor is the boldness
#1%
\pdfliteral direct {0 Tr 0 w}%
}
\begin{document}
A Test. \textbf{A »bold« test}?
\end{document}
@ 2,通过 fontspec,它还不能在 LuaTeX 中工作,但您已经知道这一点 :)
@ 3,参见 Khaled 的评论
@ 4,是的,我想我刚刚发布的内容可以被视为一种解决方法,甚至是一种黑客攻击,因为它绕过了 fontspec 并在 pdf 级别工作
这就是说,我强烈反对使用这种 hack(使用 Lua)或fakebold
(使用 Xe)来替代适当的粗体字体,因为结果是不可预测的——当涉及到打印时!
我尝试使用 ,fakebold
不是伪造粗体,而是创建一个伪造的脚注大小字体等级,就像我们这个时代的大多数字体一样,只有一个等级。针对较小尺寸优化的等级通常(除其他特征外)其笔画宽度增加,特别是在细线和衬线中。这就是我想要模仿的。我所做的只是在 中添加了一点点额外的伪粗体\footnotesize
,因此该尺寸的衬线与 一样坚固\normalsize
(而不是按比例变薄)。
使用 0.16 的假粗度来伪造光学效果。请注意,在不同的点大小下,衬线粗细保持不变(或不同,取决于你如何看待它)
虽然经过一些调整后,屏幕上的效果很好,尤其是放大后,但最终打印到纸上的效果却很糟糕。\footnotesize
在 1200dpi 的现代商务级 LaserJet 打印机上,段落太粗了。稍微减少一点也没有产生明显的变化。进一步减少后,我突然回到了字体的默认外观。这可能与打印机解释原始字体轮廓的方式与解释添加了假粗体的字体轮廓的方式有关。
提醒自己:就像假斜体一样,假粗体不是严肃的印刷业务的选择。但公平地说,没有人承诺过它会是 :)