Itemize inside scontents 產生錯誤

Itemize inside scontents 產生錯誤

背景

該軟體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}

不過,我不確定這有什麼用。

相關內容