根据地址中的行数计算 parskip

根据地址中的行数计算 parskip

我对 LaTeX 非常陌生。使用 letter 类,我需要将一些文本的开头对齐到页面上的特定垂直位置 - 信纸上的第一条折叠线,以便文本全部位于 z 形折叠内。

我已设法使用以下命令来实现此目的,如果地址有 3 行,则效果很好,但是,如果地址只有 2 行,我想跳过一个额外的段落以将下一段文本放在正确的位置。基本上,我需要某种命令,相当于“使地址和后面的垂直空间等于 5 行”。作为新手,我不确定要搜索哪些术语。

% the opening
\makeatletter
\renewcommand{\opening}[1]{\thispagestyle{firstpage}%
\xphvmn
\@letterdate\par
\@ourfile\par
{\raggedright\toname\\\toaddress\par}%
\vspace{2\parskip}% <-- if toaddress has 3 lines, this should be 2, if 2 lines then skip equivalent of 3 lines (to make up for the one less line)
\ifthenelse{\equal{\@subject}{}}{}{\@subject\par}
\xphvmn
\vspace{2\parskip}%
}
\makeatother

答案1

感谢 TeXnician。最后得到:

% the opening
\makeatletter
\renewcommand{\opening}[1]{\thispagestyle{firstpage}%
\xphvmn
\@letterdate\par
\@ourfile\\
\begin{minipage}[c][2.0in]{\textwidth}
\raggedright\toname\\\toaddress
\end{minipage}
%\vspace{2\parskip}% <-- if address has 3 lines, this should be 2, if 2 lines then 3
\ifthenelse{\equal{\@subject}{}}{}{\raggedright\@subject\par}
\xphvmn
\vspace{2\parskip}%
}
\makeatother

相关内容