fontspec carregadoantesPacotes HEP

fontspec carregadoantesPacotes HEP

Estou tentando fazer com que os pacotes hepparticles/hepnames funcionem com o XeLaTeX. Estou usando Libertine como fonte serifada e Biolinum como fonte sans. Os nomes das partículas são de alguma forma renderizados na fonte errada.

Os pacotes HEP inserem glifos para nomes de partículas usados ​​em física de altas energias. Eles deveriam (eu acho) usar a fonte e o estilo atuais, mas a fonte que eles realmente usam é inconsistente. Nos MWEs abaixo, usei um nome de partícula simples (B) para comparação de uma renderização normal da letra B e o nome da partícula inserido com a macro \PB, que deve ser idêntico.

Tentei diferentes ordens de carregamento dos pacotes:

fontspec carregadoantesPacotes 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}

O glifo normal usa a fonte errada, o glifo SF usa a fonte erradaeserifas, mas as versões em itálico estão corretas:

insira a descrição da imagem aqui

fontspec carregadodepoisPacotes 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}

Todos os glifos usam o estilo correto, mas todos têm a fonte erradaexcetoo glifo serif-itálico.

insira a descrição da imagem aqui

Em seguida, usei os pacotes libertine/biolinum em vez do fontspec e compilei o arquivo também com pdflatex para comparação:

pacotes de fontes carregadosdepoisPacotes 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

Todos os glifos têm estilo correto e fonte errada:

insira a descrição da imagem aqui

xelatex

Todos os glifos usam o estilo correto, mas todos têm a fonte erradaexcetoo glifo serif-itálico.

insira a descrição da imagem aqui

pacotes de fontes carregadosantesPacotes 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

Todos os glifos usam o estilo correto e todos têm a fonte corretaexcetoo glifo serif-itálico. (Isso seria bom para mim, exceto que quero usar xelatex.)

insira a descrição da imagem aqui

xelatex

O glifo normal usa a fonte errada, o glifo SF usa a fonte erradaeserifas, mas as versões em itálico estão corretas:

insira a descrição da imagem aqui

Responder1

OK, então o comentário de egreg me apontou na direção certa. Tentei usar mathspecpara alterar as fontes matemáticas, sem sorte. Depois de examinar mais de perto as macros em hepparticles, descobri que elas usam \mathupmacros semelhantes para renderizar os nomes das partículas. Não consegui descobrir como alterá-los mathspec, então mudei para unicode-mathe encontrei uma configuração funcional que dá um resultado satisfatório:

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

insira a descrição da imagem aqui

Editar:Encontrei um problema de acompanhamento, que é discutido emoutro tópico.

informação relacionada