comparison man/auctex/auc-tex.texi @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents
children
comparison
equal deleted inserted replaced
23:0edd3412f124 24:4103f0995bd7
1 \input texinfo
2 @setfilename auctex
3 @settitle AUC TeX
4 @c footnotestyle separate
5 @c paragraphindent 2
6 @comment %**end of header
7 @iftex
8 @tolerance 10000
9 @end iftex
10
11 @c $Id: auc-tex.texi,v 1.1 1997/02/20 02:04:24 steve Exp $
12
13 @finalout
14 @titlepage
15 @title AUC @TeX{}
16 @subtitle A much enhanced La@TeX{} mode for GNU Emacs.
17 @subtitle Version 9.7
18
19 @author by Kresten Krab Thorup
20 @author updated for 6.1 to 9.7 by Per Abrahamsen
21 @page
22 @vskip 0pt plus 1filll
23 Copyright @copyright{} 1992 Kresten Krab Thorup @*
24 Copyright @copyright{} 1993, 1994,1995 Per Abrahamsen
25
26 Permission is granted to make and distribute verbatim copies of
27 this manual provided the copyright notice and this permission notice
28 are preserved on all copies.
29
30 @ignore
31 Permission is granted to process this file through TeX and print the
32 results, provided the printed document carries copying permission
33 notice identical to this one except for the removal of this paragraph
34 (this paragraph not being relevant to the printed manual).
35 @end ignore
36
37 Permission is granted to copy and distribute modified versions of this
38 manual under the conditions for verbatim copying, provided also that the
39 section entitled ``Copying'' is included exactly as in the original, and
40 provided that the entire resulting derived work is distributed under the
41 terms of a permission notice identical to this one.
42
43 Permission is granted to copy and distribute translations of this manual
44 into another language, under the above conditions for modified versions,
45 except that this permission notice may be stated in a translation
46 approved by the Free Software Foundation.
47 @end titlepage
48 @page
49
50 @ifinfo
51 @node top, Copying, (dir), (dir)
52 @top AUC @TeX{}
53
54 AUC @TeX{} is an integrated environment for editing La@TeX{} and
55 @TeX{} files.@refill
56
57 This file documents AUC @TeX{} version 9.7.
58
59 Although AUC @TeX{} contains a large number of features, there are no
60 reasons to despair. You can continue to write @TeX{} and La@TeX{}
61 documents the way you are used to, and only start using the multiple
62 features in small steps. AUC @TeX{} is not monolithic, each feature
63 described in this manual is useful by itself, but together they provide
64 an environment where you will make very few LaTeX errors, and makes it
65 easy to find the errors that may slip through anyway.
66
67 If you want to make AUC TeX aware of style files and multi-file
68 documents right away, insert the following in your @file{.emacs} file.
69 @lisp
70 (setq TeX-auto-save t)
71 (setq TeX-parse-self t)
72 (setq-default TeX-master nil)
73 @end lisp
74
75 NOTE: This documentation is preliminary. It should however cover most
76 important points. Corrections or perhaps rewrites of sections
77 are VERY WELCOME.@refill
78
79 Kresten Krab Thorup (6.0) @*
80 Per Abrahamsen (later updates)
81
82 There is a mailing list for discussion about AUC @TeX{} and announcement
83 of alpha releases, write to @samp{auc-tex-request@@sunsite.auc.dk} to join
84 it. Send contributions to @samp{auc-tex@@sunsite.auc.dk}.
85
86 Bug reports, suggestions for new features, and pleas for help should go
87 to either @samp{auc-tex_mgr@@iesd.auc.dk} (the AUC @TeX{} managers), or
88 to @samp{auc-tex@@sunsite.auc.dk} (the mailing list) if they might have
89 general interest. Please use the command @kbd{M-x
90 TeX-submit-bug-report} to report bugs if possible.@refill
91
92 @end ifinfo
93
94 @menu
95 * Copying:: Copying
96 * Introduction:: Why AUC @TeX{} is good for you.
97 * Frequently Used Commands:: Inserting Frequently Used Commands
98 * Advanced Features:: Advanced Editing Features
99 * Formatting:: Formatting and Printing
100 * Multifile:: Multifile Documents
101 * Parsing Files:: Automatic Parsing of @TeX{} files.
102 * I18n:: Internationalization
103 * Automatic:: Automatic Customization
104 * Style Files:: Writing Your own Style Support
105 * Installation:: How to install AUC @TeX{}
106 * History:: The History of AUC @TeX{}
107 * Projects:: Wishlist
108 * Credit:: Credit
109 * Key Index:: Key Index
110 * Function Index:: Function Index
111 * Variable Index:: Variable Index
112 * Concept Index:: Concept Index
113
114 @end menu
115
116 @node Copying, Introduction, top, top
117 @unnumbered Copying
118 @cindex Copying
119 @cindex Copyright
120 @cindex GPL
121 @cindex General Public License
122 @cindex License
123 @cindex Free
124 @cindex Free software
125 @cindex Distribution
126 @cindex Right
127 @cindex Warranty
128
129 (This text stolen from the @TeX{}info 2.16 distribution).
130
131 The programs currently being distributed that relate to AUC @TeX{}
132 include lisp files for GNU Emacs. These programs are @dfn{free}; this
133 means that everyone is free to use them and free to redistribute them on
134 a free basis. The AUC @TeX{} related programs are not in the public
135 domain; they are copyrighted and there are restrictions on their
136 distribution, but these restrictions are designed to permit everything
137 that a good cooperating citizen would want to do. What is not allowed
138 is to try to prevent others from further sharing any version of these
139 programs that they might get from you.@refill
140
141 Specifically, we want to make sure that you have the right to give
142 away copies of the programs that relate to AUC @TeX{}, that you receive
143 source code or else can get it if you want it, that you can change these
144 programs or use pieces of them in new free programs, and that you know
145 you can do these things.@refill
146
147 To make sure that everyone has such rights, we have to forbid you to
148 deprive anyone else of these rights. For example, if you distribute
149 copies of the AUC @TeX{} related programs, you must give the recipients all
150 the rights that you have. You must make sure that they, too, receive or
151 can get the source code. And you must tell them their rights.@refill
152
153 Also, for our own protection, we must make certain that everyone finds
154 out that there is no warranty for the programs that relate to AUC @TeX{}.
155 If these programs are modified by someone else and passed on, we want
156 their recipients to know that what they have is not what we distributed,
157 so that any problems introduced by others will not reflect on our
158 reputation.@refill
159
160 The precise conditions of the licenses for the programs currently
161 being distributed that relate to AUC @TeX{} are found in the General
162 Public Licenses that accompany them.@refill
163
164 @node Introduction, Frequently Used Commands, Copying, top
165 @include intro.texi
166
167 @node Frequently Used Commands, Advanced Features, Introduction, top
168 @chapter Inserting Frequently Used Commands
169
170 The most commonly used commands/macros of AUC @TeX{} are those which
171 simply insert templates for often used @TeX{} and/or La@TeX{}
172 constructs, like font changes, handling of environments, etc.
173 These features are very simple, and easy to learn, and help you
174 avoiding stupid mistakes like mismatched braces, or
175 @samp{\begin@{@}}-@samp{\end@{@}} pairs.@refill
176
177 @menu
178 * Quotes:: Inserting double quotes
179 * Font Specifiers:: Inserting Font Specifiers
180 * Sectioning:: Inserting chapters, sections, etc.
181 * Environments:: Inserting Environment Templates
182 @end menu
183
184 @node Quotes, Font Specifiers, Frequently Used Commands, Frequently Used Commands
185 @section Insertion of Quotes, Dollars, and Braces
186
187 @cindex Quotes
188 @cindex Double quotes
189 @cindex Braces
190 @cindex Brackets
191 @cindex Dollars
192 @cindex Math mode delimiters
193 @cindex Matching dollar signs
194 @cindex Display math mode
195
196 In @TeX{} literal double quotes @samp{"like this"} are seldom used,
197 instead two single quotes are used @samp{``like this''}. To help you
198 insert these efficiently, AUC @TeX{} allows you to continue to press
199 @kbd{"} to insert two single quotes. To get a literal double quote,
200 press @kbd{"} twice.
201
202 @deffn Command TeX-insert-quote @var{count}
203 @kindex "
204 (@kbd{"}) Insert the appropriate quote marks for TeX.
205
206 Inserts the value of @code{TeX-open-quote} (normally @samp{``}) or
207 @code{TeX-close-quote} (normally @samp{''}) depending on the context.
208 With prefix argument, always inserts @samp{"} characters.@refill
209 @end deffn
210
211 @defopt TeX-open-quote
212 String inserted by typing @kbd{"} to open a quotation.
213 @end defopt
214
215 @defopt TeX-close-quote
216 String inserted by typing @kbd{"} to open a quotation.
217 @end defopt
218
219 If you include the style file @file{german} @code{TeX-open-quote} and
220 @code{TeX-close-quote} will both be set to @samp{"}.
221
222 In AUC @TeX{}, dollar signs should match like they do in @TeX{}. This
223 has been partially implemented, we assume dollar signs always match
224 within a paragraph. The first @samp{$} you insert in a paragraph will
225 do nothing special. The second @samp{$} will match the first. This
226 will be indicated by moving the cursor temporarily over the first dollar
227 sign. If you enter a dollar sign that matches a double dollar sign
228 @samp{$$} AUC @TeX{} will automatically insert two dollar signs. If you
229 enter a second dollar sign that matches a single dollar sign, the single
230 dollar sign will automatically be converted to a double dollar sign.
231
232 @deffn Command TeX-insert-dollar @var{arg}
233 @kindex $
234 (@kbd{$}) Insert dollar sign.
235
236 Show matching dollar sign if this dollar sign end the @TeX{} math mode.
237 Ensure double dollar signs match up correctly by inserting extra
238 dollar signs when needed.
239
240 With optional @var{arg}, insert that many dollar signs.
241 @end deffn
242
243 To avoid unbalanced braces, it is useful to insert them pairwise. You
244 can do this by typing @kbd{C-c @{}.
245
246 @deffn Command TeX-insert-braces
247 @kindex C-c @{
248 (@kbd{C-c @{}) Make a pair of braces and position the cursor
249 to type inside of them.
250 @end deffn
251
252 @node Font Specifiers, Sectioning, Quotes, Frequently Used Commands
253 @section Inserting Font Specifiers
254
255 @cindex Fonts
256 @cindex Font macros
257 @cindex Changing font
258 @cindex Specifying a font
259
260 Perhaps the most used keyboard commands of AUC @TeX{} are the short-cuts
261 available for easy insertion of font changing macros. They all put the
262 font change inside a @TeX{} group, a practice that help preventing
263 subtle errors. The most significant advantage of using these command
264 instead of typing it in yourself, is that the braces will always match
265 correctly.
266
267 If you give an argument (that is, type @kbd{C-u}) to the font command,
268 the innermost font will be replaced, i.e. the font in the @TeX{} group
269 around point will be changed. The following table shows the available
270 commands, with @code{@point{}} indicating the position where the text
271 will be inserted.@refill
272
273 @table @kbd
274 @item C-c C-f C-r
275 @kindex C-c C-f C-r
276 @cindex @code{\textrm}
277 Insert roman @r{@{\textrm @point{}@}} text.
278
279 @item C-c C-f C-b
280 @kindex C-c C-f C-b
281 @cindex @code{\textbf}
282 Insert @b{bold face} @samp{@{\textbf @point{}@}} text.
283
284 @item C-c C-f C-i
285 @kindex C-c C-f C-i
286 @cindex @code{\textit}
287 Insert @i{italics} @samp{@{\textit @point{}\/@}} text.
288
289 @item C-c C-f C-e
290 @kindex C-c C-f C-e
291 @cindex @code{\emph}
292 Insert @i{emphasized} @samp{@{\emph @point{}\/@}} text.
293
294 @item C-c C-f C-s
295 @kindex C-c C-f C-s
296 @cindex @code{\textsl}
297 Insert @i{slanted} @samp{@{\textsl @point{}\/@}} text.
298
299 @item C-c C-f C-t
300 @kindex C-c C-f C-t
301 @cindex @code{\texttt}
302 Insert @t{typewriter} @samp{@{\texttt @point{}@}} text.
303
304 @item C-c C-f C-c
305 @kindex C-c C-f C-c
306 @cindex @code{\textsc}
307 Insert @sc{small caps} @samp{@{\textsc @point{}@}} text.
308
309 @item C-c C-f C-d
310 @kindex C-c C-f C-c
311 @cindex Deleting fonts
312 Delete the innermost font specification containing point.
313
314 @end table
315
316 @deffn Command TeX-font @var{arg}
317 @kindex C-c C-f
318 (@kbd{C-c C-f}) Insert template for font change command.
319
320 If @var{replace} is not nil, replace current font. @var{what}
321 determines the font to use, as specified by @code{TeX-font-list}.
322 @end deffn
323
324 @defopt TeX-font-list
325 List of fonts used by TeX-font.
326
327 Each entry is a list with three elements. The first element is the
328 key to activate the font. The second element is the string to insert
329 before point, and the third element is the string to insert after
330 point. An optional fourth element means always replace if not nil.
331 @end defopt
332
333 @node Sectioning, Environments, Font Specifiers, Frequently Used Commands
334 @section Inserting chapters, sections, etc.
335 @cindex Sectioning
336 @cindex Sections
337 @cindex Chapters
338 @cindex @code{\chapter}
339 @cindex @code{\section}
340 @cindex @code{\subsection}
341 @cindex @code{\label}
342
343 Insertion of sectioning macros, that is @samp{\chapter},
344 @samp{\section}, @samp{\subsection}, etc. and accompanying
345 @samp{\label}'s may be eased by using @kbd{C-c C-s}. This command is
346 highly customizable, the following describes the default behavior.
347
348 When invoking you will be asked for a section macro to insert. An
349 appropriate default is automatically selected by AUC @TeX{}, that is
350 either: at the top of the document; the top level sectioning for that
351 document style, and any other place: The same as the last occurring
352 sectioning command.
353
354 Next, you will be asked for the actual name of that section, and
355 last you will be asked for a label to be associated with that section.
356 The label will be prefixed by the value specified in
357 @code{LaTeX-section-hook}.
358
359 @deffn Command LaTeX-section @var{arg}
360 @kindex C-c C-s
361 (@kbd{C-c C-s}) Insert a sectioning command.
362
363 Determine the type of section to be inserted, by the argument
364 @var{arg}.@refill
365
366 @itemize @bullet
367 @item
368 If @var{arg} is nil or missing, use the current level.
369 @item
370 If @var{arg} is a list (selected by C-u), go downward one level.
371 @item
372 If @var{arg} is negative, go up that many levels.
373 @item
374 If @var{arg} is positive or zero, use absolute level:
375 @itemize +
376 @item
377 0 : part
378 @item
379 1 : chapter
380 @item
381 2 : section
382 @item
383 3 : subsection
384 @item
385 4 : subsubsection
386 @item
387 5 : paragraph
388 @item
389 6 : subparagraph
390 @end itemize
391 @end itemize
392
393 The following variables can be set to customize the function.
394
395 @vtable @code
396 @item LaTeX-section-hook
397 Hooks to be run when inserting a section.
398 @item LaTeX-section-label
399 Prefix to all section references.
400 @end vtable
401
402 @end deffn
403
404 The precise behavior of @code{LaTeX-section} is defined by the contents
405 of @code{LaTeX-section-hook}.
406
407 @defopt LaTeX-section-hook
408 List of hooks to run when a new section is inserted.
409
410 The following variables are set before the hooks are run
411
412 @table @var
413 @item level
414 Numeric section level, default set by prefix arg to @code{LaTeX-section}.
415 @item name
416 Name of the sectioning command, derived from @var{level}.
417 @item title
418 The title of the section, default to an empty string.
419 @item toc
420 Entry for the table of contents list, default nil.
421 @item done-mark
422 Position of point afterwards, default nil meaning after the inserted
423 text.
424 @end table
425
426 A number of hooks are already defined. Most likely, you will be able to
427 get the desired functionality by choosing from these hooks.
428
429 @ftable @code
430 @item LaTeX-section-heading
431 Query the user about the name of the sectioning command. Modifies
432 @var{level} and @var{name}.
433 @item LaTeX-section-title
434 Query the user about the title of the section. Modifies @var{title}.
435 @item LaTeX-section-toc
436 Query the user for the toc entry. Modifies @var{toc}.
437 @item LaTeX-section-section
438 Insert La@TeX{} section command according to @var{name}, @var{title},
439 and @var{toc}. If @var{toc} is nil, no toc entry is inserted. If
440 @var{toc} or @var{title} are empty strings, @var{done-mark} will be
441 placed at the point they should be inserted.
442 @item LaTeX-section-label
443 Insert a label after the section command. Controlled by the variable
444 @code{LaTeX-section-label}.
445 @end ftable
446
447 To get a full featured @code{LaTeX-section} command, insert
448
449 @lisp
450 (setq LaTeX-section-hook
451 '(LaTeX-section-heading
452 LaTeX-section-title
453 LaTeX-section-toc
454 LaTeX-section-section
455 LaTeX-section-label))
456 @end lisp
457
458 in your @file{.emacs} file.
459 @end defopt
460
461 The behavior of @code{LaTeX-section-label} is determined by the
462 variable @code{LaTeX-section-label}.@refill
463
464 @defopt LaTeX-section-label
465 Default prefix when asking for a label.
466
467 If it is a string, it is used unchanged for all kinds of sections.
468 If it is nil, no label is inserted.
469 If it is a list, the list is searched for a member whose car is equal
470 to the name of the sectioning command being inserted. The cdr is then
471 used as the prefix. If the name is not found, or if the cdr is nil,
472 no label is inserted.
473
474 @cindex Prefix for labels
475 @cindex Label prefix
476 @cindex Labels
477 By default, chapters have a prefix of @samp{cha:} while sections and
478 subsections have a prefix of @samp{sec:}. Labels are not automatically
479 inserted for other types of sections.
480 @end defopt
481
482 @node Environments, , Sectioning, Frequently Used Commands
483 @section Inserting Environment Templates
484 @cindex Environments
485 @cindex @samp{\begin}
486 @cindex @samp{\end}
487
488 A large apparatus is available that supports insertions of environments,
489 that is @samp{\begin@{@}} --- @samp{\end@{@}} pairs.
490
491 AUC @TeX{} is aware of most of the actual environments available in a
492 specific document. This is achieved by examining your
493 @samp{\documentstyle} command, and consulting a precompiled list of
494 environments available in a large number of styles.
495
496 You insert an environment with @kbd{C-c C-e}, and select an environment
497 type. Depending on the environment, AUC @TeX{} may ask more questions
498 about the optional parts of the selected environment type. With
499 @kbd{C-u C-c C-e} you will change the current environment.
500
501 @deffn Command LaTeX-environment @var{arg}
502 @kindex C-c C-e
503 (@kbd{C-c C-e}) AUC @TeX{} will prompt you for an environment
504 to insert. At this prompt, you may press @key{TAB} or @key{SPC} to
505 complete a partially written name, and/or to get a list of available
506 environments. After selection of a specific environment AUC @TeX{} may
507 prompt you for further specifications.
508
509 If the optional argument @var{arg} is not-nil (i.e. you have given a
510 prefix argument), the current environment is modified and no new
511 environment is inserted.
512 @end deffn
513
514 As a default selection, AUC @TeX{} will suggest the environment last
515 inserted or, as the first choice the value of the variable
516 @code{LaTeX-default-environment}.
517
518 @defopt LaTeX-default-environment
519 Default environment to insert when invoking @samp{LaTeX-environment}
520 first time.
521 @end defopt
522
523 If the document is empty, or the cursor is placed at the top of the
524 document, AUC @TeX{} will default to insert a `document' environment.
525
526 Most of these are described further in the following sections, and you
527 may easily specify more, as described in `Customizing environments'.
528
529 @menu
530 * Floats:: Floats
531 * Itemize-like:: Itemize-like
532 * Tabular-like:: Tabular-like
533 * Customizing environments:: Customizing environments
534 @end menu
535
536 You can close the current environment with @kbd{C-c ]}, but we suggest
537 that you use @kbd{C-c C-e} to insert complete environments instead.
538
539 @deffn Command LaTeX-close-environment
540 @kindex C-c ]
541 (@kbd{C-c ]}) Insert an @samp{\end} that matches the current environment.
542 @end deffn
543
544 @node Floats, Itemize-like, Environments, Environments
545 @subsection Floats
546 @cindex Floats
547 @cindex Figures
548 @cindex Figure environment
549 @cindex Tables
550 @cindex Table environment
551
552 Figures and tables (i.e., floats) may also be inserted using AUC @TeX{}.
553 After choosing either `figure' or `table' in the environment list
554 described above, you will be prompted for a number of additional things.
555
556 @table @var
557 @item float-to
558 This field is the option of float environments that controls how they are
559 placed in the final document. In La@TeX{} this is a sequence of the
560 letters @samp{htbp} as described in the La@TeX{} manual. The value will
561 default to the value of @code{LaTeX-float}.
562 @vindex LaTeX-float
563
564 @item caption
565 This is the caption of the float.
566
567 @item label
568 The label of this float. The label will have a default prefix, which is
569 controlled by the variables @code{LaTeX-figure-label} and
570 @code{LaTeX-table-label}.
571 @vindex LaTeX-figure-label
572 @vindex LaTeX-table-label
573 @cindex Prefix for labels
574 @cindex Label prefix
575 @cindex Labels
576 @end table
577
578 Moreover, in the case of a `figure' environment, you will be asked if
579 you want to insert a `center' environment inside the figure.
580
581 @defopt LaTeX-float
582 Default placement for floats.
583 @end defopt
584
585 @defopt LaTeX-figure-label
586 Prefix to use for figure labels.
587 @end defopt
588
589 @defopt LaTeX-table-label
590 Prefix to use for table labels.
591 @end defopt
592
593 @node Itemize-like, Tabular-like, Floats, Environments
594 @subsection Itemize-like
595 @cindex Itemize
596 @cindex Enumerates
597 @cindex Descriptions
598 @cindex Items
599 @cindex \item
600
601 In an itemize-like environment, nodes (i.e., @samp{\item}s) may be
602 inserted using @kbd{C-c @key{LFD}}.
603
604 @deffn Command LaTeX-insert-item
605 @kindex C-c @key{LFD}
606 (@kbd{C-c @key{LFD}}) Close the current item, move to the next line and
607 insert an appropriate @samp{\item} for the current environment. That is,
608 `itemize' and `enumerate' will have @samp{\item } inserted, while
609 `description' will have @samp{\item[]} inserted.
610 @end deffn
611
612 @node Tabular-like, Customizing environments, Itemize-like, Environments
613 @subsection Tabular-like
614
615 When inserting Tabular-like environments, that is, `tabular' `array'
616 etc., you will be prompted for a template for that environment.
617
618 @node Customizing environments, , Tabular-like, Environments
619 @subsection Customizing environments
620
621 @xref{Adding Environments}, for how to customize the list of known
622 environments.
623
624 @node Advanced Features, Formatting, Frequently Used Commands, top
625 @chapter Advanced Editing Features
626 @cindex Advanced features
627
628 The previous chapter described how to write the main body of the text
629 easily and with a minimum of errors. In this chapter we will describe
630 some features for entering more specialized sorts of text, and for
631 indenting and navigating through the document.
632
633 @menu
634 * Mathematics:: Entering Mathematics
635 * Completion:: Completion
636 * Commenting:: Commenting
637 * Marking and formatting:: Marking, Formatting and Indenting
638 * Outline:: Hiding text
639 @end menu
640
641 @node Mathematics, Completion, Advanced Features, Advanced Features
642 @section Entering Mathematics
643 @cindex Mathematics
644 @cindex Symbols
645 @cindex Abbreviations
646
647 @TeX{} is written by a mathematician, and has always contained good
648 support for formatting mathematical text. AUC @TeX{} supports this
649 tradition, by offering a special minor mode for entering text with many
650 mathematic symbols. You can enter this mode by typing @kbd{C-c
651 ~}.@refill
652
653 @deffn Command LaTeX-math-mode
654 @kindex C-c ~
655 (@kbd{C-c ~}) Toggle LaTeX-math-mode. This is a minor mode rebinding
656 the key @code{LaTeX-math-abbrev-prefix} to allow easy typing of
657 mathematical symbols. @kbd{`} will read a character from the keyboard,
658 and insert the symbol as specified in @code{LaTeX-math-list}. If given a
659 prefix argument, the symbol will be surrounded by dollar signs.@refill
660 @end deffn
661
662 You can use another prefix key (instead of @kbd{`}) by setting the
663 variable LaTeX-math-abbrev-prefix.
664
665 @defopt LaTeX-math-abbrev-prefix
666 A string containing the prefix of @code{LaTeX-math-mode} commands;
667 This value defaults to @kbd{`}. @refill
668 @end defopt
669
670 The variable @code{LaTeX-math-list} holds the actual mapping.
671
672 @defopt LaTeX-math-list
673 A list containing key command mappings to use in @code{LaTeX-math-mode}.
674 The car of each element is the key and the cdr is the macro name.
675 @end defopt
676
677 The AUC @TeX{} distributions includes a reference card for
678 @code{LaTeX-math-mode} with a list of all math mode commands.
679
680 @node Completion, Commenting, Mathematics, Advanced Features
681 @section Completion
682 @cindex Completion
683 @cindex Expansion
684 @cindex Macro expansion
685 @cindex Macro completion
686 @cindex Macro arguments
687 @cindex Arguments to @TeX{} macros
688
689 Emacs lisp programmers probably know the @code{lisp-complete-symbol}
690 command, usually bound to @kbd{M-@key{TAB}}. Users of the wonderful
691 ispell mode know and love the @code{ispell-complete-word} command from
692 that package. Similarly, AUC @TeX{} has a @code{TeX-complete-symbol}
693 command, usually bound to @kbd{M-@key{TAB}}. Using
694 @code{LaTeX-complete-symbol} makes it easier to type and remember the
695 names of long La@TeX{} macros.
696
697 In order to use @code{TeX-complete-symbol}, you should write a backslash
698 and the start of the macro. Typing @kbd{M-@key{TAB}} will now
699 complete as much of the macro, as it unambiguously can. For example, if
700 you type `@samp{\renewc}' and then `@kbd{M-@key{TAB}}, it will expand
701 to `@samp{\renewcommand}'.
702
703 @deffn Command TeX-complete-symbol
704 @kindex M-@key{TAB}
705 (@kbd{M-@key{TAB}}) Complete @TeX{} symbol before point.
706 @end deffn
707
708 A more direct way to insert a macro is with @code{TeX-insert-macro},
709 bound to @kbd{C-c C-m}. It has the advantage over completion that it
710 knows about the argument of most standard La@TeX{} macros, and will
711 prompt for them. It also knows about the type of the arguments, so it
712 will for example give completion for the argument to @samp{\include}.
713 Some examples are listed below.
714
715 @deffn Command TeX-insert-macro
716 @kindex C-c C-m
717 (@kbd{C-c C-m}) Prompt (with completion) for the name of a @TeX{} macro,
718 and if AUC @TeX{} knows the macro, prompt for each argument.
719 @end deffn
720
721 As a default selection, AUC @TeX{} will suggest the macro last inserted
722 or, as the first choice the value of the variable
723 @code{TeX-default-macro}.
724
725 @defopt TeX-default-macro
726 Default macro to insert when invoking @code{TeX-insert-macro} first time.
727 @end defopt
728
729 A faster alternative is to bind the function @code{TeX-electric-macro}
730 to @samp{\}. This can be done by setting the variable @code{TeX-electric-escape}
731
732 @defopt TeX-electric-escape
733 If this is non-nil when AUC @TeX{} is loaded, the @TeX{} escape
734 character @samp{\} will be bound to @code{TeX-electric-macro}
735 @end defopt
736
737 The difference between @code{TeX-insert-macro} and
738 @code{TeX-electric-macro} is that space will complete and exit from the
739 minibuffer in @code{TeX-electric-macro}. Use @key{TAB} if you merely
740 want to complete.
741
742 @deffn Command TeX-electric-macro
743 Prompt (with completion) for the name of a @TeX{} macro,
744 and if AUC @TeX{} knows the macro, prompt for each argument.
745 Space will complete and exit.
746 @end deffn
747
748 By default AUC @TeX{} will put an empty set braces @samp{@{@}} after a
749 macro with no arguments to stop it from eating the next whitespace.
750 This can be stopped by entering @code{LaTeX-math-mode},
751 @pxref{Mathematics}, or by setting @code{TeX-insert-braces} to nil
752
753 @defopt TeX-insert-braces
754 If non-nil, append a empty pair of braces after inserting a macro.
755 @end defopt
756
757 Completions work because AUC @TeX{} can analyze @TeX{} files, and store
758 symbols in emacs lisp files for later retrieval. @xref{Automatic}, for
759 more information.
760
761 @cindex \cite, completion of
762 @cindex Bib@TeX{}, completion
763 @cindex cite, completion of
764 @cindex bibliography, completion
765 @cindex citations, completion of
766 @cindex \label, completion
767 @cindex \ref, completion
768 @cindex labels, completion of
769 AUC @TeX{} will also make completion for many macro arguments, for
770 example existing labels when you enter a @samp{\ref} macro with
771 @code{TeX-insert-macro} or @code{TeX-electric-macro}, and Bib@TeX{}
772 entries when you enter a @samp{\cite} macro. For this kind of
773 completion to work, parsing must be enabled as described in
774 @pxref{Parsing Files}. For @samp{\cite} you must also make sure that
775 the Bib@TeX{} files have been saved at least once after you enabled
776 automatic parsing on save, and that the basename of the Bib@TeX{} file
777 does not conflict with the basename of one of @TeX{} files.
778
779 @node Commenting, Marking and formatting, Completion, Advanced Features
780 @section Commenting
781
782 It is often necessary to comment out temporarily a region of @TeX{} or
783 La@TeX{} code. This can be done with the commands @kbd{C-c ;} and
784 @kbd{C-c %}. @kbd{C-c ;} will comment out all lines in the current
785 region, while @kbd{C-c %} will comment out the current paragraph. To
786 uncomment, simply type @kbd{C-u - C-c ;} to uncomment all lines in the
787 region, or @kbd{C-u - C-c %} uncomment all comment lines around point.
788
789 By default, these commands will insert or remove a single @samp{%}. To
790 insert more than one, give an argument. @kbd{C-u 5 C-c %} will add five
791 @samp{%} to each line, while @kbd{C-u - 5 C-c %} will remove up to 5
792 @samp{%} from each line.
793
794 @deffn Command TeX-comment-region @var{count}
795 @kindex C-c ;
796 (@kbd{C-c ;}) Add or remove @samp{%} from the beginning of each line in
797 the current region, as specified by @var{count}.
798 @end deffn
799
800 @deffn Command TeX-comment-paragraph @var{count}
801 @kindex C-c %
802 (@kbd{C-c %}) Add or remove @samp{%} from the beginning of each line in
803 the current paragraph, as specified by @var{count}. When removing
804 @samp{%}'s the paragraph is considered to consist of all preceding and
805 succeeding lines starting with a @samp{%}, until the first non-comment
806 line.
807 @end deffn
808
809 @node Marking and formatting, Outline, Commenting, Advanced Features
810 @section Marking, Formatting and Indenting
811 @cindex Formatting
812 @cindex Filling
813 @cindex Indenting
814 @cindex Reformatting
815 @cindex Reindenting
816
817 AUC @TeX{} contains very advanced handling of indentation and
818 reformatting of the La@TeX{} source. If you have already tried AUC
819 @TeX{} with @code{auto-fill-mode} enabled, you may have noted that the
820 source is automatically indented and formatted as you write it. More
821 over, AUC @TeX{} is able to format sections of text on demand.
822
823 It is important to realize, that AUC @TeX{} comes with `formatting' in
824 two fashions. Either letting @TeX{} format the file, or letting AUC
825 @TeX{} make the ASCII document look better.
826
827 Indentation is done by La@TeX{} environments and by @TeX{} groups, that
828 is the body of an environment is indented by the value of
829 @code{LaTeX-indent-level} (default 2). Also, items of an `itemize-like'
830 environment are indented by the value of @code{LaTeX-item-indent},
831 default @minus{}2. This indentation makes it easier to see the
832 structure of the document, and to catch errors such as a missing close
833 brace. Thus, the indentation is done for precisely the same reasons
834 that you would indent ordinary computer programs.
835 @vindex LaTeX-indent-level
836 @vindex LaTeX-item-indent
837
838 The following is a short sample of an itemize environment indented by
839 AUC @TeX{}. If more environment are nested, they are indented
840 `accumulated' just like most programming languages usually are seen
841 indented in nested constructs.
842
843 @example
844 \begin@{itemize@}
845 \item Insertion of templates for logical-structural compositions such as
846 environments and sections.
847 \item Hot-keys for easy access to certain often used constructs, e.g.,
848 font changes, accented letters, and mathematical symbols.
849 \item Running application programs (such as \TeX), and then parsing
850 the output so that errors in the document may be located
851 easily.
852 \item Support for multi-file documents.
853 \item Online help for \AllTeX\ error messages.
854 \item Outlining\Dash i.e., manipulating the document as a composition
855 of nested/sequential logical constructs.
856 \item Instant formatting and indentation of the \ascii-document in
857 order to make it easier to read.
858 \item `Completion' (and thereby spell-checking) of partially written
859 control sequences.
860 \end@{itemize@}
861 @end example
862
863 You can format and indent single lines, paragraphs, environments, or
864 sections.
865
866 @table @kbd
867 @item @key{TAB}
868 @kindex @key{TAB}
869 @findex LaTeX-indent-line
870 @code{LaTeX-indent-line} will indent the current line.
871
872 @item @key{LFD}
873 @kindex @key{LFD}
874 @code{reindent-then-newline-and-indent} indents the current line, and
875 then inserts a new line (much like @key{RET}) and move the cursor to an
876 appropriate position by the left margin.
877
878 @item M-q
879 @kindex M-q
880 Alias for @kbd{C-c C-q C-p}
881
882 @item C-c C-q C-p
883 @kindex C-c C-q C-p
884 @findex LaTeX-fill-paragraph
885 @code{LaTeX-fill-paragraph} will reformat or `fill' the current
886 paragraph.
887
888 @item C-c C-q C-e
889 @kindex C-c C-q C-e
890 @findex LaTeX-fill-environment
891 @code{LaTeX-fill-environment} will reformat or `fill' the current
892 environment. This may e.g. be the `document' environment, in which case
893 the entire document will be formatted.
894
895 @item C-c C-q C-s
896 @kindex C-c C-q C-s
897 @findex LaTeX-fill-section
898 @code{LaTeX-fill-section} will reformat or `fill' the current
899 logical sectional unit.
900
901 @item M-g
902 @kindex M-g
903 Alias for @kbd{C-c C-q C-r}
904
905 @item C-c C-q C-r
906 @kindex C-c C-q C-r
907 @findex LaTeX-fill-region
908 @code{LaTeX-fill-region} will format or `fill' the current region.
909 @end table
910
911 @strong{Warning:} The formatting cannot handle tabular-like
912 environments. Those will be completely messed-up if you try to format
913 them.
914
915 @defopt LaTeX-indent-level
916 Number of spaces to add to the indentation for each @samp{\begin} not
917 matched by a @samp{\end}.@refill
918 @end defopt
919
920 @defopt LaTeX-item-indent
921 Number of spaces to add to the indentation for @samp{\item}'s in list
922 environments.@refill
923 @end defopt
924
925 @defopt TeX-brace-indent-level
926 Number of spaces to add to the indentation for each @samp{@{} not
927 matched by a @samp{@}}.@refill
928 @end defopt
929
930 @node Outline, , Marking and formatting, Advanced Features
931 @section Outlining the Document
932 @cindex Outlining
933 @cindex Headers
934 @cindex Sections
935 @cindex Overview
936 @cindex Folding
937
938 GNU Emacs earlier than version 19.19 does not have a useful outline
939 mode. If you want to use outlines with old versions of emacs, please
940 get the file @file{outln-18.el} from
941 @file{sunsite.auc.dk:/packages/auctex/outln-18.el}. It is a port of the
942 Emacs 19.19 outline mode to Emacs 18 and Lucid Emacs.@refill
943
944 AUC @TeX{} supports the standard outline minor mode using La@TeX{}
945 sectioning commands as header lines. @xref{Outline Mode, , Outline
946 Mode, emacs, GNU Emacs Manual}. By default
947 @code{outline-minor-mode} will use the prefix key @kbd{C-c} which is
948 also used by AUC @TeX{}, so it is suggested that you choose another
949 prefix key by inserting
950
951 @lisp
952 (setq outline-minor-mode-prefix "\C-c\C-o") ; Or whatever...
953 @end lisp
954
955 in your @file{.emacs} file.
956
957 You can add your own headings by setting the variable
958 @code{TeX-outline-extra}.
959
960 @defvar TeX-outline-extra
961 List of extra @TeX{} outline levels.
962
963 Each element is a list with two entries. The first entry is the regular
964 expression matching a header, and the second is the level of the header.
965 A @samp{^} is automatically prepended to the regular expressions in the
966 list, so they must match text at the beginning of the line.
967
968 See @code{LaTeX-section-list} for existing header levels.
969 @end defvar
970
971 The following example add @samp{\item} and @samp{\bibliography} headers,
972 with @samp{\bibliography} at the same outline level as @samp{\section},
973 and @samp{\item} being below @samp{\subparagraph}.
974
975 @example
976 (setq TeX-outline-extra
977 '(("[ \t]*\\\\\\(bib\\)?item\\b" 7)
978 ("\\\\bibliography\\b" 2)))
979 @end example
980
981 You may want to check out the unbundled @file{out-xtra} package for even
982 better outline support. It is available from your favorite emacs lisp
983 archive.
984
985 @node Formatting, Multifile, Advanced Features, top
986 @chapter Formatting and Printing
987
988 The most powerful features of AUC @TeX{} may be those allowing you to
989 run (La)@TeX{} and other external commands like Bib@TeX{} and
990 @code{makeindex} from within Emacs, viewing and printing the results,
991 and moreover allowing you to @emph{debug} your documents.
992
993 @menu
994 * Commands:: Invoking external commands.
995 * Debugging:: Debugging @TeX{} and La@TeX{} output.
996 * Checking:: Checking the document.
997 * Control:: Controlling the processes.
998 @end menu
999
1000 @node Commands, Debugging, Formatting, Formatting
1001 @section Executing Commands
1002 @cindex Formatting
1003 @cindex Running La@TeX{}
1004 @cindex Running @TeX{}
1005 @cindex La@TeX{}
1006 @cindex @TeX{}
1007 @cindex Running commands
1008 @cindex Default command
1009 @cindex Header
1010 @cindex Trailer
1011 @cindex Setting the header
1012 @cindex Setting the trailer
1013 @cindex Region
1014 @cindex Region file
1015 @cindex Setting the default command
1016 @cindex Commands
1017 @cindex External Commands
1018 @cindex Indexing
1019 @cindex Making an index
1020 @cindex Running @code{makeindex}
1021 @cindex @code{makeindex}
1022 @cindex Bib@TeX{}
1023 @cindex Bibliography
1024 @cindex Literature
1025 @cindex Running Bib@TeX{}
1026 @cindex Making a bibliography
1027 @cindex Printing
1028 @cindex Writing to a printer
1029 @cindex Viewing
1030 @cindex Previewing
1031 @cindex Starting a previewer
1032
1033 Formatting the document with @TeX{} or La@TeX{}, viewing with a
1034 previewer, printing the document, running Bib@TeX{}, making an index, or
1035 checking the document with @code{lacheck} or @code{chktex} all require
1036 running an external command.
1037
1038 There are two ways to run an external command, you can either run it on
1039 all of the current documents with @code{TeX-command-master}, or on the
1040 current region with @code{TeX-command-region}.@refill
1041
1042 @deffn Command TeX-command-master
1043 @kindex C-c C-c
1044 (@kbd{C-c C-c}) Query the user for a command, and run it on the master
1045 file associated with the current buffer. The name of the master file is
1046 controlled by the variable @code{TeX-master}. The available commands are
1047 controlled by the variable @code{TeX-command-list}.@refill
1048 @vindex TeX-master
1049 @vindex TeX-command-list
1050 @end deffn
1051
1052 @xref{Installation} for a discussion about @code{TeX-command-list} and
1053 @ref{Multifile} for a discussion about @code{TeX-master}.
1054
1055 @deffn Command TeX-command-region
1056 @kindex C-c C-r
1057 (@kbd{C-c C-r}) Query the user for a command, and run it on the ``region
1058 file''. Some commands (typically those invoking @TeX{} or La@TeX{})
1059 will write the current region into the region file, after extracting the
1060 header and tailer from the master file. If mark is not active, use the
1061 old region. The name of the region file is controlled by the variable
1062 @code{TeX-region}. The name of the master file is controlled by the
1063 variable @code{TeX-master}. The header is all text up to the line
1064 matching the regular expression @code{TeX-header-end}. The trailer is
1065 all text from the line matching the regular expression
1066 @code{TeX-trailer-start}. The available commands are controlled by the
1067 variable @code{TeX-command-list}.@refill
1068 @vindex TeX-region
1069 @vindex TeX-header-end
1070 @vindex TeX-trailer-start
1071 @vindex TeX-master
1072 @vindex TeX-command-list
1073 @end deffn
1074
1075 AUC @TeX{} will allow one process for each document, plus one process
1076 for the region file to be active at the same time. Thus, if you are
1077 editing @var{n} different documents, you can have @var{n} plus one
1078 processes running at the same time. If the last process you started was
1079 on the region, the commands described in @ref{Debugging} and
1080 @ref{Control} will work on that process, otherwise they will work on the
1081 process associated with the current document.
1082
1083 @defopt TeX-region
1084 The name of the file for temporarily storing the text when formatting
1085 the current region.
1086 @end defopt
1087
1088 @defopt TeX-header-end
1089 A regular expression matching the end of the header. By default, this
1090 is @samp{\begin@{document@}} in La@TeX{} mode and @samp{%**end of
1091 header} in @TeX{} mode.@refill
1092 @end defopt
1093
1094 @defopt TeX-trailer-start
1095 A regular expression matching the start of the trailer. By default,
1096 this is @samp{\end@{document@}} in La@TeX{} mode and @samp{\bye} in
1097 @TeX{} mode.@refill
1098 @end defopt
1099
1100 AUC @TeX{} will try to guess what command you want to invoke, but by
1101 default it will assume that you want to run @TeX{} in @TeX{} mode and
1102 La@TeX{} in La@TeX{} mode. You can overwrite this by setting the
1103 variable @code{TeX-command-default}.
1104
1105 @defopt TeX-command-default
1106 The default command to run in this buffer. Must be an entry in
1107 @code{TeX-command-list}.
1108 @end defopt
1109
1110 If you want to overwrite the values of @code{TeX-header-end},
1111 @code{TeX-trailer-start}, or @code{TeX-command-default}, you can do that
1112 for all files by setting them in either @code{TeX-mode-hook},
1113 @code{plain-TeX-mode-hook}, or @code{LaTeX-mode-hook}. To overwrite
1114 them for a single file, define them as file variables (@pxref{File
1115 Variables,,,emacs,The Emacs Editor}). You do this by putting special
1116 formatted text near the end of the file.
1117 @cindex Variables
1118 @cindex File Variables
1119 @cindex Local Variables
1120
1121 @example
1122 % Local Variables:
1123 % TeX-header-end: "% End-Of-Header"
1124 % TeX-trailer-start: "% Start-Of-Trailer"
1125 % TeX-command-default: "SliTeX"
1126 % End:
1127 @end example
1128
1129 AUC @TeX{} will try to save any buffers related to the document, and
1130 check if the document needs to be reformatted. If the variable
1131 @code{TeX-save-query} is non-nil, AUC @TeX{} will query before saving
1132 each file. By default AUC @TeX{} will check emacs buffers associated
1133 with files in the current directory, in one of the
1134 @code{TeX-macro-private} directories, and in the @code{TeX-macro-global}
1135 directories. You can change this by setting the variable
1136 @code{TeX-check-path}.@refill
1137
1138 @defopt TeX-check-path
1139 Directory path to search for dependencies.
1140
1141 If nil, just check the current file.
1142 Used when checking if any files have changed.
1143 @end defopt
1144
1145 @node Debugging, Checking, Commands, Formatting
1146 @section Catching the errors
1147 @cindex Debugging
1148 @cindex Errors
1149 @cindex Parsing errors
1150 @cindex Parsing TeX output
1151 @cindex Next error
1152 @cindex Parsing LaTeX errors
1153 @cindex Overfull boxes
1154 @cindex Bad boxes
1155 @cindex Wonderful boxes
1156
1157 Once you've formatted your document you may `debug' it, i.e. browse
1158 through the errors (La)@TeX{} reported.
1159
1160 @deffn Command TeX-next-error
1161 @kindex C-c `
1162 (@kbd{C-c `}) Go to the next error reported by @TeX{}. The view will
1163 be split in two, with the cursor placed as close as possible to the
1164 error in the top view. In the bottom view, the error message will be
1165 displayed along with some explanatory text.
1166 @end deffn
1167
1168 Normally AUC @TeX{} will only report real errors, but you may as well
1169 ask it to report `bad boxes' as well.
1170
1171 @deffn Command TeX-toggle-debug-bad-boxes
1172 @kindex C-c C-w
1173 (@kbd{C-c C-w}) Toggle whether AUC @TeX{} should stop at bad boxes
1174 (i.e. over/under full boxes) as well as at normal errors.
1175 @end deffn
1176
1177 As default, AUC @TeX{} will display that special @samp{*help*} buffer
1178 containing the error reported by @TeX{} along with the documentation.
1179 There is however an `expert' option, which allows you to display the
1180 real @TeX{} output.
1181
1182 @defopt TeX-display-help
1183 When non-nil AUC @TeX{} will automatically display a help text whenever
1184 an error is encountered using @code{TeX-next-error} (@kbd{C-c `}).
1185 @end defopt
1186
1187 @node Checking, Control, Debugging, Formatting
1188 @section Checking for problems
1189 @cindex Checking
1190 @cindex @code{lacheck}
1191 @cindex @code{chktex}
1192 @cindex Finding errors
1193 @cindex Running @code{lacheck}
1194 @cindex Running @code{chktex}
1195 @cindex Style
1196 @cindex Problems
1197
1198 Running @TeX{} or La@TeX{} will only find regular errors in the
1199 document, not examples of bad style. Furthermore, description of the
1200 errors may often be confusing. The utility @code{lacheck} can be used
1201 to find style errors, such as forgetting to escape the space after an
1202 abbreviation or using @samp{...} instead of @samp{\ldots} and many other
1203 problems like that. You start @code{lacheck} with @kbd{C-c C-c C h e c
1204 k @key{RET}}. The result will be a list of errors in the
1205 @samp{*compilation*} buffer. You can go through the errors with
1206 @kbd{C-x `} (@code{next-error}, @pxref{Compilation,,,emacs,The Emacs
1207 Editor}), which will move point to the location of the next
1208 error.@refill
1209
1210 Another newer program which can be used to find errors is @code{chktex}.
1211 It is much more configurable than @code{lacheck}, but doesn't find all
1212 the problems @code{lacheck} does, at least in its default configuration.
1213 You must install the programs before using them, and for @code{chktex}
1214 you must also modify @code{TeX-command-list}. You can get
1215 @code{lacheck} from @file{<URL:ftp://sunsite.auc.dk/pub/text/lacheck/>}
1216 or alternatively @code{chktex} from
1217 @file{<URL:ftp://ftp.dante.de/pub/tex/support/chktex/>}. Search for
1218 `chktex' in @file{tex.el} to see how to switch between them.@refill They
1219 are
1220
1221 @node Control, , Checking, Formatting
1222 @section Controlling the output
1223 @cindex Controlling the output
1224 @cindex Output
1225 @cindex Redisplay output
1226 @cindex Processes
1227 @cindex Killing a process
1228 @cindex Finding the master file
1229 @cindex Master file
1230 @cindex Stopping a process
1231 @cindex Current file
1232 @cindex Finding the current file
1233
1234 A number of commands are available for controlling the output of an
1235 application running under AUC @TeX{}
1236
1237 @deffn Command TeX-kill-job
1238 @kindex C-c C-k
1239 (@kbd{C-c C-k}) Kill currently running external application.
1240 This may be either of @TeX{}, La@TeX{}, previewer Bib@TeX{} etc.
1241 @end deffn
1242
1243 @deffn Command TeX-recenter-output-buffer
1244 @kindex C-c C-l
1245 (@kbd{C-c C-l}) Recenter the output buffer so that the bottom line is
1246 visible.
1247 @end deffn
1248
1249 @deffn Command TeX-home-buffer
1250 @kindex C-c ^
1251 (@kbd{C-c ^}) Go to the `master' file in the document associated with
1252 the current buffer, or if already there, to the file where the current
1253 process was started.
1254 @end deffn
1255
1256 @node Multifile, Parsing Files, Formatting, top
1257 @chapter Multifile Documents
1258 @cindex Multifile Documents
1259 @cindex Documents
1260 @cindex Documents with multiple files
1261 @cindex Multiple Files
1262 @cindex Many Files
1263 @cindex Including
1264 @cindex \include
1265 @cindex Inputing
1266 @cindex \input
1267 @cindex Master file
1268
1269 You may wish spread a document over many files (as you are likely to do if
1270 there are multiple authors, or if you have not yet discovered the power
1271 of the outline commands (@pxref{Outline})). This can be done by having a
1272 ``master'' file in which you include the various files with the @TeX{}
1273 macro @samp{\input} or the La@TeX{} macro @samp{\include}. These
1274 files may also include other files themselves. However, to format the
1275 document you must run the commands on the top level master file.@refill
1276
1277 When you, for example, ask AUC @TeX{} to run a command on the master file,
1278 it has no way of knowing the name of the master file. By default,
1279 it will assume that the current file is the master file. If you insert
1280 the following in your @file{.emacs} file AUC @TeX{} will use a more
1281 advanced algorithm.
1282
1283 @lisp
1284 (setq-default TeX-master nil) ; Query for master file.
1285 @end lisp
1286
1287 If AUC @TeX{} finds the line indicating the end of the header in a
1288 master file (@code{TeX-header-end}), it can figure out for itself that
1289 this is a master file. Otherwise, it will ask for the name of the
1290 master file associated with the buffer. To avoid asking you again, AUC
1291 @TeX{} will automatically insert the name of the master file as a file
1292 variable (@pxref{File Variables,,,emacs,The Emacs Editor}). You can
1293 also insert the file variable yourself, by putting the following text at
1294 the end of your files.@refill
1295 @findex TeX-header-end
1296
1297 @example
1298 % Local Variables:
1299 % TeX-master: "master"
1300 % End:
1301 @end example
1302
1303 You should always set this variable to the name of the top level document. If
1304 you always use the same name for your top level documents, you can set
1305 @code{TeX-master} in your @file{.emacs} file.
1306
1307 @lisp
1308 (setq-default TeX-master "master") ; All master files called "master".
1309 @end lisp
1310
1311 @defopt TeX-master
1312 The master file associated with the current buffer. If the file being
1313 edited is actually included from another file, then you can tell AUC @TeX{}
1314 the name of the master file by setting this variable. If there are
1315 multiple levels of nesting, specify the top level file.@refill
1316
1317 If this variable is @code{nil}, AUC @TeX{} will query you for the
1318 name.@refill
1319
1320 If the variable is @code{t}, then AUC @TeX{} will assume the file is a master
1321 file itself.@refill
1322
1323 If the variable is @code{shared}, then AUC @TeX{} will query for the name,
1324 but will not change the file.@refill
1325
1326 It is suggested that you use the File Variables (@pxref{File
1327 Variables,,,emacs,The Emacs Editor}) to set this variable permanently
1328 for each file.@refill
1329 @end defopt
1330
1331 @defopt TeX-one-master
1332 Regular expression matching ordinary TeX files.
1333
1334 You should set this variable to match the name of all files, for which
1335 it is a good idea to append a @code{TeX-master} file variable entry
1336 automatically. When AUC @TeX{} adds the name of the master file as a
1337 file variable, it does not need to ask next time you edit the file.
1338
1339 If you dislike AUC @TeX{} automatically modifying your files, you can
1340 set this variable to @samp{"<none>"}. By default, AUC @TeX{} will modify
1341 any file with an extension of @samp{.tex}.@refill
1342 @end defopt
1343
1344 AUC @TeX{} keeps track of macros, environments, labels, and style
1345 files that are used in a given document. For this to work with
1346 multifile documents, AUC @TeX{} has to have a place to put the
1347 information about the files in the document. This is done by having an
1348 @file{auto} subdirectory placed in the directory where your document is
1349 located. Each time you save a file, AUC @TeX{} will write information
1350 about the file into the @file{auto} directory. When you load a file,
1351 AUC @TeX{} will read the information in the @file{auto} directory
1352 about the file you loaded @emph{and the master file specified by
1353 @code{TeX-master}}. Since the master file (perhaps indirectly) includes
1354 all other files in the document, AUC @TeX{} will get information from
1355 all files in the document. This means that you will get from each file,
1356 for example, completion for all labels defined anywhere in the document.
1357
1358 AUC TeX will create the @file{auto} directory automatically if
1359 @code{TeX-auto-save} is non-nil. Without it, the files in the document
1360 will not know anything about each other, except for the name of the
1361 master file. @xref{Automatic Local}.
1362
1363 @deffn Command TeX-save-document
1364 @kindex C-c C-d
1365 (@kbd{C-c C-d}) Save all buffers known to belong to the current document.
1366 @end deffn
1367
1368 @defopt TeX-save-query
1369 If non-nil, then query the user before saving each file with
1370 @code{TeX-save-document}.
1371 @end defopt
1372
1373
1374 @node Parsing Files, I18n, Multifile, top
1375 @chapter Automatic Parsing of @TeX{} files.
1376 @cindex Parsing @TeX{}
1377 @cindex Automatic Parsing
1378 @cindex Tabs
1379 @cindex Tabify
1380 @cindex Untabify
1381
1382 AUC @TeX{} depends heavily on being able to extract information from the
1383 buffers by parsing them. Since parsing the buffer can be somewhat slow,
1384 the parsing is initially disabled. You are encouraged to enable them by
1385 adding the following lines to your @file{.emacs} file.
1386
1387 @lisp
1388 (setq TeX-parse-self t) ; Enable parse on load.
1389 (setq TeX-auto-save t) ; Enable parse on save.
1390 @end lisp
1391
1392 The later command will make AUC @TeX{} store the parsed information in
1393 an @file{auto} subdirectory in the directory each time the @TeX{} files
1394 are stored, @pxref{Automatic Local}. If AUC @TeX{} finds the pre-parsed
1395 information when loading a file, it will not need to reparse the buffer.
1396 The information in the @file{auto} directory is also useful for
1397 multifile documents @pxref{Multifile}, since it allows each file to
1398 access the parsed information from all the other files in the document.
1399 This is done by first reading the information from the master file, and
1400 then recursively the information from each file stored in the master
1401 file.@refill
1402
1403 The variables can also be done on a per file basis, by changing the file
1404 local variables.
1405
1406 @example
1407 % Local Variables:
1408 % TeX-parse-self: t
1409 % TeX-auto-save: t
1410 % End:
1411 @end example
1412
1413 Even when you have disabled the automatic parsing, you can force the
1414 generation of style information by pressing @kbd{C-c C-n}. This is
1415 often the best choice, as you will be able to decide when it is
1416 necessary to reparse the file.
1417
1418 @defopt TeX-parse-self
1419 Parse file after loading it if no style hook is found for it.
1420 @end defopt
1421
1422 @defopt TeX-auto-save
1423 Automatically save style information when saving the buffer.
1424 @end defopt
1425
1426 @deffn Command TeX-normal-mode @var{arg}
1427 @kindex C-c C-n
1428 (@kbd{C-c C-n}) Remove all information about this buffer, and apply the
1429 style hooks again. Save buffer first including style information. With
1430 optional argument, also reload the style hooks.
1431 @end deffn
1432
1433 When AUC TeX saves your buffer, it will by default convert all tabs in
1434 your buffer into spaces. To disable this behaviour, insert the
1435 following in your @file{.emacs} file.
1436
1437 @lisp
1438 (setq TeX-auto-untabify nil)
1439 @end lisp
1440
1441 @defopt TeX-auto-untabify
1442 Automatically remove all tabs from a file before saving it.
1443 @end defopt
1444
1445 Instead of disabling the parsing entirely, you can also speed it
1446 significantly up by limiting the information it will search for (and
1447 store) when parsing the buffer. You can do this by setting the default
1448 values for the buffer local variables @code{TeX-auto-regexp-list} and
1449 @code{TeX-auto-parse-length} in your @file{.emacs} file.
1450
1451 @lisp
1452 ;; Only parse \documentstyle information.
1453 (setq-default TeX-auto-regexp-list 'LaTeX-auto-minimal-regexp-list)
1454 ;; The documentstyle command is usually near the beginning.
1455 (setq-default TeX-auto-parse-length 2000)
1456 @end lisp
1457
1458 This example will speed the parsing up significantly, but AUC @TeX{}
1459 will no longer be able to provide completion for labels, macros,
1460 environments, or bibitems specified in the document, nor will it know
1461 what files belong to the document.
1462
1463 These variables can also be specified on a per file basis, by changing
1464 the file local variables.
1465
1466 @example
1467 % Local Variables:
1468 % TeX-auto-regexp-list: TeX-auto-full-regexp-list
1469 % TeX-auto-parse-length: 999999
1470 % End:
1471 @end example
1472
1473 @defopt TeX-auto-regexp-list
1474 List of regular expressions used for parsing the current file.
1475 @end defopt
1476
1477 @defopt TeX-auto-parse-length
1478 Maximal length of TeX file that will be parsed.
1479 @end defopt
1480
1481 The pre-specified lists of regexps are defined below. You can use these
1482 before loading AUC @TeX{} by quoting them, as in the example above.
1483
1484 @defvr Constant TeX-auto-empty-regexp-list
1485 Parse nothing
1486 @end defvr
1487
1488 @defvr Constant LaTeX-auto-minimal-regexp-list
1489 Only parse documentstyle.
1490 @end defvr
1491
1492 @defvr Constant LaTeX-auto-label-regexp-list
1493 Only parse La@TeX{} labels.
1494 @end defvr
1495
1496 @defvr Constant LaTeX-auto-regexp-list
1497 Parse common La@TeX{} commands.
1498 @end defvr
1499
1500 @defvr Constant plain-TeX-auto-regexp-list
1501 Parse common plain @TeX{} commands.
1502 @end defvr
1503
1504 @defvr Constant TeX-auto-full-regexp-list
1505 Parse all @TeX{} and La@TeX{} commands that AUC @TeX{} can use.
1506 @end defvr
1507
1508 @node I18n, Automatic, Parsing Files, top
1509 @chapter Internationalization
1510 @cindex Internationalization
1511 @cindex Character set
1512 @cindex National letters
1513
1514 There are several problems associated with editing non-English @TeX{}
1515 with GNU Emacs. Modern versions of GNU Emacs and @TeX{} are usable for
1516 European (Latin, Cyrillic, Greek) based languages, but special versions
1517 of TeX and Emacs are needed for Korean, Japanese, and Chinese.
1518
1519 @menu
1520 * European:: Using AUC @TeX{} for European languages.
1521 * Japanese:: Japanese @TeX{}
1522 @end menu
1523
1524 @node European, Japanese, I18n, I18n
1525 @section Using AUC @TeX{} for European languages.
1526 @cindex Europe
1527 @cindex European Characters
1528 @cindex ISO 8859 Latin 1
1529 @cindex Latin 1
1530 @cindex ISO 8859 Latin 2
1531 @cindex Latin 2
1532 @cindex ANSI
1533 @cindex Denmark
1534 @cindex Danish
1535 @cindex Holland
1536 @cindex Dutch
1537 @cindex Germany
1538 @cindex Poland
1539
1540 First you will need a way to write non-ASCII characters. You can either
1541 use macros, or teach @TeX{} about the ISO character sets. I prefer the
1542 later, it has the advantage that the usual the standard emacs word
1543 movement and case change commands will work.
1544
1545
1546 With LaTeX2e, just add @samp{\usepackage[latin1]@{inputenc@}}. With older
1547 LaTeX versions, try:
1548
1549 @table @file
1550 @item isolatin1.sty
1551 Support for ISO 8859 Latin 1. Available by ftp from the host
1552 @t{ftp.uni-stuttgart.de} as
1553 @file{/pub/tex/macros/latex/contrib/misc/isolatin1.sty}.
1554
1555 @item latin2.sty
1556 Support for ISO 8859 Latin 2. Available by ftp from the host
1557 @t{ftp.uni-stuttgart.de} as
1558 @file{/pub/tex/macros/latex/contrib/latin2.sty}.
1559 @end table
1560
1561 To be able to display non-ASCII characters you will need an appropriate
1562 font and a version of GNU Emacs capable of displaying 8-bit characters.
1563 I believe all emacs versions except plain Emacs 18 are capable of this.
1564 For GNU Emacs 19, @pxref{European Display,,,emacs, The GNU Emacs
1565 Editor}. Other relevant packages are:
1566
1567 @table @file
1568 @item remap
1569 Supports lots of different 7-bit and 8-bit character sets for GNU Emacs
1570 19. Mostly useful if you have seldomly used character sets, or need to
1571 use different character set for keyboard, buffer, and display. An
1572 overkill if you just need ISO 8859 Latin 1. Currently in alpha test,
1573 but available by ftp from the host @t{ftp.iesd.auc.dk} in
1574 @file{/packages/auctex/}.
1575
1576 To get dead keys for @TeX{}, install remap and insert the following in
1577 your @file{.emacs} or @file{site-start.el} file.
1578
1579 @lisp
1580 (require 'remap)
1581
1582 (defvar all-dead-keys "~'`^"
1583 "Dead keys used by remap")
1584
1585 (remap-define-map "Dead Key"
1586 (apply 'append (mapcar 'remap-dead-map all-dead-keys)))
1587
1588 (remap-define-map "TeX Dead Key"
1589 (remap-map "Dead Key" (remap-add "Ascii" "~TeX")))
1590
1591 (setq remap-setup-alist
1592 '(("7-bit" "Raw" "L1" "US" "Ctrl" "~TeX")
1593 ("8-bit" "Raw" "L1" "L1" "Ctrl" "Raw")
1594 ("Dead/7" "Dead Key" "L1" "US" "Ctrl" "~TeX")
1595 ("Dead/8" "Dead Key" "L1" "L1" "Ctrl" "Raw")
1596 ("TeX" "TeX Dead Key" "L1" "US" "Ctrl" "Raw")))
1597 @end lisp
1598
1599 You can now enable TeX dead keys with
1600 @example
1601 @kbd{M-x remap-setup-choose RET TeX RET}
1602 @end example
1603 @end table
1604
1605 A compromise is to use use an European character set when editing the
1606 file, and convert to @TeX{} macros when reading and writing the files.
1607
1608 @table @file
1609 @item iso-tex.el
1610 @cindex @file{iso-tex.el}
1611 This file automatically converts between ISO 8859 Latin 1 encoding and
1612 La@TeX{} encodings of West European characters. It is available by ftp
1613 from @t{aida.intellektik.informatik.th-darmstadt.de} in the directory
1614 @file{/pub/gene/Emacs}.
1615 @item iso-cvt.el
1616 @cindex @file{iso-cvt.el}
1617 Much like @file{iso-tex.el} but is bundled with Emacs 19.23 and later.
1618
1619 @item x-compose.el
1620 @cindex @file{x-compose.el}
1621 Similar package bundled with new versions of XEmacs.
1622
1623 @end table
1624
1625 AUC @TeX{} supports style files for several languages. Each style file
1626 may modify some AUC @TeX{} to better support the language, and will run
1627 a language specific hook that will allow you to for example change
1628 ispell dictionary, or run code to change the keyboard remapping. The
1629 following will for example choose a Danish dictionary for documents
1630 including the @file{dk.sty} file. This requires parsing to be enabled,
1631 @pxref{Parsing Files}.
1632
1633 @lisp
1634 (add-hook 'TeX-language-dk-hook
1635 (function (lambda () (ispell-change-dictionary "danish"))))
1636 @end lisp
1637
1638 The following style files are recognized.
1639 @table @file
1640 @item dk
1641 Runs style hook @code{TeX-language-dk-hook}.
1642
1643 @item dutch
1644 Runs style hook @code{TeX-language-nl-hook}.
1645
1646 @item german
1647 Runs style hook @code{TeX-language-de-hook}.
1648 Gives @samp{"} word syntax and makes the @key{"} key insert a literal
1649 @samp{"}.
1650
1651 @item plfonts
1652 @itemx plhb
1653 Runs style hook @code{TeX-language-pl-hook}.
1654 Gives @samp{"} word syntax and makes the @key{"} key insert a literal
1655 @samp{"}. Pressing @key{"} twice will insert @samp{"<} or @samp{">}
1656 depending on context.
1657 @end table
1658
1659 @node Japanese, , European, I18n
1660 @section Japanese @TeX{}
1661 @cindex Japan
1662 @cindex Japanese
1663 @cindex Nippon
1664 @cindex NEMACS
1665 @cindex MULE
1666 @cindex j@TeX{}
1667 @cindex jLa@TeX{}
1668
1669 To write Japanese text with AUC @TeX{} you need to have versions of
1670 @TeX{} and Emacs that support Japanese. There exist at least two
1671 variants of @TeX{} for Japanese text, and AUC @TeX{} can be used with
1672 both, as well as with the two Japanese-aware Emacses, NEMACS and MULE.
1673
1674 To use the Japanese TeX variants, simply enter @code{japanese-tex-mode},
1675 @code{japanese-latex-mode}, or @code{japanese-slitex-mode}, and
1676 everything should work. If not, send mail to Shinji Kobayashi
1677 (@samp{<koba@@flab.fujitsu.co.jp>}, who kindly donated the code for
1678 supporting Japanese in AUC @TeX{}. None of the primary AUC @TeX{}
1679 maintainers understand Japanese, so they can not help you.
1680
1681 @node Automatic, Style Files, I18n, top
1682 @chapter Automatic Customization
1683 @cindex Automatic Customization
1684 @cindex Extracting @TeX{} symbols
1685 @cindex Automatic
1686 @cindex @file{auto} directories.
1687 @cindex Parsing @TeX{}
1688 @cindex @TeX{} parsing
1689 @cindex Generating symbols
1690
1691 Since AUC @TeX{} is so highly customizable, it makes sense that it is able
1692 to customize itself. The automatic customization consists of scanning
1693 @TeX{} files and extracting symbols, environments, and things like that.
1694
1695 The automatic customization is done on three different levels. The
1696 global level is the level shared by all users at your site, and consists
1697 of scanning the standard @TeX{} style files, and any extra styles added
1698 locally for all users on the site. The private level deals with those
1699 style files you have written for your own use, and use in different
1700 documents. You may have a @file{~/lib/TeX/} directory where you store
1701 useful style files for your own use. The local level is for a specific
1702 directory, and deals with writing customization for the files for your
1703 normal @TeX{} documents.
1704
1705 If compared with the environment variable @code{TEXINPUTS}, the
1706 global level corresponds to the directories built into @TeX{}. The
1707 private level corresponds to the directories you add yourself, except for
1708 @file{.}, which is the local level.
1709
1710 @menu
1711 * Automatic Global:: Automatic Customization for the Site
1712 * Automatic Private:: Automatic Customization for a User
1713 * Automatic Local:: Automatic Customization for a Directory
1714 @end menu
1715
1716 By default AUC @TeX{} will search for customization files in all the
1717 global, private, and local style directories, but you can also set the
1718 path directly. This is useful if you for example want to add another
1719 person's style hooks to your path. Please note that all matching files
1720 found in @code{TeX-style-path} are loaded, and all hooks defined in the
1721 files will be executed.
1722
1723 @defopt TeX-style-path
1724 List of directories to search for AUC @TeX{} style files.
1725 Each must end with a slash.
1726 @end defopt
1727
1728 By default, when AUC @TeX{} searches a directory for files, it will
1729 recursively search through subdirectories.
1730
1731 @defopt TeX-file-recurse
1732 If not nil, search @TeX{} directories recursively.
1733 @end defopt
1734
1735 By default, AUC @TeX{} will ignore files name @file{.}, @file{..},
1736 @file{SCCS}, @file{RCS}, and @file{CVS}.
1737
1738 @defopt TeX-ignore-file
1739 Regular expression matching file names to ignore.
1740
1741 These files or directories will not be considered when searching for
1742 @TeX{} files in a directory.
1743 @end defopt
1744
1745 @node Automatic Global, Automatic Private, Automatic, Automatic
1746 @section Automatic Customization for the Site
1747 @cindex Global style hook directory
1748 @cindex Global macro directory
1749 @cindex Site macro directory
1750 @cindex Global @TeX{} macro directory
1751 @cindex Site @TeX{} macro directory
1752 @cindex Global directories
1753 @cindex Site information
1754
1755 Assuming that the automatic customization at the global level was done
1756 when AUC @TeX{} was installed, your choice is now: will you use it? If
1757 you use it, you will benefit by having access to all the symbols and
1758 environments available for completion purposes. The drawback is slower
1759 load time when you edit a new file and perhaps too many confusing
1760 symbols when you try to do a completion.
1761
1762 You can disable the automatic generated global style hooks by setting
1763 the variable @code{TeX-auto-global} to nil.
1764
1765 @defopt TeX-macro-global
1766 Directories containing the site's @TeX{} style files.
1767 @end defopt
1768
1769 @defopt TeX-style-global
1770 Directory containing hand generated @TeX{} information.
1771 Must end with a slash.
1772
1773 These correspond to @TeX{} macros shared by all users of a site.
1774 @end defopt
1775
1776 @defopt TeX-auto-global
1777 Directory containing automatically generated information.
1778
1779 For storing automatic extracted information about the @TeX{} macros
1780 shared by all users of a site.
1781 @end defopt
1782
1783 @node Automatic Private, Automatic Local, Automatic Global, Automatic
1784 @section Automatic Customization for a User
1785 @cindex Private style hook directory
1786 @cindex Private macro directory
1787 @cindex Personal macro directory
1788 @cindex Private @TeX{} macro directory
1789 @cindex Personal @TeX{} macro directory
1790 @cindex Private directories
1791 @cindex Personal information
1792
1793 You should specify where you store your private @TeX{} macros, so AUC
1794 @TeX{} can extract their information. The extracted information will go
1795 to the directories listed in @code{TeX-auto-private}
1796
1797 Use @kbd{M-x TeX-auto-generate} to extract the information.
1798
1799 @defopt TeX-macro-private
1800 Directories where you store your personal @TeX{} macros.
1801 Each must end with a slash.
1802
1803 This defaults to the directories listed in the @samp{TEXINPUTS} and
1804 @samp{BIBINPUTS} environment variables.
1805 @end defopt
1806
1807 @defopt TeX-auto-private
1808 List of directories containing automatically generated information.
1809 Must end with a slash.
1810
1811 These correspond to the personal @TeX{} macros.
1812 @end defopt
1813
1814 @deffn Command TeX-auto-generate @var{TEX} @var{AUTO}
1815 (@kbd{M-x TeX-auto-generate}) Generate style hook for @var{TEX} and
1816 store it in @var{AUTO}. If @var{TEX} is a directory, generate style
1817 hooks for all files in the directory.@refill
1818 @end deffn
1819
1820 @defopt TeX-style-private
1821 List of directories containing hand generated information.
1822 Must end with a slash.
1823
1824 These correspond to the personal @TeX{} macros.
1825 @end defopt
1826
1827 @node Automatic Local, , Automatic Private, Automatic
1828 @section Automatic Customization for a Directory
1829 @cindex Local style hooks
1830 @cindex Updating style hooks
1831 @cindex Automatic updating style hooks
1832 @cindex Local style hooks
1833 @cindex Local style directory
1834
1835 AUC @TeX{} can update the style information about a file each time you
1836 save it, and it will do this if the directory @code{TeX-auto-local}
1837 exist. @code{TeX-auto-local} is by default set to @samp{"auto/"}, so
1838 simply creating an @file{auto} directory will enable automatic saving of
1839 style information.
1840
1841 The advantage of doing this is that macros, labels, etc. defined in any
1842 file in a multifile document will be known in all the files in the
1843 document. The disadvantage is that saving will be slower. To disable,
1844 set @code{TeX-auto-local} to nil.
1845
1846 @defopt TeX-style-local
1847 Directory containing hand generated @TeX{} information.
1848 Must end with a slash.
1849
1850 These correspond to @TeX{} macros found in the current directory.
1851 @end defopt
1852
1853 @defopt TeX-auto-local
1854 Directory containing automatically generated @TeX{} information.
1855 Must end with a slash.
1856
1857 These correspond to @TeX{} macros found in the current directory.
1858 @end defopt
1859
1860 @node Style Files, Installation, Automatic, top
1861 @chapter Writing Your own Style Support
1862 @cindex Style files
1863 @cindex Style hooks
1864 @cindex @file{style}
1865
1866 @xref{Automatic} for a discussion about automatically generated global,
1867 private, and local style files. The hand generated style files are
1868 equivalent, except that they by default are found in @file{style}
1869 directories instead of @file{auto} directories.
1870
1871 @menu
1872 * Simple Style:: A Simple Style File
1873 * Adding Macros:: Adding Support for Macros
1874 * Adding Environments:: Adding Support for Environments
1875 * Adding Other:: Adding Other Information
1876 * Hacking the Parser:: Automatic Extraction of New Things
1877 @end menu
1878
1879 If you write some useful support for a public @TeX{} style file, please
1880 send it to us.
1881
1882 @node Simple Style, Adding Macros, Style Files, Style Files
1883 @section A Simple Style File
1884 @cindex @file{book.el}
1885 @cindex Sample style file
1886 @cindex Style file
1887 @cindex Example of a style file.
1888 @cindex Style hook
1889 @cindex Adding a style hook
1890
1891 Here is a simple example of a style file.
1892
1893 @lisp
1894 ;;; book.el - Special code for book style.
1895
1896 (TeX-add-style-hook "book"
1897 (function (lambda () (setq LaTeX-largest-level
1898 (LaTeX-section-level ("chapter"))))))
1899
1900 @end lisp
1901
1902 This file specifies that the largest kind of section in a LaTeX document
1903 using the book document style is chapter. The interesting thing to
1904 notice is that the style file defines an (anonymous) function, and adds it
1905 to the list of loaded style hooks by calling @code{TeX-add-style-hook}.
1906
1907 The first time the user indirectly tries to access some style specific
1908 information, such as the largest sectioning command available, the style
1909 hooks for all files directly or indirectly read by the current document
1910 is executed. The actual files will only be evaluated once, but the
1911 hooks will be called for each buffer using the style file.
1912
1913 @defun TeX-add-style-hook @var{style} @var{hook}
1914 Add @var{hook} to the list of functions to run when we use the @TeX{}
1915 file @var{style}.
1916 @end defun
1917
1918 @node Adding Macros, Adding Environments, Simple Style, Style Files
1919 @section Adding Support for Macros
1920 @cindex Adding macros
1921 @cindex Macros, adding
1922 @cindex Defining macros in style hooks
1923
1924 The most common thing to define in a style hook is new symbols (@TeX{}
1925 macros). Most likely along with a description of the arguments to the
1926 function, since the symbol itself can be defined automatically.
1927
1928 Here are a few examples from @file{latex.el}.
1929
1930 @lisp
1931 (TeX-add-style-hook "latex"
1932 (function
1933 (lambda ()
1934 (TeX-add-symbols
1935 '("arabic" TeX-arg-counter)
1936 '("label" TeX-arg-define-label)
1937 '("ref" TeX-arg-label)
1938 '("newcommand" TeX-arg-define-macro [ "Number of arguments" ] t)
1939 '("newtheorem" TeX-arg-define-environment
1940 [ TeX-arg-environment "Numbered like" ]
1941 t [ TeX-arg-counter "Within counter" ])))))
1942 @end lisp
1943
1944 @defun TeX-add-symbols @var{symbol} @dots{}
1945 Add each @var{symbol} to the list of known symbols.
1946 @end defun
1947
1948 Each argument to @code{TeX-add-symbols} is a list describing one symbol.
1949 The head of the list is the name of the symbol, the remaining elements
1950 describe each argument.
1951
1952 If there are no additional elements, the symbol will be inserted with
1953 point inside braces. Otherwise, each argument of this function should
1954 match an argument of the @TeX{} macro. What is done depends on the argument
1955 type.
1956
1957 If a macro is defined multiple times, AUC @TeX{} will chose the one with
1958 the longest definition (i.e. the one with the most arguments).
1959
1960 Thus, to overwrite
1961 @example
1962 '("tref" 1) ; one argument
1963 @end example
1964 you can specify
1965 @example
1966 '("tref" TeX-arg-label ignore) ; two arguments
1967 @end example
1968
1969 @code{ignore} is a function that does not do anything, so when you
1970 insert a @samp{tref} you will be prompted for a label and no more.
1971
1972 @table @code
1973 @item string
1974 Use the string as a prompt to prompt for the argument.
1975
1976 @item number
1977 Insert that many braces, leave point inside the first.
1978
1979 @item nil
1980 Insert empty braces.
1981
1982 @item t
1983 Insert empty braces, leave point between the braces.
1984
1985 @item other symbols
1986 Call the symbol as a function. You can define your
1987 own hook, or use one of the predefined argument hooks.
1988
1989 @item list
1990 If the car is a string, insert it as a prompt and the next
1991 element as initial input. Otherwise, call the car of the list with
1992 the remaining elements as arguments.
1993
1994 @item vector
1995 Optional argument. If it has more than one element, parse it
1996 as a list, otherwise parse the only element as above. Use square
1997 brackets instead of curly braces, and is not inserted on empty user
1998 input.
1999 @end table
2000
2001 A lot of argument hooks have already been defined. The first argument to
2002 all hooks is a flag indicating if it is an optional argument. It is up
2003 to the hook to determine what to do with the remaining arguments, if
2004 any. Typically the next argument is used to overwrite the default
2005 prompt.
2006
2007 @ftable @code
2008 @item TeX-arg-conditional
2009 Implements if EXPR THEN ELSE. If EXPR evaluates to true, parse THEN as an
2010 argument list, else parse ELSE as an argument list.
2011
2012 @item TeX-arg-literal
2013 Insert its arguments into the buffer. Used for specifying extra syntax
2014 for a macro.
2015
2016 @item TeX-arg-free
2017 Parse its arguments but use no braces when they are inserted.
2018
2019 @item TeX-arg-eval
2020 Evaluate arguments and insert the result in the buffer.
2021
2022 @item TeX-arg-file
2023 Prompt for a tex or sty filename, and use it without the extension. Run
2024 the file hooks defined for it.
2025
2026 @item TeX-arg-label
2027 Prompt for a label completing with known labels.
2028
2029 @item TeX-arg-macro
2030 Prompt for a @TeX{} macro with completion.
2031
2032 @item TeX-arg-environment
2033 Prompt for a La@TeX{} environment with completion.
2034
2035 @item TeX-arg-cite
2036 Prompt for a Bib@TeX{} citation.
2037
2038 @item TeX-arg-counter
2039 Prompt for a La@TeX{} counter.
2040
2041 @item TeX-arg-savebox
2042 Prompt for a La@TeX{} savebox.
2043
2044 @item TeX-arg-file
2045 Prompt for a filename in the current directory, and use it without the
2046 extension.
2047
2048 @item TeX-arg-input-file
2049 Prompt for a filename in the current directory, and use it without the
2050 extension. Run the style hooks for the file.
2051
2052 @item TeX-arg-define-label
2053 Prompt for a label completing with known labels. Add label to list of
2054 defined labels.
2055
2056 @item TeX-arg-define-macro
2057 Prompt for a @TeX{} macro with completion. Add macro to list of defined
2058 macros.
2059
2060 @item TeX-arg-define-environment
2061 Prompt for a La@TeX{} environment with completion. Add environment to
2062 list of defined environments.
2063
2064 @item TeX-arg-define-cite
2065 Prompt for a Bib@TeX{} citation.
2066
2067 @item TeX-arg-define-counter
2068 Prompt for a La@TeX{} counter.
2069
2070 @item TeX-arg-define-savebox
2071 Prompt for a La@TeX{} savebox.
2072
2073 @item TeX-arg-corner
2074 Prompt for a La@TeX{} side or corner position with completion.
2075
2076 @item TeX-arg-lr
2077 Prompt for a La@TeX{} side with completion.
2078
2079 @item TeX-arg-tb
2080 Prompt for a La@TeX{} side with completion.
2081
2082 @item TeX-arg-pagestyle
2083 Prompt for a La@TeX{} pagestyle with completion.
2084
2085 @item TeX-arg-verb
2086 Prompt for delimiter and text.
2087
2088 @item TeX-arg-pair
2089 Insert a pair of numbers, use arguments for prompt. The numbers are
2090 surrounded by parentheses and separated with a comma.
2091
2092 @item TeX-arg-size
2093 Insert width and height as a pair. No arguments.
2094
2095 @item TeX-arg-coordinate
2096 Insert x and y coordinates as a pair. No arguments.
2097 @end ftable
2098
2099 If you add new hooks, you can assume that point is placed directly after
2100 the previous argument, or after the macro name if this is the first
2101 argument. Please leave point located after the argument you are
2102 inserting. If you want point to be located somewhere else after all
2103 hooks have been processed, set the value of @code{exit-mark}. It will
2104 point nowhere, until the argument hook sets it.@refill
2105
2106 @node Adding Environments, Adding Other, Adding Macros, Style Files
2107 @section Adding Support for Environments
2108 @cindex Adding environments
2109 @cindex Environments, adding
2110 @cindex Defining environments in style hooks
2111
2112 Adding support for environments is very much like adding support for
2113 @TeX{} macros, except that each environment normally only takes one
2114 argument, an environment hook. The example is again a short version of
2115 @file{latex.el}.
2116
2117 @lisp
2118 (TeX-add-style-hook "latex"
2119 (function
2120 (lambda ()
2121 (LaTeX-add-environments
2122 '("document" LaTeX-env-document)
2123 '("enumerate" LaTeX-env-item)
2124 '("itemize" LaTeX-env-item)
2125 '("list" LaTeX-env-list)))))
2126 @end lisp
2127
2128 @findex LaTeX-env-item
2129 The only hook that is generally useful is @code{LaTeX-env-item}, which is
2130 used for environments that contain items. It is completely up to the
2131 environment hook to insert the environment, but the function
2132 @code{LaTeX-insert-environment} may be of some help. The hook will be
2133 called with the name of the environment as its first argument, and extra
2134 arguments can be provided by adding them to a list after the hook.
2135
2136 For simple environments with arguments, for example defined with
2137 @samp{\newenvironment}, you can make AUC @TeX{} prompt for the arguments
2138 by giving the prompt strings in the call to
2139 @code{LaTeX-add-environments}. For example, if you have defined a
2140 @code{loop} environment with the three arguments @var{from}, @var{to},
2141 and @var{step}, you can add support for them in a style file.
2142
2143 @example
2144 %% loop.sty
2145
2146 \newenvironment@{loop@}[3]@{...@}@{...@}
2147 @end example
2148
2149 @lisp
2150 ;; loop.el
2151
2152 (TeX-add-style-hook "loop"
2153 (function
2154 (lambda ()
2155 (LaTeX-add-environments
2156 '("loop" "From" "To" "Step")))))
2157 @end lisp
2158
2159 If an environment is defined multiple times, AUC @TeX{} will chose the
2160 one with the longest definition. Thus, if you have an enumerate style
2161 file, and want it to replace the standard La@TeX{} enumerate hook above,
2162 you could define an @file{enumerate.el} file as follows, and place it in
2163 the appropriate style directory.
2164
2165 @lisp
2166 (TeX-add-style-hook "latex"
2167 (function
2168 (lambda ()
2169 (LaTeX-add-environments
2170 '("enumerate" LaTeX-env-enumerate foo)))))
2171
2172 (defun LaTeX-env-enumerate (environment &optional ignore) ...)
2173 @end lisp
2174
2175 The symbol @code{foo} will be passed to @code{LaTeX-env-enumerate} as
2176 the second argument, but since we only added it to overwrite the
2177 definition in @file{latex.el} it is just ignored.
2178
2179 @defun LaTeX-add-environments @var{env} @dots{}
2180 Add each @var{env} to list of loaded environments.
2181 @end defun
2182
2183 @defun LaTeX-insert-environment @var{env} [ @var{extra} ]
2184 Insert environment of type @var{env}, with optional argument @var{extra}.
2185 @end defun
2186
2187 @node Adding Other, Hacking the Parser, Adding Environments, Style Files
2188 @section Adding Other Information
2189 @cindex Adding bibliographies
2190 @cindex Bibliographies, adding
2191 @cindex Defining bibliographies in style hooks
2192 @cindex Adding labels
2193 @cindex Labels, adding
2194 @cindex Defining labels in style hooks
2195 @cindex Adding other information
2196 @cindex Other information, adding
2197 @cindex Defining other information in style hooks
2198
2199 You can also specify bibliographical databases and labels in the style
2200 file. This is probably of little use, since this information will
2201 usually be automatically generated from the @TeX{} file anyway.
2202
2203 @defun LaTeX-add-bibliographies @var{bibliography} @dots{}
2204 Add each @var{bibliography} to list of loaded bibliographies.
2205 @end defun
2206
2207 @defun LaTeX-add-labels @var{label} @dots{}
2208 Add each @var{label} to the list of known labels.
2209 @end defun
2210
2211 @node Hacking the Parser, , Adding Other, Style Files
2212 @section Automatic Extraction of New Things
2213 @cindex Parsing new macros
2214 @cindex @file{macro.tex}
2215 @cindex @file{macro.el}
2216 @cindex Changing the parser
2217
2218 The automatic @TeX{} information extractor works by searching for
2219 regular expressions in the @TeX{} files, and storing the matched
2220 information. You can add support for new constructs to the parser,
2221 something that is needed when you add new commands to define symbols.
2222
2223 For example, in the file @file{macro.tex} I define the following macro.
2224
2225 @example
2226 \newcommand@{\newmacro@}[5]@{%
2227 \def#1@{#3\index@{#4@@#5~cite@{#4@}@}\nocite@{#4@}@}%
2228 \def#2@{#5\index@{#4@@#5~cite@{#4@}@}\nocite@{#4@}@}%
2229 @}
2230 @end example
2231
2232 AUC @TeX{} will automatically figure out that @samp{newmacro} is a macro
2233 that takes five arguments. However, it is not smart enough to
2234 automatically see that each time we use the macro, two new macros are
2235 defined. We can specify this information in a style hook file.
2236
2237 @lisp
2238 ;;; macro.el - Special code for my own macro file.
2239
2240 ;;; Code:
2241
2242 (defvar TeX-newmacro-regexp
2243 '("\\\\newmacro@{\\\\\\([a-zA-Z]+\\)@}@{\\\\\\([a-zA-Z]+\\)@}"
2244 (1 2) TeX-auto-multi)
2245 "Matches \newmacro definitions.")
2246
2247 (defvar TeX-auto-multi nil
2248 "Temporary for parsing \\newmacro definitions.")
2249
2250 (defun TeX-macro-cleanup ()
2251 ;; Move symbols from `TeX-auto-multi' to `TeX-auto-symbol'.
2252 (mapcar (function (lambda (list)
2253 (mapcar (function (lambda (symbol)
2254 (setq TeX-auto-symbol
2255 (cons symbol TeX-auto-symbol))))
2256 list)))
2257 TeX-auto-multi))
2258
2259 (defun TeX-macro-prepare ()
2260 ;; Clear `Tex-auto-multi' before use.
2261 (setq TeX-auto-multi nil))
2262
2263 (add-hook 'TeX-auto-prepare-hook 'TeX-macro-prepare)
2264 (add-hook 'TeX-auto-cleanup-hook 'TeX-macro-cleanup)
2265
2266 (TeX-add-style-hook "macro"
2267 (function
2268 (lambda ()
2269 (TeX-auto-add-regexp TeX-newmacro-regexp)
2270 (TeX-add-symbols '("newmacro"
2271 TeX-arg-macro
2272 (TeX-arg-macro "Capitalized macro: \\")
2273 t
2274 "BibTeX entry: "
2275 nil)))))
2276
2277 ;;; macro.el ends here
2278 @end lisp
2279
2280 When this file is first loaded, it adds a new entry to
2281 @code{TeX-newmacro-regexp}, and defines a function to be called before
2282 the parsing starts, and one to be called after the parsing is done. It
2283 also declares a variable to contain the data collected during parsing.
2284 Finally, it adds a style hook which describes the @samp{newmacro} macro,
2285 as we have seen it before.
2286
2287 So the general strategy is: Add a new entry to @code{TeX-newmacro-regexp}.
2288 Declare a variable to contain intermediate data during parsing. Add hook
2289 to be called before and after parsing. In this case, the hook before
2290 parsing just initializes the variable, and the hook after parsing
2291 collects the data from the variable, and adds them to the list of symbols
2292 found.
2293
2294 @defvar TeX-auto-regexp-list
2295 List of regular expressions matching @TeX{} macro definitions.
2296
2297 The list has the following format ((REGEXP MATCH TABLE) @dots{}), that
2298 is, each entry is a list with three elements.
2299
2300 REGEXP. Regular expression matching the macro we want to parse.
2301
2302 MATCH. A number or list of numbers, each representing one
2303 parenthesized subexpression matched by REGEXP.
2304
2305 TABLE. The symbol table to store the data. This can be a function, in
2306 which case the function is called with the argument MATCH. Use
2307 @code{TeX-match-buffer} to get match data. If it is not a function, it
2308 is presumed to be the name of a variable containing a list of match
2309 data. The matched data (a string if MATCH is a number, a list of
2310 strings if MATCH is a list of numbers) is put in front of the table.
2311 @end defvar
2312
2313 @defvar TeX-auto-prepare-hook nil
2314 List of functions to be called before parsing a @TeX{} file.
2315 @end defvar
2316
2317 @defvar TeX-auto-cleanup-hook nil
2318 List of functions to be called after parsing a @TeX{} file.
2319 @end defvar
2320
2321 @node Installation, History, Style Files, top
2322 @include install.texi
2323
2324 @node History, Projects, Installation, top
2325 @comment node-name, next, previous, up
2326 @appendix The History of AUC @TeX{}
2327
2328 See the file @file{history.texi} for older changes.
2329
2330 @include changes.texi
2331
2332 @node Projects, Credit, History, top
2333 @comment node-name, next, previous, up
2334 @appendix Wishlist
2335
2336 This is a list of projects for AUC @TeX{}. Bug reports and requests we
2337 can not fix or honor right away will be added to this list. If you have
2338 some time for emacs lisp hacking, you are encouraged to try to provide a
2339 solution to one of the following problems. It might be a good idea to
2340 mail me first, though.
2341
2342 @itemize @bullet
2343 @item
2344
2345 Filling messes up comments, but only at the end of the file. Reported
2346 by uergen Reiss <psy3022@@rzbox.uni-wuerzburg.de>.
2347 @item
2348 @kbd{C-c C-q C-e} doesn't work properly on nested itemize environments.
2349 Reported by "Robert B. Love" <rlove@@raptor.rmNUG.ORG>.
2350
2351 @item
2352 One suggestion for AUC-TeX: I think that the font command C-c C-f C-r,
2353 which produces \textrm@{@} in a LaTeX file, should instead produce
2354 either \textrm@{@} or \mathrm@{@}, depending on whether one is in math
2355 mode or not. --- John Palmieri <palmieri@@math.mit.edu>
2356
2357 @item
2358 A way to add and overwrite math mode entries in style files, and to
2359 decide where they should be. Suggested by Remo Badii <Remo.Badii@@psi.ch>.
2360
2361 @item
2362 Create template for (first) line of tabular environment.
2363
2364 @item
2365 I think prompting for the master is the intended behaviour. It
2366 corresponds to a `shared' value for TeX-master.
2367
2368 There should probably be a `none' value which wouldn't query for the
2369 master, but instead disable all features that relies on TeX-master.
2370
2371 This default value for TeX-master could then be controled with mapping
2372 based on the extension.
2373
2374 @item
2375 @kbd{C-c '} should alway stay in the current window, also when it find a
2376 new file.
2377
2378 @item
2379 @code{LaTeX-fill-environment} does not indent the closing @samp{\end}.
2380
2381 @item
2382 Rewrite @file{ltx-help.el} and put it in @file{latex.el}. Fix also:
2383 @example
2384 From: Denby Wong <DnB@@slip224.qlink.QueensU.CA>
2385
2386 1) change documentation regarding where to get the
2387 latest version (at CTAN at pip.shsu.edu for me)
2388 under info/latex2e-help-texinfo/
2389
2390 2) change or provide choice over which version to
2391 use. There are three references to the info
2392 node "(latex)" in the file which should be
2393 "(latex2e)" for the new file.
2394
2395 From: Piet van Oostrum <piet@@cs.ruu.nl>
2396
2397 One of the annoying things of latex-help is that if you ask for \LARGE, you
2398 get \large if you have case-fold-search=t. This is really info's problem as
2399 it doesn't reset it for a search of the node, but it would be easy to stick
2400 a (let (case-fold-search) in latex-help.
2401 @end example
2402
2403 @item
2404 It should be possible to insert a default preamble containing
2405 e.g. @code{usepackage} declarations, perhaps depending on the document
2406 class.
2407
2408 @item
2409 Multiple argument completion for @samp{\bibliography}. In general, I
2410 ought to make @kbd{,} special for these kind of completions.
2411
2412 @item
2413 Do not overwrite emacs warnings about existing auto-save files when
2414 loading a new file.
2415
2416 @item
2417 Suggest @samp{makindex} when appropriate.
2418
2419 @item
2420 Maybe the regexp for matching a TeX symbol during parsing should be
2421 @samp{"\\\\\\([a-zA-Z]+\\|.\\)"} ---
2422 @samp{<thiemann@@informatik.uni-tuebingen.de>} Peter Thiemann.
2423
2424 @item
2425 AUC TeX should be able to parse La@TeX{}2e @file{.cls} files. Here are
2426 the regexps by @samp{<thiemann@@informatik.uni-tuebingen.de>} Peter
2427 Thiemann.
2428
2429 @example
2430 ("\\\\DeclareRobustCommand@{?\\\\\\([a-zA-Z]+\\)@}?\\[\\([0-9]+\\)\\]\
2431 \\[\\([^\]\\\\\n\r]+\\)\\]"
2432 (1 2 3) LaTeX-auto-optional)
2433 ("\\\\DeclareRobustCommand@{?\\\\\\([a-zA-Z]+\\)@}?\\[\\([0-9]+\\)\\]"
2434 (1 2) LaTeX-auto-arguments)
2435 ("\\\\DeclareRobustCommand@{?\\\\\\([a-zA-Z]+\\)@}?" 1 TeX-auto-symbol)
2436 ("\\\\DeclareFixedFont@{?\\\\\\([a-zA-Z]+\\)@}?"
2437 1 TeX-auto-symbol)
2438 ("\\\\Declare\\(Text\\|Old\\)FontCommand@{?\\\\\\([a-zA-Z]+\\)@}?"
2439 2 TeX-auto-symbol)
2440 ("\\\\DeclareMath\\(Symbol\\|Delimiter\\|Accent\\|Radical\\)@{?\\\\\\([a-zA-Z]+\\)@}?"
2441 2 TeX-auto-symbol)
2442 ;;; it is also valid to declare just a single symbol, e.g. <,
2443 ;;; with \DeclareMathSymbol but it is not necessary to register that here
2444 ("\\\\DeclareText\\(Command\\|Symbol\\|Accent\\|Composite\\)@{?\\\\\\([a-zA-Z]+\\)@}?"
2445 2 TeX-auto-symbol)
2446 @end example
2447
2448 @item
2449 Use index files (when available) to speed up @kbd{C-c C-m include
2450 @key{RET}}.
2451
2452 @item
2453 Option not to calculate very slow completions like for
2454 @kbd{C-c C-m include @key{RET}}.@refill
2455
2456 @item
2457 AUC @TeX{} should not parse verbatim environments.
2458
2459 @item
2460 Font menu should be created from @code{TeX-font-list}.
2461
2462 @item
2463 Installation procedure written purely in emacs lisp.
2464
2465 @item
2466 Format La@TeX{} comment blocks.
2467
2468 @item
2469 Included PostScript files should also be counted as part of the
2470 document.
2471
2472 @item
2473 The argument to @samp{\verb} may be broken when filling if it contains a
2474 space. This should be fixed or documented. Suggested by several
2475 people.
2476
2477 @item
2478 The parser should catch warnings about undefined crossreferences.
2479 Suggested by Richard Hirsch @samp{i3080501@@ws.rz.tu-bs.de}.
2480
2481 @item
2482 A nice hierarchical by-topic organization of all officially documented
2483 LaTeX macros, available from the menu bar.
2484
2485 @item
2486 Make @samp{`} check for math context in @code{LaTeX-math-mode}. and
2487 simply self insert if not in a math context.
2488
2489 @item
2490 Make @code{TeX-insert-dollar} more robust. Currently it can be fooled
2491 by @samp{\mbox}'es and escaped double dollar for example.
2492
2493 @item
2494 La@TeX{} formatting should skip @code{verbatim} environments.
2495
2496 @item
2497 @code{TeX-command-default} should be set from the master file, if not
2498 set locally. Suggested by Peter Whaite @samp{<peta@@cim.mcgill.ca>}.
2499
2500 @item
2501 Make AUC @TeX{} work with @samp{crypt++}. Suggested by Chris Moore
2502 @samp{<Chris.Moore@@src.bae.co.uk>}.
2503
2504 @item
2505 Fix bug with @code{TeX-show-environment} from hidden document
2506 environment.
2507
2508 @item
2509 Function to check if you are in math mode (between two dollar signs).
2510 Suggested by Jan Erik Odegard @samp{<odegard@@dsp.rice.edu>}
2511
2512 @item
2513 The @samp{Spell} command should apply to all files in a document. Maybe
2514 it could try to restrict to files that have been modified since last
2515 spell check? Suggested by Ravinder Bhumbla @samp{<rbhumbla@@ucsd.edu>}.
2516
2517 @item
2518 Make @key{.} check for abbreviations and sentences ending with capital
2519 letters.
2520
2521 @item
2522 Use Emacs 19 minibuffer history to choose between previewers, and other
2523 stuff. Suggested by John Interrante
2524 @samp{<interran@@uluru.Stanford.EDU>}.
2525
2526 @item
2527 Make features.
2528
2529 A new command @code{TeX-update} (@kbd{C-c C-u}) could be used to create
2530 an up-to-date dvi file by repeatedly running Bib@TeX{}, MakeIndex and
2531 (La)@TeX{}, until an error occurs or we are done.
2532
2533 An alternative is to have an @samp{Update} command that ensures the
2534 @samp{dvi} file is up to date. This could be called before printing and
2535 previewing.
2536
2537 @item
2538 Documentation of variables that can be set in a style hook.
2539
2540 We need a list of what can safely be done in an ordinary style hook.
2541 You can not set a variable that AUC TeX depends on, unless AUC TeX knows
2542 that it has to run the style hooks first.
2543
2544 Here is the start of such a list.
2545 @table @code
2546
2547 @item LaTeX-add-environments
2548
2549 @item TeX-add-symbols
2550
2551 @item LaTeX-add-labels
2552
2553 @item LaTeX-add-bibliographies
2554
2555 @item LaTeX-largest-level
2556
2557 @end table
2558
2559 @item
2560 Correct indentation for tabular, tabbing, table, math, and array
2561 environments.
2562
2563 @item
2564 Optional special indentation after an @samp{\item}.
2565
2566 @example
2567 \begin@{itemize@}
2568 \item blabalaskdfjlas lajf adf
2569 lkfjl af jasl lkf jlsdf jlf
2570 \item f lk jldjf lajflkas flf af
2571 \end@{itemize@}
2572 @end example
2573
2574 @item
2575 Completion for counters and sboxes.
2576
2577 @item
2578 Outline should be (better) supported in @TeX{} mode.
2579
2580 At least, support headers, trailers, as well as TeX-outline-extra.
2581
2582 @item
2583 @code{TeX-header-start} and @code{TeX-trailer-end}.
2584
2585 We might want these, just for fun (and outlines)
2586
2587 @item
2588 Plain @TeX{} and La@TeX{} specific header and trailer expressions.
2589
2590 We should have a way to globally specify the default value of the header
2591 and trailer regexps.
2592
2593 @item
2594 Add support for original @code{TeX-mode} keybindings.
2595
2596 A third initialization file (@file{tex-mode.el}) containing an emulator
2597 of the standard @code{TeX-mode} would help convince some people to
2598 change to AUC @TeX{}.@refill
2599
2600 @item
2601 Make @code{TeX-next-error} parse ahead and store the results in a list,
2602 using markers to remember buffer positions in order to be more robust
2603 with regard to line numbers and changed files. This is what
2604 @code{next-error} does. (Or did, until Emacs 19).
2605
2606 @item
2607 When @code{LaTeX-environment} is given an argument, change the current
2608 environment. Be smart about @samp{\item[]} versus @samp{\item } and
2609 labels like @samp{fig:} versus @samp{tab:}.
2610
2611 @item
2612 Check out if lightning completion from Ultra @TeX{} is anything for us.
2613
2614 @item
2615 Finish the @TeX{}info mode. For one thing, many @TeX{}info mode
2616 commands do not accept braces around their arguments.
2617
2618 @item
2619 BibTeX mode.
2620
2621 @item
2622 Support for AMSLaTeX style files.
2623
2624 @item
2625 Hook up the letter environment with `bbdb.el'.
2626
2627 @item
2628 Make the letter environment hook produce `documentstyle' too.
2629
2630 @end itemize
2631
2632 @node Credit, Key Index, Projects, top
2633 @comment node-name, next, previous, up
2634 @appendix Credit
2635
2636 A big smile and thanks should go to all the folks who cheered me up,
2637 during the long hours of programming@dots{} sorry folks, but I can't help
2638 including the list below, of comments I've got@dots{}
2639
2640 Kresten Krab Thorup
2641
2642 @table @samp
2643 @item <monheit@@psych.stanford.edu>
2644 I'd like to say that I'm very much enjoying using auc-tex. Thanks for
2645 the great package!
2646 @item <georgiou@@rex.cs.tulane.edu>
2647 I really enjoy working with auc-tex.
2648 @item <toy@@soho.crd.ge.com>
2649 Thanks for your great package. It's indispensable now! Thanks!
2650 @item <ascott@@gara.une.oz.au>
2651 Thanks for your time and for what appears to be a great and useful
2652 package. Thanks again
2653 @item <hal@@alfred.econ.lsa.umich.edu>
2654 Thanks for providing auc-tex.
2655 @item <simons@@ibiza.karlsruhe.gmd.de>
2656 I really enjoy using the new emacs TeX-mode you wrote. I think you did
2657 a great job.
2658 @item <clipper@@csd.uwo.ca>
2659 I am having fun with auc-tex already.
2660 @item <ibekhaus@@athena.mit.edu>
2661 Thanks for your work on auc-tex, especially the math-minor mode.
2662 @item <burt@@dfki.uni-kl.de>
2663 I like your auc-tex elisp package for writing LaTeX files - I am
2664 especially impressed by the help with error correction.
2665 @item <goncal@@cnmvax.uab.es>
2666 Thanks so much!
2667 @item <bond@@sce.carleton.ca>
2668 I >really< like the macro, particularly the hooks for previewing and the
2669 error parsing!
2670 @item <ascott@@gara.une.oz.au>
2671 All in all I am pleased with your package. Thanks a lot.
2672 @end table
2673
2674 @node Key Index, Function Index, Credit, top
2675 @comment node-name, next, previous, up
2676 @unnumbered Key Index
2677
2678 @printindex ky
2679
2680 @node Function Index, Variable Index, Key Index, top
2681 @comment node-name, next, previous, up
2682 @unnumbered Function Index
2683
2684 @printindex fn
2685
2686 @node Variable Index, Concept Index, Function Index, top
2687 @comment node-name, next, previous, up
2688 @unnumbered Variable Index
2689
2690 @printindex vr
2691
2692 @node Concept Index, , Variable Index, top
2693 @comment node-name, next, previous, up
2694 @unnumbered Concept Index
2695
2696 @printindex cp
2697
2698 @summarycontents
2699 @contents
2700 @bye
2701
2702