Фон
Программное обеспечение xournal++
может использовать latex для визуализации контента. Для этого оно использует standalone
файл шаблона и заполняет пользовательский ввод в scontents
среде. Я предоставляю здесь их сокращенный файл шаблона, который все еще выдает ошибку как mwe (или минимальный пример сбоя?).
Проблема
Я хотел бы использовать среду itemize внутри scontents. Кроме того, я предполагаю, что шаблон вычисляет высоту сохраненного контента, чтобы проверить, есть ли проблема. Однако я получаю следующую ошибку:
! 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}
Хотя я не уверен, какая от этого польза.