LaTeX 中信件的页码和地址格式

LaTeX 中信件的页码和地址格式

我最近不再使用letter文档类来写求职信,因为我想在格式方面有更多创作自由,也想在 LaTeX 格式方面做些小练习。我的模板快完成了,但我有两个小问题。

  1. 有没有办法隐藏单页文档的页码,但如果我的信件延伸到第二页,则允许显示页码(无需手动编译和检查)?还有,
  2. 有没有办法将顶部的返回地址最右边与主体最右边的部分对齐?我通常会在编译后手动执行此操作,但由于我喜欢在其中输入日期,因此长度会不断变化。如果这有点模糊,这里有一个 MWE(使用表格,这是我得到的最接近的):

    \documentclass{article}
    
    \begin{document}
    \begin{minipage}{\textwidth}
    \hfill\begin{tabular}{l}
    a) Return address\\
    b) Here's a short line\\
    c) Here's a slightly longer line
    \end{tabular}\\
    \end{minipage}\
    \noindent Here's a really long bit of text, to show where the line breaks are normally, and to show that at the moment, they don't line up. The end of the line labelled c) should align with the line breaks in this body of texts, and the start of line a) and b) should align with the start of line c).
    
    \end{document}
    

答案1

  1. 由于您的文档看起来相当简单(不包含figures 或tables 等浮动环境),您可以使用lastpage包裹获取文档最后一页的值。refcount是另一个包,它提供将引用(包括页面引用)转换为计数器的方法,以便人们可以检查其值或条件。

    具体来说,我会在您的文档序言中使用以下内容:

    \usepackage{lastpage,refcount}% http://ctan.org/pkg/{lastpage,refcount}
    \newcounter{lastpage}
    \AtBeginDocument{%
      \setcounterpageref{lastpage}{LastPage}%
      \ifnum\value{lastpage}=1\thispagestyle{empty}\fi%
    }
    

    lastpage包定义了引用LastPage。这是使用 提取的refcount\setcounterpageref并存储在新创建的计数器 中lastpage。然后,\AtBeginDocument我们检查 的值是否lastpage为 1,并相应地设置页面样式。否则使用默认页面样式(plain在本例中)。

    我们需要设置并检查lastpage \AtBeginDocument,因为只在前导码末尾读取.aux带有引用的文件,在此之前未定义。LastPageLastPage

    使用此方法需要您至少编译文档两次。第一次将正确的页面引用写入文件.aux,第二次从中读取更新值。

  2. Atabular必然会在列周围插入一些间距。这是由长度\tabcolsep6pt单位为article,在其他文档类中可能会有所不同)。您可以使用列规范来覆盖右侧列分隔l@{}

    具体来说,你的tabular定义可能如下所示:

    \begin{tabular}{l@{}}
    %...
    \end{tabular}
    

以下最小示例强调了上述两点。

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{lastpage,refcount}% http://ctan.org/pkg/{lastpage,refcount}
\newcounter{lastpage}
\AtBeginDocument{%
  \setcounterpageref{lastpage}{LastPage}%
  \ifnum\value{lastpage}=1\thispagestyle{empty}\fi%
}
\begin{document}
\null\hfill\begin{tabular}{l@{}}
a) Return address\\
b) Here's a short line\\
c) Here's a slightly longer line
\end{tabular}

\bigskip
\lipsum[1-4]

\end{document}

上面的例子中,使用\lipsum[1-9]来查看页面样式变化的效果。记得编译两次

lipsum包裹仅提供虚拟文本,乱数风格。

相关内容