什么可能导致 hyperref 和挂起撤消 multicol?

什么可能导致 hyperref 和挂起撤消 multicol?

我创建了一种方法,将挪威语-英语翻译输入到某种词汇表中。我需要多个这样的小词汇表,稍后将它们编译成一个大词汇表。它不需要很复杂。

我使用datatool字母顺序对列表进行排序(暂时忽略挪威索引问题),实际上,我对这个系统非常满意。

\documentclass[11pt]{memoir}

% \usepackage[colorlinks=true]{hyperref}    % hyperlink to target
\usepackage{multicol}                   % multiple columns
\usepackage{hanging}                    % paragraph indentation control
\usepackage{datatool}                   % for sorting lists

\newcommand{\vocab}[3]{%\parskip=0pt \textbf{#1} (#2) #3~\par%
    \DTLnewrow{vocabsort}%
    \DTLnewdbentry{vocabsort}{norsk}{#1}%
    \DTLnewdbentry{vocabsort}{class}{#2}%
    \DTLnewdbentry{vocabsort}{english}{#3}%
}
\newenvironment{vocabsection}[1]{\noindent \hspace{1em} \textbf{#1} %
    \DTLifdbexists{vocabsort}{\DTLcleardb{vocabsort}}{\DTLnewdb{vocabsort}}%
}% 
{ \dtlsort{norsk}{vocabsort}{\dtlicompare}%
    \displaysorteddb
}
\newcommand{\displaysorteddb}{%
    \begin{multicols}{2}
        \begin{hangparas}{0.5em}{1}
            \begin{DTLenvforeach*}{vocabsort}{\norsk=norsk, \class=class, \english=english}
                \textbf{\norsk} (\class) \english~\par
            \end{DTLenvforeach*}
        \end{hangparas}
    \end{multicols}
}

\begin{document}

    \subsection{Foo}

    \begin{vocabsection}{Map Vocab}     
        \vocab{basseng}{n.}{pool}
        \vocab{hytte}{n.}{cabin} 
        \vocab{akershus}{n.}{A castle in Oslo, the counselors' cabin} 
        \vocab{kjokken}{n.}{kitchen} 
        \vocab{bad}{n.}{bathroom} 
        \vocab{basketball bane}{n.}{basketball court}
        \vocab{lekeplass}{n.}{playground}
        \vocab{sykepleirske}{n.}{nurse's cabin}
        \vocab{innsj\o}{n.}{lake}
        \vocab{skog}{n.}{forest}
        \vocab{vei}{n.}{road} 
        \vocab{flagg}{n.}{flag}
        \vocab{lysthus}{n.}{gazebo}
    \end{vocabsection}

\end{document}

上述代码的结果是: 工作 hyperref+multicols

但取消注释\usepackage[colorlinks=true]{hyperref},一切都会崩溃,产生:

破损清单

老实说,我不需要超链接,因为无论如何这个文档大部分都会以硬拷贝的形式使用,但现在我很好奇hypperref这可能是什么原因造成的,以及是否有解决办法。


正如评论中指出的那样,该错误还需要使用hanging。问题仍然存在,在这种情况下,hyperref和的交互如何hanging导致multicols失败?

使用 XeTeX 进行编译,因为它会忽略由 产生的命令已定义错误hanging

相关内容