有时,符号的标称尺寸(即声明尺寸)与实际尺寸不一致。这可能是有意或无意的,但有时会带来不便。
\ddag
字体中的双匕首 ( )的尺寸cm
似乎有点不准确。使用\kern
一个可以调整水平尺寸。可以使用 Steven B. Segletes 的有用包更改垂直尺寸verbatimbox
:
(免责声明:请注意,水平扩展是故意的,不太可能引起任何问题。Barbara Beeton 指出,“Metafont 定义显然包括了宽大的侧边距,出现在本书第 536-537 页计算机现代字体,Knuth 的 E 卷计算机与排版系列”。尽管如此,我的调整应起到说明作用。调整侧间距的更好例子可能是来自/
;的斜线txfonts
,见下文。)
(免责声明: txfonts
被newtx
、ienewtxtext
和取代newtxmath
。当我用它编译时,会出现相同的字形问题。所以我将让我的问题保持现状。newtx
我不知道软件包中的指标在多大程度上仍需要改进。)
从中查看一些符号txfonts
,该符号\ncong
似乎具有正确的尺寸(我在这里假设两侧的水平间距是良好且有益的):
但其中的一些其他符号似乎略有误判:
这里,\dag
、\ddag
、\Vert
、\#
和\equiv
可以从顶部的垂直调整中受益(声明的高度\equiv
有点太小,尽管从这里的图片中很难看出来)。这对于符号来说/
也有点正确,但更需要水平调整才能在两侧创建相等的间距。(字体中的斜线cm
没有这种不对称的水平间距。)
以下是用于生成上述示例的代码:
\documentclass{article}
\usepackage{txfonts} % comment out for "cm" font symbols
\usepackage{verbatimbox}
\newcommand*{\ddagMod}{\kern-0.060em\addvbuffer[0.025ex 0.025ex]{\ddag}\kern-0.062em}
\begin{document}
{
\Huge
\fboxsep=0pt\fboxrule=.02pt
% \fbox-trick taken from Steven B. Segletes' answers here:
% http://tex.stackexchange.com/a/121946/14996
% http://tex.stackexchange.com/a/123108/14996
% cm fonts ("\usepackage{txfonts}" commented out):
\fbox{\ddag}
\fbox{\ddagMod}
% with "\usepackage{txfonts}":
\fbox{\(\ncong\)}
\par
\fbox{\dag}
\fbox{\ddag}
\fbox{\(\Vert\)}
\fbox{\#}
\fbox{\(\equiv\)}
\par
\fbox{/}
}
\end{document}
如何以最简洁的方式调整符号的垂直和水平尺寸?假设我们有一个符号\symb
,并希望以一种可能适用于不同字体大小和不同数学模式样式的方式对其进行调整。我在文本模式下\ddagMod
做了我想做的事情\ddag
,但是需要一种强大而通用的方法。
答案1
基本答案是(至少在经典 TeX 中,不确定 luatex)你不能。
对于任何符号\foo
你都可以使用
\setbox\mybox{\kern..\raisebox{..}{\foo}\kern..}
\ht\mybox=..
\wd\mybox==..
\dp\mybox=..
要制作一个任意所需大小的框,并将字形放置在该边界框内的任意位置,这样 \usebox\mybox
做或多或少是正确的,但主要区别在于它是一个盒子不是一个特点并且盒子只有三种长度(高度深度宽度),而字符有四种(+斜体校正)并参与字距调整和连字。
例如,$P_1$
看起来不像$\hbox{$P$}_1$
是使用字体度量信息来拉入下标。如果您重新包装 P,则无法轻松获得它。
因此,在经典 TeX 中,干净的方法是运行 tftopl 来制作字体度量文件的文本版本,编辑度量,然后运行 pltotf 来制作一些新的 tfms 并使用它们。