如何将附件列表放置在与结束相同的高度?

如何将附件列表放置在与结束相同的高度?

我正在使用 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}

导致

这表明“亲切的问候”这一行与“附件”这一行不一致(使用minipages 位置的可选参数不会使情况变得更好)。

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}

在此处输入图片描述

但在这种情况下,附件可能会进入底部边缘,甚至低于其边缘。

相关内容