我正在写一封信维基百科模板。这封信将打印在一张已经包含地址的官方纸上。所以我想我可以省略该\address
命令。出于某种奇怪的原因,签名不会像网页上显示的那样缩进。我试过这个\longindentation=20pt
命令,无论我更改什么数字,结尾和签名都与正文的左边距对齐,不会缩进。我能够通过命令让它工作\address{\phantom{a}}
,但这不应该是它应该工作的方式(是的,我试过了\address{}
,但那不起作用)。有没有更好的解决方案?
无论如何,省略\address
命令有什么问题?
编辑:这就是我正在做的事情。
----------------------------------------------------------------------------------
\documentclass[11pt]{letter}
\signature{James Bond}
%\address{\phantom{i}}
%\longindentation=0pt
\begin{document}
\begin{letter}{}
\opening{To whom it may concern:}
The body of the letter goes on here.
\closing{Yours sincerely,}
\end{letter}
\end{document}
------------------------------------------------------------------------------
目前,如果没有 address 命令,结束和签名将不会缩进。但是,如果我们取消注释该\address
命令,它们就会缩进,如 Wikibook LaTeX 示例中所示。
答案1
明显的“条件缩进”的原因源于以下源代码\closing
:
\newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}%
\stopbreaks
\noindent
\ifx\@empty\fromaddress\else
\hspace*{\longindentation}\fi
\parbox{\indentedwidth}{\raggedright
\ignorespaces #1\\[6\medskipamount]%
\ifx\@empty\fromsig
\fromname
\else \fromsig \fi\strut}%
\par}
仅当非空\longindentation
时,才会执行的缩进。并且,在使用 时定义:\fromaddress
\fromaddress
\address
\newcommand*{\address}[1]{\def\fromaddress{#1}}
因此,为了使缩进正常工作(无论出于何种原因),您需要在 中添加一些内容\fromaddress
。使用\def\fromaddress{\null}
也同样有效。
答案2
你也可以放
\longindentation=0pt
在序言中(即之前\begin{document})
)。
答案3
您可以按如下方式修补:
\documentclass[11pt]{letter}
%\address{\phantom{i}}
\signature{James Bond}
\makeatletter
\renewcommand{\closing}[1]{\par\nobreak\vspace{\parskip}%
\stopbreaks
\noindent
% \ifx\@empty\fromaddress\else
\hspace*{\longindentation}
\parbox{\indentedwidth}{\raggedright
\ignorespaces #1\\[6\medskipamount]%
\ifx\@empty\fromsig
\fromname
\else \fromsig \fi\strut}%
\par}
\begin{document}
\begin{letter}{}
\opening{To whom it may concern:}
The body of the letter goes on here.
\closing{Yours sincerely,}
\end{letter}
\end{document}