콘텐츠 내부 항목화 시 오류가 발생함

콘텐츠 내부 항목화 시 오류가 발생함

배경

소프트웨어는 xournal++라텍스를 사용하여 콘텐츠를 시각화할 수 있습니다. 이를 위해 템플릿 standalone파일을 사용하고 사용자 입력을 환경에 채웁니다 scontents. 나는 여전히 mwe(또는 최소한의 실패 예)로 오류를 생성하는 축소된 템플릿 파일을 여기에 제공합니다.

문제

콘텐츠 내부에서 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}

하지만 이것이 무슨 용도로 사용될지는 잘 모르겠습니다.

관련 정보