1 ;;; scrlttr2.el --- AUCTeX style for scrlttr2.cls.
3 ;; Copyright (C) 2002, 2007 Free Software Foundation
5 ;; Author: Mark Trettin <Mark.Trettin@gmx.de>
9 ;; This file is part of AUCTeX.
11 ;; AUCTeX is free software; you can redistribute it and/or modify it
12 ;; under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation; either version 3, or (at your option)
16 ;; AUCTeX is distributed in the hope that it will be useful, but
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 ;; General Public License for more details.
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with AUCTeX; see the file COPYING. If not, write to the Free
23 ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
28 ;; This file adds support for `scrlttr2.cls'.
30 ;; Since I just recently switched from `g-brief.cls' to the
31 ;; KOMA-Script letter class *and* I don't really write many
32 ;; snailmails, there are probably some superflous macros included and
33 ;; important ones left out. Comments appreciated.
35 ;; I left out any length and positioning macros since those should be
36 ;; set in a personal `*.lco'-File. IMHO.
40 (TeX-add-style-hook "scrlttr2"
45 '("LetterOptionNeedsPapersize" "Name of lco file" "Paper size")
46 '("LoadLetterOption" "Name of lco file")
47 '("addrchar" "Initial letter")
48 '("addrentry" "Lastname" "Firstname" "Address" "Telephone" "F1"
50 '("addtokomafont" TeX-arg-KOMA-scrlttr-fontelements t)
51 '("addtolengthplength" [ "Factor" ] "Name of length"
52 "Name of pseudo length")
53 '("addtoreffields" TeX-arg-KOMA-scrlttr-vars)
54 '("adrchar" "Initial letter")
55 '("adrentry" "Lastname" "Firstname" "Address" "Telephone" "F1"
58 '("captionsUKenglish" nil)
59 '("captionsUSenglish" nil)
60 '("captionsamerican" nil)
61 '("captionsaustrian" nil)
62 '("captionsbritish" nil)
63 '("captionscroatian" nil)
64 '("captionsdutch" nil)
65 '("captionsenglish" nil)
66 '("captionsfrench" nil)
67 '("captionsgerman" nil)
68 '("captionsitalian" nil)
69 '("captionsngerman" nil)
70 '("captionsspanish" nil)
73 '("cleardoubleemptypage")
74 '("cleardoubleplainpage")
75 '("cleardoublestandardpage")
76 '("closing" "Closing Phrase")
78 '("dateUKenglish" nil)
79 '("dateUSenglish" nil)
100 '("ifkomavarempty" TeX-arg-KOMA-scrlttr-vars 2)
101 '("ifkomavarempty*" TeX-arg-KOMA-scrlttr-vars 2)
104 '("newcaptionname" "Language" "Term" "Definition")
105 '("newkomavar" [ "Description" ] "Name")
106 '("newkomavar*" [ "Description" ] "Name")
109 '("opening" "Opening")
112 '("providecaptionname" "Language" "Term" "Definition")
114 '("raggedsignature" nil)
115 '("renewcaptionname" "Language" "Term" "Definition")
116 '("setkomafont" TeX-arg-KOMA-scrlttr-fontelements t)
117 '("setkomavar" TeX-arg-KOMA-scrlttr-vars [ "Description" ] t)
118 '("setkomavar*" TeX-arg-KOMA-scrlttr-vars "Description")
119 '("setlengthtoplength" [ "Factor" ] "Name of length"
120 "Name of pseudo length")
122 '("usekomafont" TeX-arg-KOMA-scrlttr-fontelements)
123 '("usekomavar" [ "Command" ] TeX-arg-KOMA-scrlttr-vars)
124 '("usekomavar*" [ "Command" ] TeX-arg-KOMA-scrlttr-vars)
125 '("useplength" "Name")
129 (LaTeX-add-environments
130 '("letter" (lambda (env &rest ignore)
131 (LaTeX-insert-environment
133 (let ((options (read-string "Optional options: "))
134 (recip (read-string "Recipient: ")))
136 (if (not (zerop (length options)))
137 (format "[%s]" options))
138 (format "{%s}" recip)))))))
139 ;; Definitions for font-latex
140 (when (and (featurep 'font-latex)
141 (eq TeX-install-font-lock 'font-latex-setup))
143 (font-latex-add-keywords '(("addrentry" "{{{{{{{{{")
144 ("adrentry" "{{{{{{{{")
173 (font-latex-add-keywords '(("AtBeginLetter" "{")
174 ("LetterOptionNeedsPapersize" "{{")
175 ("LoadLetterOption" "{")
178 ("ifkomavarempty" "*{{{"))
181 (font-latex-add-keywords '(("KOMAoptions" "{")
182 ("addtokomafont" "{{")
183 ("addtolengthplength" "[{{")
184 ("addtoreffields" "{")
185 ("newcaptionname" "{{{")
187 ("providecaptionname" "{{{")
188 ("renewcaptionname" "{{{")
190 ("setkomavar" "*{[{")
191 ("setlengthtoplength" "[{{")
197 (font-latex-add-keywords '("cleardoublestandardpage"
198 "cleardoubleplainpage"
199 "cleardoubleemptypage")
202 (defun TeX-arg-KOMA-scrlttr-vars (optional &optional prompt)
203 "Prompt for KOMA-Script's scrlttr2 predefined variables with completion."
206 (TeX-argument-prompt optional prompt "Variable")
208 ("backaddress") ("backaddressseparator")
209 ("ccseparator") ("customer")
211 ("emailseparator") ("enclseparator")
212 ("faxseparator") ("frombank") ("fromaddress") ("fromemail")
213 ("fromfax") ("fromlogo") ("fromname") ("fromphone") ("fromurl")
217 ("place") ("placeseparator") ("phoneseparator")
218 ("signature") ("specialmail") ("subject") ("subjectseparator")
219 ("title") ("toname") ("toaddress")
220 ("yourmail") ("yourref"))
224 (defun TeX-arg-KOMA-scrlttr-fontelements (optional &optional prompt)
225 "Prompt for KOMA-Script's scrlttr2 fontelements with completion."
228 (TeX-argument-prompt optional prompt "Element")
232 ("fromaddress") ("fromname")
233 ("pagefoot") ("pagehead") ("pagenumber")
239 ;;; scrlttr2.el ends here