我在 LYX 中使用 IEEE Transactions on Magnetics 文档类,但在“部分”部分中遇到了困难。所有其他部分类型(部分、小节、段落等)都可以正常工作,但当我添加“部分”部分并尝试查看时,我收到以下消息:
\part
{Digital Control}
错误消息顶行末尾的控制序列从未被 \def 过。如果拼写错误(例如
\hobx
),请输入I
正确的拼写(例如I\hbox
)。否则请继续,我会忘记未定义的所有内容。
我可以在序言中添加一些内容来解决这个问题吗?在此先感谢您的帮助。
答案1
显然该IEEEtran
班级没有\part
指挥虽然是基于article
类的。
一种可能的解决方法是将article.cls
类文件的定义重新包含到您的文档中,例如:
\documentclass{IEEEtran}
\makeatletter
\newcounter {part}
\renewcommand \thepart {\@Roman\c@part}
\newcommand\part{%
\if@noskipsec \leavevmode \fi
\par
\addvspace{4ex}%
\@afterindentfalse
\secdef\@part\@spart}
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
{\parindent \z@ \raggedright
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >\m@ne
\Large\bfseries \partname\nobreakspace\thepart
\par\nobreak
\fi
\huge \bfseries #2%
\markboth{}{}\par}%
\nobreak
\vskip 3ex
\@afterheading}
\def\@spart#1{%
{\parindent \z@ \raggedright
\interlinepenalty \@M
\normalfont
\huge \bfseries #1\par}%
\nobreak
\vskip 3ex
\@afterheading}
\newcommand*\l@part[2]{%
\ifnum \c@tocdepth >-2\relax
\addpenalty\@secpenalty
\addvspace{2.25em \@plus\p@}%
\setlength\@tempdima{3em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
{\leavevmode
\large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
\nobreak
\if@compatibility
\global\@nobreaktrue
\everypar{\global\@nobreakfalse\everypar{}}%
\fi
\endgroup
\filetter}
\makeatother
\renewcommand\partname{Part}
\usepackage{lipsum}
\title{A way to use the 'Part' command in Latex}
\author{John Doe}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1]
\end{abstract}
\part{First Part of the Article}
Some text right after the part. Maybe some summary or so. \lipsum[1]
See that there was no indentation after the part, which just comes after the
first paragraph of written words.
\section{First section}
\lipsum
\section{Second section}
\lipsum
\part{Second Part of the Article}
This part only has a single section.
\section{Last section}
\lipsum
\end{document}
由于我刚刚从 中剪切了代码的相应部分article.cls
,因此仍然存在可能的错误(实际上我必须将一个或更改为 才能\newcommand
使其正常工作,并且还要包含/\renewcommand
之间的代码,其中我可能包含的代码超出了必要的范围)。\makeatletter
\makeatother
或许更好的办法是定义您自己的文章类,并从文件中包含您喜欢的所有功能IEEEtran.cls
。