Конфликт в числах математического режима между пакетами gfsporson и newtxmath в pdfLaTeX

Конфликт в числах математического режима между пакетами gfsporson и newtxmath в pdfLaTeX

Я хотел бы использовать для pdfLaTeXкомпиляции пакет gfsporsonдля набора греческих символов (в более крупной установке LaTeX, чем MWE ниже) вместе с newtxmathafter newtxtext, но я только что обнаружил, что первый каким-то образом конфликтует с числительными в математическом режиме и устанавливает шрифты по умолчанию на основе cmr вместо тех, которые предоставляются пакетом newtxmath(фактически взятых из newtxtext).

Я был бы признателен за решение, которое позволило бы мне использовать оба пакета с числовыми значениями математического режима, установленными newtx«пакетом».

Следует MWE:

\documentclass{memoir}

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

  \usepackage{newtxtext}    
  \usepackage{newtxmath}

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

решение1

Если вам не нужен шрифт символов Porson для чего-то еще — он используется только для чисел, как настроено пакетом — вы можете легко переопределить его, просто переопределив этот шрифт. В противном случае вам придется отменить определенные изменения, которые он делает, как предлагает Стивен Б. Сеглете. Но поскольку вы хотите полностью избежать его влияния на математику, это кажется довольно безопасным.

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

последовательные цифры

решение2

Пакет gfsporsonперехватывает инициативу и переопределяет таблицы математических символов, используя Порсон для цифр.

Гораздо лучше использовать \DeclareFontFamilySubstitution:

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

\usepackage{newtxtext}
\usepackage{newtxmath}

\DeclareFontFamilySubstitution{LGR}{ntxtlf}{porson}

\begin{document}

123 $123$

\textgreek{abgdezhq}

\end{document}

введите описание изображения здесь

Примечание: см. историю правок для предыдущего решения с использованием пакета substitutefont, который теперь объявлен устаревшим.

решение3

Вам нужно отменить gfsporsonдекларацию, делающую числовые цифры принадлежащими символьному шрифту porsonnumbers. В файле стиля вы найдете это

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

Поэтому его необходимо сбросить в преамбуле вашего документа.

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

введите описание изображения здесь

Связанный контент