我从 KOMA 脚本指南第 166-167 页中选取了简单示例(pdf)。我现在想在我名字之前(或之后)的行中引入一个公司名称。我会天真地这样做,通过改变
\setkomavar{fromname}{John Public}
到
\setkomavar{fromname}{Company Name\\John Public}
但是,这会破坏编译。错误消息是
! Undefined control sequence.
\@gnewline ...\@nolnerr \else \unskip \reserved@e
{\reserved@f #1}\nobreak \...
l.24 \closing{Expecting an invitation}
因此,删除\closing{}
命令可以正确呈现文档,但显然没有结束。请注意,我实际上并不关心结束,我只是希望它能正常工作。
问题:
- 如何正确地将公司名称添加到
from
变量中,即返回地址? - 是什么原因导致这个奇怪的错误?
完整示例:
\documentclass[foldmarks=true,foldmarks=blmtP,
fromalign=false,fromrule=afteraddress,
fromphone,fromemail,
version=last]{scrlttr2}
\usepackage[english]{babel}
\begin{document}
%\setkomavar{fromname}{John Public}
\setkomavar{fromname}{Company Name\\John Public}
\setkomavar{fromaddress}{Valley 2\\
54321 Public-Village}
\setkomavar{fromphone}{0\,12\,34~56\,78}
\setkomavar{fromemail}{[email protected]}
\begin{letter}{%
Joana Public\\
Hillside 1\\
12345 Public-City%
}
\opening{Dear chairman,}
the last general meeting was about one year ago.
I want to remind you, that the constitution of our
club advises you to make a general meeting every
six month. Because of this I expect the executive
board to detain such a meeting immediately.
\closing{Expecting an invitation}
\ps PS: I hope you accept this as an friendly
demand note.
\setkomavar*{enclseparator}{Enclosure}
\encl{Compendium of the constitution with the
general meeting paragraphs.}
\cc{executive board\\all members}
\end{letter}
\end{document}
答案1
0. 黑客攻击
暂时可以解决您的问题的方法是使用\linebreak
而不是\\
。
\documentclass{scrlttr2}
\begin{document}
\setkomavar{fromname}{Company Name\linebreak\ John Public} % \_ before name typeset
% the `back address`
% correctly.
\begin{letter}{empfaenger}
\opening{Hallo}
text
\closing{schluss}
\end{letter}
\end{document}
(对我有用;你的里程可能会有所不同!)
1. 签名中的公司名称
要在签名中添加公司名称,您可以尝试重新定义 KOMA 变量signature
。以下是我设置系统的方式:
在一般公司中.LCO
\newkomavar{companyname}
\setkomavar{companyname}{Incognito Ltd}
\setkomavar{fromname}{Nomen Nescio}
\setkomavar{signature}{\usekomavar{fromname}\\%
\footnotesize{\chairPerson}}
\providecaptionname{UKenglish}{\salutation}{Yours sincerely\linebreak\ Company Ltd.}
\providecaptionname{norsk}{\salutation}{Med vennlig hilsen\linebreak\ Company Ltd.}
在我的个人 .LCO 中
\setkomavar{fromname}{My Name}
\providecaptionname{UKenglish}{\chairPerson}{General Counsel/attorney at law \textsc{mna}}
\providecaptionname{norsk}{\chairPerson}{juridisk direkt\o r/advokat \textsc{mna}}
使用\closing
可以得到我想要的输出。我将公司 .LCO 和我个人 .LCO 加载到模板 .tex 文件中。\providecaptionname
使您可以使用babel
多种语言。我使用\linebreak\
而不是\\
和
\renewcommand{\raggedsignature}{\raggedright}
2. 后面地址中的公司名称
要在后面的地址行中显示公司名称(请参阅手册第 160 页及后续页面):
\newkomavar{companyname}
\setkomavar{companyname}{Incognito Ltd}
\setkomavar{backaddress}{%
\usekomavar{companyname}\\%
\usekomavar{fromname}\\%
\usekomavar{fromaddress}% % remember to define this
}
\setkomavar{backaddressseparator}{$\cdot$} % or a comma
3. 首页页眉中的公司名称
您必须重新定义firsthead
才能实现这一点:
\setkomavar{firsthead}{%
\centering\usekomavar{companyname}\\%
\usekomavar{fromname}\\%
\rule{12em}{0.75pt}\\%
\usekomavar{fromaddress}%
}