词汇表条目中的(长)名称内的换行符

词汇表条目中的(长)名称内的换行符

解决方案“手动中断词汇表名称”在我的情况下不打印任何词汇表(在添加之后\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、再次编译)

A

\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问题。

相关内容