0

I'm trying very hard to understand NFSS and the underlying mechanisms, and it's slow going. I'm in the process of revising and updating a package and I've put together a MWE to test whether or not I've broken anything, all while trying to conform to ISO specs. My question is about the lowercase "a" and "g" glyphs. I don't like the "g" glyph in Math Roman and Math Sans. Is there an easy way to make it like the other math mode "g" glyphs? Similarly, in Text Bold Sans, I really need the "g" glyph from, say, Math Bold, only upright. I don't know if that's possible. As for the "a" glyph, I think I see a pattern that accounts for its appearance. I really can't predict which combinations will and will not work. Here is my MWE and its output.

\documentclass[10pt]{article}
\usepackage{mandi}
\usepackage[OMLmathbf,OMLmathsfit]{isomath}
\usepackage{tensor}
\usepackage{soul}
\usepackage{lipsum}
\usepackage{geometry}
\geometry{margin=0.25in,top=0.25in,bottom=0.25in}
\pagestyle{empty}

\setul{}{0.25ex}
\newcommand*{\slot}[1][~~]{\,\underline{\smash{\makebox[1em]{\ensuremath{#1}}}}\,}

\begin{document}
\begin{align} 
  &\pi \text{ and } \mathrm{e} \text{ and } \mathrm{i} \text{ and } 
    \mathrm{d} \text{ and } \mathrm{\Delta} \\
  &\textbf{\textsf{dot}}(\slot,\slot) \text{ becomes } 
    \textbf{\textsf{dot}}(\slot[\vectorsym{a}],\slot[\vectorsym{p}])\\
  &\textbf{\textsf{cross}}(\slot,\slot,\slot) \text{ or } 
    \tensorsym{\epsilon}(\slot,\slot,\slot) \\
  &\tensorsym{T} \cdot \vectorsym{a} \\
  &\tensorsym{T} \text{ or } T\indices{^i^j} \text{ or } 
    \mathsfit{T}\indices{_i_j} \\
  &\tensorsym{I} \text{ or } I\indices{_i_j} \text{ or } 
    \mathsfit{I}\indices{_i_j} \\
  &\tensorsym{g} \text{ or } g\indices{_i_j} \text{ or } 
    \mathsfit{g}\indices{_i_j} \\
  &\tensorsym{g} \text{ or } \tensorsym{g}(\slot,\slot) \text{ or }
    \tensorsym{g}(\slot[\tensorsym{a}],\slot)  \\
  &\vectorsym{a} = a^i \vectorsym{e}_i = a^1\vectorsym{e}_1 + a^2\vectorsym{e}_2 + 
    a^3\vectorsym{e}_3 \\
  &\tensorsym{g}\indices{^\mu_\nu} \neq \tensorsym{g}\indices{_\mu_\nu}
\end{align}

Text Italic Sans
\textsf{\textit{abcdefghijklmnopqrstuvwxyz}}
\textsf{\textit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}

Text Bold Sans 
\textbf{\textsf{abcdefghijklmnopqrstuvwxyz}}
\textbf{\textsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}

Text Bold Up
\textbf{\textup{abcdefghijklmnopqrstuvwxyz}}
\textbf{\textup{ABCDEFGHIJKLMNOPQRSTUVWXYZ}}

Math
\( abcdefghijklmnopqrstuvwxyz \)
\( ABCDEFGHIJKLMNOPQRSTUVWXYZ \)

Math Greek
\( \alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\vartheta\iota\kappa
  \lambda\mu\nu\xi o\pi\varpi\rho\varrho\sigma\varsigma\tau\upsilon\phi\varphi\chi
  \psi\omega \)
\( \Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega \)

Math Roman
\( \mathrm{abcdefghijklmnopqrstuvwxyz} \)
\( \mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Bold Italic
\( \mathbfit{abcdefghijklmnopqrstuvwxyz} \)
\( \mathbfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Sans Italic
\( \mathsfit{abcdefghijklmnopqrstuvwxyz} \)
\( \mathsfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Sans
\( \mathsf{abcdefghijklmnopqrstuvwxyz} \)
\( \mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Bold
\( \mathbf{abcdefghijklmnopqrstuvwxyz} \)
\( \mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Sans Bold Italic
\( \mathsfbfit{abcdefghijklmnopqrstuvwxyz} \)
\( \mathsfbfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Vector Symbol
\( \vectorsym{abcdefghijklmnopqrstuvwxyz} \)
\( \vectorsym{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Tensor Symbol
\( \tensorsym{abcdefghijklmnopqrstuvwxyz} \)
\( \tensorsym{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)
 
Math Matrix Symbol
\( \matrixsym{abcdefghijklmnopqrstuvwxyz} \)
\( \matrixsym{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Bold Symbol
\( \boldsymbol{abcdefghijklmnopqrstuvwxyz} \)
\( \boldsymbol{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \)

Math Bold Symbol
\( \boldsymbol{\alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\vartheta
  \iota\kappa\lambda\mu\nu\xi o\pi\varpi\rho\varrho\sigma\varsigma\tau\upsilon\phi
  \varphi\chi\psi\omega} \)
\( \boldsymbol{\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega} \)

Math Bold Symbol
\( \boldsymbol{d \nabla \partial \times \otimes \cdot \bullet} \)
 
Galileo found that \( \mathsfbfit{g} \approx \vectoracceleration{0,-9.8,0} \), the magnitude of which
is \( \magvect{g} \approx \acceleration{9.8} \). The magnitude of the ball's velocity is \( \magvect{v} = \velocity{5}\).

We can represent this machine with a label and two slots \( \textbf{\textsf{dot}}(\slot,\slot) \) while remembering that the slots encode information about basis elements. The dot product of two vectors \( \vectorsym{a}\) and \(\vectorsym{b} \) can be represented as \( \textbf{\textsf{dot}}(\slot[\vectorsym{a}],\slot[\vectorsym{\mu}]) \). We could also call a label a machine as \( \textbf{\textsf{metric}}(\slot,\slot) \).

\lipsum*[1][1-6]

\end{document}

Output from MWE

UPDATE: I discovered that using the arev package gives me very nearly what I'm looking for. One problem is that this seems to break the isomath tensorsym font, but there's probably a way to fix that. Here's the updated MWE and its output.

\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage{arev}
\usepackage{mandi}
\usepackage[OMLmathbf,OMLmathsfit]{isomath}
\usepackage{tensor}
\usepackage{lipsum}
\usepackage{geometry}
\geometry{margin=0.25in,top=0.25in,bottom=0.25in}
\pagestyle{empty}

\newcommand*{\slot}[1][~]{\,\underline{\smash{\makebox[1.5em]{\ensuremath{#1}}}}\,}

\begin{document}
\begin{align} 
  &\pi \text{ and } \mathrm{e} \text{ and } \mathrm{i} \text{ and } 
     \mathrm{d} \text{ and } \mathrm{\Delta} \\
  &\textbf{\textsf{dot}}(\slot,\slot) \text{ becomes } 
     \textbf{\textsf{dot}}(\slot[\vectorsym{a}],\slot[\vectorsym{p}]) \text{ or } 
     \vectorsym{a}\cdot\vectorsym{p} \\
  &\textbf{\textsf{cross}}(\slot,\slot,\slot) \text{ or } 
     \vectorsym{\epsilon}(\slot,\slot,\slot) \text{ or } \vectorsym{a}\times\vectorsym{b} \\
  &\tensorsym{T} \text{ or } \vectorsym{T} \text{ or } \mathsfit{T}\indices{^i^j} \\
  &\tensorsym{I} \text{ or } \vectorsym{I} \text{ or } \mathsfit{I}\indices{_i_j} \\
  &\tensorsym{g} \text{ or } \vectorsym{g} \text{ or } \mathsfit{g}\indices{_i_j} \\
  &\tensorsym{g}(\slot,\slot) \text{ or } \vectorsym{g}(\slot,\slot)              \\
  &\vectorsym{a} = a^i \vectorsym{e}_i = a^1\vectorsym{e}_1 + a^2\vectorsym{e}_2 + 
     a^3\vectorsym{e}_3 \\
  &\textbf{\textsf{T}}(\slot,\slot) = \mathsfit{T}\indices{^i^j}\vectorsym{e}_i\otimes\vectorsym{e}_j \\
  &\tensorsym{g}\indices{^\mu_\nu} \neq \tensorsym{g}\indices{_\mu_\nu}
\end{align}

\begin{tabular}{l l}
Text Italic Sans & \textsf{\textit{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}} \\
Text Bold Sans   & \textbf{\textsf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}} \\
Text Bold Up     & \textbf{\textup{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}} \\
                 &                                                                        \\
Math             & \( abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ \)             \\
Math Greek       & \( \alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\vartheta\iota\kappa
                      \lambda\mu\nu\xi o\pi\varpi\rho\varrho\sigma\varsigma\tau\upsilon\phi\varphi
                      \chi\psi\omega\Delta\Gamma\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega \) \\
Math Roman       & \( \mathrm{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)             \\
Math Bold Italic & \( \mathbfit{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)           \\
Math Sans Italic & \( \mathsfit{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)           \\
Math Sans        & \( \mathsf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)             \\
Math Bold        & \( \mathbf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)             \\
Math Sans Bold Italic & \( \mathsfbfit{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)    \\
Math Vector Symbol    & \( \vectorsym{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)     \\
Math Matrix Symbol    & \( \matrixsym{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)     \\
Math Tensor Symbol    & \( \tensorsym{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)     \\
Math Bold Symbol      & \( \boldsymbol{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ} \)    \\
Math Bold Symbol      & \( \boldsymbol{\alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\vartheta
                           \iota\kappa\lambda\mu\nu\xi o\pi\varpi\rho\varrho\sigma\varsigma\tau\upsilon\phi
                           \varphi\chi\psi\omega\Delta\Gamma\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi
                           \Omega} \) \\
Other                 & \( \nabla\,\boldsymbol{\nabla}\,\partial\,\boldsymbol{\partial}\,\otimes\,
                           \boldsymbol{\otimes}\,\cdot\,\boldsymbol{\cdot}\,\bullet\,\boldsymbol{\bullet}\,
                           \slot\,\slot[\vectorsym{a}] \) \\
                      &                                                                        \\
\end{tabular}

Galileo found that \( \mathsfbfit{g} \approx \vectoracceleration{0,-9.8,0} \), the magnitude of which
is \( \magvect{g} \approx \acceleration{9.8} \). The magnitude of the ball's velocity is \( \magvect{v} = \velocity{5}\).

We can represent this machine with a label and two slots \( \textbf{\textsf{dot}}(\slot,\slot) \) while remembering that the slots encode information about basis elements. The dot product of two vectors \( \vectorsym{a}\) and \(\vectorsym{b} \) can be represented as \( \textbf{\textsf{dot}}(\slot[\vectorsym{a}],\slot[\vectorsym{b}]) \) or \( \textbf{\textsf{g}}(\slot[\vectorsym{a}],\slot[\vectorsym{b}]) \) or \( \textbf{\textsf{metric}}(\slot[\vectorsym{a}],\slot[\vectorsym{b}]) \).

\lipsum*[1][1-6]

\end{document}

Output from updated MWE

0

1 Answer 1

1

You can use the text-mode glyphs with \textnormal{\itshape foo}, \textnormal{\bfseries foo} and so on. You can also use \mathit instead of the default \mathnormal.

In fontspec, you can redefine \mathrm, \mathit, \mathbf, etc. In unicode-math, you can map the exact glyphs from any text font to any of your math alphabets with range=. In mathspec, you can use any desktop font in math mode. In isomath, you can select a font family for each of your math alphabets. In mathastext, you can turn the current text font into a math font.

You can also do it the hard way by declaring math alphabets. My advice, which not everyone here agrees with, is to use the modern toolchain with LuaTeX and unicode-math when you can, and legacy 8-bit fonts when you have to.

3
  • Thank you. It's going to take a while for me to figure out how to actually DO these things. I'm finding the documentation isn't rich with concrete examples. I recognize the advantages of unicode-math but I have to keep my target audience (students) in mind and the extent to which I can help them with questions. The next version of mandi will support unicode-math although I don't intend to use that functionality for my purposes (I reserve the right to change my mind though.). I'll add that fontspec is a complete black box to me. Jul 9, 2020 at 18:31
  • @LaTeXereXeTaL When I get the chance, I can post some code samples.
    – Davislor
    Jul 9, 2020 at 18:48
  • I solved my problem, but I accepted this answer since it no doubt would have worked. I'm understanding things a little better now. I dug into the isomath options and such. Now to learn more about unicode-math. Jul 11, 2020 at 6:23

You must log in to answer this question.

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