Объединение нескольких записей глоссария математического режима

Объединение нескольких записей глоссария математического режима

Я хотел бы объединить 2 или более записей глоссария математического режима, чтобы сформировать полное выражение в математическом режиме. Фон — это разделение номенклатуры и символов.

Я использую выражения, как во втором варианте этого ответа:https://tex.stackexchange.com/a/137506/101663

То, что я хотел бы получить, показано в формуле 1 моего MWE. То, что я получаю, показано в формуле 2. То, что, как я предполагаю, может произойти, показано в формуле 3.

результат МВЭ

Так как не допускается (и это фактически не работает) использование gls-команд в необязательном параметре gls, подход, приведенный вруководствоне помогает:

$\gls{Falpha}[^2]$

Есть ли способ достичь моей цели?

МВЭ:

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[acronym]{glossaries}

\newglossary[fog]{formula}{foi}{foo}{Formula} 

\makeglossaries

\newglossaryentry{mathpart1}{
    name=test, text=x_{ref},
    description=irrelevant, type=formula
} 

\newglossaryentry{mathpart2}{
    name=test2, text=^{abc},
    description=irrelevant2, type=formula
} 

\begin{document}
Desired output:
\[
    x_{ref}^{abc} = 0
\]

Achieved output with gls:
\[
    \gls{mathpart1}\gls{mathpart2} = 0
\]      

Similar behaviour:
\[
    {x_{ref}}^{abc} = 0
\]      
\end{document}

решение1

Улучшенное обновление смотрите ниже в конце.

Я предлагаю опустить оператор верхнего индекса в glsтексте замены и использовать \gls{foo}^{\gls{foobar}}instead.

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[acronym]{glossaries}

\newglossary[fog]{formula}{foi}{foo}{Formula} 

\makeglossaries

\newglossaryentry{mathpart1}{
    name=test, 
    text={\ensuremath{x_{ref}}},
    description=irrelevant, type=formula
} 

\newglossaryentry{mathpart2}{
    name=test2, 
    text={abc},
    description=irrelevant2, type=formula
} 



\begin{document}
Desired output:
\[
    x_{ref}^{abc} = 0
\]

Achieved output with gls:
\[
\gls{mathpart1}^{\gls{mathpart2}} = 0
\]      

Similar behaviour:
\[
    {x_{ref}}^{abc} = 0
\]      
\end{document}

Обновлять-- Согласно OP, \glstextentryрасширяемый, но \glsэто не так. Используйте \glstextentryтогда.

Поскольку \glsне расширяется, \gls{foo}\gls{foobar}его нельзя расширить до чего-то вроде foo^{foobar}.

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[acronym]{glossaries}

\newglossary[fog]{formula}{foi}{foo}{Formula} 

\makeglossaries

\newglossaryentry{mathpart1}{
    name=test, 
    text={\ensuremath{x_{ref}}},
    description=irrelevant, type=formula
} 

\newglossaryentry{mathpart2}{
    name=test2, 
    text={^{abc}},
    description=irrelevant2, type=formula
} 



\begin{document}
Desired output:
\[
    x_{ref}^{abc} = 0
\]

Achieved output with gls:
\[
\gls{mathpart1}\glsentrytext{mathpart2} = 0
\]      

Similar behaviour:
\[
    {x_{ref}}^{abc} = 0
\]      
\end{document}

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

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