向 res 类文档添加两个以上的地址行

向 res 类文档添加两个以上的地址行

我正在使用res9b模板,我正在尝试弄清楚如何添加另一行地址。我尝试使用“\\”,但输出是逗号分隔的列表,而不是换行符。

答案1

将地址内容放入 中\parbox{<width>}{<content>}是一种快速破解方法。类似下面的方法可能会有所帮助:

\address{\parbox{0.4\linewidth}{%
        1985  Storm Lane, Troy, NY 12180\\ %
        1985  Storm Lane, Troy, NY 12180}
    }

在此处输入图片描述

答案2

line课程选项下res\\被重新定义为,。这可以在查看 的定义时看到\@linename,用于在选项下打印简历标题line

\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}

还请注意,\@addressone(您使用 存储的第一个地址\address)设置在一个框中,该框不会\\按您认为的方式进行解析。我们需要做更多的工作来恢复tabular-like 定义。

实际的“标题打印宏”\print@name是在将文档加载到时设置的\@linename,因此任何更改都应在上执行\print@name。您可以\print@name使用以下方法进行修补etoolbox或直接使用重新定义)并删除此重新定义的范围。使用etoolbox,将以下内容添加到您的序言中:

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\print@name}{\endgroup}{\relax}{}{} % Remove scope
\patchcmd{\print@name}{\@ifundefined}{\endgroup\@ifundefined}{}{}% Insert end-of-scope earlier
\patchcmd{\print@name}{\@addressone}{\@tablebox{\@addressone}}{}{}% Insert \@addressone in tabular (box)
\makeatother

在此处输入图片描述

相关内容