Actualmente estoy intentando utilizar una entrada del glosario en las etiquetas de un PGFPlot. P.ej ylabel={$\gls{F}_h\ in\ \glsunit{F}}
.
Configuré glsunit de acuerdo con¿Cómo utilizar la entrada del glosario en el comando siunitx?. Dentro del texto esto funciona bien, pero no en PGFPlot. Allí los símbolos sólo aparecen como ???
.
Más información: estoy usando tikz externalize para los gráficos y uso un archivo bib y bib2gls para los símbolos.
¿Hay alguna manera de resolver los símbolos dentro del PGFPlot?
el ejemplo simplificado:
\begin{filecontents*}{symbols.bib}
@entry{F,
name={\ensuremath{F}},
description={Force},
unit={\si{\newton}}
}
@entry{s,
name={\ensuremath{s}},
description={Normalised Distance},
unit={}
}
\end{filecontents*}
\documentclass{article}
\usepackage[british]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[colorlinks=true, linkcolor=black, citecolor=blue, urlcolor=blue]{hyperref}
\usepackage{siunitx}
\usepackage[record, abbreviations, nonumberlist]{glossaries-extra}
\setabbreviationstyle{long-short}
\newglossary[slg]{symbols}{syi}{syg}{Symbols}
\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit}
\glssetnoexpandfield{unit}
\newglossarystyle{symbunitlong}{%
\setglossarystyle{long3col}% base this style on the list style
\renewenvironment{theglossary}{% Change the table type --> 3 columns
\begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
{\end{longtable}}%
%
\renewcommand*{\glossaryheader}{% Change the table header
\bfseries Sign & \bfseries Description & \bfseries Unit \\
\hline
\endhead%
}
\renewcommand*{\glossentry}[2]{% Change the displayed items
\glstarget{##1}{\glossentryname{##1}} %
& \glossentrydesc{##1}% Description
& \glsunit{##1} \tabularnewline
}
}
\GlsXtrLoadResources[src={symbols}, type={symbols}]
\usepackage{pgfplots}
\usepgfplotslibrary{external}
\pgfplotsset{compat=1.16}
% \tikzexternalize[
% mode=list and make,
%% force remake,
% ]
\begin{document}
\printunsrtglossary[type=symbols, style=symbunitlong]
Just a test with \gls{s} and \gls{F} in \glsunit{F}. \\
%
\begin{tikzpicture}
\begin{axis}[
xlabel={\gls{s}},
ylabel={$\gls{F}\ in\ \glsunit{F}$},
]
\addplot[color=red,mark=x] coordinates {
(2,-2.8559703)
(3,-3.5301677)
(4,-4.3050655)
(5,-5.1413136)
(6,-6.0322865)
(7,-6.9675052)
(8,-7.9377747)
};
\end{axis}
\end{tikzpicture}
\end{document}