
Я обрабатываю текст, который изначально написан в проприетарном классе документов 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. (Вы, конечно, вольны сами решать, предпочитаете ли вы числа старого стиля или линейные числа в математике.)