scontents 中的 Itemize 会产生错误

scontents 中的 Itemize 会产生错误

背景

该软件xournal++可以使用 latex 来可视化内容。为此,它使用模板standalone文件并将用户输入填充到scontents环境中。我在这里提供他们的简化模板文件,该文件仍然会产生错误作为 mwe(或最小失败示例?)。

问题

我想在 scontents 中使用 itemize 环境。另外,我猜想模板会计算存储内容的高度来检查是否存在问题。但是,我收到以下错误:

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

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.24 ...toheight{\pheight}{\getstored[1]{preview}}

下面是产生错误的最小示例,文章末尾有完整的日志。如果我不使用 itemize 环境,则不会出现错误。

\documentclass[varwidth=0.999\maxdimen, crop, border=5pt]{standalone}

\newcommand*{\setTextWidthReference}{%
    \setlength{\textwidth}{345.0pt}% Same value when you use 'varwidth=true'.
    \setlength{\linewidth}{\textwidth}%
    \setlength{\columnwidth}{\textwidth}%
}

% for storing in memory verbatim content to be reused later
\usepackage{scontents}
\usepackage{ifthen}
\newlength{\pheight}

% User input
\begin{scontents}[store-env=preview]
\begin{itemize}
    \item Text
\end{itemize}
\end{scontents}

\begin{document}
    \setTextWidthReference
    % Check if the formula is empty
    \settoheight{\pheight}{\getstored[1]{preview}}%

    \ifthenelse{\pheight=0}{\GenericError{}{blank}{}{}}
    
    \getstored[1]{preview}
\end{document}

日志文件(包含软件包版本):https://pastebin.com/raw/TKu9DvEC

答案1

该错误与 无关scontents

最小示例:

\documentclass{article}
\newlength{\pheight}

\begin{document}

\settoheight{\pheight}{\begin{itemize}\item Text\end{itemize}}

\end{document}

控制台输出:

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

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

l.6 ...ht}{\begin{itemize}\item Text\end{itemize}}

的文本\settoheight不应该有段落。

\documentclass[varwidth=0.999\maxdimen, crop, border=5pt]{standalone}

\newcommand*{\setTextWidthReference}{%
    \setlength{\textwidth}{345.0pt}% Same value when you use 'varwidth=true'.
    \setlength{\linewidth}{\textwidth}%
    \setlength{\columnwidth}{\textwidth}%
}

% for storing in memory verbatim content to be reused later
\usepackage{scontents}
\usepackage{ifthen}
\newlength{\pheight}

% User input
\begin{scontents}[store-env=preview]
\begin{itemize}
    \item Text
\end{itemize}
\end{scontents}

\begin{document}
    \setTextWidthReference
    % Check if the formula is empty
    \settoheight{\pheight}{\begin{varwidth}{\maxdimen}\getstored[1]{preview}\end{varwidth}}%
    \ifthenelse{\pheight=0}{\GenericError{}{blank}{}{}}
    \getstored[1]{preview}
\end{document}

但我不确定这有什么用处。

相关内容