Fundo
O software xournal++
pode usar látex para visualizar o conteúdo. Para isso utiliza um standalone
arquivo template e preenche as entradas do usuário em um scontents
ambiente. Forneço aqui o arquivo de modelo reduzido que ainda produz o erro como um mwe (ou exemplo de falha mínima?).
O problema
Eu gostaria de usar um ambiente itemize dentro do scontents. Além disso, acho que o modelo calcula a altura do conteúdo armazenado para verificar se há algum problema. No entanto, recebo o seguinte erro:
! 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}}
Abaixo meu exemplo mínimo que produz o erro, e no final do post o log completo. Se eu não usar um ambiente itemize, não recebo nenhum erro.
\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}
O arquivo de log (com versões do pacote):https://pastebin.com/raw/TKu9DvEC
Responder1
O erro não tem nada a ver com scontents
.
Exemplo mínimo:
\documentclass{article}
\newlength{\pheight}
\begin{document}
\settoheight{\pheight}{\begin{itemize}\item Text\end{itemize}}
\end{document}
Saída do console:
! 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}}
O texto \settoheight
não deve conter parágrafos.
\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}
Não tenho certeza de qual seria a utilidade disso.