问题
我使用org-mode生成latex文件,然后生成pdf文件,我使用的文档类是scrlttr2,pdf生成OK,下面是org文件:
#+LATEX_CLASS: scrlttr2
#+LATEX_CLASS_OPTIONS: [pagenumber=false,parskip=half,fromalign=right, foldmarks=false, addrfield=topalign]
#+DATE: \today
#+AUTHOR: Max Le
#+SUBJECT: A simple letter
#+FROM_ADDRESS: Sender address
#+FROM_ADDRESS: Sender city
#+LANGUAGE: en
#+LATEX_HEADER: \usepackage[T1]{fontenc}
#+LATEX_HEADER: \usepackage[english]{babel}
#+LATEX_HEADER: \renewcommand*{\raggedsignature}{\raggedright}
#+TO_ADDRESS: Receiver
#+TO_ADDRESS: Receiver address
#+TO_ADDRESS: Receiver city
#+LATEX_HEADER: \setplength{toaddrhpos}{-100mm}
#+OPENING: Dear John,
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad
minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
#+CLOSING: Yours truly,
#+SIGNATURE: Jane
我想水平移动接收方地址。在查看了 Koma 信件指南后,我知道可以使用以下方法完成:\setplength{toaddrhpos}{-100mm}
。在 org-mode 中,为了设置此变量,我将其包含在 LATEX_HEADER 中,如下所示:#+LATEX_HEADER: \setplength{toaddrhpos}{-100mm}
。这似乎不起作用,因为接收方字段保持不变。
Org-mode 确实会生成一个 .tex 文件,所以我也检查了这个文件。.tex 文件在这里,https://pastebin.com/4dzjnPAq
您可以看到,在此 .tex 文件的第 20 行,有命令\setplength{...}
。如果您从此 tex 文件生成 pdf,则接收方地址仍然在同一个位置!
我把 .tex 文件弄乱了,让它工作的唯一方法是将 移动到\setlengthp{...}
Receiver 块之后,也就是 之后\begin{letter}
。换句话说,它看起来像这样:
\begin{letter}{%
Receiver\\
Receiver address\\
Receiver city}
\setplength{toaddrhpos}{-100mm}
......
.tex 文件的修复版本在这里,https://pastebin.com/j7X96UrT。您可以在第 48 行看到它。
问题:我如何在我的 org 文件中实现同样的效果。您可以在原始 org 文件中看到,我尝试将该命令放在块后面#+TO_ADDRESS
,但生成的 .tex 仍然没有将命令放在正确的位置(紧接着 Receiver 块)。您知道如何做到这一点吗?
答案1
我找到了答案,如下:如何在 emacs org 模式中设置 koma 伪长度?
显然,您可以创建一个 lco 文件然后加载它。或者您可以这样做:
#+LATEX_HEADER: \AtBeginLetter{\setplength{toaddrhpos}{-9cm}}
更倾向于 lco 文件。