Вертикальный строчный греческий шрифт через newtxmath без замены математического шрифта

Вертикальный строчный греческий шрифт через newtxmath без замены математического шрифта

Я пытаюсь соответствовать международному стандарту ISO 80000-2. Пакет isomathхорошо справляется, но не решает проблему отсутствия прямых/римских строчных греческих букв, необходимых для пи, дельты Кронекера и символа Леви-Чивиты. Этого можно добиться разными способами, но обычно получающиеся греческие буквы явно другого шрифта, чем их курсивные аналоги (я использую стандартный шрифт Computer Modern).

Следующий код реализует очень хорошую вертикальную дельту (все греческие буквы могут быть получены аналогичным образом).

\documentclass{article}
\usepackage[libertine]{newtxmath}
\DeclareMathSymbol{\deltaup}{\mathord}{lettersA}{14}

\begin{document}
$\delta\deltaup$
\end{document}

То есть, приведенный выше код объявляет нужный макрос, \deltaupиспользуя символьный шрифт lettersA, который сам загружается newtxmath. Это работает правильно, но в качестве нежелательного побочного эффекта загрузка newtxmathзаменяет используемый математический шрифт в документе, который я не хочу изменять.

решение1

Вы можете использовать шрифты CBfonts от Клаудио Беккари, основанные на дизайне Computer Modern.

\documentclass{article}
\usepackage[LGR,T1]{fontenc} % or OT1, if you prefer

\DeclareSymbolFont{upgreek}{LGR}{cmr}{m}{n}
\DeclareMathSymbol{\deltaup}{\mathord}{upgreek}{`d}
\DeclareMathSymbol{\piup}{\mathord}{upgreek}{`p}
\DeclareMathSymbol{\epsilonup}{\mathord}{upgreek}{`e}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\epsilonup$
\end{document}

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

Менее эффективное решение, не тратящее впустую семейство математических шрифтов, выглядит так textalpha:

\documentclass{article}
\usepackage{amsmath}
\usepackage{textalpha}

\newcommand{\deltaup}{\text{\textdelta}}
\newcommand{\epsilonup}{\text{\textepsilon}}
\newcommand{\piup}{\text{\textpi}}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\epsilonup$
\end{document}

Результат тот же.

Если вы хотите использовать прямую греческую версию, используемую при \usepackage[libertine]{newtxmath}загрузке, то вот трюк

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\let\iftx@libertine\iftrue
\let\iftx@minion\iffalse
\def\ntxmath@scaled{s*[1.02]}
\makeatother
\DeclareSymbolFont{upgreek}{U}{ntxmia}{m}{it}
\SetSymbolFont{upgreek}{bold}{U}{ntxmia}{b}{it}
\DeclareMathSymbol{\deltaup}{\mathord}{upgreek}{14}
\DeclareMathSymbol{\varepsilonup}{\mathord}{upgreek}{34}
\DeclareMathSymbol{\piup}{\mathord}{upgreek}{25}

\begin{document}
$\delta\deltaup$

$\pi\piup$

$\varepsilon\varepsilonup$
\end{document}

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

По моему мнению, результат однозначно хуже.

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