Declarando um símbolo matemático específico em uma fonte TTF (LuaLaTeX)

Declarando um símbolo matemático específico em uma fonte TTF (LuaLaTeX)

Estou tentando solucionar um problema clássico em LaTeX para quem lida com eletromagnetismo:definir a notação script-r de Griffiths. Desta vez, quero fazer isso usando a fonte Kaufmann que ele usa em seu livro e já consegui os arquivos. Enquanto no LuaLaTeX é fácil usar as fontes "livremente", quero definir um símbolo matemático que as utilize para que o código funcione bem com outros pacotes que utilizo, como os comandos de vetor em negrito definidos porphysics.

Depois de leresta respostano post sobre o problema genérico do script-r, eu estava tentando implementar a notação script-r por meio do \DeclareMathSymbolcomando, mas não consigo entender como usar a fonte Kaufmann nele.

Resumindo: tenho dois .ttfarquivos de fontes Kaufmann-Regular.ttfe Kaufmann-Bold.ttf. Como posso usá-los para definir um símbolo matemático \rcursusando a fonte Kaufmann, de modo que comandos como \mathbf{\rcurs}retornem sua versão em negrito?

Responder1

Os alfabetos e operadores matemáticos formam um conjunto, portanto, misturar e combinar geralmente exigirá ajustes de baixo nível de diferentes tipos.

Dito isto, existem várias formas e métodos para importar um símbolo.


(1)

A maneira mais simples é incluir os glifos como imagens\PDFs e redimensionar etc. quando necessário, como faz Griffiths:

Código:

\documentclass{report}

\usepackage{graphicx}

\def\rcurs{{\mbox{$\resizebox{.16in}{.08in}{\includegraphics{ScriptR}}$}}}
\def\brcurs{{\mbox{$\resizebox{.16in}{.08in}{\includegraphics{BoldR}}$}}}
\def\hrcurs{{\mbox{$\hat \brcurs$}}}


\begin{document}

Here's a sample:

$\resizebox{.16in}{.08in}{\includegraphics{BoldR}}$

Can I put it into a line of type?  $\resizebox{.21in}{.11in}{\includegraphics{BoldR}}$

How about using the macro: \brcurs.

How about using the macro: \rcurs?

How about using the macro: \hrcurs?

What if it's in an equation?

\begin{equation}
{\bf E} = {1\over 4\pi\epsilon_0}\int {\rho\over \rcurs^2}{\hrcurs}\,d\tau.
\end{equation}

\end{document}

imagem

Veja o arquivo zip Griffithshttp://academic.reed.edu/physics/faculty/griffiths/script_r.zip, através daSímbolo Script-r


(2)

A próxima maneira mais simples é usar uma das \math...funções (aqui \mathord):Definindo um símbolo matemático de tamanhos variáveis ​​em XeTeX com \Umathchardefatravés daLuaTeX: Use um único símbolo de outra fonte no modo matemático

Aqui está uma lista deles:

lista matemática

(textdoc fonte2e)

um2

MWE

\documentclass{report}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}

\newfontfamily{\miama}{Miama}[Colour=red,
Scale=1.3,
Path=C:/Users/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/miama/,
Extension=.otf,
UprightFont=*,
]

\DeclareRobustCommand\mysym{%
  \mathord{\text{\normalfont\miama r}}%
}

%\def\rcurs{{\mbox{$\resizebox{.16in}{.08in}{\includegraphics{ScriptR}}$}}}
%\def\brcurs{{\mbox{$\resizebox{.16in}{.08in}{\includegraphics{BoldR}}$}}}
%\def\hrcurs{{\mbox{$\hat \brcurs$}}}
\def\hrcurs{{\mbox{$\hat\mbfscrr$}}}

\begin{document}

\fbox{Asana-Math: $\mbfscrr, \mscrr $}

Here's a sample:

$\mbfscrr$

Can I put it into a line of type?  $\mbfscrr$

How about using the macro: \hrcurs?

What if it's in an equation?

