是否可以扩展该\gls
命令以便在文本文件中打印其“输出”?
这里是“MWE.tex”文件的内容:
\documentclass{article}
\usepackage{glossaries-extra}
\makenoidxglossaries
\newglossaryentry{myglsentry}{name={Myglsentry},description={myglsentry desc}}
\newwrite\mytextfile
\immediate\openout\mytextfile=\jobname.txt
\begin{document}
\glsaddall
\immediate\write\mytextfile{\glsname{myglsentry}}
\immediate\closeout\mytextfile
\printnoidxglossary
\end{document}
答案1
一种方法是扩展\write
once的参数\unexpanded\expandafter
(例如参见部分扩展命令和`\unexpand\expandafter` 添加空格:如何在文件末尾附加文本) 并使用来自 的最底层的宏glossaries
,其中包含具有单个扩展的内容。
\glo@some_entry@name
在本例中,包含内容的宏是\glo@myglsentry@name
。因为这个宏包含@
您需要的符号\makeatletter
和\makeatother
。
梅威瑟:
\documentclass{article}
\usepackage{glossaries-extra}
\makenoidxglossaries
\newglossaryentry{myglsentry}{name={Myglsentry},description={myglsentry desc}}
\newwrite\mytextfile
\immediate\openout\mytextfile=\jobname.txt
\begin{document}
\glsaddall
\makeatletter
\immediate\write\mytextfile{\unexpanded\expandafter{\glo@myglsentry@name}}
\makeatother
\immediate\closeout\mytextfile
\printnoidxglossary
\end{document}