我正在使用 KOMA-scripts 类写一封信scrlttr2
。我想在结尾处添加一个附件列表,并且我希望该列表与结尾的高度相同,但位于文档的右侧。如下所示:
Kind regards, Attachments:
* Attachment one
* Attachment two
My Name
似乎无法将其放入\closing
表格中。有什么方法可以实现吗?
答案1
您可以使用minipage
代替表格,例如:
\begin{minipage}{.5\textwidth}
\closing{Kind regards,}
\end{minipage}%
\begin{minipage}{.5\textwidth}
Attachments
Att 1\\
Att 2
\end{minipage}
答案2
将\closing
命令放在一个命令中minipage
,将附件放到另一个命令中不是通常会产生所需的对齐,如以下示例所示:
\documentclass{scrlttr2}
\begin{document}
\begin{minipage}{.5\textwidth}
\closing{Kind regards,}
\end{minipage}%
\begin{minipage}{.5\textwidth}
Attachments\\
Att 1\\
Att 2\\
Att 3\\
Att 4
\end{minipage}
\end{document}
导致
这表明“亲切的问候”这一行与“附件”这一行不一致(使用minipage
s 位置的可选参数不会使情况变得更好)。
minipage
一种可能的解决方案是在命令中使用s \closing
:
\documentclass{scrlttr2}
\begin{document}
\closing{
\parbox{\textwidth}{\begin{minipage}[t]{.5\textwidth}
Kind regards,
\end{minipage}%
\begin{minipage}[t]{.5\textwidth}
Attachments\\
Att 1\\
Att 2\\
Att 3\\
Att 4
\end{minipage}
}}
\end{document}
结果:
编辑:以及对签名必要的修改:
\documentclass{scrlttr2}
\setkomavar{signature}{\hspace*{1.5em}My Name}
\begin{document}
\closing{\raggedright
\parbox{\textwidth}{\begin{minipage}[t]{.5\textwidth}
Kind regards,
\end{minipage}%
\begin{minipage}[t]{.5\textwidth}
Attachments\\
Att 1\\
Att 2\\
Att 3\\
Att 4
\end{minipage}
}}
\end{document}
答案3
我将修补\closing
以添加新的附件块,例如使用tabular
:
\documentclass{scrlttr2}
\usepackage{mwe}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\closing}{%
\parbox{\@tempdima}{\raggedsignature\strut\ignorespaces
#1\ifhmode\unskip\strut\\[\useplength{sigbeforevskip}]
\else\vskip \useplength{sigbeforevskip}\fi
\strut\ignorespaces
\usekomavar{signature}\ifhmode\unskip\strut\fi}%
}{%
\parbox[t]{\@tempdima}{\raggedsignature\strut\ignorespaces
#1\ifhmode\unskip\strut\\[\useplength{sigbeforevskip}]
\else\vskip \useplength{sigbeforevskip}\fi
\strut\ignorespaces
\usekomavar{signature}\ifhmode\unskip\strut\fi}%
\hfill
\begin{tabular}[t]{@{}l@{}}
\usekomavar*{attachments}\\
\usekomavar{attachments}
\end{tabular}
\par
\nobreak\vskip\baselineskip
}{}{}
\makeatother
\let\raggedsignature\raggedright
\newkomavar[Attachments]{attachments}
\begin{document}
\setkomavar{attachments}{Att 1\\Att 2\\Att 3\\Att 4}
\begin{letter}{You\\There}
\opening{Hello,}
\blindtext
\closing{Kind regards,}
\end{letter}
\end{document}
如果您不希望附件块右对齐,您可以更改\hfill
之前的tabular
。您甚至可以定义一个新的伪长度以使距离可配置。
请注意,我不仅添加了,tabular
而且还更改了\parbox
以使其顶部对齐。
但请注意,上面的补丁将签名向下移动(正如 Gonzalo 的答案一样)。您可以通过添加\smash
(此处没有更改\raggedsignature
以查看此差异)来避免这种情况:
\documentclass{scrlttr2}
\usepackage{mwe}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\closing}{%
\parbox{\@tempdima}{\raggedsignature\strut\ignorespaces
#1\ifhmode\unskip\strut\\[\useplength{sigbeforevskip}]
\else\vskip \useplength{sigbeforevskip}\fi
\strut\ignorespaces
\usekomavar{signature}\ifhmode\unskip\strut\fi}%
}{%
\parbox[t]{\@tempdima}{\raggedsignature\strut\ignorespaces
#1\ifhmode\unskip\strut\\[\useplength{sigbeforevskip}]
\else\vskip \useplength{sigbeforevskip}\fi
\strut\ignorespaces
\usekomavar{signature}\ifhmode\unskip\strut\fi}%
\hfill
\smash{\begin{tabular}[t]{@{\textbullet\enskip}l@{}}
\multicolumn1{@{}l@{}}{\usekomavar*{attachments}}\\
\usekomavar{attachments}
\end{tabular}}%
\par
\nobreak\vskip\baselineskip
}{}{}
\makeatother
\newkomavar[Attachments]{attachments}
\begin{document}
\setkomavar{signature}{It's me}
\setkomavar{attachments}{Att 1\\Att 2\\Att 3\\Att 4}
\begin{letter}{You\\There}
\opening{Hello,}
\blindtext
\closing{Kind regards,}
\end{letter}
\end{document}
但在这种情况下,附件可能会进入底部边缘,甚至低于其边缘。