我正在尝试将法式信件的签名与收件人地址对齐。
我可以使用非常好的信函正如我所提到的那样上一个问题但我需要scrlttr2
重用 org-mode koma 导出后端。
我尝试使用以下命令设置位置:
测试 0
\makeatletter
\@setplength{sigindent}{-\useplength{refhpos}+\useplength{toaddrhpos}}}
\makeatother
测试 1
\setkomavar{signature}{Chef Abraracoursix,\\Un chef à toujours bras long.}
测试 2
\setkomavar{signature}{\hspace{26em}\includegraphics[width=2.5cm]
{example-image}}
测试 3
\setkomavar{signature}{\hspace{26em}
\begin{minipage}[t]{7cm}
{Chef Abraracoursix,\hfill \\Un chef à toujours bras long.}
\end{minipage}}
但是签名粘在了左边。这是我的完整代码和我想要的结果。
% Created 2019-04-08 lun. 11:20
% Intended LaTeX compiler: pdflatex
\documentclass{scrlttr2}
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
% \usepackage{showframe} % to show the page boundaries from https://tex.stackexchange.com/questions/298246/signatures-side-by-side
% \usepackage{geometry}
% \geometry{verbose,a4paper,lmargin=3cm,rmargin=3cm}
\LoadLetterOption{visualize}
\showfields{head,foot,address,location,refline}
\LoadLetterOption{NF}
\renewcaptionname{french}{\subjectname}{Objet}
\renewcaptionname{french}{\ccname}{C.c.}
\KOMAoption{
,foldmarks=false
,refline=nodate
,subject=titled
,fromemail=false
,fromlogo=false
,fromphone=false
,fromurl=false
,backaddress=false
,foldmarks=false
}
% from name
\setkomavar{fromname}{Chef Abraracoursix}
\setkomafont{fromname}{\scshape}
%%%%%%%%%%%%%%%% HERE %%%%%%%%%%%%%%%%
% signature
%%%% test 1
% \setkomavar{signature}{Chef Abraracoursix,\\Un chef à toujours bras long.}
%%%% test 2
% \setkomavar{signature}{\hspace{26em}\includegraphics[width=2.5cm]{example-image}}% <- changed
%%%% test 3
% \setkomavar{signature}{\hspace{26em}
% \begin{minipage}[t]{7cm}
% {Chef Abraracoursix,\hfill \\Un chef à toujours bras long.}
% \end{minipage}}
%%%% test 4
\setkomavar{signature}{
\noindent \parbox[t]{0.5\linewidth}{Chef Abraracoursix,\hfill \\Un chef à toujours bras long.}
}
%%%%%%%%%%%%%%%% above %%%%%%%%%%%%%%%%
% from adress
\setkomavar{fromaddress}{Place du village,\\Erqy,\\Armorique}
\setkomafont{fromaddress}{\small}
% place and location
\setkomavar{place}{Erqy}
\setkomavar{placeseparator}{, le }
% other komavar
\setkomavar{ccseparator}{}
\setkomavar*{ccseparator}{\llap{\ccname\quad}}
% \usepackage{setspace} \usepackage{lipsum} \setstretch{1.15}
% \setlength\parskip{\medskipamount}
% \setlength\parindent{0pt}
% \setstretch{1.15}
\date{\today}
\makeatletter
% firsthead
\setkomavar{firsthead}{{
\usekomafont{fromaddress}
\parbox[b]{\useplength{firstheadwidth}}{
{\usekomafont{fromname}\usekomavar{fromname}}
\hfill{\usekomafont{placeanddate}
\ifkomavarempty{place}{}{\usekomavar{place}\usekomavar{placeseparator}}
\usekomavar{date}
}
\\\usekomavar{fromaddress}
\medskip
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi
\if@mobilephone\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}\fi
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi
}}
}
makeatletter
%%%% TEST 0
% \@setplength{sigindent}{-\useplength{refhpos}+\useplength{toaddrhpos}}}
\makeatother
\renewcommand*{\raggedsignature}{\raggedright}
\hypersetup{
pdfauthor={Chef Abraracoursix},
pdftitle={Invitation pour une banquet au sanglier Roti},
pdfcreator={Emacs 26.1 (Org mode 9.1.9)},
pdflang={French}}
\begin{document}
\setkomavar{subject}{Invitation pour une banquet au sanglier Roti}
\begin{letter}{
Capitaine Paulus Romanicus\\
Camp de Babaorum
Bretany}
\opening{Le Romain,}
Dans le cadre des rapports de bon voisinage et de notre hospitalité légendaire, nous vous invitons à festoyer avec nous sous le grand chêne, du coucher du soleil à l'aube, à la prochaine plein lune pour le mariage de la belle Fabala et de vigourix.
\closing{À la tienne !}
\end{letter}
\end{document}
理想情况下我希望
\makeatletter
\@setplength{sigindent}{-\useplength{refhpos}+\useplength{toaddrhpos}}
\makeatother
按预期使用给定的伪长度工作https://i.stack.imgur.com/D2tu3.png
答案1
您的计算-\useplength{refhpos}+\useplength{toaddhpos}
没有得出将签名移动到文本区域中间的值。
在您的示例中,的值为refhpos
0pt,的值为toaddrhpos
-10mm(由 给出NF.lco
)。您的
\@setplength{sigindent}{-\useplength{refhpos}+\useplength{toaddrhpos}}
(我删除了一个}
,因为太多了),会导致sigindent
-10mm。这会导致位置位于文本区域左边缘 10mm 处。所以这不是你想要的。
您链接的图像(即当前 KOMA-Script 手册的图 22.1) 是关于左侧的地址字段。您正在使用右侧的地址字段。toaddrhpos
从纸张右边缘到地址字段右边缘的距离也是如此。它是负数(如上所述)。refhpos
与地址字段的位置无关。
请查看KOMA-Script 手册第二部分表 22.1并进入22.1 节中伪长度的描述看看toaddhpos
,refhpos
和sigindent
由 解释scrlttr2
。
您可以尝试以下方法:
\setplength{sigindent}{.5\textwidth}
或者更复杂但正确的计算:
\setplength{sigindent}{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in}
注意:这仅适用于toaddrhpos
< 0。
\paperwidth+\useplenth{toaddrhpos}
是地址字段右边缘相对于纸张左边缘的位置。减去\useplength{toaddrwidth}
结果是地址字段左边缘相对于纸张左边缘的位置。加上\useplength{toaddrindent}
结果是地址左边缘相对于纸张左边缘的位置。但是sigindent
是相对于文本区域左边缘而不是纸张左边缘的位置。所以我们必须减去左边距,即(在单面文档的所有页面中)\oddsidemargin+1in
。
注意:由于建议使用KOMA-Script 3.26\setplength
而不是。现在是内部命令。您不应再使用它。如果您使用的是过时的 KOMA-Script 版本,您仍然必须使用。但在这种情况下,第二个参数中的表达式也不允许。所以你必须使用:\@setplength
\@setplength
\@setplength
\makeatletter
\@setplength{sigindent}{\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in\relax}
\makeatother
或者将计算拆分成几个\@addtoplength
。
下面是一个示例(使用 KOMA-Script >= 3.26),说明计算过程:
\documentclass[%
paper=a4,
fontsize=11pt,
french,
]{scrlttr2}[2018/12/22]% for KOMA-Script < v3.26 see the note about \setplengt` above
\usepackage{eso-pic,picture,xcolor}% for demonstration only
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
%\LoadLetterOption{visualize}
%\showfields{head,foot,address,location,refline}
\LoadLetterOption{NF}
\renewcaptionname{french}{\subjectname}{Objet}
\renewcaptionname{french}{\ccname}{C.c.}
\KOMAoptions{
,foldmarks=false
,refline=nodate
,subject=titled
,fromemail=false
,fromlogo=false
,fromphone=false
,fromurl=false
,backaddress=false
,foldmarks=false
}
% from name
\setkomavar{fromname}{Chef Abraracoursix}
\setkomafont{fromname}{\scshape}
\setkomavar{signature}{\noindent Chef Abraracoursix,\\Un chef à toujours bras long.}
\setplength{sigindent}{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in}
% Show the calculation (for demonstration only)
\AddToShipoutPicture{%
\AtPageUpperLeft{%
\color{red}%
\footnotesize
\put(0,-\useplength{toaddrvpos}){%
\vector(1,0){\dimexpr\paperwidth+\useplength{toaddrhpos}\relax}%
}%
\put(0,-\useplength{toaddrvpos}){%
\makebox(\dimexpr\paperwidth+\useplength{toaddrhpos}\relax,\ht\strutbox)[cb]{\ttfamily\detokenize{\paperwidth+\useplength{toaddrhpos}}}%
}%
\color{red!80!blue!80}%
\put(\dimexpr\paperwidth+\useplength{toaddrhpos}\relax,-\dimexpr\useplength{toaddrvpos}+\ht\strutbox\relax){%
\vector(-1,0){\useplength{toaddrwidth}}%
}%
\put(\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}\relax,-\dimexpr\useplength{toaddrvpos}+\ht\strutbox\relax){%
\makebox(\useplength{toaddrwidth},\ht\strutbox)[cb]{\ttfamily\detokenize{\useplength{toaddrwidth}}}%
}%
\color{red!60!blue!60}%
\put(\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}\relax,-\dimexpr\useplength{toaddrvpos}+\ht\strutbox*2\relax){%
\vector(1,0){\useplength{toaddrindent}}%
}%
\put(\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}\relax,-\dimexpr\useplength{toaddrvpos}+\ht\strutbox*2\relax){%
\makebox(\useplength{toaddrindent},\ht\strutbox){%
\ttfamily\detokenize{\useplength{toaddrindent}}%
}%
}%
\color{green}%
\put(\dimexpr\oddsidemargin+1in\relax,
-\dimexpr\useplength{toaddrvpos}+2cm\relax){%
\vector(1,0){%
\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in\relax
}%
}%
\put(\dimexpr\oddsidemargin+1in\relax,
-\dimexpr\useplength{toaddrvpos}+2cm\relax){%
\makebox(\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in\relax,\ht\strutbox)[lb]{%
\detokenize{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}-\oddsidemargin-1in}%
}%
}%
\color{blue}%
\put(\dimexpr\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}+\useplength{toaddrindent}\relax,0){%
\line(0,-1){\paperheight}%
}%
}%
}
% from adress
\setkomavar{fromaddress}{Place du village,\\Erqy,\\Armorique}
\setkomafont{fromaddress}{\small}
% place and location
\setkomavar{place}{Erqy}
\setkomavar{placeseparator}{, le }
% other komavar
\setkomavar{ccseparator}{}
\setkomavar*{ccseparator}{\llap{\ccname\quad}}
\date{\today}
% firsthead
\setkomavar{firsthead}{%
\usekomafont{fromaddress}%
\parbox[b]{\useplength{firstheadwidth}}{%
{\usekomafont{fromname}\usekomavar{fromname}}%
\hfill{%
\usekomafont{placeanddate}%
\ifkomavarempty{place}{}{\usekomavar{place}\usekomavar{placeseparator}}
\usekomavar{date}
}%
\\\usekomavar{fromaddress}%
\medskip
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
}%
}
\renewcommand*{\raggedsignature}{\raggedright}
\hypersetup{%
pdfauthor={Chef Abraracoursix},
pdftitle={Invitation pour une banquet au sanglier Roti},
pdfcreator={Emacs 26.1 (Org mode 9.1.9)},
pdflang={French}
}
\begin{document}
\setkomavar{subject}{Invitation pour une banquet au sanglier Roti}
\begin{letter}{%
Capitaine Paulus Romanicus\\
Camp de Babaorum
Bretany}
\opening{Le Romain,}
Dans le cadre des rapports de bon voisinage et de notre hospitalité
légendaire, nous vous invitons à festoyer avec nous sous le grand chêne,
du coucher du soleil à l'aube, à la prochaine plein lune pour le mariage
de la belle Fabala et de vigourix.
\closing{À la tienne !}
\end{letter}
\end{document}
请注意,您的代码还存在其他几个问题:
\usepackage[francais]{babel}
已弃用。当前babel
警告:
Package francais.ldf Warning: Option `francais' for Babel is *deprecated*, (francais.ldf) it might be removed sooner or later. Please (francais.ldf) use `french' instead; reported on input line 31.
\KOMAoption{
,foldmarks=false
,refline=nodate
,subject=titled
,fromemail=false
,fromlogo=false
,fromphone=false
,fromurl=false
,backaddress=false
,foldmarks=false
}
是错误的。\KOMAoption
有两个参数。第一个是选项键,第二个是选项值列表。
为了帮助用户找出错误,KOMA-Script 的当前预版本会如果您错误地使用 则会显示以下错误消息\KOMAoption
:
./test.tex:28: Package scrbase Error: syntax error in key ` ,foldmarks=false ,r efline=nodate ,subject=titled ,fromemail=false ,fromlogo=false ,fromphone=false ,fromurl=false ,backaddress=false ,foldmarks=false '. See the scrbase package documentation for explanation. Type H <return> for immediate help. ... l.28 } You've used `\...Option' to set the key ` ,foldmarks=false ,refline=nodate ,sub ject=titled ,fromemail=false ,fromlogo=false ,fromphone=false ,fromurl=false ,b ackaddress=false ,foldmarks=false ' to new value(s), but `,' is not allowed in the key of an option (and `\...Option' does not use `,' to separate several keys). Maybe you've meant \...Options instead of \...Option. If you'll continue, I'll give it a try, but you should expect further and even strange error messages.
正如错误消息的帮助文本所解释的那样:
\KOMAoptions{
,foldmarks=false
,refline=nodate
,subject=titled
,fromemail=false
,fromlogo=false
,fromphone=false
,fromurl=false
,backaddress=false
,foldmarks=false
}
是正确的。
您的定义firsthead
添加了几个重要但不想要的空格。请参见行尾的百分号 (%) 有什么用?(为什么我的宏会产生额外的空间?)以获取有关如何避免这些问题的更多信息。
还有关于使用以下内容的警告消息\date
:
Class scrlttr2 Warning: \date changes the internal \LaTeX date only. (scrlttr2) You should note that this changes the default (scrlttr2) value of variable `date' only as long as someone (scrlttr2) uses `\setkomavar` to change the content of (scrlttr2) variable `date'. (scrlttr2) Therefore, usage of `\setkomavar' is recommended (scrlttr2) to change the letter's date on input line 59.
所以scrlttr2
你应该使用
\setkomavar{date}{\today}
或者直接删除它,因为它\today
已经是默认的。
最后但同样重要的是,你有一个
makeatletter
代替
\makeatletter
在您的文件序言中。
答案2
我的建议和@Schweinebacke 的回答。但是对于注释来说它太长了...也许下面的内容有助于理解为什么refhpos
在计算签名所需的缩进量(即伪长度)时是完全错误的sigindent
。
首先:不要只看文档中的伪长度图像,而要仔细阅读所有伪长度的描述。默认情况下,其中一些设置为特殊值,例如。0pt
然后在执行期间计算这些字母元素的位置并将其分组使用\opening
。这些计算的规则在文档中描述。
注意伪长度refhpos
是不是纸张左边缘与信体之间的距离!它只决定参考线的水平位置如果伪长度refwidth
不为零。但refwidth
通常设置为0pt
,例如在 NF.lco 中。使用此特殊值,长度和参考线的位置仅取决于选项refline
及其值narrow
(默认)或wide
。
例子:
\documentclass{scrlttr2}
\usepackage{blindtext}% dummy text
\LoadLetterOption{visualize}\showfields{address,location,refline}% visualize position of addresse and refline
%\KOMAoptions{refline=wide}% uncomment for the 2.image, default is refline=narrow
\begin{document}
\begin{letter}{recipient\\address}
\opening{Hello}
Pseudolength \texttt{refwidth} is set to \textbf{\the\useplength{refwidth}},
pseudolength \texttt{refhpos} is set to \textbf{\the\useplength{refhpos}} and
pseudolength \texttt{sigindent} is set to \textbf{\the\useplength{sigindent}}.
\par\bigskip
\blindtext
\closing{Bye}
\end{letter}
\end{document}
采用默认设置的结果refline
(refline=narrow
):
结果refline=wide
(取消注释上面代码中的该行):
如果设置refhpos
为不同的值,布局将不会改变:
\setplength{refhpos}{10pt}
默认结果refline=narrow
(参见第一个例子):
请注意,只有文本中的值发生了变化。
但是如果你将伪长度设置refwidth
为非零值,例如
\setplength{refwidth}{\textwidth}
你得到
或
\setplength{refhpos}{10pt}
\setplength{refwidth}{\textwidth}
请注意,此行为在 KOMA-Script 文档中有描述。
为了使签名与地址对齐,我们必须添加伪长度toaddrhpos
和toaddrindent
并减去左边距(= \oddsidemargin+1pt
):
\documentclass{scrlttr2}
\usepackage{xcolor}
\LoadLetterOption{visualize}\showfields{address,location,refline}% visualize position of addresse and refline
\renewcommand\raggedsignature{\raggedright}% % signature should be raggedright as in NF.lco
\setkomavar{signature}{\color{red}\smash{\rule[-\paperheight]{.4pt}{2\paperheight}}}% to show the left margin of the signature
%\setplength{toaddrhpos}{100pt}
\setplength{sigindent}{
\useplength{toaddrhpos}+\useplength{toaddrindent}
-\oddsidemargin-1in% remove left margin
}
\begin{document}
\begin{letter}{recipient\\address}
\opening{Hello}
Pseudolength \texttt{refhpos} is set to \textbf{\the\useplength{refhpos}},
pseudolength \texttt{toaddrhpos} is set to \textbf{\the\useplength{toaddrhpos}},
pseudolength \texttt{toaddrindent} is set to \textbf{\the\useplength{toaddrindent}} and
pseudolength \texttt{sigindent} is set to \textbf{\the\useplength{sigindent}}.
\closing{Bye}
\end{letter}
\end{document}
结果:
如果设置toaddrhpos
为 100pt(取消注释上面代码中的该行):
如果设置toaddrhpos
为左边距的宽度
\setplength{toaddrhpos}{\oddsidemargin+1in}
你得到
加载 NF.lco 时, 的值toaddrhpos
变为负数。负值表示toaddrhpos
从地址栏的右边缘到纸张右边缘的距离。因此,我们必须加上\paperwidth
和减去地址栏的宽度 ( toaddrwidth
):
\documentclass{scrlttr2}
\usepackage{xcolor}
\LoadLetterOption{visualize}\showfields{address,location,refline}% visualize position of addresse and refline
\setkomavar{signature}{\color{red}\smash{\rule[-\paperheight]{.4pt}{2\paperheight}}}% to show the left margin of the signature
\LoadLetterOption{NF}
\setplength{sigindent}{
\useplength{toaddrhpos}+\useplength{toaddrindent}
-\oddsidemargin-1in
}
\ifdim\useplength{toaddrhpos}<0pt
\addtoplength{sigindent}{\paperwidth-\useplength{toaddrwidth}}
\fi
\begin{document}
\begin{letter}{recipient\\address}
\opening{Hello}
Pseudolength \texttt{refhpos} is set to \textbf{\the\useplength{refhpos}},
pseudolength \texttt{toaddrhpos} is set to \textbf{\the\useplength{toaddrhpos}},
pseudolength \texttt{toaddrindent} is set to \textbf{\the\useplength{toaddrindent}} and
pseudolength \texttt{sigindent} is set to \textbf{\the\useplength{sigindent}}.
\closing{Bye}
\end{letter}
\end{document}
结果:
另请参阅@Schweinebacke 的回答。
您可以toaddrhpos
在计算之前更改sigindent
,例如
\setplength{toaddrhpos}{-100pt}
结果:
所以我建议@Schweineback 在他的回答中:
使用最新的 KOMA-Script 版本(至少 3.26):
\setplength{sigindent}{
\useplength{toaddrhpos}+\useplength{toaddrindent}
-\oddsidemargin-1in
}
\ifdim\useplength{toaddrhpos}<0pt
\addtoplength{sigindent}{\paperwidth-\useplength{toaddrwidth}}
\fi
或者使用旧版本:
\makeatletter
\@setplength{sigindent}{\dimexpr
\useplength{toaddrhpos}+\useplength{toaddrindent}
-\oddsidemargin-1in
\relax}
\ifdim\useplength{toaddrhpos}<0pt
\@addtoplength{sigindent}{\dimexpr\paperwidth-\useplength{toaddrwidth}\relax}
\fi
\makeatother
答案3
这里的问题是,用命令将伪长度toaddrhpos
设置NF.lco
为负值。-10mm
\@setplength{toaddrhpos}{-10mm}
这意味着的值10mm
不是纸张左侧和地址字段之间的值,而是纸张右侧和地址框。通常首先打印地址框(在纸张的左侧),然后打印位置框。文件NF-lco
已更改,正如您在问题中的图片中所示。
sigindent
总是从打字区域的左侧计算,因此您必须sigindent
自己计算所需的值。
一种可能性是:
\setplength{sigindent}{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}-\useplength{toaddrindent}-\useplength{toaddrindent}-\useplength{refhpos}}
这意味着我们计算\paperwidth
减号toaddrhpos
(因为它的值已经是减号了,所以我们必须在这里使用加号)减toaddrwidth
减refhpos
减两次toaddrindent
。
使用您修正后的代码中的计算结果
\documentclass[%
paper=a4,
fontsize=11pt,
french,
]{scrlttr2}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
%\LoadLetterOption{visualize}
%\showfields{head,foot,address,location,refline}
\LoadLetterOption{NF}
\renewcaptionname{french}{\subjectname}{Objet}
\renewcaptionname{french}{\ccname}{C.c.}
\KOMAoptions{
,foldmarks=false
,refline=nodate
,subject=titled
,fromemail=false
,fromlogo=false
,fromphone=false
,fromurl=false
,backaddress=false
,foldmarks=false
}
% from name
\setkomavar{fromname}{Chef Abraracoursix}
\setkomafont{fromname}{\scshape}
\setkomavar{signature}{\noindent Chef Abraracoursix,\\Un chef à toujours bras long.}
\setplength{sigindent}{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}-\useplength{toaddrindent}-\useplength{toaddrindent}-\useplength{refhpos}} % <===============
% from adress
\setkomavar{fromaddress}{Place du village,\\Erqy,\\Armorique}
\setkomafont{fromaddress}{\small}
% place and location
\setkomavar{place}{Erqy}
\setkomavar{placeseparator}{, le }
% other komavar
\setkomavar{ccseparator}{}
\setkomavar*{ccseparator}{\llap{\ccname\quad}}
\date{\today}
% firsthead
\setkomavar{firsthead}{%
\usekomafont{fromaddress}%
\parbox[b]{\useplength{firstheadwidth}}{%
{\usekomafont{fromname}\usekomavar{fromname}}%
\hfill{%
\usekomafont{placeanddate}%
\ifkomavarempty{place}{}{\usekomavar{place}\usekomavar{placeseparator}}
\usekomavar{date}
}%
\\\usekomavar{fromaddress}%
\medskip
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
}%
}
\renewcommand*{\raggedsignature}{\raggedright}
\hypersetup{%
pdfauthor={Chef Abraracoursix},
pdftitle={Invitation pour une banquet au sanglier Roti},
pdfcreator={Emacs 26.1 (Org mode 9.1.9)},
pdflang={French}
}
\begin{document}
\setkomavar{subject}{Invitation pour une banquet au sanglier Roti}
\begin{letter}{%
Capitaine Paulus Romanicus\\
Camp de Babaorum
Bretany}
\opening{Le Romain,}
Dans le cadre des rapports de bon voisinage et de notre hospitalité
légendaire, nous vous invitons à festoyer avec nous sous le grand chêne,
du coucher du soleil à l'aube, à la prochaine plein lune pour le mariage
de la belle Fabala et de vigourix.
\closing{À la tienne !}
\end{letter}
\end{document}
您将获得以下结果:
似乎存在5pt
太多差异,我不知道它来自哪里(舍入错误,我没有看到的缩进?)。在这种情况下,你可以将它们添加到计算中:
\setplength{sigindent}{\paperwidth+\useplength{toaddrhpos}-\useplength{toaddrwidth}-\useplength{toaddrindent}-\useplength{toaddrindent}-\useplength{refhpos}-5pt}