如何将简历文件(res.cls)的两列页码居中

如何将简历文件(res.cls)的两列页码居中

我正在尝试将页码居中(我在下面粘贴了 .cls 文件)。添加后,我使用了以下代码\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\thepage}

但问题仍然存在,因为它只会使页码出现在右列的中心(而不是页面的中心)。

这是 res.cls 文件:

% RESUME DOCUMENT STYLE -- Released 23 Nov 1989
%    for LaTeX version 2.09
% Copyright (C) 1988,1989 by Michael DeCorte

\typeout{Document Style `res' <26 Sep 89>.}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% res.sty
%
% \documentstyle{res}
%
% Copyright (c) 1988 by Michael DeCorte
% Permission to copy all or part of this work is granted, provided
% that the copies are not made or distributed for resale, and that
% the copyright notice and this notice are retained.
%
% THIS WORK IS PROVIDED ON AN "AS IS" BASIS.  THE AUTHOR PROVIDES NO
% WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK,
% INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS
% FOR ANY PARTICULAR PURPOSE.
%
% If you make any improvements, I'd like to hear about them.
%
% Michael DeCorte
% P.O. Box 652
% Potsdam NY 13676
% [email protected]
% [email protected]
%
% Changes for LaTeX2e -- Venkat Krishnamurthy (Aug 7, 2001)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% You can have multiple style options the legal options ones are:
%
%   centered    the name and address are centered at the top of the
%       page (default)
%
%   line    the name is the left with a horizontal line then 
%       the address to the right
%
%   overlapped  the section titles overlap the body text (default)
%
%   margin  the section titles are to the left of the body text
%       
%   11pt    use 11 point fonts instead of 10 point fonts
%
%   12pt    use 12 point fonts instead of 10 point fonts
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Commands
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   \Resume prints the word resume but typeset nicely
%
%   \newsectionwidth{dimen}
%       defines the amount of space the labels extend
%       into the left margin.
%       DO NOT TRY to change any of the dimensions
%       yourself.  You will probably confuse the style file.
%
%   \name{text} defines your name
%
%   \address{text}
%       defines your address
%       this can be called twice if you have two addresses
%       use \\'s to indicate where either line breaks or
%       comas should go
%
%   \opening    this prints your name and address at that spot
%       this is not normally needed, as \begin{resume}
%       does this but is provided just in case you need
%       to do something odd
%
%   \begin{resume} ... \end{resume}
%       all of the resume should go inside of this
%       environment
%
%   \section{text}
%       This prints 'text' in the left hand margin.
%       Its exact placement depends on what the style 
%       options has been set to. (overlapped or margin)
%       You should use \\ to start a new line.  If the
%       style option is margin, the \\ is converted
%       to a space.
%       To use this in any of the list environments, put
%       the \section after the \item[] but before the 
%       text.
%       Eg.
%       \begin{itemize}
%       \item\section{text}
%       text
%       \end{itemize}
%
%   \begin{ncolumn}{n} ... \end{ncolumn}
%       creates a tabular environment with n equally
%       spaced columns.  Separate columns by & and
%       end them with \\
%
%   \begin{position} ... \end{position}
%       this is used to print a job description.  There should
%       be only one job description in it.  Information
%       related to the job (such as title, dates...) will
%       be printed.
%
%   \begin{format} ... \end{format}
%       used to change the default format for the position
%       environment.  Within it the recognized commands are:
%       \title{option}
%       \employer{option}
%       \location{option}
%       \dates{option}
%       \body
%       \\
%       where option is one of l,r,c standing for left, right, center.
%       The format will eventually be used to make several
%       tabular environments and you are defining the number of columns
%       and the placement of text within the columns of the tabulars.
%       Each row is terminated by a \\.  Any number of options can 
%       be on a line, they will each be set in their own columns.
%       Any of the options except \body may be left out.
%
%       Eg.
%       \begin{format}
%       \title{l}\employer{r}\\
%       \dates{r}\\
%       \body\\
%       \location{l}\\
%       \end{format}
%
%       In this example the title and employer information
%       are set in 2 columns left justified and right justified
%       respectively.  Then the date is set right justified.
%       Then the body is set.  Then the location is set left
%       justified.
%
% \employer{text}
% \title{text}
% \dates{text}
% \location{text}
%       declare text for the next invocation of the position
%       environment
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Glue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% sectionskip   the amount of horizontal before a section
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Dimensions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% sectionwidth  the amount that the section titles go in the
%       left margin
%
% resumewidth   the width of the total resume from the left
%       margin to the right.  Don't use textwidth
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Definitions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% sectionfont   the font used to print section titles
%       use \renewcommand to change it
%
% namefont  the font used to print your name
%       use \renewcommand to change it
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% THINGS TO DO
%
% add lm,rm options to format style to allow things to be placed
% in the left or right margin respectivly
%
% add capability so that \body doesn't have to be proceeded (followed)
% by a \\ allowing part of the description (eg. location) to be the
% first (last) thing of the body
%
% clean up the list building procedures
%
% write docs to tell people how to use this

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{res}[2000/05/19 v1.4b Resume class]

%\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
%\DeclareOption{12pt}{\renewcommand\@ptsize{2}}

\PassOptionsToClass{11pt,12pt}{article}
\LoadClassWithOptions{article}

\newif\if@line
\newif\if@margin

\DeclareOption{line}{\@linetrue}
\DeclareOption{centered}{\@linefalse}

\DeclareOption{margin}{\@margintrue}
\DeclareOption{overlapped}{\@marginfalse}

\ExecuteOptions{overlapped,centered}
\ProcessOptions\relax

\nofiles         % resume's don't need .aux files


\newtoks\tabular@text           % holds the current list being processed
\newtoks\tabular@head           % holds the head tabular list
\newtoks\tabular@tail           % holds the tail tabular list
\newtoks\@ta                % used by \@append
\newtoks\undefined@token\undefined@token={}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% prints a centered name with the address centered
% or the two address on opposite sides of the page
%
\def\@printcentername{\begingroup
  % print the name centered
  \leavevmode\hbox to \textwidth{\hfil\@tablebox{\namefont\@name}\hfil}\par
  \@ifundefined{@addressone}{%
    % do nothing
  }{%
    \@ifundefined{@addresstwo}{
      % only one address
      \leavevmode\hbox to \textwidth{\hfil\@tablebox{\@addressone}\hfil}\par
    }{
      % two addresses
      \leavevmode\hbox to \textwidth{\@tablebox{\@addressone}\hfil
                     \@tablebox{\@addresstwo}}\par
    }%
  }%
\endgroup}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% this is used to print the name and address at the top of
% the page with a hline in between
%
\def\namefont{\large\bf}
\def\@linename{\begingroup
  \def\\{, }
  {\namefont\@name}
  \vskip 2pt
  \fullline
  \vskip 2pt
  % where do you live?
  \@ifundefined{@addressone}{%
    % do nothing
  }{%
    \leavevmode\hbox to \textwidth
      {\hfill\vbox{\hbox{\@addressone}
           \hbox{\@addresstwo}
          }%
      }\par
  }
\endgroup}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HEADINGS:
% There are two types of headings:
% 1) one with the name centered and the address centered or
%    in the left and right side if there are two address
% 2) one where the name is in the upper left corner 
%    the a line accross the paper
%    then the address all on one line in the right corner
%    the second address will be directly below the first if defined
%
\let\print@name\relax
\def\ds@centered{\ifx\print@name\relax\let\print@name\@printcentername\fi}
\def\ds@line{\ifx\print@name\relax\let\print@name\@linename\fi}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Use this to set the sectionwidth.
% It adjust the width of the text as well as the hoffset
% You probably shouldn't touch any of the size paramaters
% unless you really understand all of this but it is not
% hard.  Either way, it can only be executed once
%
\def\sectionfont{\bf}
\newdimen\sectionwidth
\newskip\sectionskip
\newdimen\resumewidth

\resumewidth=6.5in
\sectionskip=3.5ex plus 1ex minus -.2ex % values stolen from LaTeX

\def\newsectionwidth#1{%
             \sectionwidth=#1
             \textwidth=\resumewidth
             \advance\textwidth-\sectionwidth
             \hsize=\textwidth
             \hoffset=\sectionwidth
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is for sectiontitles that are entirely in the left margin.
% multiline sectiontitles are permited and will be broken by
% \TeX{} to fit into a box \verb|\sectionwidth| wide.  It is advised
% that \verb|\\| be used to break the lines by hand as \TeX{} will
% probably not do what you want.
%
% When using this with {\tt tabbing} and {\tt list} (or anything
% that is made out of {\tt list}) put the \section's inside of
% the \verb|\begin{}|  and the \verb|\item|Eg.
% \begin{verbatim}
% \begin{trivlist}
% \item[]
% \section{foo}
% text
% \end{trivlist}
% \end{verbatim}
%
\def\boxed@sectiontitle#1{%
  % this macro may be called in a tabular.  Special code must be written
  % to accomodate this.  In LaTeX, a tabular is made out of hboxes.
  % TeX never goes into horizontal mode because of this; it only
  % gets into vertical mode and restricted horizontal mode.  Certain 
  % indenting problems must be handled because of this.  They
  % are delt with at the end of this routine.
  % It is also necessary to close the hbox that was created before
  % the \section and create a new one when this macro has ended.
  % This macro therefore simulates a \kill, so that any text before
  % the \section not be printed.  The proper use is therefore
  % ...
  % text\\
  % \section{foo}
  % more text\\
  % ...
  \ifx\\\@tabcr    % is this in a tabular? (this *should* work but is a cludge)
    \@stopfield    % the is the first part of a \kill
   \else
     \@@par      % This will end the previous paragraph if needed and
           % go into vertical mode.  If this was already in
           % vertical mode then the \par does nothing.

  \fi
  \begingroup
  \everypar={}%
  \def\par{\@@par}%
  \let\\=\@normalcr
  \addpenalty{\@secpenalty} % this would be a good place for a page break
                % \@secpenalty is what LaTeX uses before its
                % section's.  It happens to be -300
  \addvspace{\sectionskip}  % put in a bit of glue
  % The following hbox will be contributed to the page list without going
  % into horizontal mode.  Therefore, any \parindent's, \parshape's, \leftskip
  % will be ignored but \hoffset's are not.  The result is that the box will
  % only by \hoffset. This is what I want
  \hbox to 0pt{%
    \hss     % this is an llap.  In other words, this glue
         % will shrink by the width of the stuff in the vbox
         % (\sectionwidth) into the left margin and then
         % insert the contents of the vbox.
    \vtop to 0pt{% make a 0pt height paragraph, with the baseline at the
         % lined up with the baseline of the first box in the list
      \leftskip=0pt
      \hsize=\sectionwidth
      \textwidth=\sectionwidth
      \raggedright     % you don't want this filled out to the right margin
      \sectionfont
      #1\vss           % Go into horizontal mode; do the paragraph;
               % go into vertical mode; add some negative glue 
               % to give a box of 0pt height and depth
    }%
  }%
  \addpenalty{-\@secpenalty} % this would be a bad place for a page break
  \vskip-\baselineskip % when the next box is processed, baselineskip glue
               % glue will be added (the box has no depth because of
               % the \vss; therefore, we don't have to worry about
               % \lineskiplimit).  This -\baselineskip glue
               % is to undo this.  \nointerlineskip doesn't
               % work because the baseline of this line would be lined
               % up with the top of the top of the next box.  We
               % want the baselines lined up.
               %
               % It may have been possible to do this by forcing the
               % baseline of this box to be the top of the box but
               % then the interline skip between this box and the
               % previous box would be off as the baselines of the
               % this box (the one that being made above) and the
               % previous line would be separated by \baselineskip
               % (probably, it may be separted by the depth of the
               % previous box + \lineskip) but as the baseline of
               % this box has been moved to the top, the box's would
               % separted by to much glue.  The exact amount being
               % the height of this box.
  \endgroup
  \ifx\\\@tabcr   % is this in a tabular? (this *should* work but is a cludge)
    % this is the second part of the \kill; it starts the next tabbing line
    % Because this routine will never get into paragraph mode when used in
    % tabbing the \parskip that is discussed below will never be inserted.
    % Therefore it should not be negated as done below.
    \@startline
    \ignorespaces
  \else
    \vskip-\parskip    % The next thing to be contributed will be a paragraph.
               % Right before being contributed though a \vskip\parskip
               % will be inserted.  This is to negate it.
               %
               % I do consider this to be a bit of a cludge but
               % I can not find a way to write \unskipfutureskip
               % or a way to make TeX think that nothing has
               % been contributed to the page list.
  \fi
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is for sectiontitles that are entirely above the section text
%
\def\unboxed@sectiontitle#1{%
  \ifx\\\@tabcr % see boxed@sectiontitle for explation
    \@stopfield
   \else
     \@@par
  \fi
  \begingroup
  \everypar={}%
  \def\par{\@@par}%
  \def\\{ }
  \addpenalty{\@secpenalty}
  \addvspace{\sectionskip}
  \hbox to 0pt{\hss\hbox to \sectionwidth{\sectionfont#1\hss}}
  \addpenalty{-\@secpenalty} % this would be a bad place for a page break
  \endgroup
  \ifx\\\@tabcr   % see boxed@sectiontitle for explation
    \@startline
  \else
    \vskip-\parskip
  \fi
  \ignorespaces
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% There are two types of section headings:
% 1) the section heading is all on one line and directly
%    below it, is the body of the text
% 2) the section heading is entirely in the left margin
%    (possibly taking multiple lines) with the body of
%    the text next to it
%
\let\@@section\relax
\def\ds@overlapped{\ifx\@@section\relax\newsectionwidth{0.5in}\let
  \@@section\unboxed@sectiontitle\fi}
\def\ds@margin{\ifx\@@section\relax\newsectionwidth{1.3in}\let
  \@@section\boxed@sectiontitle\fi}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DEFAULTS: (some of them)
%
% centered name
% overlapped section titles
%
% format is:
%    title   employer
%    location    dates
%    body
% with everything in the left of its column

%\input article.sty

\if@line\ds@line\else\ds@centered\fi
\if@margin\ds@margin\else\ds@overlapped\fi


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% typeset resume all nice and pretty
%
\def\Resume{{R\'{e}sum\'{e}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% makes a line of width \textwidth starting at -\hoffset
%
\def\fullline{      % hrules only listen to \hoffset
  \nointerlineskip  % so I have this code     
  \moveleft\hoffset\vbox{\hrule width\textwidth} 
  \nointerlineskip
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% create a multiline box.
%
\def\@tablebox#1{\begin{tabular}[t]{@{}l@{\extracolsep{\fill}}}#1\end{tabular}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% use this to define your name
%
\def\name#1{\def\@name{#1}}

\def\@name{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% use this to define your address, this may be called more than once.
%
\let\@addressone\relax
\let\@addresstwo\relax

\def\address#1{
  \@ifundefined{@addressone}{\def\@addressone{#1}}{\def\@addresstwo{#1}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% if you want to print your name and address is a slightly
% different format than sugessted, then this can be used
% to place it exactly where you want
%
\def\opening{\def\@opening{}
  \begingroup
  \leftskip=-\hoffset        % I use leftskip to move things to the left as 
  \advance\textwidth\hoffset % changing hoffset doesn't work. But this
  \hsize=\textwidth      % doesn't really work as hboxes are rules
                 % are unaffeted
  \let\par=\@@par
  \parindent=0pt
  \parskip=0pt
  \print@name
  \endgroup
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% all of the resume goes in the resume environment
%
\newenvironment{resume}{\begingroup
               \@ifundefined{@opening}{\opening}{}
}{\endgroup}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% gives you a tabular environment with n equally spaced columns
% \begin{ncolumn}{#} ... \end{ncolumn}
%
% The p option of LaTeX is broken in all but the newest verion
% of latex.tex, this is how to fix it
%
\def\@endpbox{\par\egroup\hfil}
\let\@@endpbox=\@endpbox

\newdimen\@columnwidth    % the width of each column equal to
\def\ncolumn#1{%
  % \@columnwidth = \textwidth / #1
  \@columnwidth=\textwidth \divide\@columnwidth by #1
  \begin{tabular*}{\textwidth}[t]%
    {*{#1}{@{}p{\@columnwidth}@{\extracolsep{\fill}}}}
}

\def\endncolumn{\end{tabular*}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   \employer{text} defines employer to be text
%   \location{text} defines location to be text
%   \dates{text}    defines dates    to be text
%   \title{text}    defines title    to be text
%   \body
%

\def\employer#1{\def\@employer{\print@employer{#1}}}
\def\location#1{\def\@location{\print@location{#1}}}
\def\dates#1{\def\@dates{\print@dates{#1}}}
\def\title#1{\def\@title{\print@title{#1}}}

\let\l@justify\raggedright
\let\r@justify\raggedleft
\let\c@justify\centering


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \@format{name}{justify}
% will define \print@#1 to print it's one argument 
% justified according to #2 which can be
%     l = left
%     r = right
%     c = center
%
% eg.
%    \@format{employer}{c}
%    is the same as \def\print@employer#1{{\centering #1\par}}
%
\def\@format#1#2{%
  \expandafter\gdef\csname print@#1\endcsname##1{%
    {\csname#2@justify\endcsname##1\par}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% this is used to define how the position environment should
% formated.
%
% \begin{format} positioning text \end{format}
% where positioning text may be
%  \employer{pos}
%  \location{pos}
%  \dates{pos}
%  \title{pos}
%  \body        (for the body of the position environment)
%   where pos is 
%     l for left
%     r for right
%     c for center
% use \\ to break the line
% you don't have to use all of the options.
% on any one line, you should indicate what you want on that line
% and where it should go within its column.
% eg.
% the following prints the employer in the left with the location
% centered within that its column.  It then prints the date on the
% right.  Then it prints the body of the position environment. Then
% it prints the title centered within its column; as there is only
% one column here it is really just centered.
%
% \begin{format}
% \employer{l}\location{c}\\
% \dates{r}\\
% \body\\
% \title{c}\\
% \end{format}

\newcounter{numberofcolumns}
\newenvironment{format}{%
  \def\end@line@head{\append@tabular@head{tabular@text}\tabular@text={}%
    \c@numberofcolumns 0}
  \def\end@line@tail{\append@tabular@tail{tabular@text}\tabular@text={}%
    \c@numberofcolumns 0}
  \tabular@text={}
  \tabular@head={}
  \tabular@tail={}
  \c@numberofcolumns 0
  \let\\=\end@line@head
  \def\employer##1{\advance\c@numberofcolumns 1
           \@format{employer}{##1}
           \append@tabular@text{employer}}
  \def\location##1{\advance\c@numberofcolumns 1
           \@format{location}{##1}
           \append@tabular@text{location}}
  \def\dates##1{\advance\c@numberofcolumns 1
        \@format{dates}{##1}
        \append@tabular@text{dates}}
  \def\title##1{\advance\c@numberofcolumns 1
         \@format{title}{##1}
        \append@tabular@text{title}}
  \def\body{\iftoks\tabular@head\undefined@token\then
        \else
          \@append{\noexpand\\}\to\tabular@head
        \skotfi
        \let\\=\end@line@tail}}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%taken from page 378 of TeXbook but freely hacked
%
% appends the expansion of #1 to the token list #2

\def\@append#1\to#2{%
  \@ta=\expandafter{#1}%
  \xdef\@append@temp{\the#2\the\@ta}
  \global#2=\expandafter{\@append@temp}%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CHAA006%[email protected]
% texhax.88.078
% is used to see if two token lists are equal
% there must be a better way
%

\let \then = \empty
\def \iftoks #1#2\then #3\else #4\skotfi{
        \edef \1{\the #1}
        \edef \2{\the #2}
        \ifx \1\2\then #3\else #4\fi}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \append@tabular@text{command}
%
% appends command to the end of \tabular@text.
% NOTE: command MUST be a command but without the \
%   Eg. \append@tabular@text{relax}
%
% used to define \tabular@text for the tabular environment
% used by append@tabular@head and append@tabular@tail
%

\def\append@tabular@text#1{%
\iftoks\tabular@text\undefined@token\then
  \global\tabular@text=\expandafter{\csname @#1\endcsname}
\else
  \@append{&}\to\tabular@text
  \@append{\csname @#1\endcsname}\to\tabular@text
\skotfi
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% append@tabular@head
%
% appends command to the end of \tabular@text@head
% NOTE: command MUST be a command but without the \
%   Eg. \append@tabular@head{relax}
%
% used to define \tabular@head for the tabular environment
% used by the position environment
%
\def\append@tabular@head#1{%
  \ifnum\the\c@numberofcolumns=0\relax
  \else
    \iftoks\tabular@head\undefined@token\then
      \relax
    \else
      \@append{\noexpand\\}\to\tabular@head
      \@append{\noexpand\penalty-\@secpenalty}\to\tabular@head
    \skotfi
    \@append{\noexpand\begin{ncolumn}}\to\tabular@head
    \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@head
    \@append{\the\csname#1\endcsname}\to\tabular@head
    \@append{\noexpand\end{ncolumn}}\to\tabular@head
  \fi
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% append@tabular@tail
%
% appends command to the end of \tabular@text@htail
% NOTE: command MUST be a command but without the \
%   Eg. \append@tabular@tail{relax}
%
% used to define \tabular@tail for the tabular environment
% used by the position environment
%
\def\append@tabular@tail#1{%
  \ifnum\the\c@numberofcolumns=0\relax
  \else
    \iftoks\tabular@tail\undefined@token\then
    \else
      \@append{\noexpand\\}\to\tabular@tail
      \@append{\noexpand\penalty-\@secpenalty}\to\tabular@tail
    \skotfi
    \@append{\noexpand\begin{ncolumn}}\to\tabular@tail
    \@append{\expandafter{\the\c@numberofcolumns}}\to\tabular@tail
    \@append{\the\csname#1\endcsname}\to\tabular@tail
    \@append{\noexpand\end{ncolumn}}\to\tabular@tail
  \fi
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% put the actual job descriptions here
% \begin{postion} ... \end{position}
% in the ... describe the position.
% don't put the \dates \location etc in here. define them before hand
\newenvironment{position}%
  {%
   \begingroup
     \par
       \the\tabular@head
%     \addpenalty{-\@secpenalty}% bad place for a page break
     \penalty -\@secpenalty % bad place for a page break
     \penalty 10000
     \ignorespaces
  }{%
       \the\tabular@tail
%     \addpenalty{\@secpenalty}% good place for a page break
     \penalty \@secpenalty % good place for a page break
    \endgroup
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DEFAULTS: (the rest of them)
%
% centered name
% overlapped section titles
%
% format is:
%    title   employer
%    location    dates
%    body
% with everything in the left of its column

\@secpenalty = -500
\topmargin 0pt
\headheight 0pt
\headsep 0pt
\textheight 9in
\parindent 0pt
\topmargin 0in
\oddsidemargin 0pt
\evensidemargin 0pt
\marginparwidth 0pt
\parindent 0pt
\parskip \baselineskip
\setcounter{secnumdepth}{0}
\def\@listI{\leftmargin\leftmargini
\topsep 0pt 
\parskip 0pt
\partopsep 2pt plus 2pt
\parsep 2pt plus 2pt
\itemsep \parsep}

\pagestyle{empty}  % don't want page numbers

\begin{format}
\title{l}\employer{r}\\
\location{l}\dates{r}\\
\body\\
\end{format}

\let\section\@@section

这是一个显示此问题的小型 .tex 文件:



\documentclass[margin, 10pt]{res} 

\usepackage{helvet}
\usepackage{hyperref}
\usepackage{fancyhdr}


\setlength{\textwidth}{5.1in} 

\begin{document}

\moveleft.5\hoffset\centerline{\large\bf Ali Golbazi Mahdipour} 
 
\moveleft\hoffset\vbox{\hrule width\resumewidth height 1pt}\smallskip 
 
\moveleft.5\hoffset\centerline{Narmak} 
\moveleft.5\hoffset\centerline{Tehran, Iran}
\moveleft.5\hoffset\centerline{temp}
\moveleft.5\hoffset\centerline{temp}

\pagestyle{plain}


%----------------------------------------------------------------------------------------

\begin{resume}

%----------------------------------------------------------------------------------------
%   OBJECTIVE SECTION
%----------------------------------------------------------------------------------------
 %\pagestyle{myheadings}
%\markright{right head}

%\fancyfoot[OR]{\thepage}
%\fancyfoot[EL]{\thepage}
\renewcommand{\headrulewidth}{0pt} 
\section{OBJECTIVE}  

temp

%----------------------------------------------------------------------------------------
%   EDUCATION SECTION
%----------------------------------------------------------------------------------------

\section{EDUCATION}

{\sl Master of Science,} Business Management \\


{\sl Bachelor of Science,} Electrical Engineering - Telecommunications \\

 

\section{SOFTWARE \\ SKILLS} 

{\sl Languages \& Software:} 

 
 
\section{EXPERIENCE}

{\sl Contract Research Associate—Full-Time\hfill 2020-2022 } 
Neurobusiness Lab, Deparment of Business Administration and Engineering, School of Management, Economics, and Progress Engineering, Iran University of Science and Technology (IUST), Tehran, Iran

\begin{itemize} \itemsep -2pt % Reduce space between items
\item{temp}
\end{itemize}

{\sl Teaching Assistant—Part-Time} \hfill 2020-2022 \\
Neurobusiness Lab, Deparment of Business Administration and Engineering, School of Management, Economics, and Progress Engineering, Iran University of Science and Technology (IUST), Tehran, Iran
\begin{itemize} \itemsep -2pt % Reduce space between items
\item{temp}
\end{itemize}

{\sl Consumer Neuroscience Data Analyst—Full-Time} \hfill 2018-2020\\
Daj Scientific Group, Tehran, Iran 
\begin{itemize} 
\item{temp}
\end{itemize} 

{\sl Consumer Neuroscience Research Assistant—Part Time} \hfill 2017-2020\\

\begin{itemize} 
\item{temp}
\end{itemize} 


\section{PUBLICATIONS}
\begin{itemize}
\item{temp}

\end{itemize}
%----------------------------------------------------------------------------------------
%   COMMUNITY SERVICE SECTION
%---------------------------------------------------------------------------------------- 

\section{COURSES \\ AND WORKSHOPS}

temp

%----------------------------------------------------------------------------------------
%   EXTRA-CURRICULAR ACTIVITIES SECTION
%----------------------------------------------------------------------------------------


\end{resume}
\end{document}

在此处输入图片描述 我不知道这是否重要,但我正在使用 miktex 和 texworks。

答案1

您在示例文件中遗漏了fancyhdr定义。我将它们添加到了序言中,并且还添加了\fancyhfoffset[L]{\sectionwidth}使页脚也覆盖了带有章节标题的左边距。

\documentclass[margin, 10pt]{res} 

\usepackage{helvet}
\usepackage{hyperref}
\usepackage{fancyhdr}

\setlength{\textwidth}{5.1in} 

\pagestyle{fancy}
\thispagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyhfoffset[L]{\sectionwidth}
\renewcommand{\headrulewidth}{0pt} 

\begin{document}

\moveleft.5\hoffset\centerline{\large\bf Ali Golbazi Mahdipour} 
 
\moveleft\hoffset\vbox{\hrule width\resumewidth height 1pt}\smallskip 
 
\moveleft.5\hoffset\centerline{Narmak} 
\moveleft.5\hoffset\centerline{Tehran, Iran}
\moveleft.5\hoffset\centerline{temp}
\moveleft.5\hoffset\centerline{temp}

%\pagestyle{plain}


%----------------------------------------------------------------------------------------

\begin{resume}

%----------------------------------------------------------------------------------------
%   OBJECTIVE SECTION
%----------------------------------------------------------------------------------------

\section{OBJECTIVE}  

temp

%----------------------------------------------------------------------------------------
%   EDUCATION SECTION
%----------------------------------------------------------------------------------------

\section{EDUCATION}

{\sl Master of Science,} Business Management \\


{\sl Bachelor of Science,} Electrical Engineering - Telecommunications \\

 

\section{SOFTWARE \\ SKILLS} 

{\sl Languages \& Software:} 

 
 
\section{EXPERIENCE}

{\sl Contract Research Associate—Full-Time\hfill 2020-2022 } 
Neurobusiness Lab, Deparment of Business Administration and Engineering, School of Management, Economics, and Progress Engineering, Iran University of Science and Technology (IUST), Tehran, Iran

\begin{itemize} \itemsep -2pt % Reduce space between items
\item{temp}
\end{itemize}

{\sl Teaching Assistant—Part-Time} \hfill 2020-2022 \\
Neurobusiness Lab, Deparment of Business Administration and Engineering, School of Management, Economics, and Progress Engineering, Iran University of Science and Technology (IUST), Tehran, Iran
\begin{itemize} \itemsep -2pt % Reduce space between items
\item{temp}
\end{itemize}

{\sl Consumer Neuroscience Data Analyst—Full-Time} \hfill 2018-2020\\
Daj Scientific Group, Tehran, Iran 
\begin{itemize} 
\item{temp}
\end{itemize} 

{\sl Consumer Neuroscience Research Assistant—Part Time} \hfill 2017-2020\\

\begin{itemize} 
\item{temp}
\end{itemize} 


\section{PUBLICATIONS}
\begin{itemize}
\item{temp}

\end{itemize}
%----------------------------------------------------------------------------------------
%   COMMUNITY SERVICE SECTION
%---------------------------------------------------------------------------------------- 

\section{COURSES \\ AND WORKSHOPS}

temp

%----------------------------------------------------------------------------------------
%   EXTRA-CURRICULAR ACTIVITIES SECTION
%----------------------------------------------------------------------------------------


\end{resume}
\end{document}

相关内容