\begin{equation}
\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mscrr^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\renewcommand\mbfscrr{{\mysym}}
\def\hrcurs{{\mbox{$\hat\mbfscrr$}}}

\bigskip
\fbox{Miama: $\mysym$}

Here's a sample:

$\mysym$

Can I put it into a line of type?  $\mysym$

How about using the macro: \hrcurs?

What if it's in an equation?


\begin{equation}

\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mscrr^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\end{document}

(2a)

Obter os ajustes de acento corretos exigirá kerning, etc. Aqui, uma fonte não matemática diferente evita esse problema:

um3

MWE

\documentclass{report}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}

\newfontfamily{\gfs}{GFSBodoni}[Colour=red,
Scale=1.3,
Path=C:/Users/.../tl/texlive/2020/texmf-dist/fonts/opentype/public/gfsbodoni/,
Extension=.otf,
UprightFont=*,
ItalicFont=GFSBodoniIt,
BoldFont=GFSBodoniBold,
BoldItalicFont=GFSBodoniBoldIt,
]

\DeclareRobustCommand\mysymbi{%
  \mathord{\text{\normalfont\gfs\bfseries\itshape r}}%
}
\DeclareRobustCommand\mysym{%
  \mathord{\text{\normalfont\gfs\itshape r}}%
}

\def\hrcurs{{\mbox{$\hat\mbfscrr$}}}

\begin{document}

\fbox{Asana-Math: $\mbfscrr, \mscrr $}

Here's a sample:

$\mbfscrr$

Can I put it into a line of type?  $\mbfscrr$

How about using the macro: \hrcurs?

What if it's in an equation?

\begin{equation}
\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mscrr^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\renewcommand\mbfscrr{{\mysymbi}}
\def\hrcurs{{\mbox{$\hat\mbfscrr$}}}

\bigskip
\fbox{GFS Bodoni: $\mysymbi, \mysym$}

Here's a sample:

$\mysym$

Can I put it into a line of type?  $\mysym$

How about using the macro: \hrcurs?

What if it's in an equation?


\begin{equation}
\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mysym^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\end{document}

(3)

A seguir, mapeie usando a opção de fonte unicode-mathdo pacote range=.

Mapeamento de uma fonte matemática Unicode:

hum

MWE

\documentclass{report}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}

\def\hrcurs{{\mbox{$\hat\mbfscrr$}}}

\begin{document}

\fbox{Asana-Math: $\mbfscrr,\mscrr$}

Here's a sample:

$\mbfscrr$

Can I put it into a line of type?  $\mbfscrr$

How about using the macro: \hrcurs?

What if it's in an equation?

\begin{equation}
\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mscrr^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\setmathfont{TexGyreSchola-Math}[range={\mbfscrr,\mscrr},Colour=red]

\bigskip
\fbox{TexGyreSchola-Math: $\mbfscrr,\mscrr$}

Here's a sample:

$\mbfscrr$

Can I put it into a line of type?  $\mbfscrr$

How about using the macro: \hrcurs?

What if it's in an equation?

\begin{equation}
\symbf{E} = {1\over 4\mitpi\mitepsilon_0}\int {\mitrho\over \mscrr^2}{\hat\mbfscrr}\,d\mittau.
\end{equation}


\end{document}

(4)

\DeclareMathSymbolusa técnicas de fontes legadas. As fontes ttf\otf podem ser usadas atribuindo-lhes um alias NFSS por meio do fontspecpacote (então xelatex ou lualatex como compilador) e, em seguida, passando por várias etapas de acordo com a pergunta vinculada.

A opção é NFSSFamily=.

floralina

O exemplo usa QTFloralinefonte (na distribuição tex)L tem uma face regular e uma face em negrito. Substitua seus arquivos kaufmann.

MWE

\documentclass{article}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}

\newfontface\ffontc{QTFloraline}[
Extension=.otf,
UprightFont=*,
BoldFont=*-Bold,
NFSSFamily=floraline,
]


