¿Cómo hacer coincidir fuentes entre el modo matemático LaTeX y una figura generada en Python?

¿Cómo hacer coincidir fuentes entre el modo matemático LaTeX y una figura generada en Python?

Estoy intentando crear una figura en Python cuyo texto coincida (al menos estrechamente) con la fuente del modo matemático de Latex. Sin embargo, no encuentro ninguna información en línea que proporcione resultados cercanos a la fuente deseada, particularmente en los caracteres griegos. Por ejemplo, Latex produce lo siguiente:

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

$test\theta\tau\mu$

\end{document}

Salida de látex

Estoy intentando replicar la segunda línea de texto. Según otras respuestas en SE y la información que encontré en línea, probé las siguientes fuentes y tuve los siguientes problemas:

Computadora moderna: demasiado rizado/cursivo

Computer Modern Sans: estilo diferente, más notable en tau

New Computer Modern 10: demasiado rizado/cursivo

Nuevas matemáticas modernas informáticas: no en cursiva

Matemáticas modernas latinas: no cursiva

¿Hay algo que me falta aquí? ¿Simplemente no encuentro las variantes en cursiva de las fuentes matemáticas, o el modo matemático usa una fuente completamente diferente? Cualquier pista sería apreciada; Cualquier enlace a una descarga sería muy apreciado.

Respuesta1

Classic TeX no utilizaafuente matemática. Las fuentes sólo tienen 127 caracteres y se utilizan tantas fuentes (hasta 16) por expresión matemática. (El sistema permite 256 caracteres por fuente, pero en 1980 se consideró demasiado radical utilizar 8 bits, por lo que sólo se utiliza la mitad inferior de cada fuente)

entonces

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

$test\theta\tau\mu+1$

\end{document}

utiliza cmmi10.pfbpara test(con las letras en posiciones ascii estándar). Utiliza la misma fuente pero las posiciones para Ctrl-R, Ctrl-\y Ctrl-Vpara el griego y usa cmr10.pfbpara +y 1.

Esto hace que sea muy complicado usar fuentes matemáticas TeX de otros sistemas, incluso si pueden usar fuentes Tipo 1.

Una fuente matemática Unicode tiene todos estos caracteres en una sola fuente, en posiciones estándar, lo que hace que sea mucho más fácil de usar en otros sistemas.

Procesando con LuaLaTeX

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

$test\theta\tau\mu+1$

\end{document}

Todos los caracteres provienen del latín Modern Math ( latinmodern-math.otf) en espacios Unicode estándar, tenga en cuenta que la cursiva matemática esseparadocaracteres.

La cadena resultante funcionará con cualquier fuente matemática Unicode, no solo con Latin Modern.

Por ejemplo, en este sitio seleccionará cualquier fuente que haya instalado localmente (aquí utiliza el símbolo de interfaz de usuario Segoe de Windows)

Respuesta2

(demasiado largo para un comentario, por lo tanto publicado como respuesta)

En esta respuesta, me refiero principalmente a la afirmación del OP de que Latin Modern Math (LMM) "no parece tener cursiva [matemática]". Estoy desconcertado por esta afirmación. De hecho, el siguiente ejemplo, que debe compilarse con XeLaTeX o LuaLaTeX, demuestra que LMM tiene letras latinas y griegas en cursiva matemática.

Por supuesto, debe utilizar glifos en cursiva de texto en lugar de cursiva matemática si desea escribir algo en cursiva en modo texto.

El unicode-mathpaquete proporciona el comando \symuppara escribir símbolos en modo vertical.

ingrese la descripción de la imagen aquí

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

Respuesta3

Esta publicación muestra otra herramienta además de las otras buenas respuestas. Lo siguiente se basa en su MWE

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

$test\theta\tau\mu$

\end{document}

Es posible que puedas utilizarfuentes pdfen un shell de su elección para generar una tabla de todas las fuentes del PDF (reemplacé algunas 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

Obtengo una tabla similar 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

Encontrará descripciones de las abreviaturas comoCMTI10(Computer Modern Italic, "más condensado y ligeramente más claro", tamaño 10 puntos) enhttps://ctan.org/tex-archive/fonts/cm/mf. Otras informaciones están disponibles enhttps://eng.m.fontke.com/font/10030505/detail/.SFTI1000aparece en SFTI1000 como "nombre de posdata" de Computer Modern.grmi1000parece ser una cursiva de laClaudio Beccari griegofuentes, ver https://ctan.org/tex-archive/fonts/greek/cbfonts/fonts/tfm/cbgreekyhttps://ctan.org/pkg/cbgreek-complete. Si elimina \usepackage{textgreek}y \textit{testθτμ}de su archivo y vuelve a compilar, solo quedarán CMMI10 (Computer Modern Italic, "no condensado y no tan ligero", 10 puntos) y CMR10 (Computer Modern Italic, "básico", 10 puntos).

Por lo tanto, una respuesta precisa de un nerd a su pregunta (antes de editar) "¿Cuál es la fuente del modo matemático de Latex?" esCMMI10 (Computer Modern Italic, "no condensado y no tan ligero", 10 puntos)con respecto a la configuración mencionada anteriormente.

Observa las diferencias conLuaTeX:

$ 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

LMRomanoes latín moderno.

Compilando

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

$test\theta\tau\mu$

\end{document}

da

$ 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

información relacionada