我正在处理一个文本,该文本本身是用专有的 LaTeX 文档类编写的,该文档类实现了 Dante Monotype 字体。这个文本中有很多数学知识,我认为它总体上是可行的,即使我不建议在数学应用中使用 Dante 字体。
在我看来,偶数指数 ( $e^{x^2}$
) 的比例很好,而我一点也不喜欢分数。如下图所示:
红色圈出的分数以及下面的分数的分子和分母都距离分数线很远。
我该如何改进这一点?目前任何与分数相关的软件包都可以与此字体配合使用吗?任何类似\dfrac
或\tfrac
可能有帮助的命令减少(而不是增加)分数的总高度?
我想不到还有其他解决方案来解决这个“长度”问题。
附录:
我在 Windows 7 操作系统上安装了 MikTeX 2.9。我使用的编辑器是 TeXstudio 和 TeXnicCenter,我用 pdfLaTeX 进行编译。在 Mac OS 上使用 TeXshop 时,分数的行为相同。谢谢。
上图的代码是:
$$y_0(t)=1$$
$$y_1(t)=1+\int^t_0 \mt\,\md\mt=1+\frac{t^2}{2}$$
$$y_2(t)=1+\int^t_0 \mt\left(1+\frac{\mt^2}{2}\right)\md\mt=1+\frac{t^2}{2}+\frac{t^4}{8}$$
\vspace{1pt}
$$\vdots$$
\vspace{1pt}
$$y_n(t)=1+\int^t_0 \mt\,y_{n-1}(\mt)\,\md\mt=1+\frac{t^2}{2}+\frac{1}{2!}\left(\frac{t^2}{2}\right)^2+\ldots+\frac{1}{n!}\left(\frac{t^2}{2}\right)^n$$
其中\md
和\mt
已在我的序言中定义。谢谢。
附录(2):
我很欣赏到目前为止发布的两个答案,并尝试定义一个,newcommand
如 Steven B. 代码的第 2 至 15 行所示(我更喜欢这种方法,因为我以前从未接触过 LuaLaTeX,而这只是“微调”)。此外,我尝试了以下所有三种方法:
\renewcommand{\frac}[2]{\displaystyle{\frac{\lower2pt\hbox{#1}}{\raise2pt\hbox{#2}}}}
和:
\renewcommand{\frac}[2]{\dfrac{\lower2pt\hbox{#1}}{\raise2pt\hbox{#2}}}
或者:
\newcommand\newfrac[2]{\frac{\lower2pt\hbox{#1}}{\raise2pt\hbox{#2}}}
但所有这四个候选解决方案都在我的系统(类)中产生了几个错误。我的这三行能给出一些有用的建议吗?
我会发布最新消息。
答案1
我无法访问你的字体,但(如我的评论所示),我的回答是带有凸起分数线的特殊分数宏可以解决您的问题。在这里,我将其创建为\newfrac
。
为了演示目的,我修改了引用答案中的尺寸,以进一步将分数压缩在一起。\stackunder
和的可选参数\stackon
是要调整以满足您的需求的间隙距离。 当然,这个 MWE 使用的是 CM 字体。
\documentclass{article}
\usepackage{stackengine}
\usepackage{ifthen}
\newlength\testwida
\newlength\testwidb
\newlength\mywidth
\newcommand\newfrac[2]{%
\setlength\testwida{\widthof{$#1$}}%
\setlength\testwidb{\widthof{$#2$}}%
\ifthenelse{\lengthtest{\testwida>\testwidb}}%
{\mywidth=\testwida}%
{\mywidth=\testwidb}%
\raisebox{.5ex}{%
\stackunder[2pt]{\stackon[2pt]{\rule{\mywidth}{.4pt}}{$#1$}}{$#2$}}%
}
\def\mt{\mathbf{t}}
\def\md{\mathbf{d}}
%\let\newfrac\frac% UNCOMMENT TO SEE ORIGINAL \frac VERSION
\begin{document}
$$y_0(t)=1$$
$$y_1(t)=1+\int^t_0 \mt\,\md\mt=1+\newfrac{t^2}{2}$$
$$y_2(t)=1+\int^t_0 \mt\left(1+\newfrac{\mt^2}{2}\right)\md\mt=1+\newfrac{t^2}{2}+\newfrac{t^4}{8}$$
\vspace{1pt}
$$\vdots$$
\vspace{1pt}
$$y_n(t)=1+\int^t_0 \mt\,y_{n-1}(\mt)\,\md\mt=1+\newfrac{t^2}{2}+\newfrac{1}{2!}\left(\newfrac{t^2}{2}\right)^2+\ldots+\newfrac{1}{n!}\left(\newfrac{t^2}{2}\right)^n$$
\end{document}
为了进行比较,这是原始\frac
版本。
答案2
以下主要是尝试使用非专有工具复制您的屏幕截图,该屏幕截图基于专有设置。希望答案也能为如何解决分子和分母项与分数条之间的距离过大的问题提供有用的建议。
我的代码使用 LuaLaTeX,因为我无法访问非 Opentype 版本的 Dante 字体;具体来说,我使用Dante MT Std
。我还使用数学字体,因为我发现它比isCambria Math
更匹配。匹配并不完美;只是我能想到的最佳匹配。幸运的是,通过使用各种指令指示系统对所有数字和字母以及各种符号使用字形,可以大大改善匹配。Dante
TeX Gyre Pagella Math
Cambria Math
\setmathfont
Dante MT
请注意,分子和分母项在分数条上方和下方的位置并不像在专有设置中那样远。
总结:从 pdfLaTeX 切换到 LuaLaTeX 并使用Cambria Math
数学字体系列(以及使用Dante MT Std
或Dante MT Pro
作为文本字体)对您来说是一种选择吗?
% !TEX TS-program = lualatex
\documentclass{article}
% Set text font
\usepackage[no-math]{fontspec}
\setmainfont[Numbers=OldStyle]{Dante MT Std}
\usepackage{amsmath} % for 'gather*' environment
% Set default math font
\usepackage{unicode-math}
\setmathfont[Scale=MatchLowercase]{Cambria Math}
% Use Dante MT for numerals, all letters, and various symbols
\setmathfont[range={"0030-"0039},Numbers=OldStyle]{Dante MT Std}
\setmathfont[range=\mathrm]{Dante MT Std}
\setmathfont[range=\mathit]{Dante MT Std Italic}
\setmathfont[range=\mathbfup]{Dante MT Std Bold}
\setmathfont[range=\mathbfit]{Dante MT Std Bold Italic}
\setmathfont[range={"0025,"002A-"002F,
"003A-"003F,"005B-"005D,"007B-"007D,
"03A9,"00B0-"00B7,"00BC-"00BE,"00D7,
"00F7,"03A9,"03BC,"03C0,"2153,"2154,
"215B-"215E,"2202,"2206,"2212,"2215,
"2219,"221E,"2248,"2260,"2264,"2265}]{Dante MT Std}
% A couple of user-defined shorthand macros
\newcommand{\md}{\mathrm{d}}
\newcommand{\mt}{\mathbf{t}}
\begin{document}
\begin{gather*}
y_0(t)=1\\
y_1(t)=1+\int^t_0 \mt\,\md\mt=1+\frac{t^2}{2}\\
y_2(t)=1+\int^t_0 \mt\left(1+\frac{\mt^2}{2}\right)\md\mt=1+\frac{t^2}{2}+\frac{t^4}{8}\\
\vdots \\
y_n(t)=1+\int^t_0 \mt\,y_{n-1}(\mt)\,\md\mt=
1+\frac{t^2}{2}+\frac{1}{2!}\left(\frac{t^2}{2}\right)^{\!2}+\dots+
\frac{1}{n!}\left(\frac{t^2}{2}\right)^{\!n}
\end{gather*}
\end{document}
附录:就我个人而言,我认为在数学中使用旧式数字是相当值得怀疑的。这是省略MWENumbers=OldStyle
第二\setmathfont
条指令中的选项后的结果。(当然,您可以自行决定在数学中是喜欢旧式数字还是直线数字。)