所以我的博士学位即将结束,需要开始写我的论文。我的大学(康涅狄格大学)对文档格式有一定的指导方针,但没有官方的 LaTex 类文件。所以一个(现在是前)研究生写了一个非官方的。不幸的是,他们似乎破坏了 \chapter 以下所有内容的星号版本。我是 LaTex 的新手,但我注意到他们使用了
\newcommand\section{...}
代替
\def{\section}
...
\secdef\@section\@ssection
所以我认为问题出在这部分代码上。
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\s@font}
}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\ss@font}
}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\sss@font}
}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\reset@font\pg@font}
}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\reset@font\spg@font}
}
总结:
\section*{title}
无法正常工作并显示
1.1 *
标题
代替
标题
正如它应该。
根据上述代码我该如何修复这个问题?
答案1
哦,历史又重演了。不到两个月前,我们大学的一个人做了精确的同样的错误。
第六个参数之后有一个虚假的空格,TeX 在扫描命令时会将其标记化。当您尝试使用 时,这将导致错误
\section*
。由于该空格已被标记化,因此您实际使用的是\section *
,这会失败\@ifstar
测试并且该部分将被编号。然后出现另一个测试:\@ifnextchar[
,它也失败,因为下一个标记是*
,因此命令继续抓取下一个标记作为部分标题,也就是说,您有一个*
作为标题的 。最后,本应是该部分标题的内容只是被排版为文本。
定义应该包含行尾保护:
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\s@font}% <-- Here
}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\ss@font}% <-- Here
}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
%{\if@center\centering\else\raggedright\fi
{\raggedright
\reset@font\sss@font}% <-- Here
}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\reset@font\pg@font}% <-- Here
}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\reset@font\spg@font}% <-- Here
}