]> code.delx.au - gnu-emacs-elpa/blob - packages/auctex/style/scrlttr2.el
Remove version numbers in packages/ directory
[gnu-emacs-elpa] / packages / auctex / style / scrlttr2.el
1 ;;; scrlttr2.el --- AUCTeX style for scrlttr2.cls.
2
3 ;; Copyright (C) 2002, 2007 Free Software Foundation
4
5 ;; Author: Mark Trettin <Mark.Trettin@gmx.de>
6 ;; Created: 2002-10-26
7 ;; Keywords: tex
8
9 ;; This file is part of AUCTeX.
10
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)
14 ;; any later version.
15
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.
20
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
24 ;; 02110-1301, USA.
25
26 ;;; Commentary:
27
28 ;; This file adds support for `scrlttr2.cls'.
29
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.
34
35 ;; I left out any length and positioning macros since those should be
36 ;; set in a personal `*.lco'-File. IMHO.
37
38 ;;; Code
39
40 (TeX-add-style-hook "scrlttr2"
41 (lambda ()
42 (TeX-add-symbols
43 '("AtBeginLetter" t)
44 '("KOMAoptions" t)
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"
49 "F2" "F3" "F4" "Key")
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"
56 "F2" "Comment" "Key")
57 '("bankname" t)
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)
71 '("cc" t)
72 '("ccname" t)
73 '("cleardoubleemptypage")
74 '("cleardoubleplainpage")
75 '("cleardoublestandardpage")
76 '("closing" "Closing Phrase")
77 '("customername" t)
78 '("dateUKenglish" nil)
79 '("dateUSenglish" nil)
80 '("dateamerican" nil)
81 '("dateaustrian" nil)
82 '("datebritish" nil)
83 '("datecroatian" nil)
84 '("datedutch" nil)
85 '("dateenglish" nil)
86 '("datefrench" nil)
87 '("dategerman" nil)
88 '("dateitalian" nil)
89 '("datename" t)
90 '("datengerman" nil)
91 '("datespanish" nil)
92 '("emailname" t)
93 '("encl" t)
94 '("enclname" t)
95 '("faxname" t)
96 '("firstfoot" t)
97 '("firsthead" t)
98 '("headfromname" t)
99 '("headtoname" t)
100 '("ifkomavarempty" TeX-arg-KOMA-scrlttr-vars 2)
101 '("ifkomavarempty*" TeX-arg-KOMA-scrlttr-vars 2)
102 '("invoicename" t)
103 '("myrefname" t)
104 '("newcaptionname" "Language" "Term" "Definition")
105 '("newkomavar" [ "Description" ] "Name")
106 '("newkomavar*" [ "Description" ] "Name")
107 '("nextfoot" t)
108 '("nexthead" t)
109 '("opening" "Opening")
110 '("pagename" t)
111 '("phonename" t)
112 '("providecaptionname" "Language" "Term" "Definition")
113 '("ps")
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")
121 '("subjectname" t)
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")
126 '("wwwname" t)
127 '("yourmailname" t)
128 '("yourrefname" t))
129 (LaTeX-add-environments
130 '("letter" (lambda (env &rest ignore)
131 (LaTeX-insert-environment
132 env
133 (let ((options (read-string "Optional options: "))
134 (recip (read-string "Recipient: ")))
135 (concat
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))
142 ;; Textual keywords
143 (font-latex-add-keywords '(("addrentry" "{{{{{{{{{")
144 ("adrentry" "{{{{{{{{")
145 ("bankname" "{")
146 ("cc" "{")
147 ("ccname" "{")
148 ("closing" "{")
149 ("customername" "{")
150 ("datename" "{")
151 ("emailname" "{")
152 ("encl" "{")
153 ("enclname" "{")
154 ("faxname" "{")
155 ("firstfoot" "{")
156 ("firsthead" "{")
157 ("headfromname" "{")
158 ("headtoname" "{")
159 ("invoicename" "{")
160 ("myrefname" "{")
161 ("nextfoot" "{")
162 ("nexthead" "{")
163 ("opening" "{")
164 ("pagename" "{")
165 ("phonename" "{")
166 ("ps" "")
167 ("subjectname" "{")
168 ("wwwname" "{")
169 ("yourmailname" "{")
170 ("yourrefname" "{"))
171 'textual)
172 ;; Function keywords
173 (font-latex-add-keywords '(("AtBeginLetter" "{")
174 ("LetterOptionNeedsPapersize" "{{")
175 ("LoadLetterOption" "{")
176 ("addrchar" "{")
177 ("adrchar" "{")
178 ("ifkomavarempty" "*{{{"))
179 'function)
180 ;; Variable keywords
181 (font-latex-add-keywords '(("KOMAoptions" "{")
182 ("addtokomafont" "{{")
183 ("addtolengthplength" "[{{")
184 ("addtoreffields" "{")
185 ("newcaptionname" "{{{")
186 ("newkomavar" "*[{")
187 ("providecaptionname" "{{{")
188 ("renewcaptionname" "{{{")
189 ("setkomafont" "{{")
190 ("setkomavar" "*{[{")
191 ("setlengthtoplength" "[{{")
192 ("usekomafont" "{")
193 ("usekomavar" "*[{")
194 ("useplength" "{"))
195 'variable)
196 ;; Warning keywords
197 (font-latex-add-keywords '("cleardoublestandardpage"
198 "cleardoubleplainpage"
199 "cleardoubleemptypage")
200 'warning))))
201
202 (defun TeX-arg-KOMA-scrlttr-vars (optional &optional prompt)
203 "Prompt for KOMA-Script's scrlttr2 predefined variables with completion."
204 (TeX-argument-insert
205 (completing-read
206 (TeX-argument-prompt optional prompt "Variable")
207 '(("")
208 ("backaddress") ("backaddressseparator")
209 ("ccseparator") ("customer")
210 ("date")
211 ("emailseparator") ("enclseparator")
212 ("faxseparator") ("frombank") ("fromaddress") ("fromemail")
213 ("fromfax") ("fromlogo") ("fromname") ("fromphone") ("fromurl")
214 ("invoice")
215 ("location")
216 ("myref")
217 ("place") ("placeseparator") ("phoneseparator")
218 ("signature") ("specialmail") ("subject") ("subjectseparator")
219 ("title") ("toname") ("toaddress")
220 ("yourmail") ("yourref"))
221 nil nil)
222 optional))
223
224 (defun TeX-arg-KOMA-scrlttr-fontelements (optional &optional prompt)
225 "Prompt for KOMA-Script's scrlttr2 fontelements with completion."
226 (TeX-argument-insert
227 (completing-read
228 (TeX-argument-prompt optional prompt "Element")
229 '(("")
230 ("backaddress")
231 ("descriptionlabel")
232 ("fromaddress") ("fromname")
233 ("pagefoot") ("pagehead") ("pagenumber")
234 ("subject")
235 ("title"))
236 nil t)
237 optional))
238
239 ;;; scrlttr2.el ends here