我正在努力遵守國際標準 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}
在我看來,結果顯然更糟。