\usepackage{bm}
\DeclareFontFamily{U}{floraline}{}
\DeclareFontShape{U}{floraline}{m}{n}{<-> QTFloraline}{}
\DeclareFontShape{U}{floraline}{b}{n}{<-> QTFloraline-Bold}{}
\DeclareSymbolFont{myfloraline}{U}{floraline}{m}{n}
\SetSymbolFont{myfloraline}{bold}{U}{floraline}{b}{n}
\DeclareMathSymbol{\rcurs}{\mathalpha}{myfloraline}{`\r}
\DeclareBoldMathCommand{\brcurs}{\rcurs}
\newcommand*\hrcurs{\hat{\brcurs}}

\begin{document}

\[
  \mathbf{E}(\mathbf{r}) = \frac{1}{4 \pi \epsilon_0} \int\limits_{\mathcal{V}} \frac{\rho(\mathbf{r}')}{\rcurs^2} \hrcurs d \tau'
\]


Using \texttt{unicode-math} macros:

\[
  \symbfup{E}(\symbfup{r}) = \frac{1}{4 \mitpi \mitepsilon_0} \int\limits_{\symcal{V}} \frac{\mitrho(\symbfup{r}')}{\rcurs^2} \hrcurs d \mittau'
\]


\end{document}

(5)

Para um ou dois símbolos, o \mathord{}método é mais fácil e também não utiliza um alfabeto matemático inteiro.

Acontece que unicode-mathdefine duas macros \mbfscrre \mscrr. Eles podem ser simplesmente redefinidos ( renewcommand) via \mathord, e pronto.

O código percorre as etapas do que alterar, ilustrando cada resultado, chegando à etapa final utilizando QTChanceryTypea fonte:

macros

MWE

\documentclass{report}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmathfont{Asana-Math}
\newfontface\bodb{BOD_BLAR.TTF}[Colour=red]

\newfontface\ffontbreg{QTChanceryType.otf}
\newfontface\ffontbbold{QTChanceryType-Bold.otf}

\DeclareRobustCommand\xmbfscrr{%
\mathord{\text{\normalfont\bodb A}}%
}
\DeclareRobustCommand\myscrr{%
\mathord{\text{\normalfont\ffontbreg r}}%
}
\DeclareRobustCommand\mybfscrr{%
\mathord{\text{\normalfont\ffontbbold r}}%
}


\begin{document}

%======================: 0: base
\fbox{Asana-Math: $\mbfscrr,\mscrr$}
\begin{equation}
\symbfup{E} = {\frac{1}{4\mitpi\mitepsilon_0}}\int {\frac{\mitrho}{\mscrr^2}}{\hat\mbfscrr}\,d\mittau.
\end{equation}


%======================: 1: A
\renewcommand{\mbfscrr}{A}

\bigskip
\begin{equation}
\symbfup{E} = {\frac{1}{4\mitpi\mitepsilon_0}}\int {\frac{\mitrho}{\mscrr^2}}{\hat\mbfscrr}\,d\mittau.
\end{equation}


%======================: 2: A from another font
\renewcommand{\mbfscrr}{{\xmbfscrr}}

\bigskip
\begin{equation}
\symbfup{E} = {\frac{1}{4\mitpi\mitepsilon_0}}\int {\frac{\mitrho}{\mscrr^2}}{\hat\mbfscrr}\,d\mittau.
\end{equation}


%======================:  3: r and bold r, from another font
\renewcommand{\mbfscrr}{{\mybfscrr}}
\renewcommand{\mscrr}{{\myscrr}}

\bigskip
\begin{equation}
\symbfup{E} = {\frac{1}{4\mitpi\mitepsilon_0}}\int {\frac{\mitrho}{\mscrr^2}}{\hat\mbfscrr}\,d\mittau.
\end{equation}



\end{document}

Termo aditivo

Para evitar ambiguidades, o modo texto e o modo matemático são universos completamente diferentes, em termos de fontes.

itálico x

Onde está o itálico x (

informação relacionada