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:
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.
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:
xelatex
Todos os glifos usam o estilo correto, mas todos têm a fonte erradaexcetoo glifo serif-itálico.
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.)
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:
Responder1
OK, então o comentário de egreg me apontou na direção certa. Tentei usar mathspec
para alterar as fontes matemáticas, sem sorte. Depois de examinar mais de perto as macros em hepparticles
, descobri que elas usam \mathup
macros semelhantes para renderizar os nomes das partículas. Não consegui descobrir como alterá-los mathspec
, então mudei para unicode-math
e 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}
Editar:Encontrei um problema de acompanhamento, que é discutido emoutro tópico.