загружена спецификация шрифтадоПакеты HEP

загружена спецификация шрифтадоПакеты HEP

Я пытаюсь заставить пакеты hepparticles/hepnames работать с XeLaTeX. Я использую Libertine как шрифт с засечками и Biolinum как шрифт без засечек. Названия частиц каким-то образом отображаются неправильным шрифтом.

Пакеты HEP вставляют глифы для названий частиц, используемых в физике высоких энергий. Они должны (я думаю) использовать текущий шрифт и стиль, но какой шрифт они на самом деле используют, непоследовательно. В MWE ниже я использовал простое имя частицы (B) для сравнения обычного отображения буквы B и имени частицы, вставленного с помощью макроса \PB, которые должны быть идентичны.

Я пробовал разные порядки загрузки посылок:

загружена спецификация шрифтадоПакеты HEP

\documentclass{minimal}

\usepackage{fontspec}
\setmainfont{Linux Libertine}
\setsansfont{Linux Biolinum}

\usepackage{hepparticles}
\usepackage{hepnames}

\begin{document}

    \begin{tabular}{p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
        ~  & Normal & textsf       & textit       & textsf+textit         \\
        B  & B      & \textsf{B}   & \textit{B}   & \textit{\textsf{B}}   \\
        PB & \PB    & \textsf{\PB} & \textit{\PB} & \textit{\textsf{\PB}} \\
    \end{tabular}

\end{document}

Обычный глиф использует неправильный шрифт, глиф sf использует неправильный шрифтис засечками, но оба варианта курсива верны:

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

загружена спецификация шрифтапослеПакеты HEP

\documentclass{minimal}

\usepackage{hepparticles}
\usepackage{hepnames}

\usepackage{fontspec}
\setmainfont{Linux Libertine}
\setsansfont{Linux Biolinum}

\begin{document}

    \begin{tabular}{p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
        ~  & Normal & textsf       & textit       & textsf+textit         \\
        B  & B      & \textsf{B}   & \textit{B}   & \textit{\textsf{B}}   \\
        PB & \PB    & \textsf{\PB} & \textit{\PB} & \textit{\textsf{\PB}} \\
    \end{tabular}

\end{document}

Все глифы имеют правильный стиль, но все они имеют неправильный шрифт.кромеглиф с засечками и курсивом.

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

Затем я использовал пакеты libertine/biolinum вместо fontspec и скомпилировал файл с помощью pdflatex для сравнения:

загружены пакеты шрифтовпослеПакеты HEP

\documentclass{minimal}

\usepackage{hepparticles}
\usepackage{hepnames}

\usepackage{libertineRoman}
\usepackage{biolinum}

\begin{document}

    \begin{tabular}{p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
        ~  & Normal & textsf       & textif       & textsf+textit         \\
        B  & B      & \textsf{B}   & \textit{B}   & \textit{\textsf{B}}   \\
        PB & \PB    & \textsf{\PB} & \textit{\PB} & \textit{\textsf{\PB}} \\
    \end{tabular}

\end{document}

pdflatex

Все глифы имеют правильный стиль и неправильный шрифт:

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

кселатекс

Все глифы имеют правильный стиль, но все они имеют неправильный шрифт.кромеглиф с засечками и курсивом.

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

загружены пакеты шрифтовдоПакеты HEP

\documentclass{minimal}

\usepackage{libertineRoman}
\usepackage{biolinum}

\usepackage{hepparticles}
\usepackage{hepnames}

\begin{document}

    \begin{tabular}{p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
        ~  & Normal & textsf       & textit       & textsf+textit         \\
        B  & B      & \textsf{B}   & \textit{B}   & \textit{\textsf{B}}   \\
        PB & \PB    & \textsf{\PB} & \textit{\PB} & \textit{\textsf{\PB}} \\
    \end{tabular}

\end{document}

pdflatex

Все глифы имеют правильный стиль и правильный шрифт.кромеглиф с засечками и курсивом. (Это меня вполне устроит, за исключением того, что я хочу использовать xelatex.)

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

кселатекс

Обычный глиф использует неправильный шрифт, глиф sf использует неправильный шрифтис засечками, но оба варианта курсива верны:

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

решение1

Хорошо, комментарий egreg указал мне верное направление. Я попытался использовать mathspecдля изменения математических шрифтов, но безуспешно. После более внимательного изучения макросов в hepparticlesя обнаружил, что они используют \mathupи похожие макросы для отображения имен частиц. Я не смог найти, как изменить их с помощью mathspec, поэтому я переключился на unicode-mathи нашел рабочую конфигурацию, которая дает удовлетворительный результат:

\documentclass{minimal}

\usepackage{hepparticles}
\usepackage{hepnames}

\usepackage{fontspec}
\setmainfont{Linux Libertine}
\setsansfont[BoldItalicFont=Linux Biolinum O Bold Oblique]{Linux Biolinum}

\usepackage[math-style=ISO]{unicode-math}

\setmathfont{Linux Libertine}

\setmathfont[range=\mathrm]{Linux Libertine}
\setmathfont[range=\mathup]{Linux Libertine}
\setmathfont[range=\mathit]{Linux Libertine Italic}
\setmathfont[range=\mathbf]{Linux Libertine Bold}
\setmathfont[range=\mathbfit]{Linux Libertine Bold Italic}

\setmathfont[range=\mathsf]{Linux Biolinum}
\setmathfont[range=\mathsfup]{Linux Biolinum}
\setmathfont[range=\mathsfit]{Linux Biolinum Italic}
\setmathfont[range=\mathbfsf]{Linux Biolinum Bold}
\setmathfont[range=\mathbfsfit]{Linux Biolinum O Bold Oblique}

\begin{document}
    \begin{tabular}{p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
        ~  & Normal & textsf       & textit       & textsf+textit         \\
        B  & B      & \textsf{B}   & \textit{B}   & \textit{\textsf{B}}   \\
        PB & \PB    & \textsf{\PB} & \textit{\PB} & \textit{\textsf{\PB}} \\
    \end{tabular}
\end{document}

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

Редактировать:Я столкнулся с дополнительной проблемой, которая обсуждается вдругая тема.

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