Como combinar fontes entre o modo matemático LaTeX e uma figura gerada em Python?

Como combinar fontes entre o modo matemático LaTeX e uma figura gerada em Python?

Estou tentando criar uma figura em Python cujo texto corresponda (pelo menos de perto) à fonte do modo matemático do Latex. No entanto, não estou encontrando nenhuma informação on-line que forneça resultados próximos à fonte desejada, principalmente nos caracteres gregos. Por exemplo, Latex produz o seguinte:

\documentclass{article}
\usepackage{textgreek}
\begin{document}
\textit{testθτμ}

$test\theta\tau\mu$

\end{document}

Saída de látex

Estou tentando replicar a segunda linha do texto. Com base em outras respostas sobre SE e nas informações que encontrei on-line, tentei as seguintes fontes e tive os seguintes problemas:

Computador moderno: muito encaracolado/cursivo

Computer Modern Sans: estilo diferente, mais perceptível no tau

New Computer Modern 10: muito encaracolado/cursivo

New Computer Modern Math: sem itálico

Matemática Latina Moderna: sem itálico

Há algo que estou perdendo aqui? Simplesmente não estou encontrando as variantes em itálico das fontes matemáticas ou o modo matemático está usando uma fonte totalmente diferente? Qualquer pista seria apreciada; quaisquer links para um download seriam muito apreciados.

Responder1

O TeX clássico não usaafonte matemática. As fontes têm apenas 127 caracteres e muitas (até 16) fontes por expressão matemática são usadas. (O sistema permite 256 caracteres por fonte, mas usar 8 bits foi considerado muito radical em 1980, então apenas a metade inferior de cada fonte é usada)

então

\documentclass{article}
\showoutput
\begin{document}

$test\theta\tau\mu+1$

\end{document}

usa cmmi10.pfbfor test(com as letras em posições ascii padrão). Ele usa a mesma fonte, mas as posições para Ctrl-R, Ctrl-\e Ctrl-Vpara o grego e usa cmr10.pfbpara +e 1.

Isso torna muito complicado usar fontes matemáticas TeX de outros sistemas, mesmo que eles possam usar fontes Tipo 1.

Uma fonte matemática Unicode possui todos esses caracteres em uma única fonte, em posições padrão, o que facilita muito o uso em outros sistemas.

Processando com LuaLaTeX

\documentclass{article}
\usepackage{unicode-math}
\showoutput
\begin{document}

$test\theta\tau\mu+1$

\end{document}

Todos os caracteres vêm do Latin Modern Math ( latinmodern-math.otf) em slots Unicode padrão, observe que o itálico matemático éseparadopersonagens.

A string resultante funcionará com qualquer fonte matemática Unicode, não apenas com Latin Modern.

Por exemplo, neste site ele escolherá qualquer fonte que você instalou localmente (ele usa a fonte do Windows Segoe UI Symbol aqui)

Responder2

(muito longo para um comentário, portanto postado como resposta)

Nesta resposta, abordo principalmente a afirmação do OP de que Latin Modern Math (LMM) "não parece ter itálico [matemático]". Estou intrigado com esta afirmação. Na verdade, o exemplo a seguir, que precisa ser compilado com XeLaTeX ou LuaLaTeX, demonstra que o LMM possui letras latinas e gregas matemáticas e itálicas.

Claro, você deve usar glifos em itálico de texto em vez de itálico matemático se quiser escrever algo em itálico em modo de texto.

O unicode-mathpacote fornece o comando \symuppara escrever símbolos no modo vertical.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{unicode-math} % for '\setmathfont' macro; load 'fontspec' package automatically
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}

\begin{document}

\textit{abcxyz} $abcxzy$ $\theta\tau\mu$ abcxyz $\symup{\theta\tau\mu}$

\end{document}

Responder3

Este post mostra outra ferramenta além das outras boas respostas. O seguinte é baseado no seu MWE

\documentclass{article}
\usepackage{textgreek}
\begin{document}
\textit{testθτμ}%ϑ

