买者自负

买者自负

在一些生成的代码中,我发现list给出了 a 的开始和结束标记,但item没有

\begin{list}{}{}
\end{list}

这引出了这样的信息:

! LaTeX Error: Something's wrong--perhaps a missing \item.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

很明显,这是由于缺少 造成的\item,但由于它是生成的代码,因此存在 2 种可能性:

  • 如果不存在任何项目,则不会生成开始和结束标记(首选解决方案,但很难在代码中找到所有位置)
  • 添加一个选项,\begin{list}使得没有物品成为可能,这存在吗?

完整 MWE:

\documentclass{book}

\begin{document}
% working
\begin{list}{}{}
\item the item
\end{list}
% giving error
\begin{list}{}{}

\end{list}

\end{document}

答案1

买者自负

你可以尝试一下,但请注意,这是一个非常粗糙的黑客攻击:

\documentclass{article}
\usepackage{etoolbox}

\makeatletter

\patchcmd\endtrivlist
    {\if@newlist \@noitemerr \global\@newlistfalse \fi}
    {}
    {}{}
\patchcmd\endtrivlist
    {\@endparenv}
    {\if@newlist \@endpefalse \global\@newlistfalse \else \@endparenv \fi}
    {}{}

\makeatother



\begin{document}
Text before
\begin{list}{--}{}
\item the item
    \item another item
    \item \begin{itemize}
            \item a sublist
            \item second subitem
        \end{itemize}
    \item back to outer level
\end{list}
Text after

Text before
\begin{list}{--}{}
\end{list}
Text after\\
another line\\
still another\\
and another

\end{document}

相关内容