为什么我在自定义题词环境中收到“可能缺少 \item”错误?

为什么我在自定义题词环境中收到“可能缺少 \item”错误?

我尝试为书中的题词定制一个新的环境。此页面不应有花哨的标题或类似内容。它应该只包含一个或多个题词的列表。为此,我使用了 epigraph 包,并在 .cls 文件中定义了以下内容:

\RequirePackage{epigraph}
    \setlength{\epigraphwidth}{0.56\textwidth}
    \let\oldqitem\qitem
    \renewcommand{\qitem}[3]{\oldqitem{\textit{#1}}{\textit{#2}\\\textsc{#3}}}

\newenvironment{epigpage}[1][10]{%begin
    \thispagestyle{empty}
    \phantomsection
    \vspace*{#1\@line} %default 10
    \begin{epigraphs}\begin{flushright}
}{%end
    \end{flushright}\end{epigraphs}
    \vspace{\fill}
    \blankpage
}

执行更新命令是\qitem为了区分书名和作者姓名。然后我只需开始一个新的空白页并开始通常的题词环境。

最后,在 .tex 文件中我执行以下操作:

\begin{epigpage}
    \qitem{``My favourite quote.''}{My favourite book}{My favourite authors}
\end{epigpage}

问题是,编译时出现以下错误:

LaTeX Error: Something's wrong--perhaps a missing \item.
l.8    \qitem
       {``My favourite quote.''}{My favourite book}{My favourite authors}

有人能帮忙吗?

答案1

定义一个新环境,其中的flushright环境嵌套在另一个epigraphs环境中,如下所示

\newenvironment{epigpage}
{
    \begin{epigraphs}
    \begin{flushright}
}{
  \end{flushright}
  \end{epigraphs}
}

确实会产生您报告的错误。

我没有找到问题的根源,但在你的定义\begingroup\raggedleft中用\begin{flushright}\endgroup代替似乎可以解决问题。\end{flushright}epigpage

但是,您甚至不需要那个flushright环境,因为您的题词已经被刷新到右侧:

在此处输入图片描述

\documentclass{scrbook}

\usepackage[showframe]{geometry}    % top show that the epigraphs
                                                                    % are already flushed to the right
\usepackage{hyperref}
\usepackage{epigraph}
    \setlength{\epigraphwidth}{0.56\textwidth}
    \let\oldqitem\qitem
    \renewcommand{\qitem}[3]{\oldqitem{\textit{#1}}{\textit{#2}\\\textsc{#3}}}

\newenvironment{epigpage}[1][10]{%begin
    \thispagestyle{empty}
    \phantomsection
    \vspace*{#1\baselineskip}   % I changed that because \@line was undefined
    \begin{epigraphs}
}{%end
    \end{epigraphs}
    \vspace{\fill}
    \cleardoublepage                    % I change that because \blankpage was undefined
}

\begin{document}
\begin{epigpage}
    \qitem{``My favourite quote.''}{My favourite book}{My favourite authors}
\end{epigpage}
\end{document}

相关内容