yatex

view docs/yatexe @ 206:99cb56e58ec3

RCS-Checked in as 1.75
author yuuji@gentei.org
date Thu, 12 Jan 2012 12:25:08 +0900
parents bd0a9177e5e7
children d467c0fb6083
line source
1 Info file: yatexe, -*-Text-*-
2 produced by `texinfo-format-buffer'
3 from file `yatexe.tex'
4 using `texinfmt.el' version 2.38 of 3 July 1998.
10 
11 File: yatexe, Node: Top, Next: What is YaTeX?, Prev: (dir), Up: (dir)
13 * Menu:
15 * What is YaTeX?::
16 * Main features:: What YaTeX can do
17 * Installation:: Guide to install
18 * Typesetting:: Call typesetting processes
19 * %#notation:: Meta-keyword `%#'
20 * Completion:: Input LaTeX commands with completion
21 * Local dictionaries:: Directory dependent completion
22 * Commenting out:: Commenting/uncommenting text
23 * Cursor jump:: Jumping to related position
24 * Changing and Deleting:: Changing/deleting certain unit of text
25 * Filling:: Filling an item or paragraph
26 * Updation of includeonly:: Free from maintaining includeonly
27 * What column:: Check what table-column the cursor belong
28 * Intelligent newline:: Guess requisites of new line
29 * Usepackage checker:: Selecting correct \usepackage is YaTeX's job
30 * Online help:: On-line documentation of LaTeX
31 * Browsing file hierarchy:: Walking through file hierarchy
32 * Cooperation with other packages:: Work well with gmhist, min-out
33 * Customizations:: How to breed `Wild Bird'
34 * Etcetera:: YaTeX is acquisitive.
35 * Copying:: Redistribution
39 
40 File: yatexe, Node: What is YaTeX?, Next: Main features, Prev: Top, Up: Top
42 What is YaTeX?
43 **************
45 YaTeX automates typesetting and previewing of LaTeX and enables
46 completing input of LaTeX mark-up command such as
47 `\begin{}'..`\end{}'.
49 YaTeX also supports Demacs which runs on MS-DOS(386), Mule (Multi
50 Language Enhancement to GNU Emacs), and latex on DOS.
53 
54 File: yatexe, Node: Main features, Next: Installation, Prev: What is YaTeX?, Up: Top
56 Main features
57 *************
59 * Invocation of typesetter, previewer and related programs(`C-c t')
60 * Typesetting on static region which is independent from point
61 * Semiautomatic replacing of `\includeonly'
62 * Jumping to error line(`C-c '')
63 * Completing-read of LaTeX commands such as `\begin{}',
64 `\section' etc.
65 (`C-c b', `C-c s', `C-c l', `C-c m')
66 * Enclosing text into LaTeX environments or commands
67 (`C-u' ABOVEKEYSTROKES)
68 * Displaying the structure of text at entering sectioning commands
69 * Lump shifting of sectioning commands (*Note view-sectioning::)
70 * Learning unknown/new LaTeX commands for the next completion
71 * Argument reading with a guide for complicated LaTeX commands
72 * Generating argument-readers for new/unsupported commands(`yatexgen')
73 * Quick changing or deleting of LaTeX commands(`C-c c', `C-c k')
74 * Jumping from and to inter-file, begin<->end, ref<->label(`C-c g')
75 * Blanket commenting out or uncommenting
76 (`C-c >', `C-c <', `C-c ,', `C-c .')
77 * Easy input of accent mark, math-mode's commands and Greek letters
78 (`C-c a', `;', `:')
79 * Online help for the popular LaTeX commands
80 (`C-c ?', `C-c /')
81 * Document files hierarchy browser (`C-c d')
82 * Adding automatically \usepackage corresponding to inputting LaTeX
83 macro with completion
84 * Allow you to forget creating \label{}s, \ref or \cite completion
85 automatically generate labels.
88 
89 File: yatexe, Node: Installation, Next: Typesetting, Prev: Main features, Up: Top
91 Installation
92 ************
94 Put next two expressions into your `~/.emacs'.
96 (setq auto-mode-alist
97 (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
98 (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
100 Next, add certain path name where you put files of YaTeX to your
101 load-path. If you want to put them in `~/src/emacs', write
103 (setq load-path
104 (cons (expand-file-name "~/src/emacs") load-path))
106 in your `~/.emacs'
108 Then, yatex-mode will be automatically loaded when you visit a
109 file which has extension `.tex'. If yatex-mode is successfully
110 loaded, mode string on mode line will be turned to "YaTeX".
114 
115 File: yatexe, Node: Typesetting, Next: %#notation, Prev: Installation, Up: Top
117 Typesetting
118 ***********
120 The prefix key stroke of yatex-mode is `C-c' (Press 'C' with Control
121 key) by default. If you don't intend to change the prefix key stroke,
122 assume all `[prefix]' as `C-c' in this document. These key
123 strokes execute typeset or preview command.
125 `[prefix] t j'
126 ... invoke latex
127 `[prefix] t r'
128 ... invoke latex on region
129 `[prefix] t e'
130 ... invoke latex on current environment or whole
131 portion of current formulas in math-mode.
132 `[prefix] t k'
133 ... kill current typesetting process
134 `[prefix] t b'
135 ... invoke bibtex
136 `[prefix] t i'
137 ... invoke makeindex
138 `[prefix] t d'
139 ... invoke latex && dvipdfmx
140 `[prefix] t p'
141 ... preview
142 `[prefix] t l'
143 ... lpr dvi-file
144 `[prefix] t s'
145 ... search current string on xdvi-remote
147 * Menu:
149 * Calling typesetter::
150 * Calling previewer::
151 * Printing out::
154 
155 File: yatexe, Node: Calling typesetter, Next: Calling previewer, Prev: Typesetting, Up: Typesetting
157 Calling typesetter
158 ==================
160 Typing `[prefix] t j', the current editing window will be divided
161 horizontally when you invoke latex command, and log message of LaTeX
162 typesetting will be displayed in the other window; called typesetting
163 buffer. The typesetting buffer automatically scrolls up and traces LaTeX
164 warnings and error messages. If you see latex stopping by an error, you
165 can send string to latex in the typesetting buffer.
167 If an error stops the LaTeX typesetting, this key stroke will move the
168 cursor to the line where LaTeX error is detected.
170 `[prefix] ''
171 `([prefix]+single quotation)'
173 ... jump to the previous error or warning
175 If you find a noticeable error, move to the typesetting buffer and move
176 the cursor on the line of error message and type `SPACE' key. This makes
177 the cursor move to corresponding source line.
179 YaTeX-typeset-region invoked by `[prefix] tr' call typesetter for
180 region. The region is specified by standard point and mark, or by
181 `%#BEGIN' and `%#END' marks. Selected region will be copied to the
182 temporary file `texput.tex' with the same preamble as the main file of
183 current editing sources. Be sure to put all local macro settings in
184 preamble, not after `\begin{document}'. The method of specification of
185 the region is shown in the section *Note %#notation::.
187 The documentclass for typeset-region is the same as that of editing file
188 if you edit one file, and is the same as main file's if you edit splitting
189 files.
191 The `[prefix] te' key automatically marks current inner environment or
192 inner math mode and then call typeset-region with marked region. This is
193 convenient to quick view of current tabular environment or current editing
194 formulas. Keeping previewer window for `texput.dvi' is handy for
195 debugging. Since `[prefix] te' selects the inner-most environment as
196 region, it is not suitable for partial typesetting of doubly or more
197 composed environment. If you want to do partial typesetting for a nested
198 environment, use `[prefix] tr' for static-region, which is described in
199 the section *Note %#notation::.
202 
203 File: yatexe, Node: Calling previewer, Next: Printing out, Prev: Calling typesetter, Up: Typesetting
205 Calling previewer
206 =================
208 `[prefix] t p' invokes the TeX previewer. And if you are using
209 xdvi-remote, which can be controled from other terminals, `[prefix] t s'
210 enables you to search current string at the cursor on the running xdvi
211 window.
214 
215 File: yatexe, Node: Printing out, Prev: Calling previewer, Up: Typesetting
217 Printing out
218 ============
220 When you type `[preifx] t l', YaTeX asks you the range of dvi-printing
221 by default. You can skip this by invoking it with universal-argument as
222 follows:
224 C-u [prefix] tl
227 
228 File: yatexe, Node: %#notation, Next: Completion, Prev: Typesetting, Up: Top
230 %# notation
231 ***********
233 You can control the typesetting process by describing `%#' notations in
234 the source text.
236 * Menu:
238 * Changing typesetter::
239 * Splitting input files::
240 * Static region for typesetting::
241 * Lpr format::
242 * Editing %# notation::
245 
246 File: yatexe, Node: Changing typesetter, Next: Splitting input files, Prev: %#notation, Up: %#notation
248 To change the `latex' command or to split a source text.
249 ========================================================
251 To change the typesetting command, write
253 %#!latex-big
255 anywhere in the source text. This is useful for changing typesetter.
258 
259 File: yatexe, Node: Splitting input files, Next: Static region for typesetting, Prev: Changing typesetter, Up: %#notation
261 Splitting input files
262 =====================
264 And if you split the source text and edit subfile that should be
265 included from main text.
267 %#!latex main.tex
269 will be helpful to execute latex on main file from sub text buffer. Since
270 this command line after `%#!' will be sent to shell literally, next
271 description makes it convenient to use ghostview as dvi-previewer.
273 %#!latex main ; dvi2ps main.dvi > main
275 Note that YaTeX assumes the component before the last period of the last
276 word in this line as base name of the main LaTeX source. The `%f'
277 notation in this line is replaced by main file name, and `%r' replaced by
278 root name of main file name. If you specify `%f' or `%r', YaTeX always
279 ask you the name of main file at the first typesetting.
281 To make best use of the feature of inter-file jumping by `[prefix] g'
282 (see *Note Cursor jump::), take described below into consideration.
284 * You can put split texts in sub directory, but not in sub directory of
285 sub directory.
286 * In the main text, specify the child file name with relative path name
287 such as \include{chap1/sub}, when you include the file in a
288 sub-directory.
289 * In a sub-text, write `%#!latex main.tex' even if `main.tex' is in the
290 parent directory(not %#!latex ../main.tex).
293 
294 File: yatexe, Node: Static region for typesetting, Next: Lpr format, Prev: Splitting input files, Up: %#notation
296 Static region
297 =============
299 Typeset-region by `[prefix] tr' passes the region between point and mark
300 to typesetting command by default. But when you want to typeset static
301 region, enclose the region by `%#BEGIN' and `%#END' as follows.
303 %#BEGIN
304 TheRegionYouWantToTypesetManyTimes
305 %#END
307 This is the rule of deciding the region.
309 1. If there exists %#BEGIN before point,
311 1. If there exists %#END after %#BEGIN,
312 * From %#BEGIN to %#END.
314 2. If %#END does not exist after %#BEGIN,
315 * From %#BEGIN to the end of buffer.
317 2. If there does not exist %#BEGIN before point,
318 * Between point and mark(standard method of Emacs).
320 It is useful to write `%#BEGIN' in the previous line of \begin and
321 `%#END' in the next line of \`end' when you try complex environment such
322 as `tabular' many times. It is also useful to put only `%#BEGIN' alone at
323 the middle of very long text. Do not forget to erase `%#BEGIN' `%#END'
324 pair.
327 
328 File: yatexe, Node: Lpr format, Next: Editing %# notation, Prev: Static region for typesetting, Up: %#notation
330 Lpr format
331 ==========
333 Lpr format is specified by three Lisp variables. Here are the default
334 values of them.
336 `(1)dviprint-command-format'
337 `"dvi2ps %f %t %s | lpr"'
338 `(2)dviprint-from-format'
339 `"-f %b"'
340 `(3)dviprint-to-format'
341 `"-t %e"'
343 On YaTeX-lpr, `%s' in (1) is replaced by the file name of main text,
344 `%f' by contents of (2), %t by contents of (3). At these replacements,
345 `%b' in (2) is also replaced by the number of beginning page, `%e' in (3)
346 is replaced by the number of ending page. But `%f' and `%t' are ignored
347 when you omit the range of print-out by `C-u [prefix] tl'.
349 If you want to change this lpr format temporarily, put a command such as
350 follows somewhere in the text:
352 %#LPR dvi2ps %f %t %s | 4up -page 4 | texfix | lpr -Plp2
354 And if you want YaTeX not to ask you the range of printing out, the next
355 example may be helpful.
357 %#LPR dvi2ps %s | lpr
360 
361 File: yatexe, Node: Editing %# notation, Prev: Lpr format, Up: %#notation
363 Editing %# notation
364 ===================
366 To edit `%#' notation described above, type
368 `[prefix] %'
369 ... editing %# notation menu
371 and select one of the entry of the menu as follows.
373 !)Edit-%#! B)EGIN-END-region L)Edit-%#LPR
375 Type `!' to edit `%#!' entry, `b' to enclose the region with `%#BEGIN' and
376 `%#END', and `l' to edit `%#LPR' entry. When you type `b', all `%#BEGIN'
377 and `%#END' are automatically erased.
380 
381 File: yatexe, Node: Completion, Next: Local dictionaries, Prev: %#notation, Up: Top
383 Completion
384 **********
386 YaTeX makes it easy to input the LaTeX commands. There are several
387 kinds of completion type, begin-type, section-type, large-type, etc...
389 * Menu:
391 * Begin-type completion::
392 * Section-type completion::
393 * Large-type completion::
394 * Maketitle-type completion::
395 * Arbitrary completion::
396 * End completion::
397 * Accent completion::
398 * Image completion::
399 * Greek letters completion::
402 
403 File: yatexe, Node: Begin-type completion, Next: Section-type completion, Prev: Completion, Up: Completion
405 Begin-type completion
406 =====================
408 "Begin-type completion" completes commands of `\begin{env}' ...
409 `\end{env}'. All of the begin-type completions begin with this key
410 sequence.
412 `[prefix] b'
413 ... start begin-type completion
415 An additional key stroke immediately completes a frequently used LaTeX
416 `\begin{}'...`\`end'{}' environment.
418 `[prefix] b c'
419 ... `\begin{center}...\end{center}'
420 `[prefix] b d'
421 ... `\begin{document}...\end{document}'
422 `[prefix] b D'
423 ... `\begin{description}...\end{description}'
424 `[prefix] b e'
425 ... `\begin{enumerate}...\end{enumerate}'
426 `[prefix] b E'
427 ... `\begin{equation}...\end{equation}'
428 `[prefix] b i'
429 ... `\begin{itemize}...\end{itemize}'
430 `[prefix] b l'
431 ... `\begin{flushleft}...\end{flushleft}'
432 `[prefix] b m'
433 ... `\begin{minipage}...\end{minipage}'
434 `[prefix] b t'
435 ... `\begin{tabbing}...\end{tabbing}'
436 `[prefix] b T'
437 ... `\begin{tabular}...\end{tabular}'
438 `[prefix] b^T'
439 ... `\begin{table}...\end{table}'
440 `[prefix] b p'
441 ... `\begin{picture}...\end{picture}'
442 `[prefix] b q'
443 ... `\begin{quote}...\end{quote}'
444 `[prefix] b Q'
445 ... `\begin{quotation}...\end{quotation}'
446 `[prefix] b r'
447 ... `\begin{flushright}...\end{flushright}'
448 `[prefix] b v'
449 ... `\begin{verbatim}...\end{verbatim}'
450 `[prefix] b V'
451 ... `\begin{verse}...\end{verse}'
453 Any other LaTeX environments are made by completing-read of the Emacs
454 function.
456 `[prefix] b SPACE'
457 ... begin-type completion
459 The next message will show up in the minibuffer
461 Begin environment(default document):
463 by typing `[prefix] b'. Put the wishing environment with completion in
464 the minibuffer, and `\begin{env}'...\`\end{env}' will be inserted in the
465 LaTeX source text. If the environment you want to put does not exist in
466 the YaTeX completion table, it will be registered in the user completion
467 table. YaTeX automatically saves the user completion table in the user
468 dictionary file at exiting of emacs.
470 At the completion of certain environments, the expected initial entry will
471 automatically inserted such as `\item' for `itemize' environment. If you
472 don't want the entry, it can be removed by undoing.
474 If you want to enclose some paragraphs which have already been written,
475 invoke the begin-type completion with changing the case of `b' of key
476 sequence upper(or invoke it with universal argument by `C-u' prefix).
478 The following example encloses a region with `description' environment.
480 `[prefix] B D'
481 `(or ESC 1 [prefix] b D)'
482 `(or C-u [prefix] b D)'
484 ... begin-type completion for region
486 This enclosing holds good for the completing input by `[prefix] b SPC'.
487 `[prefix] B SPC' enclose a region with the environment selected by
488 completing-read.
491 
492 File: yatexe, Node: Section-type completion, Next: Large-type completion, Prev: Begin-type completion, Up: Completion
494 Section-type completion
495 =======================
497 "Section-type completion" completes section-type commands which take an
498 argument or more such as `\section{foo}'. To invoke section-type
499 completion, type
501 `[prefix] s'
502 ... section-type completion
504 then the prompt
506 (C-v for view) \???{} (default documentclass):
508 will show up in the minibuffer. Section-type LaTeX commands are completed
509 by space key, and the default value is selected when you type nothing in
510 the minibuffer.
512 Next,
514 \section{???}:
516 prompts you the argument of section-type LaTeX command. For example, the
517 following inputs
519 \???{} (default documentclass): section
520 \section{???}: Hello world.
522 will insert the string
524 \section{Hello world.}
526 in your LaTeX source. When you neglect argument such as
528 (C-v for view) \???{} (default section): vspace*
529 \vspace*{???}:
531 YaTeX puts
533 \vspace*{}
535 and move the cursor in the braces.
537 In LaTeX command, there are commands which take more than one arguments
538 such as `\addtolength{\topmargin}{8mm}'. To complete these commands,
539 invoke section-type completion with universal argument as,
541 C-u 2 [prefix] s (or ESC 2 [prefix] s)
543 and make answers in minibuffer like this.
545 (C-v for view) \???{} (default vspace*): addtolength
546 \addtolength{???}: \topmargin
547 Argument 2: 8mm
549 `\addtolength' and the first argument `\topmargin' can be typed easily by
550 completing read. Since YaTeX also learns the number of arguments of
551 section-type command and will ask that many arguments in future
552 completion, you had better tell the number of arguments to YaTeX at the
553 first completion of the new word. But you can change the number of
554 arguments by calling the completion with different universal argument
555 again.
558 Invoking section-type completion with `[Prefix] S' (Capital `S')
559 includes the region as the first argument of section-type command.
561 The section/large/maketitle type completion can work at the prompt for
562 the argument of other section-type completion. Nested LaTeX commands are
563 efficiently read with the recursive completion by typing YaTeX's
564 completion key sequence in the minibuffer.
566 * Menu:
568 * view-sectioning::
571 
572 File: yatexe, Node: view-sectioning, Prev: Section-type completion, Up: Section-type completion
574 view-sectioning
575 ---------------
577 In the minibuffer at the prompt of section-type command completion,
578 typing `C-v' shows a list of sectioning commands in source text(The line
579 with `<<--' mark is the nearest sectioning command). Then, default
580 sectioning command appears in the minibuffer. You can go up/down
581 sectioning command by typing `C-p'/`C-n', can scrolls up/down the listing
582 buffer by `C-v'/`M-v', and can hide sectioning commands under certain
583 level by 0 through 6. Type `?' in the minibuffer of sectioning prompt
584 for more information.
586 You can generate this listing buffer (`*Sectioning Lines*' buffer) by
587 typing
588 `M-x YaTeX-section-overview'
589 ... Generate *Sectioning Lines* buffer
591 from the LaTeX source buffer. In this listing buffer, typing `u' on the
592 sectioning command shifts up the corresponding sectioning command in
593 source text and `d' shifts down. After marking lines in the listing
594 buffer, typing `U' shifts up all sectioning commands in the region, and
595 `U' shifts down. Here are all the key bindings of `*Sectioning Lines*'
596 buffer.
598 `SPC'
599 ... Jump to corresponding source line
600 `.'
601 ... Display corresponding source line
602 `u'
603 ... Shift up a sectioning line
604 `d'
605 ... Shift down a sectioning line
606 `U'
607 ... Shift up sectioning lines in region
608 `D'
609 ... Shift down sectioning lines in region
610 `0...6'
611 ... Hide sectioning commands whose level is lower than n
615 
616 File: yatexe, Node: Large-type completion, Next: Maketitle-type completion, Prev: Section-type completion, Up: Completion
618 Large-type completion
619 =====================
621 "Large-type completion" inputs the font or size changing descriptions
622 such as `{\large }'. When you type
624 `[prefix] l'
625 ... large-type completion
627 the message in the minibuffer
629 {\??? } (default large):
631 prompts prompts you large-type command with completing-read. There are
632 TeX commands to change fonts or sizes, `it', `huge' and so on, in the
633 completion table.
635 Region-based completion is also invoked by changing the letter after
636 prefix key stroke as `[prefix] L'. It encloses the region by braces with
637 large-type command.
640 
641 File: yatexe, Node: Maketitle-type completion, Next: Arbitrary completion, Prev: Large-type completion, Up: Completion
643 Maketitle-type completion
644 =========================
646 We call it "maketitle-type completion" which completes commands such as
647 `\maketitle'. Take notice that maketitle-type commands take no arguments.
648 Then, typing
650 `[prefix] m'
651 ... maketitle-type completion
653 begins maketitle-completion. Above mentioned method is true for
654 maketitle-completion, and there are LaTeX commands with no arguments in
655 completion table.
658 
659 File: yatexe, Node: Arbitrary completion, Next: End completion, Prev: Maketitle-type completion, Up: Completion
661 Arbitrary completion
662 ====================
664 You can complete certain LaTeX command anywhere without typical
665 completing method as described, by typing
667 `[prefix] SPC'
668 ... arbitrary completion
670 after the initial string of LaTeX command that is preceded by `\'.
673 
674 File: yatexe, Node: End completion, Next: Accent completion, Prev: Arbitrary completion, Up: Completion
676 End completion
677 ==============
679 YaTeX automatically detects the opened environment and close it with
680 \`\end{environment}'. Though proficient YaTeX users never fail to make
681 environment with begin-type completion, some may begin an environment
682 manually. In that case, type
684 `[prefix] e'
685 ... `end' completion
687 at the end of the opened environment.
690 
691 File: yatexe, Node: Accent completion, Next: Image completion, Prev: End completion, Up: Completion
693 Accent completion
694 =================
696 When you want to write the European accent marks(like `\`{o}'),
698 `[prefix] a'
699 ... accent completion
701 shows the menu
703 1:` 2:' 3:^ 4:" 5:~ 6:= 7:. u v H t c d b
705 in the minibuffer. Chose one character or corresponding numeric, and you
706 will see
708 \`{}
710 in the editing buffer with the cursor positioned in braces. Type one more
711 character `o' for example, then
713 \`{o}
715 will be completed, and the cursor gets out from braces.
718 
719 File: yatexe, Node: Image completion, Next: Greek letters completion, Prev: Accent completion, Up: Completion
721 Image completion of mathematical sign
722 =====================================
724 Arrow marks, sigma mark and those signs mainly used in the TeX's math
725 environment are completed by key sequences which imitate the corresponding
726 symbols graphically. This completion only works in the math environment.
727 YaTeX automatically detects whether the cursor located in math environment
728 or not, and change the behavior of key strokes `;' and `:'.
730 By the way, we often express the leftarrow mark by `<-' for example.
731 Considering such image, you can write `\leftarrow' by typing `<-' after
732 `;' (semicolon) as a prefix. In the same way, `\longleftarrow' (`<--') is
733 completed by typing `;<--', infinity mark which is imitated by `oo' is
734 completed by typing `;oo'.
736 Here are the sample operations in YaTeX math-mode.
738 INPUT Completed LaTeX commands
739 ; < - `\leftarrow'
740 ; < - - `\longleftarrow'
741 ; < - - > `\longleftrightarrow'
742 ; o `\circ'
743 ; o o `\infty'
745 In any case, you can quit from image completion and can move to the next
746 editing operation if the LaTeX command you want is shown in the buffer.
748 `;' itself in math-environment is inserted by `;;'. Typing `TAB' in the
749 midst of image completion shows all of the LaTeX commands that start with
750 the same name as string you previously typed in. In this menu buffer,
751 press `RET' after moving the cursor (by `n', `p', `b', `f') to insert the
752 LaTeX command.
754 To know all of the completion table, type `TAB' just after `;'. And
755 here is the sample menu by `TAB' after `;<'.
757 KEY LaTeX sequence sign
758 < \leq <
759 ~
760 << \ll <<
761 <- \leftarrow <-
762 <= \Leftarrow <=
764 You can define your favorite key-vs-sequence completion table in the
765 Emacs-Lisp variable `YaTeX-math-sign-alist-private'. See also
766 `yatexmth.el' for the information of the structure of this variable.
769 
770 File: yatexe, Node: Greek letters completion, Prev: Image completion, Up: Completion
772 Greek letters completion
773 ========================
775 Math-mode of YaTeX provides another image completion, Greek letters
776 completion in the same method. After prefix `:', typing `a' makes
777 `\alpha', `b' makes `\beta' and `g' makes `\gamma' and so on. First, type
778 `:TAB' to know all the correspondence of alphabets vs. Greek letters.
780 If you will find `;' or `:' doesn't work in correct position of math
781 environment, it may be a bug of YaTeX. Please send me a bug report with
782 the configuration of your text, and avoid it temporarily by typing `;' or
783 `:' after universal-argument(`C-u') which forces `;' and `:' to work as
784 math-prefix.
787 
788 File: yatexe, Node: Local dictionaries, Next: Commenting out, Prev: Completion, Up: Top
790 Local dictionaries
791 ******************
793 Tables for completion consist of three dictionaries; `standard
794 dictionary' built in `yatex.el', `user dictionary' for your common private
795 commands, and `local dictionary' that is effective in a certain directory.
797 When you input the command unknown to YaTeX at a completion in the
798 minibuffer, YaTeX asks you with the following prompt;
800 `foo' is not in table. Register into: U)serDic L)ocalDic N)one D)iscard
802 In this menu, typing `u' updates your `user dictionary', `l' updates your
803 local dictionary, `n' updates only on-memory dictionary which go through
804 only current Emacs session, and `d' updates no dictionary and throws the
805 new word away.
807 If you find this switching feature meaningless and bothersome, put the
808 next expression into your `~/.emacs'
810 (setq YaTeX-nervous nil)
813 
814 File: yatexe, Node: Commenting out, Next: Cursor jump, Prev: Local dictionaries, Up: Top
816 Commenting out
817 **************
819 You may want to comment out some region.
821 `[prefix] >'
822 ... comment out region by %
823 `[prefix] <'
824 ... uncomment region
826 cause an operation to the region between point and mark.
828 `[prefix] .'
829 ... comment out current paragraph
830 `[prefix] ,'
831 ... uncomment current paragraph
833 comments or uncomments the paragraph where the cursor belongs. This
834 `paragraph' means the region marked by the function mark-paragraph, bound
835 to `ESC h' by default. It is NOT predictable what will happen when you
836 continuously comment out some paragraph many times.
838 You can also comment out an environment between `\begin' and `\end', or
839 a `\begin'-\`\end' pair themselves, by making the following key strokes on
840 the line where `\begin{}' or `\end{}' exists.
842 `[prefix] >'
843 ... comment out from \begin to \`end'
844 `[prefix] <'
845 ... uncomment from \begin to \`end'
847 comment whole the contents of environment. Moreover,
849 `[prefix] .'
850 ... comment out \begin and \`end'
851 `[prefix] ,'
852 ... uncomment \begin and \`end'
854 (un)comments out only environment declaration: `\begin{}' and `\end{}'.
855 NOTE that even if you intend to comment out some region, invoking
856 `[prefix] >' on the `\begin',`\end' line decides to work in `commenting
857 out from `\begin' to `\end'' mode.
861 
862 File: yatexe, Node: Cursor jump, Next: Changing and Deleting, Prev: Commenting out, Up: Top
864 Cursor jump
865 ***********
868 * Menu:
870 * Jump to corresponding object::
871 * Invoking image processor::
872 * Jump to main file::
873 * Jumping around the environment::
874 * Jumping to last completion position::
877 
878 File: yatexe, Node: Jump to corresponding object, Next: Invoking image processor, Prev: Cursor jump, Up: Cursor jump
880 Jump to corresponding object
881 ============================
883 Typing
885 `[prefix] g'
886 ... go to corresponding object
888 in a certain place move the cursor to the place corresponding to the LaTeX
889 command of last place. YaTeX recognize the followings as pairs that have
890 relation each other.
892 * `\begin{}' <-> `\end{}'
893 * `%#BEGIN' <-> `%#END'
894 * On the image-including line -> corresponding viewer or drawing tool
895 * `\label{}' <-> `\ref{}'
896 * `\include(\input)' -> included file
897 * `\bibitem{}' <-> `\cite{}'
899 On a `\begin',`\end' line, typing `[prefix] g' moves the cursor to the
900 corresponding `\end',`\begin' line, if its partner really exists. The
901 behavior on the line `%#BEGIN' and `%#END' are the same. Note that if the
902 correspondent of `label/ref' or `cite/bibitem' exists in another file,
903 that file have to be opened to make a round trip between references by
904 `[prefix] g'.
906 If you type `[prefix] g' on the line of `\include{chap1}', typically in
907 the main text, YaTeX switches buffer to `chap1.tex'.
909 `[prefix] 4 g'
910 ... go to corresponding object in other window
912 do the same job as `[prefix] g' except it's done in other window. Note
913 that this function doesn't work on `begin/end', `%#BEGIN/%#END' pairs
914 because it is meaningless.
917 
918 File: yatexe, Node: Invoking image processor, Next: Jump to main file, Prev: Jump to corresponding object, Up: Cursor jump
920 Invoking image processor
921 ========================
924 `image-including line' described above means such lines as
925 `\epsfile{file=foo.ps}'. If you type `[prefix] g' on that line, YaTeX
926 automatically searches source of `foo.ps' and invokes image viewer or
927 drawing tool correspoinding to it. For example; if you draw an image
928 foo.obj with Tgif and enclose its product named foo.eps by `\epsfile'
929 command. Typing `[prefix] g' on `\epsfile' line make YaTeX invoke `tgif
930 foo.obj'. How a processor is choosen is as follows.
932 1. If there is an expression matching with one of the pattern defined in
933 `YaTeX-processed-file-regexp-alist', extract file name from regexp
934 group surrounded by \\(\\). (Which group corresponds is written in
935 the cdr part of each list.) If no matches were found, do nothing.
936 2. If there is a pattern as `%PROCESSOR' which is defined in the
937 variable `YaTeX-file-processor-alist', call that processor giving the
938 file name with corresponding extension.
939 3. If not, check the existence of each file which is supplied the
940 extension in the cdr part of each list of
941 `YaTeX-file-processor-alist'. If any, call the corresponding image
942 viewer or drawing tool.
945 
946 File: yatexe, Node: Jump to main file, Next: Jumping around the environment, Prev: Invoking image processor, Up: Cursor jump
948 Jump to main file
949 =================
951 Typing
953 `[prefix] ^'
954 ... visit main file
955 `[prefix] 4^'
956 ... visit main file in other buffer
958 in a sub text switch the buffer to the main text specified by `%#!'
959 notation.
962 
963 File: yatexe, Node: Jumping around the environment, Next: Jumping to last completion position, Prev: Jump to main file, Up: Cursor jump
965 Jumping around the environment
966 ==============================
968 And these are the functions which work on the current LaTeX environment:
970 `M-C-a'
971 ... beginning of environment
972 `M-C-e'
973 ... `end' of environment
974 `M-C-@'
975 ... mark environment
978 
979 File: yatexe, Node: Jumping to last completion position, Prev: Jumping around the environment, Up: Cursor jump
981 Jumping to last completion position
982 ===================================
984 YaTeX always memorize the position of completion into register `3'. So
985 every time you make a trip to any other part of text other than you are
986 writing, you can return to the editing paragraph by calling
987 register-to-point with argument YaTeX-current-position-register, which is
988 achieved by typing `C-x j 3'(by default).
991 
992 File: yatexe, Node: Changing and Deleting, Next: Filling, Prev: Cursor jump, Up: Top
994 Changing and Deleting
995 *********************
997 These functions are for change or deletion of LaTeX commands already
998 entered.
1000 `[prefix] c'
1001 ... change LaTeX command
1002 `[prefix] k'
1003 ... kill LaTeX command
1005 * Menu:
1007 * Changing LaTeX commands::
1008 * Killing LaTeX commands::
1012 File: yatexe, Node: Changing LaTeX commands, Next: Killing LaTeX commands, Prev: Changing and Deleting, Up: Changing and Deleting
1014 Changing LaTeX commands
1015 =======================
1017 `[prefix] c' can change the various (La)TeX commands. This can change the
1018 followings.
1019 * Environment names
1020 * Section-type commands
1021 * Argument of section-type commands
1022 * Optional parameters (enclosed by []) of section-type commands
1023 * Font/size designators
1024 * Math-mode's maketitle-type commands that can be inputted with image
1025 completion
1027 Typing `[prefix] c' on one of above objects you want to change brings a
1028 suitable reading function sometimes with completion. Note: If you want to
1029 change the argument of section-type command that contains other LaTeX
1030 commands, type `[prefix] c' either of surrounding braces of the argument
1031 in order to make YaTeX ignore the internal LaTeX sequences as an object of
1032 changing. Anyway, it is very difficult to know which argument position
1033 the cursor belongs because the LaTeX commands can be nested and braces can
1034 freely emerge. So keep it mind to put the cursor on a brace when you are
1035 thinking of changing a complicated argument.
1039 File: yatexe, Node: Killing LaTeX commands, Prev: Changing LaTeX commands, Up: Changing and Deleting
1041 Killing LaTeX commands
1042 ======================
1044 `[prefix] k' kills the LaTeX commands sometimes with their arguments.
1045 Following table illustrates the correspondence of the invoking position
1046 and what is killed.
1048 [Invoking position] [action]
1049 \begin, \end line kill \begin,\end pairs
1050 %#BEGIN, %#END line kill %#BEGIN,%#END pairs
1051 on a Section-type command kill section-type command
1052 on a parenthesis kill parentheses
1054 Note that when killing `\begin, \end' or `%#BEGIN, %#END' pair, the lines
1055 `\begin, \end' or `%#BEGIN, %#END' exist will be killed entirely. So take
1056 care not to create any line that contains more than one `\begin' or so.
1058 While all operations above are to kill `containers' which surround some
1059 text, universal argument (`C-u') for these commands kills not only
1060 `containers' but also `contents' of them. See below as a sample.
1062 Original text: [prefix] k C-u [prefix] k
1063 Main \footnote{note} here. Main note here. Main here.
1064 ~(cursor)
1068 File: yatexe, Node: Filling, Next: Updation of includeonly, Prev: Changing and Deleting, Up: Top
1070 Filling
1071 *******
1074 Filling an item
1075 ===============
1077 To fill a term (descriptive sentences) of `\item', type
1079 `M-q'
1080 ... fill item
1082 on that item.
1084 YaTeX uses the value of the variable `YaTeX-item-regexp' as the regular
1085 expression to search item header in itemize environment. If you make a
1086 newcommand to itemize terms(e.g. `\underlineitem'), put
1088 (setq YaTeX-item-regexp
1089 "\\(\\\\\\(sub\\)*item\\)\\|\\(\\\\underlineitem\\)")
1091 in your `~/.emacs'. If you are not familiar with regular expression for
1092 Emacs-Lisp, name a newcommand for `itemize' beginning with `\item' such as
1093 `\itembf', not `\bfitem'.
1095 This function reformats the `\item' into `hang-indented' style. For
1096 example:
1098 itemize, enumerate environment:
1100 >\item[foo] `foo' is the typical word for describing an
1101 > arbitrarily written....
1102 description environment:
1103 > \item[bar] When the word `for' is used as an arbitrarily
1104 > word, `bar' is bound to follow it.
1106 Note that the indent depth of an `\item' word and its descriptive
1107 paragraph are the same in latter case. If you want to use different
1108 depth, invoke fill-paragraph at the beginning of non-whitespace
1109 character(see below).
1112 Filling paragraph
1113 =================
1115 Fill-paragraph is little bit adapted for LaTeX sources. It retains from
1116 filling in certain environments where formatting leads to a disaster such
1117 as verbatim, tabular, or so. And it protects `\verb' expressions from
1118 being folded (The variable `YaTeX-verb-regexp' controls this). Besides,
1119 putting cursor on the first occurrence of non-whitespace character on a
1120 line changes the fill-prefix temporarily to the depth of the line.
1124 File: yatexe, Node: Updation of includeonly, Next: What column, Prev: Filling, Up: Top
1126 Updation of `\includeonly'
1127 **************************
1129 When you edit splitting source texts, the notation
1131 \includeonly{CurrentEditingFileName}
1133 in the main file reduces the time of typesetting. If you want to hack
1134 other file a little however, you have to rewrite it to
1136 \includeonly{OtherFileNameYouWantToFix}
1138 in the main file. YaTeX automatically detects that the current edited
1139 text is not in includeonly list and prompts you
1141 A)dd R)eplace %)comment?
1143 in the minibuffer. Type `a' if you want to add the current file name to
1144 `\includeonly' list, `r' to replace \`includeonly' list with the current
1145 file, and type `%' to comment out the `\includeonly' line.
1149 File: yatexe, Node: What column, Next: Intelligent newline, Prev: Updation of includeonly, Up: Top
1151 What column?
1152 ************
1154 We are often get tired of finding the corresponding column in large
1155 tabulars. For example,
1157 \begin{tabular}{|c|c|c|c|c|c|c|c|}\hline
1158 Name&Position&Post No.&Addr.&Phone No.&FAX No.&
1159 Home Addr.&Home Phone\\ \hline
1160 Thunder Bird & 6 & 223 & LA & xxx-yyy &
1161 zzz-www & Japan & 9876-54321 \\
1162 & 2 & \multicolumn{2}{c|}{Unknown}
1163 &&&(???)
1164 \\ \hline
1165 \end{tabular}
1167 Suppose you have the cursor located at `(???)' mark, can you tell which
1168 column it is belonging at once? Maybe no. In such case, type
1170 `[prefix] &'
1171 ... What column
1173 in that position. YaTeX tells you the column header of the current field.
1174 Since YaTeX assumes the first line of tabular environment as a row of
1175 column headers, you can create a row of virtual column headers by putting
1176 them in the first line and commenting that line with `%'.
1180 File: yatexe, Node: Intelligent newline, Next: Usepackage checker, Prev: What column, Up: Top
1182 Intelligent newline
1183 *******************
1185 At the end of begin-type completion of tabular[*], array, itemize,
1186 enumerate or tabbing environment, or typing
1188 `ESC RET'
1189 ... Intelligent newline
1191 in these environments inserts the contents corresponding to the current
1192 environment in the next line. (At the begin-type completion, this
1193 contents can be removed by `undo'.) In `tabular' environment, for
1194 example, `ESC RET' inserts the certain number of `&' and trailing `\\',
1195 and `\hline' if other `\hline' is found in backward. Here are the list of
1196 contents vs. environments.
1198 * `tabular', `tabular*', `array'
1200 Corresponding number of `&' and `\\'. And `\hline' if
1201 needed.
1203 * `tabbing'
1205 The same number of `\>' as `\=' in the first line.
1207 * `itemize', `enumerate', `description', `list'
1209 `\item' or `item[]'.
1211 Note that since this function works seeing the contents of the first
1212 line, please call this after the second line if possible.
1214 If you want to apply these trick to other environments, `foo'
1215 environment for example, define the function named
1216 `YaTeX-intelligent-newline-foo' to insert corresponding contents. That
1217 function will be called at the beginning of the next line after the
1218 newline is inserted to the current line. Since the function
1219 `YaTeX-indent-line' is designed to indent the current line properly,
1220 calling this function before your code to insert certain contents must be
1221 useful. See the definition of the function
1222 `YaTeX-intelligent-newline-itemize' as an example.
1226 File: yatexe, Node: Usepackage checker, Next: Online help, Prev: Intelligent newline, Up: Top
1228 Usepackage checker
1229 ******************
1231 When you input begint-type, section-type, maketitle-type macros with
1232 completion, and it requires some LaTeX2e package, YaTeX examines the
1233 existence of correct `\usepackage'. If not, YaTeX inserts the
1234 `\usepackage{}' declaration corresponding to input macro.
1236 To activate the package completion for your favarite package, set the
1237 variable `YaTeX-package-alist-private' correctly. Please refere the value
1238 of `YaTeX-package-alist-default' as an example.
1242 File: yatexe, Node: Online help, Next: Browsing file hierarchy, Prev: Usepackage checker, Up: Top
1244 Online help
1245 ***********
1247 YaTeX provides you the online help with popular LaTeX commands.
1249 Here are the key strokes for the online help.
1251 `[prefix] ?'
1252 ... Online help
1253 `[prefix] /'
1254 ... Online apropos
1257 Online help
1258 ===========
1260 `Online help' shows the documentation for the popular LaTeX
1261 commands(defaults to the commands on the cursor) in the next buffer.
1262 There are two help file, `global help' and `private help'. The former
1263 file contains the descriptions on the standard LaTeX command and is
1264 specified its name by variable `YaTeX-help-file'. Usually, the global
1265 help file should be located in public space (`$EMACSEXECPATH' by default)
1266 and should be world writable so that anyone can update it to enrich its
1267 contents. The latter file contains descriptions on non-standard or
1268 personal command definitions and is specified by
1269 `YaTeX-help-file-private'. This file should be put into private
1270 directory.
1273 Online apropos
1274 ==============
1276 `Online apropos' is an equivalent of GNU Emacs's apropos. It shows all
1277 the documentations that contains the keyword entered by the user.
1280 When no descriptions are found...
1281 =================================
1283 If there is no description on a command in help files, YaTeX requires
1284 you to write a description on that command. If you are willing to do,
1285 determine which help file to add and write the description on it referring
1286 your manual of (La)TeX. Please send me your additional descriptions if
1287 you describe the help on some standard commands. I might want to include
1288 it in the next distribution.
1292 File: yatexe, Node: Browsing file hierarchy, Next: Cooperation with other packages, Prev: Online help, Up: Top
1294 Browsing file hierarchy
1295 ***********************
1297 When you are editing multi-file source, typing
1299 `[prefix] d'
1300 ... browse file hierarchy
1302 asks you the parent-most file (which may be defaulted) and displays the
1303 documentation hierarchy in the next window. In this buffer, the following
1304 commands are available.
1306 `n'
1307 ... move to the next line and show its contents
1308 `p'
1309 ... move to the previous line and show its contents
1310 `N'
1311 ... move to the next file in the same inclusion level
1312 `P'
1313 ... move to the previous file in the same inclusion level
1314 `j'
1315 ... move to the next line
1316 `k'
1317 ... move to the previous line
1318 `u'
1319 ... move to the parent file
1320 `.'
1321 ... show the current files contents in the next window
1322 `SPC'
1323 ... scroll up the current file window
1324 `DEL, b'
1325 ... scroll down the current file window
1326 `<'
1327 ... show the beginning of the current file
1328 `>'
1329 ... show the end of the current file
1330 `>'
1331 ... return to the previous postion after `<' or `>'
1332 `RET, g'
1333 ... open the current file in the next window
1334 `mouse-2'
1335 ... same as RET(available only with window system)
1336 `o'
1337 ... other window
1338 `1'
1339 ... delete other windows
1340 `-'
1341 ... shrink hierarchy buffer window
1342 `+'
1343 ... enlarge hierarchy buffer window
1344 `?'
1345 ... describe mode
1346 `q'
1347 ... quit
1349 Note that operations on the file contents in the next window do not work
1350 correctly when you close the corresponding file.
1354 File: yatexe, Node: Cooperation with other packages, Next: Customizations, Prev: Browsing file hierarchy, Up: Top
1356 Cooperation with other packages
1357 *******************************
1359 YaTeX works better with other brilliant packages.
1362 gmhist
1363 ======
1365 When you are loading `gmhist.el' and `gmhist-mh.el', you can use
1366 independent command history list at the prompt of preview command
1367 (`[prefix] tp') and print command (`[prefix] tl'). On each prompt, you
1368 can enter the previous command line string repeatedly by typing `M-p'.
1371 min-out
1372 =======
1374 `min-out', the outline minor mode, can be used in yatex-mode buffers.
1375 If you want to use it with YaTeX, please refer the file `yatexm-o.el' as
1376 an example.
1380 File: yatexe, Node: Customizations, Next: Etcetera, Prev: Cooperation with other packages, Up: Top
1382 Customizations
1383 **************
1385 You can customize YaTeX by setting Emacs-Lisp variables and by making
1386 add-in functions.
1388 * Menu:
1390 * Lisp variables::
1391 * Add-in functions::
1392 * Add-in generator::
1396 File: yatexe, Node: Lisp variables, Next: Add-in functions, Prev: Customizations, Up: Customizations
1398 Lisp variables
1399 ==============
1401 You can change the key assignments or make completion more comfortable
1402 by setting the values of various variables which control the movement of
1403 yatex-mode.
1405 For example, if you want to change the prefix key stroke from `C-c' to
1406 any other sequence, set YaTeX-prefix to whatever you want to use. If you
1407 don't want to use the key sequence `C-c letter' which is assumed to be the
1408 user reserved sequence in Emacs world, set `YaTeX-inhibit-prefix-letter'
1409 to `t', and all of the default key bind of `C-c letter' will turn to the
1410 corresponding `C-c C-letter' (but the region based completions that is
1411 invoked with `C-c Capital-letter' remain valid, if you want to disable
1412 those bindings, set that variable to 1 instead of `t').
1414 * Menu:
1416 * All customizable variables::
1417 * Sample definitions::
1418 * Hook variables::
1419 * Hook file::
1423 File: yatexe, Node: All customizable variables, Next: Sample definitions, Prev: Lisp variables, Up: Lisp variables
1425 All customizable variables
1426 --------------------------
1428 Here are the customizable variables of yatex-mode. Each value setq-ed
1429 in `~/.emacs' is preferred and that of defined in `yatex.el' is neglected.
1430 Parenthesized contents stands for the default value. When you are to
1431 change some of these variables, see more detailed documentation of the
1432 variable by `M-x describe-variable'.
1434 -- Variable: YaTeX-japan
1435 Set this nil to produce all messages in English (`Depends on Japanese
1436 feature of Emacs')
1438 -- Variable: YaTeX-kanji-code
1439 Default buffer-file-coding-system for YaTeX modes' buffer. Set this
1440 0 to no language conversion. Nil to preserve original
1441 coding-system. 1=Shift JIS, 2=JIS, 3=EUC, 4=UTF-8 (`1 or 2')
1443 -- Variable: YaTeX-prefix
1444 Prefix key stroke (`C-c')
1446 -- Variable: YaTeX-inhibit-prefix-letter
1447 Change key stroke from `C-c letter' to `C-c C-letter' (`nil')
1449 -- Variable: YaTeX-fill-prefix
1450 Fill-prefix used in yatex-mode (`nil')
1452 -- Variable: YaTeX-user-completion-table
1453 Name of user dictionary where learned completion table will be
1454 stored. (`"~/.yatexrc"')
1456 -- Variable: tex-command
1457 LaTeX typesetter command (`"latex"')
1459 -- Variable: dvi2-command
1460 Preview command (`"xdvi -geo +0+0 -s 4"')
1462 -- Variable: dviprint-command-format
1463 Command format to print dvi file (`"dvi2ps %f %t %s | lpr"')
1465 -- Variable: dviprint-from-format
1466 Start page format of above %f. %b will turn to start page (`"-f %b"')
1468 -- Variable: dviprint-to-format
1469 End page format of above %t. %e will turn to `end' page (`"-t %e"')
1471 -- Variable: makeindex-command
1472 Default makeindex command (`"makeindex"' (`"makeind"' on MS-DOS))
1474 -- Variable: YaTeX-dvipdf-command
1475 Default command name to convert .dvi to PDF (`"dvipdfmx"')
1477 -- Variable: YaTeX-need-nonstop
1478 Put `\nonstopmode{}' or not (`nil')
1480 -- Variable: latex-warning-regexp
1481 Regular expression of warning message latex command puts out
1482 (`"line.* [0-9]*"')
1484 -- Variable: latex-error-regexp
1485 Regular expression of error message (`"l\\.[1-9][0-9]*"')
1487 -- Variable: latex-dos-emergency-message
1488 Message latex command running on DOS puts at abort (`"Emergency
1489 stop"')
1491 -- Variable: YaTeX-item-regexp
1492 Regular expression of item command (`"\\\\item"')
1494 -- Variable: YaTeX-verb-regexp
1495 Regexp of verb family. Omit \\\\. (`"verb\\*?\\|path"')
1497 -- Variable: YaTeX-nervous
1498 T for using local dictionary (`t')
1500 -- Variable: YaTeX-sectioning-regexp
1501 Regexp of LaTeX sectioning command
1502 (`"\\(part\\|chapter\\*?\\|\\(sub\\)*\\(section\\|paragraph\\)\\*?\\)\\b"')
1504 -- Variable: YaTeX-fill-inhibit-environments
1505 Inhibit fill in these environments (`'("tabular" "tabular*" "array"
1506 "picture" "eqnarray" "eqnarray*" "equation" "math" "displaymath"
1507 "verbatim" "verbatim*")')
1509 -- Variable: YaTeX-uncomment-once
1510 T for deleting all preceding `%' (`nil')
1512 -- Variable: YaTeX-close-paren-always
1513 T for always close all parenthesis automatically, `nil' for only eol
1514 (`t')
1516 -- Variable: YaTeX-auto-math-mode
1517 Switch math-mode automatically (`t')
1519 -- Variable: YaTeX-math-key-list-private
1520 User defined alist, math-mode-prefix vs completion alist used in
1521 image completion (`nil'). See `yatexmth.el' for the information
1522 about how to define a completion alist.
1524 -- Variable: YaTeX-default-pop-window-height
1525 Initial height of typesetting buffer when one-window. Number for the
1526 lines of the buffer, numerical string for the percentage of the
1527 screen-height. `nil' for half height (10)
1529 -- Variable: YaTeX-help-file
1530 Global online help file name
1531 (`$doc-directory/../../site-lisp/YATEXHLP.eng')
1533 -- Variable: YaTeX-help-file-private
1534 Private online help file name (`"~/YATEXHLP.eng"')
1536 -- Variable: YaTeX-no-begend-shortcut
1537 Disable [prefix] b ?? shortcut (`nil)'
1539 -- Variable: YaTeX-hilit-pattern-adjustment-private
1540 List of the list that contain the regular expression and the symbol
1541 of logical meaning of the string that matches the pattern. See also
1542 the value from `(assq 'yatex-mode hilit-patterns-alist)' and the
1543 value of `YaTeX-hilit-pattern-adjustment-default' (and even the
1544 document of hilit19.el).
1546 -- Variable: YaTeX-sectioning-level
1547 Alist of LaTeX's sectioning command vs its height.
1549 -- Variable: YaTeX-hierarchy-ignore-heading-regexp
1550 `YaTeX-display-hierarchy' searches for sectioning command first, and
1551 comment line secondary as a file headings. In latter case, ignore lines
1552 that match with regular expression of this variable. Default value of
1553 this variable is RCS header expressions and mode specifying line `-*- xxxx
1554 -*'.
1556 -- Variable: YaTeX-skip-default-reader
1557 Non-nil for this variable skips the default argument reader of
1558 section-type command when add-in function for it is not defined
1559 (`nil')
1561 -- Variable: YaTeX-create-file-prefix-g
1562 When typing `prefix g' on the `\include' line, open the target file
1563 even if the file doesn't exist (`nil')
1565 -- Variable: YaTeX-simple-messages
1566 Simplyfy messages of various completions (`nil')
1568 -- Variable: YaTeX-hilit-sectioning-face
1569 When hilit19 and yatex19 is active, YaTeX colors the sectioning
1570 commands. This variable specifies the foreground and background
1571 color of `\part' macro. The default value is `'(yellow/dodgerblue
1572 yellow/slateblue)'. The first element of this list is for the screen
1573 when `hilit-background-mode' is `'light', and the second element is
1574 for `'dark'. You should specify both color as `forecolor/backcolor'.
1576 -- Variable: YaTeX-hilit-sectioning-attenuation-rate
1577 When color mode, this variable specifies how much attenuate the color
1578 density of `\subparagraph' compared with that of `\chapter' (`'(15
1579 40)') See also `YaTeX-hilit-sectioning-face'.
1581 -- Variable: YaTeX-use-AMS-LaTeX
1582 If you use AMS-LaTeX, set to `t' (`nil')
1584 -- Variable: YaTeX-use-LaTeX2e
1585 If you use LaTeX2e, set to `t' (`t')
1587 -- Variable: YaTeX-template-file
1588 File name which is automatically inserted at creation
1589 (`~/work/template.tex')
1591 -- Variable: YaTeX-search-file-from-top-directory
1592 Non-nil means to search input-files from the directory where main
1593 file exists (`t')
1595 -- Variable: YaTeX-use-font-lock
1596 Use font-lock to fontify buffer or not (`(featurep 'font-lock)'
1598 -- Variable: YaTeX-use-hilit19
1599 Use hilit19 to highlight buffer or not (`(featurep 'hilit19)'
1601 -- Variable: YaTeX-use-italic-bold
1602 YaTeX tries to search italic, bold fontsets or not (`t' if Emacs-20
1603 or later). This variable is effective only when font-lock is used.
1604 (`(featurep 'hilit19)'
1606 -- Variable: YaTeX-singlecmd-suffix
1607 Suffix which is always inserted after maketitle-type macros. `"{}"'
1608 is recommended.
1610 -- Variable: YaTeX-package-alist-private
1611 Alist of LaTeX2e-package name vs. lists of macros in it. Set this
1612 alist properly and YaTeX automatically check the declaratiion of
1613 `usepackage' for corresponding macro, when you input that macro with
1614 completion. If required `usepackage' is not found, YaTeX also
1615 automatically inserts `\usepackage'. Alist is as follows;
1616 '((PackageName1 (completionType ListOfMacro) (completionType
1617 ListOfMacro)) (PackageName2 (completionType ListOfMacro)
1618 (completionType ListOfMacro...))....) completionType is one of `env,
1619 section, maketitle'. Consult the value of
1620 `YaTeX-package-alist-default' as an example.
1622 -- Variable: YaTeX-tabular-indentation
1623 At indentation by `C-i' in tabular or array environment, YaTeX put
1624 the additional spaces to the normail indentation depth. The number
1625 of additional spaces is the product of YaTeX-tabular-indentation and
1626 the number of column position in tabular.
1628 -- Variable: YaTeX-noindent-env-regexp
1629 Regexp of environment names that should begin with no indentation.
1630 All verbatime-like environment name should match with.
1632 -- Variable: YaTeX-ref-default-label-string
1633 Default \\ref time string format. This format is like strftime(3)
1634 but allowed conversion char are as follows; %y -> Last 2 digit of
1635 year, %b -> Month name, %m -> Monthe number(1-12), %d -> Day, %H ->
1636 Hour, %M -> Minute, %S -> Second, %qx -> alphabetical-decimal
1637 conversion of yymmdd. %qX -> alphabetical-decimal conversion of
1638 HHMMSS. Beware defualt label-string should be always unique. So
1639 this format string should have both time part (%H+%M+%S or %qX) and
1640 date part (%y+(%b|%m)+%d or %qx).
1642 -- Variable: YaTeX-ref-generate-label-function
1643 Function to generate default label string for unnamed \\label{}s.
1644 The function pointed to this value should take two arguments. First
1645 argument is LaTeX macro's name, second is macro's argument. Here is
1646 an example for using this value.
1647 (setq YaTeX-ref-generate-label-function 'my-yatex-generate-label)
1648 (defun my-yatex-generate-label (command value)
1649 (and (string= command "caption")
1650 (re-search-backward "\\\\begin{\\(figure\\|table\\)}" nil t)
1651 (setq command (match-string 1)))
1652 (let ((alist '(("chapter" . "chap")
1653 ("section" . "sec")
1654 ("subsection" . "subsec")
1655 ("figure" . "fig")
1656 ("table" . "tbl"))))
1657 (if (setq command (cdr (assoc command alist)))
1658 (concat command ":" value)
1659 (YaTeX::ref-generate-label nil nil))))
1664 File: yatexe, Node: Sample definitions, Next: Hook variables, Prev: All customizable variables, Up: Lisp variables
1666 Sample definitions
1667 ------------------
1669 For instance, to change the prefix key stroke to `ESC', and name of the
1670 user dictionary `~/src/emacs/yatexrc', and set `fill-prefix' to single TAB
1671 character, add the following `setq' to `~/.emacs'.
1673 (setq YaTeX-prefix "\e"
1674 YaTeX-user-completion-table "~/src/emacs/yatexrc"
1675 YaTeX-fill-prefix " ")
1679 File: yatexe, Node: Hook variables, Next: Hook file, Prev: Sample definitions, Up: Lisp variables
1681 Hook variables
1682 --------------
1684 More customizations will be done by the hook-function defined in
1685 hook-variable `yatex-mode-hook'. This is useful to define a shortcut key
1686 sequence to enter some environments other than `document' and `enumerate'
1687 etc. The following statement defines `[prefix] ba' to enter
1688 `\begin{abstract}' ... `=end{abstract}' immediately.
1690 (setq yatex-mode-hook
1691 '(lambda() (YaTeX-define-begend-key "ba" "abstract")))
1693 You should use functions `YaTeX-define-key', or
1694 `YaTeX-define-begend-key' to define all the key sequences of yatex-mode.
1698 File: yatexe, Node: Hook file, Prev: Hook variables, Up: Lisp variables
1700 Hook file
1701 ---------
1703 You can stuff all of YaTeX related expressions into a file named
1704 `yatexhks.el' if you have a lot of codes. YaTeX automatically load this
1705 file at the initialization of itself. Using `yatexhks.el' makes
1706 `yatex-mode-load-hook' unnecessary.
1710 File: yatexe, Node: Add-in functions, Next: Add-in generator, Prev: Lisp variables, Up: Customizations
1712 Add-in functions
1713 ================
1715 You can easily define a function to input detailed arguments with
1716 completion according to LaTeX environments or commands.
1719 What is add-in functions?
1720 -------------------------
1722 When you input `tabular' environment, don't you think "I want YaTeX to
1723 complete its argument toward my favorite one such as `{|c|c|c|}'..."?
1724 Yes, you can define the function to complete arguments for any environment
1725 and any LaTeX commands.
1728 Procedure
1729 ---------
1731 Here is the procedure to define add-in functions.
1732 1. Define the function
1733 2. Put the function into `yatexhks.el'
1735 * Menu:
1737 * How the add-in function works::
1738 * How the function is called::
1739 * Useful functions for creating add-in::
1740 * Contribution::
1744 File: yatexe, Node: How the add-in function works, Next: How the function is called, Prev: Add-in functions, Up: Add-in functions
1746 How the add-in function works
1747 -----------------------------
1749 There are three types of add-in.
1751 1. Option add-in
1752 2. argument add-in
1753 3. enclosing add-in
1755 "Option add-in" returns the LaTeX's optional parameters such as optional
1756 strings after `\begin{ENV}', optional strings between a section-type
1757 command and its first argument, and optional strings just after type
1758 maketitle-type command. The following illustrates the name of add-in
1759 functions, where underlined strings are generated by add-in functions.
1761 \begin{table}[ht] (Function name: YaTeX:table)
1762 ~~~~
1763 \put(100,200){} (Function name: YaTeX:put)
1764 ~~~~~~~~~
1765 \sum_{i=0}^{n} (Function name: YaTeX:sum)
1766 ~~~~~~~~~~
1768 Obviously, the function name is decided by concatenating the prefix
1769 `YaTeX:' and LaTeX command's name.
1771 Another add-in type is "argument add-in", which completes arguments for
1772 section-type commands.
1774 \newcommand{\foo}{bar} (Function name: YaTeX::newcommand)
1775 ~~~~ ~~~
1777 When the section-type command is inputted, the function named by
1778 concatenating `YaTeX::' and section-type command, is called automatically
1779 with an integer argument which indicates which argument of section-type
1780 command is being read. Thus the add-in should determine the job referring
1781 the value of its argument.
1783 "enclosing add-in" is for modifying and/or checking the region that will
1784 be enclosed by section-type commands via `[prefix] S'. An enclosing
1785 add-in function will be called with two arguments, beginning of the
1786 enclosed region and end of the region. Suppose you want to enclose the
1787 existing text `(a+b)/c' by `\frac{}'.
1789 a/c
1790 | |
1791 A B
1793 You do set-mark-command at point A and then move to point B. Typing
1794 `[prefix] S' and input `frac' enclose the region like this;
1796 \frac{a/c}
1798 Normally, the expression `a/c' is translated to `\frac{a}{c}'. An
1799 enclosing add-in is useful for modifying `/' to `}{'.
1801 * Menu:
1803 * Defining option-add-in::
1804 * Defining argument-add-in::
1805 * Defining enclosing-add-in::
1809 File: yatexe, Node: Defining option-add-in, Next: Defining argument-add-in, Prev: How the add-in function works, Up: How the add-in function works
1811 Defining `option add-in'
1812 ........................
1814 If you want `{|c|c|c|}' for all `tabular' environment,
1816 (defun YaTeX:tabular ()
1817 "{|c|c|c|}")
1819 is enough. If you want more complicated format, define as below.
1821 (defun YaTeX:tabular ()
1822 "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
1824 Note that the character `\' must be described as `\\' in Emacs-Lisp. The
1825 next example reads the tabular format from keyboard.
1826 (defun YaTeX:tabular ()
1827 (concat "{" (read-string "Rule: ") "}"))
1831 File: yatexe, Node: Defining argument-add-in, Next: Defining enclosing-add-in, Prev: Defining option-add-in, Up: How the add-in function works
1833 Defining `argument add-in'
1834 ..........................
1836 This section describes how to define the add-in function for
1837 `\newcommand'.
1839 The first argument of `\newcommand' begins always with `\'. The second
1840 argument is usually so complex that we can not edit them in the
1841 minibuffer. Here is the created function considering this.
1843 (defun YaTeX::newcommand (n) ;n is argument position
1844 (cond
1845 ((= n 1) ;1st argument is macro name
1846 (read-string "Command: " "\\")) ;initial input `\'
1847 ((= n 2) "") ;do nothing when reading arg#2
1848 (t nil)))
1850 Note that when the `argument add-in' function return `nil', normal
1851 argument reader will be called.
1855 File: yatexe, Node: Defining enclosing-add-in, Prev: Defining argument-add-in, Up: How the add-in function works
1857 Defining `enclosing add-in'
1858 ...........................
1860 This section describes how to define the add-in function for text
1861 enclosed by `\frac{}'.
1863 When enclosing the text `5/3' by `\frac{}', you might want to replace
1864 `/' with `}{'. Enclosing function `YaTeX::frac-region' is called with two
1865 arguments, beginning of enclosed text and end of enclosed text. The
1866 function is expected to replace `/' with `}{'. Here is an example
1867 expression.
1869 (defun YaTeX::frac-region (beg end)
1870 (catch 'done
1871 (while (search-forward "/" end t)
1872 (goto-char (match-beginning 0))
1873 (if (y-or-n-p "Replace this slash(/) with `}{'")
1874 (throw 'done (replace-match "}{")))
1875 (goto-char (match-end 0)))))
1879 File: yatexe, Node: How the function is called, Next: Useful functions for creating add-in, Prev: How the add-in function works, Up: Add-in functions
1881 How the function is called
1882 --------------------------
1884 YaTeX calls the add-in functions for specified begin-type, section-type,
1885 and maketitle-type command, if any. `Option add-in' functions for
1886 begin-type are called when `\begin{ENV}' has been inserted, functions for
1887 section-type are called just before input of the first argument, and
1888 functions for maketitle-type is called after maketitle-type command has
1889 been inserted. `Argument add-in' functions are called at each entry of
1890 arguments for section-type commands.
1894 File: yatexe, Node: Useful functions for creating add-in, Next: Contribution, Prev: How the function is called, Up: Add-in functions
1896 Useful functions for creating add-in
1897 ------------------------------------
1899 Many add-in functions for typical LaTeX commands are defined in
1900 `yatexadd.el'. Those are also useful as references. Here are the short
1901 descriptions on useful functions, where [F] means function, [A] means
1902 arguments, [D] means description.
1904 `[F]'
1905 YaTeX:read-position
1906 `[A]'
1907 Character list which can show up in the brackets
1908 `[D]'
1909 Return the location specifier such as `[htb]'. When nothing is
1910 entered, omit [] itself. If the possible characters are "htbp", call
1911 this function as `(YaTeX:read-position "htbp")'
1913 `[F]'
1914 YaTeX:read-coordinates
1915 `[A]'
1916 Base prompt, X-axis prompt, Y-axis prompt (each optional)
1917 `[D]'
1918 Read the coordinates with the prompt "BasePrompt X-axisPrompt:" for
1919 X-axis, "BasePrompt Y-axisPrompt:" for Y-axis, and return it in the
1920 form of "(X,Y)". The default prompts are `Dimension', `X', `Y'
1921 respectively.
1923 `[F]'
1924 YaTeX:check-completion-type
1925 `[A]'
1926 One of the symbols: 'begin, 'section, or 'maketitle
1927 `[D]'
1928 Check the current completion type is specified one and cause error
1929 if not. The variable `YaTeX-current-completion-type' holds the symbol
1930 according to the current completion type.
1934 File: yatexe, Node: Contribution, Prev: Useful functions for creating add-in, Up: Add-in functions
1936 Contribution
1937 ------------
1939 If you make your own pretty function and you let it be in public, please
1940 send me the function. I'm going to include it in the next release.
1944 File: yatexe, Node: Add-in generator, Prev: Add-in functions, Up: Customizations
1946 Add-in generator
1947 ================
1949 First, don't forget to read the section of add-in functions *Note Add-in
1950 functions::. If you easily understand how to define them, there's no need
1951 to read this section. But being not familiar with Emacs-Lisp, when you
1952 don't have clear idea what to do, this section describes how to get YaTeX
1953 make add-in function.
1955 There are two methods of generation. One is for fully interactive
1956 generator for beginners and another requires little knowledge of
1957 Emacs-Lisp.
1960 Generator for beginners
1961 -----------------------
1962 The former generator is called by
1963 `M-x YaTeX-generate'
1965 strokes. All you have to do is follow the guidances. Defying them may
1966 cases the disaster (I wonder what is it???). So when you make some
1967 mistake, it is recommendable to type `C-g' and start afresh.
1970 Simple generator
1971 ----------------
1973 The latter generator is invoked by the next sequence. `M-x
1974 YaTeX-generate-simple' This generator can make both "option add-in" and
1975 "argument add-in" (*refer the section add-in functions* *Note How the
1976 add-in function works::), whereas `YaTeX-generate' cannot make "argument
1977 addin".
1979 For example, assume you have the LaTeX command as follows.
1981 \epsinput[t](250,50){hoge.eps}{plain}{Picture of foo}
1982 (A) (B) (1) (2) (3)
1983 (A)Optional parameter to specify the position
1984 One of t(top), b(bottom), l(left), r(right)
1985 (B)Maximum size of frame
1986 (1)1st argument is filename of EPS file
1987 (2)2nd argument indicates
1988 plain do nothing
1989 frame make frame around image
1990 dframe make double-frame around image
1991 for included EPS file.
1992 (3)Caption for the picture
1994 Now get start with generation. Typing `M-x YaTeX-generate-simple'
1995 brings the prompt:
1996 (O)ption? (A)rgument?
1999 Generating "option add-in"
2000 ..........................
2002 Since (A), (B) above are optional argument, all we have to do to
2003 complete them is define the option add-in for them. Let's generate the
2004 function to complete (A).
2006 M-x YaTeX-generate-simple RET
2007 epsinput RET
2010 Typing as above leads the next prompt.
2012 Read type(1): (S)tring (C)omplete (F)ile ([)option (P)osition co(O)rd. (q)uit
2014 This asks that "Which type is the completion style of 1st argument?".
2015 Here are the possible completion style.
2017 `String'
2018 read plain string
2019 `Complete'
2020 read with completion
2021 `File'
2022 read file name
2023 `Option'
2024 read optional string (if string omitted, omit [] too)
2025 `Position'
2026 read positional option (like [htbp])
2027 `Coord.'
2028 read coordinates
2029 `Quit'
2030 quit from generating
2032 Since (A) is the optional argument to specify the location of included
2033 EPS file, the completion style is `Position', and the possible characters
2034 are t, b, l, and r. To tell these information to generator, operate as
2035 follows.
2037 Read type(1).... p
2038 Acceptable characters: tblr RET
2040 (B) is coordinate. So its completion style is coOrd. We want a prompt
2041 meaning "Maximum size" when completion.
2043 Read type(2).... o
2044 Prompt for coordinates: Max size RET
2046 That's all for optional argument. Select quit.
2048 Read type(3).... q
2050 Then the generated option add-in function for \epsinput will be shown in
2051 the next window.
2054 Generating "argument add-in"
2055 ............................
2057 Next, create the argument add-in. The arguments for \epsinput are EPS
2058 file name, framing style, and caption string in sequence.
2060 M-x YaTeX-generate-simple RET
2061 epsinput RET
2064 Above key strokes bring the prompt that asks the number of argument.
2065 Answer it with 3.
2067 How many arguments?: 3 RET
2069 Then the generator asks the completion style and prompt for completion.
2070 Answer them. `f' for FileName and prompt string.
2072 Read type(1).... f
2073 Prompt for argument#1 EPS file name RET
2075 The second argument is one of selected symbol. So the completion type
2076 is `Completion'.
2078 Read type(2).... c
2079 Prompt for argument#2 Include style RET
2081 Then all the candidates ready to be read. Type single RET after
2082 entering all.
2084 Item[1](RET to exit): plain RET
2085 Item[2](RET to exit): frame RET
2086 Item[3](RET to exit): dframe RET
2087 Item[4](RET to exit): RET
2089 The following prompt asks whether the entered string must belong to
2090 candidates or not. In this case, since the argument must be one of
2091 `plain', `frame', and `dframe', type `y'.
2093 Require match? (y or n) y
2095 The last argument is the caption string for which any completion is
2096 needed.
2098 Read type(3).... s
2099 Prompt for argument#3 Caption RET
2100 default: Figure of RET
2102 Finally we'll get the argument add-in in the next window.
2105 Contribution
2106 ------------
2108 If you get your own pretty function and you let it be in public, please
2109 steel yourself in the happy atmosphere and do not send me the function. I
2110 do know it is not fine because it is generated by yatexgen:-p.
2114 File: yatexe, Node: Etcetera, Next: Copying, Prev: Customizations, Up: Top
2116 Etcetera
2117 ********
2119 The standard completion tables provided in `yatex.el' contain a few
2120 LaTeX commands I frequently use. This is to lessen the key strokes to
2121 complete entire word, because too many candidates rarely used often cause
2122 too many hits. Therefore always try to use completion in order to enrich
2123 your dictionary, and you will also find `Wild Bird' growing suitable for
2124 your LaTeX style.
2126 The package name `Wild Bird' is the English translation of Japanese
2127 title `Yachou', which is a trick on words of Japanese.
2131 File: yatexe, Node: Copying, Prev: Etcetera, Up: Top
2133 Copying
2134 *******
2136 This program is distributed as a free software. You can
2137 use/copy/modify/redistribute this software freely but with NO warranty to
2138 anything as a result of using this software. Adopting code from this
2139 program is also free. But I would not do contract act.
2141 Any reports and suggestions are welcome as long as I feel interests in
2142 this software. My possible e-mail address is `yuuji@yatex.org'. (as of
2143 Jan.2004) And there is mailing list for YaTeX. Although the common
2144 language is Japanese, questions in English will be welcome. To join the
2145 ML, send the mail whose subject is `append' to the address
2146 `yatex@yatex.org. If you have some question, please ask to
2147 `yatex-admin@yatex.org'.
2149 The specification of this software will be surely modified (depending on
2150 my feelings) without notice :-p.
2153 HIROSE Yuuji
2156 Tag table:
2157 Node: Top146
2158 Node: What is YaTeX?1487
2159 Node: Main features1860
2160 Node: Installation3452
2161 Node: Typesetting4229
2162 Node: Calling typesetter5298
2163 Node: Calling previewer7502
2164 Node: Printing out7863
2165 Node: %#notation8155
2166 Node: Changing typesetter8531
2167 Node: Splitting input files8895
2168 Node: Static region for typesetting10319
2169 Node: Lpr format11448
2170 Node: Editing %# notation12505
2171 Node: Completion13024
2172 Node: Begin-type completion13584
2173 Node: Section-type completion16627
2174 Node: view-sectioning19062
2175 Node: Large-type completion20642
2176 Node: Maketitle-type completion21373
2177 Node: Arbitrary completion21925
2178 Node: End completion22315
2179 Node: Accent completion22785
2180 Node: Image completion23402
2181 Node: Greek letters completion25659
2182 Node: Local dictionaries26386
2183 Node: Commenting out27323
2184 Node: Cursor jump28782
2185 Node: Jump to corresponding object29094
2186 Node: Invoking image processor30495
2187 Node: Jump to main file31838
2188 Node: Jumping around the environment32203
2189 Node: Jumping to last completion position32621
2190 Node: Changing and Deleting33130
2191 Node: Changing LaTeX commands33522
2192 Node: Killing LaTeX commands34699
2193 Node: Filling35884
2194 Node: Updation of includeonly37735
2195 Node: What column38532
2196 Node: Intelligent newline39617
2197 Node: Usepackage checker41271
2198 Node: Online help41862
2199 Node: Browsing file hierarchy43537
2200 Node: Cooperation with other packages45274
2201 Node: Customizations45979
2202 Node: Lisp variables46313
2203 Node: All customizable variables47317
2204 Node: Sample definitions57116
2205 Node: Hook variables57629
2206 Node: Hook file58333
2207 Node: Add-in functions58672
2208 Node: How the add-in function works59532
2209 Node: Defining option-add-in61731
2210 Node: Defining argument-add-in62453
2211 Node: Defining enclosing-add-in63335
2212 Node: How the function is called64189
2213 Node: Useful functions for creating add-in64865
2214 Node: Contribution66270
2215 Node: Add-in generator66544
2216 Node: Etcetera71916
2217 Node: Copying72521
2219 End tag table