感叹号和问号采用数学粗体无衬线直立 Times 字体或 Times 类字体

感叹号和问号采用数学粗体无衬线直立 Times 字体或 Times 类字体

继续\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

pdflatex 的输出

如您所见,所有问号在视觉上都是相同的,所有感叹号在视觉上也是相同的。

将相同的代码输入到lualatex,结果为

lualatex 的输出

再次强调,所有问号在视觉上都是相同的,所有感叹号在视觉上都是相同的。

如果我们用拉丁字母代替感叹号和问号,我们会发现它们的形状发生了适当的变化。

对于问号和感叹号,我们没有收到有关无法生成任何非默认符号形状的反馈:

$ egrep -i "(warn)|(error)|(fail)|(miss)|(undef)" mwe.log
$
  1. 知道如何使用以下方法获得数学粗体无衬线直立问号(?)

1.1pdflatex和 NewTX

1.2lualatex和 TeX Gyre Termes Math?

  1. 知道如何使用数学粗体无衬线直立感叹号(!)吗?

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}

相关内容