将收件人的地址移动到与信封开口相匹配

将收件人的地址移动到与信封开口相匹配

我有以下瑞士式信件布局,我希望能够移动收件人段落以匹配信封的开口。我希望将地点和日期水平滑动以与收件人段落对齐。

我尝试了很多方法,但由于我是 LaTex 新手,我仍然不明白它的大多数技巧。例如,我不明白为什么在下面的代码中,我的名字和日期等内容在\setkomavar之前定义\begin{document},而收件人的段落却在后面的文档部分中定义...

我怎样才能满足我的需求?

提前致谢。

\documentclass[
  SN,% lco file for swiss letters (SN 010 130))
  refline=dateleft,
  firstfoot=false,
  enlargefirstpage,
  backaddress=false,
  foldmarks=false,
  parskip=half-
  ]{scrlttr2}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[french]{babel}

\setkomavar{fromname}{John Doe}
\setkomavar{fromaddress}{My Street \\ My City \\ Suisse}
% adapter ces deux lignes :
\setkomavar{date}{Vevey, \today}
\setkomavar{subject}{Titre de la lettre}
\setkomafont{title}{\bfseries\normalsize\raggedright}

\makeatletter
  \@setplength{firstheadwidth}{\textwidth}
\makeatother

\renewcommand\raggedsignature{\raggedright}

\usepackage{blindtext}% dummy text
\begin{document}
  \begin{letter}{Compagny\\Contact person\\Street\\City}
    \opening{Dear Mr. Forexample,}
    \blindtext

    \blindtext
    \closing{Meilleures pensées}
    %\encl{enclosures} % pièces jointes
    %\cc{other recipients}
  \end{letter}
\end{document}

在此处输入图片描述

答案1

要可视化地址字段和参考线的位置,您可以使用

% visualize positions of address and refline
\LoadLetterOption{visualize}
\showfields{address,refline}

有了问题中的 MWE,你将得到

在此处输入图片描述

SN.lco将地址字段的伪长度设置为

\@setplength{toaddrvpos}{%
  45mm}
\@setplength{toaddrhpos}{%
  -8mm}
\@setplength{toaddrwidth}{%
  90mm}
\@setplength{toaddrheight}{%
  45mm}

因此地址栏距离顶部 45 毫米,距离纸张左边框 8 毫米。要移动地址栏,您可以使用

\@addtoplength{toaddrhpos}{<horizontal shift>}
\@addtoplength{toaddrvpos}{<vertical shift>}

有可能

\@addtoplength{reflinevpos}{<vertical shift>}

与 相同<vertical shift>

为了将日期与地址字段对齐,您必须更改参考行的伪长度:

\@setplength{refwidth}{\useplength{toaddrwidth}}
\@setplength{refhpos}{\paperwidth}
\@addtoplength{refhpos}{\useplength{toaddrhpos}}
\@addtoplength[-]{refhpos}{\useplength{toaddrwidth}}

例子:

\documentclass[
  SN,% lco file for swiss letters (SN 010 130))
  refline=dateleft,
  firstfoot=false,
  enlargefirstpage,
  backaddress=false,
  foldmarks=false,
  parskip=half-
  ]{scrlttr2}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[french]{babel}

\setkomavar{fromname}{John Doe}
\setkomavar{fromaddress}{My Street \\ My City \\ Suisse}
% adapter ces deux lignes :
\setkomavar{date}{Vevey, \today}
\setkomavar{subject}{Titre de la lettre}
\setkomafont{title}{\bfseries\normalsize\raggedright}

% visualize positions of address and refline
\LoadLetterOption{visualize}
\showfields{address,refline}

\makeatletter
  \@setplength{firstheadwidth}{\textwidth}

% shift address
  \@addtoplength{toaddrhpos}{-1cm}
  \@addtoplength{toaddrvpos}{-1.25cm}
  %\@addtoplength{refvpos}{-1.25cm}

% align refline with address horizentally
  \@setplength{refwidth}{\useplength{toaddrwidth}}
  \@setplength{refhpos}{\paperwidth}
  \@addtoplength{refhpos}{\useplength{toaddrhpos}}
  \@addtoplength[-]{refhpos}{\useplength{toaddrwidth}}
%
\makeatother

\renewcommand\raggedsignature{\raggedright}

\usepackage{blindtext}% dummy text
\begin{document}
  \begin{letter}{Compagny\\Contact person\\Street\\City}
    \opening{Dear Mr. Forexample,}
    \blindtext

    \blindtext
    \closing{Meilleures pensées}
  \end{letter}
\end{document}

结果:

在此处输入图片描述


KOMA-Script 版本 3.26(当前版本为 3.25)将引入命令\setplength\addtoplength来替换文档代码中的\@setplength和。\@addtoplength


补充说明:您可以为单个字母本地设置 KOMA-Script 变量date,例如subject。然后您必须使用\setkomavar{subject}{<subject of the letter>} between\begin{letter} and\opening`。

相关内容