scrlttr2 更改发件人地址和电子邮件/电话之间的垂直间距

scrlttr2 更改发件人地址和电子邮件/电话之间的垂直间距

是否可以控制 scrlttr2 的发送方块中不同元素之间的垂直空间,即增加地址(街道 + 城镇)和以下元素(电子邮件 + 电话 + 网址 +...)之间的空间?

\documentclass[
    fromphone=on,
    fromemail=on]{scrlttr2} 

\setkomavar{fromname}{name}      
\setkomavar{fromaddress}{street\\ town}
// CONTROL SPACE BETWEEN THESE ELEMENTS
\setkomavar{fromphone}{phone}
\setkomavar{fromemail}{mail}

\begin{document}
 \begin{letter}{name\\ street\\ town}       
  \opening{Hello}
  some text
  \end{letter}
\end{document}

答案1

您可以通过修补 KOMA-script 的内部来实现这一点。如果您喜欢冒险,也可以放置文本(我甚至使用了颜色)。但请保持理智,不要这样做。

请注意,空间太大,并且电话号码印在接收器行中。

\documentclass[
    fromphone=on,
fromemail=on]{scrlttr2} 

\setkomavar{fromname}{name}      
\setkomavar{fromaddress}{street\\ town}
\setkomavar{fromphone}{phone}
\setkomavar{fromemail}{mail}
\usepackage{xcolor}
\usepackage{etoolbox}
%\tracingpatches%for debugging
\makeatletter
\patchcmd{\@gen@firsthead}{\if@phone\\}{\if@phone\\[\baselineskip]}{}{}
\patchcmd{\@gen@firsthead}{\if@email\\}{\if@email\\\textcolor{blue}{You can place text}}{}{}
\makeatother

\begin{document}
\begin{letter}{name\\ street\\ town}       
    \opening{Hello}
    some text
\end{letter}
\end{document}

托比亚斯迪茨Scrlttr2

OP托拜厄斯·迪茨让我意识到(并提供了替代解决方案),如果选择另一种对齐方式,则上述解决方案不起作用,因为etoolbox仅替换替换文本的第一次出现。 包regexpatch由我们尊敬的成员打包埃格尔来帮忙。
要替换每个出现的内容,请使用带星号的变体xpatchcmd

\usepackage{regexpatch}
\makeatletter
%\tracingxpatches% for debugging
\xpatchcmd*{\@gen@firsthead}{\if@phone\\}{\if@phone\\[\baselineskip]}{}{}
\xpatchcmd*{\@gen@firsthead}{\if@email\\}{\if@email\\\textcolor{blue}{You can place text}}{}{}
\makeatother

相关内容