\vrule 错位

\vrule 错位

我一直在写论文,但有一个问题我似乎无法弄清楚为什么会发生这种情况:

以下是我论文样式表中的一段代码。这定义了我的签名页的第一个读取器和第二个读取器。我还附上了问题 PDF 的输出快照。有人能告诉我为什么会发生这种情况吗?

% Signature page
\def\signaturepage{%
      \newpage
      \thispagestyle{empty} % KS 2009
      \begin{center}
        \Large\uppercase\expandafter{\@title}
      \end{center}
      \vspace{.4in}
      \centerline{\shortstack[c]{\vrule width 2in height 0.4pt\\
           \@author}}
      \vfill
%      \vspace{0.15in}
%      \hspace{0in} \rm APPROVED:
      \leftline{ Approved:} % KS 2009
      \vspace{0.15in}
      \rightline{\shortstack[l]{\vrule width 3in height 0.4pt\\ \@adviser}}
 %     \vspace{0.15in}
       \vfill

      \leftline{Committee Members:} % KS 2009
 %    \vspace{0.375in}
     \vspace{0.15in}
      \rightline{\shortstack[l]{\vrule width 3in height 0.4pt\\ \@firstreader}}
  %    \vspace{.375in}
      \vfill

      \rightline{\shortstack[l]{\vrule width 3in height 0.4pt\\ \@secondreader}}
  %    \vspace{.375in}
      \vfill

这是我编译上述代码时得到的结果。

在此处输入图片描述

答案1

固定3in规则宽度很好,但也是这里的问题。也许你可以\rightline通过使用固定宽度的框(类似tabular)来调整你的用法。这样,签名行下面的内容将根据需要换行。我已将其定义\signatureline为宽度.6\linewidth,根据需要将其内容向右推齐:

在此处输入图片描述

\documentclass{article}
\newcommand{\signatureline}[1]{%
  \begin{tabular}{@{}p{.6\linewidth}@{}}
    \hline \\[-.5\normalbaselineskip] #1
  \end{tabular}
}
\begin{document}
\noindent Approved:\par%
\vspace{0.15in}
\null \hfill \signatureline{Advisor\\A.\ B.\ Coverage\\Dept.\ of Electrical and Computer Engineering}
\vfill

\noindent Committee Members:\par%
\vspace{0.15in}
\noindent \hfill \signatureline{First Reader\\Dept.\ of Electrical and Computer Engineering}
\vfill

\noindent \hfill \signatureline{Second Reader\\Dept.\ of Physics}
\vfill

\end{document}

我保持其他间距不变,但我也会对它们进行调整。

答案2

\rightline会将其内容推到页面的右侧。因此,你的问题不是第二个读者的行移得太远了正确的,但你的第一的读者和委员会主席被推左边有点,因为他们的部门隶属关系行长度超过 3 英寸。您可以修改模板,以便\vrule width 3in用足够宽的 替换\vrule(通过反复试验确定),或者您可以在隶属关系文本中插入手动换行符,例如Dept. of Electrical and\\Computer Engineering。或者使用缩写,我想,这取决于是否合适。

答案3

LaTeX 社区此问题已在本主题中得到解决:\vrule 错位

公认的解决方案包含两种方法:

  • 递归修补\signaturepage到所需深度以获得更广泛的规则:

    \usepackage{etoolbox}
    \newcommand*{\patch}[1]{%
      \patchcmd{\signaturepage}{\vrule width 3in}{\vrule width 3.5in}{#1}{}}
    \patch{\patch{\patch{}}}
    
  • 缩短条目或为较宽的文本引入换行符,例如

    \firstreader{E. Joe Charlson, Professor\\ Dept. of Electrical and\\ Computer Engineering}
    

相关内容