我有以下文件。这是序言:
\def\year{2017}\relax
\documentclass[letterpaper]{article}
\usepackage[left=0.8cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{aaai17}
\usepackage{times}
\usepackage{helvet}
\usepackage{apacite}
\usepackage{courier}
\usepackage{amsmath, amsfonts, amssymb, amsthm, bm, mathtools}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage{array}
\usepackage{dsfont} %for probability P
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{graphicx}
\usepackage{mdframed}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\frenchspacing
\setlength{\pdfpagewidth}{8.5in}
\setlength{\pdfpageheight}{11in}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\bf}[1]{\textit{#1}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Title}
\author{Foo \AND Bar}
这是文档:
\begin{document}
\maketitle
\end{document}
编译时我收到以下错误:
! Missing } inserted.
<inserted text>
} l.77 \maketitle
当我删除行\renewcommand{\bf}[1]{\textit{#1}}
或删除\AND
中的字符时\author{Foo \AND Bar}
,文档可以正常编译。有人能解释为什么会发生这种情况以及如何修复吗?(假设我想重新定义\bf
并\AND
在中使用\author
)
編輯:我刚刚将换行符改为\AND
,但出现了同样的问题。正如@UlrikeFischer 指出的那样,使用aaai17
会导致问题。请注意,符号\AND
仅在此包中可用。这个包有什么问题?
答案1
该命令\bf
已被弃用近 25 年,但显然这么长时间还不足以让软件包作者和维护者遵守此弃用规定。
然而,该命令绝不带参数:它是一个声明,含义是“更改为正常字体,然后开始以粗体排版”,直到声明的范围结束。
如果你想让粗体\bf
变成斜体,正确的指令是
\renewcommand{\bf}{\itshape}
也就是说,用一个声明替代另一个声明。
在您的代码中,由于\AND
中的aaai17
定义为\end{tabular}
,因此\bf\AND
和 中的\textit{\end}{tabular}
是错误的代码,并且毫不奇怪,会导致后续错误。您的重新定义从一开始就是错误的。