如何降低newtx版本≥1.724中sans math字體的大寫高度?

如何降低newtx版本≥1.724中sans math字體的大寫高度?

運行pdflatex

\documentclass[ngerman]{article}
\pagestyle{empty}
\usepackage[T2A,T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[slantedGreek,subscriptcorrection,helvratio=.9]{newtx}% I tested v1.724 and v1.735
\begin{document}
x\textsf{xX}X$\mathsf{XxX}\mathrm{Xx}\mathsf{x}$x
\end{document}

產量

輸出

當使用單一的全覆蓋字體包(如 NewTX)時,我們應該期望所有字體都能很好地相互配合,至少大致如此。 (請注意,我們在這裡不是測試兩個包新文本文本新TX數學:說\usepackage{newtxtext,newtxmath}代替會\usepackage[…]{newtx}產生不同的輸出,儘管它是較舊的介面。

沒有字體的文字並不理想,但是主觀地可以容忍的:雖然 sans x 明顯比 serif x 高(1.046 倍),但 sans X 比 serif X 稍小(1.009 倍),我們可以調整 sans 字體的文本高度無論如何helvratio,如果我們願意的話。

沒有字體的數學顯然讓我們煩惱;我們考慮它的高度主觀地沒有很好地均衡

  • 文字字體的高度和

  • 數學直立字體的高度。

也就是說,儘管 sans math x 僅比文字襯線 x 和 math 直立襯線 x 稍小(1.015 倍),但 sans math X 明顯比襯線文字 x 和 math 襯線 x 都高(1.046 倍)。襯線X 和數學直立襯線X。如何稍微縮小 sans math 或其中的大寫字母,即降低 sans math 字體或 sans math 字體中的大寫字母的高度?

字體之間的其他關係似乎很好,而且我們的非最小範例中有更多字體,因此我們不希望調整超出上面要求的範圍(特別是,我們希望保留所有非 sans-math 的大小目前的字體) 。

答案1

詢問後\showthe\textfont8發現\T1/cmss/m/n/10,不是使用與 相同的字體\sffamily

我不知道為什麼newtx.sty不設定\mathsf字體,但卻newtxmath.sty設定了。修復並報告。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[
  slantedGreek,
  subscriptcorrection,
  helvratio=.9,
]{newtx}

\DeclareMathAlphabet{\mathsf}{\encodingdefault}{\sfdefault}{m}{n}
\SetMathAlphabet{\mathsf}{bold}{\encodingdefault}{\sfdefault}{b}{n}

\begin{document}

x\textsf{xX}X$\mathsf{XxX}\mathrm{Xx}\mathsf{x}$x

\end{document}

在此輸入影像描述

相關內容