继续\mathsfup 和 \symsfup 用于变量,我们尝试从 NewTX 和 TeX Gyre Termes Math 中获取粗体无衬线直立感叹号和问号。然而,尝试排版它们让我感觉好像字体只会提供一个可能的感叹号和一个可能的问号。也就是说,喂
\documentclass{article}
\usepackage{iftex}
\ifTUTeX
\tracinglostchars=2
\usepackage[math-style=ISO]{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Sclaing smewhat ok.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[helvratio=.9]{newtxtext}%%% Sclaing smewhat ok.
\usepackage[slantedGreek,subscriptcorrection]{newtxmath}
\DeclareMathAlphabet{\mathbfsf}{\encodingdefault}{\sfdefault}{bx}{n}
\fi
\begin{document}\noindent
\(?\mathbf{?}\mathsf{?}\mathbfsf{?}\ifTUTeX\mathbfsfup{?}\mathbfsfit{?}\fi\)\\
\(!\mathbf{!}\mathsf{!}\mathbfsf{!}\ifTUTeX\mathbfsfup{!}\mathbfsfit{!}\fi\)\\
\ifTUTeX
\(?\symbf{?}\symsf{?}\symbfsf{?}\symbfsfup{?}\symbfsfit{?}\)\\
\(!\symbf{!}\symsf{!}\symbfsf{!}\symbfsfup{!}\symbfsfit{!}\)
\fi
\end{document}
产量pdflatex
如您所见,所有问号在视觉上都是相同的,所有感叹号在视觉上也是相同的。
将相同的代码输入到lualatex
,结果为
再次强调,所有问号在视觉上都是相同的,所有感叹号在视觉上都是相同的。
如果我们用拉丁字母代替感叹号和问号,我们会发现它们的形状发生了适当的变化。
对于问号和感叹号,我们没有收到有关无法生成任何非默认符号形状的反馈:
$ egrep -i "(warn)|(error)|(fail)|(miss)|(undef)" mwe.log
$
- 知道如何使用以下方法获得数学粗体无衬线直立问号(?)
1.1pdflatex
和 NewTX
1.2lualatex
和 TeX Gyre Termes Math?
- 知道如何使用数学粗体无衬线直立感叹号(!)吗?
2.1pdflatex
和 NewTX
2.2lualatex
和 TeX Gyre Termes Math?
如果 NewTX 和 TeX Gyre Termes Math 不行,那么应该使用哪对 Times 类字体(也许,甚至包括 Times 本身的变体)以及如何使用?或者我们应该求助于一些软件包或非平凡的命令(\usepackage{bm}
、\bm
、\boldmath
、\boldsymbol
……)什么是最干净的方法?
答案1
使用 pdflatex添加\showoutput
到您的示例中
....\mathon
....\OT1/minntx/m/n/10 ?
....\hbox(6.74998+0.09)x4.44
.....\OT1/minntx/m/n/10 ?
....\hbox(6.74998+0.09)x4.44
.....\OT1/minntx/m/n/10 ?
....\hbox(6.74998+0.09)x4.44
.....\OT1/minntx/m/n/10 ?
....\mathoff
因此,由于 ? 是相同的字形,因此它们“在视觉上是相等的”。
添加
\mathchardef\qqq\mathcode`? \show\qqq
生产
> \qqq=\mathchar"503F.
因此 ? 总是来自带有 (5) 间距的运算符,\fam0
它\mathclose
不会随着数学字母命令而改变。
添加
\DeclareMathSymbol{\qn}{\mathalpha}{operators}{`?}
\show\qn
生产
> \qn=\mathchar"703F.
它是一个 ?,带有\mathord
间距 (0) 和变量 (7)\fam
或者在日志中
....\OT1/minntx/m/n/10 ?
....\OT1/minntx/b/n/10 ?
....\T1/qhv/m/n/10 ?
....\T1/qhv/b/n/10 ?
从
\(\qn\mathbf{\qn}\mathsf{\qn}\mathbfsf{\qn}\)
\documentclass{article}
\usepackage{iftex}
\showoutput
\ifTUTeX
\tracinglostchars=2
\usepackage[math-style=ISO]{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Sclaing smewhat ok.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[helvratio=.9]{newtxtext}%%% Sclaing smewhat ok.
\usepackage[slantedGreek,subscriptcorrection]{newtxmath}
\DeclareMathSymbol{\qn}{\mathalpha}{operators}{`?}
\DeclareMathAlphabet{\mathbfsf}{\encodingdefault}{\sfdefault}{bx}{n}
\fi
\begin{document}
\noindent
\(?\mathbf{?}\mathsf{?}\mathbfsf{?}\ifTUTeX\mathbfsfup{?}\mathbfsfit{?}\fi\)\\
\(!\mathbf{!}\mathsf{!}\mathbfsf{!}\ifTUTeX\mathbfsfup{!}\mathbfsfit{!}\fi\)\\
\(\qn\mathbf{\qn}\mathsf{\qn}\mathbfsf{\qn}\)
\ifTUTeX
\(?\symbf{?}\symsf{?}\symbfsf{?}\symbfsfup{?}\symbfsfit{?}\)\\
\(!\symbf{!}\symsf{!}\symbfsf{!}\symbfsfup{!}\symbfsfit{!}\)
\fi
\end{document}