$test\theta\tau\mu$

\end{document}

Você pode ser capaz de usarfontes pdfem um shell de sua preferência para gerar uma tabela com todas as fontes do PDF (substituí algumas partes por [...]):

$ pdflatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
[...]
Output written on Example.SE.pdf (1 page, 39405 bytes).
Transcript written on Example.SE.log.

Table for Ryan White:
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
MSKRKD+CMTI10                        Type 1            Builtin          yes yes yes      4  0
TPJLSH+grmi1000                      Type 1            Builtin          yes yes yes      5  0
OIWUEJ+SFTI1000                      Type 1            Custom           yes yes yes      6  0
RYTSZC+CMMI10                        Type 1            Builtin          yes yes yes      7  0
SDXKYB+CMR10                         Type 1            Builtin          yes yes yes      8  0

Eu recebo uma tabela semelhante por $ latex Example.SE.tex; vipdfm Example.SE.dvi; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf:

name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
BGNOPA+CMTI10                        Type 1C           Builtin          yes yes yes      4  0
DOYMNM+grmi1000                      Type 1C           Builtin          yes yes yes      5  0
VQMNVE+SFTI1000                      Type 1C           WinAnsi          yes yes yes      6  0
SIZLWA+CMMI10                        Type 1C           Builtin          yes yes yes      7  0
ZIUSPE+CMR10                         Type 1C           Builtin          yes yes yes      8  0

Você encontrará descrições das abreviaturas comoCMTI10(Computer Modern Italic, "mais condensado e um pouco mais leve", tamanho 10pt) emhttps://ctan.org/tex-archive/fonts/cm/mf. Outras informações estão disponíveis emhttps://eng.m.fontke.com/font/10030505/detail/.SFTI1000está listado no SFTI1000 como "nome pós-escrito" da Computer Modern.grmi1000parece ser um itálico doCláudio Beccari Gregofontes, veja https://ctan.org/tex-archive/fonts/greek/cbfonts/fonts/tfm/cbgreekehttps://ctan.org/pkg/cbgreek-complete. Se você remover \usepackage{textgreek}e \textit{testθτμ}do seu arquivo e compilar novamente, apenas CMMI10 (Computer Modern Italic, "não condensado e não tão leve", 10pt) e CMR10 (Computer Modern Italic, "básico", 10pt) permanecerão.

Assim, uma resposta precisa de um nerd à sua pergunta (antes de uma edição) "Qual é a fonte do modo matemático do Latex?" éCMMI10 (Computer Modern Italic, "não condensado e não tão leve", 10pt)em relação à configuração mencionada acima.

Observe as diferenças paraLuaTeX:

$ lualatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf 
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023) 
[...]
Output written on Example.SE.pdf (1 page, 12154 bytes).
Transcript written on Example.SE.log.

Table for Ryan White:
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
EJJTSY+LMRoman10-Italic              CID Type 0C       Identity-H       yes yes yes      4  0
RYTSZC+CMMI10                        Type 1            Builtin          yes yes no       5  0
JFRMQG+LMRoman10-Regular             CID Type 0C       Identity-H       yes yes yes      6  0

LMRomanoé o latim moderno.

Compilando

\documentclass{article}
\usepackage{textgreek}
\usepackage{unicode-math} % ADDED
\begin{document}
\textit{testθτμ}

$test\theta\tau\mu$

\end{document}

$ lualatex Example.SE.tex; echo "\nTable for Ryan White:"; pdffonts Example.SE.pdf 
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023) 
[...]
Output written on Example.SE.pdf (1 page, 6180 bytes).
Transcript written on Example.SE.log.

Table for Ryan White:
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
EJJTSY+LMRoman10-Italic              CID Type 0C       Identity-H       yes yes yes      4  0
WLUBUQ+LatinModernMath-Regular       CID Type 0C       Identity-H       yes yes yes      5  0
JFRMQG+LMRoman10-Regular             CID Type 0C       Identity-H       yes yes yes      6  0

informação relacionada