将格式化范围限制在命令内

将格式化范围限制在命令内

我想为技术报告生成封​​面,因此将以下内容放在我的序言中

\makeatletter
\newcommand{\coverpage}{\onecolumn \centering \large
\thispagestyle{empty}
{\noindent\includegraphics[width=3.5in]{Logo_black}}\vspace*{0.4in}\\
{\noindent\huge Electrical Engineering and Computer Science}\vspace*{0.8in}\\
{\noindent\Huge \bf \@title}\vspace*{0.3in}\\
{\noindent \@date}\vspace*{0.3in}\\
{\noindent \@author}\vspace*{0.4in}\\
\textit{TR-ID-12-06}\vspace*{0.4in}\\
\noindent\textbf{Abstract}\vspace*{0.1in}\\
\hspace*{0.1in}\begin{minipage}{0.8\linewidth}
\input{abstract}
\end{minipage}
\vfill
\setcounter{page}{0}}
\makeatother

然后,在 之后\begin{document},我有一个\coverpage,后面跟着\maketitle等等。但是,现在整个文档的格式为单列并居中,尽管我的类文件将其配置为双列(并完全对齐)。为什么会发生这种情况?我该如何避免这种情况?

答案1

通过用并将coverpage宏括起来\begingroup\endgroup您可以将宏的效果限制在该范围内。

笔记:

  • 包裹lipsum仅用于提供虚拟文本。您的文档中不需要它。
  • [demo]选项用于包裹graphicx为了在演示目的放置图形的黑框,在实际使用中(当您实际有可用的图形时),您需要删除此选项。

代码:

\documentclass{article}

\usepackage{lipsum}
\usepackage[demo]{graphicx}

\makeatletter
\newcommand{\coverpage}{\begingroup\onecolumn \centering \large
\thispagestyle{empty}
{\noindent\includegraphics[width=3.5in]{Logo_black}}\vspace*{0.4in}\\
{\noindent\huge Electrical Engineering and Computer Science}\vspace*{0.8in}\\
{\noindent\Huge \bf \@title}\vspace*{0.3in}\\
{\noindent \@date}\vspace*{0.3in}\\
{\noindent \@author}\vspace*{0.4in}\\
\textit{TR-ID-12-06}\vspace*{0.4in}\\
\noindent\textbf{Abstract}\vspace*{0.1in}\\
\hspace*{0.1in}\begin{minipage}{0.8\linewidth}
%\input{abstract}
\end{minipage}
\vfill
\setcounter{page}{0}\endgroup}
\makeatother

\begin{document}
    \title{Title}
    \coverpage
    \lipsum[1-7]
\end{document}

答案2

 \newcommand{\coverpage}{\onecolumn {\centering \large
                                    %%

创建一个组来限制范围\centering

\setcounter{page}{0}%
\par}%

结束组以停止\centering(始终确保大小更改和段落格式命令\par在末尾包含。

\twocolumn

开始两栏

}

结束命令定义

一些不相​​关的注释,\noindent通常在之后没有效果\\,在居中时也没有实际效果,因为缩进无论如何都是 0。最好避免\vspace在水平模式下使用,其效果是明确的,但很难解释。\vspace*{0.3in}\\最好写成\\[.3in]

相关内容