无法使用 \raggedright 在 \maketitle 中换行

无法使用 \raggedright 在 \maketitle 中换行

(从某种意义上来说,这是在标题和作者之间插入文本)。

\raggedright在序言中使用时,如果\\在 中使用换行命令,LaTeX 会抛出错误\maketitle。我该如何避免这种情况?

\documentclass{article}
\raggedright % turn off right-edge text justification and hyphenation
\usepackage{titling}
    \pretitle{\begin{flushleft}\LARGE\textbf} % left aligned title with LARGE bold type
    \posttitle{\vskip .25ex\hrule\par\end{flushleft}} % add hrule under title
    \preauthor{\begin{flushleft}\large} % left align author
    \postauthor{\par\end{flushleft}}
    \predate{\begin{flushleft}} % left align date
    \postdate{\par\end{flushleft}\vspace{-3ex}} % reduce space after \maketitle

\begin{document}
\title{Review}
\author{\textbf{Paul McCartney}\\ University of Liverpool}
\date{\today}
\maketitle
\noindent Here my review begins
\end{document}

! \reserved@a 的参数有一个额外的 }。

\par

l.14 ...保罗·麦卡特尼}\ 利物浦大学}

答案1

通常(并非总是,但在这里)

! Argument of \reserved@a has an extra }. 

应该理解为在移动论证中使用脆弱命令

所以

\author{\textbf{Paul McCartney}\protect\\ University of Liverpool}

按预期工作,没有错误。

答案2

titling我在结合环境使用该包时遇到了同样的错误tabular

\documentclass[]{article}

\usepackage[margin=0.9in]{geometry}
\usepackage{titling} 
\usepackage{graphicx}
\usepackage{lipsum}

\pretitle{\vspace{-35pt}\begin{flushleft}}

\title{
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
\Huge{Title} & \includegraphics[width = 0.2\textwidth]{example-image}
\end{tabular*}
}

\posttitle{\end{flushleft}\hrule\vspace{-50pt}}
\date{}

\begin{document}

\maketitle
\lipsum[1-2]

\end{document}

当我忽略此错误并简单地按几次回车键时,我确实得到了 pdf 输出,但每次编译文档时都会出现此错误,这让我很困扰。我尝试\protect在代码的各个位置添加,但没有帮助。我确实在包文档中找到了一个解决方案titling,它使用\DeclareRobustCommand

\documentclass[]{article}

\usepackage[margin=0.9in]{geometry}
\usepackage{titling} 
\usepackage{graphicx}
\usepackage{lipsum}

\pretitle{\vspace{-35pt}\begin{flushleft}}

\DeclareRobustCommand{\desiredTitle}{
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
\Huge{Title} & \includegraphics[width = 0.2\textwidth]{example-image}
\end{tabular*}
}

\title{\desiredTitle}

\posttitle{\end{flushleft}\hrule\vspace{-50pt}}
\date{}

\begin{document}

\maketitle
\lipsum[1-2]

\end{document}

当我找到此解决方案时,我正在询问有关该问题的问题。我想我会将我的发现放在这里,以防其他人在类似情况下遇到此错误。

相关内容