yatex

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