用纯文本替换一种字体中的宽波浪线

用纯文本替换一种字体中的宽波浪线

我在纯 TeX 中使用 newtx 字体。但是,我更喜欢 cmex 的大部分内容而不是 ntxexx。有一个例外(到目前为止我发现的),即 \widetilde,它在 ntxexx 中很漂亮。我没有其他系列可以让我定义这两个字体系列;我只能定义 cmex。我怎样才能在 cmex 中用一个字符替换 \widetilde 或定义使用它的宏?

下面展示了如何查看 ntxexx 提供的内容:

\font\tenrm=txr
\font\tenex=ntxexx
\textfont3=\tenex

\tenrm I see $\widetilde {f(x)}$.

\bye

答案1

基于来回切换数学扩展字体的想法:

\font\tenrm=txr

% don't perpetuate the error
\font\tenntex=ntxexx \font\sevenntex=ntxexx at 7pt \font\fiventex=ntxexx at 5pt
\font\tencmex=cmex10 \font\sevencmex=cmex7 \font\fivecmex=cmex5

\def\cmex{\textfont3=\tencmex \scriptfont3=\sevencmex \scriptscriptfont3=\fivecmex}
\def\ntex{\textfont3=\tenntex \scriptfont3=\sevenntex \scriptscriptfont3=\fiventex}

\cmex

\catcode`@=11
\def\wtld#1{\mathpalette\@wtld{#1}}
\def\@wtld#1#2{%
  \hbox{%
    $\m@th\ntex#1\widetilde{\hbox{$\m@th\cmex#1#2$}}$%
  }%
}

\tenrm I see $\widetilde {f(x)}$.

And this: $\wtld {f(x)} \wtld {\sum a_i}$

And this: $\wtld {f(x)} \sum \wtld {a_n}$

And in subscripts: $X_{\wtld{f+g}}$

\bye

在此处输入图片描述

答案2

操作方法如下(尽管在某些情况下可能会出现复杂情况):

\font\tenrm=txr
\font\tenex=ntxexx
\font\tencmex=cmex10
\textfont3=\tencmex

\def\wtld#1{\hbox{$\textfont3=\tenex \widetilde {#1}$}}

\tenrm I see $\widetilde {f(x)}$.

And this: $\wtld {f(x)} \wtld {\sum a}$

And this: $\wtld {f(x)} \sum \wtld {a_n}$

\bye

在此处输入图片描述

相关内容