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}