这是一个“从不同字体导入符号”的问题,但我确信它没有重复。
我想\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}