我想在每一章的开头放一个摘要。为了这个目的,我设计了一个命令,但它看起来既不经济,也不健壮(有时会向右移动)。如何改进这个命令?
我的命令是:
\def\chapstract#1{%
\medskip%
\begingroup%
\itshape\small\noindent%
\parbox{\linewidth}{%
\leftskip=1em%
\rightskip=1em%
#1%
}%
\endgroup%
\medskip%
}
答案1
你没有给出太多关于所需布局的指示,但也许
\def\chapstract#1{\begin{quote}\small\itshape#1\end{quote}}
\leftskip
和\rightskip
是 TeX 基元,不应直接在 LaTeX 中设置。(quote
环境使用 LaTeX 列表机制以安全的方式设置它们)。
quote
标准类中的完整定义是
\newenvironment{quote}
{\list{}{\rightmargin\leftmargin}%
\item\relax}
{\endlist}
这表示隐式地将左侧缩进默认量,并将右侧缩进与左侧相同的量。因此,如果您在评论中指出您想要不同的缩进,则使用chapastractenv
而不是quote
并将其定义为
\newenvironment{chapabstractenv}
{\list{}{%
\small\itshape\setlength\leftmargin{3cm}%
\rightmargin\leftmargin}%
\item\relax}
{\endlist}
那么如果你想要一个命令形式而不是使用环境
\def\chapstract#1{\begin{chapabstractenv}#1\end{chapabstractenv}}
答案2
谢谢你的帮助,我想我会像这样修改引用环境:
\makeatletter
\newenvironment{chapstract}{\list{}{ %
\leftmargin1pc \listparindent\normalparindent
\itemindent\z@
\rightmargin\leftmargin \parsep\z@ \@plus\p@}%
\item[]%
\itshape\small
}{%
\endlist
}
\makeatother
这虽然不是更经济,但似乎更正确。