yatex

annotate docs/yatexe.tex @ 49:eb0512bfcb7f

Abolish user-article table. Use normal read-string instead. Supply smart add-in function for documentstyle. Update user dictionary whenever new words entered. Enhance [prefix] c. Allow user defined sectioning commands in yatexsec.
author yuuji
date Fri, 25 Nov 1994 08:26:13 +0000
parents a0640ff3f72f
children b0371b6ed799
rev   line source
yuuji@46 1 \def\lang{jp} % -*- texinfo -*-
yuuji@20 2 \input texinfo.tex
yuuji@20 3 @setfilename yatexe
yuuji@20 4 @settitle Yet Another tex-mode for Emacs
yuuji@20 5
yuuji@20 6 @iftex
yuuji@46 7 @c @syncodeindex fn cp
yuuji@20 8 @syncodeindex vr cp
yuuji@20 9 @end iftex
yuuji@20 10
yuuji@20 11 @titlepage
yuuji@20 12 @sp 10
yuuji@20 13 @center
yuuji@20 14 @subtitle Yet Another tex-mode for emacs
yuuji@20 15 @title Wild Bird
yuuji@20 16 @subtitle // YaTeX //
yuuji@20 17 @author @copyright{} 1991-1994 by HIROSE, Yuuji [yuuji@@ae.keio.ac.jp]
yuuji@20 18 @end titlepage
yuuji@20 19
yuuji@20 20 @node Top, What is YaTeX?, (dir), (dir)
yuuji@20 21 @comment node-name, next, previous, up
yuuji@20 22 @cindex Demacs
yuuji@20 23 @cindex Mule
yuuji@20 24 @cindex LaTeX
yuuji@20 25 @cindex YaTeX
yuuji@20 26
yuuji@20 27 @menu
yuuji@20 28 * What is YaTeX?::
yuuji@20 29 * Main features::
yuuji@20 30 * Installation::
yuuji@20 31 * Typesetting::
yuuji@20 32 * %# notation::
yuuji@20 33 * Completion::
yuuji@49 34 * Local dictionaries::
yuuji@20 35 * Commenting out::
yuuji@20 36 * Cursor jump::
yuuji@20 37 * Changing and Deleting::
yuuji@20 38 * Filling an item::
yuuji@20 39 * Updation of @code{\includeonly}::
yuuji@20 40 * What column?::
yuuji@28 41 * Intelligent newline::
yuuji@20 42 * Online help::
yuuji@20 43 * Cooperation with other packages::
yuuji@20 44 * Customizations::
yuuji@20 45 * Etcetera::
yuuji@20 46 * Copying::
yuuji@20 47
yuuji@20 48 --- The Detailed Node Listing ---
yuuji@20 49
yuuji@20 50 %# notation
yuuji@20 51
yuuji@20 52 * Changing typesetter::
yuuji@20 53 * Static region for typesetting::
yuuji@20 54 * Lpr format::
yuuji@20 55 * Editing %# notation::
yuuji@20 56
yuuji@20 57 Completion
yuuji@20 58
yuuji@20 59 * Begin-type completion::
yuuji@20 60 * Section-type completion::
yuuji@20 61 * Large-type completion::
yuuji@20 62 * Maketitle-type completion::
yuuji@20 63 * Arbitrary completion::
yuuji@20 64 * End completion::
yuuji@20 65 * Accent completion::
yuuji@20 66 * Image completion::
yuuji@20 67 * Greek letters completion::
yuuji@20 68
yuuji@20 69 Section-type completion
yuuji@20 70
yuuji@20 71 * view-sectioning::
yuuji@20 72
yuuji@49 73 Changing and Deleting
yuuji@49 74
yuuji@49 75 * Changing La@TeX{} commands::
yuuji@49 76 * Killing La@TeX{} commands::
yuuji@49 77
yuuji@20 78 Customizations
yuuji@20 79
yuuji@20 80 * Lisp variables::
yuuji@20 81 * Add-in functions::
yuuji@49 82 * Add-in generator::
yuuji@20 83
yuuji@20 84 Lisp variables
yuuji@20 85
yuuji@20 86 * All customizable variables::
yuuji@20 87 * Sample definitions::
yuuji@20 88 * Hook variables::
yuuji@20 89 * Hook file::
yuuji@49 90
yuuji@49 91 Procedure
yuuji@49 92
yuuji@49 93 * How the add-in function works?::
yuuji@49 94 * How the function is called::
yuuji@49 95 * Useful functions for creating add-in::
yuuji@49 96 * Contribution::
yuuji@49 97
yuuji@49 98 How the add-in function works?
yuuji@49 99
yuuji@49 100 * Defining `option add-in'::
yuuji@49 101 * Defining `argument add-in'::
yuuji@20 102 @end menu
yuuji@20 103
yuuji@20 104 @node What is YaTeX?, Main features, Top, Top
yuuji@20 105 @comment node-name, next, previous, up
yuuji@20 106 @chapter What is YaTeX?
yuuji@20 107
yuuji@20 108 YaTeX automates typesetting and previewing of LaTeX and enables
yuuji@20 109 completing input of LaTeX mark-up command such as
yuuji@20 110 @code{\begin@{@}}..@code{\end@{@}}.
yuuji@20 111
yuuji@20 112 YaTeX also supports Demacs which runs on MS-DOS(386), Mule (Multi
yuuji@20 113 Language Enhancement to GNU Emacs), and latex on DOS.
yuuji@20 114
yuuji@20 115 @node Main features, Installation, What is YaTeX?, Top
yuuji@20 116 @comment node-name, next, previous, up
yuuji@20 117 @chapter Main features
yuuji@20 118
yuuji@20 119 @itemize
yuuji@46 120 @item Invocation of typesetter, previewer and related programs(@kbd{C-c t})
yuuji@20 121 @item Typesetting on static region which is independent from point
yuuji@20 122 @item Semiautomatic replacing of @code{\include only}
yuuji@20 123 @item Jumping to error line(@kbd{C-c '})
yuuji@20 124 @item Completing-read of La@TeX{} commands such as @code{\begin@{@}},
yuuji@20 125 @code{\section} etc.
yuuji@20 126 (@kbd{C-c b}, @kbd{C-c s}, @kbd{C-c l}, @kbd{C-c m})
yuuji@20 127 @item Enclosing text into La@TeX{} environments or commands
yuuji@20 128 (@kbd{C-u} @var{AboveKeyStrokes})
yuuji@49 129 @item Displaying the structure of text at entering sectioning delimiters
yuuji@20 130 @item Learning unknown/new La@TeX{} commands for the next completion
yuuji@20 131 @item Argument reading with a guide for complicated La@TeX{} commands
yuuji@20 132 @item Generating argument-readers for new/unsupported commands(@file{yatexgen})
yuuji@20 133 @item Quick changing or deleting of La@TeX{} commands(@kbd{C-c c}, @kbd{C-c k})
yuuji@20 134 @item Jumping from and to inter-file, begin<->end, ref<->label(@kbd{C-c g})
yuuji@20 135 @item Blanket commenting out or uncommenting
yuuji@20 136 (@kbd{C-c >}, @kbd{C-c <}, @kbd{C-c ,}, @kbd{C-c .})
yuuji@20 137 @item Easy input of accent mark, math-mode's commands and Greek letters
yuuji@20 138 (@kbd{C-c a}, @kbd{;}, @kbd{/})
yuuji@20 139 @item Online help for the popular La@TeX{} commands
yuuji@20 140 (@kbd{C-c ?}, @kbd{C-c /})(English help is not yet supported)
yuuji@20 141 @end itemize
yuuji@20 142
yuuji@20 143 @node Installation, Typesetting, Main features, Top
yuuji@20 144 @comment node-name, next, previous, up
yuuji@20 145 @chapter Installation
yuuji@20 146 @cindex installation
yuuji@20 147 @cindex .emacs
yuuji@20 148 @cindex auto-mode-alist
yuuji@20 149 @cindex autoload
yuuji@20 150
yuuji@20 151 Put next two expressions into your @file{~/.emacs}.
yuuji@20 152
yuuji@20 153 @lisp
yuuji@20 154 (setq auto-mode-alist
yuuji@46 155 (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
yuuji@20 156 (autoload 'yatex-mode "yatex" "Yet Another La@TeX{} mode" t)
yuuji@20 157 @end lisp
yuuji@20 158
yuuji@20 159 Next, add certain path name where you put files of YaTeX to your
yuuji@20 160 load-path. If you want to put them in @file{~/src/emacs}, write
yuuji@20 161
yuuji@20 162 @lisp
yuuji@20 163 (setq load-path
yuuji@20 164 (cons (expand-file-name "~/src/emacs") load-path))
yuuji@20 165 @end lisp
yuuji@20 166
yuuji@20 167 @noindent
yuuji@20 168 in your @file{~/.emacs}
yuuji@20 169
yuuji@20 170 Then, yatex-mode will be automatically loaded when you visit a
yuuji@20 171 file which has extension @file{.tex}. If yatex-mode is successfully
yuuji@20 172 loaded, mode string on mode line will be turned to "YaTeX".
yuuji@20 173
yuuji@20 174
yuuji@20 175 @node Typesetting, %# notation, Installation, Top
yuuji@20 176 @comment node-name, next, previous, up
yuuji@20 177 @chapter Typesetting
yuuji@20 178 @cindex typesetting
yuuji@20 179 @cindex previewer
yuuji@20 180 @cindex typesetter
yuuji@20 181 @cindex latex
yuuji@20 182 @cindex printing out
yuuji@20 183
yuuji@20 184 The prefix key stroke of yatex-mode is @kbd{C-c} (Press 'C' with Control
yuuji@20 185 key) by default. If you don't intend to change the prefix key stroke,
yuuji@20 186 assume all @kbd{[prefix]} as @kbd{C-c} in this document. These key
yuuji@20 187 strokes execute typeset or preview command.
yuuji@20 188
yuuji@20 189 @table @kbd
yuuji@20 190 @item [prefix] tj
yuuji@46 191 @dots{} invoke latex
yuuji@20 192 @item [prefix] tr
yuuji@46 193 @dots{} invoke latex on region
yuuji@20 194 @item [prefix] tk
yuuji@46 195 @dots{} kill current typesetting process
yuuji@20 196 @item [prefix] tb
yuuji@46 197 @dots{} invoke bibtex
yuuji@20 198 @item [prefix] tp
yuuji@46 199 @dots{} preview
yuuji@20 200 @item [prefix] tl
yuuji@46 201 @dots{} lpr dvi-file
yuuji@20 202 @end table
yuuji@20 203
yuuji@20 204 The current editing window will be divided horizontally when you
yuuji@20 205 invoke latex command, and log message of La@TeX{} typesetting will be
yuuji@20 206 displayed in the other window; called typesetting buffer. The
yuuji@20 207 typesetting buffer automatically scrolls up and traces La@TeX{}
yuuji@20 208 warnings and error messages. If you see latex stopping by an
yuuji@20 209 error, you can send string to latex in the typesetting buffer.
yuuji@20 210
yuuji@20 211 If an error stops the La@TeX{} typesetting, this key stroke will
yuuji@20 212 move the cursor to the line where La@TeX{} error is detected.
yuuji@20 213
yuuji@20 214 @table @kbd
yuuji@20 215 @item [prefix] '
yuuji@20 216 @itemx ([prefix]+single quotation)
yuuji@20 217
yuuji@46 218 @dots{} jump to the previous error or warning
yuuji@20 219 @end table
yuuji@20 220
yuuji@20 221 If you find a noticeable error, move to the typesetting buffer and move
yuuji@20 222 the cursor on the line of error message and type @kbd{SPACE} key. This
yuuji@20 223 makes the cursor move to corresponding source line.
yuuji@20 224
yuuji@20 225 Since @kbd{[prefix] tr} pastes the region into the file
yuuji@20 226 @file{texput.tex} in the current directory, you should be careful of
yuuji@20 227 overwriting. The method of specification of the region is shown in the
yuuji@20 228 section @xref{%#NOTATION}.
yuuji@20 229
yuuji@20 230 The documentstyle for typeset-region is the same as that of editing
yuuji@20 231 file if you edit one file, and is the same as main file's if you
yuuji@20 232 edit splitting files.
yuuji@20 233
yuuji@20 234 YaTeX asks you the range of dvi-printing by default. You can
yuuji@20 235 skip this by invoking it with universal-argument as follows:
yuuji@20 236
yuuji@20 237 @example
yuuji@49 238 C-u [prefix] tl
yuuji@20 239 @end example
yuuji@20 240
yuuji@20 241 @node %# notation, Completion, Typesetting, Top
yuuji@20 242 @comment node-name, next, previous, up
yuuji@20 243 @chapter %# notation
yuuji@20 244 @cindex %# notation
yuuji@20 245
yuuji@20 246 You can control the typesetting process by describing @code{%#}
yuuji@20 247 notations in the source text.
yuuji@20 248
yuuji@20 249 @menu
yuuji@20 250 * Changing typesetter::
yuuji@20 251 * Static region for typesetting::
yuuji@20 252 * Lpr format::
yuuji@20 253 * Editing %# notation::
yuuji@20 254 @end menu
yuuji@20 255
yuuji@33 256 @node Changing typesetter, Static region for typesetting, %# notation, %# notation
yuuji@20 257 @comment node-name, next, previous, up
yuuji@20 258 @section To change the `latex' command or to split a source text.
yuuji@20 259 @cindex typesetter
yuuji@20 260
yuuji@20 261 To change the typesetting command, write
yuuji@20 262
yuuji@20 263 @example
yuuji@46 264 %#!latex-big
yuuji@20 265 @end example
yuuji@20 266
yuuji@20 267 @noindent
yuuji@20 268 anywhere in the source text. And if you split the source text and
yuuji@20 269 edit subfile that should be included from main text.
yuuji@20 270
yuuji@20 271 @example
yuuji@46 272 %#!latex main.tex
yuuji@20 273 @end example
yuuji@20 274
yuuji@20 275 @noindent
yuuji@20 276 will be helpful to execute latex on main file from sub text buffer. Since
yuuji@20 277 this command line after @kbd{%#!} will be sent to shell literally, next
yuuji@20 278 description makes it convenient to use ghostview as dvi-previewer.
yuuji@20 279
yuuji@20 280 @example
yuuji@46 281 %#!latex main ; dvi2ps main.dvi > main
yuuji@20 282 @end example
yuuji@20 283
yuuji@20 284 @noindent
yuuji@20 285 Note that YaTeX assumes the component before the last period of
yuuji@20 286 the last word in this line as base name of the main La@TeX{} source.
yuuji@20 287
yuuji@20 288 Here are the restrictions on splitting sources.
yuuji@20 289
yuuji@20 290 @itemize
yuuji@20 291 @item All the file name should be different.
yuuji@20 292 @item You can put split texts in sub directory, but not in
yuuji@20 293 sub directory of sub directory.
yuuji@20 294 @item In the main text,specify the file with relative path name
yuuji@20 295 such as \include{chap1/sub}, when you include the file in
yuuji@20 296 a sub-directory.
yuuji@20 297 @item In a sub-text, write @code{%#!latex main.tex} even if @file{main.tex}
yuuji@20 298 is in the parent directory(not %#!latex ../main.tex).
yuuji@20 299 @end itemize
yuuji@20 300
yuuji@20 301 @node Static region for typesetting, Lpr format, Changing typesetter, %# notation
yuuji@20 302 @comment node-name, next, previous, up
yuuji@20 303 @section Static region
yuuji@20 304 @cindex static region
yuuji@20 305 @cindex Fixed region
yuuji@20 306
yuuji@20 307 Typeset-region by @kbd{[prefix] tr} passes the region between point and
yuuji@20 308 mark to typesetting command by default. But when you want to typeset
yuuji@20 309 static region, enclose the region by @code{%#BEGIN} and @code{%#END} as
yuuji@20 310 follows.
yuuji@20 311
yuuji@20 312 @example
yuuji@46 313 %#BEGIN
yuuji@46 314 TheRegionYouWantToTypesetManyTimes
yuuji@46 315 %#END
yuuji@20 316 @end example
yuuji@20 317
yuuji@20 318 This is the rule of deciding the region.
yuuji@20 319
yuuji@20 320 @enumerate
yuuji@20 321 @item
yuuji@20 322 If there exists %#BEGIN before point,
yuuji@20 323
yuuji@20 324 @enumerate
yuuji@20 325 @item
yuuji@20 326 If there exists %#END after %#BEGIN,
yuuji@20 327 @itemize
yuuji@20 328 @item From %#BEGIN to %#END.
yuuji@20 329 @end itemize
yuuji@20 330
yuuji@20 331 @item
yuuji@20 332 If %#END does not exist after %#BEGIN,
yuuji@20 333 @itemize
yuuji@20 334 @item From %#BEGIN to the end of buffer.
yuuji@20 335 @end itemize
yuuji@20 336 @end enumerate
yuuji@20 337
yuuji@20 338 @item
yuuji@20 339 If there does not exist %#BEGIN before point,
yuuji@20 340 @itemize
yuuji@20 341 @item Between point and mark(standard method of Emacs).
yuuji@20 342 @end itemize
yuuji@20 343 @end enumerate
yuuji@20 344
yuuji@20 345 It is useful to write @code{%#BEGIN} in the previous line of \begin and
yuuji@20 346 @code{%#END} in the next line of \@code{end} when you try complex
yuuji@20 347 environment such as `tabular' many times. It is also useful to put only
yuuji@20 348 @code{%#BEGIN} alone at the middle of very long text. Do not forget to
yuuji@20 349 erase @code{%#BEGIN} @code{%#END} pair.
yuuji@20 350
yuuji@20 351 @node Lpr format, Editing %# notation, Static region for typesetting, %# notation
yuuji@20 352 @comment node-name, next, previous, up
yuuji@20 353 @section Lpr format
yuuji@20 354 @cindex lpr format
yuuji@20 355
yuuji@20 356 Lpr format is specified by three Lisp variables. Here are the
yuuji@20 357 default values of them.
yuuji@20 358
yuuji@20 359 @table @code
yuuji@20 360 @item (1)dviprint-command-format
yuuji@46 361 @code{"dvi2ps %f %t %s | lpr"}
yuuji@20 362 @item (2)dviprint-from-format
yuuji@46 363 @code{"-f %b"}
yuuji@20 364 @item (3)dviprint-to-format
yuuji@46 365 @code{"-t %e"}
yuuji@20 366 @end table
yuuji@20 367
yuuji@20 368 On YaTeX-lpr, @code{%s} in (1) is replaced by the file name of main
yuuji@20 369 text, @code{%f} by contents of (2), %t by contents of (3). At these
yuuji@20 370 replacements, @code{%b} in (2) is also replaced by the number of beginning
yuuji@20 371 page, @code{%e} in (3) is replaced by the number of ending page. But
yuuji@20 372 @code{%f} and @code{%t} are ignored when you omit the range of print-out
yuuji@20 373 by @kbd{C-u [prefix] tl}.
yuuji@20 374
yuuji@20 375 If you want to change this lpr format temporarily, put a command
yuuji@20 376 such as follows somewhere in the text:
yuuji@20 377
yuuji@20 378 @example
yuuji@46 379 %#LPR dvi2ps %f %t %s | 4up -page 4 | texfix | lpr -Plp2
yuuji@20 380 @end example
yuuji@20 381
yuuji@20 382 And if you want YaTeX not to ask you the range of printing
yuuji@20 383 out, the next example may be helpful.
yuuji@20 384
yuuji@20 385 @example
yuuji@46 386 %#LPR dvi2ps %s | lpr
yuuji@20 387 @end example
yuuji@20 388
yuuji@20 389 @node Editing %# notation, , Lpr format, %# notation
yuuji@20 390 @comment node-name, next, previous, up
yuuji@20 391 @section Editing %# notation
yuuji@20 392
yuuji@20 393 To edit @code{%#} notation described above, type
yuuji@20 394
yuuji@20 395 @table @kbd
yuuji@20 396 @item [prefix] %
yuuji@46 397 @dots{} editing %# notation menu
yuuji@20 398 @end table
yuuji@20 399
yuuji@20 400 @noindent
yuuji@20 401 and select one of the entry of the menu as follows.
yuuji@20 402
yuuji@20 403 @example
yuuji@46 404 !)Edit-%#! B)EGIN-END-region L)Edit-%#LPR
yuuji@20 405 @end example
yuuji@20 406
yuuji@20 407 @noindent
yuuji@20 408 Type @kbd{!} to edit @code{%#!} entry, @code{b} to enclose the region with
yuuji@20 409 @code{%#BEGIN} and @code{%#END}, and @code{l} to edit @code{%#LPR} entry.
yuuji@20 410 When you type @kbd{b}, all @code{%#BEGIN} and @code{%#END} are
yuuji@20 411 automatically erased.
yuuji@20 412
yuuji@49 413 @node Completion, Local dictionaries, %# notation, Top
yuuji@20 414 @comment node-name, next, previous, up
yuuji@20 415 @chapter Completion
yuuji@20 416 @cindex completion
yuuji@20 417
yuuji@20 418 YaTeX makes it easy to input the La@TeX{} commands. There are several
yuuji@20 419 kinds of completion type, begin-type, section-type, large-type, etc...
yuuji@20 420
yuuji@20 421 @menu
yuuji@20 422 * Begin-type completion::
yuuji@20 423 * Section-type completion::
yuuji@20 424 * Large-type completion::
yuuji@20 425 * Maketitle-type completion::
yuuji@20 426 * Arbitrary completion::
yuuji@20 427 * End completion::
yuuji@20 428 * Accent completion::
yuuji@20 429 * Image completion::
yuuji@20 430 * Greek letters completion::
yuuji@20 431 @end menu
yuuji@20 432
yuuji@33 433 @node Begin-type completion, Section-type completion, Completion, Completion
yuuji@20 434 @comment node-name, next, previous, up
yuuji@20 435 @section Begin-type completion
yuuji@20 436 @cindex begin-type completion
yuuji@20 437 @cindex environment
yuuji@20 438 @cindex prefix b
yuuji@20 439
yuuji@20 440 "Begin-type completion" completes commands of @code{\begin@{env@}} ...
yuuji@20 441 @code{\end@{env@}}. All of the begin-type completions begin with this key
yuuji@20 442 sequence.
yuuji@20 443
yuuji@20 444 @table @kbd
yuuji@20 445 @item [prefix] b
yuuji@46 446 @dots{} start begin-type completion
yuuji@20 447 @end table
yuuji@20 448
yuuji@20 449 @noindent
yuuji@20 450 An additional key stroke immediately completes a frequently used
yuuji@20 451 La@TeX{} @code{\begin@{@}}...@code{\@code{end}@{@}} environment.
yuuji@20 452
yuuji@20 453 @table @kbd
yuuji@20 454 @item [prefix] b c
yuuji@46 455 @dots{} @code{\begin@{center@}...\end@{center@}}
yuuji@20 456 @item [prefix] b d
yuuji@46 457 @dots{} @code{\begin@{document@}...\end@{document@}}
yuuji@20 458 @item [prefix] b D
yuuji@46 459 @dots{} @code{\begin@{description@}...\end@{description@}}
yuuji@20 460 @item [prefix] b e
yuuji@46 461 @dots{} @code{\begin@{enumerate@}...\end@{enumerate@}}
yuuji@20 462 @item [prefix] b E
yuuji@46 463 @dots{} @code{\begin@{equation@}...\end@{equation@}}
yuuji@20 464 @item [prefix] b i
yuuji@46 465 @dots{} @code{\begin@{itemize@}...\end@{itemize@}}
yuuji@20 466 @item [prefix] b l
yuuji@46 467 @dots{} @code{\begin@{flushleft@}...\end@{flushleft@}}
yuuji@20 468 @item [prefix] b m
yuuji@46 469 @dots{} @code{\begin@{minipage@}...\end@{minipage@}}
yuuji@20 470 @item [prefix] b t
yuuji@46 471 @dots{} @code{\begin@{tabbing@}...\end@{tabbing@}}
yuuji@20 472 @item [prefix] b T
yuuji@46 473 @dots{} @code{\begin@{tabular@}...\end@{tabular@}}
yuuji@20 474 @item [prefix] b^T
yuuji@46 475 @dots{} @code{\begin@{table@}...\end@{table@}}
yuuji@20 476 @item [prefix] b p
yuuji@46 477 @dots{} @code{\begin@{picture@}...\end@{picture@}}
yuuji@20 478 @item [prefix] b q
yuuji@46 479 @dots{} @code{\begin@{quote@}...\end@{quote@}}
yuuji@20 480 @item [prefix] b Q
yuuji@46 481 @dots{} @code{\begin@{quotation@}...\end@{quotation@}}
yuuji@20 482 @item [prefix] b r
yuuji@46 483 @dots{} @code{\begin@{flushright@}...\end@{flushright@}}
yuuji@20 484 @item [prefix] b v
yuuji@46 485 @dots{} @code{\begin@{verbatim@}...\end@{verbatim@}}
yuuji@20 486 @item [prefix] b V
yuuji@46 487 @dots{} @code{\begin@{verse@}...\end@{verse@}}
yuuji@20 488 @end table
yuuji@20 489
yuuji@20 490 Any other La@TeX{} environments are made by completing-read of the
yuuji@20 491 Emacs function.
yuuji@20 492
yuuji@20 493 @table @kbd
yuuji@20 494 @item [prefix] b SPACE
yuuji@46 495 @dots{} begin-type completion
yuuji@20 496 @end table
yuuji@20 497
yuuji@20 498 @noindent
yuuji@20 499 The next message will show up in the minibuffer
yuuji@20 500
yuuji@20 501 @example
yuuji@46 502 Begin environment(default document):
yuuji@20 503 @end example
yuuji@20 504
yuuji@20 505 @noindent
yuuji@20 506 by typing @kbd{[prefix] b}. Put the wishing environment with completion
yuuji@20 507 in the minibuffer, and @code{\begin@{env@}}...\@code{\end@{env@}} will be
yuuji@20 508 inserted in the La@TeX{} source text. If the environment you want to put
yuuji@20 509 does not exist in the YaTeX completion table, it will be registered in the
yuuji@20 510 user completion table. YaTeX automatically saves the user completion
yuuji@20 511 table in the user dictionary file at exiting of emacs.
yuuji@20 512
yuuji@20 513 If you want to enclose some paragraphs which have already been
yuuji@20 514 written, invoke the begin-type completion with changing the case
yuuji@20 515 of @kbd{b} of key sequence upper(or invoke it with universal argument
yuuji@20 516 by @kbd{C-u} prefix).
yuuji@20 517 @cindex enclose region into environment
yuuji@20 518
yuuji@20 519 The following example encloses a region with `description'
yuuji@20 520 environment.
yuuji@20 521
yuuji@20 522 @table @kbd
yuuji@20 523 @item [prefix] B D
yuuji@20 524 @itemx (or ESC 1 [prefix] b D)
yuuji@20 525 @itemx (or C-u [prefix] b D)
yuuji@20 526
yuuji@46 527 @dots{} begin-type completion for region
yuuji@20 528 @end table
yuuji@20 529
yuuji@20 530 This enclosing holds good for the completing input by @kbd{[prefix] b
yuuji@20 531 SPC}. @kbd{[prefix] B SPC} enclose a region with the environment selected
yuuji@20 532 by completing-read.
yuuji@20 533
yuuji@20 534 @node Section-type completion, Large-type completion, Begin-type completion, Completion
yuuji@20 535 @comment node-name, next, previous, up
yuuji@20 536 @section Section-type completion
yuuji@20 537 @cindex section-type completion
yuuji@20 538 @cindex prefix s
yuuji@20 539
yuuji@20 540 "Section-type completion" completes section-type commands which take an
yuuji@20 541 argument or more such as @code{\section@{foo@}}. To invoke section-type
yuuji@20 542 completion, type
yuuji@20 543
yuuji@20 544 @table @kbd
yuuji@20 545 @item [prefix] s
yuuji@46 546 @dots{} section-type completion
yuuji@20 547 @end table
yuuji@20 548
yuuji@20 549 @noindent
yuuji@20 550 then the prompt
yuuji@20 551
yuuji@20 552 @example
yuuji@46 553 (C-v for view) \???@{@} (default documentstyle):
yuuji@20 554 @end example
yuuji@20 555
yuuji@20 556 @noindent
yuuji@20 557 will show up in the minibuffer. Section-type La@TeX{} commands are
yuuji@20 558 completed by space key, and the default value is selected when you
yuuji@20 559 type nothing in the minibuffer.
yuuji@20 560
yuuji@20 561 Next,
yuuji@20 562
yuuji@20 563 @example
yuuji@46 564 \section@{???@}:
yuuji@20 565 @end example
yuuji@20 566
yuuji@20 567 @noindent
yuuji@20 568 prompts you the argument of section-type La@TeX{} command. For
yuuji@20 569 example, the following inputs
yuuji@20 570
yuuji@20 571 @example
yuuji@46 572 \???@{@} (default documentstyle): section
yuuji@46 573 \section{???}: Hello world.
yuuji@20 574 @end example
yuuji@20 575
yuuji@20 576 @noindent
yuuji@20 577 will insert the string
yuuji@20 578
yuuji@20 579 @example
yuuji@46 580 \section@{Hello world.@}
yuuji@20 581 @end example
yuuji@20 582
yuuji@20 583 in your La@TeX{} source. When you neglect argument such as
yuuji@20 584
yuuji@20 585 @example
yuuji@46 586 (C-v for view) \???@{@} (default section): vspace*
yuuji@46 587 \vspace*@{???@}:
yuuji@20 588 @end example
yuuji@20 589
yuuji@20 590 YaTeX puts
yuuji@20 591
yuuji@20 592 @example
yuuji@46 593 \vspace*@{@}
yuuji@20 594 @end example
yuuji@20 595
yuuji@20 596 @noindent
yuuji@20 597 and move the cursor in the braces.
yuuji@20 598
yuuji@20 599 In La@TeX{} command, there are commands which take more than one
yuuji@20 600 arguments such as @code{\addtolength{\topmargin}{8mm}}. To complete these
yuuji@20 601 commands, invoke section-type completion with universal argument as,
yuuji@20 602 @cindex number of argument
yuuji@20 603
yuuji@20 604 @example
yuuji@49 605 C-u 2 [prefix] s (or ESC 2 [prefix] s)
yuuji@20 606 @end example
yuuji@20 607
yuuji@20 608 @noindent
yuuji@20 609 and make answers in minibuffer like this.
yuuji@20 610
yuuji@20 611 @example
yuuji@46 612 (C-v for view) \???@{@} (default vspace*): addtolength
yuuji@46 613 \addtolength@{???@}: \topmargin
yuuji@46 614 Argument 2: 8mm
yuuji@20 615 @end example
yuuji@20 616
yuuji@20 617 @code{\addtolength} and the first argument @code{\topmargin} can be typed
yuuji@20 618 easily by completing read. Since YaTeX also learns the number of
yuuji@20 619 arguments of section-type command and will ask that many arguments in
yuuji@20 620 future completion, you had better tell the number of arguments to YaTeX at
yuuji@20 621 the first completion of the new word. But you can change the number of
yuuji@20 622 arguments by calling the completion with different universal argument
yuuji@20 623 again.
yuuji@20 624
yuuji@20 625
yuuji@20 626 Invoking section-type completion with @code{[Prefix] S} (Capital `S')
yuuji@20 627 includes the region as the first argument of section-type command.
yuuji@20 628
yuuji@20 629 The section/large/maketitle type completion can work at the
yuuji@20 630 prompt for the argument of other section-type completion.
yuuji@20 631 Nested La@TeX{} commands are efficiently read with the recursive
yuuji@20 632 completion by typing YaTeX's completion key sequence in the
yuuji@20 633 minibuffer.
yuuji@20 634
yuuji@20 635 @menu
yuuji@20 636 * view-sectioning::
yuuji@20 637 @end menu
yuuji@20 638
yuuji@33 639 @node view-sectioning, , Section-type completion, Section-type completion
yuuji@20 640 @comment node-name, next, previous, up
yuuji@20 641 @subsection view-sectioning
yuuji@20 642 @cindex view sectioning
yuuji@20 643 @cindex outline
yuuji@20 644
yuuji@20 645 In the minibuffer at the prompt of section-type command completion,
yuuji@20 646 typing @kbd{C-v} shows a list of sectioning commands in source text(The
yuuji@20 647 line with @code{<<--} mark is the nearest sectioning command). Then,
yuuji@20 648 default sectioning command appears in the minibuffer. You can go up/down
yuuji@20 649 sectioning command by typing @kbd{C-p}/@kbd{C-n}, can scrolls up/down the
yuuji@20 650 listing buffer by @kbd{C-v}/@kbd{M-v}, and can hide sectioning commands
yuuji@20 651 under certain level by 0 through 6. Type @kbd{?} in the minibuffer of
yuuji@20 652 sectioning prompt for more information.
yuuji@20 653
yuuji@20 654 @node Large-type completion, Maketitle-type completion, Section-type completion, Completion
yuuji@20 655 @comment node-name, next, previous, up
yuuji@20 656 @section Large-type completion
yuuji@20 657
yuuji@20 658 "Large-type completion" inputs the font or size changing
yuuji@20 659 descriptions such as @code{@{\large @}}. When you type
yuuji@20 660
yuuji@20 661 @table @kbd
yuuji@20 662 @item [prefix] l
yuuji@46 663 @dots{} large-type completion
yuuji@20 664 @end table
yuuji@20 665
yuuji@20 666 @noindent
yuuji@20 667 the message in the minibuffer
yuuji@20 668
yuuji@20 669 @example
yuuji@46 670 @{\??? @} (default large):
yuuji@20 671 @end example
yuuji@20 672
yuuji@20 673 prompts prompts you large-type command with completing-read. There are
yuuji@20 674 TeX commands to change fonts or sizes, @code{it}, @code{huge} and so on,
yuuji@20 675 in the completion table.
yuuji@20 676
yuuji@20 677 Region-based completion is also invoked by changing the letter after
yuuji@20 678 prefix key stroke as @kbd{[prefix] L}. It encloses the region by braces
yuuji@20 679 with large-type command.
yuuji@20 680
yuuji@20 681 @node Maketitle-type completion, Arbitrary completion, Large-type completion, Completion
yuuji@20 682 @comment node-name, next, previous, up
yuuji@20 683 @section Maketitle-type completion
yuuji@20 684 @cindex maketitle-type completion
yuuji@20 685
yuuji@20 686 We call it "maketitle-type completion" which completes commands such as
yuuji@20 687 @code{\maketitle}. Take notice that maketitle-type commands take no
yuuji@20 688 arguments. Then, typing
yuuji@20 689
yuuji@20 690 @table @kbd
yuuji@20 691 @item [prefix] m
yuuji@46 692 @dots{} maketitle-type completion
yuuji@20 693 @end table
yuuji@20 694
yuuji@20 695 @noindent
yuuji@20 696 begins maketitle-completion. Above mentioned method is true for
yuuji@20 697 maketitle-completion, and there are La@TeX{} commands with no
yuuji@20 698 arguments in completion table.
yuuji@20 699
yuuji@20 700 @node Arbitrary completion, End completion, Maketitle-type completion, Completion
yuuji@20 701 @comment node-name, next, previous, up
yuuji@20 702 @section Arbitrary completion
yuuji@20 703 @cindex arbitrary completion
yuuji@20 704
yuuji@20 705 @noindent
yuuji@20 706 You can complete certain La@TeX{} command anywhere without typical
yuuji@20 707 completing method as described, by typing
yuuji@20 708
yuuji@20 709 @table @kbd
yuuji@20 710 @item [prefix] SPC
yuuji@46 711 @dots{} arbitrary completion
yuuji@20 712 @end table
yuuji@20 713
yuuji@20 714 @noindent
yuuji@20 715 after the initial string of La@TeX{} command that is preceded by @code{\}.
yuuji@20 716
yuuji@20 717 @node End completion, Accent completion, Arbitrary completion, Completion
yuuji@20 718 @comment node-name, next, previous, up
yuuji@20 719 @section End completion
yuuji@20 720 @cindex end completion
yuuji@20 721
yuuji@20 722 @noindent
yuuji@20 723 YaTeX automatically detects the opened environment and close it with
yuuji@20 724 \@code{\end@{environment@}}. Though proficient YaTeX users never fail to
yuuji@20 725 make environment with begin-type completion, some may begin an environment
yuuji@20 726 manually. In that case, type
yuuji@20 727
yuuji@20 728 @table @kbd
yuuji@20 729 @item [prefix] e
yuuji@46 730 @dots{} @code{end} completion
yuuji@20 731 @end table
yuuji@20 732
yuuji@20 733 @noindent
yuuji@20 734 at the end of the opened environment.
yuuji@20 735
yuuji@20 736 @node Accent completion, Image completion, End completion, Completion
yuuji@20 737 @comment node-name, next, previous, up
yuuji@20 738 @section Accent completion
yuuji@20 739 @cindex accent completion
yuuji@20 740
yuuji@20 741 When you want to write the European accent marks(like @code{\`@{o@}}),
yuuji@20 742
yuuji@20 743 @table @kbd
yuuji@20 744 @item [prefix] a
yuuji@46 745 @dots{} accent completion
yuuji@20 746 @end table
yuuji@20 747
yuuji@20 748 @noindent
yuuji@20 749 shows the menu
yuuji@20 750
yuuji@20 751 @example
yuuji@46 752 1:` 2:' 3:^ 4:" 5:~ 6:= 7:. u v H t c d b
yuuji@20 753 @end example
yuuji@20 754
yuuji@20 755 @noindent
yuuji@20 756 in the minibuffer. Chose one character or corresponding numeric,
yuuji@20 757 and you will see
yuuji@20 758
yuuji@20 759 @example
yuuji@46 760 \`{}
yuuji@20 761 @end example
yuuji@20 762
yuuji@20 763 @noindent
yuuji@20 764 in the editing buffer with the cursor positioned in braces. Type
yuuji@20 765 one more character `o' for example, then
yuuji@20 766
yuuji@20 767 @example
yuuji@46 768 \`{o}
yuuji@20 769 @end example
yuuji@20 770
yuuji@20 771 @noindent
yuuji@20 772 will be completed, and the cursor gets out from braces.
yuuji@20 773
yuuji@20 774 @node Image completion, Greek letters completion, Accent completion, Completion
yuuji@20 775 @comment node-name, next, previous, up
yuuji@20 776 @section Image completion of mathematical sign
yuuji@20 777 @cindex image completion
yuuji@20 778 @cindex math-mode
yuuji@20 779 @cindex sigma
yuuji@20 780 @cindex leftarrow
yuuji@20 781 @cindex ;
yuuji@20 782
yuuji@20 783 Arrow marks, sigma mark and those signs mainly used in the
yuuji@20 784 TeX's math environment are completed by key sequences which
yuuji@20 785 imitate the corresponding symbols graphically. This completion
yuuji@20 786 only works in the math environment. YaTeX automatically detects
yuuji@20 787 whether the cursor located in math environment or not, and
yuuji@20 788 change the behavior of key strokes @kbd{;} and @kbd{/}.
yuuji@20 789
yuuji@20 790 By the way, we often express the leftarrow mark by `<-' for example.
yuuji@20 791 Considering such image, you can write @code{\leftarrow} by typing @kbd{<-}
yuuji@20 792 after @kbd{;} (semicolon) as a prefix. In the same way,
yuuji@20 793 @code{\longleftarrow} (@code{<--}) is completed by typing @kbd{;<--},
yuuji@20 794 infinity mark which is imitated by @code{oo} is completed by typing
yuuji@20 795 @kbd{;oo}.
yuuji@20 796
yuuji@20 797 Here are the sample operations in YaTeX math-mode.
yuuji@20 798
yuuji@20 799 @example
yuuji@20 800 INPUT Completed La@TeX{} commands
yuuji@20 801 ; < - @code{\leftarrow}
yuuji@20 802 ; < - - @code{\longleftarrow}
yuuji@20 803 ; < - - > @code{\longleftrightarrow}
yuuji@20 804 ; o @code{\circ}
yuuji@20 805 ; o o @code{\infty}
yuuji@20 806 @end example
yuuji@20 807
yuuji@20 808 In any case, you can quit from image completion and can move
yuuji@20 809 to the next editing operation if the La@TeX{} command you want is
yuuji@20 810 shown in the buffer.
yuuji@20 811
yuuji@20 812 @code{;} itself in math-environment is inserted by @kbd{;;}. Typing
yuuji@20 813 @kbd{TAB} in the midst of image completion shows all of the La@TeX{}
yuuji@20 814 commands that start with the same name as string you previously typed in.
yuuji@20 815 In this menu buffer, press @kbd{RET} after moving the cursor (by @kbd{n},
yuuji@20 816 @kbd{p}, @kbd{b}, @kbd{f}) to insert the La@TeX{} command.
yuuji@20 817
yuuji@20 818 To know all of the completion table, type @kbd{TAB} just after @kbd{;}.
yuuji@20 819 And here is the sample menu by @kbd{TAB} after @kbd{;<}.
yuuji@20 820
yuuji@20 821 @example
yuuji@20 822 KEY LaTeX sequence sign
yuuji@20 823 < \leq <
yuuji@20 824 ~
yuuji@20 825 << \ll <<
yuuji@20 826 <- \leftarrow <-
yuuji@20 827 <= \Leftarrow <=
yuuji@20 828 @end example
yuuji@20 829
yuuji@20 830 You can define your favorite key-vs-sequence completion table in the
yuuji@20 831 Emacs-Lisp variable @code{YaTeX-math-sign-alist-private}. See also
yuuji@20 832 @file{yatexmth.el} for the information of the structure of this variable.
yuuji@20 833
yuuji@20 834 @node Greek letters completion, , Image completion, Completion
yuuji@20 835 @comment node-name, next, previous, up
yuuji@20 836 @section Greek letters completion
yuuji@20 837 @cindex Greek letters completion
yuuji@20 838 @cindex /
yuuji@20 839
yuuji@20 840 Math-mode of YaTeX provides another image completion, Greek letters
yuuji@20 841 completion in the same method. After prefix @kbd{/}, typing @kbd{a} makes
yuuji@20 842 @code{\alpha}, @kbd{b} makes @code{\beta} and @kbd{g} makes @code{\gamma}
yuuji@20 843 and so on. First, type @kbd{/TAB} to know all the correspondence of
yuuji@20 844 alphabets v.s. Greek letters.
yuuji@20 845
yuuji@20 846 If you will find @kbd{;} or @kbd{/} doesn't work in correct position of
yuuji@20 847 math environment, it may be a bug of YaTeX. Please send me a bug report
yuuji@20 848 with the configuration of your text, and avoid it temporarily by typing
yuuji@20 849 @kbd{;} or @kbd{/} after universal-argument(@kbd{C-u}) which forces
yuuji@20 850 @kbd{;} and @kbd{/} to work as math-prefix.
yuuji@20 851
yuuji@49 852 @node Local dictionaries, Commenting out, Completion, Top
yuuji@49 853 @comment node-name, next, previous, up
yuuji@49 854 @chapter Local dictionaries
yuuji@49 855 @cindex local dictionaries
yuuji@49 856 @cindex nervous users
yuuji@49 857
yuuji@49 858 Tables for completion consist of three dictionaries; `standard
yuuji@49 859 dictionary' built in @file{yatex.el}, `user dictionary' for your common
yuuji@49 860 private commands, and `local dictionary' that is effective in a certain
yuuji@49 861 directory.
yuuji@49 862
yuuji@49 863 When you input the command unknown to YaTeX at a completion in the
yuuji@49 864 minibuffer, YaTeX asks you with the following prompt;
yuuji@49 865
yuuji@49 866 @example
yuuji@49 867 `foo' is not in table. Register into: U)serTable L)ocal N)one
yuuji@49 868 @end example
yuuji@49 869
yuuji@49 870 @noindent
yuuji@49 871 In this menu, typing `u' updates your `user dictionary', `l' updates your
yuuji@49 872 local dictionary, and `n' updates no dictionary and throws the word away.
yuuji@49 873
yuuji@49 874 If you find this switching feature meaningless and bothersome, put the
yuuji@49 875 next expression into your @file{~/.emacs}
yuuji@49 876
yuuji@49 877 @lisp
yuuji@49 878 (setq YaTeX-nervous nil)
yuuji@49 879 @end lisp
yuuji@49 880
yuuji@49 881 @node Commenting out, Cursor jump, Local dictionaries, Top
yuuji@20 882 @comment node-name, next, previous, up
yuuji@20 883 @chapter Commenting out
yuuji@20 884 @cindex commenting out
yuuji@20 885 @cindex prefix >
yuuji@20 886 @cindex prefix <
yuuji@20 887 @cindex prefix ,
yuuji@20 888 @cindex prefix .
yuuji@20 889
yuuji@20 890 You may want to comment out some region.
yuuji@20 891
yuuji@20 892 @table @kbd
yuuji@20 893 @item [prefix] >
yuuji@46 894 @dots{} comment out region by %
yuuji@20 895 @item [prefix] <
yuuji@46 896 @dots{} uncomment region
yuuji@20 897 @end table
yuuji@20 898
yuuji@20 899 @noindent
yuuji@20 900 cause an operation to the region between point and mark.
yuuji@20 901
yuuji@20 902 @table @kbd
yuuji@20 903 @item [prefix] .
yuuji@46 904 @dots{} comment out current paragraph
yuuji@20 905 @item [prefix] ,
yuuji@46 906 @dots{} uncomment current paragraph
yuuji@20 907 @end table
yuuji@20 908
yuuji@20 909 @noindent
yuuji@20 910 comments or uncomments the paragraph where the cursor belongs.
yuuji@20 911 This `paragraph' means the region marked by the function
yuuji@20 912 mark-paragraph, bound to @kbd{ESC h} by default. It is NOT
yuuji@20 913 predictable what will happen when you continuously comment out
yuuji@20 914 some paragraph many times.
yuuji@20 915
yuuji@20 916 You can also comment out an environment between @code{\begin} and
yuuji@20 917 @code{\end}, or a @code{\begin}-\@code{\end} pair themselves, by making the
yuuji@20 918 following key strokes on the line where @code{\begin@{@}} or
yuuji@20 919 @code{\end@{@}} exists.
yuuji@20 920
yuuji@20 921 @table @kbd
yuuji@20 922 @item [prefix] >
yuuji@46 923 @dots{} comment out from \begin to \@code{end}
yuuji@20 924 @item [prefix] <
yuuji@46 925 @dots{} uncomment from \begin to \@code{end}
yuuji@20 926 @end table
yuuji@20 927
yuuji@20 928 @noindent
yuuji@20 929 comment whole the contents of environment. Moreover,
yuuji@20 930
yuuji@20 931 @table @kbd
yuuji@20 932 @item [prefix] .
yuuji@46 933 @dots{} comment out \begin and \@code{end}
yuuji@20 934 @item [prefix] ,
yuuji@46 935 @dots{} uncomment \begin and \@code{end}
yuuji@20 936 @end table
yuuji@20 937
yuuji@20 938 @noindent
yuuji@20 939 (un)comments out only environment declaration: @code{\begin@{@}} and
yuuji@20 940 @code{\end@{@}}. NOTE that even if you intend to comment out some region,
yuuji@20 941 invoking @kbd{[prefix] >} on the @code{\begin},@code{\end} line decides to
yuuji@20 942 work in `commenting out from @code{\begin} to @code{\end}' mode.
yuuji@20 943
yuuji@20 944
yuuji@20 945 @node Cursor jump, Changing and Deleting, Commenting out, Top
yuuji@20 946 @comment node-name, next, previous, up
yuuji@20 947 @chapter Cursor jump
yuuji@20 948 @cindex cursor jump
yuuji@20 949 @cindex prefix g
yuuji@20 950
yuuji@48 951 Typing
yuuji@20 952
yuuji@20 953 @table @kbd
yuuji@20 954 @item [prefix] g
yuuji@46 955 @dots{} go to corresponding object
yuuji@20 956 @end table
yuuji@20 957
yuuji@20 958 @noindent
yuuji@48 959 in a certain place move the cursor to the place corresponding to the
yuuji@48 960 La@TeX{} command of last place. YaTeX recognize the followings as pairs
yuuji@48 961 that have relation each other.
yuuji@48 962
yuuji@49 963 @itemize @bullet
yuuji@48 964 @item @code{\begin@{@}} <-> @code{\end@{@}}
yuuji@48 965 @item @code{%#BEGIN} <-> @code{%#END}
yuuji@48 966 @item @code{\label@{@}} <-> @code{\ref@{@}}
yuuji@48 967 @item @code{\include(\input)} -> included file
yuuji@48 968 @item @code{\bibitem@{@}} <-> @code{\cite@{@}}
yuuji@49 969 @end itemize
yuuji@48 970
yuuji@49 971 On a @code{\begin},@code{\end} line, typing @kbd{[prefix] g} moves the
yuuji@49 972 cursor to the corresponding @code{\end},@code{\begin} line, if its partner
yuuji@49 973 really exists. The behaviour on the line @code{%#BEGIN} and @code{%#END}
yuuji@49 974 are the same. Note that if the correspondent of @code{label/ref} or
yuuji@49 975 @code{cite/bibitem} exists in another file, that file have to be opend to
yuuji@49 976 make a round trip between references by @kbd{[prefix] g}.
yuuji@20 977
yuuji@20 978 If you type @code{[prefix] g} on the line of @code{\include@{chap1@}},
yuuji@48 979 typically in the main text, YaTeX switches buffer to @file{chap1.tex}.
yuuji@48 980 The key strokes below work to the contrary. Typing
yuuji@20 981
yuuji@20 982 @table @kbd
yuuji@20 983 @item [prefix] ^
yuuji@46 984 @dots{} visit main file
yuuji@20 985 @item [prefix] 4^
yuuji@46 986 @dots{} visit main file in other buffer
yuuji@20 987 @end table
yuuji@20 988 @cindex prefix ^
yuuji@20 989 @cindex prefix 4 ^
yuuji@20 990
yuuji@20 991 in a sub text switch the buffer to the main text specified by
yuuji@20 992 @code{%#!} notation.
yuuji@20 993
yuuji@20 994 And these are the functions which work on the current La@TeX{}
yuuji@20 995 environment:
yuuji@20 996
yuuji@20 997 @table @kbd
yuuji@20 998 @item M-C-a
yuuji@46 999 @dots{} beginning of environment
yuuji@20 1000 @item M-C-e
yuuji@46 1001 @dots{} @code{end} of environment
yuuji@20 1002 @item M-C-@@
yuuji@46 1003 @dots{} mark environment
yuuji@20 1004 @end table
yuuji@20 1005 @cindex M-C-a
yuuji@20 1006 @cindex M-C-e
yuuji@20 1007 @cindex M-C-@@
yuuji@20 1008
yuuji@20 1009 @node Changing and Deleting, Filling an item, Cursor jump, Top
yuuji@20 1010 @comment node-name, next, previous, up
yuuji@20 1011 @chapter Changing and Deleting
yuuji@20 1012
yuuji@20 1013 These functions are for change or deletion of La@TeX{} commands
yuuji@20 1014 already entered.
yuuji@20 1015
yuuji@20 1016 @table @kbd
yuuji@20 1017 @item [prefix] c
yuuji@46 1018 @dots{} change La@TeX{} command
yuuji@20 1019 @item [prefix] k
yuuji@46 1020 @dots{} kill La@TeX{} command
yuuji@20 1021 @end table
yuuji@20 1022 @cindex prefix c
yuuji@20 1023 @cindex prefix k
yuuji@20 1024
yuuji@49 1025 @menu
yuuji@49 1026 * Changing La@TeX{} commands::
yuuji@49 1027 * Killing La@TeX{} commands::
yuuji@49 1028 @end menu
yuuji@49 1029
yuuji@49 1030 @node Changing La@TeX{} commands, Killing La@TeX{} commands, Changing and Deleting, Changing and Deleting
yuuji@49 1031 @comment node-name, next, previous, up
yuuji@49 1032 @section Changing La@TeX{} commands
yuuji@49 1033
yuuji@49 1034 @kbd{[prefix] c} can change the various (La)@TeX{} commands. This can
yuuji@49 1035 change the followings.
yuuji@49 1036 @itemize @bullet
yuuji@49 1037 @item Environment names
yuuji@49 1038 @item Section-type commands
yuuji@49 1039 @item Argument of section-type commands
yuuji@49 1040 @item Optional parameters (enclosed by []) of section-type commands
yuuji@49 1041 @item Font/size designators
yuuji@49 1042 @end itemize
yuuji@49 1043
yuuji@49 1044 Typing @kbd{[prefix] c} on one of above objects you want to change
yuuji@49 1045 brings a suitable reading function sometimes with completion.
yuuji@49 1046 Note: If you want to change the argument of section-type command that
yuuji@49 1047 contains other La@TeX{} commands, type @kbd{[prefix] c} either of
yuuji@49 1048 surrounding braces of the argument in order to make YaTeX ignore the
yuuji@49 1049 internal La@TeX{} sequences as an object of changing. Anyway, it is
yuuji@49 1050 very difficult to know which argument position the cursor belongs because
yuuji@49 1051 the La@TeX{} commands can be nested and braces can freely emerge. So keep
yuuji@49 1052 it mind to put the cursor on a brace when you are thinking of changing a
yuuji@49 1053 complicated argument.
yuuji@49 1054
yuuji@49 1055 @node Killing La@TeX{} commands, , Changing La@TeX{} commands, Changing and Deleting
yuuji@49 1056 @comment node-name, next, previous, up
yuuji@49 1057 @section Killing La@TeX{} commands
yuuji@49 1058 @cindex Killing La@TeX{} commands
yuuji@49 1059
yuuji@49 1060 @kbd{[prefix] k} kills the La@TeX{} commands sometimes with their
yuuji@49 1061 arguments. Following table illustrates the correspondence of the invoking
yuuji@49 1062 position and what is killed.
yuuji@20 1063
yuuji@20 1064 @example
yuuji@20 1065 [Invoking position] [action]
yuuji@49 1066 \begin, \end line kill \begin,\end pairs
yuuji@49 1067 %#BEGIN, %#END line kill %#BEGIN,%#END pairs
yuuji@20 1068 on a Section-type command kill section-type command
yuuji@20 1069 on a parenthesis kill parentheses
yuuji@20 1070 @end example
yuuji@20 1071
yuuji@49 1072 Note that when killing @code{\begin, \end} or @code{%#BEGIN, %#END} pair,
yuuji@49 1073 the lines @code{\begin, \end} or @code{%#BEGIN, %#END} exist will be
yuuji@49 1074 killed entirely. So take care not to create any line that contains more
yuuji@49 1075 than one @code{\begin} or so.
yuuji@49 1076
yuuji@20 1077 While all operations above are to kill `containers' which surround some
yuuji@20 1078 text, universal argument (@kbd{C-u}) for these commands kills not only
yuuji@20 1079 `containers' but also `contents' of them. See below as a sample.
yuuji@20 1080
yuuji@20 1081 @example
yuuji@46 1082 Original text: [prefix] k C-u [prefix] k
yuuji@46 1083 Main \footnote@{note@} here. Main note here. Main here.
yuuji@20 1084 ~(cursor)
yuuji@20 1085 @end example
yuuji@20 1086
yuuji@49 1087 @node Filling an item, Updation of @code{\includeonly}, Changing and Deleting, Top
yuuji@20 1088 @comment node-name, next, previous, up
yuuji@20 1089 @chapter Filling an item
yuuji@20 1090 @cindex filling an item
yuuji@20 1091 @cindex prefix i
yuuji@20 1092
yuuji@20 1093 To fill a term (sentence) of @code{\item}, type
yuuji@20 1094
yuuji@20 1095 @table @kbd
yuuji@20 1096 @item [prefix] i
yuuji@46 1097 @dots{} fill item
yuuji@20 1098 @end table
yuuji@20 1099
yuuji@20 1100 @noindent
yuuji@20 1101 on that item.
yuuji@20 1102
yuuji@20 1103 YaTeX uses the value of the variable @code{YaTeX-item-regexp} as the
yuuji@20 1104 regular expression to search item header in itemize environment.
yuuji@20 1105 If you make a newcommand to itemize terms(eg. @code{\underlineitem}), put
yuuji@20 1106
yuuji@20 1107 @lisp
yuuji@46 1108 (setq YaTeX-item-regexp
yuuji@46 1109 "\\(\\\\item\\)\\|\\(\\\\underlineitem\\)")
yuuji@20 1110 @end lisp
yuuji@20 1111 @cindex YaTeX-item-regexp
yuuji@20 1112
yuuji@20 1113 in your @file{~/.emacs}. If you are not familiar with regular expression
yuuji@20 1114 for Emacs-Lisp, name a newcommand for `itemize' beginning with
yuuji@20 1115 @code{\item} such as @code{\itembf}, not @code{\bfitem}.
yuuji@20 1116
yuuji@49 1117 @node Updation of @code{\includeonly}, What column?, Filling an item, Top
yuuji@20 1118 @comment node-name, next, previous, up
yuuji@20 1119 @chapter Updation of @code{\includeonly}
yuuji@20 1120 @cindex includeonly
yuuji@20 1121
yuuji@20 1122 When you edit splitting source texts, the notation
yuuji@20 1123
yuuji@20 1124 @example
yuuji@46 1125 \includeonly@{CurrentEditingFileName@}
yuuji@20 1126 @end example
yuuji@20 1127
yuuji@20 1128 @noindent
yuuji@20 1129 in the main file reduces the time of typesetting. If you want
yuuji@20 1130 to hack other file a little however, you have to rewrite it to
yuuji@20 1131
yuuji@20 1132 @example
yuuji@46 1133 \includeonly@{OtherFileNameYouWantToFix@}
yuuji@20 1134 @end example
yuuji@20 1135
yuuji@20 1136 @noindent
yuuji@20 1137 in the main file. YaTeX automatically detects that the current
yuuji@20 1138 edited text is not in includeonly list and prompts you
yuuji@20 1139
yuuji@20 1140 @example
yuuji@46 1141 A)dd R)eplace %)comment?
yuuji@20 1142 @end example
yuuji@20 1143
yuuji@20 1144 in the minibuffer. Type @kbd{a} if you want to add the current file name
yuuji@20 1145 to @code{\includeonly} list, @kbd{r} to replace \@code{includeonly} list
yuuji@20 1146 by the current file, and type @kbd{%} to comment out the
yuuji@20 1147 @code{\includeonly} line.
yuuji@20 1148
yuuji@28 1149 @node What column?, Intelligent newline, Updation of @code{\includeonly}, Top
yuuji@20 1150 @comment node-name, next, previous, up
yuuji@20 1151 @chapter What column?
yuuji@20 1152 @cindex what column
yuuji@20 1153 @cindex complex tabular
yuuji@20 1154 @cindex prefix &
yuuji@20 1155
yuuji@20 1156 We are often get tired of finding the corresponding column in
yuuji@20 1157 large tabulars. For example,
yuuji@20 1158
yuuji@20 1159 @example
yuuji@20 1160 \begin@{tabular@}@{|c|c|c|c|c|c|c|c|@}\hline
yuuji@20 1161 Name&Position&Post No.&Addr.&Phone No.&FAX No.&
yuuji@20 1162 Home Addr.&Home Phone\\ \hline
yuuji@20 1163 Thunder Bird & 6 & 223 & LA & xxx-yyy &
yuuji@20 1164 zzz-www & Japan & 9876-54321 \\
yuuji@20 1165 & 2 & \multicolumn@{2@}@{c|@}@{Unknown@}
yuuji@20 1166 &&&(???)
yuuji@20 1167 \\ \hline
yuuji@20 1168 \end@{tabular@}
yuuji@20 1169 @end example
yuuji@20 1170
yuuji@20 1171 Suppose you have the cursor located at @code{(???)} mark, can you tell
yuuji@20 1172 which column it is belonging at once? Maybe no. In such case,
yuuji@20 1173 type
yuuji@20 1174
yuuji@20 1175 @table @kbd
yuuji@20 1176 @item [prefix] &
yuuji@46 1177 @dots{} What column
yuuji@20 1178 @end table
yuuji@20 1179
yuuji@20 1180 @noindent
yuuji@20 1181 in that position. YaTeX tells you the column header of the
yuuji@20 1182 current field. Since YaTeX assumes the first line of tabular
yuuji@20 1183 environment as a row of column headers, you can create a row of
yuuji@20 1184 virtual column headers by putting them in the first line and
yuuji@20 1185 commenting that line with @code{%}.
yuuji@20 1186
yuuji@28 1187 @node Intelligent newline, Online help, What column?, Top
yuuji@28 1188 @comment node-name, next, previous, up
yuuji@28 1189 @chapter Intelligent newline
yuuji@28 1190 @cindex Intelligent newline
yuuji@28 1191 @cindex ESC RET
yuuji@28 1192 @cindex M-C-m
yuuji@28 1193
yuuji@28 1194 In tabular[*], array, itemize, enumerate or tabbing environment,
yuuji@28 1195
yuuji@28 1196 @table @kbd
yuuji@28 1197 @item ESC RET
yuuji@46 1198 @dots{} Intelligent newline
yuuji@28 1199 @end table
yuuji@28 1200
yuuji@28 1201 @noindent
yuuji@28 1202 inserts the contents corresponding to the current environment in the next
yuuji@28 1203 line. In @code{tabular} environment, for example, @kbd{ESC RET} inserts
yuuji@28 1204 the certain number of @code{&} and trailing @code{\\}, and @code{\hline}
yuuji@28 1205 if other @code{\hline} is found in backward. Here are the list of
yuuji@28 1206 contents v.s. environments.
yuuji@28 1207
yuuji@28 1208 @itemize
yuuji@28 1209 @item @code{tabular}, @code{tabular*}, @code{array}
yuuji@28 1210
yuuji@46 1211 Corresponding number of @code{&} and @code{\\}.
yuuji@46 1212 And @code{\hline} if needed.
yuuji@28 1213
yuuji@28 1214 @item @code{tabbing}
yuuji@28 1215
yuuji@46 1216 The same number of @code{\>} as @code{\=} in the first line.
yuuji@28 1217
yuuji@28 1218 @item @code{itemize}, @code{enumerate}, @code{description}, @code{list}
yuuji@28 1219
yuuji@46 1220 @code{\item} or @code{item[]}.
yuuji@28 1221 @end itemize
yuuji@28 1222
yuuji@28 1223 Note that since this function works seeing the contents of the first
yuuji@28 1224 line, please call this after the second line if possible.
yuuji@28 1225
yuuji@28 1226 If you want to apply these trick to other environments, @code{foo}
yuuji@28 1227 environment for example, define the function named
yuuji@28 1228 @code{YaTeX-intelligent-newline-foo} to insert corresponding contents.
yuuji@28 1229 That function will be called at the beginning of the next line after the
yuuji@28 1230 newline is inserted to the current line. Since the function
yuuji@28 1231 @code{YaTeX-indent-line} is designed to indent the current line properly,
yuuji@28 1232 calling this function before your code to insert certain contents must be
yuuji@28 1233 useful. See the definition of the function
yuuji@28 1234 @code{YaTeX-intelligent-newline-itemize} as an example.
yuuji@28 1235
yuuji@28 1236 @node Online help, Cooperation with other packages, Intelligent newline, Top
yuuji@20 1237 @comment node-name, next, previous, up
yuuji@20 1238 @chapter Online help
yuuji@20 1239 @cindex online help
yuuji@20 1240 @cindex prefix ?
yuuji@20 1241 @cindex prefix /
yuuji@20 1242 @cindex apropos
yuuji@20 1243 @cindex keyword search
yuuji@20 1244
yuuji@20 1245 YaTeX provides you the online help with popular La@TeX{} commands.
yuuji@20 1246
yuuji@20 1247 Here are the key strokes for the online help.
yuuji@20 1248
yuuji@20 1249 @table @kbd
yuuji@20 1250 @item [prefix] ?
yuuji@46 1251 @dots{} Online help
yuuji@20 1252 @item [prefix] /
yuuji@46 1253 @dots{} Online apropos
yuuji@20 1254 @end table
yuuji@20 1255
yuuji@20 1256 @section Online help
yuuji@20 1257
yuuji@20 1258 `Online help' shows the documentation for the popular La@TeX{}
yuuji@20 1259 commands(defaults to the commands on the cursor) in the next buffer.
yuuji@20 1260 There are two help file, `global help' and `private help'. The former
yuuji@20 1261 file contains the descriptions on the standard La@TeX{} command and is
yuuji@20 1262 specified its name by variable @code{YaTeX-help-file}. Usually, the
yuuji@20 1263 global help file should be located in public space (@code{$EMACSEXECPATH}
yuuji@20 1264 by default) and should be world writable so that anyone can update it to
yuuji@20 1265 enrich its contents. The latter file contains descriptions on
yuuji@20 1266 non-standard or personal command definitions and is specified by
yuuji@20 1267 @code{YaTeX-help-file-private}. This file should be put into private
yuuji@20 1268 directory.
yuuji@20 1269
yuuji@20 1270 @section Online apropos
yuuji@20 1271
yuuji@20 1272 `Online apropos' is an equivalent of GNU Emacs's apropos. It
yuuji@20 1273 shows all the documentations that contains the keyword entered by
yuuji@20 1274 the user.
yuuji@20 1275
yuuji@20 1276 @section When no descriptions are found...
yuuji@20 1277
yuuji@20 1278 If there is no description on a command in help files, YaTeX
yuuji@20 1279 requires you to write a description on that command. If you are
yuuji@20 1280 willing to do, determine which help file to add and write the
yuuji@20 1281 description on it referring your manual of (La)TeX. Please send
yuuji@20 1282 me your additional descriptions if you describe the help on some
yuuji@20 1283 standard commands. I might want to include it in the next
yuuji@20 1284 distribution.
yuuji@20 1285
yuuji@20 1286 @node Cooperation with other packages, Customizations, Online help, Top
yuuji@20 1287 @comment node-name, next, previous, up
yuuji@20 1288 @chapter Cooperation with other packages
yuuji@20 1289
yuuji@20 1290 YaTeX works better with other brilliant packages.
yuuji@20 1291
yuuji@20 1292 @section gmhist
yuuji@20 1293 @cindex gmhist
yuuji@20 1294 @cindex command history
yuuji@20 1295 @cindex minibuffer history
yuuji@20 1296
yuuji@20 1297 When you are loading @file{gmhist.el} and @file{gmhist-mh.el}, you can
yuuji@20 1298 use independent command history list at the prompt of preview command
yuuji@20 1299 (@kbd{[prefix] tp}) and print command (@kbd{[prefix] tl}). On each
yuuji@20 1300 prompt, you can enter the previous command line string repeatedly by
yuuji@20 1301 typing @kbd{M-p}.
yuuji@20 1302
yuuji@20 1303 @section min-out
yuuji@20 1304 @cindex min-out
yuuji@20 1305
yuuji@20 1306 @file{min-out}, the outline minor mode, can be used in yatex-mode
yuuji@20 1307 buffers. If you want to use it with YaTeX, please refer the
yuuji@20 1308 file @file{yatexm-o.el} as an example.
yuuji@20 1309
yuuji@20 1310 @node Customizations, Etcetera, Cooperation with other packages, Top
yuuji@20 1311 @comment node-name, next, previous, up
yuuji@20 1312 @chapter Customizations
yuuji@20 1313 @cindex customizations
yuuji@20 1314
yuuji@20 1315 You can customize YaTeX by setting Emacs-Lisp variables and by making
yuuji@20 1316 add-in functions.
yuuji@20 1317
yuuji@20 1318 @menu
yuuji@20 1319 * Lisp variables::
yuuji@20 1320 * Add-in functions::
yuuji@49 1321 * Add-in generator::
yuuji@20 1322 @end menu
yuuji@20 1323
yuuji@33 1324 @node Lisp variables, Add-in functions, Customizations, Customizations
yuuji@20 1325 @comment node-name, next, previous, up
yuuji@20 1326 @section Lisp variables
yuuji@20 1327 @cindex customizable variables
yuuji@20 1328
yuuji@20 1329 You can change the key assignments or make completion more
yuuji@20 1330 comfortable by setting the values of various variables which
yuuji@20 1331 control the movement of yatex-mode.
yuuji@20 1332
yuuji@20 1333 For example, if you want to change the prefix key stroke from @kbd{C-c}
yuuji@20 1334 to any other sequence, set YaTeX-prefix to whatever you want to use. If
yuuji@20 1335 you don't want to use the key sequence @kbd{C-c letter} which is assumed
yuuji@20 1336 to be the user reserved sequence in Emacs world, set
yuuji@20 1337 @code{YaTeX-inhibit-prefix-letter} to @code{t}, and all of the default key
yuuji@20 1338 bind of @kbd{C-c letter} will turn to the corresponding @kbd{C-c C-letter}
yuuji@20 1339 (but the region based completions that is invoked with @kbd{C-c
yuuji@20 1340 Capital-letter} remain valid, if you want to disable those bindings, set
yuuji@20 1341 that variable to 1 instead of @code{t}).
yuuji@20 1342
yuuji@20 1343 @menu
yuuji@20 1344 * All customizable variables::
yuuji@20 1345 * Sample definitions::
yuuji@20 1346 * Hook variables::
yuuji@20 1347 * Hook file::
yuuji@20 1348 @end menu
yuuji@20 1349
yuuji@33 1350 @node All customizable variables, Sample definitions, Lisp variables, Lisp variables
yuuji@20 1351 @comment node-name, next, previous, up
yuuji@20 1352 @subsection All customizable variables
yuuji@20 1353 @cindex all customizable variables
yuuji@20 1354
yuuji@20 1355 Here are the customizable variables of yatex-mode. Each value setq-ed
yuuji@20 1356 in @file{~/.emacs} is preferred and that of defined in @file{yatex.el} is
yuuji@49 1357 neglected. Parenthesized contents stands for the default value. When you
yuuji@49 1358 are to change some of these variables, see more detailed documentation of
yuuji@49 1359 the variable by @kbd{M-x describe-variable}.
yuuji@20 1360
yuuji@46 1361 @defvar YaTeX-prefix
yuuji@46 1362 Prefix key stroke (@kbd{C-c})
yuuji@46 1363 @end defvar
yuuji@20 1364
yuuji@46 1365 @defvar YaTeX-inhibit-prefix-letter
yuuji@20 1366 Change key stroke from @kbd{C-c letter} to @kbd{C-c C-letter}
yuuji@20 1367 (@code{nil})
yuuji@46 1368 @end defvar
yuuji@20 1369
yuuji@46 1370 @defvar YaTeX-fill-prefix
yuuji@46 1371 Fill-prefix used in yatex-mode (@code{nil})
yuuji@46 1372 @end defvar
yuuji@20 1373
yuuji@46 1374 @defvar YaTeX-open-lines
yuuji@46 1375 Number of blank lines between cursor and @code{\begin@{@}},
yuuji@46 1376 @code{\@code{end}@{@}} (0)
yuuji@46 1377 @end defvar
yuuji@20 1378
yuuji@46 1379 @defvar YaTeX-user-completion-table
yuuji@46 1380 Name of user dictionary where learned completion table will be stored.
yuuji@46 1381 (@code{"~/.yatexrc"})
yuuji@46 1382 @end defvar
yuuji@20 1383
yuuji@46 1384 @defvar YaTeX-item-regexp
yuuji@46 1385 Regular expression of item command(@code{"\\\\item"})
yuuji@46 1386 @end defvar
yuuji@20 1387
yuuji@46 1388 @defvar tex-command
yuuji@46 1389 La@TeX{} typesetter command (@code{"latex"})
yuuji@46 1390 @end defvar
yuuji@20 1391
yuuji@46 1392 @defvar dvi2-command
yuuji@46 1393 Preview command
yuuji@46 1394 (@code{"xdvi -geo +0+0 -s 4 -display (getenv"DISPLAY")"})
yuuji@46 1395 @end defvar
yuuji@20 1396
yuuji@46 1397 @defvar dviprint-command-format
yuuji@46 1398 Command format to print dvi file (@code{"dvi2ps %f %t %s | lpr"})
yuuji@46 1399 @end defvar
yuuji@20 1400
yuuji@46 1401 @defvar dviprint-from-format
yuuji@46 1402 Start page format of above %f. %b will turn to start page
yuuji@46 1403 (@code{"-f %b"})
yuuji@46 1404 @end defvar
yuuji@20 1405
yuuji@46 1406 @defvar dviprint-to-format
yuuji@46 1407 End page format of above %t. %e will turn to @code{end} page
yuuji@46 1408 (@code{"-t %e"})
yuuji@46 1409 @end defvar
yuuji@20 1410
yuuji@46 1411 @defvar section-name
yuuji@46 1412 Initial default value at the first section-type completion
yuuji@46 1413 (@code{"documentstyle"})
yuuji@46 1414 @end defvar
yuuji@20 1415
yuuji@46 1416 @defvar env-name
yuuji@46 1417 Initial default value at the first begin-type completion
yuuji@46 1418 (@code{"document"})
yuuji@46 1419 @end defvar
yuuji@20 1420
yuuji@46 1421 @defvar fontsize-name
yuuji@46 1422 Ditto of large-type (@code{"large"})
yuuji@46 1423 @end defvar
yuuji@20 1424
yuuji@46 1425 @defvar single-command
yuuji@46 1426 Ditto of maketitle-type (@code{"maketitle"})
yuuji@46 1427 @end defvar
yuuji@20 1428
yuuji@46 1429 @defvar YaTeX-need-nonstop
yuuji@46 1430 Put @code{\nonstopmode@{@}} or not (@code{nil})
yuuji@46 1431 @end defvar
yuuji@20 1432
yuuji@46 1433 @defvar latex-warning-regexp
yuuji@46 1434 Regular expression of warning message latex command puts out
yuuji@46 1435 (@code{"line.* [0-9]*"})
yuuji@46 1436 @end defvar
yuuji@20 1437
yuuji@46 1438 @defvar latex-error-regexp
yuuji@46 1439 Regular expression of error message (@code{"l\\.[1-9][0-9]*"})
yuuji@46 1440 @end defvar
yuuji@20 1441
yuuji@46 1442 @defvar latex-dos-emergency-message
yuuji@46 1443 Message latex command running on DOS puts at abort
yuuji@46 1444 (@code{"Emergency stop"})
yuuji@46 1445 @end defvar
yuuji@20 1446
yuuji@46 1447 @defvar YaTeX-item-regexp
yuuji@46 1448 Regexp of La@TeX{} itemization command (@code{"\\\\(sub\\)*item"})
yuuji@46 1449 @end defvar
yuuji@20 1450
yuuji@46 1451 @defvar YaTeX-nervous
yuuji@46 1452 T for using local dictionary (@code{t})
yuuji@46 1453 @end defvar
yuuji@20 1454
yuuji@46 1455 @defvar YaTeX-sectioning-regexp
yuuji@46 1456 Regexp of La@TeX{} sectioning command
yuuji@20 1457
yuuji@46 1458 (@code{"part\\|chapter\\|\\(sub\\)*\\(section\\|paragraph\\)"})
yuuji@46 1459 @end defvar
yuuji@20 1460
yuuji@46 1461 @defvar YaTeX-fill-inhibit-environments
yuuji@46 1462 Inhibit fill in these environments (@code{'("verbatim" "tabular")})
yuuji@46 1463 @end defvar
yuuji@20 1464
yuuji@46 1465 @defvar YaTeX-uncomment-once
yuuji@46 1466 @code{T} for deleting all preceding @code{%} (@code{nil})
yuuji@46 1467 @end defvar
yuuji@20 1468
yuuji@46 1469 @defvar YaTeX-close-paren-always
yuuji@46 1470 @code{T} for always close all parenthesis automatically,
yuuji@46 1471 @code{nil} for only eol(@code{t})
yuuji@46 1472 @end defvar
yuuji@20 1473
yuuji@46 1474 @defvar YaTeX-auto-math-mode
yuuji@46 1475 Switch math-mode automatically(@code{t})
yuuji@46 1476 @end defvar
yuuji@20 1477
yuuji@46 1478 @defvar YaTeX-default-pop-window-height
yuuji@20 1479 Initial height of typesetting buffer when one-window.
yuuji@20 1480 Number for the lines of the buffer, numerical string for
yuuji@20 1481 the percentage of the screen-height.
yuuji@20 1482 @code{nil} for half height(10)
yuuji@46 1483 @end defvar
yuuji@20 1484
yuuji@46 1485 @defvar YaTeX-help-file
yuuji@46 1486 Global online help file name (@file{$EMACS/etc/YATEXHLP.jp})
yuuji@46 1487 @end defvar
yuuji@20 1488
yuuji@46 1489 @defvar YaTeX-help-file-private
yuuji@46 1490 Private online help file name (@file{"~/YATEXHLP.jp"})
yuuji@46 1491 @end defvar
yuuji@20 1492
yuuji@46 1493 @defvar YaTeX-no-begend-shortcut
yuuji@46 1494 Disable [prefix] b ?? shortcut (@code{nil)}
yuuji@46 1495 @end defvar
yuuji@20 1496
yuuji@49 1497 @defvar YaTeX-hilit-pattern-adjustment-private
yuuji@49 1498 List of the list that contain the regular expression and the symbol of
yuuji@49 1499 logical meaning of the string that matches the pattern. See also the
yuuji@49 1500 value from @code{(assq 'yatex-mode hilit-patterns-alist)} and the value of
yuuji@49 1501 @code{YaTeX-hilit-pattern-adjustment-default} (and even the document of
yuuji@49 1502 hilit19.el).
yuuji@49 1503 @end defvar
yuuji@49 1504
yuuji@49 1505 @defvar YaTeX-sectioning-level
yuuji@49 1506 Alist of LaTeX's sectioning command vs its height.
yuuji@49 1507 @end defvar
yuuji@49 1508
yuuji@20 1509 @node Sample definitions, Hook variables, All customizable variables, Lisp variables
yuuji@20 1510 @comment node-name, next, previous, up
yuuji@20 1511 @subsection Sample definitions
yuuji@20 1512 @cindex prefix key stroke
yuuji@20 1513 @cindex fill-prefix
yuuji@20 1514
yuuji@20 1515 For instance, to change the prefix key stroke to @kbd{ESC}, and name of
yuuji@20 1516 the user dictionary @file{~/src/emacs/yatexrc}, and set @code{fill-prefix}
yuuji@20 1517 to single TAB character, add the following @code{setq} to @file{~/.emacs}.
yuuji@20 1518
yuuji@20 1519 @lisp
yuuji@46 1520 (setq YaTeX-prefix "\e"
yuuji@46 1521 YaTeX-user-completion-table "~/src/emacs/yatexrc"
yuuji@46 1522 YaTeX-fill-prefix " ")
yuuji@20 1523 @end lisp
yuuji@20 1524
yuuji@20 1525 @node Hook variables, Hook file, Sample definitions, Lisp variables
yuuji@20 1526 @comment node-name, next, previous, up
yuuji@20 1527 @subsection Hook variables
yuuji@20 1528 @cindex hook variables
yuuji@20 1529
yuuji@20 1530 More customizations will be done by the hook-function defined in
yuuji@20 1531 hook-variable @code{yatex-mode-hook}. This is useful to define a shortcut
yuuji@20 1532 key sequence to enter some environments other than @code{document} and
yuuji@20 1533 @code{enumerate} etc. The following statement defines @code{[prefix] ba}
yuuji@20 1534 to enter @code{\begin@{abstract@}} ... @code{=end@{abstract@}}
yuuji@20 1535 immediately.
yuuji@20 1536
yuuji@20 1537 @lisp
yuuji@46 1538 (setq yatex-mode-hook
yuuji@46 1539 '(lambda() (YaTeX-define-begend-key "ba" "abstract")))
yuuji@20 1540 @end lisp
yuuji@20 1541
yuuji@46 1542 You should use functions @code{YaTeX-define-key}, or
yuuji@46 1543 @code{YaTeX-define-begend-key} to define all the key sequences of
yuuji@20 1544 yatex-mode.
yuuji@20 1545
yuuji@20 1546 @node Hook file, , Hook variables, Lisp variables
yuuji@20 1547 @comment node-name, next, previous, up
yuuji@20 1548 @subsection Hook file
yuuji@20 1549 @cindex hook file
yuuji@20 1550
yuuji@20 1551 You can stuff all of YaTeX relating expressions into a file named
yuuji@20 1552 @file{yatexhks.el} if you have a lot of codes. YaTeX automatically load
yuuji@20 1553 this file at the initialization of itself. Using @file{yatexhks.el}
yuuji@20 1554 makes @code{yatex-mode-load-hook} unnecessary.
yuuji@20 1555
yuuji@49 1556 @node Add-in functions, Add-in generator, Lisp variables, Customizations
yuuji@20 1557 @comment node-name, next, previous, up
yuuji@20 1558 @section Add-in functions
yuuji@20 1559 @cindex add-in functions
yuuji@49 1560 @cindex yatexadd.el
yuuji@20 1561
yuuji@20 1562 You can easily define a function to input detailed arguments
yuuji@49 1563 with completion according to La@TeX{} environments or commands.
yuuji@20 1564
yuuji@49 1565 @c @node What is add-in functions?, , Add-in functions, Add-in functions
yuuji@49 1566 @comment node-name, next, previous, up
yuuji@49 1567 @subsection What is add-in functions?
yuuji@49 1568 @cindex tabular
yuuji@49 1569
yuuji@49 1570 When you input @code{tabular} environment, don't you think ``I want
yuuji@49 1571 YaTeX to complete its argument toward my favorite one such as
yuuji@49 1572 @code{@{|c|c|c|@}}...''? Yes, you can define the function to complete
yuuji@49 1573 arguments for any environment and any La@TeX{} commands.
yuuji@49 1574
yuuji@49 1575 @subsection Procedure
yuuji@49 1576
yuuji@49 1577 Here is the procedure to define add-in functions.
yuuji@49 1578 @enumerate
yuuji@49 1579 @item
yuuji@49 1580 Define the function
yuuji@49 1581 @item
yuuji@49 1582 Put the function into @file{yatexhks.el}
yuuji@49 1583 @end enumerate
yuuji@49 1584
yuuji@49 1585 @menu
yuuji@49 1586 * How the add-in function works?::
yuuji@49 1587 * How the function is called::
yuuji@49 1588 * Useful functions for creating add-in::
yuuji@49 1589 * Contribution::
yuuji@49 1590 @end menu
yuuji@49 1591
yuuji@49 1592 @node How the add-in function works?, How the function is called, Add-in functions, Add-in functions
yuuji@49 1593 @comment node-name, next, previous, up
yuuji@49 1594 @subsection How the add-in function works?
yuuji@49 1595
yuuji@49 1596 There are two kinds of add-in. @dfn{Option add-in} returns the
yuuji@49 1597 La@TeX{}'s optional parameters such as optional strings after
yuuji@49 1598 @code{\begin@{ENV@}}, optional strings between a section-type command
yuuji@49 1599 and its first argument, and optional strings just after type
yuuji@49 1600 maketitle-type command. The following illustrates the name of add-in
yuuji@49 1601 functions, where underlined strings are generated by add-in functions.
yuuji@49 1602
yuuji@49 1603 @display
yuuji@49 1604 \begin{table}[ht] (Function name: YaTeX:table)
yuuji@49 1605 ~~~~
yuuji@49 1606 \put(100,200){} (Function name: YaTeX:put)
yuuji@49 1607 ~~~~~~~~~
yuuji@49 1608 \sum_{i=0}^{n} (Function name: YaTeX:sum)
yuuji@49 1609 ~~~~~~~~~~
yuuji@49 1610 @end display
yuuji@49 1611
yuuji@49 1612 Obviously, the function name is decided by concatenating the prefix
yuuji@49 1613 `YaTeX:' and La@TeX{} command's name.
yuuji@49 1614
yuuji@49 1615 Another add-in type is @dfn{argument add-in}, which completes arguments
yuuji@49 1616 for section-type commands.
yuuji@49 1617
yuuji@49 1618 @display
yuuji@49 1619 \newcommand{\foo}{bar} (Function name: YaTeX::newcommand)
yuuji@49 1620 ~~~~ ~~~
yuuji@49 1621 @end display
yuuji@49 1622
yuuji@49 1623 When the section-type command is inputted, the function named by
yuuji@49 1624 concatenating `YaTeX::' and section-type command, is called automatically
yuuji@49 1625 with an integer argument which indicates which argument of section-type
yuuji@49 1626 command is being read. Thus the add-in should determine the
yuuji@49 1627 job refering the value of its argument.
yuuji@49 1628
yuuji@49 1629 @menu
yuuji@49 1630 * Defining `option add-in'::
yuuji@49 1631 * Defining `argument add-in'::
yuuji@49 1632 @end menu
yuuji@49 1633
yuuji@49 1634 @node Defining `option add-in', Defining `argument add-in', How the add-in function works?, How the add-in function works?
yuuji@49 1635 @comment node-name, next, previous, up
yuuji@49 1636 @subsubsection Defining `option add-in'
yuuji@49 1637
yuuji@49 1638 If you want @code{@{|c|c|c|@}} for all @code{tabular} environment,
yuuji@49 1639
yuuji@49 1640 @lisp
yuuji@49 1641 (defun YaTeX:tabular ()
yuuji@49 1642 "{|c|c|c|}")
yuuji@49 1643 @end lisp
yuuji@49 1644
yuuji@49 1645 @noindent
yuuji@49 1646 is enough. If you want more complicated format, define as below.
yuuji@49 1647
yuuji@49 1648 @lisp
yuuji@49 1649 (defun YaTeX:tabular ()
yuuji@49 1650 "@{@@@{\\vrule width 1pt\\ @}|||@@@{\\ \\vrule width 1pt@}@}")
yuuji@49 1651 @end lisp
yuuji@49 1652
yuuji@49 1653 @noindent
yuuji@49 1654 Note that the character @code{\} must be described as @code{\\} in
yuuji@49 1655 Emacs-Lisp. The next example reads the tabular format from keyboard.
yuuji@49 1656 @lisp
yuuji@49 1657 (defun YaTeX:tabular ()
yuuji@49 1658 (concat "{" (read-string "Rule: ") "}"))
yuuji@49 1659 @end lisp
yuuji@49 1660
yuuji@49 1661 @node Defining `argument add-in', , Defining `option add-in', How the add-in function works?
yuuji@49 1662 @comment node-name, next, previous, up
yuuji@49 1663 @subsubsection Defining `argument add-in'
yuuji@49 1664
yuuji@49 1665 This section describes how to define the add-in function for
yuuji@49 1666 @code{\newcommand}.
yuuji@49 1667
yuuji@49 1668 The first argument of @code{\newcommand} begins always with @code{\}.
yuuji@49 1669 The second argument is usually so complex that we can not edit them in the
yuuji@49 1670 minibuffer. Here is the created function considering this.
yuuji@49 1671
yuuji@49 1672 @lisp
yuuji@49 1673 (defun YaTeX::newcommand (n) ;n is argument position
yuuji@49 1674 (cond
yuuji@49 1675 ((= n 1) ;1st argument is macro name
yuuji@49 1676 (read-string "Command: " "\\")) ;initial input `\'
yuuji@49 1677 ((= n 2) "") ;do nothing when reading arg#2
yuuji@49 1678 (t nil)))
yuuji@49 1679 @end lisp
yuuji@49 1680
yuuji@49 1681 Note that when the `argument add-in' function return `nil', normal
yuuji@49 1682 argument reader will be called.
yuuji@49 1683
yuuji@49 1684 @node How the function is called, Useful functions for creating add-in, How the add-in function works?, Add-in functions
yuuji@49 1685 @comment node-name, next, previous, up
yuuji@49 1686 @subsection How the function is called
yuuji@49 1687
yuuji@49 1688 YaTeX calls the add-in functions for specified begin-type, section-type,
yuuji@49 1689 and maketitle-type command, if any. `Option add-in' functions for
yuuji@49 1690 begin-type are called when @code{\begin@{ENV@}} has been inserted,
yuuji@49 1691 functions for section-type are called just before input of the first
yuuji@49 1692 argument, and functions for maketitle-type is called after maketitle-type
yuuji@49 1693 command has been inserted. `Argument add-in' functions are called at each
yuuji@49 1694 entry of arguments for section-type commands.
yuuji@49 1695
yuuji@49 1696 @node Useful functions for creating add-in, Contribution, How the function is called, Add-in functions
yuuji@49 1697 @comment node-name, next, previous, up
yuuji@49 1698 @subsection Useful functions for creating add-in
yuuji@49 1699
yuuji@49 1700 Many add-in functions for typical La@TeX{} commands are defined in
yuuji@49 1701 @file{yatexadd.el}. Those are also useful as references. Here are the
yuuji@49 1702 short descriptions on useful functions, where [F] means function, [A]
yuuji@49 1703 means arguments, [D] means description.
yuuji@49 1704
yuuji@49 1705 @itemize
yuuji@49 1706 @item [F]
yuuji@49 1707 YaTeX:read-position
yuuji@49 1708 @itemx [A]
yuuji@49 1709 Character list which can show up in the brackets
yuuji@49 1710 @itemx [D]
yuuji@49 1711 Return the location specifier such as `[htb]'. When
yuuji@49 1712 nothing is entered, omit [] itself. If the possible characters
yuuji@49 1713 are "htbp", call this function as
yuuji@49 1714 @code{(YaTeX:read-position "htbp")}
yuuji@49 1715
yuuji@49 1716 @item [F]
yuuji@49 1717 YaTeX:read-coordinates
yuuji@49 1718 @itemx [A]
yuuji@49 1719 Base prompt, X-axis prompt, Y-axis prompt (each optional)
yuuji@49 1720 @itemx [D]
yuuji@49 1721 Read the coodinates with the prompt ``BasePrompt X-axisPrompt:'' for
yuuji@49 1722 X-axis, ``BasePrompt Y-axisPrompt:'' for Y-axis, and return it in the form
yuuji@49 1723 of ``(X,Y)''. The default prompts are @code{Dimention}, @code{X},
yuuji@49 1724 @code{Y} respectively.
yuuji@49 1725
yuuji@49 1726 @item [F]
yuuji@49 1727 YaTeX:check-comletion-type
yuuji@49 1728 @itemx [A]
yuuji@49 1729 One of the symbols: 'begin, 'section, or 'maketitle
yuuji@49 1730 @itemx [D]
yuuji@49 1731 Check the current completion type is specified one and cause error if
yuuji@49 1732 not. The variable @code{YaTeX-current-completion-type} holds the symbol
yuuji@49 1733 according to the current completion type.
yuuji@49 1734 @end itemize
yuuji@49 1735
yuuji@49 1736 @node Contribution, , Useful functions for creating add-in, Add-in functions
yuuji@49 1737 @comment node-name, next, previous, up
yuuji@49 1738 @subsection Contribution
yuuji@49 1739
yuuji@49 1740 If you make your own pretty function and you let it be in public, please
yuuji@49 1741 send me the function. I'm going to include it in the next release.
yuuji@49 1742
yuuji@49 1743 @node Add-in generator, , Add-in functions, Customizations
yuuji@49 1744 @comment node-name, next, previous, up
yuuji@49 1745 @section Add-in generator
yuuji@49 1746
yuuji@49 1747 First, don't forget to read the section of add-in functions @ref{Add-in
yuuji@49 1748 functions}. If you easily understand how to define them, there's no need
yuuji@49 1749 to read this section. But being not familiar with Emacs-Lisp, when you
yuuji@49 1750 don't have clear idea what to do, this section describes how to get YaTeX
yuuji@49 1751 make add-in function.
yuuji@49 1752
yuuji@49 1753 There are two methods of generation. One is for fully interactive
yuuji@49 1754 generator for beginners and another requires little knowledge of
yuuji@49 1755 Emacs-Lisp.
yuuji@49 1756
yuuji@49 1757 @subsection Generator for beginners
yuuji@49 1758 The former generator is called by
yuuji@49 1759 @center @kbd{M-x YaTeX-generate}
yuuji@49 1760
yuuji@49 1761 @noindent
yuuji@49 1762 strokes. All you have to do is follow the guidances. Defying them may cases
yuuji@49 1763 the disaster (I wonder what is it???). So when you make some mistake, it
yuuji@49 1764 is recommendable to type @kbd{C-g} and start afresh.
yuuji@49 1765
yuuji@49 1766 @subsection Simple generator
yuuji@49 1767
yuuji@49 1768 The latter generator is invoked by the next sequence.
yuuji@49 1769 @center @kbd{M-x YaTeX-generate-simple}
yuuji@49 1770 This generator can make both ``option add-in'' and ``argument add-in''
yuuji@49 1771 (@emph{refer the section add-in functions}
yuuji@49 1772 @ref{How the add-in function works?}), whereas @code{YaTeX-generate}
yuuji@49 1773 cannot make ``argument addin''.
yuuji@49 1774
yuuji@49 1775 For example, assume you have the LaTeX command as follows.
yuuji@49 1776
yuuji@49 1777 @example
yuuji@49 1778 \epsinput[t](250,50){hoge.eps}{plain}{Picture of foo}
yuuji@49 1779 (A) (B) (1) (2) (3)
yuuji@49 1780 (A)Optional parameter to specify the position
yuuji@49 1781 One of t(top), b(bottom), l(left), r(right)
yuuji@49 1782 (B)Maximum size of frame
yuuji@49 1783 (1)1st argument is filename of EPS file
yuuji@49 1784 (2)2nd argument indicates
yuuji@49 1785 plain do nothing
yuuji@49 1786 frame make frame around image
yuuji@49 1787 dframe make double-frame around image
yuuji@49 1788 for included EPS file.
yuuji@49 1789 (3)Caption for the picture
yuuji@49 1790 @end example
yuuji@49 1791
yuuji@49 1792 Now get start with generation. Typing @kbd{M-x YaTeX-generate-simple}
yuuji@49 1793 brings the prompt:
yuuji@49 1794 @display
yuuji@49 1795 (O)ption? (A)rgument?
yuuji@49 1796 @end display
yuuji@49 1797
yuuji@49 1798 @subsubsection Generating ``option add-in''
yuuji@49 1799 @cindex option add-in
yuuji@49 1800
yuuji@49 1801 Since (A), (B) above are optional argument, all we have to do to
yuuji@49 1802 complete them is define the option add-in for them. Let's generate the
yuuji@49 1803 function to complete (A).
yuuji@49 1804
yuuji@49 1805 @display
yuuji@49 1806 M-x YaTeX-generate-simple RET
yuuji@49 1807 epsinput RET
yuuji@49 1808 o
yuuji@49 1809 @end display
yuuji@49 1810
yuuji@49 1811 @noindent
yuuji@49 1812 Typing as above leads the next prompt.
yuuji@49 1813
yuuji@49 1814 @display
yuuji@49 1815 Read type(1): (S)tring (C)omplete (F)ile ([)option (P)osition co(O)rd. (q)uit
yuuji@49 1816 @end display
yuuji@49 1817
yuuji@49 1818 @noindent
yuuji@49 1819 This asks that ``Which type is the completion style of 1st argument?''.
yuuji@49 1820 Here are the possible completion style.
yuuji@49 1821
yuuji@49 1822 @table @code
yuuji@49 1823 @item String
yuuji@49 1824 read plain string
yuuji@49 1825 @item Complete
yuuji@49 1826 read with completion
yuuji@49 1827 @item File
yuuji@49 1828 read file name
yuuji@49 1829 @item Option
yuuji@49 1830 read optional string (if string omitted, omit [] too)
yuuji@49 1831 @item Position
yuuji@49 1832 read positional option (like [htbp])
yuuji@49 1833 @item Coord.
yuuji@49 1834 read coodinates
yuuji@49 1835 @item Quit
yuuji@49 1836 quit from genarating
yuuji@49 1837 @end table
yuuji@49 1838
yuuji@49 1839 Since (A) is the optional argument to specify the location of included
yuuji@49 1840 EPS file, the completion style is @code{Position}, and the possible
yuuji@49 1841 characters are t, b, l, and r. To tell these information to generator,
yuuji@49 1842 operate as follows.
yuuji@49 1843
yuuji@49 1844 @display
yuuji@49 1845 Read type(1).... p
yuuji@49 1846 Acceptable characters: tblr RET
yuuji@49 1847 @end display
yuuji@49 1848
yuuji@49 1849 (B) is coordinate. So its completion style is coOrd. We want a prompt
yuuji@49 1850 meaning ``Maximum size'' when completion.
yuuji@49 1851
yuuji@49 1852 @display
yuuji@49 1853 Read type(2).... o
yuuji@49 1854 Prompt for coordinates: Max size RET
yuuji@49 1855 @end display
yuuji@49 1856
yuuji@49 1857 That's all for optional argument. Select quit.
yuuji@49 1858
yuuji@49 1859 @display
yuuji@49 1860 Read type(3).... q
yuuji@49 1861 @end display
yuuji@49 1862
yuuji@49 1863 Then the generated option add-in function for \epsinput will be shown in
yuuji@49 1864 the next window.
yuuji@49 1865
yuuji@49 1866 @subsubsection Generating ``argument add-in''
yuuji@49 1867 @cindex argument add-in
yuuji@49 1868
yuuji@49 1869 Next, create the argument add-in. The arguments for \epsinput are EPS
yuuji@49 1870 file name, framing style, and caption string in sequence.
yuuji@49 1871
yuuji@49 1872 @display
yuuji@49 1873 M-x YaTeX-generate-simple RET
yuuji@49 1874 epsinput RET
yuuji@49 1875 a
yuuji@49 1876 @end display
yuuji@49 1877
yuuji@49 1878 Above key strokes bring the prompt that asks the number of argument.
yuuji@49 1879 Answer it with 3.
yuuji@49 1880
yuuji@49 1881 @display
yuuji@49 1882 How many arguments?: 3 RET
yuuji@49 1883 @end display
yuuji@49 1884
yuuji@49 1885 Then the generator asks the completion style and prompt for completion.
yuuji@49 1886 Answer them. @kbd{f} for FileName and prompt string.
yuuji@49 1887
yuuji@49 1888 @display
yuuji@49 1889 Read type(1).... f
yuuji@49 1890 Prompt for argument#1 EPS file name RET
yuuji@49 1891 @end display
yuuji@49 1892
yuuji@49 1893 The second argument is one of selected symbol. So the completion type
yuuji@49 1894 is @code{Completion}.
yuuji@49 1895
yuuji@49 1896 @display
yuuji@49 1897 Read type(2).... c
yuuji@49 1898 Prompt for argument#2 Include style RET
yuuji@49 1899 @end display
yuuji@49 1900
yuuji@49 1901 Then all the candidates ready to be read. Type single RET after
yuuji@49 1902 entering all.
yuuji@49 1903
yuuji@49 1904 @display
yuuji@49 1905 Item[1](RET to exit): plain RET
yuuji@49 1906 Item[2](RET to exit): frame RET
yuuji@49 1907 Item[3](RET to exit): dframe RET
yuuji@49 1908 Item[4](RET to exit): RET
yuuji@49 1909 @end display
yuuji@49 1910
yuuji@49 1911 The following prompt asks whether the entered string must belong to
yuuji@49 1912 candidates or not. In this case, since the argument must be one of
yuuji@49 1913 @code{plain}, @code{frame}, and @code{dframe}, type @code{y}.
yuuji@49 1914
yuuji@49 1915 @display
yuuji@49 1916 Require match? (y or n) y
yuuji@49 1917 @end display
yuuji@49 1918
yuuji@49 1919 The last argument is the caption string for which any completion is
yuuji@49 1920 needed.
yuuji@49 1921
yuuji@49 1922 @display
yuuji@49 1923 Read type(3).... s
yuuji@49 1924 Prompt for argument#3 Caption RET
yuuji@49 1925 default: Figure of RET
yuuji@49 1926 @end display
yuuji@49 1927
yuuji@49 1928 Finally we'll get the argument add-in in the next window.
yuuji@49 1929
yuuji@49 1930 @subsection Contribution
yuuji@49 1931
yuuji@49 1932 If you get your own pretty function and you let it be in public, please
yuuji@49 1933 steel yourself in the happy atomospher and do not send me the function.
yuuji@49 1934 I do know it is not fine because it is generated by yatexgen:-p.
yuuji@20 1935
yuuji@20 1936 @node Etcetera, Copying, Customizations, Top
yuuji@20 1937 @comment node-name, next, previous, up
yuuji@20 1938 @chapter Etcetera
yuuji@20 1939
yuuji@20 1940 The standard completion tables provided in @file{yatex.el} contain a
yuuji@20 1941 few La@TeX{} commands I frequently use. This is to lessen the key
yuuji@20 1942 strokes to complete entire word, because too many candidates
yuuji@20 1943 rarely used often cause too many hits. Therefore always try to
yuuji@20 1944 use completion in order to enrich your dictionary, and you will
yuuji@20 1945 also find `Wild Bird' growing suitable for your La@TeX{} style.
yuuji@20 1946
yuuji@20 1947
yuuji@20 1948 @node Copying, , Etcetera, Top
yuuji@20 1949 @comment node-name, next, previous, up
yuuji@20 1950 @chapter Copying
yuuji@20 1951
yuuji@20 1952 This program is distributed as a free software. You can
yuuji@20 1953 redistribute this software freely but with NO warranty to anything
yuuji@20 1954 as a result of using this software. However, any reports and
yuuji@20 1955 suggestions are welcome as long as I feel interests in this
yuuji@20 1956 software. My possible e-mail address is `yuuji@@ae.keio.ac.jp'.
yuuji@49 1957 (up to Mar.1995 at least)
yuuji@20 1958
yuuji@20 1959 The specification of this software will be surely modified
yuuji@20 1960 (depending on my feelings) without notice :-p.
yuuji@20 1961
yuuji@20 1962
yuuji@20 1963 @flushright
yuuji@20 1964 HIROSE Yuuji
yuuji@20 1965 @end flushright
yuuji@20 1966 @bye
yuuji@20 1967
yuuji@20 1968 Local variables:
yuuji@20 1969 mode: texinfo
yuuji@20 1970 fill-prefix: nil
yuuji@20 1971 fill-column: 74
yuuji@20 1972 End: