透過 newtxmath 直立小希臘語,無需替換數學字體

透過 newtxmath 直立小希臘語,無需替換數學字體

我正在努力遵守國際標準 ISO 80000-2。軟體isomath包做得很好,但它沒有解決 pi、Kronecker delta 和 Levi-Civita 符號所需的直立/羅馬小希臘字母丟失的問題。這可以透過多種方式實現,但通常產生的希臘字母的字體明顯與其對應的斜體字母不同(我使用的是標準電腦現代字體)。

下面的程式碼實現了一個非常漂亮的直立三角形(所有希臘字母都可以以類似的方式實現)。

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

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

也就是說,上面的程式碼\deltaup使用符號字體 letterA 聲明所需的宏,該宏本身由newtxmath.這可以正常工作,但作為一個不必要的副作用,加載newtxmath替換了文件中使用的數學字體,我不想改變它。

答案1

您可以使用 Claudio Beccari 的 CBfonts,它基於電腦現代設計。

\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}

在此輸入影像描述

在我看來,結果顯然更糟。

相關內容