2

This is an 'import symbol from a different font' question, but I'm sure its is not duplicated.

I would like to get the upright \varepsilonfrom the \newtxmathpackage. Concretely, I would like to get the symbol ''34 of ntxmia.tfm (I have used `fonttable to find it). My attepms:

1.- Using the code from Import empty set from Computer Modern font:

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

(Once I would had got the symbol I would change the character (i. e. to be a \mathord).

2.- Using the code from Importing a Single Symbol From a Different Font:

\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.- Using the code from Upright small greek via newtxmath without replacing the math font:

\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.- And using the same code as above but including the lines

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

Only 4 works, but then I have to use libertine font ands newtxmath math symbols and I don't want. I want to use the usual computer modern font together with symbols provided by the mathabx package.

Any solution?

2
  • It's decimal 34, not hexadecimal.
    – egreg
    Commented Feb 7, 2018 at 17:57
  • Oh, sorry. I don't understand anything about all these things... :(
    – Dog_69
    Commented Feb 7, 2018 at 17:58

2 Answers 2

1

It's much easier than that:

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

enter image description here

3
  • Only one wuestion. What does the number 127 mean?
    – Dog_69
    Commented Feb 7, 2018 at 17:57
  • @Dog_69 It's the character used by TeX for kerning math accents.
    – egreg
    Commented Feb 7, 2018 at 17:57
  • Ahhm... I don't understand anything you say, but don't worry. Thanks again.
    – Dog_69
    Commented Feb 7, 2018 at 18:03
0

If using pdflatex, you can just unslant the Computer Modern \varepsilon using pdf special. See Upright Greek font fitting to Computer Modern

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

enter image description here

1
  • I thought that, but I prefer much more the other varepsilon. Thanks anyway.
    – Dog_69
    Commented Feb 7, 2018 at 18:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .