从 `nwtxmia.tfm` 字体导入 \varepsilon (''34)

从 `nwtxmia.tfm` 字体导入 \varepsilon (''34)

这是一个“从不同字体导入符号”的问题,但我确信它没有重复。

我想\varepsilon\newtxmath包中获取直立部分。具体来说,我想获取符号 ''34 ntxmia.tfm(我使用 `fonttable 找到它)。我的尝试:

1.- 使用以下代码从 Computer Modern 字体导入空集

\DeclareFontFamily{U}{ntxmia}{\hyphenchar\font45}
\DeclareFontShape{U}{ntxmia}{m}{n}{
  <5> <6> <7> <8> <9> <10> gen * matha
  <10.95> ntxmia <12> <14.4> <17.28> <20.74> <24.88> ntxmia
  }{}
\DeclareSymbolFont{ntxmia}{U}{ntxmia}{m}{n}

\DeclareMathSymbol{\varepsilonup}{3}{ntxmia}{"34}

(一旦我得到了符号,我就会改变字符(即变成\mathord)。

2.- 使用以下代码从不同字体导入单个符号

\usepackage{pifont}
\makeatletter
\newcommand\Pimathsymbol[3][\mathord]{%
  #1{\@Pimathsymbol{#2}{#3}}}
\def\@Pimathsymbol#1#2{\mathchoice
  {\@Pim@thsymbol{#1}{#2}\tf@size}
  {\@Pim@thsymbol{#1}{#2}\tf@size}
  {\@Pim@thsymbol{#1}{#2}\sf@size}
  {\@Pim@thsymbol{#1}{#2}\ssf@size}}
\def\@Pim@thsymbol#1#2#3{%
  \mbox{\fontsize{#3}{#3}\Pisymbol{#1}{#2}}}
\makeatother

\newcommand{\varepsilonup}{\Pimathsymbol[\mathord]{ntxmia}{"34}}

3.- 使用以下代码通过 newtxmath 直立小希腊字母,无需替换数学字体

\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}

4.- 使用与上面相同的代码,但包括以下行

\usepackage[type1]{libertine}
\usepackage[libertine]{newtxmath}

只有 4 有效,但我必须使用libertine字体和newtxmath数学符号,而我不想要。我想将包computer modern提供的常用字体与符号一起使用mathabx

有什么解决办法吗?

答案1

其实比这简单多了:

\documentclass{article}
\usepackage{amsmath}

\DeclareFontFamily{U}{ntxmia}{\skewchar\font=127 }
\DeclareFontShape{U}{ntxmia}{m}{it}{
  <-> ntxmia
}{}
\DeclareFontShape{U}{ntxmia}{b}{it}{
  <-> txbmia
}{}
\DeclareSymbolFont{ntxmia}{U}{ntxmia}{m}{it}
\SetSymbolFont{ntxmia}{bold}{U}{ntxmia}{m}{it}
\DeclareMathSymbol{\in}{\mathrel}{ntxmia}{34}

\begin{document}

$x\in X$

\end{document}

在此处输入图片描述

答案2

如果使用 pdflatex,你可以使用 pdf special 取消倾斜 Computer Modern \varepsilon。请参阅直立希腊字体适合计算机现代

\documentclass[a4paper]{article}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][0]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\unslant[2][-.25]{\slantbox[#1]{$#2$}}

\begin{document}
$x\mathrel{\unslant\varepsilon\!} X$
\end{document}

在此处输入图片描述

相关内容