解决方案“手动中断词汇表名称”在我的情况下不打印任何词汇表(在添加之后\gls{pab}
和\gls{pc}
之后\begin{document}
)。如果我将名称定义为表格环境,它适用于一个条目,但对于第二个条目:我收到编译错误。所以这可能是一个错误的线索。还有其他选择吗?
\documentclass{article}
\usepackage{lipsum}
% also see
% https://tex.stackexchange.com/questions/203718/manual-line-break-in-glossaries-name
\usepackage{filecontents}
\begin{filecontents*}{\jobname-foo.glo}
\newglossaryentry{lorem}
{
type=foo,
name={ % Method
% Lorem ipsum dolor sit amet, % lb % FAIL
% \\ consectetuer adipiscing elit.
\begin{tabular}{l} % tabular+lb % OK (it seemed)
Lorem ipsum dolor sit amet,\\
consectetuer adipiscing elit.
\end{tabular}
},
text={Lorem ipsum dolor \dots.},
description={}
}
\newglossaryentry{utpurus}
{
type=foo,
name={ % Method
\begin{tabular}{l} % tabular+lb % FAIL
Ut purus elit, vestibulum ut, placerat ac, \\
adip iscing vitae, felis.
\end{tabular}
},
text={Ut purus elit, vestibulum ut,\dots},
description={}
}
\end{filecontents*}
\usepackage[style=altlist]{glossaries}
\makenoidxglossaries
% \setglossarystyle{tree}
\newglossary*{foo}{Foo}
\loadglsentries[foo]{\jobname-foo.glo}
\begin{document}
\gls{lorem}
%\gls{utpurus} % ERROR: Improper alphabetic constant.
\printnoidxglossaries
\end{document}
答案1
我准备了一个简单的 MWE,它遵循使用 分解长词汇表名称的秘诀tabular
。
检查您的设置可能会有所帮助。(编译、运行makeglossaries
、再次编译)
\documentclass{article}
\usepackage{glossaries}
\makeglossaries %<<< use this
\newglossaryentry{foo}{name={foo},text={Only foo.}, description={Something else}}
\newglossaryentry{lorem}
{%
name={%
\begin{tabular}{@{}l} % use @{} to suppress the space
Lorem ipsum dolor sit amet,\\
consectetuer adipiscing elit.
\end{tabular}
},
text={Lorem ipsum dolor \dots.},
description={}
}
\newglossaryentry{utpurus}
{ %
name={ %
\begin{tabular}{@{}l}
Ut purus elit, vestibulum ut, \\ placerat ac, \\
adip iscing vitae, felis.
\end{tabular}
},
text={Ut purus elit, vestibulum ut,\dots},
description={}
}
\begin{document}
\begin{itemize}
\item \gls{foo}
\item \gls{lorem}
\item \gls{utpurus}
\end{itemize}
\printglossary %<<< use this
\end{document}
答案2
@Simon Dispa 的回答和我的评论结合起来:
\documentclass{article}
\usepackage{datetime2}
\usepackage{filecontents}
\usepackage{glossaries}
\newglossary*{foo}{Foo}
\begin{filecontents*}{\jobname-foo.glo}
\newglossaryentry{lorem}
{%
type=foo,
name={%
\begin{tabular}{@{}l}
Lorem ipsum dolor sit amet,\\
consectetuer adipiscing elit.
\end{tabular}
},
text={Lorem ipsum dolor \dots.},
description={}
}
\newglossaryentry{utpurus}
{ %
type=foo,
name={ %
\begin{tabular}{@{}l}
Ut purus elit, vestibulum ut, \\ placerat ac, \\
adip iscing vitae, felis.
\end{tabular}
},
text={Ut purus elit, vestibulum ut,\dots},
description={}
}
\end{filecontents*}
\loadglsentries[foo]{\jobname-foo.glo}
\makeglossaries
\begin{document}
\DTMnow
\begin{itemize}
% \item \gls{foo}
\item \gls{lorem}
\item \gls{utpurus}
\end{itemize}
\printglossary[type=foo]
\end{document}
@{}l
另外,我用in place of l
(和 and 添加在适用的地方)测试了原始代码\\
,但并没有解决问题,这表明了一个\makenoidxglossaries
问题。