信函类签名的缩进

信函类签名的缩进

我正在写一封信维基百科模板。这封信将打印在一张已经包含地址的官方纸上。所以我想我可以省略该\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}

相关内容