Conflicto en los números del modo matemático entre los paquetes gfsporson y newtxmath en pdfLaTeX

Conflicto en los números del modo matemático entre los paquetes gfsporson y newtxmath en pdfLaTeX

Me gustaría usar, para pdfLaTeXla compilación, el paquete gfsporsonpara composición tipográfica griega (dentro de una configuración LaTeX más grande que el MWE a continuación) junto con newtxmathafter newtxtext, pero acabo de descubrir que el primero entra en conflicto de alguna manera con los números en modo matemático y establece los tipos de letra predeterminados basados ​​en cmr en lugar de los proporcionados por el newtxmathpaquete (en realidad tomados de newtxtext).

Agradecería una solución que me permita usar ambos paquetes con los números en modo matemático establecidos por el newtx"paquete".

Sigue un MWE:

\documentclass{memoir}

  %\usepackage{gfsporson} %<- uncomment to check for the difference in math mode    

  \usepackage{newtxtext}    
  \usepackage{newtxmath}

\begin{document}
123 $123$
\end{document}

Respuesta1

A menos que necesite la fuente del símbolo Porson para otra cosa (solo se usa para los números configurados en el paquete), puede anularla fácilmente simplemente redefiniendo esa fuente. De lo contrario, necesitarás deshacer los cambios específicos que realiza, como sugiere Steven B. Segletes. Pero como quieres evitar que afecte completamente las matemáticas, esto parece bastante seguro.

\documentclass{memoir}
\usepackage{gfsporson} %<- uncomment to check for the difference in math mode
\usepackage{newtxtext}
\usepackage{newtxmath}
\DeclareSymbolFont{porsonnumbers}{OT1}{qtm}{m}{n}
\begin{document}
123 $123$
\end{document}

cifras consistentes

Respuesta2

El gfsporsonpaquete toma la iniciativa y redefine las tablas de símbolos matemáticos para usar Porson para los dígitos.

Es mucho mejor usar \DeclareFontFamilySubstitution:

\documentclass{memoir}
\usepackage[polutonikogreek,english]{babel}

\usepackage{newtxtext}
\usepackage{newtxmath}

\DeclareFontFamilySubstitution{LGR}{ntxtlf}{porson}

\begin{document}

123 $123$

\textgreek{abgdezhq}

\end{document}

ingrese la descripción de la imagen aquí

Nota: consulte el historial de edición para ver una solución anterior que utiliza el paquete sustitutofont, ahora declarado obsoleto.

Respuesta3

Tienes que deshacer la gfsporsondeclaración de hacer que los dígitos numéricos pertenezcan a la fuente del símbolo porsonnumbers. En el archivo de estilo, encontrarás esto.

\DeclareSymbolFont{porsonnumbers}{OT1}{porson}{m}{n}
\DeclareMathSymbol{0}{\mathalpha}{porsonnumbers}{`0}
\DeclareMathSymbol{1}{\mathalpha}{porsonnumbers}{`1}
\DeclareMathSymbol{2}{\mathalpha}{porsonnumbers}{`2}
\DeclareMathSymbol{3}{\mathalpha}{porsonnumbers}{`3}
\DeclareMathSymbol{4}{\mathalpha}{porsonnumbers}{`4}
\DeclareMathSymbol{5}{\mathalpha}{porsonnumbers}{`5}
\DeclareMathSymbol{6}{\mathalpha}{porsonnumbers}{`6}
\DeclareMathSymbol{7}{\mathalpha}{porsonnumbers}{`7}
\DeclareMathSymbol{8}{\mathalpha}{porsonnumbers}{`8}
\DeclareMathSymbol{9}{\mathalpha}{porsonnumbers}{`9}

Por lo que debe restablecerse en el preámbulo de su documento.

\documentclass{memoir}
\usepackage[T1]{fontenc}

  \usepackage{gfsporson} %<- uncomment to check for the difference in math mode    

  \usepackage{newtxtext}    
  \usepackage{newtxmath}

\DeclareMathSymbol{0}{\mathalpha}{letters}{`0}
\DeclareMathSymbol{1}{\mathalpha}{letters}{`1}
\DeclareMathSymbol{2}{\mathalpha}{letters}{`2}
\DeclareMathSymbol{3}{\mathalpha}{letters}{`3}
\DeclareMathSymbol{4}{\mathalpha}{letters}{`4}
\DeclareMathSymbol{5}{\mathalpha}{letters}{`5}
\DeclareMathSymbol{6}{\mathalpha}{letters}{`6}
\DeclareMathSymbol{7}{\mathalpha}{letters}{`7}
\DeclareMathSymbol{8}{\mathalpha}{letters}{`8}
\DeclareMathSymbol{9}{\mathalpha}{letters}{`9}

\begin{document}
123 $123$
\end{document}

ingrese la descripción de la imagen aquí

información relacionada