Conflito em numerais de modo matemático entre pacotes gfsporson e newtxmath em pdfLaTeX

Conflito em numerais de modo matemático entre pacotes gfsporson e newtxmath em pdfLaTeX

Eu gostaria de usar, para pdfLaTeXcompilação, o pacote gfsporsonpara composição tipográfica grega (dentro de uma configuração LaTeX maior do que o MWE abaixo) junto com newtxmathafter newtxtext, mas acabei de descobrir que o primeiro entra em conflito de alguma forma com os numerais do modo matemático e define as fontes padrão baseadas em cmr em vez daquelas fornecidas pelo newtxmathpacote (na verdade retiradas de newtxtext).

Eu apreciaria uma solução que me permitisse usar ambos os pacotes com os numerais do modo matemático definidos pelo newtx"pacote".

Segue um MWE:

\documentclass{memoir}

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

  \usepackage{newtxtext}    
  \usepackage{newtxmath}

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

Responder1

A menos que você precise da fonte do símbolo Porson para outra coisa - ela é usada apenas para os números configurados pelo pacote - você pode substituí-la facilmente apenas redefinindo essa fonte. Caso contrário, você precisará desfazer as alterações específicas feitas, como sugere Steven B. Segletes. Mas como você deseja evitar que isso afete completamente a matemática, isso 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}

números consistentes

Responder2

O gfsporsonpacote toma a iniciativa e redefine as tabelas de símbolos matemáticos para usar Porson para os dígitos.

É muito melhor usar \DeclareFontFamilySubstitution:

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

\usepackage{newtxtext}
\usepackage{newtxmath}

\DeclareFontFamilySubstitution{LGR}{ntxtlf}{porson}

\begin{document}

123 $123$

\textgreek{abgdezhq}

\end{document}

insira a descrição da imagem aqui

Nota: veja o histórico de edições para uma solução anterior usando o pacote replacefont, agora declarado obsoleto.

Responder3

Você tem que desfazer a gfsporsondeclaração de fazer com que os dígitos numéricos pertençam à fonte do símbolo porsonnumbers. No arquivo de estilo, você encontrará isto

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

Portanto, deve ser redefinido no preâmbulo do seu 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}

insira a descrição da imagem aqui

informação relacionada