Latex 乳胶字母:从地址左对齐

Latex 乳胶字母:从地址左对齐,latex,alignment,letter,Latex,Alignment,Letter,这是我第一次用乳胶写信。我正在使用字母类。当我使用: \address{100 From Address \\ City, State \\ Pin} “发件人”地址将右对齐。有没有办法让这个左对齐。我要找的信的格式是:发件人地址左对齐,日期左对齐,收件人地址左对齐,然后是开头和正文,最后签名左对齐 我通过使用:\longindentation=0pt成功地使签名左对齐,其余的项目正确对齐-它只是右对齐的发件人地址。我假设“左对齐”是指您希望地址块位于页面的左边缘,因为块的各行是左对齐的,但块

这是我第一次用乳胶写信。我正在使用字母类。当我使用:

\address{100 From Address \\ City, State \\ Pin}
“发件人”地址将右对齐。有没有办法让这个左对齐。我要找的信的格式是:发件人地址左对齐,日期左对齐,收件人地址左对齐,然后是开头和正文,最后签名左对齐

我通过使用:
\longindentation=0pt
成功地使签名左对齐,其余的项目正确对齐-它只是右对齐的发件人地址。

我假设“左对齐”是指您希望地址块位于页面的左边缘,因为块的各行是左对齐的,但块位于右边距

\makeatletter
\def\opening#1{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\raggedleft\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    {\noindent\let\\\cr\halign{##\hfil\cr\ignorespaces
      \fromaddress \cr\noalign{\kern 2\parskip}%
      \@date\cr}\par}%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}
\makeatother
我发现调整LaTeX样式的最佳方法是在LaTeX源中定义原始样式,将其复制到样式文件中,然后进行修改。在本例中,原始源是letter.cls文件,我通过查找\address宏来跟踪地址格式,该宏指向\fromaddress宏,然后指向\opening宏。原文是:


\newcommand*{\opening}[1]{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\raggedleft\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    {\raggedleft\begin{tabular}{l@{}}\ignorespaces
      \fromaddress \\*[2\parskip]%
      \@date \end{tabular}\par}%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}
删除\raggedleft宏会将地址块移到右侧,但会留下一些额外的间距,因此我也删除了表格环境


\renewcommand*{\opening}[1]{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    \ignorespaces%
      \fromaddress \\*[2\parskip]%
      \@date \par%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}
此\renewcommand调用需要放在.sty样式的文件中,因为它使用包含@字符的宏。(我刚刚看到了Alexey Malistov的答案;另一种选择是\makeatletter和\makeatother宏。)


引入新样式。

答案是使用全大写字母样式-所有内容都左对齐。在LaTeX中,这就是block.sty,您可能需要安装它。你可以在这里找到它。用法非常简单:

\使用包{block}


如果在地址中使用某些宏,则此操作无效。宏失败的例子有
texttt
url
href
nolinkurl
@Tommy McGuire的解决方案确实适应了这些宏。我知道这个答案很久以前就有了,但接下来的问题是:这个新的“myletter.sty”文件中是否只包含您上面粘贴的文本(以\renewcommand*开头),还是复制/粘贴整个“letter.cls”文本,然后编辑包含您粘贴的文本的部分,并将letter.cls的所有其他部分保持在该编辑的上方和下方?2021:LaTeX在使用
包时抱怨宏未定义,
\footline

\usepackage{myletter}