![轻松对齐 LaTeX 信件中的“发件人”和“收件人”地址字段](https://linux22.com/image/242050/%E8%BD%BB%E6%9D%BE%E5%AF%B9%E9%BD%90%20LaTeX%20%E4%BF%A1%E4%BB%B6%E4%B8%AD%E7%9A%84%E2%80%9C%E5%8F%91%E4%BB%B6%E4%BA%BA%E2%80%9D%E5%92%8C%E2%80%9C%E6%94%B6%E4%BB%B6%E4%BA%BA%E2%80%9D%E5%9C%B0%E5%9D%80%E5%AD%97%E6%AE%B5.png)
当您在 LaTeX 中写信时,您可以使用块添加您的地址\address
,同时您也可以在语句后添加收件人地址\begin{letter}
作为额外参数。但是,在这种情况下,您的地址将始终位于收件人地址上方。
有没有办法告诉 LaTeX 我希望我的地址与收件人的地址在同一行开始?或者,更一般地说,有没有办法以更灵活的方式控制这些字段与页面顶部的距离?
附加问题:有没有办法告诉 LaTeX 我不想在我的地址和信件日期之间有多余的空白行?(或者,更一般地说:微调发件人地址和日期字段之间的距离?)
答案1
您可以通过重新定义\opening
命令来生成以下内容:
我还删除了该日期之前的空白行。如果您想调整日期之前的这个空格,请替换中的值\fromaddress\\[0.0em]
:
\documentclass{letter}
\usepackage{lipsum}% for dummy text
\makeatletter
\renewcommand*{\opening}[1]{\ifx\@empty\fromaddress%
\thispagestyle{firstpage}%
{\raggedleft\@date\par}%
\else% home address
\thispagestyle{empty}%
{%
\begin{minipage}[c]{0.50\linewidth}
\toname \\
\toaddress
\end{minipage}
\begin{minipage}[c]{0.45\linewidth}
\raggedleft\begin{tabular}{l@{}}\ignorespaces
\fromaddress\\[0.0em]% replace 0.0em with space desired before date
\@date
\end{tabular}
\end{minipage}
\par
}%
\fi
\vspace{2\parskip}%
#1\par\nobreak}
\makeatother
\address{123 Main Street \\ Anytown \\ USA 90210}
\begin{document}
\begin{letter}{Siska Adam \\ 123 Some Street \\ TeXLand \\ IP3 5RT}
\opening{Dear Sir or Madam:}
\lipsum[1]
\end{letter}
\end{document}
或者,由于您有最后期限,您可以手动完成此操作:
\documentclass{letter}
\usepackage{lipsum}
\begin{document}
\begin{letter}{}
\begin{tabular}{@{}p{3.0in}l}
Siska Adam & Mr. T\\
123 Some Street & 123 Main Street\\
TeXLand & Anytown, USA 90210\\
IP3 5RT & \today
\end{tabular}
\bigskip
Dear Sir or Madam:
\lipsum[1]
\end{letter}
\end{document}
看如何在页面的左侧和右侧插入地址块?了解有关如何手动执行此操作的其他选项。