Шрифт Dante Monotype и дроби

Шрифт Dante Monotype и дроби

Я обрабатываю текст, который изначально написан в проприетарном классе документов LaTeX, который реализует шрифт Dante Monotype. В этом тексте много математики, и я бы сказал, что в целом он работает, даже если я бы не советовал конкретно шрифт Dante для математических приложений.

Даже показатели степени ( $e^{x^2}$) , скажем так, хорошо пропорциональны для моего глаза, а вот дроби мне совсем не нравятся. Как на следующей картинке:

изображение

Дробь, обведенная красным, как и следующие за ней, имеет числитель и знаменатель, которые находятся очень далеко от черты дроби.

Как я могу улучшить это в частности? Любой пакет, связанный с дробями, может работать в настоящее время с этим шрифтом? Любая команда, похожая на \dfracили \tfracможет помочьуменьшение(а не увеличивать) общую высоту дробей?

Никаких других решений, чтобы исправить такую ​​«длину», мне в голову не приходит.


Приложение:

У меня MikTeX 2.9 на ОС Windows 7. Редакторы, которые я использую, это TeXstudio и TeXnicCenter, и я компилирую с помощью pdfLaTeX. Поведение дробей такое же, как при использовании TeXshop на Mac OS. Спасибо.

Код для изображения выше:

$$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как в строках 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. Я также использую Cambria Mathшрифт 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}

Приложение: Говоря за себя, я нахожу использование чисел старого стиля в математике довольно сомнительным. Вот что получается в результате исключения опции Numbers=OldStyleво второй \setmathfontдирективе MWE. (Вы, конечно, вольны сами решать, предпочитаете ли вы числа старого стиля или линейные числа в математике.)

введите описание изображения здесь

Связанный контент