
我正在處理的文字是用實作 Dante Monotype 字體的專有 LaTeX 文件類本機編寫的。在這篇文章中,有很多數學知識,我想說它總體上是有效的,即使我不會特別建議數學應用程式使用 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):
我很欣賞到目前為止發布的兩個答案,並且我嘗試將 a 定義newcommand
為Steven B 程式碼的第2 行到第15 行。著「很好」調整」)。此外,我嘗試了以下三種方法:
\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,因為我無法存取 Dante 字體的非 Opentype 版本;具體來說,我使用Dante MT Std
.我還使用數學字體,因為我發現它比其他字體Cambria 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
(當然,您可以自由決定您是否喜歡數學中的老式數字或襯裡數字。)