Mercurial > hg > xemacs-beta
changeset 50:ee648375d8d6 r19-16b91
Import from CVS: tag r19-16b91
line wrap: on
line diff
--- a/CHANGES-beta Mon Aug 13 08:56:06 2007 +0200 +++ b/CHANGES-beta Mon Aug 13 08:56:41 2007 +0200 @@ -1,4 +1,14 @@ -*- indented-text -*- +to 19.16 beta91 +-- Make all texinfo source work with makeinfo-1.68 +-- Update texinfo stuffs from texinfo-3.11 +-- Updated finder database +-- Move AUCTeX style files so the package will work +-- provide 'xemacs for compatibility with future XEmacsen +-- improved color terminal detection +-- miscellaneous bug fixes +-- X-compose fixes Courtesy of Jan Vroonhof + to 19.16 beta90 -- Miscellaneous 20.1 fixes merged -- Synch with 19.15p8 Courtesy of Alvin Shelton
--- a/INSTALL Mon Aug 13 08:56:06 2007 +0200 +++ b/INSTALL Mon Aug 13 08:56:41 2007 +0200 @@ -2,8 +2,6 @@ Copyright (c) 1994, 1995, 1996 Board of Trustees, University of Illinois Copyright (c) 1994 Free Software Foundation, Inc. -Synched up with: FSF 19.30. - Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and permission notice are preserved, @@ -55,7 +53,8 @@ system has X, and arrange to use it if present. Additional support can be included for the NeXTstep system by -specifying the flag `--with-ns'. This is not yet fully supported. +specifying the flag `--with-ns'. This was never implemented, and code +referencing it has been removed from XEmacs 20.3. The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build process where the compiler should look for the include files and @@ -219,15 +218,15 @@ The `--with-energize' option specifies that XEmacs should be built with support for the Lucid Energize system. (If you have not purchased Energize, specifying this option won't gain you anything.) -Currently this doesn't work. +This doesn't work and has been removed from XEmacs 20.3. The `--external-widget' option specifies that XEmacs should be built -with support for being used as a widget. This functionality should be -considered beta. +with support for being used as a widget. This apparently doesn't work. The `--with-mocklisp' option specifies that XEmacs should be built with support for Mocklisp. Do not use this option unless you have a -Mocklisp program that you need to run. +Mocklisp program that you need to run. Mocklisp support has been removed +as of XEmacs 20.3. The `--with-xmu=no' option can be used if your vendor doesn't ship the Xmu library. @@ -260,7 +259,7 @@ allocator. The `--with-epoch' option enables functionality taken from Epoch. -Currently this doesn't work. +Currently this doesn't work and the option has been removed from XEmacs 20.3. The `--debug' and `--error-checking' options are intended for use only by the developers. `--debug' adds code to be compiled in for @@ -666,5 +665,3 @@ See the file PROBLEMS in this directory for a list of various problems sometimes encountered, and what to do about them. - -
--- a/README Mon Aug 13 08:56:06 2007 +0200 +++ b/README Mon Aug 13 08:56:41 2007 +0200 @@ -1,4 +1,4 @@ -This directory tree holds version 19.15 of XEmacs, the extensible, +This directory tree holds version 19.16 of XEmacs, the extensible, customizable, self-documenting real-time display editor. See the file `etc/NEWS' for information on new features and other
--- a/configure Mon Aug 13 08:56:06 2007 +0200 +++ b/configure Mon Aug 13 08:56:41 2007 +0200 @@ -201,7 +201,8 @@ --with-x=no Don't support X. --x-includes=DIR Search for X header files in DIR. --x-libraries=DIR Search for X libraries in DIR. ---with-ns Support NeXTstep windows (not yet implemented). +--with-ns Support NeXTstep windows (Doesn't work, option + removed in 20.3) --with-menubars=TYPE Use TYPE menubars (lucid, motif, or no). The Lucid widgets emulate Motif (mostly) but are faster. *WARNING* The Motif menubar is currently broken.
--- a/configure.in Mon Aug 13 08:56:06 2007 +0200 +++ b/configure.in Mon Aug 13 08:56:41 2007 +0200 @@ -217,7 +217,8 @@ --with-x=no Don't support X. --x-includes=DIR Search for X header files in DIR. --x-libraries=DIR Search for X libraries in DIR. ---with-ns Support NeXTstep windows (not yet implemented). +--with-ns Support NeXTstep windows (Doesn't work, option + removed in 20.3) --with-menubars=TYPE Use TYPE menubars (lucid, motif, or no). The Lucid widgets emulate Motif (mostly) but are faster. *WARNING* The Motif menubar is currently broken.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/amsart.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,10 @@ +;;; amsart.el --- AMS article style hook. + +;;; Code: + +(TeX-add-style-hook "amsart" + (function + (lambda () + (TeX-run-style-hooks "amstex")))) + +;;; amsart.el ends here.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/amsbook.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,10 @@ +;;; amsbook.el --- AMS book style hook. + +;;; Code: + +(TeX-add-style-hook "amsbook" + (function + (lambda () + (TeX-run-style-hooks "amstex")))) + +;;; amsbook.el ends here.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/amstex.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; amstex.el --- AMS LaTeX support. + +;;; Code: + +(TeX-add-style-hook "amstex" + (function + (lambda () + (TeX-add-symbols + '("eqref" TeX-arg-label))))) + +;;; amstex.el ends here.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/article.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; article.el - Special code for article style. + +;; $Id: article.el,v 1.1 1997/08/30 02:45:14 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "article" + (function (lambda () + (setq LaTeX-largest-level (LaTeX-section-level "section"))))) + +;;; article.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/book.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; book.el - Special code for book style. + +;; $Id: book.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "book" + (function (lambda () + (setq LaTeX-largest-level (LaTeX-section-level "chapter"))))) + +;;; book.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/dinbrief.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,163 @@ +;;; dinbrief.el - Special code for LaTeX-Style dinbrief. + +;; Contributed by Werner Fink <tex@itap.physik.uni-stuttgart.de> +;; Please direct comments to him. + +;;; Commentary: + +;; LaTeX-Style: dinbrief.sty +;; Server: rusinfo.rus.uni-stuttgart.de +;; Directory: /pub/soft/tex/macros/latex/contrib/letters + +;;; Code: + +(TeX-add-style-hook "dinbrief" + (function + (lambda () + (LaTeX-add-environments + '("letter" LaTeX-recipient-hook)) + (TeX-add-symbols + '("Absender" "Absender: ") + '("Postvermerk" "Postvermerk: ") + '("Datum" "Datum: ") + '("Betreff" "Betreff: ") + '("Behandlungsvermerk" "Behandlungsvermerk: ") + '("Verteiler" "Verteiler: ") + "makelabel" "Retourlabel" + '("Anlagen" "Anlagen: ") + '("Fenster" "Fenster \(ja/nein\): ") + '("Retouradresse" "Retouradresse: ") + '("signature" "Unterschrift: ") + '("opening" "Anrede: ") + '("closing" "Schlu\"s: "))))) + +(defun LaTeX-recipient-hook (environment) + "Insert ENVIRONMENT and prompt for recipient and address." + (let ((sender (read-input "Absender: " (user-full-name))) + (recipient (read-input "Empf\"anger: ")) + (address (read-input "Anschrift: ")) + (postvermerk (read-input "Postvermerk: ")) + (date (read-input "Datum: " (LaTeX-today))) + (betreff (read-input "Betreff: ")) + (vermerk (read-input "Behandlungsvermerk: ")) + (verteil (read-input "Verteiler: ")) + (anlage (read-input "Anlagen: ")) + (opening (read-input "Anrede: ")) + (closing (read-input "Schlu\"s: ")) + (fenster (read-input "Fenster \(ja/nein\): ")) + (signature (read-input "Unterschrift: ")) + ) + + (if (not (zerop (length sender))) + (progn + (insert TeX-esc "Absender" TeX-grop sender TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length postvermerk))) + (progn + (insert TeX-esc "Postvermerk" TeX-grop postvermerk TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length betreff))) + (progn + (insert TeX-esc "Betreff" TeX-grop betreff TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length vermerk))) + (progn + (insert TeX-esc "Behandlungsvermerk" TeX-grop vermerk TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length verteil))) + (progn + (insert TeX-esc "Verteiler" TeX-grop verteil TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length anlage))) + (progn + (insert TeX-esc "Anlagen" TeX-grop anlage TeX-grcl) + (newline-and-indent))) + (if (string= fenster "ja") + (progn + (insert TeX-esc "Fenster") + (let ((retouradr (read-input "Retouradresse: " (user-full-name)))) + (newline-and-indent) + (if (not (zerop (length retouradr))) + (progn + (insert TeX-esc "Retouradresse" TeX-grop retouradr TeX-grcl) + (newline-and-indent)))))) + (if (not (zerop (length signature))) + (progn + (insert TeX-esc "signature" TeX-grop signature TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length date))) + (progn + (insert TeX-esc "Datum" TeX-grop date TeX-grcl) + (newline-and-indent))) + (newline-and-indent) + + (let ((indentation (current-column))) + (LaTeX-insert-environment + environment + (concat TeX-grop recipient + (if (not (zerop (length address))) + (concat + (if (not (zerop (length recipient))) + (concat " " TeX-esc TeX-esc " ")) + address)) + TeX-grcl)) + (save-excursion ; Fix indentation of address + (if (search-backward TeX-grcl nil 'move) + (let ((addr-end (point-marker))) + (if (search-backward TeX-grop nil 'move) + (let ((addr-column (current-column))) + (while (search-forward + (concat TeX-esc TeX-esc) + (marker-position addr-end) 'move) + (progn + (newline) + (indent-to addr-column)))))))) + (insert "\n") + (indent-to indentation)) + (insert TeX-esc "opening" + TeX-grop + (if (zerop (length opening)) + (concat TeX-esc " ") + opening) + TeX-grcl "\n") + + (indent-relative-maybe) + (save-excursion + (insert "\n" TeX-esc "closing" + TeX-grop + (if (zerop (length closing)) + (concat TeX-esc " ") + closing) + TeX-grcl "\n") + (indent-relative-maybe)))) + +(defun LaTeX-today nil + "Return a string representing todays date according to flavor." + (interactive) + (let ((ctime-string (current-time-string)) + (month-alist '(("Jan" . "Januar") + ("Feb" . "Februar") + ("Mar" . "M\\\"arz") + ("Apr" . "April") + ("May" . "Mai") + ("Jun" . "Juni") + ("Jul" . "Juli") + ("Aug" . "August") + ("Sep" . "September") + ("Oct" . "Oktober") + ("Nov" . "November") + ("Dec" . "Dezember")))) + (string-match + "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" + ctime-string) + (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) + (month (substring ctime-string (match-beginning 1) (match-end 1))) + (day (substring ctime-string (match-beginning 2) (match-end 2)))) + (if (assoc month month-alist) + (progn + (setq month (cdr (assoc month month-alist))) + (if (> 2 (length day)) + (setq day (concat "0" day))))) + (format "Stuttgart, den %s. %s %s" day month year)))) + +;;; dinbrief.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/dk.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; dk.el - Setup AUC TeX for editing Danish text. + +;; $Id: dk.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "dk" + (function (lambda () + (run-hooks 'TeX-language-dk-hook)))) + +;;; dk.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/dutch.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; dutch.el - Setup AUC TeX for editing Dutch text. + +;; $Id: dutch.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "dutch" + (function (lambda () + (run-hooks 'TeX-language-nl-hook)))) + +;;; dutch.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/epsf.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,96 @@ +;;; epsf.el - Support for the epsf style option. + +;; Contributed by Marc Gemis <makke@wins.uia.ac.be> + +;;; Code: + +(TeX-add-style-hook "epsf" + (function + (lambda () + (TeX-add-symbols + '("epsfsize" TeX-arg-epsfsize) + '("epsffile" TeX-arg-file) + '("epsfbox" TeX-arg-file) + "epsflly" "epsfury" "testit" "epsfgetlitbb" + "epsfnormal" "epsfgetbb" "other" "epsfsetgraph" + "PsFragSpecialArgs" "epsfaux" "testit" "epsfgrab" + "epsfllx" "epsflly" "epsfury" "epsfverbosetrue" + ) + (LaTeX-add-environments + '("epsffig" LaTeX-env-epsffigure) + ) + + ))) + + +(defun LaTeX-env-epsffigure (environment) + "Create a `figure'-environment with \\label and \\caption and \\epsfbox +commands. Eventually a `psfrags'-environment is inserted round the \\epsfbox." + + (let ((float (read-input "Float to: " LaTeX-float)) + (caption (read-input "Caption: ")) + (label (read-input "Label: " LaTeX-figure-label)) + ; gf: ask if there is an psfrag environment needed + (psfrag (y-or-n-p "PS fragments: ")) + (psfile (read-file-name "EPS-file: " "" "" nil)) + ) + + (setq LaTeX-float (if (zerop (length float)) + LaTeX-float + float)) + + (LaTeX-insert-environment "figure" + (concat LaTeX-optop LaTeX-float LaTeX-optcl)) + (LaTeX-insert-environment "center") + (if psfrag + (progn + (LaTeX-insert-environment "psfrags") + (newline-and-indent) + )) + (if (or (zerop (length label)) + (and (string= "figure" environment) + (equal LaTeX-figure-label label)) + ) + () + (newline-and-indent) + (insert TeX-esc "label" TeX-grop label TeX-grcl) + (end-of-line 0) + (LaTeX-indent-line)) + + + (newline-and-indent) + (insert TeX-esc "leavevmode") + (newline-and-indent) + (insert TeX-esc "epsfbox" TeX-grop psfile TeX-grcl) + (if (zerop (length caption)) + () + (newline-and-indent) + (insert TeX-esc "caption" TeX-grop caption TeX-grcl)) + (newline) + (forward-line 4) + (newline) + +)) + +(defun TeX-arg-epsfsize (optional &optional prompt definition) + "Create a line that print epsf figures at a certain percentage" + (interactive) + (let ((scale (read-input "Scale (%): ")) + ) + (setq scalestr (if (zerop (length scale)) + "75" + (format "%s" scale) + )) + (save-excursion + ; append #1#{scale#1} + (insert "#1#2" TeX-grop "0." scale "#1" TeX-grcl) + ; insert \def before \epsfsize + (beginning-of-line 1) + (newline) + (insert TeX-esc "def") + (forward-line -1) + (insert "% From now on print figures at " scale "% of original size") + ) + (end-of-line))) + +;;; epsf.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/foils.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,47 @@ +;;; foils.el - Special code for FoilTeX. + +;; $Id: foils.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Code: + +(require 'latex) + +(TeX-add-style-hook "foils" + (function + (lambda () + (add-hook 'LaTeX-document-style-hook 'LaTeX-style-foils) + (setq LaTeX-default-style "foils") + (setq LaTeX-default-options '("landscape")) + (TeX-add-symbols + '("foilhead" [ "Rubric-body separation" ] "Foil rubric"))))) + +(defun LaTeX-style-foils nil + "Prompt for and insert foiltex options." + (require 'timezone) + (let* ((date (timezone-parse-date (current-time-string))) + (year (string-to-int (aref date 0))) + (month (string-to-int (aref date 1))) + (day (string-to-int (aref date 2))) + (title (read-input "Title: "))) + (save-excursion + (goto-char (point-max)) + (re-search-backward ".begin.document.") + (insert TeX-esc "title" + TeX-grop title TeX-grcl "\n") + (insert TeX-esc "author" + TeX-grop (user-full-name) TeX-grcl "\n") + (insert TeX-esc "date" TeX-grop + (format "%d-%02d-%02d" year month day) + TeX-grcl "\n") + (insert "" TeX-esc "\nMyLogo" TeX-grop TeX-grcl "\n") + (insert "%" TeX-esc "Restriction" TeX-grop TeX-grcl "\n") + (insert "%" TeX-esc "rightfooter" TeX-grop TeX-grcl "\n") + (insert "%" TeX-esc "leftheader" TeX-grop TeX-grcl "\n") + (insert "%" TeX-esc "rightheader" TeX-grop TeX-grcl "\n\n") + (re-search-forward ".begin.document.") + (end-of-line) + (newline-and-indent) + (insert "" TeX-esc "maketitle\n\n")) + (forward-line -1))) + +;;; foils.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/german.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,28 @@ +;;; german.el - Setup AUC TeX for editing German text. + +;; $Id: german.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Commentary: +;; +;; `german.sty' use `"' to give next character an umlaut. + +;;; Code: + +(defvar LaTeX-german-mode-syntax-table + (copy-syntax-table LaTeX-mode-syntax-table) + "Syntax table used in LaTeX mode when using `german.sty'.") + +(modify-syntax-entry ?\" "w" LaTeX-german-mode-syntax-table) + +(TeX-add-style-hook "german" + (function (lambda () + (set-syntax-table LaTeX-german-mode-syntax-table) + (make-local-variable 'TeX-open-quote) + (make-local-variable 'TeX-close-quote) + (make-local-variable 'TeX-quote-after-quote) + (setq TeX-quote-after-quote t) + (setq TeX-open-quote "\"`") + (setq TeX-close-quote "\"'") + (run-hooks 'TeX-language-de-hook)))) + +;;; german.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/harvard.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,97 @@ +;; harvard.el --- Support for Harvard Citation style package for AUC-TeX + +;; Copyright (C) 1994 Berwin Turlach <berwin@core.ucl.ac.be> + +;; Version: $Id: harvard.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 1, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; if not, write to the Free Software +;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Commentary: + +;; Harvard citation style is from Peter Williams available on the CTAN +;; servers + +;;; Code: + +(require 'latex) + +(TeX-add-style-hook "harvard" + (function + (lambda () + + (LaTeX-add-environments + '("thebibliography" LaTeX-env-harvardbib ignore)) + + (TeX-add-symbols + "harvardand" + '("citeasnoun" + (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) + TeX-arg-cite) + '("possessivecite" + (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) + TeX-arg-cite) + '("citeaffixed" + (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) + TeX-arg-cite "Affix") + '("citeyear" + (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) + TeX-arg-cite) + '("citename" + (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) + TeX-arg-cite) + '("citationstyle" + (TeX-arg-eval completing-read "Citation style: " '(("agsm") ("dcu")))) + '("citationmode" + (TeX-arg-eval completing-read "Citation mode: " + '(("full") ("abbr") ("default")))) + '("harvardparenthesis" + (TeX-arg-eval completing-read "Harvardparenthesis: " + '(("round") ("curly") ("angle") ("square")))) + '("bibliographystyle" + (TeX-arg-eval + completing-read "Bibliography style: " + '(("agsm") ("dcu") ("jmr") ("jphysicsB") ("kluwer") ("nederlands"))) + ignore) + '("harvarditem" [ "Short citation" ] + "Complete citation" "Year" TeX-arg-define-cite)) + + (setq TeX-complete-list + (append '(("\\\\citeasnoun{\\([^{}\n\m\\%]*\\)" + 1 LaTeX-bibitem-list "}") + ("\\\\citeyear{\\([^{}\n\m\\%]*\\)" + 1 LaTeX-bibitem-list "}") + ("\\\\citename{\\([^{}\n\m\\%]*\\)" + 1 LaTeX-bibitem-list "}")) + TeX-complete-list)) + + (setq LaTeX-item-list + (cons '("thebibliography" . LaTeX-item-harvardbib) + LaTeX-item-list))))) + +(defun LaTeX-env-harvardbib (environment &optional ignore) + "Insert ENVIRONMENT with label for harvarditem." + (LaTeX-insert-environment environment + (concat TeX-grop "xx" TeX-grcl)) + (end-of-line 0) + (delete-char 1) + (delete-horizontal-space) + (LaTeX-insert-item)) + +;; Analog to LaTeX-item-bib from latex.el +(defun LaTeX-item-harvardbib () + "Insert a new harvarditem." + (TeX-insert-macro "harvarditem")) + +;; harvard.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/j-article.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; j-article.el - Special code for j-article style. + +;; $Id: j-article.el,v 1.1 1997/08/30 02:45:15 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "j-article" + (function (lambda () + (setq LaTeX-largest-level (LaTeX-section-level "section"))))) + +;;; j-article.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/j-book.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; j-book.el - Special code for j-book style. + +;; $Id: j-book.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "j-book" + (function (lambda () (setq LaTeX-largest-level + (LaTeX-section-level "chapter"))))) + +;;; j-book.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/j-report.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; j-report.el - Special code for j-report style. + +;; $Id: j-report.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "j-report" + (function (lambda () (setq LaTeX-largest-level + (LaTeX-section-level "chapter"))))) + +;;; j-report.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/jarticle.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,10 @@ +;;; jarticle.el - Special code for jarticle style. + +;; $Id: jarticle.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "jarticle" + (function (lambda () (setq LaTeX-largest-level 2)))) + +;;; jarticle.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/jbook.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; jbook.el - Special code for jbook style. + +;; $Id: jbook.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "jbook" + (function (lambda () (setq LaTeX-largest-level + (LaTeX-section-level "chapter"))))) + +;;; jbook.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/jreport.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,12 @@ +;;; jreport.el - Special code for jreport style. + +;; $Id: jreport.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "jreport" + (function (lambda () (setq LaTeX-largest-level + (LaTeX-section-level "chapter"))))) + + +;;; jreport.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/latexinfo.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,183 @@ +;;; latexinfo.el - Support for LaTeXinfo files. + +;; Copyright (C) 1993 Marc Gemis <makke@wins.uia.ac.be> + +;; Author: Marc Gemis <makke@wins.uia.ac.be> +;; Version: $Id: latexinfo.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; if not, write to the Free Software +;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Code: + +(require 'latex) + +;;; LaTeXinfo mode + +(defvar TeX-latexinfo-node-regexp + '("\\\\node[ \t]+\\([^,\n\r%]+\\)" 1 TeX-auto-label) + "Matches LaTeXinfo \\node commands, only current node will be found. +We ignore next, previous and up fields.") + +(defvar LaTeXinfo-mode nil + "Non-nil means LaTeXinfo minor mode is active.") + (make-variable-buffer-local 'LaTeXinfo-mode) + +(defvar LaTeXinfo-mode-map nil + "Keymap containing LaTeXinfo commands.") + +(if LaTeXinfo-mode-map + () + (setq LaTeXinfo-mode-map (make-sparse-keymap)) + (define-key LaTeXinfo-mode-map "\C-c\C-u\C-b" 'latexinfo-format-buffer) + (define-key LaTeXinfo-mode-map "\C-c\C-u\C-r" 'latexinfo-format-region) + (define-key LaTeXinfo-mode-map "\C-c\C-u\C-s" 'latexinfo-show-structure) + (define-key LaTeXinfo-mode-map "\C-c\C-ud" 'makke:latexinfo-delete-structure) + (define-key LaTeXinfo-mode-map "\C-c\C-ug" 'latexinfo-goto-node) + (define-key LaTeXinfo-mode-map "\C-c\C-ui" 'makke:latexinfo-structure)) + +(or (assq 'LaTeXinfo-mode minor-mode-map-alist) + (setq minor-mode-map-alist + (cons (cons 'LaTeXinfo-mode LaTeXinfo-mode-map) + minor-mode-map-alist))) + +(defun TeX-arg-latexinfo-index (optional &optional prompt) + "Prompt for a LaTeXinfo index type with completion." + (TeX-argument-insert + (completing-read (TeX-argument-prompt optional prompt "Index") + '(("cp") ("vr") ("fn") ("tp") ("pg") ("ky")) + nil t) + optional)) + +(defun LaTeX-item-latexinfo-menu () + "Insert a new menu item" + (insert "* ::") + (backward-char 2)) + +(defun latexinfo-goto-node () ; temporarily here, later in latexinfo-upd.el ?? + "Place pointer on the node given by the user, read node with completion +This fails when the user types in the label of something else" + (interactive) + (let ((node-name (completing-read "Goto Node: " (LaTeX-label-list)))) + (goto-char (point-min)) + (if (re-search-forward + (concat + TeX-esc "node[ \\t]+" node-name "," + "\\|" + TeX-esc "label{" LaTeX-section-label node-name + "\\|" + TeX-esc "label{" node-name + ) + (point-max) t) + (beginning-of-line 1) + (error "No such node")))) + +;;; Hook + +(TeX-add-style-hook "latexinfo" + (function + (lambda () + (require 'latexinfo) + (require 'latexinfo-structure) + + (require 'min-map) + (setq LaTeXinfo-mode t) + + (TeX-auto-add-regexp TeX-latexinfo-node-regexp) + + (TeX-add-symbols + '("node" + (TeX-arg-literal " ") + (TeX-arg-free TeX-arg-define-label "Node name") + (TeX-arg-literal ", ") + (TeX-arg-free TeX-arg-label "Next node") + (TeX-arg-literal ", ") + (TeX-arg-free TeX-arg-label "Previous node") + (TeX-arg-literal ", ") + (TeX-arg-free TeX-arg-label "Up node")) + '("setfilename" TeX-arg-file) + + '("var" t) + '("dfn" t) + '("emph" t) + '("kbd" t) + '("code" t) + '("samp" t) + '("key" t) + '("ctrl" t) + '("file" t) + + '("comment" + (TeX-arg-literal " ") + (TeX-arg-free "Comment")) + '("c" + (TeX-arg-literal " ") + (TeX-arg-free "Comment")) + + '("cindex" t) + '("cpsubindex" 2) + '("cpindexbold" t) + + '("newindex" TeX-arg-latexinfo-index) + + '("br" nil) + '("w" "Text") + '("dots" nil) + '("refill" nil) + '("bullet" nil) + '("copyright" nil) + '("sp" nil) + + '("xref" TeX-arg-label) + '("pxref" TeX-arg-label) + '("inforef" + (TeX-arg-literal "{") + (TeX-arg-free "Name of node") + (TeX-arg-literal ", ") + (TeX-arg-free "Name for note") + (TeX-arg-literal ", ") + (TeX-arg-free TeX-arg-file "Info file") + (TeX-arg-literal "}"))) + + (LaTeX-add-environments "menu" "tex" "ignore" "ifinfo" "iftex" + "example" "same" "display" "format") + + ; Menu's have a special kind of items + (make-local-variable 'LaTeX-item-list) + (setq LaTeX-item-list (cons '("menu" . LaTeX-item-latexinfo-menu) + LaTeX-item-list)) + + (make-local-variable 'TeX-font-list) + (setq TeX-font-list + (list (list ?\C-b (concat TeX-esc "b{") "}") + (list ?\C-c (concat TeX-esc "sc{") "}") + (list ?\C-e (concat TeX-esc "emph{") "}") + (list ?\C-i (concat TeX-esc "i{") "}") + (list ?\C-r (concat TeX-esc "r{") "}") + (list ?\C-s (concat TeX-esc "samp{") "}") + (list ?\C-t (concat TeX-esc "t{") "}") + (list ?s (concat TeX-esc "strong{") "}") + (list ?\C-f (concat TeX-esc "file{") "}") + (list ?\C-d (concat TeX-esc "dfn{") "}") + (list ?\C-v (concat TeX-esc "var{") "}") + (list ?k (concat TeX-esc "key{") "}") + (list ?\C-k (concat TeX-esc "kbd{") "}") + (list ?c (concat TeX-esc "code{") "}") + (list ?C (concat TeX-esc "cite{") "}"))) + + ;; need the following stuff to let xref and pxref work + (make-local-variable 'LaTeX-section-label) + (setq LaTeX-section-label "")))) + +;;; latexinfo.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/letter.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,122 @@ +;;; letter.el - Special code for letter style. + +;; $Id: letter.el,v 1.1 1997/08/30 02:45:16 steve Exp $ + +;;; Code: + +;; You may want to define this in tex-site.el to contain your +;; organizations address. +(defvar LaTeX-letter-sender-address "" + "Initial value when prompting for a sender address in the letter style.") + +(TeX-add-style-hook "letter" + (function + (lambda () + (LaTeX-add-environments + '("letter" LaTeX-env-recipient)) + (TeX-add-symbols + '("name" "Sender: ") + '("address" "Sender address: ") + '("signature" "Signature: ") + '("opening" "Opening: ") + '("closing" "Closing: "))))) + +(defun LaTeX-env-recipient (environment) + "Insert ENVIRONMENT and prompt for recipient and address." + (let ((sender (read-input "Sender: " (user-full-name))) + (sender-address (read-input "Sender address: " + LaTeX-letter-sender-address)) + (recipient (read-input "Recipient: ")) + (address (read-input "Recipient address: ")) + (signature (read-input "Signature: ")) + (opening (read-input "Opening: ")) + (closing (read-input "Closing: ")) + (date (read-input "Date: " (LaTeX-today)))) + + (insert TeX-esc "name" TeX-grop sender TeX-grcl) + (newline-and-indent) + (if (not (zerop (length sender-address))) + (progn + (setq LaTeX-letter-sender-address sender-address) + (insert TeX-esc "address" TeX-grop sender-address TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length signature))) + (progn + (insert TeX-esc "signature" TeX-grop signature TeX-grcl) + (newline-and-indent))) + (if (not (zerop (length date))) + (progn + (insert TeX-esc "def" TeX-esc "today" TeX-grop date TeX-grcl) + (newline-and-indent))) + (newline-and-indent) + + (let ((indentation (current-column))) + (LaTeX-insert-environment + environment + (concat TeX-grop recipient + (if (not (zerop (length address))) + (concat + (if (not (zerop (length recipient))) + (concat " " TeX-esc TeX-esc " ")) + address)) + TeX-grcl)) + (save-excursion ; Fix indentation of address + (if (search-backward TeX-grcl nil 'move) + (let ((addr-end (point-marker))) + (if (search-backward TeX-grop nil 'move) + (let ((addr-column (current-column))) + (while (search-forward + (concat TeX-esc TeX-esc) + (marker-position addr-end) 'move) + (progn + (newline) + (indent-to addr-column)))))))) + (insert "\n") + (indent-to indentation)) + (insert TeX-esc "opening" + TeX-grop + (if (zerop (length opening)) + (concat TeX-esc " ") + opening) + TeX-grcl "\n") + + (indent-relative-maybe) + (save-excursion + (insert "\n" TeX-esc "closing" + TeX-grop + (if (zerop (length closing)) + (concat TeX-esc " ") + closing) + TeX-grcl "\n") + (indent-relative-maybe)))) + +(defun LaTeX-today nil + "Return a string representing todays date according to flavor." + (interactive) + (let ((ctime-string (current-time-string)) + (month-alist '(("Jan". "01") + ("Feb" . "02") + ("Mar" . "03") + ("Apr" . "04") + ("May" . "05") + ("Jun" . "06") + ("Jul" . "07") + ("Aug" . "08") + ("Sep" . "09") + ("Oct" . "10") + ("Nov" . "11") + ("Dec" . "12")))) + (string-match + "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" + ctime-string) + (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) + (month (substring ctime-string (match-beginning 1) (match-end 1))) + (day (substring ctime-string (match-beginning 2) (match-end 2)))) + (if (assoc month month-alist) + (progn + (setq month (cdr (assoc month month-alist))) + (if (> 2 (length day)) + (setq day (concat "0" day))))) + (format "%s-%s-%s" year month day)))) + +;;; letter.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/plfonts.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,31 @@ +;;; plfonts.el - Setup AUC TeX for editing Polish text with plfonts.sty + +;; $Id: plfonts.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +;;; Commentary: +;; +;; `plfonts.sty' use `"' to make next character Polish. +;; `plfonts.sty' <C> L. Holenderski, IIUW, lhol@mimuw.edu.pl + +;;; Code: + +(defvar LaTeX-plfonts-mode-syntax-table + (copy-syntax-table LaTeX-mode-syntax-table) + "Syntax table used in LaTeX mode when using `plfonts.sty'.") + +(modify-syntax-entry ?\" "w" LaTeX-plfonts-mode-syntax-table) + +(TeX-add-style-hook "plfonts" + (function (lambda () + (set-syntax-table LaTeX-plfonts-mode-syntax-table) + (make-local-variable 'TeX-open-quote) + (make-local-variable 'TeX-close-quote) + (make-local-variable 'TeX-quote-after-quote) + (make-local-variable 'TeX-command-default) + (setq TeX-open-quote "\"<") + (setq TeX-close-quote "\">") + (setq TeX-quote-after-quote t) + (setq TeX-command-default "plLaTeX") + (run-hooks 'TeX-language-pl-hook)))) + +;;; plfonts.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/plhb.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,31 @@ +;;; plhb.el - Setup AUC TeX for editing Polish text with plhb.sty + +;; $Id: plhb.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +;;; Commentary: +;; +;; `plhb.sty' use `"' to make next character Polish. +;; `plhb.sty' <C> J. S. Bie\'n, IIUW, jsbien@mimuw.edu.pl + +;;; Code: + +(defvar LaTeX-plhb-mode-syntax-table + (copy-syntax-table LaTeX-mode-syntax-table) + "Syntax table used in LaTeX mode when using `plhb.sty'.") + +(modify-syntax-entry ?\" "w" LaTeX-plhb-mode-syntax-table) + +(TeX-add-style-hook "plhb" + (function (lambda () + (set-syntax-table LaTeX-plhb-mode-syntax-table) + (make-local-variable 'TeX-open-quote) + (make-local-variable 'TeX-close-quote) + (make-local-variable 'TeX-command-default) + (make-local-variable 'TeX-quote-after-quote) + (setq TeX-open-quote "\"<") + (setq TeX-close-quote "\">") + (setq TeX-quote-after-quote t) + (setq TeX-command-default "plLaTeX") + (run-hooks 'TeX-language-pl-hook)))) + +;;; plhb.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/psfig.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,79 @@ +;;; psfig.el - Support for the psfig style option. + +;; Contributed by Marc Gemis <makke@wins.uia.ac.be> +;; Please direct comments to him. + +;;; Code: + +(TeX-add-style-hook "psfig" + (function + (lambda () + ;; probable some of the following symbols may be removed + (TeX-add-symbols "protect" "figurepath" "fbox" + "other" "letter" "other" "then" "Sine" "Cosine" + "psdraft" "psfull" "psscalefirst" "psrotatefirst" + "psnodraftbox" "psdraftbox" "pssilent" "psnoisy" + "minmaxtest" + '("psfig" TeX-arg-psfig) + '("psfigurepath" t) + ) + (LaTeX-add-environments + '("psfigure" LaTeX-env-psfigure) + ) + ))) + +(defun TeX-arg-psfig (optional) + "Ask for file, width and length. Insert psfig macro" + (let ((psfile (read-file-name "PS-file: " "" "" nil)) + (figwidth (read-input "Figure width: ")) + (figheight (read-input "Figure height: ")) + ) + + (insert TeX-grop "figure=" psfile) + (if (not (zerop (length figwidth))) + (insert ",width=" figwidth)) + (if (not (zerop (length figheight))) + (insert ",height=" figheight)) + (insert TeX-grcl) + ) + ) + + +(defun LaTeX-env-psfigure (environment) + "Create with \\label and \\caption and \\psfig commands." + (let ((float (read-input "Float to: " LaTeX-float)) + (caption (read-input "Caption: ")) + (label (read-input "Label: " LaTeX-figure-label)) + ; gf: ask if this should be centered + (psfile (read-file-name "PS-file: " "" "" nil)) + (figwidth (read-input "Figure width: ")) + (figheight (read-input "Figure height: ")) + ) + + (setq LaTeX-float (if (zerop (length float)) + LaTeX-float + float)) + + (LaTeX-insert-environment "figure" + (concat LaTeX-optop LaTeX-float LaTeX-optcl)) + + (insert TeX-esc "centerline" TeX-grop TeX-esc "psfig" TeX-grop + "figure=" psfile) + (if (not (zerop (length figwidth))) + (insert ",width=" figwidth)) + (if (not (zerop (length figheight))) + (insert ",height=" figheight)) + (insert TeX-grcl TeX-grcl) + (if (zerop (length caption)) + () + (newline-and-indent) + (insert TeX-esc "caption" TeX-grop caption TeX-grcl)) + (if (or (zerop (length label)) + (equal LaTeX-figure-label label)) + () + (newline-and-indent) + (insert TeX-esc "label" TeX-grop label TeX-grcl)) + + (forward-line 2))) + +;;; psfig.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/report.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,11 @@ +;;; report.el - Special code for report style. + +;; $Id: report.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "report" + (function (lambda () + (setq LaTeX-largest-level (LaTeX-section-level "chapter"))))) + +;;; report.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/slides.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,52 @@ +;;; slides.el - Special code for slitex. +;; +;; $Id: slides.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +(require 'latex) + +;;; Code: + +(TeX-add-style-hook "slides" + (function + (lambda () + (setq LaTeX-default-style "slides") + (add-hook 'LaTeX-document-style-hook 'LaTeX-style-slides) + (LaTeX-add-environments '("slide" LaTeX-env-slide) + '("overlay" LaTeX-env-slide)) + (TeX-run-style-hooks "SLITEX")))) + +(defvar LaTeX-slide-color "" + "*Default slide color.") + + (make-variable-buffer-local 'LaTeX-slide-color) + +(defun LaTeX-style-slides () + "Prompt for and insert SliTeX options." + (let ((slide-file (read-input "Slide file: ")) + (slide-colors (read-input "Slide colors (comma separetade list): " + "black"))) + (save-excursion + (goto-char (point-min)) ; insert before \end{document} + (if (re-search-forward ".end.document." (point-max) t) + (beginning-of-line 1)) + (open-line 2) + (indent-relative-maybe) + (if (equal slide-colors "black") + (insert TeX-esc "blackandwhite" + TeX-grop slide-file TeX-grcl) + (progn + (insert TeX-esc "colors" + TeX-grop slide-colors TeX-grcl) + (newline-and-indent) + (insert TeX-esc "colorslides" + TeX-grop slide-file TeX-grcl)))))) + +(defun LaTeX-env-slide (environment) + "Insert ENVIRONMENT and prompt for slide colors." + (setq LaTeX-slide-color + (read-input "Slide colors: " LaTeX-slide-color)) + (LaTeX-insert-environment environment + (concat TeX-grop LaTeX-slide-color TeX-grcl))) + + +;;; slides.el ends here
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/swedish.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,13 @@ +;;; swedish.el - Setup AUC TeX for editing Swedish text. + +;; $Id: swedish.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +;;; Commentary: +;; +;; Apparently the Swedes use ''this style'' quotations. + +(TeX-add-style-hook "swedish" + (function (lambda () + (make-local-variable 'TeX-open-quote) + (setq TeX-open-quote "''") + (run-hooks 'TeX-language-sv-hook))))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/auctex/style/virtex.el Mon Aug 13 08:56:41 2007 +0200 @@ -0,0 +1,83 @@ +;;; virtex.el - Common code for all TeX formats. + +;; $Id: virtex.el,v 1.1 1997/08/30 02:45:17 steve Exp $ + +;;; Code: + +(TeX-add-style-hook "virtex" + (function + (lambda () + (TeX-add-symbols "/" "above" "abovedisplayshortskip" + "abovedisplayskip" "abovewithdelims" "accent" + "adjdemerits" "advance" "afterassignment" + "aftergroup" "atop" "atopwithdelims" "badness" + "baselineskip" "batchmode" "begingroup" + "belowdisplayshortskip" "belowdisplayskip" + "binoppenalty" "botmark" "box" "boxmaxdepth" + "brokenpenalty" "catcode" "char" "chardef" + "cleaders" "closein" "closeout" "clubpenalty" + "copy" "count" "countdef" "cr" "crcr" "csname" + "day" "deadcycles" "def" "defaulthyphenchar" + "defaultskewchar" "delcode" "delimiter" + "delimiterfactor" "delimitershortfall" "dimen" + "dimendef" "discretionary" "displayindent" + "displaylimits" "displaystyle" + "displaywidowpenalty" "displaywidth" "divide" + "doublehyphendemerits" "dp" "dump" "edef" "else" + "emergencystretch" "end" "endcsname" "endgroup" + "endinput" "endlinechar" "eqno" "errhelp" + "errmessage" "errorcontextlines" "errorstopmode" + "escapechar" "everycr" "everydisplay" + "everyhbox" "everyjob" "everymath" "everypar" + "everyvbox" "exhyphenpenalty" "expandafter" + "fam" "fi" "finalhyphendemerits" "firstmark" + "floatingpenalty" "font" "fontdimen" "fontname" + "futurelet" "gdef" "global" "globaldefs" + "halign" "hangafter" "hangindent" "hbadness" + "hbox" "hfil" "hfill" "hfilneg" "hfuzz" + "hoffset" "holdinginserts" "hrule" "hsize" + "hskip" "hss" "ht" "hyphenpenation" "hyphenchar" + "hyphenpenalty" "if" "ifcase" "ifcat" "ifdim" + "ifeof" "iffalse" "ifhbox" "ifinner" "ifhmode" + "ifmmode" "ifnum" "ifodd" "iftrue" "ifvbox" + "ifvoid" "ifx" "ignorespaces" "immediate" + "indent" "input" "inputlineno" "insert" + "insertpenalties" "interlinepenalty" "jobname" + "kern" "language" "lastbox" "lastkern" + "lastpenalty" "lastskip" "lccode" "leaders" + "left" "lefthyphenmin" "leftskip" "leqno" "let" + "limits" "linepenalty" "lineskip" + "lineskiplimit" "long" "looseness" "lower" + "lowercase" "mag" "markaccent" "mathbin" + "mathchar" "mathchardef" "mathchoise" + "mathclose" "mathcode" "mathinner" "mathhop" + "mathopen" "mathord" "mathpunct" "mathrel" + "mathsurround" "maxdeadcycles" "maxdepth" + "meaning" "medmuskip" "message" "mkern" "month" + "moveleft" "moveright" "mskip" "multiply" + "muskip" "muskipdef" "newlinechar" "noalign" + "noboundary" "noexpand" "noindent" "nolimits" + "nonscript" "nonstopmode" "nulldelimiterspace" + "nullfont" "number" "omit" "openin" "openout" + "or" "outer" "output" "outputpenalty" + "overfullrule" "parfillskip" "parindent" + "parskip" "pausing" "postdisplaypenalty" + "predisplaypenalty" "predisplaysize" + "pretolerance" "relpenalty" "rightskip" + "scriptspace" "showboxbreadth" "showboxdepth" + "smallskipamount" "spaceskip" "splitmaxdepth" + "splittopskip" "tabskip" "thickmuskip" + "thinmuskip" "time" "tolerance" "topskip" + "tracingcommands" "tracinglostchars" + "tracingmacros" "tracingonline" "tracingoutput" + "tracingpages" "tracingparagraphs" + "tracingrestores" "tracingstats" "uccode" + "uchyph" "underline" "unhbox" "unhcopy" "unkern" + "unpenalty" "unskip" "unvbox" "unvcopy" + "uppercase" "vadjust" "valign" "vbadness" "vbox" + "vcenter" "vfil" "vfill" "vfilneg" "vfuzz" + "voffset" "vrule" "vsize" "vskip" "vss" "vtop" + "wd" "widowpenalty" "write" "xdef" "xleaders" + "xspaceskip" "year")))) + +;;; virtex.el ends here
--- a/lisp/auctex/Makefile Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/auctex/Makefile Mon Aug 13 08:56:41 2007 +0200 @@ -79,15 +79,17 @@ multi-prompt.elc -STYLESRC = style/slides.el style/foils.el style/amstex.el \ - style/article.el style/book.el style/letter.el \ - style/report.el style/amsart.el style/amsbook.el \ - style/epsf.el style/psfig.el style/latexinfo.el \ - style/dutch.el style/german.el style/dk.el \ - style/j-article.el style/j-book.el style/j-report.el \ - style/jarticle.el style/jbook.el style/jreport.el \ - style/dinbrief.el style/virtex.el style/plfonts.el \ - style/plhb.el style/harvard.el style/swedish.el +STYLE=../../etc/auctex/style + +STYLESRC = $(STYLE)/slides.el $(STYLE)/foils.el $(STYLE)/amstex.el \ + $(STYLE)/article.el $(STYLE)/book.el $(STYLE)/letter.el \ + $(STYLE)/report.el $(STYLE)/amsart.el $(STYLE)/amsbook.el \ + $(STYLE)/epsf.el $(STYLE)/psfig.el $(STYLE)/latexinfo.el \ + $(STYLE)/dutch.el $(STYLE)/german.el $(STYLE)/dk.el \ + $(STYLE)/j-article.el $(STYLE)/j-book.el $(STYLE)/j-report.el \ + $(STYLE)/jarticle.el $(STYLE)/jbook.el $(STYLE)/jreport.el \ + $(STYLE)/dinbrief.el $(STYLE)/virtex.el $(STYLE)/plfonts.el \ + $(STYLE)/plhb.el $(STYLE)/harvard.el $(STYLE)/swedish.el DOCFILES = doc/Makefile doc/auc-tex.texi doc/intro.texi doc/install.texi \ doc/changes.texi doc/tex-ref.tex doc/math-ref.tex doc/history.texi
--- a/lisp/auctex/style/amsart.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -;;; amsart.el --- AMS article style hook. - -;;; Code: - -(TeX-add-style-hook "amsart" - (function - (lambda () - (TeX-run-style-hooks "amstex")))) - -;;; amsart.el ends here.
--- a/lisp/auctex/style/amsbook.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -;;; amsbook.el --- AMS book style hook. - -;;; Code: - -(TeX-add-style-hook "amsbook" - (function - (lambda () - (TeX-run-style-hooks "amstex")))) - -;;; amsbook.el ends here.
--- a/lisp/auctex/style/amstex.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; amstex.el --- AMS LaTeX support. - -;;; Code: - -(TeX-add-style-hook "amstex" - (function - (lambda () - (TeX-add-symbols - '("eqref" TeX-arg-label))))) - -;;; amstex.el ends here.
--- a/lisp/auctex/style/article.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; article.el - Special code for article style. - -;; $Id: article.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "article" - (function (lambda () - (setq LaTeX-largest-level (LaTeX-section-level "section"))))) - -;;; article.el ends here
--- a/lisp/auctex/style/book.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; book.el - Special code for book style. - -;; $Id: book.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "book" - (function (lambda () - (setq LaTeX-largest-level (LaTeX-section-level "chapter"))))) - -;;; book.el ends here
--- a/lisp/auctex/style/dinbrief.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -;;; dinbrief.el - Special code for LaTeX-Style dinbrief. - -;; Contributed by Werner Fink <tex@itap.physik.uni-stuttgart.de> -;; Please direct comments to him. - -;;; Commentary: - -;; LaTeX-Style: dinbrief.sty -;; Server: rusinfo.rus.uni-stuttgart.de -;; Directory: /pub/soft/tex/macros/latex/contrib/letters - -;;; Code: - -(TeX-add-style-hook "dinbrief" - (function - (lambda () - (LaTeX-add-environments - '("letter" LaTeX-recipient-hook)) - (TeX-add-symbols - '("Absender" "Absender: ") - '("Postvermerk" "Postvermerk: ") - '("Datum" "Datum: ") - '("Betreff" "Betreff: ") - '("Behandlungsvermerk" "Behandlungsvermerk: ") - '("Verteiler" "Verteiler: ") - "makelabel" "Retourlabel" - '("Anlagen" "Anlagen: ") - '("Fenster" "Fenster \(ja/nein\): ") - '("Retouradresse" "Retouradresse: ") - '("signature" "Unterschrift: ") - '("opening" "Anrede: ") - '("closing" "Schlu\"s: "))))) - -(defun LaTeX-recipient-hook (environment) - "Insert ENVIRONMENT and prompt for recipient and address." - (let ((sender (read-input "Absender: " (user-full-name))) - (recipient (read-input "Empf\"anger: ")) - (address (read-input "Anschrift: ")) - (postvermerk (read-input "Postvermerk: ")) - (date (read-input "Datum: " (LaTeX-today))) - (betreff (read-input "Betreff: ")) - (vermerk (read-input "Behandlungsvermerk: ")) - (verteil (read-input "Verteiler: ")) - (anlage (read-input "Anlagen: ")) - (opening (read-input "Anrede: ")) - (closing (read-input "Schlu\"s: ")) - (fenster (read-input "Fenster \(ja/nein\): ")) - (signature (read-input "Unterschrift: ")) - ) - - (if (not (zerop (length sender))) - (progn - (insert TeX-esc "Absender" TeX-grop sender TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length postvermerk))) - (progn - (insert TeX-esc "Postvermerk" TeX-grop postvermerk TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length betreff))) - (progn - (insert TeX-esc "Betreff" TeX-grop betreff TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length vermerk))) - (progn - (insert TeX-esc "Behandlungsvermerk" TeX-grop vermerk TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length verteil))) - (progn - (insert TeX-esc "Verteiler" TeX-grop verteil TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length anlage))) - (progn - (insert TeX-esc "Anlagen" TeX-grop anlage TeX-grcl) - (newline-and-indent))) - (if (string= fenster "ja") - (progn - (insert TeX-esc "Fenster") - (let ((retouradr (read-input "Retouradresse: " (user-full-name)))) - (newline-and-indent) - (if (not (zerop (length retouradr))) - (progn - (insert TeX-esc "Retouradresse" TeX-grop retouradr TeX-grcl) - (newline-and-indent)))))) - (if (not (zerop (length signature))) - (progn - (insert TeX-esc "signature" TeX-grop signature TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length date))) - (progn - (insert TeX-esc "Datum" TeX-grop date TeX-grcl) - (newline-and-indent))) - (newline-and-indent) - - (let ((indentation (current-column))) - (LaTeX-insert-environment - environment - (concat TeX-grop recipient - (if (not (zerop (length address))) - (concat - (if (not (zerop (length recipient))) - (concat " " TeX-esc TeX-esc " ")) - address)) - TeX-grcl)) - (save-excursion ; Fix indentation of address - (if (search-backward TeX-grcl nil 'move) - (let ((addr-end (point-marker))) - (if (search-backward TeX-grop nil 'move) - (let ((addr-column (current-column))) - (while (search-forward - (concat TeX-esc TeX-esc) - (marker-position addr-end) 'move) - (progn - (newline) - (indent-to addr-column)))))))) - (insert "\n") - (indent-to indentation)) - (insert TeX-esc "opening" - TeX-grop - (if (zerop (length opening)) - (concat TeX-esc " ") - opening) - TeX-grcl "\n") - - (indent-relative-maybe) - (save-excursion - (insert "\n" TeX-esc "closing" - TeX-grop - (if (zerop (length closing)) - (concat TeX-esc " ") - closing) - TeX-grcl "\n") - (indent-relative-maybe)))) - -(defun LaTeX-today nil - "Return a string representing todays date according to flavor." - (interactive) - (let ((ctime-string (current-time-string)) - (month-alist '(("Jan" . "Januar") - ("Feb" . "Februar") - ("Mar" . "M\\\"arz") - ("Apr" . "April") - ("May" . "Mai") - ("Jun" . "Juni") - ("Jul" . "Juli") - ("Aug" . "August") - ("Sep" . "September") - ("Oct" . "Oktober") - ("Nov" . "November") - ("Dec" . "Dezember")))) - (string-match - "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" - ctime-string) - (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) - (month (substring ctime-string (match-beginning 1) (match-end 1))) - (day (substring ctime-string (match-beginning 2) (match-end 2)))) - (if (assoc month month-alist) - (progn - (setq month (cdr (assoc month month-alist))) - (if (> 2 (length day)) - (setq day (concat "0" day))))) - (format "Stuttgart, den %s. %s %s" day month year)))) - -;;; dinbrief.el ends here
--- a/lisp/auctex/style/dk.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; dk.el - Setup AUC TeX for editing Danish text. - -;; $Id: dk.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "dk" - (function (lambda () - (run-hooks 'TeX-language-dk-hook)))) - -;;; dk.el ends here
--- a/lisp/auctex/style/dutch.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; dutch.el - Setup AUC TeX for editing Dutch text. - -;; $Id: dutch.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "dutch" - (function (lambda () - (run-hooks 'TeX-language-nl-hook)))) - -;;; dutch.el ends here
--- a/lisp/auctex/style/epsf.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -;;; epsf.el - Support for the epsf style option. - -;; Contributed by Marc Gemis <makke@wins.uia.ac.be> - -;;; Code: - -(TeX-add-style-hook "epsf" - (function - (lambda () - (TeX-add-symbols - '("epsfsize" TeX-arg-epsfsize) - '("epsffile" TeX-arg-file) - '("epsfbox" TeX-arg-file) - "epsflly" "epsfury" "testit" "epsfgetlitbb" - "epsfnormal" "epsfgetbb" "other" "epsfsetgraph" - "PsFragSpecialArgs" "epsfaux" "testit" "epsfgrab" - "epsfllx" "epsflly" "epsfury" "epsfverbosetrue" - ) - (LaTeX-add-environments - '("epsffig" LaTeX-env-epsffigure) - ) - - ))) - - -(defun LaTeX-env-epsffigure (environment) - "Create a `figure'-environment with \\label and \\caption and \\epsfbox -commands. Eventually a `psfrags'-environment is inserted round the \\epsfbox." - - (let ((float (read-input "Float to: " LaTeX-float)) - (caption (read-input "Caption: ")) - (label (read-input "Label: " LaTeX-figure-label)) - ; gf: ask if there is an psfrag environment needed - (psfrag (y-or-n-p "PS fragments: ")) - (psfile (read-file-name "EPS-file: " "" "" nil)) - ) - - (setq LaTeX-float (if (zerop (length float)) - LaTeX-float - float)) - - (LaTeX-insert-environment "figure" - (concat LaTeX-optop LaTeX-float LaTeX-optcl)) - (LaTeX-insert-environment "center") - (if psfrag - (progn - (LaTeX-insert-environment "psfrags") - (newline-and-indent) - )) - (if (or (zerop (length label)) - (and (string= "figure" environment) - (equal LaTeX-figure-label label)) - ) - () - (newline-and-indent) - (insert TeX-esc "label" TeX-grop label TeX-grcl) - (end-of-line 0) - (LaTeX-indent-line)) - - - (newline-and-indent) - (insert TeX-esc "leavevmode") - (newline-and-indent) - (insert TeX-esc "epsfbox" TeX-grop psfile TeX-grcl) - (if (zerop (length caption)) - () - (newline-and-indent) - (insert TeX-esc "caption" TeX-grop caption TeX-grcl)) - (newline) - (forward-line 4) - (newline) - -)) - -(defun TeX-arg-epsfsize (optional &optional prompt definition) - "Create a line that print epsf figures at a certain percentage" - (interactive) - (let ((scale (read-input "Scale (%): ")) - ) - (setq scalestr (if (zerop (length scale)) - "75" - (format "%s" scale) - )) - (save-excursion - ; append #1#{scale#1} - (insert "#1#2" TeX-grop "0." scale "#1" TeX-grcl) - ; insert \def before \epsfsize - (beginning-of-line 1) - (newline) - (insert TeX-esc "def") - (forward-line -1) - (insert "% From now on print figures at " scale "% of original size") - ) - (end-of-line))) - -;;; epsf.el ends here
--- a/lisp/auctex/style/foils.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -;;; foils.el - Special code for FoilTeX. - -;; $Id: foils.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Code: - -(require 'latex) - -(TeX-add-style-hook "foils" - (function - (lambda () - (add-hook 'LaTeX-document-style-hook 'LaTeX-style-foils) - (setq LaTeX-default-style "foils") - (setq LaTeX-default-options '("landscape")) - (TeX-add-symbols - '("foilhead" [ "Rubric-body separation" ] "Foil rubric"))))) - -(defun LaTeX-style-foils nil - "Prompt for and insert foiltex options." - (require 'timezone) - (let* ((date (timezone-parse-date (current-time-string))) - (year (string-to-int (aref date 0))) - (month (string-to-int (aref date 1))) - (day (string-to-int (aref date 2))) - (title (read-input "Title: "))) - (save-excursion - (goto-char (point-max)) - (re-search-backward ".begin.document.") - (insert TeX-esc "title" - TeX-grop title TeX-grcl "\n") - (insert TeX-esc "author" - TeX-grop (user-full-name) TeX-grcl "\n") - (insert TeX-esc "date" TeX-grop - (format "%d-%02d-%02d" year month day) - TeX-grcl "\n") - (insert "" TeX-esc "\nMyLogo" TeX-grop TeX-grcl "\n") - (insert "%" TeX-esc "Restriction" TeX-grop TeX-grcl "\n") - (insert "%" TeX-esc "rightfooter" TeX-grop TeX-grcl "\n") - (insert "%" TeX-esc "leftheader" TeX-grop TeX-grcl "\n") - (insert "%" TeX-esc "rightheader" TeX-grop TeX-grcl "\n\n") - (re-search-forward ".begin.document.") - (end-of-line) - (newline-and-indent) - (insert "" TeX-esc "maketitle\n\n")) - (forward-line -1))) - -;;; foils.el ends here
--- a/lisp/auctex/style/german.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -;;; german.el - Setup AUC TeX for editing German text. - -;; $Id: german.el,v 1.1 1997/02/20 02:15:19 steve Exp $ - -;;; Commentary: -;; -;; `german.sty' use `"' to give next character an umlaut. - -;;; Code: - -(defvar LaTeX-german-mode-syntax-table - (copy-syntax-table LaTeX-mode-syntax-table) - "Syntax table used in LaTeX mode when using `german.sty'.") - -(modify-syntax-entry ?\" "w" LaTeX-german-mode-syntax-table) - -(TeX-add-style-hook "german" - (function (lambda () - (set-syntax-table LaTeX-german-mode-syntax-table) - (make-local-variable 'TeX-open-quote) - (make-local-variable 'TeX-close-quote) - (make-local-variable 'TeX-quote-after-quote) - (setq TeX-quote-after-quote t) - (setq TeX-open-quote "\"`") - (setq TeX-close-quote "\"'") - (run-hooks 'TeX-language-de-hook)))) - -;;; german.el ends here
--- a/lisp/auctex/style/harvard.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -;; harvard.el --- Support for Harvard Citation style package for AUC-TeX - -;; Copyright (C) 1994 Berwin Turlach <berwin@core.ucl.ac.be> - -;; Version: $Id: harvard.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 1, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with this program; if not, write to the Free Software -;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -;;; Commentary: - -;; Harvard citation style is from Peter Williams available on the CTAN -;; servers - -;;; Code: - -(require 'latex) - -(TeX-add-style-hook "harvard" - (function - (lambda () - - (LaTeX-add-environments - '("thebibliography" LaTeX-env-harvardbib ignore)) - - (TeX-add-symbols - "harvardand" - '("citeasnoun" - (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) - TeX-arg-cite) - '("possessivecite" - (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) - TeX-arg-cite) - '("citeaffixed" - (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) - TeX-arg-cite "Affix") - '("citeyear" - (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) - TeX-arg-cite) - '("citename" - (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) - TeX-arg-cite) - '("citationstyle" - (TeX-arg-eval completing-read "Citation style: " '(("agsm") ("dcu")))) - '("citationmode" - (TeX-arg-eval completing-read "Citation mode: " - '(("full") ("abbr") ("default")))) - '("harvardparenthesis" - (TeX-arg-eval completing-read "Harvardparenthesis: " - '(("round") ("curly") ("angle") ("square")))) - '("bibliographystyle" - (TeX-arg-eval - completing-read "Bibliography style: " - '(("agsm") ("dcu") ("jmr") ("jphysicsB") ("kluwer") ("nederlands"))) - ignore) - '("harvarditem" [ "Short citation" ] - "Complete citation" "Year" TeX-arg-define-cite)) - - (setq TeX-complete-list - (append '(("\\\\citeasnoun{\\([^{}\n\m\\%]*\\)" - 1 LaTeX-bibitem-list "}") - ("\\\\citeyear{\\([^{}\n\m\\%]*\\)" - 1 LaTeX-bibitem-list "}") - ("\\\\citename{\\([^{}\n\m\\%]*\\)" - 1 LaTeX-bibitem-list "}")) - TeX-complete-list)) - - (setq LaTeX-item-list - (cons '("thebibliography" . LaTeX-item-harvardbib) - LaTeX-item-list))))) - -(defun LaTeX-env-harvardbib (environment &optional ignore) - "Insert ENVIRONMENT with label for harvarditem." - (LaTeX-insert-environment environment - (concat TeX-grop "xx" TeX-grcl)) - (end-of-line 0) - (delete-char 1) - (delete-horizontal-space) - (LaTeX-insert-item)) - -;; Analog to LaTeX-item-bib from latex.el -(defun LaTeX-item-harvardbib () - "Insert a new harvarditem." - (TeX-insert-macro "harvarditem")) - -;; harvard.el ends here
--- a/lisp/auctex/style/j-article.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; j-article.el - Special code for j-article style. - -;; $Id: j-article.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "j-article" - (function (lambda () - (setq LaTeX-largest-level (LaTeX-section-level "section"))))) - -;;; j-article.el ends here
--- a/lisp/auctex/style/j-book.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; j-book.el - Special code for j-book style. - -;; $Id: j-book.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "j-book" - (function (lambda () (setq LaTeX-largest-level - (LaTeX-section-level "chapter"))))) - -;;; j-book.el ends here
--- a/lisp/auctex/style/j-report.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; j-report.el - Special code for j-report style. - -;; $Id: j-report.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "j-report" - (function (lambda () (setq LaTeX-largest-level - (LaTeX-section-level "chapter"))))) - -;;; j-report.el ends here
--- a/lisp/auctex/style/jarticle.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -;;; jarticle.el - Special code for jarticle style. - -;; $Id: jarticle.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "jarticle" - (function (lambda () (setq LaTeX-largest-level 2)))) - -;;; jarticle.el ends here
--- a/lisp/auctex/style/jbook.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; jbook.el - Special code for jbook style. - -;; $Id: jbook.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "jbook" - (function (lambda () (setq LaTeX-largest-level - (LaTeX-section-level "chapter"))))) - -;;; jbook.el ends here
--- a/lisp/auctex/style/jreport.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -;;; jreport.el - Special code for jreport style. - -;; $Id: jreport.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "jreport" - (function (lambda () (setq LaTeX-largest-level - (LaTeX-section-level "chapter"))))) - - -;;; jreport.el ends here
--- a/lisp/auctex/style/latexinfo.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -;;; latexinfo.el - Support for LaTeXinfo files. - -;; Copyright (C) 1993 Marc Gemis <makke@wins.uia.ac.be> - -;; Author: Marc Gemis <makke@wins.uia.ac.be> -;; Version: $Id: latexinfo.el,v 1.1 1997/02/20 02:15:20 steve Exp $ - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with this program; if not, write to the Free Software -;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -;;; Code: - -(require 'latex) - -;;; LaTeXinfo mode - -(defvar TeX-latexinfo-node-regexp - '("\\\\node[ \t]+\\([^,\n\r%]+\\)" 1 TeX-auto-label) - "Matches LaTeXinfo \\node commands, only current node will be found. -We ignore next, previous and up fields.") - -(defvar LaTeXinfo-mode nil - "Non-nil means LaTeXinfo minor mode is active.") - (make-variable-buffer-local 'LaTeXinfo-mode) - -(defvar LaTeXinfo-mode-map nil - "Keymap containing LaTeXinfo commands.") - -(if LaTeXinfo-mode-map - () - (setq LaTeXinfo-mode-map (make-sparse-keymap)) - (define-key LaTeXinfo-mode-map "\C-c\C-u\C-b" 'latexinfo-format-buffer) - (define-key LaTeXinfo-mode-map "\C-c\C-u\C-r" 'latexinfo-format-region) - (define-key LaTeXinfo-mode-map "\C-c\C-u\C-s" 'latexinfo-show-structure) - (define-key LaTeXinfo-mode-map "\C-c\C-ud" 'makke:latexinfo-delete-structure) - (define-key LaTeXinfo-mode-map "\C-c\C-ug" 'latexinfo-goto-node) - (define-key LaTeXinfo-mode-map "\C-c\C-ui" 'makke:latexinfo-structure)) - -(or (assq 'LaTeXinfo-mode minor-mode-map-alist) - (setq minor-mode-map-alist - (cons (cons 'LaTeXinfo-mode LaTeXinfo-mode-map) - minor-mode-map-alist))) - -(defun TeX-arg-latexinfo-index (optional &optional prompt) - "Prompt for a LaTeXinfo index type with completion." - (TeX-argument-insert - (completing-read (TeX-argument-prompt optional prompt "Index") - '(("cp") ("vr") ("fn") ("tp") ("pg") ("ky")) - nil t) - optional)) - -(defun LaTeX-item-latexinfo-menu () - "Insert a new menu item" - (insert "* ::") - (backward-char 2)) - -(defun latexinfo-goto-node () ; temporarily here, later in latexinfo-upd.el ?? - "Place pointer on the node given by the user, read node with completion -This fails when the user types in the label of something else" - (interactive) - (let ((node-name (completing-read "Goto Node: " (LaTeX-label-list)))) - (goto-char (point-min)) - (if (re-search-forward - (concat - TeX-esc "node[ \\t]+" node-name "," - "\\|" - TeX-esc "label{" LaTeX-section-label node-name - "\\|" - TeX-esc "label{" node-name - ) - (point-max) t) - (beginning-of-line 1) - (error "No such node")))) - -;;; Hook - -(TeX-add-style-hook "latexinfo" - (function - (lambda () - (require 'latexinfo) - (require 'latexinfo-structure) - - (require 'min-map) - (setq LaTeXinfo-mode t) - - (TeX-auto-add-regexp TeX-latexinfo-node-regexp) - - (TeX-add-symbols - '("node" - (TeX-arg-literal " ") - (TeX-arg-free TeX-arg-define-label "Node name") - (TeX-arg-literal ", ") - (TeX-arg-free TeX-arg-label "Next node") - (TeX-arg-literal ", ") - (TeX-arg-free TeX-arg-label "Previous node") - (TeX-arg-literal ", ") - (TeX-arg-free TeX-arg-label "Up node")) - '("setfilename" TeX-arg-file) - - '("var" t) - '("dfn" t) - '("emph" t) - '("kbd" t) - '("code" t) - '("samp" t) - '("key" t) - '("ctrl" t) - '("file" t) - - '("comment" - (TeX-arg-literal " ") - (TeX-arg-free "Comment")) - '("c" - (TeX-arg-literal " ") - (TeX-arg-free "Comment")) - - '("cindex" t) - '("cpsubindex" 2) - '("cpindexbold" t) - - '("newindex" TeX-arg-latexinfo-index) - - '("br" nil) - '("w" "Text") - '("dots" nil) - '("refill" nil) - '("bullet" nil) - '("copyright" nil) - '("sp" nil) - - '("xref" TeX-arg-label) - '("pxref" TeX-arg-label) - '("inforef" - (TeX-arg-literal "{") - (TeX-arg-free "Name of node") - (TeX-arg-literal ", ") - (TeX-arg-free "Name for note") - (TeX-arg-literal ", ") - (TeX-arg-free TeX-arg-file "Info file") - (TeX-arg-literal "}"))) - - (LaTeX-add-environments "menu" "tex" "ignore" "ifinfo" "iftex" - "example" "same" "display" "format") - - ; Menu's have a special kind of items - (make-local-variable 'LaTeX-item-list) - (setq LaTeX-item-list (cons '("menu" . LaTeX-item-latexinfo-menu) - LaTeX-item-list)) - - (make-local-variable 'TeX-font-list) - (setq TeX-font-list - (list (list ?\C-b (concat TeX-esc "b{") "}") - (list ?\C-c (concat TeX-esc "sc{") "}") - (list ?\C-e (concat TeX-esc "emph{") "}") - (list ?\C-i (concat TeX-esc "i{") "}") - (list ?\C-r (concat TeX-esc "r{") "}") - (list ?\C-s (concat TeX-esc "samp{") "}") - (list ?\C-t (concat TeX-esc "t{") "}") - (list ?s (concat TeX-esc "strong{") "}") - (list ?\C-f (concat TeX-esc "file{") "}") - (list ?\C-d (concat TeX-esc "dfn{") "}") - (list ?\C-v (concat TeX-esc "var{") "}") - (list ?k (concat TeX-esc "key{") "}") - (list ?\C-k (concat TeX-esc "kbd{") "}") - (list ?c (concat TeX-esc "code{") "}") - (list ?C (concat TeX-esc "cite{") "}"))) - - ;; need the following stuff to let xref and pxref work - (make-local-variable 'LaTeX-section-label) - (setq LaTeX-section-label "")))) - -;;; latexinfo.el ends here
--- a/lisp/auctex/style/letter.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -;;; letter.el - Special code for letter style. - -;; $Id: letter.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Code: - -;; You may want to define this in tex-site.el to contain your -;; organizations address. -(defvar LaTeX-letter-sender-address "" - "Initial value when prompting for a sender address in the letter style.") - -(TeX-add-style-hook "letter" - (function - (lambda () - (LaTeX-add-environments - '("letter" LaTeX-env-recipient)) - (TeX-add-symbols - '("name" "Sender: ") - '("address" "Sender address: ") - '("signature" "Signature: ") - '("opening" "Opening: ") - '("closing" "Closing: "))))) - -(defun LaTeX-env-recipient (environment) - "Insert ENVIRONMENT and prompt for recipient and address." - (let ((sender (read-input "Sender: " (user-full-name))) - (sender-address (read-input "Sender address: " - LaTeX-letter-sender-address)) - (recipient (read-input "Recipient: ")) - (address (read-input "Recipient address: ")) - (signature (read-input "Signature: ")) - (opening (read-input "Opening: ")) - (closing (read-input "Closing: ")) - (date (read-input "Date: " (LaTeX-today)))) - - (insert TeX-esc "name" TeX-grop sender TeX-grcl) - (newline-and-indent) - (if (not (zerop (length sender-address))) - (progn - (setq LaTeX-letter-sender-address sender-address) - (insert TeX-esc "address" TeX-grop sender-address TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length signature))) - (progn - (insert TeX-esc "signature" TeX-grop signature TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length date))) - (progn - (insert TeX-esc "def" TeX-esc "today" TeX-grop date TeX-grcl) - (newline-and-indent))) - (newline-and-indent) - - (let ((indentation (current-column))) - (LaTeX-insert-environment - environment - (concat TeX-grop recipient - (if (not (zerop (length address))) - (concat - (if (not (zerop (length recipient))) - (concat " " TeX-esc TeX-esc " ")) - address)) - TeX-grcl)) - (save-excursion ; Fix indentation of address - (if (search-backward TeX-grcl nil 'move) - (let ((addr-end (point-marker))) - (if (search-backward TeX-grop nil 'move) - (let ((addr-column (current-column))) - (while (search-forward - (concat TeX-esc TeX-esc) - (marker-position addr-end) 'move) - (progn - (newline) - (indent-to addr-column)))))))) - (insert "\n") - (indent-to indentation)) - (insert TeX-esc "opening" - TeX-grop - (if (zerop (length opening)) - (concat TeX-esc " ") - opening) - TeX-grcl "\n") - - (indent-relative-maybe) - (save-excursion - (insert "\n" TeX-esc "closing" - TeX-grop - (if (zerop (length closing)) - (concat TeX-esc " ") - closing) - TeX-grcl "\n") - (indent-relative-maybe)))) - -(defun LaTeX-today nil - "Return a string representing todays date according to flavor." - (interactive) - (let ((ctime-string (current-time-string)) - (month-alist '(("Jan". "01") - ("Feb" . "02") - ("Mar" . "03") - ("Apr" . "04") - ("May" . "05") - ("Jun" . "06") - ("Jul" . "07") - ("Aug" . "08") - ("Sep" . "09") - ("Oct" . "10") - ("Nov" . "11") - ("Dec" . "12")))) - (string-match - "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" - ctime-string) - (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) - (month (substring ctime-string (match-beginning 1) (match-end 1))) - (day (substring ctime-string (match-beginning 2) (match-end 2)))) - (if (assoc month month-alist) - (progn - (setq month (cdr (assoc month month-alist))) - (if (> 2 (length day)) - (setq day (concat "0" day))))) - (format "%s-%s-%s" year month day)))) - -;;; letter.el ends here
--- a/lisp/auctex/style/plfonts.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -;;; plfonts.el - Setup AUC TeX for editing Polish text with plfonts.sty - -;; $Id: plfonts.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Commentary: -;; -;; `plfonts.sty' use `"' to make next character Polish. -;; `plfonts.sty' <C> L. Holenderski, IIUW, lhol@mimuw.edu.pl - -;;; Code: - -(defvar LaTeX-plfonts-mode-syntax-table - (copy-syntax-table LaTeX-mode-syntax-table) - "Syntax table used in LaTeX mode when using `plfonts.sty'.") - -(modify-syntax-entry ?\" "w" LaTeX-plfonts-mode-syntax-table) - -(TeX-add-style-hook "plfonts" - (function (lambda () - (set-syntax-table LaTeX-plfonts-mode-syntax-table) - (make-local-variable 'TeX-open-quote) - (make-local-variable 'TeX-close-quote) - (make-local-variable 'TeX-quote-after-quote) - (make-local-variable 'TeX-command-default) - (setq TeX-open-quote "\"<") - (setq TeX-close-quote "\">") - (setq TeX-quote-after-quote t) - (setq TeX-command-default "plLaTeX") - (run-hooks 'TeX-language-pl-hook)))) - -;;; plfonts.el ends here
--- a/lisp/auctex/style/plhb.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -;;; plhb.el - Setup AUC TeX for editing Polish text with plhb.sty - -;; $Id: plhb.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Commentary: -;; -;; `plhb.sty' use `"' to make next character Polish. -;; `plhb.sty' <C> J. S. Bie\'n, IIUW, jsbien@mimuw.edu.pl - -;;; Code: - -(defvar LaTeX-plhb-mode-syntax-table - (copy-syntax-table LaTeX-mode-syntax-table) - "Syntax table used in LaTeX mode when using `plhb.sty'.") - -(modify-syntax-entry ?\" "w" LaTeX-plhb-mode-syntax-table) - -(TeX-add-style-hook "plhb" - (function (lambda () - (set-syntax-table LaTeX-plhb-mode-syntax-table) - (make-local-variable 'TeX-open-quote) - (make-local-variable 'TeX-close-quote) - (make-local-variable 'TeX-command-default) - (make-local-variable 'TeX-quote-after-quote) - (setq TeX-open-quote "\"<") - (setq TeX-close-quote "\">") - (setq TeX-quote-after-quote t) - (setq TeX-command-default "plLaTeX") - (run-hooks 'TeX-language-pl-hook)))) - -;;; plhb.el ends here
--- a/lisp/auctex/style/psfig.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -;;; psfig.el - Support for the psfig style option. - -;; Contributed by Marc Gemis <makke@wins.uia.ac.be> -;; Please direct comments to him. - -;;; Code: - -(TeX-add-style-hook "psfig" - (function - (lambda () - ;; probable some of the following symbols may be removed - (TeX-add-symbols "protect" "figurepath" "fbox" - "other" "letter" "other" "then" "Sine" "Cosine" - "psdraft" "psfull" "psscalefirst" "psrotatefirst" - "psnodraftbox" "psdraftbox" "pssilent" "psnoisy" - "minmaxtest" - '("psfig" TeX-arg-psfig) - '("psfigurepath" t) - ) - (LaTeX-add-environments - '("psfigure" LaTeX-env-psfigure) - ) - ))) - -(defun TeX-arg-psfig (optional) - "Ask for file, width and length. Insert psfig macro" - (let ((psfile (read-file-name "PS-file: " "" "" nil)) - (figwidth (read-input "Figure width: ")) - (figheight (read-input "Figure height: ")) - ) - - (insert TeX-grop "figure=" psfile) - (if (not (zerop (length figwidth))) - (insert ",width=" figwidth)) - (if (not (zerop (length figheight))) - (insert ",height=" figheight)) - (insert TeX-grcl) - ) - ) - - -(defun LaTeX-env-psfigure (environment) - "Create with \\label and \\caption and \\psfig commands." - (let ((float (read-input "Float to: " LaTeX-float)) - (caption (read-input "Caption: ")) - (label (read-input "Label: " LaTeX-figure-label)) - ; gf: ask if this should be centered - (psfile (read-file-name "PS-file: " "" "" nil)) - (figwidth (read-input "Figure width: ")) - (figheight (read-input "Figure height: ")) - ) - - (setq LaTeX-float (if (zerop (length float)) - LaTeX-float - float)) - - (LaTeX-insert-environment "figure" - (concat LaTeX-optop LaTeX-float LaTeX-optcl)) - - (insert TeX-esc "centerline" TeX-grop TeX-esc "psfig" TeX-grop - "figure=" psfile) - (if (not (zerop (length figwidth))) - (insert ",width=" figwidth)) - (if (not (zerop (length figheight))) - (insert ",height=" figheight)) - (insert TeX-grcl TeX-grcl) - (if (zerop (length caption)) - () - (newline-and-indent) - (insert TeX-esc "caption" TeX-grop caption TeX-grcl)) - (if (or (zerop (length label)) - (equal LaTeX-figure-label label)) - () - (newline-and-indent) - (insert TeX-esc "label" TeX-grop label TeX-grcl)) - - (forward-line 2))) - -;;; psfig.el ends here
--- a/lisp/auctex/style/report.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -;;; report.el - Special code for report style. - -;; $Id: report.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "report" - (function (lambda () - (setq LaTeX-largest-level (LaTeX-section-level "chapter"))))) - -;;; report.el ends here
--- a/lisp/auctex/style/slides.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -;;; slides.el - Special code for slitex. -;; -;; $Id: slides.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -(require 'latex) - -;;; Code: - -(TeX-add-style-hook "slides" - (function - (lambda () - (setq LaTeX-default-style "slides") - (add-hook 'LaTeX-document-style-hook 'LaTeX-style-slides) - (LaTeX-add-environments '("slide" LaTeX-env-slide) - '("overlay" LaTeX-env-slide)) - (TeX-run-style-hooks "SLITEX")))) - -(defvar LaTeX-slide-color "" - "*Default slide color.") - - (make-variable-buffer-local 'LaTeX-slide-color) - -(defun LaTeX-style-slides () - "Prompt for and insert SliTeX options." - (let ((slide-file (read-input "Slide file: ")) - (slide-colors (read-input "Slide colors (comma separetade list): " - "black"))) - (save-excursion - (goto-char (point-min)) ; insert before \end{document} - (if (re-search-forward ".end.document." (point-max) t) - (beginning-of-line 1)) - (open-line 2) - (indent-relative-maybe) - (if (equal slide-colors "black") - (insert TeX-esc "blackandwhite" - TeX-grop slide-file TeX-grcl) - (progn - (insert TeX-esc "colors" - TeX-grop slide-colors TeX-grcl) - (newline-and-indent) - (insert TeX-esc "colorslides" - TeX-grop slide-file TeX-grcl)))))) - -(defun LaTeX-env-slide (environment) - "Insert ENVIRONMENT and prompt for slide colors." - (setq LaTeX-slide-color - (read-input "Slide colors: " LaTeX-slide-color)) - (LaTeX-insert-environment environment - (concat TeX-grop LaTeX-slide-color TeX-grcl))) - - -;;; slides.el ends here
--- a/lisp/auctex/style/swedish.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -;;; swedish.el - Setup AUC TeX for editing Swedish text. - -;; $Id: swedish.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Commentary: -;; -;; Apparently the Swedes use ''this style'' quotations. - -(TeX-add-style-hook "swedish" - (function (lambda () - (make-local-variable 'TeX-open-quote) - (setq TeX-open-quote "''") - (run-hooks 'TeX-language-sv-hook))))
--- a/lisp/auctex/style/virtex.el Mon Aug 13 08:56:06 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -;;; virtex.el - Common code for all TeX formats. - -;; $Id: virtex.el,v 1.1 1997/02/20 02:15:21 steve Exp $ - -;;; Code: - -(TeX-add-style-hook "virtex" - (function - (lambda () - (TeX-add-symbols "/" "above" "abovedisplayshortskip" - "abovedisplayskip" "abovewithdelims" "accent" - "adjdemerits" "advance" "afterassignment" - "aftergroup" "atop" "atopwithdelims" "badness" - "baselineskip" "batchmode" "begingroup" - "belowdisplayshortskip" "belowdisplayskip" - "binoppenalty" "botmark" "box" "boxmaxdepth" - "brokenpenalty" "catcode" "char" "chardef" - "cleaders" "closein" "closeout" "clubpenalty" - "copy" "count" "countdef" "cr" "crcr" "csname" - "day" "deadcycles" "def" "defaulthyphenchar" - "defaultskewchar" "delcode" "delimiter" - "delimiterfactor" "delimitershortfall" "dimen" - "dimendef" "discretionary" "displayindent" - "displaylimits" "displaystyle" - "displaywidowpenalty" "displaywidth" "divide" - "doublehyphendemerits" "dp" "dump" "edef" "else" - "emergencystretch" "end" "endcsname" "endgroup" - "endinput" "endlinechar" "eqno" "errhelp" - "errmessage" "errorcontextlines" "errorstopmode" - "escapechar" "everycr" "everydisplay" - "everyhbox" "everyjob" "everymath" "everypar" - "everyvbox" "exhyphenpenalty" "expandafter" - "fam" "fi" "finalhyphendemerits" "firstmark" - "floatingpenalty" "font" "fontdimen" "fontname" - "futurelet" "gdef" "global" "globaldefs" - "halign" "hangafter" "hangindent" "hbadness" - "hbox" "hfil" "hfill" "hfilneg" "hfuzz" - "hoffset" "holdinginserts" "hrule" "hsize" - "hskip" "hss" "ht" "hyphenpenation" "hyphenchar" - "hyphenpenalty" "if" "ifcase" "ifcat" "ifdim" - "ifeof" "iffalse" "ifhbox" "ifinner" "ifhmode" - "ifmmode" "ifnum" "ifodd" "iftrue" "ifvbox" - "ifvoid" "ifx" "ignorespaces" "immediate" - "indent" "input" "inputlineno" "insert" - "insertpenalties" "interlinepenalty" "jobname" - "kern" "language" "lastbox" "lastkern" - "lastpenalty" "lastskip" "lccode" "leaders" - "left" "lefthyphenmin" "leftskip" "leqno" "let" - "limits" "linepenalty" "lineskip" - "lineskiplimit" "long" "looseness" "lower" - "lowercase" "mag" "markaccent" "mathbin" - "mathchar" "mathchardef" "mathchoise" - "mathclose" "mathcode" "mathinner" "mathhop" - "mathopen" "mathord" "mathpunct" "mathrel" - "mathsurround" "maxdeadcycles" "maxdepth" - "meaning" "medmuskip" "message" "mkern" "month" - "moveleft" "moveright" "mskip" "multiply" - "muskip" "muskipdef" "newlinechar" "noalign" - "noboundary" "noexpand" "noindent" "nolimits" - "nonscript" "nonstopmode" "nulldelimiterspace" - "nullfont" "number" "omit" "openin" "openout" - "or" "outer" "output" "outputpenalty" - "overfullrule" "parfillskip" "parindent" - "parskip" "pausing" "postdisplaypenalty" - "predisplaypenalty" "predisplaysize" - "pretolerance" "relpenalty" "rightskip" - "scriptspace" "showboxbreadth" "showboxdepth" - "smallskipamount" "spaceskip" "splitmaxdepth" - "splittopskip" "tabskip" "thickmuskip" - "thinmuskip" "time" "tolerance" "topskip" - "tracingcommands" "tracinglostchars" - "tracingmacros" "tracingonline" "tracingoutput" - "tracingpages" "tracingparagraphs" - "tracingrestores" "tracingstats" "uccode" - "uchyph" "underline" "unhbox" "unhcopy" "unkern" - "unpenalty" "unskip" "unvbox" "unvcopy" - "uppercase" "vadjust" "valign" "vbadness" "vbox" - "vcenter" "vfil" "vfill" "vfilneg" "vfuzz" - "voffset" "vrule" "vsize" "vskip" "vss" "vtop" - "wd" "widowpenalty" "write" "xdef" "xleaders" - "xspaceskip" "year")))) - -;;; virtex.el ends here
--- a/lisp/efs/dired.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/efs/dired.el Mon Aug 13 08:56:41 2007 +0200 @@ -383,7 +383,7 @@ ;;; File name regular expressions and extensions. -(defvar dired-trivial-filenames "^\\.\\.?$\\|^#" +(defvar dired-trivial-filenames "\\`\\.\\.?\\'\\|\\`#" "*Regexp of files to skip when finding first file of a directory listing. A value of nil means move to the subdir line. A value of t means move to first file.") @@ -418,7 +418,7 @@ See also `dired-omit-extensions'.") (make-variable-buffer-local 'dired-omit-extensions) -(defvar dired-omit-regexps '("^#" "^\\.") +(defvar dired-omit-regexps '("\\`#" "\\`\\.") "*File names matching these regexp may be omitted (buffer-local). This only has effect when the subdirectory is in omission mode. To make omission mode the default, set `dired-omit-files' to t. @@ -426,7 +426,7 @@ See also `dired-omit-extensions'.") (make-variable-buffer-local 'dired-omit-regexps) -(defvar dired-filename-re-ext "\\..+$" ; start from the first dot. last dot? +(defvar dired-filename-re-ext "\\..+\\'" ; start from the first dot. last dot? "*Defines what is the extension of a file name. \(match-beginning 0\) for this regexp in the file name without directory will be taken to be the start of the extension.") @@ -2815,7 +2815,8 @@ (defun dired-find-file () "In dired, visit the file or directory named on this line." (interactive) - (find-file (dired-get-filename))) + (let ((find-file-run-dired t)) + (find-file (dired-get-filename)))) (defun dired-view-file () "In dired, examine a file in view mode, returning to dired when done. @@ -2834,18 +2835,21 @@ (interactive "P") (if display (dired-display-file) - (find-file-other-window (dired-get-filename)))) + (let ((find-file-run-dired t)) + (find-file-other-window (dired-get-filename))))) ;; Only for Emacs 19 (defun dired-find-file-other-frame () "In dired, visit this file or directory in another frame." (interactive) - (find-file-other-frame (dired-get-filename))) + (let ((find-file-run-dired t)) + (find-file-other-frame (dired-get-filename)))) (defun dired-display-file () "In dired, displays this file or directory in the other window." (interactive) - (display-buffer (find-file-noselect (dired-get-filename)))) + (let ((find-file-run-dired t)) + (display-buffer (find-file-noselect (dired-get-filename))))) ;; After an idea by wurgler@zippysun.math.uakron.edu (Tom Wurgler). (defun dired-do-find-file (&optional arg) @@ -2876,7 +2880,8 @@ ;; The upper window will have SIZE lines. We select the lower ;; (larger) window because we want to split that again. (select-window (split-window nil size)) - (find-file (car file-list)) + (let ((find-file-run-dired t)) + (find-file (car file-list))) (setq file-list (cdr file-list))))) (defun dired-create-directory (directory) @@ -3045,14 +3050,14 @@ (defun dired-file-name-sans-rcs-extension (fn) "Returns the file name FN without its RCS extension \",v\"." (setq fn (file-name-nondirectory fn)) - (if (string-match ",v$" fn 1) + (if (string-match ",v\\'" fn 1) (substring fn 0 (match-beginning 0)) fn)) (defun dired-file-name-sans-compress-extension (fn) "Returns the file name FN without the extension from compress or gzip." (setq fn (file-name-nondirectory fn)) - (if (string-match "\\.\\([zZ]\\|gz\\)$" fn 1) + (if (string-match "\\.\\([zZ]\\|gz\\)\\'" fn 1) (substring fn (match-beginning 0)) fn)) @@ -4214,7 +4219,7 @@ "RCS") ;; skip inserted RCS subdirs (setq rcs-files - (append (directory-files dir t ",v$") ; *,v and RCS/*,v + (append (directory-files dir t ",v\\'") ; *,v and RCS/*,v (let ((rcs-dir (expand-file-name "RCS" dir))) (if (file-directory-p rcs-dir) (mapcar ; working files from ./RCS are in ./ @@ -4223,7 +4228,7 @@ (expand-file-name x dir))) (directory-files (file-name-as-directory rcs-dir) - nil ",v$")))) + nil ",v\\'")))) rcs-files))))) (mapcar (function car) dired-subdir-alist)) (setq total (length rcs-files)) @@ -5429,7 +5434,7 @@ (setq rgxp (concat ".\\(" (mapconcat 'regexp-quote dired-omit-extensions "\\|") - "\\)$"))) + "\\)\\'"))) (if dired-omit-regexps (setq rgxp (concat
--- a/lisp/prim/about.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/prim/about.el Mon Aug 13 08:56:41 2007 +0200 @@ -80,7 +80,7 @@ (view-mode nil 'kill-buffer) ;; assume the new view-less (let* ((buffer-read-only nil) (emacs-short-version (concat emacs-major-version "." emacs-minor-version)) - (emacs-about-version (format "version %s; August 1997" emacs-short-version)) + (emacs-about-version (format "version %s; September 1997" emacs-short-version)) (indent-tabs-mode t) ) (erase-buffer)
--- a/lisp/prim/loadup.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/prim/loadup.el Mon Aug 13 08:56:41 2007 +0200 @@ -65,6 +65,18 @@ (setq load-warn-when-source-newer t ; set to nil at the end load-warn-when-source-only t) + ;; Inserted for debugging. Something is corrupting a single symbol + ;; somewhere to have an integer 0 property list. -slb 6/28/1997. + (defun test-atoms () + (mapatoms + #'(lambda (symbol) + (condition-case nil + (get symbol 'custom-group) + (t (princ + (format "Bad plist in %s, %s\n" + (symbol-name symbol) + (prin1-to-string (object-plist symbol))))))))) + ;; garbage collect after loading every file in an attempt to ;; minimize the size of the dumped image (if we don't do this, ;; there will be lots of extra space in the data segment filled
--- a/lisp/psgml/psgml.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/psgml/psgml.el Mon Aug 13 08:56:41 2007 +0200 @@ -1,5 +1,5 @@ ;;; psgml.el --- SGML-editing mode with parsing support -;; $Id: psgml.el,v 1.4 1997/03/09 02:37:46 steve Exp $ +;; $Id: psgml.el,v 1.5 1997/08/30 02:40:00 steve Exp $ ;; Copyright (C) 1993, 1994, 1995, 1996 Lennart Staflin ;; Copyright (C) 1992 Free Software Foundation, Inc. @@ -317,7 +317,7 @@ ;; Wing change (concat "%S:" (directory-file-name sgml-data-directory) - "%o/%c/%d"))) + "/%o/%c/%d"))) "*Mapping from public identifiers to file names. This is a list of possible file names. To find the file for a public
--- a/lisp/rmail/rmail.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/rmail/rmail.el Mon Aug 13 08:56:41 2007 +0200 @@ -763,6 +763,7 @@ ;; #### BOGUS! Run a hook here instead and let time.el do it. (and (boundp 'display-time-string) display-time-string + (stringp display-time-string) (string-match " Mail" display-time-string) (setq display-time-string (concat
--- a/lisp/utils/finder-inf.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/utils/finder-inf.el Mon Aug 13 08:56:41 2007 +0200 @@ -10,6 +10,34 @@ "define pathnames for use by various Emacs commands." (internal) "lisp/") + ("site-load.el" + "Template file for site-wide XEmacs customization" + (internal) + "lisp/") + ("font-latex.el" + "LaTeX fontification for Font Lock mode." + (latex faces) + "lisp/auctex/") + ("latex.el" + "Support for LaTeX documents." + (wp) + "lisp/auctex/") + ("multi-prompt.el" + "completing read of multiple strings." + (extensions) + "lisp/auctex/") + ("tex.el" + "Support for TeX documents." + (wp) + "lisp/auctex/") + ("byte-optimize.el" + "the optimization passes of the emacs-lisp byte compiler." + (internal) + "lisp/bytecomp/") + ("bytecomp-runtime.el" + "byte-compiler support for inlining" + (internal) + "lisp/bytecomp/") ("bytecomp.el" "compilation of Lisp code into byte code." (internal) @@ -43,7 +71,7 @@ (calendar) "lisp/calendar/") ("calendar.el" - "Calendar functions." + "Calendar functions. -*-byte-compile-dynamic: t;-*-" (calendar) "lisp/calendar/") ("diary-ins.el" @@ -66,10 +94,38 @@ "calendar functions for solar events." (calendar) "lisp/calendar/") + ("cl-autoload.el" + "Generate the autoload file cl-defs.el." + (extensions lisp) + "lisp/cl/") + ("cl-compat.el" + "Common Lisp extensions for GNU Emacs Lisp (compatibility)" + (extensions) + "lisp/cl/") + ("cl-extra.el" + "Common Lisp extensions for GNU Emacs Lisp (part two)" + (extensions) + "lisp/cl/") + ("cl-macs.el" + "Common Lisp extensions for GNU Emacs Lisp (part four)" + (extensions) + "lisp/cl/") + ("cl-seq.el" + "Common Lisp extensions for GNU Emacs Lisp (part three)" + (extensions) + "lisp/cl/") + ("cl.el" + "Common Lisp extensions for GNU Emacs Lisp" + (extensions lisp) + "lisp/cl/") ("background.el" "fun with background jobs" (processes) "lisp/comint/") + ("comint-xemacs.el" + "Face customizations for comint" + (help faces) + "lisp/comint/") ("comint.el" "general command interpreter in a window stuff" (processes) @@ -82,17 +138,25 @@ "run gdb under Emacs" (c unix tools debugging) "lisp/comint/") + ("gdbsrc.el" + "Source-based (as opposed to comint-based) debugger" + (c unix tools debugging) + "lisp/comint/") ("gud.el" "Grand Unified Debugger mode for gdb, sdb, dbx, or xdb" (c unix tools debugging) "lisp/comint/") + ("history.el" + "Generic history stuff" + nil + "lisp/comint/") ("inf-lisp.el" "an inferior-lisp mode" (processes lisp) "lisp/comint/") ("kermit.el" "additions to shell mode for use with kermit, etc." - (comm processes) + (comm) "lisp/comint/") ("rlogin.el" "remote login interface" @@ -106,34 +170,62 @@ "run a telnet session from within an Emacs buffer" (comm unix) "lisp/comint/") - ("ange-ftp.el" - "transparent FTP support for GNU Emacs" - (comm) - "lisp/dired/") - ("dired-link.el" - "Properly resolves UNIX (and Apollo variant) links under dired." - nil - "lisp/dired/") - ("dired-x.el" - "Sebastian Kremer's Extra DIRED hacked up for GNU Emacs19" - (dired extensions) - "lisp/dired/") - ("dired.el" - "directory-browsing commands" - (dired extensions) - "lisp/dired/") + ("cus-edit.el" + "Tools for customization Emacs." + (help faces) + "lisp/custom/") + ("cus-face.el" + "XEmacs specific custom support." + (help faces) + "lisp/custom/") + ("custom.el" + "Tools for declaring and initializing options." + (help faces) + "lisp/custom/") + ("wid-browse.el" + "Functions for browsing widgets." + (extensions) + "lisp/custom/") + ("wid-edit.el" + "Functions for creating and using widgets." + (extensions) + "lisp/custom/") + ("widget-example.el" + "example of using the widget library" + (help extensions faces hypermedia) + "lisp/custom/") + ("widget.el" + "a library of user interface components." + (help extensions faces hypermedia) + "lisp/custom/") + ("advise-eval-region.el" + "Wrap advice around eval-region" + (extensions lisp) + "lisp/edebug/") ("cust-print.el" "handles print-level and print-circle." (extensions) "lisp/edebug/") + ("edebug-cl-read.el" + "Edebug reader macros for use with cl-read." + (lisp tools maint) + "lisp/edebug/") ("edebug.el" "a source-level debugger for Emacs Lisp" - (lisp tools debugging) + (lisp tools maint) + "lisp/edebug/") + ("eval-reg.el" + "Redefine eval-region, and subrs that use it, in Lisp" + (lisp) "lisp/edebug/") ("ediff-diff.el" "diff-related utilities" nil "lisp/ediff/") + ("ediff-help.el" + "Code related to the contents of Ediff help buffers" + nil + "lisp/ediff/") ("ediff-hook.el" "setup for Ediff's menus and autoloads" nil @@ -146,14 +238,26 @@ "merging utilities" nil "lisp/ediff/") - ("ediff-meta.el" + ("ediff-mult.el" "support for multi-file/multi-buffer processing in Ediff" nil "lisp/ediff/") + ("ediff-ptch.el" + "Ediff's patch support" + nil + "lisp/ediff/") + ("ediff-tbar.el" + "A toolbar for Ediff control buffer" + nil + "lisp/ediff/") ("ediff-util.el" "the core commands and utilities of ediff" nil "lisp/ediff/") + ("ediff-vers.el" + "version control interface to Ediff" + nil + "lisp/ediff/") ("ediff-wind.el" "window manipulation utilities" nil @@ -164,11 +268,11 @@ "lisp/ediff/") ("ebuff-menu.el" "electric-buffer-list mode" - nil + (frames) "lisp/electric/") ("echistory.el" "Electric Command History Mode" - nil + (extensions) "lisp/electric/") ("ehelp.el" "bindings for electric-help mode" @@ -182,12 +286,28 @@ "utility help package supporting help in electric modes" (help) "lisp/electric/") - ("edt.el" - "EDT emulation in Emacs" + ("crisp.el" + "CRiSP/Brief Emacs emulator" + (emulations brief crisp) + "lisp/emulators/") + ("edt-lk201.el" + "Enhanced EDT Keypad Mode Emulation for LK-201 Keyboards" (emulations) "lisp/emulators/") - ("gosmacs.el" - "rebindings to imitate Gosmacs." + ("edt-mapper.el" + "Create an EDT LK-201 Map File for X-Windows Emacs" + (emulations) + "lisp/emulators/") + ("edt-pc.el" + "Enhanced EDT Keypad Mode Emulation for PC 101 Keyboards" + (emulations) + "lisp/emulators/") + ("edt-vt100.el" + "Enhanced EDT Keypad Mode Emulation for VT Series Terminals" + (emulations) + "lisp/emulators/") + ("edt.el" + "Enhanced EDT Keypad Mode Emulation for GNU Emacs 19" (emulations) "lisp/emulators/") ("mlconvert.el" @@ -198,9 +318,13 @@ "run-time support for mocklisp code." (extensions) "lisp/emulators/") + ("scroll-lock.el" + "scroll-locking minor mode" + (scroll crisp brief lock) + "lisp/emulators/") ("teco.el" "Teco interpreter for Gnu Emacs, version 1." - nil + (emulators) "lisp/emulators/") ("tpu-doc.el" "Documentation for TPU-edt" @@ -214,9 +338,13 @@ "Scroll margins and free cursor mode for TPU-edt" (emulations) "lisp/emulators/") + ("tpu-mapper.el" + "Create a TPU-edt X-windows keymap file" + (emulations) + "lisp/emulators/") ("ws-mode.el" "WordStar emulation mode for GNU Emacs" - nil + (emulations) "lisp/emulators/") ("eos.el" "Intereactively loads the XEmacs/SPARCworks interface" @@ -262,18 +390,34 @@ "Intereactively loads the XEmacs/SPARCworks interface" (sparcworks eos era on sparcworks load) "lisp/eos/") + ("term.el" + "general command interpreter in a window stuff" + nil + "lisp/eterm/") ("tshell.el" "specialized term.el for running the shell." (processes) "lisp/eterm/") + ("NeXTify.el" + "Character insertion variation" + (games) + "lisp/games/") ("blackbox.el" "blackbox game in Emacs Lisp" (games) "lisp/games/") + ("conx.el" + "Yet another dissociater" + (games) + "lisp/games/") ("cookie1.el" "retrieve random phrases from fortune cookie files" (games) "lisp/games/") + ("decipher.el" + "Cryptanalyze monoalphabetic substitution ciphers" + (games) + "lisp/games/") ("dissociate.el" "scramble text amusingly for Emacs." (games) @@ -286,6 +430,10 @@ "Text adventure for Emacs" (games) "lisp/games/") + ("flame.el" + "Automated insults" + (games) + "lisp/games/") ("gomoku.el" "Gomoku game between you and Emacs" (games) @@ -298,8 +446,12 @@ "John Horton Conway's `Life' game for GNU Emacs" (games) "lisp/games/") + ("mine.el" + "Mine game for GNU Emacs" + (games) + "lisp/games/") ("mpuz.el" - "multiplication puzzle for GNU Emacs" + "multiplication puzzle for XEmacs" (games) "lisp/games/") ("spook.el" @@ -314,318 +466,318 @@ "quote random zippyisms" (games) "lisp/games/") - ("chat.el" - "a method for talking to asynchronous processes." + ("dgnushack.el" + "a hack to set the load path for byte-compiling" + (news path) + "lisp/gnus/") + ("earcon.el" + "Sound effects for messages" + (news fun sound) + "lisp/gnus/") + ("gnus-art.el" + "article mode commands for Gnus" + (news) + "lisp/gnus/") + ("gnus-async.el" + "asynchronous support for Gnus" + (news) + "lisp/gnus/") + ("gnus-audio.el" + "Sound effects for Gnus" + (news) + "lisp/gnus/") + ("gnus-bcklg.el" + "backlog functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-cache.el" + "cache interface for Gnus" + (news) + "lisp/gnus/") + ("gnus-cite.el" + "parse citations in articles for Gnus" + (news mail) + "lisp/gnus/") + ("gnus-cus.el" + "customization commands for Gnus" + (news) + "lisp/gnus/") + ("gnus-demon.el" + "daemonic Gnus behaviour" + (news) + "lisp/gnus/") + ("gnus-dup.el" + "suppression of duplicate articles in Gnus" + (news) + "lisp/gnus/") + ("gnus-eform.el" + "a mode for editing forms for Gnus" + (news) + "lisp/gnus/") + ("gnus-ems.el" + "functions for making Gnus work under different Emacsen" + (news) + "lisp/gnus/") + ("gnus-gl.el" + "an interface to GroupLens for Gnus" + (news score) + "lisp/gnus/") + ("gnus-group.el" + "group mode commands for Gnus" + (news) + "lisp/gnus/") + ("gnus-int.el" + "backend interface functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-kill.el" + "kill commands for Gnus" + (news) + "lisp/gnus/") + ("gnus-load.el" + "automatically extracted custom dependencies" nil "lisp/gnus/") - ("gnus-virt.el" - "framework for \"virtual\" newsgroups" + ("gnus-logic.el" + "advanced scoring code for Gnus" + (news) + "lisp/gnus/") + ("gnus-mh.el" + "mh-e interface for Gnus" + (news) + "lisp/gnus/") + ("gnus-move.el" + "commands for moving Gnus from one server to another" + (news) + "lisp/gnus/") + ("gnus-msg.el" + "mail and post interface for Gnus" + (news) + "lisp/gnus/") + ("gnus-nocem.el" + "NoCeM pseudo-cancellation treatment" + (news) + "lisp/gnus/") + ("gnus-picon.el" + "displaying pretty icons in Gnus" + (news xpm annotation glyph faces) + "lisp/gnus/") + ("gnus-range.el" + "range and sequence functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-salt.el" + "alternate summary mode interfaces for Gnus" nil "lisp/gnus/") - ("gnusmail.el" - "mail reply commands for GNUS newsreader" + ("gnus-score.el" + "scoring code for Gnus" + (news) + "lisp/gnus/") + ("gnus-setup.el" + "Initialization & Setup for Gnus 5" + (news) + "lisp/gnus/") + ("gnus-soup.el" + "SOUP packet writing support for Gnus" + (news mail) + "lisp/gnus/") + ("gnus-spec.el" + "format spec functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-srvr.el" + "virtual server support for Gnus" (news) "lisp/gnus/") - ("gnusmisc.el" - "miscellaneous commands for GNUS newsreader" + ("gnus-start.el" + "startup functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-sum.el" + "summary mode commands for Gnus" + (news) + "lisp/gnus/") + ("gnus-topic.el" + "a folding minor mode for Gnus group buffers" + (news) + "lisp/gnus/") + ("gnus-undo.el" + "minor mode for undoing in Gnus" + (news) + "lisp/gnus/") + ("gnus-util.el" + "utility functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-uu.el" + "extract (uu)encoded files in Gnus" + nil + "lisp/gnus/") + ("gnus-vm.el" + "vm interface for Gnus" + (news mail) + "lisp/gnus/") + ("gnus-win.el" + "window configuration functions for Gnus" + (news) + "lisp/gnus/") + ("gnus-xmas.el" + "Gnus functions for XEmacs" (news) "lisp/gnus/") - ("gnuspost.el" - "post news commands for GNUS newsreader" + ("gnus.el" + "a newsreader for GNU Emacs" + (news mail) + "lisp/gnus/") + ("mailheader.el" + "Mail header parsing, merging, formatting" + (tools mail news) + "lisp/gnus/") + ("md5.el" + "MD5 Message Digest Algorithm" + nil + "lisp/gnus/") + ("message.el" + "composing mail and news messages" + (mail news) + "lisp/gnus/") + ("messagexmas.el" + "XEmacs extensions to message" + (mail news) + "lisp/gnus/") + ("messcompat.el" + "making message mode compatible with mail mode" + (mail news) + "lisp/gnus/") + ("nnbabyl.el" + "rmail mbox access for Gnus" + (news mail) + "lisp/gnus/") + ("nndb.el" + "nndb access for Gnus" + (news) + "lisp/gnus/") + ("nndir.el" + "single directory newsgroup access for Gnus" + (news) + "lisp/gnus/") + ("nndoc.el" + "single file access for Gnus" + (news) + "lisp/gnus/") + ("nndraft.el" + "draft article access for Gnus" (news) "lisp/gnus/") - ("mhspool.el" - "MH folder access using NNTP for GNU Emacs" - (mail news) + ("nneething.el" + "random file access for Gnus" + (news mail) + "lisp/gnus/") + ("nnfolder.el" + "mail folder access for Gnus" + (mail) + "lisp/gnus/") + ("nngateway.el" + "posting news via mail gateways" + (news mail) + "lisp/gnus/") + ("nnheader.el" + "header access macros for Gnus and its backends" + (news) + "lisp/gnus/") + ("nnheaderxm.el" + "making Gnus backends work under XEmacs" + (news) + "lisp/gnus/") + ("nnkiboze.el" + "select virtual news access for Gnus" + (news) + "lisp/gnus/") + ("nnmail.el" + "mail support functions for the Gnus mail backends" + (news mail) + "lisp/gnus/") + ("nnmbox.el" + "mail mbox access for Gnus" + (news mail) + "lisp/gnus/") + ("nnmh.el" + "mhspool access for Gnus" + (news mail) + "lisp/gnus/") + ("nnml.el" + "mail spool access for Gnus" + (news mail) + "lisp/gnus/") + ("nnoo.el" + "OO Gnus Backends" + (news) + "lisp/gnus/") + ("nnsoup.el" + "SOUP access for Gnus" + (news mail) "lisp/gnus/") ("nnspool.el" - "spool access using NNTP for GNU Emacs" + "spool access for GNU Emacs" (news) "lisp/gnus/") ("nntp.el" - "GNUS interface to NNTP servers" - nil + "nntp access for Gnus" + (news) "lisp/gnus/") - ("old-nntp.el" - "NNTP (RFC977) Interface for GNU Emacs" + ("nnvirtual.el" + "virtual newsgroups access for Gnus" + (news) + "lisp/gnus/") + ("nnweb.el" + "retrieving articles via web search engines" (news) "lisp/gnus/") - ("html-mode.el" - "Major mode for editing HTML hypertext documents for the WWW" + ("parse-time.el" + "Parsing time strings" + (util) + "lisp/gnus/") + ("pop3.el" + "Post Office Protocol (RFC 1460) interface" + (mail pop3) + "lisp/gnus/") + ("score-mode.el" + "mode for editing Gnus score files" + (news mail) + "lisp/gnus/") + ("smiley.el" + "displaying smiley faces" + (fun) + "lisp/gnus/") + ("hm--html-menu.el" + "A menu for the hm--html-mode." + nil + "lisp/hm--html-menus/") + ("hm--html-mode.el" + "Major mode for editing HTML documents for the WWW" (hypermedia languages help docs wp) "lisp/hm--html-menus/") ("html-view.el" "routines for communicating with a NCSA Mosaic process" - nil + (comm unix wp help) "lisp/hm--html-menus/") ("tmpl-minor-mode.el" "Template Minor Mode" - nil + (data tools) "lisp/hm--html-menus/") - ("hact.el" - "Hyperbole button action handling." - (hypermedia) - "lisp/hyperbole/") - ("hactypes.el" - "Default action types for Hyperbole." - (extensions hypermedia) - "lisp/hyperbole/") - ("hargs.el" - "Obtains user input through Emacs for Hyperbole" - (extensions hypermedia) - "lisp/hyperbole/") - ("hbdata.el" - "Hyperbole button attribute accessor methods." - (hypermedia) - "lisp/hyperbole/") - ("hbmap.el" - "Hyperbole button map maintenance for queries and lookups." - (hypermedia matching) - "lisp/hyperbole/") - ("hbut.el" - "Hyperbole button constructs." - (extensions hypermedia) - "lisp/hyperbole/") - ("hgnus.el" - "Support Hyperbole buttons in news reader/poster: GNUS." - (hypermedia news) - "lisp/hyperbole/") - ("hhist.el" - "Maintains history of Hyperbole buttons selected." - (hypermedia) - "lisp/hyperbole/") - ("hib-doc-id.el" - "Implicit button type for document id index entries." - (docs extensions hypermedia) - "lisp/hyperbole/") - ("hib-kbd.el" - "Implicit button type for key sequences delimited with {}." - (extensions hypermedia) - "lisp/hyperbole/") - ("hibtypes.el" - "Hyperbole System Implicit Button Types." - (extensions hypermedia) - "lisp/hyperbole/") - ("hinit.el" - "Standard initializations for Hyperbole hypertext system." - (hypermedia) - "lisp/hyperbole/") - ("hlvar.el" - "Permits use of Hyperbole variables in local variable lists." - (extensions hypermedia) - "lisp/hyperbole/") - ("hmail.el" - "Support for Hyperbole buttons embedded in e-mail messages." - (hypermedia mail) - "lisp/hyperbole/") - ("hmh.el" - "Support for Hyperbole buttons in mail reader: Mh." - (hypermedia mail) - "lisp/hyperbole/") - ("hmoccur.el" - "Multi-buffer or multi-file regexp occurrence location." - (hypermedia matching) - "lisp/hyperbole/") - ("hmous-info.el" - "Walks through Info networks using one key." - (docs help hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-drv.el" - "Smart Key/Mouse driver functions." - (hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-key.el" - "Load \"hmouse-sh.el\" or \"hmouse-reg.el\" for Smart Key bindings." - (hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-mod.el" - "Action Key acts as CONTROL modifier and Assist Key as META modifier." - (hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-reg.el" - "System-dependent Smart Mouse Key bindings (no shift key)." - (hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-sh.el" - "System-dependent Smart Mouse Key bindings (using shift key)." - (hypermedia mouse) - "lisp/hyperbole/") - ("hmouse-tag.el" - "Smart Key support of programming language tags location." - (c hypermedia mouse oop tools) - "lisp/hyperbole/") - ("hpath.el" - "Hyperbole support routines for handling UNIX paths. " - (comm hypermedia unix) - "lisp/hyperbole/") - ("hrmail.el" - "Support for Hyperbole buttons in mail reader: Rmail." - (hypermedia mail) - "lisp/hyperbole/") - ("hsite-ex.el" - "Site-specific setup for Hyperbole" - (hypermedia local) - "lisp/hyperbole/") - ("hsite.el" - "Site-specific setup for Hyperbole" - (hypermedia local) - "lisp/hyperbole/") - ("hsmail.el" - "Support for Hyperbole buttons in mail composer: mail and mh-letter." - (hypermedia mail) - "lisp/hyperbole/") - ("hsys-hbase.el" - "Hyperbole support for the Hyperbase system." - (comm hypermedia) - "lisp/hyperbole/") - ("hsys-w3.el" - "Hyperbole support for Emacs W3 World-Wide Web (WWW) browsing." - (comm help hypermedia) - "lisp/hyperbole/") - ("hsys-wais.el" - "Hyperbole support for WAIS browsing." - (comm help hypermedia) - "lisp/hyperbole/") - ("hsys-www.el" - "Hyperbole support for old CERN command line WWW browsing." - (comm help hypermedia) - "lisp/hyperbole/") - ("htz.el" - "Timezone-based time and date support for Hyperbole." - (calendar hypermedia) - "lisp/hyperbole/") - ("hui-em19-b.el" - "GNU Emacs V19 button highlighting and flashing support." - (faces hypermedia) - "lisp/hyperbole/") - ("hui-ep-but.el" - "Support for highlighting/flashing buttons under Epoch." - (faces hypermedia) - "lisp/hyperbole/") - ("hui-epV4-b.el" - "Support color and flashing of hyper-buttons under Epoch V4" - (faces hypermedia) - "lisp/hyperbole/") - ("hui-menu.el" - "InfoDock/Emacs menubar menu of Hyperbole commands." - (hypermedia mouse) - "lisp/hyperbole/") - ("hui-menus.el" - "One line command menus for Hyperbole" - (hypermedia mouse) - "lisp/hyperbole/") - ("hui-mouse.el" - "Use key or mouse key for many functions, e.g. Hypb menus." - (hypermedia mouse) - "lisp/hyperbole/") - ("hui-window.el" - "Smart Mouse Key window and modeline depress/release actions." - (hypermedia mouse) - "lisp/hyperbole/") - ("hui-xe-but.el" - "XEmacs button highlighting and flashing support." - (faces hypermedia) - "lisp/hyperbole/") - ("hui.el" - "GNU Emacs User Interface to Hyperbole" - (hypermedia) - "lisp/hyperbole/") - ("hvar.el" - "Variable manipulation routines for Hyperbole." - (extensions hypermedia) - "lisp/hyperbole/") - ("hversion.el" - "Hyperbole version, system and load path information." - (hypermedia) - "lisp/hyperbole/") - ("hvm.el" - "Support Hyperbole buttons in mail reader: Vm." - (hypermedia mail) - "lisp/hyperbole/") - ("hypb.el" - "Miscellaneous Hyperbole support features." - (extensions hypermedia) - "lisp/hyperbole/") - ("hyperbole.el" - "Sets up Hyperbole for autoloading and use." - (hypermedia) - "lisp/hyperbole/") - ("set.el" - "Provide general mathematical operators on unordered sets." - (extensions tools) - "lisp/hyperbole/") - ("wconfig.el" - "Saves and yanks from save ring of window configurations." - (frames hypermedia) - "lisp/hyperbole/") - ("wrolo-logic.el" - "Performs logical retrievals on rolodex files" - (hypermedia matching) - "lisp/hyperbole/") - ("wrolo-menu.el" - "Pulldown and popup menus of Hyperbole rolodex commands." - (hypermedia matching mouse) - "lisp/hyperbole/") - ("wrolo.el" - "Hierarchical, multi-file, easy to use rolodex system" - (hypermedia matching) - "lisp/hyperbole/") - ("kfile.el" - "Save and restore kotls from files." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kfill.el" - "Fill and justify koutline cells (adapted from Kyle Jones' filladapt)." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kimport.el" - "Convert and insert other outline file formats into koutlines." - (data outlines wp) - "lisp/hyperbole/kotl/") - ("klabel.el" - "Display label handling for koutlines." - (outlines wp) - "lisp/hyperbole/kotl/") - ("klink.el" - "Implicit reference to a kcell action type, for use in koutlines." - (extensions hypermedia outlines wp) - "lisp/hyperbole/kotl/") - ("kmenu.el" - "Pulldown and popup menus for kotl-mode, the Hyperbole Outliner." - (mouse outlines wp) - "lisp/hyperbole/kotl/") - ("knode.el" - "Generic nodes for use as elements in data structures." - (extensions hypermedia outlines) - "lisp/hyperbole/kotl/") - ("kotl-mode.el" - "Major mode for editing koutlines and associated commands." - (data hypermedia outlines wp) - "lisp/hyperbole/kotl/") - ("kotl.el" - "Internal representation of outline kcells used by kviews." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kprop-em19.el" - "Koutline text property handling under Emacs 19." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kprop-xe.el" - "Koutline text property handling under XEmacs." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kproperty.el" - "Wrapper for koutline text property implementations." - (outlines wp) - "lisp/hyperbole/kotl/") - ("kview.el" - "Display handling of koutlines." - (outlines wp) - "lisp/hyperbole/kotl/") + ("iso-acc.el" + "minor mode providing electric accent keys" + (i18n) + "lisp/iso/") ("iso-ascii.el" "set up char tables for ISO 8859/1 on ASCII terminals." (i18n) "lisp/iso/") + ("iso-cvt.el" + "translate to ISO 8859-1 from/to net/TeX conventions" + (tex iso latin i18n) + "lisp/iso/") ("iso-insert.el" "insert functions for ISO 8859/1." (i18n) @@ -642,6 +794,10 @@ "miscellaneous functions for dealing with Swedish." (i18n) "lisp/iso/") + ("mc-remail.el" + "Remailer support for Mailcrypt" + nil + "lisp/mailcrypt/") ("mh-comp.el" "mh-e functions for composing messages" nil @@ -672,11 +828,11 @@ "lisp/mh-e/") ("abbrev.el" "abbrev mode commands for Emacs" - (internal abbrev) + (abbrev) "lisp/modes/") - ("ada.el" - "Ada editing support package in GNUlisp. v1.0" - (languages) + ("ada-mode.el" + "An Emacs major-mode for editing Ada source." + nil "lisp/modes/") ("arc-mode.el" "simple editing of archives" @@ -686,13 +842,17 @@ "mode for editing assembler code" (tools languages) "lisp/modes/") + ("auto-show.el" + "perform automatic horizontal scrolling as point moves" + (scroll display minor-mode) + "lisp/modes/") ("awk-mode.el" "AWK code editing commands for Emacs" (unix languages) "lisp/modes/") ("bib-mode.el" "bib-mode, major mode for editing bib files." - (bib wp) + (bib) "lisp/modes/") ("bibtex.el" "BibTeX mode for GNU Emacs" @@ -702,6 +862,10 @@ "edit C comments" (c) "lisp/modes/") + ("c-style.el" + "sets c-style control variables." + nil + "lisp/modes/") ("cc-compat.el" "cc-mode compatibility with c-mode.el confusion" (c languages oop) @@ -715,13 +879,33 @@ (c languages oop) "lisp/modes/") ("cc-mode.el" - "major mode for editing C, C++, and Objective-C code" + "major mode for editing C, C++, Objective-C, and Java code" (c languages oop) "lisp/modes/") + ("cl-indent.el" + "enhanced lisp-indent mode" + (lisp tools) + "lisp/modes/") ("cmacexp.el" "expand C macros in a region" (c) "lisp/modes/") + ("enriched.el" + "read and save files in text/enriched format" + (wp faces) + "lisp/modes/") + ("executable.el" + "base functionality for executable interpreter scripts" + (languages unix) + "lisp/modes/") + ("f90.el" + "Fortran-90 mode (free format)" + (fortran f90 languages) + "lisp/modes/") + ("follow.el" + "Minor mode, Synchronize windows showing the same buffer." + (display window minor-mode) + "lisp/modes/") ("fortran-misc.el" "Routines than can be used with fortran mode." (languages) @@ -732,16 +916,24 @@ "lisp/modes/") ("hideif.el" "hides selected code within ifdef." - (c) + (c outlines) "lisp/modes/") ("hideshow.el" "minor mode cmds to selectively display blocks of code" - nil + (c c++ lisp tools editing) "lisp/modes/") ("icon.el" "mode for editing Icon code" (languages) "lisp/modes/") + ("imenu.el" + "Framework for mode-specific buffer indexes." + (tools) + "lisp/modes/") + ("ksh-mode.el" + "sh (ksh, bash) script editing mode for GNU Emacs." + (shell korn bourne sh ksh bash) + "lisp/modes/") ("lisp-mnt.el" "minor mode for Emacs Lisp maintainers" (docs) @@ -750,18 +942,14 @@ "Lisp mode, and its idiosyncratic commands." (lisp languages) "lisp/modes/") - ("makefile.el" + ("m4-mode.el" + "m4 code editing commands for Emacs" + (languages faces) + "lisp/modes/") + ("make-mode.el" "makefile editing commands for Emacs" (unix tools) "lisp/modes/") - ("mim-mode.el" - "Mim (MDL in MDL) mode." - (languages) - "lisp/modes/") - ("mim-syntax.el" - "syntax checker for Mim (MDL)." - (languages) - "lisp/modes/") ("modula2.el" "Modula-2 editing support package" (languages) @@ -802,13 +990,17 @@ "major mode for editing and running Prolog under Emacs" (languages) "lisp/modes/") + ("python-mode.el" + "Major mode for editing Python programs" + (python languages oop) + "lisp/modes/") ("rexx-mode.el" "major mode for editing REXX program files" (languages) "lisp/modes/") ("rsz-minibuf.el" "dynamically resize minibuffer to display entire contents" - nil + (minibuffer window frames display) "lisp/modes/") ("scheme.el" "Scheme mode, and its idiosyncratic commands." @@ -822,18 +1014,26 @@ "mail sending commands for Emacs." (mail) "lisp/modes/") - ("sgml-mode.el" - "SGML-editing mode" - (wp) + ("sh-script.el" + "shell-script editing commands for Emacs" + (languages unix) "lisp/modes/") ("simula.el" "SIMULA 87 code editing commands for Emacs" (languages) "lisp/modes/") + ("tcl.el" + "Tcl code editing commands for Emacs" + (languages tcl modes) + "lisp/modes/") ("tex-mode.el" "TeX, LaTeX, and SliTeX mode commands." nil "lisp/modes/") + ("texinfo.el" + "major mode for editing Texinfo files" + (tex wp) + "lisp/modes/") ("text-mode.el" "text mode, and its idiosyncratic commands." nil @@ -842,170 +1042,90 @@ "minor mode for editing of two-column text" nil "lisp/modes/") + ("verilog-mode.el" + "major mode for editing verilog source in Emacs" + (languages) + "lisp/modes/") + ("vhdl-mode.el" + "major mode for editing VHDL code" + (languages vhdl) + "lisp/modes/") ("view-less.el" "Minor mode for browsing files with keybindings like `less'" - nil + (wp unix) "lisp/modes/") ("view.el" "peruse file or buffer without editing." (wp unix) "lisp/modes/") - ("br-c++-ft.el" - "C++ OO-Browser class and member functions." - (c oop tools) - "lisp/oobr/") - ("br-c++.el" - "Support routines for C++ inheritance browsing." - (c oop tools) - "lisp/oobr/") - ("br-c-ft.el" - "OO-Browser C construct handling." - (c tools) - "lisp/oobr/") - ("br-clos-ft.el" - "CLOS OO-Browser class and element functions." - (lisp oop tools) - "lisp/oobr/") - ("br-clos.el" - "Support routines for CLOS inheritance browsing." - (lisp oop tools) - "lisp/oobr/") - ("br-compl.el" - "Most functions for performing completion on OO constructs." - (matching oop tools) - "lisp/oobr/") - ("br-eif-ft.el" - "Eiffel OO-Browser class and feature functions." - (oop tools) - "lisp/oobr/") - ("br-eif.el" - "Support routines for Eiffel inheritance browsing and error parsing." - (oop tools) - "lisp/oobr/") - ("br-env.el" - "OO-Browser Environment support functions." - (oop tools) - "lisp/oobr/") - ("br-ftr.el" - "OO-Browser feature browsing support." - (oop tools) - "lisp/oobr/") - ("br-info.el" - "Support routines for Info file hierarchy browsing." - (docs help hypermedia) - "lisp/oobr/") - ("br-init.el" - "OO-Browser per Emacs session initialization." - (oop tools) - "lisp/oobr/") - ("br-lib.el" - "OO-Browser support functions." - (oop tools) - "lisp/oobr/") - ("br-menu.el" - "Pulldown and popup menus for the OO-Browser." - (mouse oop tools) - "lisp/oobr/") - ("br-objc-ft.el" - "Objective-C OO-Browser class and feature functions." - (c oop tools) - "lisp/oobr/") - ("br-objc.el" - "Support routines for Objective-C inheritance browsing." - (c oop tools) - "lisp/oobr/") - ("br-site.el" - "Site OO-Browser per Emacs session initialization." - (local oop tools) - "lisp/oobr/") - ("br-smt.el" - "Support routines for Smalltalk inheritance browsing and error parsing." - (oop tools) - "lisp/oobr/") - ("br-start.el" - "Select language and invoke OO-Browser." - (oop tools) - "lisp/oobr/") - ("br-tree.el" - "Interface between textual and graphical OO-Browsers." - (mouse oop tools) - "lisp/oobr/") - ("br-vers.el" - "OO-Browser revision number as 'br-version' variable." - (oop tools) - "lisp/oobr/") - ("br.el" - "Browse object-oriented code." - (matching oop tools) - "lisp/oobr/") - ("c++-browse.el" - "C++ source code browser." - (c oop tools) - "lisp/oobr/") - ("clos-brows.el" - "Common Lisp/CLOS source code browser." - (lisp oop tools) - "lisp/oobr/") - ("eif-browse.el" - "Eiffel source code browser." - (oop tools) - "lisp/oobr/") - ("eif-calls.el" - "Produce first level static call tree for Eiffel class." - (oop tools) - "lisp/oobr/") - ("eif-ise-er.el" - "Parses ISE's Eiffel error messages; compiles Eiffel classes." - (oop tools) - "lisp/oobr/") - ("hash-test.el" - "Interactively test functions from hasht.el." - (extensions maint tools) - "lisp/oobr/") - ("hasht.el" - "Create hash tables from lists and operate on them." - (extensions tools) - "lisp/oobr/") - ("hmouse-br.el" - "Hyperbole Key control for the OO-Browser." - (mouse oop tools) - "lisp/oobr/") - ("info-brows.el" - "Support routines for Info inheritance browsing and error parsing." - (docs help hypermedia) - "lisp/oobr/") - ("objc-brows.el" - "Objective-C source code browser." - (c oop tools) - "lisp/oobr/") - ("smt-browse.el" - "Smalltalk source code browser." - (oop tools) - "lisp/oobr/") + ("vrml-mode.el" + "major mode for editing VRML (.wrl) files" + (languages vrml modes) + "lisp/modes/") + ("whitespace-mode.el" + "minor mode for making whitespace visible" + (modes extensions) + "lisp/modes/") + ("winmgr-mode.el" + "generic window manager mode" + (languages) + "lisp/modes/") + ("xpm-mode.el" + "minor mode for editing XPM files" + (data tools) + "lisp/modes/") + ("xrdb-mode.el" + "mode for editing X resource database files" + (data languages) + "lisp/modes/") + ("mu-bbdb.el" + "`attribution' function for mu-cite with BBDB." + nil + "lisp/mu/") + ("mu-cite.el" + "yet another citation tool for GNU Emacs" + (mail news citation) + "lisp/mu/") + ("std11-parse.el" + "STD 11 parser for GNU Emacs" + (mail news rfc 822 std 11) + "lisp/mu/") + ("std11.el" + "STD 11 functions for GNU Emacs" + (mail news rfc 822 std 11) + "lisp/mu/") + ("ns-init.el" + "runtime initialization for the NeXTstep window system" + (terminals) + "lisp/ns/") ("add-log.el" "change log maintenance commands for Emacs" (maint) "lisp/packages/") ("apropos.el" - "faster apropos commands." + "apropos commands for users and programmers." (help) "lisp/packages/") ("array.el" "array editing commands for XEmacs" (extensions) "lisp/packages/") - ("auto-save.el" - "safer auto saving with support for ange-ftp and /tmp" - nil - "lisp/packages/") ("autoinsert.el" "automatic mode-dependent insertion of text into new files" nil "lisp/packages/") ("avoid.el" - "make mouse pointer stay out of the way of editing." + "make mouse pointer stay out of the way of editing" (mouse) "lisp/packages/") + ("big-menubar.el" + "an alternate menubar" + (mouse menubar) + "lisp/packages/") + ("blink-cursor.el" + "Blink the cursor on or off" + (display) + "lisp/packages/") ("blink-paren.el" "blink the matching paren, just like Zmacs" (faces) @@ -1016,7 +1136,7 @@ "lisp/packages/") ("buff-menu.el" "buffer menu main function and support functions." - nil + (extensions) "lisp/packages/") ("chistory.el" "list command history" @@ -1026,10 +1146,6 @@ "Scheme process in a buffer. Adapted from tea.el." (processes lisp) "lisp/packages/") - ("column.el" - "display line and column in the mode line" - nil - "lisp/packages/") ("compare-w.el" "compare text between windows for Emacs." nil @@ -1046,6 +1162,10 @@ "code for handling all sorts of compressed and encrypted files" (extensions) "lisp/packages/") + ("cu-edit-faces.el" + "interactive face editing mode" + nil + "lisp/packages/") ("dabbrev.el" "dynamic abbreviation package" (abbrev expand completion) @@ -1058,14 +1178,14 @@ "remove Texinfo commands from a Texinfo source file" (tex docs) "lisp/packages/") - ("diff.el" - "Run `diff' in compilation-mode." - (unix tools) - "lisp/packages/") ("doctex.el" "grind GNU Emacs DOC file into LaTeX input" (tex docs) "lisp/packages/") + ("edit-faces.el" + "interactive face editing mode" + nil + "lisp/packages/") ("emacsbug.el" "command to report Emacs bugs to appropriate mailing list." (maint) @@ -1090,14 +1210,18 @@ "treat a section of a buffer as a separate file" (extensions tools) "lisp/packages/") - ("filladapt.el" - "adaptive fill; replacement for fill commands" - (wp) - "lisp/packages/") ("font-lock.el" "decorating source files with fonts/colors based on syntax" (languages faces) "lisp/packages/") + ("fontl-hooks.el" + "pre-loaded stuff for font-lock." + nil + "lisp/packages/") + ("func-menu.el" + "Jump to a function within a buffer." + (tools c lisp) + "lisp/packages/") ("generic-sc.el" "generic interface to source control systems" (tools unix) @@ -1116,6 +1240,10 @@ "lisp/packages/") ("icomplete.el" "minibuffer completion with incremental feedback" + (help abbrev) + "lisp/packages/") + ("igrep.el" + "An improved interface to `grep`." nil "lisp/packages/") ("info.el" @@ -1126,8 +1254,16 @@ "info support functions package for Emacs" (help) "lisp/packages/") + ("ispell.el" + "spell checking using Ispell" + nil + "lisp/packages/") + ("jka-compr.el" + "reading/writing/loading compressed files" + (data) + "lisp/packages/") ("lazy-lock.el" - "Lazy demand-driven fontification for fast font-lock mode." + "Lazy demand-driven fontification for fast Font Lock mode." (faces files) "lisp/packages/") ("ledit.el" @@ -1142,6 +1278,10 @@ "print Emacs buffer on line printer." (unix) "lisp/packages/") + ("makeinfo.el" + "run makeinfo conveniently" + nil + "lisp/packages/") ("makesum.el" "generate key binding summary for Emacs" (help) @@ -1150,14 +1290,14 @@ "browse UNIX manual pages" (help) "lisp/packages/") - ("medit.el" - "front-end to the MEDIT package for editing MDL" - (languages) - "lisp/packages/") ("metamail.el" "Metamail interface for GNU Emacs" (mail news mime multimedia) "lisp/packages/") + ("mic-paren.el" + "highlight matching parenthesises." + (languages faces) + "lisp/packages/") ("mime-compose.el" "mime-compose.el ---" nil @@ -1174,10 +1314,18 @@ "highlight (un)matching parens and whole expressions" (languages faces) "lisp/packages/") + ("pending-del.el" + "Making insertions replace any selected text." + nil + "lisp/packages/") ("ps-print.el" "Jim's Pretty-Good PostScript Generator for Emacs 19." (print postscript) "lisp/packages/") + ("rcompile.el" + "run a compilation on a remote machine" + (tools processes) + "lisp/packages/") ("recent-files.el" "Maintain menu of recently opened files." (menu file) @@ -1190,18 +1338,14 @@ "process command line args from within a suspended Emacs job" (processes) "lisp/packages/") - ("rnews.el" - "USENET news reader for gnu emacs" - (news) - "lisp/packages/") - ("rnewspost.el" - "USENET news poster/mailer for GNU Emacs" - (mail news) - "lisp/packages/") ("saveplace.el" "automatically save place in files." (bookmarks placeholders) "lisp/packages/") + ("sccs.el" + "easy-to-use SCCS control from within Emacs" + nil + "lisp/packages/") ("server.el" "Lisp code for GNU Emacs running as server process." (processes) @@ -1222,13 +1366,21 @@ "terminal emulator for GNU Emacs." (comm terminals) "lisp/packages/") + ("texinfmt.el" + "format Texinfo files into Info files." + nil + "lisp/packages/") + ("texnfo-upd.el" + "utilities for updating nodes and menus in Texinfo files" + (maint tex docs) + "lisp/packages/") ("time-stamp.el" "Maintain last change time stamps in files edited by Emacs" (tools) "lisp/packages/") ("time.el" "display time and load in mode line of Emacs." - (extensions) + nil "lisp/packages/") ("uncompress.el" "auto-decompression hook for visiting .Z files" @@ -1250,26 +1402,50 @@ "drive a version-control system from within Emacs" nil "lisp/packages/") + ("webjump.el" + "programmable Web hotlist" + (webjump web www browse-url) + "lisp/packages/") ("xscheme.el" "run Scheme under Emacs" (languages lisp) "lisp/packages/") + ("dll-debug.el" + "A slow implementation of dll for debugging." + (extensions lisp) + "lisp/pcl-cvs/") ("about.el" "the About The Authors page (shameless self promotion)." nil "lisp/prim/") + ("advocacy.el" + "blatant XEmacs self promotion" + nil + "lisp/prim/") ("backquote.el" "Full backquote support for elisp. Reverse compatible too." (extensions) "lisp/prim/") + ("buffer.el" + "buffer routines taken from C" + nil + "lisp/prim/") ("case-table.el" "code to extend the character set and support case tables." (i18n) "lisp/prim/") + ("cleantree.el" + "Remove out of date .elcs in lisp directories" + (internal) + "lisp/prim/") ("cmdloop.el" "support functions for the top-level command loop." nil "lisp/prim/") + ("console.el" + "miscellaneous console functions not written in C" + (internal) + "lisp/prim/") ("debug.el" "debuggers and related commands for XEmacs" nil @@ -1286,6 +1462,10 @@ "functions to manipulate environment variables." (processes unix) "lisp/prim/") + ("events.el" + "event functions." + (internal) + "lisp/prim/") ("extents.el" "miscellaneous extent functions not written in C" (internal) @@ -1306,6 +1486,10 @@ "detect absence of floating-point support in XEmacs runtime" (internal) "lisp/prim/") + ("format.el" + "read and save files in multiple formats" + (extensions) + "lisp/prim/") ("frame.el" "multi-frame management independent of window systems." (internal) @@ -1314,9 +1498,13 @@ "Lisp interface to C glyphs" (glyphs internal) "lisp/prim/") + ("gui.el" + "Basic GUI functions for XEmacs." + nil + "lisp/prim/") ("help.el" "help commands for XEmacs." - nil + (help internal) "lisp/prim/") ("inc-vers.el" "load this to increment the recorded XEmacs version number." @@ -1326,6 +1514,10 @@ "indentation commands for XEmacs" (lisp languages tools) "lisp/prim/") + ("itimer-autosave.el" + "Autosave functions with itimers" + nil + "lisp/prim/") ("lisp.el" "Lisp editing commands for XEmacs" (lisp languages) @@ -1342,10 +1534,18 @@ "non-primitive commands for keyboard macros." (abbrev) "lisp/prim/") + ("minibuf.el" + "Minibuffer support functions for XEmacs" + (internal) + "lisp/prim/") ("misc.el" "miscellaneous functions for XEmacs" nil "lisp/prim/") + ("modeline.el" + "modeline hackery." + nil + "lisp/prim/") ("mouse.el" "window system-independent mouse support." (hardware) @@ -1366,6 +1566,10 @@ "edit Options command for XEmacs." nil "lisp/prim/") + ("overlay.el" + "overlay support." + (internal) + "lisp/prim/") ("page.el" "page motion commands for emacs." nil @@ -1378,6 +1582,10 @@ "commands for subprocesses; split out of simple.el" nil "lisp/prim/") + ("profile.el" + "basic profiling commands for XEmacs" + nil + "lisp/prim/") ("rect.el" "rectangle functions for XEmacs." (internal) @@ -1418,10 +1626,18 @@ "basic lisp subroutines for XEmacs" nil "lisp/prim/") + ("symbols.el" + "functions for working with symbols and symbol values" + nil + "lisp/prim/") ("tabify.el" "tab conversion commands for XEmacs" nil "lisp/prim/") + ("undo-stack.el" + "An \"undoable stack\" object." + (extensions) + "lisp/prim/") ("userlock.el" "handle file access contention between multiple users" (internal) @@ -1430,6 +1646,58 @@ "XEmacs window commands aside from those written in C." (extensions) "lisp/prim/") + ("iso-sgml.el" + "display SGML entity references as ISO 8859-1 characters" + (sgml html iso latin i18n) + "lisp/psgml/") + ("psgml-api.el" + "Extra API functions for PSGML" + nil + "lisp/psgml/") + ("psgml-dtd.el" + "DTD parser for SGML-editing mode with parsing support" + nil + "lisp/psgml/") + ("psgml-edit.el" + "Editing commands for SGML-mode with parsing support" + nil + "lisp/psgml/") + ("psgml-fs.el" + "Format a SGML-file according to a style file" + nil + "lisp/psgml/") + ("psgml-html.el" + "HTML mode in conjunction with PSGML" + nil + "lisp/psgml/") + ("psgml-other.el" + "Part of SGML-editing mode with parsing support" + nil + "lisp/psgml/") + ("psgml-parse.el" + "Parser for SGML-editing mode with parsing support" + nil + "lisp/psgml/") + ("psgml-xemacs.el" + "Part of SGML-editing mode with parsing support" + nil + "lisp/psgml/") + ("psgml.el" + "SGML-editing mode with parsing support" + (languages) + "lisp/psgml/") + ("tempo.el" + "Flexible template insertion" + (extensions languages tools) + "lisp/psgml/") + ("rmail-kill.el" + "Mail filtering for rmail" + (mail) + "lisp/rmail/") + ("rmail-xemacs.el" + "Mouse and font support for RMAIL running on XEmacs" + (mail) + "lisp/rmail/") ("rmail.el" "main code of \"RMAIL\" mail reader for Emacs." (mail) @@ -1478,33 +1746,57 @@ "support SPARCworks manager ToolTalk messages" (sparcworks tooltalk messages) "lisp/sunpro/") - ("generic-win.el" - "generic window function initializtion" + ("AT386.el" + "terminal support package for IBM AT keyboards" (terminals) "lisp/term/") - ("ns-win.el" - "runtime initialization for the NeXTstep window system" - (terminals) + ("bg-mouse.el" + "GNU Emacs code for BBN Bitgraph mouse." + (hardware) "lisp/term/") - ("post-tty-win.el" - "second phase of runtime initialization for tty's" + ("internal.el" + "setup support for PC keyboards and screens, internal terminal" nil "lisp/term/") - ("post-x-win.el" - "second phase of runtime initialization for X windows" + ("keyswap.el" + "swap BS and DEL keys" + (terminals) + "lisp/term/") + ("linux.el" + "define function key sequences for the Linux console" (terminals) "lisp/term/") - ("pre-tty-win.el" - "first phase of runtime initialization for tty's" + ("news.el" + "keypad and function key bindings for the Sony NEWS keyboard" + (terminals) + "lisp/term/") + ("pc-win.el" + "setup support for `PC windows' (whatever that is)." + nil + "lisp/term/") + ("scoansi.el" + "set up key names for SCO ansi console" nil "lisp/term/") - ("pre-x-win.el" - "first phase of runtime initialization for X windows" + ("sun-mouse.el" + "mouse handling for Sun windows" + (hardware) + "lisp/term/") + ("sun.el" + "keybinding for standard default sunterm keys" (terminals) "lisp/term/") - ("tty-win.el" - "runtime initialization for tty's if initial window system" - nil + ("sup-mouse.el" + "supdup mouse support for lisp machines" + (hardware) + "lisp/term/") + ("tty-init.el" + "initialization code for tty's" + (terminals) + "lisp/term/") + ("tvi970.el" + "terminal support for the Televideo 970" + (terminals) "lisp/term/") ("vt-control.el" "Common VTxxx control functions" @@ -1514,18 +1806,210 @@ "functions for LED control on VT-100 terminals & clones." (hardware) "lisp/term/") - ("x-win-sun.el" - "runtime initialization for Sun X servers and keyboards" + ("vt100.el" + "define VT100 function key sequences in function-key-map" + (terminals) + "lisp/term/") + ("win32-win.el" + "parse switches controlling interface with win32" + (terminals) + "lisp/term/") + ("wyse50.el" + "terminal support code for Wyse 50" + (terminals) + "lisp/term/") + ("xterm.el" + "define function key sequences for xterm" (terminals) "lisp/term/") - ("x-win-xfree86.el" - "runtime initialization for XFree86 servers" - (terminals) - "lisp/term/") - ("x-win.el" - "runtime initialization for X windows if initial window system" - (terminals) - "lisp/term/") + ("bitmap.el" + "bitmap (xbm) file handler on Mule" + (bitmap xbm x-face mule) + "lisp/tl/") + ("cless.el" + "Common lisp and Emacs Lisp source sharing" + (common lisp) + "lisp/tl/") + ("emu-e19.el" + "emu module for Emacs 19 and XEmacs 19" + (emulation compatibility mule latin-1) + "lisp/tl/") + ("emu-xemacs.el" + "emu API implementation for XEmacs" + (emulation compatibility xemacs) + "lisp/tl/") + ("emu.el" + "Emulation module for each Emacs variants" + (emulation compatibility nemacs mule emacs/mule xemacs) + "lisp/tl/") + ("file-detect.el" + "Emacs Lisp file detection utility" + (install module) + "lisp/tl/") + ("filename.el" + "file name filter" + (string file name) + "lisp/tl/") + ("range.el" + "range functions" + (range) + "lisp/tl/") + ("richtext.el" + "read and save files in text/richtext format" + (wp faces mime multimedia) + "lisp/tl/") + ("texi-util.el" + "Texinfo utility" + (texinfo) + "lisp/tl/") + ("tl-822.el" + "RFC 822 parser for GNU Emacs" + (mail news rfc 822) + "lisp/tl/") + ("tl-atype.el" + "atype functions" + (atype) + "lisp/tl/") + ("tl-list.el" + "utility functions about list" + (list) + "lisp/tl/") + ("tl-misc.el" + "miscellaneous utility of tl." + (load-path module structure) + "lisp/tl/") + ("tl-seq.el" + "sequence functions" + (sequence) + "lisp/tl/") + ("tl-str.el" + "Emacs Lisp Library module about string" + (string) + "lisp/tl/") + ("tu-comment.el" + "a comment out utility for Lisp programs." + (comment lisp) + "lisp/tl/") + ("tu-replace.el" + "a replacing utility for GNU Emacs" + (replace) + "lisp/tl/") + ("gnus-art-mime.el" + "MIME extension for article mode of Gnus" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("gnus-charset.el" + "MIME charset extension for Gnus" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("gnus-mime-old.el" + "MIME extensions for Gnus 5.[01] and 5.[23]" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("gnus-mime.el" + "MIME extensions for Gnus" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("gnus-msg-mime.el" + "MIME extension for mail and post interface of Gnus" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("gnus-sum-mime.el" + "MIME extension for summary mode of Gnus" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("message-mime.el" + "MIME extensions for message.el" + (news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("mime-setup.el" + "setup file for tm viewer and composer." + (mail news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("signature.el" + "a signature utility for GNU Emacs" + (mail news signature) + "lisp/tm/") + ("tm-bbdb.el" + "tm shared module for BBDB" + (mail news mime multimedia multilingual bbdb) + "lisp/tm/") + ("tm-def.el" + "definition module for tm" + (mail news mime multimedia definition) + "lisp/tm/") + ("tm-edit-mc.el" + "Mailcrypt interface for tm-edit" + (mail news mime multimedia multilingual security pgp) + "lisp/tm/") + ("tm-edit.el" + "Simple MIME Composer for GNU Emacs" + (mail news mime multimedia multilingual) + "lisp/tm/") + ("tm-ew-d.el" + "RFC 2047 based encoded-word decoder for GNU Emacs" + (encoded-word mime multilingual header mail news) + "lisp/tm/") + ("tm-ew-e.el" + "RFC 2047 based encoded-word encoder for GNU Emacs" + (encoded-word mime multilingual header mail news) + "lisp/tm/") + ("tm-file.el" + "tm-view internal method for file extraction" + (mail news mime multimedia file extract) + "lisp/tm/") + ("tm-ftp.el" + "tm-view internal method for anonymous ftp" + (anonymous ftp mime multimedia mail news) + "lisp/tm/") + ("tm-image.el" + "tm-view filter to display images in XEmacs or MULE buffers" + (image picture x-face mime multimedia mail news) + "lisp/tm/") + ("tm-mail.el" + "mail-mode extension." + (mail mime multimedia) + "lisp/tm/") + ("tm-mh-e.el" + "MIME extension for mh-e" + (mail mh mime multimedia encoded-word multilingual) + "lisp/tm/") + ("tm-parse.el" + "MIME message parser" + (mail news mime multimedia) + "lisp/tm/") + ("tm-partial.el" + "Grabbing all MIME \"message/partial\"s." + (mail news mime multimedia message/partial) + "lisp/tm/") + ("tm-pgp.el" + "tm-view internal methods for PGP." + (mail news mime multimedia pgp security) + "lisp/tm/") + ("tm-play.el" + "decoder for tm-view.el" + (mail news mime multimedia) + "lisp/tm/") + ("tm-rmail.el" + "MIME extension for RMAIL" + (mail mime multimedia multilingual encoded-word) + "lisp/tm/") + ("tm-setup.el" + "setup file for tm viewer." + (mail news mime multimedia multilingual encoded-word) + "lisp/tm/") + ("tm-view.el" + "interactive MIME viewer for GNU Emacs" + (mail news mime multimedia) + "lisp/tm/") + ("tm-vm.el" + "tm-MUA (MIME Extension module) for VM" + (mail mime multimedia multilingual encoded-word) + "lisp/tm/") + ("tmh-comp.el" + "tm-mh-e functions for composing messages" + (mail mh mime multimedia encoded-word multilingual) + "lisp/tm/") ("abbrevlist.el" "list one abbrev table alphabetically ordered." (abbrev) @@ -1550,29 +2034,17 @@ "maintain autoloads in loaddefs.el." (maint) "lisp/utils/") + ("bench.el" + "benchmarking utility for emacsen" + (internal maint) + "lisp/utils/") ("blessmail.el" "Decide whether movemail needs special privileges." (internal) "lisp/utils/") - ("cl-compat.el" - "Common Lisp extensions for GNU Emacs Lisp (compatibility)" - (extensions) - "lisp/utils/") - ("cl-extra.el" - "Common Lisp extensions for GNU Emacs Lisp (part two)" - (extensions) - "lisp/utils/") - ("cl-macs.el" - "Common Lisp extensions for GNU Emacs Lisp (part four)" - (extensions) - "lisp/utils/") - ("cl-seq.el" - "Common Lisp extensions for GNU Emacs Lisp (part three)" - (extensions) - "lisp/utils/") - ("cl.el" - "Common Lisp extensions for GNU Emacs Lisp" - (extensions lisp) + ("browse-url.el" + "ask a WWW browser to load a URL" + (hypertext) "lisp/utils/") ("delbackspace.el" "rebind backspace and delete to be correct" @@ -1580,12 +2052,32 @@ "lisp/utils/") ("derived.el" "allow inheritance of major modes." + nil + "lisp/utils/") + ("detached-minibuf.el" + "Support a detached minibuffer for XEmacs." + (extensions) + "lisp/utils/") + ("docref.el" + "Simple cross references for Elisp documentation strings" + (docs help lisp) + "lisp/utils/") + ("edmacro.el" + "keyboard macro editor" + (abbrev) + "lisp/utils/") + ("eldoc.el" + "show function arglist or variable docstring in echo area" (extensions) "lisp/utils/") ("elp.el" "Emacs Lisp Profiler" (debugging lisp tools) "lisp/utils/") + ("facemenu.el" + "create a face menu for interactively adding fonts to text" + (faces) + "lisp/utils/") ("find-gc.el" "detect functions that call the garbage collector" (maint) @@ -1598,30 +2090,38 @@ "topic & keyword-based code finder" (help) "lisp/utils/") + ("floating-toolbar.el" + "popup toolbar support for XEmacs." + (lisp) + "lisp/utils/") ("flow-ctrl.el" "help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control" (hardware) "lisp/utils/") ("foldout.el" "Folding extensions for outline-mode and outline-minor-mode." - (outlining) + (folding outline) "lisp/utils/") ("forms-d2.el" "demo forms-mode" - (extensions) + nil "lisp/utils/") ("forms-pass.el" - "demo for forms-mode" - (extensions) + "passwd file demo for forms-mode" + nil "lisp/utils/") ("forms.el" - "Forms mode: edit a file as a form to fill in." + "Forms mode: edit a file as a form to fill in" (extensions) "lisp/utils/") ("highlight-headers.el" "highlighting message headers." (mail news) "lisp/utils/") + ("live-icon.el" + "make frame icons represent the current frame contents" + nil + "lisp/utils/") ("loadhist.el" "lisp functions for working with feature groups" (internal) @@ -1631,8 +2131,8 @@ (mail) "lisp/utils/") ("mail-utils.el" - "Utility functions used both by rmail and rnews" - (mail news internal) + "utility functions used both by rmail and rnews" + (mail news) "lisp/utils/") ("mailpost.el" "RMAIL coupler to /usr/uci/post mailer" @@ -1640,7 +2140,7 @@ "lisp/utils/") ("map-ynp.el" "General-purpose boolean question-asker" - (extensions) + (lisp extensions) "lisp/utils/") ("meese.el" "protect the impressionable young minds of America" @@ -1650,13 +2150,21 @@ "Prompting for passwords semi-securely" (comm extensions) "lisp/utils/") + ("pp.el" + "pretty printer for Emacs Lisp" + (lisp tools language extensions) + "lisp/utils/") + ("redo.el" + "Redo/undo system for XEmacs" + (lisp extensions) + "lisp/utils/") ("regi.el" "REGular expression Interpreting engine" - (extensions matching wp) + (extensions matching) "lisp/utils/") ("reporter.el" "customizable bug reporting of lisp programs" - (mail lisp) + (maint mail tools) "lisp/utils/") ("rfc822.el" "hairy rfc822 parser for mail and news and suchlike" @@ -1666,6 +2174,18 @@ "handle rings of items" (extensions) "lisp/utils/") + ("shadowfile.el" + "automatic file copying for Emacs 19" + (comm) + "lisp/utils/") + ("skeleton.el" + "Lisp language extension for writing statement skeletons" + (extensions abbrev languages tools) + "lisp/utils/") + ("soundex.el" + "implement Soundex algorithm" + (matching) + "lisp/utils/") ("symbol-syntax.el" "find chars with symbol syntax" (matching) @@ -1683,8 +2203,8 @@ (extensions languages) "lisp/utils/") ("timezone.el" - "timezone package for GNU Emacs" - (internal extensions news) + "time zone package for GNU Emacs" + (news) "lisp/utils/") ("tq.el" "utility to maintain a transaction queue" @@ -1692,19 +2212,39 @@ "lisp/utils/") ("trace.el" "tracing facility for Emacs Lisp functions" - (lisp tools debugging) + (tools lisp) + "lisp/utils/") + ("uniquify.el" + "unique buffer names dependent on file name" + nil "lisp/utils/") - ("with-timeout.el" - "timeout hackery" - (extensions) - "lisp/utils/") + ("viper-ex.el" + "functions implementing the Ex commands for Viper" + nil + "lisp/viper/") + ("viper-init.el" + "some common definitions for Viper" + nil + "lisp/viper/") + ("viper-keym.el" + "Viper keymaps" + nil + "lisp/viper/") + ("viper-macs.el" + "functions implementing keyboard macros for Viper" + nil + "lisp/viper/") + ("viper-mous.el" + "mouse support for Viper" + nil + "lisp/viper/") ("viper-util.el" "Utilities used by viper.el" nil "lisp/viper/") ("viper.el" "A full-featured Vi emulator for GNU Emacs 19 and XEmacs 19," - nil + (emulations) "lisp/viper/") ("vm-easymenu.el" "support the easymenu interface for defining a menu." @@ -1726,77 +2266,173 @@ "Base64 encoding functions" (extensions) "lisp/w3/") - ("md5.el" - "MD5 functionality for emacsen without it builtin" - (mail news tools hypermedia) + ("css.el" + "Cascading Style Sheet parser" + nil + "lisp/w3/") + ("dsssl.el" + "DSSSL parser" + nil + "lisp/w3/") + ("font.el" + "New font model" + (faces) + "lisp/w3/") + ("images.el" + "Automatic image converters" + (images) "lisp/w3/") ("mm.el" "Mailcap parsing routines, and MIME handling" (mail news hypermedia) "lisp/w3/") + ("mule-sysdp.el" + "consolidate MULE-version dependencies in one file." + (lisp tools) + "lisp/w3/") + ("socks.el" + "A Socks v5 Client for Emacs" + (comm firewalls) + "lisp/w3/") ("ssl.el" "ssl functions for emacsen without them builtin" (comm) "lisp/w3/") + ("url-auth.el" + "Uniform Resource Locator authorization modules" + (comm data processes hypermedia) + "lisp/w3/") + ("url-cache.el" + "Uniform Resource Locator retrieval tool" + (comm data processes hypermedia) + "lisp/w3/") + ("url-cookie.el" + "Netscape Cookie support" + (comm data processes hypermedia) + "lisp/w3/") + ("url-file.el" + "File retrieval code" + (comm data processes) + "lisp/w3/") + ("url-gopher.el" + "Gopher Uniform Resource Locator retrieval code" + (comm data processes) + "lisp/w3/") + ("url-gw.el" + "Gateway munging for URL loading" + (comm data processes) + "lisp/w3/") + ("url-http.el" + "HTTP Uniform Resource Locator retrieval code" + (comm data processes) + "lisp/w3/") + ("url-irc.el" + "IRC URL interface" + (comm data processes) + "lisp/w3/") + ("url-mail.el" + "Mail Uniform Resource Locator retrieval code" + (comm data processes) + "lisp/w3/") + ("url-misc.el" + "Misc Uniform Resource Locator retrieval code" + (comm data processes) + "lisp/w3/") + ("url-news.el" + "News Uniform Resource Locator retrieval code" + (comm data processes) + "lisp/w3/") + ("url-nfs.el" + "NFS URL interface" + (comm data processes) + "lisp/w3/") + ("url-ns.el" + "Various netscape-ish functions for proxy definitions" + (comm data processes hypermedia) + "lisp/w3/") + ("url-parse.el" + "Uniform Resource Locator parser" + (comm data processes) + "lisp/w3/") + ("url-vars.el" + "Variables for Uniform Resource Locator tool" + (comm data processes hypermedia) + "lisp/w3/") ("url.el" "Uniform Resource Locator retrieval tool" (comm data processes hypermedia) "lisp/w3/") - ("urlauth.el" - "Uniform Resource Locator authorization modules" - (comm data processes hypermedia) - "lisp/w3/") - ("w3-10646.el" - "ISO 10646 Entities for Emacs-w3" - (i18n) - "lisp/w3/") ("w3-about.el" "About pages for emacs-w3" (hypermedia) "lisp/w3/") - ("w3-beta.el" - "Misc functions for emacs-w3's new display engine" - (help hypermedia comm) + ("w3-cus.el" + "Customization support for Emacs-W3" + (comm help hypermedia) "lisp/w3/") - ("w3-draw.el" - "Emacs-W3 drawing functions for new display engine" + ("w3-display.el" + "display engine v99999" (faces help hypermedia) "lisp/w3/") ("w3-e19.el" "Emacs 19.xx specific functions for emacs-w3" (faces help mouse hypermedia) "lisp/w3/") - ("w3-emacs.el" - "Emacs 18.xx specific functions for emacs-w3" - (faces help mouse hypermedia) + ("w3-elisp.el" + "Scripting support for emacs-lisp" + (hypermedia scripting) + "lisp/w3/") + ("w3-emulate.el" + "All variable definitions for emacs-w3" + (comm help hypermedia) "lisp/w3/") - ("w3-epoch.el" - "Epoch 4.x specific functions for emacs-w3" - (faces help mouse hypermedia) + ("w3-forms.el" + "Emacs-w3 forms parsing code for new display engine" + (faces help comm data languages) "lisp/w3/") - ("w3-mac.el" - "Macintosh specific functions for emacs-w3" - (faces help mouse hypermedia) + ("w3-hot.el" + "Main functions for emacs-w3 on all platforms/versions" + (faces help comm news mail processes mouse hypermedia) + "lisp/w3/") + ("w3-imap.el" + "Imagemap functions" + (hypermedia) "lisp/w3/") - ("w3-mule.el" - "MULE 18/19 specific functions for emacs-w3" - (faces help i18n mouse hypermedia) + ("w3-jscript.el" + "Scripting support for javascript" + (hypermedia scripting) + "lisp/w3/") + ("w3-keyword.el" + "Emacs-W3 binding style sheet mechanism" + (hypermedia) + "lisp/w3/") + ("w3-latex.el" + "Emacs-W3 printing via LaTeX" + (hypermedia printing typesetting) "lisp/w3/") - ("w3-next.el" - "NeXTStep specific functions for emacs-w3" - (faces help mouse hypermedia) + ("w3-menu.el" + "Menu functions for emacs-w3" + (menu hypermedia) "lisp/w3/") - ("w3-parse.el" - "Generalized html/sgml parsing support for emacs-w3" - (faces help hypermedia) + ("w3-mouse.el" + "Mouse specific functions for emacs-w3" + (mouse hypermedia) + "lisp/w3/") + ("w3-prefs.el" + "Preferences panels for Emacs-W3" + (hypermedia preferences) "lisp/w3/") ("w3-print.el" "Printing support for emacs-w3" (faces help printing hypermedia) "lisp/w3/") - ("w3-srch.el" - "Searching functions for emacs-w3" - (matching help comm hypermedia) + ("w3-script.el" + "Scripting support" + (hypermedia scripting) + "lisp/w3/") + ("w3-speak.el" + "Emacs-W3 speech interface" + (hypermedia speech) "lisp/w3/") ("w3-style.el" "Emacs-W3 binding style sheet mechanism" @@ -1806,13 +2442,17 @@ "consolidate Emacs-version dependencies in one file." (lisp tools) "lisp/w3/") + ("w3-toolbar.el" + "Toolbar functions for emacs-w3" + (mouse toolbar) + "lisp/w3/") ("w3-vars.el" "All variable definitions for emacs-w3" (comm help hypermedia) "lisp/w3/") - ("w3-wemac.el" - "WinEmacs specific functions for emacs-w3" - (faces help hypermedia mouse) + ("w3-widget.el" + "An image widget" + (faces images) "lisp/w3/") ("w3-xemac.el" "XEmacs specific functions for emacs-w3" @@ -1826,6 +2466,14 @@ "X-specific face frobnication, aka black magic." nil "lisp/x11/") + ("x-font-menu.el" + "Managing menus of X fonts." + nil + "lisp/x11/") + ("x-init.el" + "initialization code for X windows" + (terminals) + "lisp/x11/") ("x-menubar.el" "Menubar and popup-menu support for X." nil @@ -1838,6 +2486,18 @@ "scrollbar resourcing and such." nil "lisp/x11/") + ("x-select.el" + "Elisp interface to X Selections." + nil + "lisp/x11/") + ("x-win-sun.el" + "runtime initialization for Sun X servers and keyboards" + (terminals) + "lisp/x11/") + ("x-win-xfree86.el" + "runtime initialization for XFree86 servers" + (terminals) + "lisp/x11/") )) (provide 'finder-inf)
--- a/lisp/utils/finder.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/utils/finder.el Mon Aug 13 08:56:41 2007 +0200 @@ -198,7 +198,9 @@ (directory-files d nil "^[^=].*\\.el$"))))) dirs) (insert "))\n\n(provide 'finder-inf)\n\n;;; finder-inf.el ends here\n") - (kill-buffer "*finder-scratch*") + (condition-case nil + (kill-buffer "*finder-scratch*") + (t nil)) (eval-current-buffer) ;; So we get the new keyword list immediately (basic-save-buffer))))
--- a/lisp/version.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/version.el Mon Aug 13 08:56:41 2007 +0200 @@ -23,34 +23,54 @@ ;; The following line is modified automatically ;; by loading inc-version.el, each time a new Emacs is dumped. -(defconst emacs-version "19.16" "\ -Version numbers of this version of Emacs.") +;; (defconst emacs-version "19.16" "\ +;; Version numbers of this version of Emacs.") -(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta90)"))) +;; (setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta90)"))) -(defconst emacs-major-version - (progn (or (string-match "^[0-9]+" emacs-version) - (error "emacs-version unparsable")) - (string-to-int (match-string 0 emacs-version))) - "Major version number of this version of Emacs, as an integer. -Warning, this variable did not exist in Emacs versions earlier than: - FSF Emacs: 19.23 - XEmacs: 19.10") +;(defconst emacs-major-version +; (progn (or (string-match "^[0-9]+" emacs-version) +; (error "emacs-version unparsable")) +; (string-to-int (match-string 0 emacs-version))) +; "Major version number of this version of Emacs, as an integer. +;Warning, this variable did not exist in Emacs versions earlier than: +; FSF Emacs: 19.23 +; XEmacs: 19.10") -(defconst emacs-minor-version - (progn (or (string-match "^[0-9]+\\.\\([0-9]+\\)" emacs-version) - (error "emacs-version unparsable")) - (string-to-int (match-string 1 emacs-version))) - "Minor version number of this version of Emacs, as an integer. -Warning, this variable did not exist in Emacs versions earlier than: - FSF Emacs: 19.23 - XEmacs: 19.10") +;(defconst emacs-minor-version +; (progn (or (string-match "^[0-9]+\\.\\([0-9]+\\)" emacs-version) +; (error "emacs-version unparsable")) +; (string-to-int (match-string 1 emacs-version))) +; "Minor version number of this version of Emacs, as an integer. +;Warning, this variable did not exist in Emacs versions earlier than: +; FSF Emacs: 19.23 +; XEmacs: 19.10") (defconst emacs-build-time (current-time-string) "\ Time at which Emacs was dumped out.") (defconst emacs-build-system (system-name)) +(defconst xemacs-betaname "(beta91)" + "Non-nil when this is a test (beta) version of XEmacs. +Warning, this variable did not exist in XEmacs versions prior to 20.3") + +(defconst xemacs-codename "" + "This only works in XEmacs 20.3 or greater.") + +(defconst emacs-version + (purecopy + (format "%d.%d \"%s\"%s%s" + emacs-major-version + emacs-minor-version + xemacs-codename + " XEmacs Lucid" + (if xemacs-betaname + (concat " " xemacs-betaname) + ""))) + "Version numbers of this version of XEmacs.") + + (defun emacs-version (&optional here) "\ Return string describing the version of Emacs that is running. If optional argument HERE is non-nil, insert string at point.
--- a/lisp/x11/x-compose.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/x11/x-compose.el Mon Aug 13 08:56:41 2007 +0200 @@ -320,7 +320,7 @@ (define-key compose-map [dead-grave] compose-grave-map) (define-key function-key-map [dead-cedilla] compose-cedilla-map) (define-key compose-map [dead-cedilla] compose-cedilla-map) - (define-key function-key-map [dead_diaeresis] compose-diaeresis-map) + (define-key function-key-map [dead-diaeresis] compose-diaeresis-map) (define-key compose-map [dead-diaeresis] compose-diaeresis-map) (define-key function-key-map [dead-circum] compose-circumflex-map) (define-key compose-map [dead-circum] compose-circumflex-map)
--- a/lisp/x11/x-init.el Mon Aug 13 08:56:06 2007 +0200 +++ b/lisp/x11/x-init.el Mon Aug 13 08:56:41 2007 +0200 @@ -83,7 +83,8 @@ (defun x-initialize-compose () "Enable compose processing" - (require 'x-compose)) + (when (x-keysym-on-keyboard-p "Multi_key") + (require 'x-compose))) ;;; Load X-server specific code. ;;; Specifically, load some code to repair the grievous damage that MIT and
--- a/man/Makefile Mon Aug 13 08:56:06 2007 +0200 +++ b/man/Makefile Mon Aug 13 08:56:41 2007 +0200 @@ -29,7 +29,7 @@ # Implies makeinfo-1.64 MAKEINFO = makeinfo # Implies makeinfo-1.67 -NEWMAKEINFO = makeinfo-1.67 +NEWMAKEINFO = makeinfo .SUFFIXES: .info .texi .dvi
--- a/man/info-stnd.texi Mon Aug 13 08:56:06 2007 +0200 +++ b/man/info-stnd.texi Mon Aug 13 08:56:41 2007 +0200 @@ -1,55 +1,130 @@ -@c This file is meant to be included in any arbitrary piece of -@c documentation that wishes to describe the info program. -@c -@c This file documents the use of the standalone GNU Info program, -@c versions 2.7 and later. It was authored by Brian Fox (bfox@ai.mit.edu). - -@ifclear InfoProgVer -@set InfoProgVer 2.10 -@end ifclear +\input texinfo @c -*-texinfo-*- +@comment %**start of header +@setfilename info-stnd.info +@settitle GNU Info +@set InfoProgVer 2.11 +@paragraphindent none +@footnotestyle end @synindex vr cp @synindex fn cp @synindex ky cp +@comment %**end of header +@comment $Id: info-stnd.texi,v 1.2 1997/08/30 03:56:39 steve Exp $ -@heading What is Info? +@dircategory Texinfo documentation system +@direntry +* info program: (info-stnd). Standalone Info-reading program. +@end direntry + +@ifinfo +This file documents GNU Info, a program for viewing the on-line formatted +versions of Texinfo files. This documentation is different from the +documentation for the Info reader that is part of GNU Emacs. If you do +not know how to use Info, but have a working Info reader, you should +read that documentation first. + +Copyright @copyright{} 1992, 93, 96, 97 Free Software Foundation, Inc. -This text documents the use of the GNU Info program, version -@value{InfoProgVer}. +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries a copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +sections entitled ``Copying'' and ``GNU General Public License'' are +included exactly as in the original, and provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. -@dfn{Info} is a program which is used to view info files on an ASCII -terminal. @dfn{info files} are the result of processing texinfo files -with the program @code{makeinfo} or with the Emacs command @code{M-x -texinfo-format-buffer}. Finally, @dfn{texinfo} is a documentation -language which allows a printed manual and online documentation (an info -file) to be produced from a single source file. +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Free Software Foundation. +@end ifinfo + +@titlepage +@title GNU Info User's Guide +@subtitle For GNU Info version @value{InfoProgVer} +@author Brian J. Fox (bfox@@ai.mit.edu) +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 1992, 1993, 1997 Free Software Foundation + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +sections entitled ``Copying'' and ``GNU General Public License'' are +included exactly as in the original, and provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Free Software Foundation. +@end titlepage + +@ifinfo +@node Top, What is Info, , (dir) +@top The GNU Info Program + +This file documents GNU Info, a program for viewing the on-line +formatted versions of Texinfo files, version @value{InfoProgVer}. This +documentation is different from the documentation for the Info reader +that is part of GNU Emacs. +@end ifinfo @menu -* Options:: Options you can pass on the command line. -* Cursor Commands:: Commands which move the cursor within a node. -* Scrolling Commands:: Commands for moving the node around in a window. -* Node Commands:: Commands for selecting a new node. -* Searching Commands:: Commands for searching an info file. -* Xref Commands:: Commands for selecting cross references. -* Window Commands:: Commands which manipulate multiple windows. -* Printing Nodes:: How to print out the contents of a node. -* Miscellaneous Commands:: A few commands that defy categories. -* Variables:: How to change the default behaviour of Info. -@ifset NOTSET -* Info for Sys Admins:: How to setup Info. Using special options. -@end ifset -@ifset STANDALONE -* GNU Info Global Index:: Global index containing keystrokes, command names, - variable names, and general concepts. -@end ifset +* What is Info:: +* Options:: Options you can pass on the command line. +* Cursor Commands:: Commands which move the cursor within a node. +* Scrolling Commands:: Commands for moving the node around + in a window. +* Node Commands:: Commands for selecting a new node. +* Searching Commands:: Commands for searching an Info file. +* Xref Commands:: Commands for selecting cross references. +* Window Commands:: Commands which manipulate multiple windows. +* Printing Nodes:: How to print out the contents of a node. +* Miscellaneous Commands:: A few commands that defy categories. +* Variables:: How to change the default behavior of Info. +* GNU Info Global Index:: Global index containing keystrokes, + command names, variable names, + and general concepts. @end menu -@node Options +@node What is Info, Options, Top, Top +@chapter What is Info? + +@iftex +This file documents GNU Info, a program for viewing the on-line formatted +versions of Texinfo files, version @value{InfoProgVer}. +@end iftex + +@dfn{Info} is a program which is used to view Info files on an ASCII +terminal. @dfn{Info files} are the result of processing Texinfo files +with the program @code{makeinfo} or with one of the Emacs commands, such +as @code{M-x texinfo-format-buffer}. Texinfo itself is a documentation +system that uses a single source file to produce both on-line +information and printed output. You can typeset and print the +files that you read in Info.@refill + +@node Options, Cursor Commands, What is Info, Top @chapter Command Line Options @cindex command line options @cindex arguments, command line GNU Info accepts several options to control the initial node being -viewed, and to specify which directories to search for info files. Here +viewed, and to specify which directories to search for Info files. Here is a template showing an invocation of GNU Info from the shell: @example @@ -63,41 +138,49 @@ @cindex directory path @item --directory @var{directory-path} @itemx -d @var{directory-path} -Adds @var{directory-path} to the list of directory paths searched when +Add @var{directory-path} to the list of directory paths searched when Info needs to find a file. You may issue @code{--directory} multiple -times; once for each directory which contains info files. +times; once for each directory which contains Info files. Alternatively, you may specify a value for the environment variable @code{INFOPATH}; if @code{--directory} is not given, the value of @code{INFOPATH} is used. The value of @code{INFOPATH} is a colon -separated list of directory names. If you do not supply -@code{INFOPATH} or @code{--directory-path} a default path is used. +separated list of directory names. If you do not supply @code{INFOPATH} +or @code{--directory-path}, Info uses a default path. @item --file @var{filename} @itemx -f @var{filename} -@cindex info file, selecting -Specifies a particular info file to visit. Instead of visiting the file -@code{dir}, Info will start with @code{(@var{filename})Top} as the first -file and node. +@cindex Info file, selecting +Specify a particular Info file to visit. By default, Info visits +the file @code{dir}; if you use this option, Info will start with +@code{(@var{filename})Top} as the first file and node. + +@item --index-search @var{string} +@cindex index search, selecting +@cindex online help, using Info as +Go to the index entry @var{string} in the Info file specified with +@samp{--file}. If no such entry, print @samp{no entries found} and exit +with nonzero status. This can used from another program as a way to +provide online help. @item --node @var{nodename} @itemx -n @var{nodename} @cindex node, selecting -Specifies a particular node to visit in the initial file loaded. This -is especially useful in conjunction with @code{--file}@footnote{Of -course, you can specify both the file and node in a @code{--node} -command; but don't forget to escape the open and close parentheses from -the shell as in: @code{info --node '(emacs)Buffers'}}. You may specify -@code{--node} multiple times; for an interactive Info, each -@var{nodename} is visited in its own window, for a non-interactive Info -(such as when @code{--output} is given) each @var{nodename} is processed -sequentially. +Specify a particular node to visit in the initial file that Info +loads. This is especially useful in conjunction with +@code{--file}@footnote{Of course, you can specify both the file and node +in a @code{--node} command; but don't forget to escape the open and +close parentheses from the shell as in: @code{info --node +"(emacs)Buffers"}}. You may specify @code{--node} multiple times; for +an interactive Info, each @var{nodename} is visited in its own window, +for a non-interactive Info (such as when @code{--output} is given) each +@var{nodename} is processed sequentially. @item --output @var{filename} @itemx -o @var{filename} @cindex file, outputting to @cindex outputting to a file -Specify @var{filename} as the name of a file to output to. Each node -that Info visits will be output to @var{filename} instead of +Specify @var{filename} as the name of a file to which to direct output. +Each node that Info visits will be output to @var{filename} instead of interactively viewed. A value of @code{-} for @var{filename} specifies the standard output. @@ -106,7 +189,7 @@ This option only has meaning when given in conjunction with @code{--output}. It means to recursively output the nodes appearing in the menus of each node being output. Menu items which resolve to -external info files are not output, and neither are menu items which are +external Info files are not output, and neither are menu items which are members of an index. Each node is only output once. @item --help @@ -119,9 +202,9 @@ @item @var{menu-item} @cindex menu, following -Remaining arguments to Info are treated as the names of menu items. The -first argument would be a menu item in the initial node visited, while -the second argument would be a menu item in the first argument's node. +Info treats its remaining arguments as the names of menu items. The +first argument is a menu item in the initial node visited, while +the second argument is a menu item in the first argument's node. You can easily move to the node of your choice by specifying the menu names which describe the path to that node. For example, @@ -129,15 +212,16 @@ info emacs buffers @end example +@noindent first selects the menu item @samp{Emacs} in the node @samp{(dir)Top}, and then selects the menu item @samp{Buffers} in the node @samp{(emacs)Top}. - @end table -@node Cursor Commands +@node Cursor Commands, Scrolling Commands, Options, Top @chapter Moving the Cursor @cindex cursor, moving + Many people find that reading screens of text page by page is made easier when one is able to indicate particular pieces of text with some kind of pointing device. Since this is the case, GNU Info (both the @@ -145,7 +229,7 @@ move the cursor about the screen. The notation used in this manual to describe keystrokes is identical to the notation used within the Emacs manual, and the GNU Readline manual. @xref{Characters, , Character -Conventions, emacs, the GNU Emacs Manual}, if you are unfamilar with the +Conventions, emacs, the GNU Emacs Manual}, if you are unfamiliar with the notation. The following table lists the basic cursor movement commands in Info. @@ -168,7 +252,7 @@ @item @code{C-n} (@code{next-line}) @kindex C-n @findex next-line -Moves the cursor down to the next line. +Move the cursor down to the next line. @item @code{C-p} (@code{prev-line}) @kindex C-p @@ -183,7 +267,7 @@ @item @code{C-e} (@code{end-of-line}) @kindex C-e, in Info windows @findex end-of-line -Moves the cursor to the end of the current line. +Move the cursor to the end of the current line. @item @code{C-f} (@code{forward-char}) @kindex C-f, in Info windows @@ -198,35 +282,35 @@ @item @code{M-f} (@code{forward-word}) @kindex M-f, in Info windows @findex forward-word -Moves the cursor forward a word. +Move the cursor forward a word. @item @code{M-b} (@code{backward-word}) -@kindex M-b, in Info winows +@kindex M-b, in Info windows @findex backward-word -Moves the cursor backward a word. +Move the cursor backward a word. @item @code{M-<} (@code{beginning-of-node}) @itemx @code{b} -@kindex b, in Info winows +@kindex b, in Info windows @kindex M-< @findex beginning-of-node -Moves the cursor to the start of the current node. +Move the cursor to the start of the current node. @item @code{M->} (@code{end-of-node}) @kindex M-> @findex end-of-node -Moves the cursor to the end of the current node. +Move the cursor to the end of the current node. @item @code{M-r} (@code{move-to-window-line}) @kindex M-r @findex move-to-window-line -Moves the cursor to a specific line of the window. Without a numeric +Move the cursor to a specific line of the window. Without a numeric argument, @code{M-r} moves the cursor to the start of the line in the center of the window. With a numeric argument of @var{n}, @code{M-r} moves the cursor to the start of the @var{n}th line in the window. @end table -@node Scrolling Commands +@node Scrolling Commands, Node Commands, Cursor Commands, Top @chapter Moving Text Within a Window @cindex scrolling @@ -257,7 +341,6 @@ @findex scroll-backward Shift the text in this window down. The inverse of @code{scroll-forward}. - @end table @cindex scrolling through node structure @@ -265,8 +348,8 @@ move forward and backward through the node structure of the file. If you press @key{SPC} while viewing the end of a node, or @key{DEL} while viewing the beginning of a node, what happens is controlled by the -variable @code{scroll-behaviour}. @xref{Variables, -@code{scroll-behaviour}}, for more information. +variable @code{scroll-behavior}. @xref{Variables, +@code{scroll-behavior}}, for more information. @table @asis @item @code{C-l} (@code{redraw-display}) @@ -292,7 +375,7 @@ invisible. @end table -@node Node Commands +@node Node Commands, Searching Commands, Scrolling Commands, Top @chapter Selecting a New Node @cindex nodes, selection of @@ -311,17 +394,17 @@ @item @code{n} (@code{next-node}) @kindex n @findex next-node -Selects the `Next' node. +Select the `Next' node. @item @code{p} (@code{prev-node}) @kindex p @findex prev-node -Selects the `Prev' node. +Select the `Prev' node. @item @code{u} (@code{up-node}) @kindex u @findex up-node -Selects the `Up' node. +Select the `Up' node. @end table You can easily select a node that you have already viewed in this window @@ -335,7 +418,7 @@ @item @code{l} (@code{history-node}) @kindex l @findex history-node -Selects the most recently selected node in this window. +Select the most recently selected node in this window. @end table Two additional commands make it easy to select the most commonly @@ -345,12 +428,12 @@ @item @code{t} (@code{top-node}) @kindex t @findex top-node -Selects the node @samp{Top} in the current info file. +Select the node @samp{Top} in the current Info file. @item @code{d} (@code{dir-node}) @kindex d @findex dir-node -Selects the directory node (i.e., the node @samp{(dir)}). +Select the directory node (i.e., the node @samp{(dir)}). @end table Here are some other commands which immediately result in the selection @@ -361,17 +444,17 @@ @kindex < @findex first-node Selects the first node which appears in this file. This node is most -often @samp{Top}, but it doesn't have to be. +often @samp{Top}, but it does not have to be. @item @code{>} (@code{last-node}) @kindex > @findex last-node -Selects the last node which appears in this file. +Select the last node which appears in this file. @item @code{]} (@code{global-next-node}) @kindex ] @findex global-next-node -Moves forward or down through node structure. If the node that you are +Move forward or down through node structure. If the node that you are currently viewing has a @samp{Next} pointer, that node is selected. Otherwise, if this node has a menu, the first menu item is selected. If there is no @samp{Next} and no menu, the same process is tried with the @@ -380,36 +463,36 @@ @item @code{[} (@code{global-prev-node}) @kindex [ @findex global-prev-node -Moves backward or up through node structure. If the node that you are +Move backward or up through node structure. If the node that you are currently viewing has a @samp{Prev} pointer, that node is selected. Otherwise, if the node has an @samp{Up} pointer, that node is selected, and if it has a menu, the last item in the menu is selected. @end table -You can get the same behaviour as @code{global-next-node} and +You can get the same behavior as @code{global-next-node} and @code{global-prev-node} while simply scrolling through the file with -@key{SPC} and @key{DEL}; @xref{Variables, @code{scroll-behaviour}}, for +@key{SPC} and @key{DEL}; @xref{Variables, @code{scroll-behavior}}, for more information. @table @asis @item @code{g} (@code{goto-node}) @kindex g @findex goto-node -Reads the name of a node and selects it. No completion is done while +Read the name of a node and select it. No completion is done while reading the node name, since the desired node may reside in a separate -file. The node must be typed exactly as it appears in the info file. A +file. The node must be typed exactly as it appears in the Info file. A file name may be included as with any node specification, for example @example @code{g(emacs)Buffers} @end example -finds the node @samp{Buffers} in the info file @file{emacs}. +finds the node @samp{Buffers} in the Info file @file{emacs}. @item @code{C-x k} (@code{kill-node}) @kindex C-x k @findex kill-node -Kills a node. The node name is prompted for in the echo area, with a +Kill a node. The node name is prompted for in the echo area, with a default of the current node. @dfn{Killing} a node means that Info tries hard to forget about it, removing it from the list of history nodes kept for the window where that node is found. Another node is selected in @@ -418,7 +501,7 @@ @item @code{C-x C-f} (@code{view-file}) @kindex C-x C-f @findex view-file -Reads the name of a file and selects the entire file. The command +Read the name of a file and selects the entire file. The command @example @code{C-x C-f @var{filename}} @end example @@ -430,60 +513,60 @@ @item @code{C-x C-b} (@code{list-visited-nodes}) @kindex C-x C-b @findex list-visited-nodes -Makes a window containing a menu of all of the currently visited nodes. +Make a window containing a menu of all of the currently visited nodes. This window becomes the selected window, and you may use the standard Info commands within it. @item @code{C-x b} (@code{select-visited-node}) @kindex C-x b @findex select-visited-node -Selects a node which has been previously visited in a visible window. +Select a node which has been previously visited in a visible window. This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is created. @end table -@node Searching Commands +@node Searching Commands, Xref Commands, Node Commands, Top @chapter Searching an Info File @cindex searching GNU Info allows you to search for a sequence of characters throughout an -entire info file, search through the indices of an info file, or find -areas within an info file which discuss a particular topic. +entire Info file, search through the indices of an Info file, or find +areas within an Info file which discuss a particular topic. @table @asis @item @code{s} (@code{search}) @kindex s @findex search -Reads a string in the echo area and searches for it. +Read a string in the echo area and search for it. @item @code{C-s} (@code{isearch-forward}) @kindex C-s @findex isearch-forward -Interactively searches forward through the info file for a string as you +Interactively search forward through the Info file for a string as you type it. @item @code{C-r} (@code{isearch-backward}) @kindex C-r @findex isearch-backward -Interactively searches backward through the info file for a string as +Interactively search backward through the Info file for a string as you type it. @item @code{i} (@code{index-search}) @kindex i @findex index-search -Looks up a string in the indices for this info file, and selects a node +Look up a string in the indices for this Info file, and select a node where the found index entry points to. @item @code{,} (@code{next-index-match}) @kindex , @findex next-index-match -Moves to the node containing the next matching index item from the last +Move to the node containing the next matching index item from the last @samp{i} command. @end table The most basic searching command is @samp{s} (@code{search}). The @samp{s} command prompts you for a string in the echo area, and then -searches the remainder of the info file for an ocurrence of that string. +searches the remainder of the Info file for an occurrence of that string. If the string is found, the node containing it is selected, and the cursor is left positioned at the start of the found string. Subsequent @samp{s} commands show you the default search string within @samp{[} and @@ -494,21 +577,21 @@ string is looked up while you are typing it, instead of waiting until the entire search string has been specified. -@node Xref Commands +@node Xref Commands, Window Commands, Searching Commands, Top @chapter Selecting Cross References We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up} pointers which appear at the top of a node. In addition to these pointers, a node may contain other pointers which refer you to a -different node, perhaps in another info file. Such pointers are called +different node, perhaps in another Info file. Such pointers are called @dfn{cross references}, or @dfn{xrefs} for short. @menu -* Parts of an Xref:: What a cross reference is made of. -* Selecting Xrefs:: Commands for selecting menu or note items. +* Parts of an Xref:: What a cross reference is made of. +* Selecting Xrefs:: Commands for selecting menu or note items. @end menu -@node Parts of an Xref +@node Parts of an Xref, Selecting Xrefs, , Xref Commands @section Parts of an Xref Cross references have two major parts: the first part is called the @@ -522,7 +605,7 @@ target. @example -* Foo Label: Foo Target. More information about Foo. +* Foo Label: Foo Target. More information about Foo. @end example Note the @samp{.} which ends the name of the target. The @samp{.} is @@ -533,13 +616,13 @@ stand for a target name which is the same as the label name: @example -* Foo Commands:: Commands pertaining to Foo. +* Foo Commands:: Commands pertaining to Foo. @end example In the above example, the name of the target is the same as the name of the label, in this case @code{Foo Commands}. -You will normally see two types of cross references while viewing nodes: +You will normally see two types of cross reference while viewing nodes: @dfn{menu} references, and @dfn{note} references. Menu references appear within a node's menu; they begin with a @samp{*} at the beginning of a line, and continue with a label, a target, and a comment which @@ -548,7 +631,7 @@ Note references appear within the body of the node text; they begin with @code{*Note}, and continue with a label and a target. -Like @samp{Next}, @samp{Prev} and @samp{Up} pointers, cross references +Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross references can point to any valid node. They are used to refer you to a place where more detailed information can be found on a particular subject. Here is a cross reference which points to a node within the Texinfo @@ -556,7 +639,7 @@ Manual}, for more information on creating your own texinfo cross references. -@node Selecting Xrefs +@node Selecting Xrefs, , Parts of an Xref, Xref Commands @section Selecting Xrefs The following table lists the Info commands which operate on menu items. @@ -585,7 +668,7 @@ @item @code{M-x find-menu} @findex find-menu -Moves the cursor to the start of this node's menu. +Move the cursor to the start of this node's menu. @end table This table lists the Info commands which operate on note cross references. @@ -607,23 +690,23 @@ @item @code{TAB} (@code{move-to-next-xref}) @kindex TAB, in Info windows @findex move-to-next-xref -Moves the cursor to the start of the next nearest menu item or note +Move the cursor to the start of the next nearest menu item or note reference in this node. You can then use @key{RET} -(@code{select-reference-this-line} to select the menu or note reference. +(@code{select-reference-this-line}) to select the menu or note reference. @item @code{M-TAB} (@code{move-to-prev-xref}) @kindex M-TAB, in Info windows @findex move-to-prev-xref -Moves the cursor the start of the nearest previous menu item or note +Move the cursor the start of the nearest previous menu item or note reference in this node. @item @code{RET} (@code{select-reference-this-line}) @kindex RET, in Info windows @findex select-reference-this-line -Selects the menu item or note reference appearing on this line. +Select the menu item or note reference appearing on this line. @end table -@node Window Commands +@node Window Commands, Printing Nodes, Xref Commands, Top @chapter Manipulating Multiple Windows @cindex windows, manipulating @@ -639,35 +722,37 @@ windows. @menu -* The Mode Line:: What appears in the mode line? -* Basic Windows:: Manipulating windows in Info. -* The Echo Area:: Used for displaying errors and reading input. +* The Mode Line:: What appears in the mode line? +* Basic Windows:: Manipulating windows in Info. +* The Echo Area:: Used for displaying errors and reading input. @end menu -@node The Mode Line +@node The Mode Line, Basic Windows, , Window Commands @section The Mode Line A @dfn{mode line} is a line of inverse video which appears at the bottom -of an info window. It describes the contents of the window just above +of an Info window. It describes the contents of the window just above it; this information includes the name of the file and node appearing in that window, the number of screen lines it takes to display the node, and the percentage of text that is above the top of the window. It can -also tell you if the indirect tags table for this info file needs to be -updated, and whether or not the info file was compressed when stored on +also tell you if the indirect tags table for this Info file needs to be +updated, and whether or not the Info file was compressed when stored on disk. Here is a sample mode line for a window containing an uncompressed file named @file{dir}, showing the node @samp{Top}. @example +@group -----Info: (dir)Top, 40 lines --Top--------------------------------------- ^^ ^ ^^^ ^^ (file)Node #lines where +@end group @end example When a node comes from a file which is compressed on disk, this is indicated in the mode line with two small @samp{z}'s. In addition, if -the info file containing the node has been split into subfiles, the name +the Info file containing the node has been split into subfiles, the name of the subfile containing the node appears in the modeline as well: @example @@ -684,7 +769,7 @@ -----Info: *Completions*, 7 lines --All----------------------------------- @end example -@node Basic Windows +@node Basic Windows, The Echo Area, The Mode Line, Window Commands @section Window Commands It can be convenient to view more than one node at a time. To allow @@ -697,7 +782,7 @@ @cindex windows, selecting @kindex C-x o @findex next-window -Selects the next window on the screen. Note that the echo area can only be +Select the next window on the screen. Note that the echo area can only be selected if it is already in use, and you have left it temporarily. Normally, @samp{C-x o} simply moves the cursor into the next window on the screen, or if you are already within the last window, into the first @@ -707,14 +792,14 @@ @item @code{M-x prev-window} @findex prev-window -Selects the previous window on the screen. This is identical to +Select the previous window on the screen. This is identical to @samp{C-x o} with a negative argument. @item @code{C-x 2} (@code{split-window}) @cindex windows, creating @kindex C-x 2 @findex split-window -Splits the current window into two windows, both showing the same node. +Split the current window into two windows, both showing the same node. Each window is one half the size of the original window, and the cursor remains in the original window. The variable @code{automatic-tiling} can cause all of the windows on the screen to be resized for you @@ -725,41 +810,41 @@ @cindex windows, deleting @kindex C-x 0 @findex delete-window -Deletes the current window from the screen. If you have made too many +Delete the current window from the screen. If you have made too many windows and your screen appears cluttered, this is the way to get rid of some of them. @item @code{C-x 1} (@code{keep-one-window}) @kindex C-x 1 @findex keep-one-window -Deletes all of the windows excepting the current one. +Delete all of the windows excepting the current one. @item @code{ESC C-v} (@code{scroll-other-window}) @kindex ESC C-v, in Info windows @findex scroll-other-window -Scrolls the other window, in the same fashion that @samp{C-v} might -scroll the current window. Given a negative argument, the "other" -window is scrolled backward. +Scroll the other window, in the same fashion that @samp{C-v} might +scroll the current window. Given a negative argument, scroll the +"other" window backward. @item @code{C-x ^} (@code{grow-window}) @kindex C-x ^ @findex grow-window -Grows (or shrinks) the current window. Given a numeric argument, grows +Grow (or shrink) the current window. Given a numeric argument, grow the current window that many lines; with a negative numeric argument, -the window is shrunk instead. +shrink the window instead. @item @code{C-x t} (@code{tile-windows}) @cindex tiling @kindex C-x t @findex tile-windows -Divides the available screen space among all of the visible windows. +Divide the available screen space among all of the visible windows. Each window is given an equal portion of the screen in which to display its contents. The variable @code{automatic-tiling} can cause @code{tile-windows} to be called when a window is created or deleted. @xref{Variables, , @code{automatic-tiling}}. @end table -@node The Echo Area +@node The Echo Area, , Basic Windows, Window Commands @section The Echo Area @cindex echo area @@ -776,47 +861,47 @@ @item @code{C-f} (@code{echo-area-forward}) @kindex C-f, in the echo area @findex echo-area-forward -Moves forward a character. +Move forward a character. @item @code{C-b} (@code{echo-area-backward}) @kindex C-b, in the echo area @findex echo-area-backward -Moves backward a character. +Move backward a character. @item @code{C-a} (@code{echo-area-beg-of-line}) @kindex C-a, in the echo area @findex echo-area-beg-of-line -Moves to the start of the input line. +Move to the start of the input line. @item @code{C-e} (@code{echo-area-end-of-line}) @kindex C-e, in the echo area @findex echo-area-end-of-line -Moves to the end of the input line. +Move to the end of the input line. @item @code{M-f} (@code{echo-area-forward-word}) @kindex M-f, in the echo area @findex echo-area-forward-word -Moves forward a word. +Move forward a word. @item @code{M-b} (@code{echo-area-backward-word}) @kindex M-b, in the echo area @findex echo-area-backward-word -Moves backward a word. +Move backward a word. @item @code{C-d} (@code{echo-area-delete}) @kindex C-d, in the echo area @findex echo-area-delete -Deletes the character under the cursor. +Delete the character under the cursor. @item @code{DEL} (@code{echo-area-rubout}) @kindex DEL, in the echo area @findex echo-area-rubout -Deletes the character behind the cursor. +Delete the character behind the cursor. @item @code{C-g} (@code{echo-area-abort}) @kindex C-g, in the echo area @findex echo-area-abort -Cancels or quits the current operation. If completion is being read, +Cancel or quit the current operation. If completion is being read, @samp{C-g} discards the text of the input line which does not match any completion. If the input line is empty, @samp{C-g} aborts the calling function. @@ -824,28 +909,28 @@ @item @code{RET} (@code{echo-area-newline}) @kindex RET, in the echo area @findex echo-area-newline -Accepts (or forces completion of) the current input line. +Accept (or forces completion of) the current input line. @item @code{C-q} (@code{echo-area-quoted-insert}) @kindex C-q, in the echo area @findex echo-area-quoted-insert -Inserts the next character verbatim. This is how you can insert control +Insert the next character verbatim. This is how you can insert control characters into a search string, for example. @item @var{printing character} (@code{echo-area-insert}) @kindex printing characters, in the echo area @findex echo-area-insert -Inserts the character. +Insert the character. @item @code{M-TAB} (@code{echo-area-tab-insert}) @kindex M-TAB, in the echo area @findex echo-area-tab-insert -Inserts a TAB character. +Insert a TAB character. @item @code{C-t} (@code{echo-area-transpose-chars}) @kindex C-t, in the echo area @findex echo-area-transpose-chars -Transposes the characters at the cursor. +Transpose the characters at the cursor. @end table The next group of commands deal with @dfn{killing}, and @dfn{yanking} @@ -856,32 +941,32 @@ @item @code{M-d} (@code{echo-area-kill-word}) @kindex M-d, in the echo area @findex echo-area-kill-word -Kills the word following the cursor. +Kill the word following the cursor. @item @code{M-DEL} (@code{echo-area-backward-kill-word}) @kindex M-DEL, in the echo area @findex echo-area-backward-kill-word -Kills the word preceding the cursor. +Kill the word preceding the cursor. @item @code{C-k} (@code{echo-area-kill-line}) @kindex C-k, in the echo area @findex echo-area-kill-line -Kills the text from the cursor to the end of the line. +Kill the text from the cursor to the end of the line. @item @code{C-x DEL} (@code{echo-area-backward-kill-line}) @kindex C-x DEL, in the echo area @findex echo-area-backward-kill-line -Kills the text from the cursor to the beginning of the line. +Kill the text from the cursor to the beginning of the line. @item @code{C-y} (@code{echo-area-yank}) @kindex C-y, in the echo area @findex echo-area-yank -Yanks back the contents of the last kill. +Yank back the contents of the last kill. @item @code{M-y} (@code{echo-area-yank-pop}) @kindex M-y, in the echo area @findex echo-area-yank-pop -Yanks back a previous kill, removing the last yanked text first. +Yank back a previous kill, removing the last yanked text first. @end table Sometimes when reading input in the echo area, the command that needed @@ -901,26 +986,36 @@ @kindex TAB, in the echo area @kindex SPC, in the echo area @findex echo-area-complete -Inserts as much of a completion as is possible. +Insert as much of a completion as is possible. @item @code{?} (@code{echo-area-possible-completions}) @kindex ?, in the echo area @findex echo-area-possible-completions -Displays a window containing a list of the possible completions of what +Display a window containing a list of the possible completions of what you have typed so far. For example, if the available choices are: + @example +@group bar foliate food forget +@end group @end example + +@noindent and you have typed an @samp{f}, followed by @samp{?}, the possible completions would contain: + @example +@group foliate food forget +@end group @end example + +@noindent i.e., all of the choices which begin with @samp{f}. Pressing @key{SPC} or @key{TAB} would result in @samp{fo} appearing in the echo area, since all of the choices which begin with @samp{f} continue with @samp{o}. @@ -931,30 +1026,30 @@ @item @code{ESC C-v} (@code{echo-area-scroll-completions-window}) @kindex ESC C-v, in the echo area @findex echo-area-scroll-completions-window -Scrolls the completions window, if that is visible, or the "other" +Scroll the completions window, if that is visible, or the "other" window if not. @end table -@node Printing Nodes +@node Printing Nodes, Miscellaneous Commands, Window Commands, Top @chapter Printing Out Nodes @cindex printing You may wish to print out the contents of a node as a quick reference document for later use. Info provides you with a command for doing this. In general, we recommend that you use @TeX{} to format the -document and print sections of it, by running @code{tex} on the texinfo +document and print sections of it, by running @code{tex} on the Texinfo source file. @table @asis @item @code{M-x print-node} @findex print-node @cindex INFO_PRINT_COMMAND, environment variable -Pipes the contents of the current node through the command in the -environment variable @code{INFO_PRINT_COMMAND}. If the variable doesn't +Pipe the contents of the current node through the command in the +environment variable @code{INFO_PRINT_COMMAND}. If the variable does not exist, the node is simply piped to @code{lpr}. @end table -@node Miscellaneous Commands +@node Miscellaneous Commands, Variables, Printing Nodes, Top @chapter Miscellaneous Commands GNU Info contains several commands which self-document GNU Info: @@ -964,22 +1059,22 @@ @cindex functions, describing @cindex commands, describing @findex describe-command -Reads the name of an Info command in the echo area and then displays a +Read the name of an Info command in the echo area and then display a brief description of what that command does. @item @code{M-x describe-key} @cindex keys, describing @findex describe-key -Reads a key sequence in the echo area, and then displays the name and +Read a key sequence in the echo area, and then display the name and documentation of the Info command that the key sequence invokes. @item @code{M-x describe-variable} -Reads the name of a variable in the echo area and then displays a brief +Read the name of a variable in the echo area and then display a brief description of what the variable affects. @item @code{M-x where-is} @findex where-is -Reads the name of an Info command in the echo area, and then displays +Read the name of an Info command in the echo area, and then display a key sequence which can be typed in order to invoke that command. @item @code{C-h} (@code{get-help-window}) @@ -987,17 +1082,17 @@ @kindex C-h @kindex ?, in Info windows @findex get-help-window -Creates (or moves into) the window displaying @code{*Help*}, and places +Create (or Move into) the window displaying @code{*Help*}, and place a node containing a quick reference card into it. This window displays the most concise information about GNU Info available. @item @code{h} (@code{get-info-help-node}) @kindex h @findex get-info-help-node -Tries hard to visit the node @code{(info)Help}. The info file +Try hard to visit the node @code{(info)Help}. The Info file @file{info.texi} distributed with GNU Info contains this node. Of course, the file must first be processed with @code{makeinfo}, and then -placed into the location of your info directory. +placed into the location of your Info directory. @end table Here are the commands for creating a numeric argument: @@ -1007,7 +1102,7 @@ @cindex numeric arguments @kindex C-u @findex universal-argument -Starts (or multiplies by 4) the current numeric argument. @samp{C-u} is +Start (or multiply by 4) the current numeric argument. @samp{C-u} is a good way to give a small numeric argument to cursor movement or scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while @samp{C-u C-u C-n} moves the cursor down 16 lines. @@ -1016,7 +1111,7 @@ @itemx @code{M-2} @dots{} @code{M-9} @kindex M-1 @dots{} M-9 @findex add-digit-to-numeric-arg -Adds the digit value of the invoking key to the current numeric +Add the digit value of the invoking key to the current numeric argument. Once Info is reading a numeric argument, you may just type the digits of the argument, without the Meta prefix. For example, you might give @samp{C-l} a numeric argument of 32 by typing: @@ -1024,7 +1119,10 @@ @example @kbd{C-u 3 2 C-l} @end example + +@noindent or + @example @kbd{M-3 2 C-l} @end example @@ -1040,7 +1138,7 @@ @cindex cancelling the current operation @kindex C-g, in Info windows @findex abort-key -Cancels current operation. +Cancel current operation. @end table The @samp{q} command of Info simply quits running Info. @@ -1050,7 +1148,7 @@ @cindex quitting @kindex q @findex quit -Exits GNU Info. +Exit GNU Info. @end table If the operating system tells GNU Info that the screen is 60 lines tall, @@ -1061,7 +1159,7 @@ @item @code{M-x set-screen-height} @findex set-screen-height @cindex screen, changing the height of -Reads a height value in the echo area and sets the height of the +Read a height value in the echo area and set the height of the displayed screen to that value. @end table @@ -1073,26 +1171,26 @@ @kindex ESC C-f @findex show-footnotes @cindex footnotes, displaying -Shows the footnotes (if any) associated with the current node in another +Show the footnotes (if any) associated with the current node in another window. You can have Info automatically display the footnotes associated with a node when the node is selected by setting the variable @code{automatic-footnotes}. @xref{Variables, , @code{automatic-footnotes}}. @end table -@node Variables +@node Variables, GNU Info Global Index, Miscellaneous Commands, Top @chapter Manipulating Variables -GNU Info contains several @dfn{variables} whose values are looked at by various -Info commands. You can change the values of these variables, and thus -change the behaviour of Info to more closely match your environment and -info file reading manner. +GNU Info contains several @dfn{variables} whose values are looked at by +various Info commands. You can change the values of these variables, +and thus change the behavior of Info to more closely match your +environment and Info file reading manner. @table @asis @item @code{M-x set-variable} @cindex variables, setting @findex set-variable -Reads the name of a variable, and the value for it, in the echo area and -then sets the variable to that value. Completion is available when +Read the name of a variable, and the value for it, in the echo area and +then set the variable to that value. Completion is available when reading the variable name; often, completion is available when reading the value to give to the variable, but that depends on the variable itself. If a variable does @emph{not} supply multiple choices to @@ -1101,7 +1199,7 @@ @item @code{M-x describe-variable} @cindex variables, describing @findex describe-variable -Reads the name of a variable in the echo area and then displays a brief +Read the name of a variable in the echo area and then display a brief description of what the variable affects. @end table @@ -1149,11 +1247,11 @@ @vindex gc-compressed-files When set to @code{On}, Info garbage collects files which had to be uncompressed. The default value of this variable is @code{Off}. -Whenever a node is visited in Info, the info file containing that node +Whenever a node is visited in Info, the Info file containing that node is read into core, and Info reads information about the tags and nodes contained in that file. Once the tags information is read by Info, it is never forgotten. However, the actual text of the nodes does not need -to remain in core unless a particular info window needs it. For +to remain in core unless a particular Info window needs it. For non-compressed files, the text of the nodes does not remain in core when it is no longer in use. But de-compressing a file can be a time consuming operation, and so Info tries hard not to do it twice. @@ -1170,26 +1268,26 @@ string that you had typed is highlighted by displaying it in the inverse case from its surrounding characters. -@item scroll-behaviour -@vindex scroll-behaviour -Controls what happens when forward scrolling is requested at the end of +@item scroll-behavior +@vindex scroll-behavior +Control what happens when forward scrolling is requested at the end of a node, or when backward scrolling is requested at the beginning of a node. The default value for this variable is @code{Continuous}. There are three possible values for this variable: @table @code @item Continuous -Tries to get the first item in this node's menu, or failing that, the +Try to get the first item in this node's menu, or failing that, the @samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}. -This behaviour is identical to using the @samp{]} +This behavior is identical to using the @samp{]} (@code{global-next-node}) and @samp{[} (@code{global-prev-node}) commands. @item Next Only -Only tries to get the @samp{Next} node. +Only try to get the @samp{Next} node. @item Page Only -Simply gives up, changing nothing. If @code{scroll-behaviour} is +Simply give up, changing nothing. If @code{scroll-behavior} is @code{Page Only}, no scrolling command can change the node that is being viewed. @end table @@ -1209,23 +1307,23 @@ some people prefer. @item ISO-Latin -@cindex ISO Latin-1 characters +@cindex ISO Latin characters @vindex ISO-Latin -When set to @code{On}, Info accepts and displays ISO Latin-1 characters. +When set to @code{On}, Info accepts and displays ISO Latin characters. By default, Info assumes an ASCII character set. @code{ISO-Latin} tells Info that it is running in an environment where the European standard character set is in use, and allows you to input such characters to Info, as well as display them. @end table -@c The following node and its children are currently unfinished. Please feel -@c free to finish it! + -@ifset NOTSET -@node Info for Sys Admins -@chapter Info for System Administrators +@c the following is incomplete +@ignore +@c node Info for Sys Admins +@c chapter Info for System Administrators -This text describes some common ways of setting up an Info heierarchy +This text describes some common ways of setting up an Info hierarchy from scratch, and details the various options that are available when installing Info. This text is designed for the person who is installing GNU Info on the system; although users may find the information present @@ -1233,36 +1331,43 @@ use GNU Info. @menu -* Setting the INFOPATH:: Where are my Info files kept? -* Editing the DIR node:: What goes in `DIR', and why? -* Storing Info files:: Alternate formats allow flexibilty in setups. -* Using `localdir':: Building DIR on the fly. -* Example setups:: Some common ways to origanize Info files. +* Setting the INFOPATH:: Where are my Info files kept? +* Editing the DIR node:: What goes in `DIR', and why? +* Storing Info files:: Alternate formats allow flexibility in setups. +* Using `localdir':: Building DIR on the fly. +* Example setups:: Some common ways to organize Info files. @end menu -@node Setting the INFOPATH -@section Setting the INFOPATH +@c node Setting the INFOPATH +@c section Setting the INFOPATH + Where are my Info files kept? -@node Editing the DIR node -@section Editing the DIR node +@c node Editing the DIR node +@c section Editing the DIR node + What goes in `DIR', and why? -@node Storing Info files -@section Storing Info files -Alternate formats allow flexibilty in setups. +@c node Storing Info files +@c section Storing Info files -@node Using `localdir' -@section Using `localdir' +Alternate formats allow flexibility in setups. + +@c node Using `localdir' +@c section Using `localdir' + Building DIR on the fly. -@node Example setups -@section Example setups -Some common ways to origanize Info files. -@end ifset +@c node Example setups +@c section Example setups + +Some common ways to organize Info files. +@end ignore -@ifset STANDALONE -@node GNU Info Global Index +@node GNU Info Global Index, , Variables, Top @appendix Global Index + @printindex cp -@end ifset + +@contents +@bye
--- a/man/info.texi Mon Aug 13 08:56:06 2007 +0200 +++ b/man/info.texi Mon Aug 13 08:56:41 2007 +0200 @@ -1,18 +1,20 @@ \input texinfo @c -*-texinfo-*- @comment %**start of header -@setfilename ../info/info.info +@setfilename info.info @settitle Info 1.0 @comment %**end of header +@comment $Id: info.texi,v 1.3 1997/08/30 03:56:39 steve Exp $ -@iftex -@finalout -@end iftex +@dircategory Texinfo documentation system +@direntry +* Info: (info). Documentation browsing system. +@end direntry @ifinfo This file describes how to use Info, the on-line, menu-driven GNU documentation system. -Copyright (C) 1989, 1992 Free Software Foundation, Inc. +Copyright (C) 1989, 92, 96, 97 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -36,25 +38,19 @@ by the Free Software Foundation. @end ifinfo -@setchapternewpage odd @titlepage -@sp 11 -@center @titlefont{Info} -@sp 2 -@center The -@sp 2 -@center On-line, Menu-driven -@sp 2 -@center GNU Documentation System - +@title Info +@subtitle The online, menu-driven GNU documentation system +@author Brian Fox @page @vskip 0pt plus 1filll -Copyright @copyright{} 1989, 1992, 1993 Free Software Foundation, Inc. +Copyright @copyright{} 1989, 1992, 1993, 1996, 1997 Free Software +Foundation, Inc. @sp 2 Published by the Free Software Foundation @* -675 Massachusetts Avenue, @* -Cambridge, MA 02139 USA @* +59 Temple Place - Suite 330 @* +Boston, MA 02111-1307, USA. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -71,23 +67,21 @@ by the Free Software Foundation. @end titlepage -@paragraphindent 3 @ifinfo -@node Top, Getting Started, (dir), (dir) +@node Top, Getting Started, , (dir) @top Info: An Introduction Info is a program for reading documentation, which you are using now. To learn how to use Info, type the command @kbd{h}. It brings you -to a programmed instruction sequence. If at any time you are ready to -stop using Info, type @samp{q}. +to a programmed instruction sequence. @c Need to make sure that `Info-help' goes to the right node, @c which is the first node of the first chapter. (It should.) @c (Info-find-node "info" -@c (if (< (window-height) 23) -@c "Help-Small-Screen" -@c "Help"))) +@c (if (< (window-height) 23) +@c "Help-Small-Screen" +@c "Help"))) To learn advanced Info commands, type @kbd{n} twice. This brings you to @cite{Info for Experts}, skipping over the `Getting Started' chapter. @@ -97,6 +91,7 @@ * Getting Started:: Getting started using an Info reader. * Advanced Info:: Advanced commands within Info. * Create an Info File:: How to make your own Info file. +* The Standalone Info Program: (info-stnd.info). @end menu @node Getting Started, Advanced Info, Top, Top @@ -122,7 +117,7 @@ @enumerate @item Type @code{info} at your shell's command line. This approach uses a -stand-alone program designed just to read Info files. +small stand-alone program designed just to read Info files. @item Type @code{emacs} at the command line; then type @kbd{C-h i} (Control @@ -148,7 +143,6 @@ * Help-M:: Menus * Help-Adv:: Some advanced Info commands * Help-Q:: Quitting Info -* Using Stand-alone Info:: How to use the stand-alone Info reader. @end menu @node Help-Small-Screen, Help, , Getting Started @@ -168,54 +162,54 @@ screen. If you see @samp{--Top----} instead, it means that there is more text below that does not fit. To move forward through the text and see another screen full, press the Space bar, @key{SPC}. To move -back up, press the key labeled @samp{Delete} or @key{DEL}. +back up, press the key labeled @samp{Backspace} or @key{Delete}. @ifinfo Here are 40 lines of junk, so you can try Spaces and Deletes and see what they do. At the end are instructions of what you should do next. -@format -This is line 17 -This is line 18 -This is line 19 -This is line 20 -This is line 21 -This is line 22 -This is line 23 -This is line 24 -This is line 25 -This is line 26 -This is line 27 -This is line 28 -This is line 29 -This is line 30 -This is line 31 -This is line 32 -This is line 33 -This is line 34 -This is line 35 -This is line 36 -This is line 37 -This is line 38 -This is line 39 -This is line 40 -This is line 41 -This is line 42 -This is line 43 -This is line 44 -This is line 45 -This is line 46 -This is line 47 -This is line 48 -This is line 49 -This is line 50 -This is line 51 -This is line 52 -This is line 53 -This is line 54 -This is line 55 -This is line 56 -@end format + +This is line 17 @* +This is line 18 @* +This is line 19 @* +This is line 20 @* +This is line 21 @* +This is line 22 @* +This is line 23 @* +This is line 24 @* +This is line 25 @* +This is line 26 @* +This is line 27 @* +This is line 28 @* +This is line 29 @* +This is line 30 @* +This is line 31 @* +This is line 32 @* +This is line 33 @* +This is line 34 @* +This is line 35 @* +This is line 36 @* +This is line 37 @* +This is line 38 @* +This is line 39 @* +This is line 40 @* +This is line 41 @* +This is line 42 @* +This is line 43 @* +This is line 44 @* +This is line 45 @* +This is line 46 @* +This is line 47 @* +This is line 48 @* +This is line 49 @* +This is line 50 @* +This is line 51 @* +This is line 52 @* +This is line 53 @* +This is line 54 @* +This is line 55 @* +This is line 56 @* + If you have managed to get here, go back to the beginning with Delete, and come back here again, then you understand Space and Delete. So now type an @kbd{n} ---just one character; don't type @@ -244,10 +238,8 @@ Now it is time to move on to the @samp{Next} node, named @samp{Help-P}. -@format >> Type @samp{n} to move there. Type just one character; do not type the quotes and do not type a @key{RET} afterward. -@end format @samp{>>} in the margin means it is really time to try a command. @@ -260,20 +252,16 @@ command. Another @kbd{n} command now would take you to the next node, @samp{Help-^L}. -@format >> But do not do that yet. First, try the @kbd{p} command, which takes you to the @samp{Previous} node. When you get there, you can do an @kbd{n} again to return here. -@end format This all probably seems insultingly simple so far, but @emph{do not} be led into skimming. Things will get more complicated soon. Also, do not try a new command until you are told it is time to. Otherwise, you may make Info skip past an important warning that was coming up. -@format >> Now do an @kbd{n} to get to the node @samp{Help-^L} and learn more. -@end format @node Help-^L, Help-M, Help-P, Getting Started @comment node-name, next, previous, up @@ -294,9 +282,7 @@ Delete moves backward, to show what was above the top of the screen (there is not anything above the top until you have typed some spaces). -@format >> Now try typing a Space (afterward, type a Delete to return here). -@end format When you type the space, the two lines that were at the bottom of the screen appear at the top, followed by more lines. Delete takes @@ -312,41 +298,33 @@ again by typing @kbd{C-l} (@kbd{Control-L}, that is---hold down ``Control'' and type an @key{L} or @kbd{l}). -@format >> Type @kbd{C-l} now. -@end format To move back to the beginning of the node you are on, you can type a lot of Deletes. You can also type simply @kbd{b} for beginning. -@format >> Try that now. (We have put in enough verbiage to push this past the first screenful, but screens are so big nowadays that perhaps it isn't enough. You may need to shrink your Emacs or Info window.) Then come back, with Spaces. -@end format -If your screen is very tall, all of this node might fit at once. + If your screen is very tall, all of this node might fit at once. In that case, "b" won't do anything. Sorry; what can we do? You have just learned a considerable number of commands. If you want to use one but have trouble remembering which, you should type a @key{?} which prints out a brief list of commands. When you are -finished looking at the list, make it go away by typing a @key{SPC}. +finished looking at the list, make it go away by pressing @key{SPC} +repeatedly. -@format ->> Type a @key{?} now. After it finishes, type a @key{SPC}. -@end format - - (If you are using the standalone Info reader, type `l' to return here.) +>> Type a @key{?} now. Press @key{SPC} to see consecutive screenfuls of +>> the list until finished. From now on, you will encounter large nodes without warning, and will be expected to know how to use Space and Delete to move around in them without being told. Since not all terminals have the same size screen, it would be impossible to warn you anyway. -@format >> Now type @kbd{n} to see the description of the @kbd{m} command. -@end format @node Help-M, Help-Adv, Help-^L, Getting Started @comment node-name, next, previous, up @@ -400,13 +378,11 @@ This means that the subtopic name and node name are the same; they are both @samp{Foo}. -@format >> Now use Spaces to find the menu in this node, then come back to the front with a @kbd{b} and some Spaces. As you see, a menu is actually visible in its node. If you cannot find a menu in a node by looking at it, then the node does not have a menu and the @kbd{m} command is not available. -@end format The command to go to one of the subnodes is @kbd{m}---but @emph{do not do it yet!} Before you use @kbd{m}, you must understand the @@ -453,7 +429,7 @@ Here is a menu to give you a chance to practice. -* Menu: The menu starts here. +* Menu: The menu starts here. This menu gives you three ways of going to one place, Help-FOO. @@ -462,38 +438,30 @@ * Help-FOO:: And yet another!@* -@format >> Now type just an @kbd{m} and see what happens: -@end format Now you are ``inside'' an @kbd{m} command. Commands cannot be used now; the next thing you will type must be the name of a subtopic. You can change your mind about doing the @kbd{m} by typing Control-g. -@format >> Try that now; notice the bottom line clear. >> Then type another @kbd{m}. >> Now type @samp{BAR} item name. Do not type Return yet. -@end format While you are typing the item name, you can use the Delete key to cancel one character at a time if you make a mistake. -@format >> Type one to cancel the @samp{R}. You could type another @samp{R} to replace it. You do not have to, since @samp{BA} is a valid abbreviation. >> Now you are ready to go. Type a @key{RET}. -@end format After visiting Help-FOO, you should return here. -@format >> Type @kbd{n} to see more commands. -@end format @c If a menu appears at the end of this node, remove it. @c It is an accident of the menu updating command. @@ -522,9 +490,7 @@ node---to get back to where you were reading you have to type some @key{SPC}s. -@format >> Now type @kbd{u} to move back up to @samp{Help-M}. -@end format @node Help-Adv, Help-Q, Help-M, Getting Started @comment node-name, next, previous, up @@ -544,10 +510,8 @@ @kbd{u} and get you back to @samp{Help-FOO}. Another @kbd{l} would undo the @kbd{m} and get you back to @samp{Help-M}. -@format >> Try typing three @kbd{l}'s, pausing in between to see what each @kbd{l} does. -@end format Then follow directions again and you will end up back here. @@ -561,10 +525,8 @@ has a menu which leads (directly, or indirectly through other menus), to all the nodes that exist. -@format >> Try doing a @samp{d}, then do an @kbd{l} to return here (yes, @emph{do} return). -@end format Sometimes, in Info documentation, you will see a cross reference. Cross references look like this: @xref{Help-Cross, Cross}. That is a @@ -580,9 +542,7 @@ Completion is available in the @samp{f} command; you can complete among all the cross reference names in the current node by typing a Tab. -@format >> Type @samp{f}, followed by @samp{Cross}, and a @key{RET}. -@end format To get a list of all the cross references in the current node, you can type @kbd{?} after an @samp{f}. The @samp{f} continues to await a @@ -590,12 +550,10 @@ actually want to follow a reference, you should type a @kbd{Control-g} to cancel the @samp{f}. -@format >> Type "f?" to get a list of the cross references in this node. Then type a @kbd{Control-g} and see how the @samp{f} gives up. >> Now type @kbd{n} to see the last node of the course. -@end format @c If a menu appears at the end of this node, remove it. @c It is an accident of the menu updating command. @@ -613,9 +571,7 @@ where you came from. In general, the @kbd{l} (el) command is the only way to get back there. -@format >> Type @kbd{l} to return to the node where the cross reference was. -@end format @node Help-Q, , Help-Adv, Getting Started @comment node-name, next, previous, up @@ -630,11 +586,9 @@ Info. Finding them will be a good exercise in using Info in the usual manner. -@format >> Type @samp{d} to go to the Info directory node; then type @samp{mInfo} and Return, to get to the node about Info and see what other help is available. -@end format @node Advanced Info, Create an Info File, Getting Started, Top @comment node-name, next, previous, up @@ -921,7 +875,7 @@ Variables, Examining and Setting Variables, emacs, The GNU Emacs Manual}. -@table @code +@vtable @code @item Info-enable-edit Set to @code{nil}, disables the @samp{e} (@code{Info-edit}) command. A non-@code{nil} value enables it. @xref{Add, Edit}. @@ -932,15 +886,13 @@ selected. @item Info-directory-list -The list of directories to search for Info files. This variable is set -on startup automatically either from the @code{INFOPATH} environment -variable (if it exists) or, else, @code{Info-default-directory-list}. -Any user settings of this variable will be ignored. +The list of directories to search for Info files. Each element is a +string (directory name) or @code{nil} (try default directory). -@item Info-default-directory-list -List of default directories to search for Info documentation files. -This value is used as the default for @code{Info-directory-list} in the -absence of a setting for the @code{INFOPATH} environment variable. +@item Info-directory +The standard directory for Info documentation files. Only used when the +function @code{Info-directory} is called. +@end vtable @node Create an Info File, , Advanced Info, Top @comment node-name, next, previous, up @@ -956,11 +908,4 @@ @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU Documentation Format}, to learn how to write a Texinfo file. -@nwnode Using Stand-alone Info, Options, , Top -@chapter Using the Stand-alone Info Reader -@lowersections -@c Make the paragraph indentation match the rest of this file. -@paragraphindent 2 -@include info-stnd.texi -@raisesections @bye
--- a/man/internals/internals.texi Mon Aug 13 08:56:06 2007 +0200 +++ b/man/internals/internals.texi Mon Aug 13 08:56:41 2007 +0200 @@ -209,7 +209,7 @@ Buffers and Textual Representation * Introduction to Buffers:: A buffer holds a block of text such as a file. -* A Buffer@'s Text:: Representation of the text in a buffer. +* A Buffer's Text:: Representation of the text in a buffer. * Buffer Lists:: Keeping track of all buffers. * Markers and Extents:: Tagging locations within a buffer. * Bufbytes and Emchars:: Representation of individual characters. @@ -5322,7 +5322,7 @@ @menu * Introduction to Buffers:: A buffer holds a block of text such as a file. -* A Buffer@'s Text:: Representation of the text in a buffer. +* A Buffer's Text:: Representation of the text in a buffer. * Buffer Lists:: Keeping track of all buffers. * Markers and Extents:: Tagging locations within a buffer. * Bufbytes and Emchars:: Representation of individual characters. @@ -5382,7 +5382,7 @@ window. (This latter distinction is explained in detail in the section on windows.) -@node A Buffer@'s Text +@node A Buffer's Text @section A Buffer's Text The text in a buffer consists of a sequence of zero or more
--- a/man/ispell.texi Mon Aug 13 08:56:06 2007 +0200 +++ b/man/ispell.texi Mon Aug 13 08:56:41 2007 +0200 @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @comment %**start of header (This is for running Texinfo on a region.) -@setfilename ../info/ispell.info +@setfilename ispell.info @settitle ISPELL V3.1 @comment %**end of header (This is for running Texinfo on a region.) @@ -73,6 +73,8 @@ by the Foundation. @end titlepage +@node Top, Emacs, (dir), (dir) + @menu * Emacs:: Using ispell from emacs * Old Emacs:: Old Emacs @@ -91,7 +93,6 @@ * Multiple Dictionaries:: Using Multiple Dictionaries @end menu -@node Top, Emacs, (dir), (dir) @iftex @chapter ISPELL
--- a/man/texinfo.tex Mon Aug 13 08:56:06 2007 +0200 +++ b/man/texinfo.tex Mon Aug 13 08:56:41 2007 +0200 @@ -1,7 +1,8 @@ -%% TeX macros to handle texinfo files +%% TeX macros to handle Texinfo files. +%% $Id: texinfo.tex,v 1.3 1997/08/30 03:56:39 steve Exp $ % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, -% 94, 95, 1996 Free Software Foundation, Inc. +% 94, 95, 96, 97 Free Software Foundation, Inc. %This texinfo.tex file is free software; you can redistribute it and/or %modify it under the terms of the GNU General Public License as @@ -35,7 +36,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 1.2 $ +\deftexinfoversion$Revision: 1.3 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number @@ -59,7 +60,6 @@ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t -\let\ptextilde=\~ % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space @@ -72,7 +72,6 @@ \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } -\let\~ = \tie % And make it available as @~. \message{Basics,} @@ -102,10 +101,11 @@ \hyphenation{ap-pen-dix} \hyphenation{mini-buf-fer mini-buf-fers} \hyphenation{eshell} +\hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset -\newdimen \normaloffset +\newdimen \bindingoffset +\newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file @@ -119,81 +119,101 @@ \showboxbreadth\maxdimen\showboxdepth\maxdimen }% -%---------------------Begin change----------------------- +% For @cropmarks command. +% Do @cropmarks to get crop marks. +% +\newif\ifcropmarks +\let\cropmarks = \cropmarkstrue % -%%%% For @cropmarks command. -% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986 +% Dimensions to add cropmarks at corners. +% Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\cornerlong \newdimen\cornerthick -\newdimen \topandbottommargin -\newdimen \outerhsize \newdimen \outervsize +\newdimen\topandbottommargin +\newdimen\outerhsize \newdimen\outervsize \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks \outerhsize=7in %\outervsize=9.5in % Alternative @smallbook page size is 9.25in \outervsize=9.25in \topandbottommargin=.75in -% -%---------------------End change----------------------- + +% Main output routine. +\chardef\PAGE = 255 +\output = {\onepageout{\pagecontents\PAGE}} + +\newbox\headlinebox +\newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. -\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}} \def\onepageout#1{% - \hoffset=\normaloffset + \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi + % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi + % + % Do this outside of the \shipout so @code etc. will be expanded in + % the headline as they should be, not taken literally (outputting ''code). + \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% + \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% + % {% - \escapechar = `\\ % use backslash in output files. - \indexdummies + % Have to do this stuff outside the \shipout because we want it to + % take effect in \write's, yet the group defined by the \vbox ends + % before the \shipout runs. + % + \escapechar = `\\ % use backslash in output files. + \indexdummies % don't expand commands in the output. + \normalturnoffactive % \ in index entries must not stay \, e.g., if + % the page break happens to be in the middle of an example. \shipout\vbox{% - {\let\hsize=\pagewidth \makeheadline}% + \ifcropmarks \vbox to \outervsize\bgroup + \hsize = \outerhsize + \line{\ewtop\hfil\ewtop}% + \nointerlineskip + \line{% + \vbox{\moveleft\cornerthick\nstop}% + \hfill + \vbox{\moveright\cornerthick\nstop}% + }% + \vskip\topandbottommargin + \line\bgroup + \hfil % center the page within the outer (page) hsize. + \ifodd\pageno\hskip\bindingoffset\fi + \vbox\bgroup + \fi + % + \unvbox\headlinebox \pagebody{#1}% - {\let\hsize=\pagewidth \makefootline}% - }% - }% + \ifdim\ht\footlinebox > 0pt + % Only leave this space if the footline is nonempty. + % (We lessened \vsize for it in \oddfootingxxx.) + % The \baselineskip=24pt in plain's \makefootline has no effect. + \vskip 2\baselineskip + \unvbox\footlinebox + \fi + % + \ifcropmarks + \egroup % end of \vbox\bgroup + \hfil\egroup % end of (centering) \line\bgroup + \vskip\topandbottommargin plus1fill minus1fill + \boxmaxdepth = \cornerthick + \line{% + \vbox{\moveleft\cornerthick\nsbot}% + \hfill + \vbox{\moveright\cornerthick\nsbot}% + }% + \nointerlineskip + \line{\ewbot\hfil\ewbot}% + \egroup % \vbox from first cropmarks clause + \fi + }% end of \shipout\vbox + }% end of group with \turnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } -%%%% For @cropmarks command %%%% - -% Here is a modification of the main output routine for Near East Publications -% This provides right-angle cropmarks at all four corners. -% The contents of the page are centerlined into the cropmarks, -% and any desired binding offset is added as an \hskip on either -% site of the centerlined box. (P. A. MacKay, 12 November, 1986) -% -\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up -{\escapechar=`\\\relax % makes sure backslash is used in output files. - \shipout - \vbox to \outervsize{\hsize=\outerhsize - \vbox{\line{\ewtop\hfill\ewtop}} - \nointerlineskip - \line{\vbox{\moveleft\cornerthick\nstop} - \hfill - \vbox{\moveright\cornerthick\nstop}} - \vskip \topandbottommargin - \centerline{\ifodd\pageno\hskip\bindingoffset\fi - \vbox{ - {\let\hsize=\pagewidth \makeheadline} - \pagebody{#1} - {\let\hsize=\pagewidth \makefootline}} - \ifodd\pageno\else\hskip\bindingoffset\fi} - \vskip \topandbottommargin plus1fill minus1fill - \boxmaxdepth\cornerthick - \line{\vbox{\moveleft\cornerthick\nsbot} - \hfill - \vbox{\moveright\cornerthick\nsbot}} - \nointerlineskip - \vbox{\line{\ewbot\hfill\ewbot}} - }} - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi} -% -% Do @cropmarks to get crop marks -\def\cropmarks{\let\onepageout=\croppageout } - \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} @@ -207,7 +227,6 @@ \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } -% % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) @@ -717,10 +736,11 @@ % \def\ignore{\doignore{ignore}} -% Also ignore @ifinfo, @ifhtml, @html, @menu, and @direntry text. +% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text. % \def\ifinfo{\doignore{ifinfo}} \def\ifhtml{\doignore{ifhtml}} +\def\ifnottex{\doignore{ifnottex}} \def\html{\doignore{html}} \def\menu{\doignore{menu}} \def\direntry{\doignore{direntry}} @@ -747,6 +767,10 @@ % Make sure that spaces turn into tokens that match what \doignoretext wants. \catcode32 = 10 % + % Ignore braces, too, so mismatched braces don't cause trouble. + \catcode`\{ = 9 + \catcode`\} = 9 + % % And now expand that command. \doignoretext } @@ -838,7 +862,7 @@ \pretolerance = 10000 % % Do not execute instructions in @tex - \def\tex{\doignore{tex}} + \def\tex{\doignore{tex}}% } % @set VAR sets the variable VAR to an empty value. @@ -850,7 +874,9 @@ % didn't need it. Make sure the catcode of space is correct to avoid % losing inside @example, for instance. % -\def\set{\begingroup\catcode` =10 \parsearg\setxxx} +\def\set{\begingroup\catcode` =10 + \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. + \parsearg\setxxx} \def\setxxx#1{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% \def\temp{#2}% @@ -871,10 +897,16 @@ % @value{foo} gets the text saved in variable foo. % -\def\value#1{\expandafter - \ifx\csname SET#1\endcsname\relax - {\{No value for ``#1''\}} - \else \csname SET#1\endcsname \fi} +\def\value{\begingroup + \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. + \valuexxx} +\def\valuexxx#1{% + \expandafter\ifx\csname SET#1\endcsname\relax + {\{No value for ``#1''\}}% + \else + \csname SET#1\endcsname + \fi +\endgroup} % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. @@ -906,11 +938,16 @@ \def\ifclearfail{\nestedignore{ifclear}} \defineunmatchedend{ifclear} -% @iftex always succeeds; we read the text following, through @end -% iftex). But `@end iftex' should be valid only after an @iftex. +% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text +% following, through the first @end iftex (etc.). Make `@end iftex' +% (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} +\def\ifnothtml{\conditionalsucceed{ifnothtml}} +\def\ifnotinfo{\conditionalsucceed{ifnotinfo}} \defineunmatchedend{iftex} +\defineunmatchedend{ifnothtml} +\defineunmatchedend{ifnotinfo} % We can't just want to start a group at @iftex (for example) and end it % at @end iftex, since then @set commands inside the conditional have no @@ -986,6 +1023,15 @@ \openindices \fixbackslash % Turn off hack to swallow `\input texinfo'. \global\let\setfilename=\comment % Ignore extra @setfilename cmds. + % + % If texinfo.cnf is present on the system, read it. + % Useful for site-wide @afourpaper, etc. + % Just to be on the safe side, close the input stream before the \input. + \openin 1 texinfo.cnf + \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi + \closein1 + \temp + % \comment % Ignore the actual filename. } @@ -1021,8 +1067,9 @@ % We don't need math for this one. \def\ttsl{\tenttsl} -%% Try out Computer Modern fonts at \magstephalf -\let\mainmagstep=\magstephalf +% Use Computer Modern fonts at \magstephalf (11pt). +\newcount\mainmagstep +\mainmagstep=\magstephalf % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). @@ -1094,13 +1141,26 @@ \font\indi=cmmi9 \font\indsy=cmsy9 +% Fonts for title page: +\setfont\titlerm\rmbshape{12}{\magstep3} +\setfont\titleit\itbshape{10}{\magstep4} +\setfont\titlesl\slbshape{10}{\magstep4} +\setfont\titlett\ttbshape{12}{\magstep3} +\setfont\titlettsl\ttslshape{10}{\magstep4} +\setfont\titlesf\sfbshape{17}{\magstep1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\authorrm{\secrm} + % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} \setfont\chapit\itbshape{10}{\magstep3} \setfont\chapsl\slbshape{10}{\magstep3} \setfont\chaptt\ttbshape{12}{\magstep2} \setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{12}{\magstep2} +\setfont\chapsf\sfbshape{17}{1000} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3} \font\chapi=cmmi12 scaled \magstep2 @@ -1137,19 +1197,15 @@ \setfont\ssecit\itbshape{10}{1315} \setfont\ssecsl\slbshape{10}{1315} \setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{\magstep1} +\setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{\magstep1} \font\sseci=cmmi12 scaled \magstephalf -\font\ssecsy=cmsy10 scaled \magstep1 +\font\ssecsy=cmsy10 scaled 1315 % The smallcaps and symbol fonts should actually be scaled \magstep1.5, % but that is not a standard magnification. -% Fonts for title page: -\setfont\titlerm\rmbshape{12}{\magstep3} -\let\authorrm = \secrm - % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts, we @@ -1174,6 +1230,13 @@ \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \resetmathfonts} +\def\titlefonts{% + \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl + \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc + \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy + \let\tenttsl=\titlettsl + \resetmathfonts \setleading{25pt}} +\def\titlefont#1{{\titlefonts #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc @@ -1251,8 +1314,6 @@ \def\ctrl #1{{\tt \rawbackslash \hat}#1} \let\file=\samp -\let\url=\samp % perhaps include a hypertex \special eventually -\def\email#1{$\langle${\tt #1}$\rangle$} % @code is a modification of @t, % which makes spaces the same size as normal in the surrounding text. @@ -1289,36 +1350,85 @@ { \catcode`\-=\active \catcode`\_=\active +\catcode`\|=\active \global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex} % The following is used by \doprintindex to insure that long function names % wrap around. It is necessary for - and _ to be active before the index is % read from the file, as \entry parses the arguments long before \code is % ever called. -- mycroft -\global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder} +% _ is always active; and it shouldn't be \let = to an _ that is a +% subscript character anyway. Then, @cindex @samp{_} (for example) +% fails. --karl +\global\def\indexbreaks{% + \catcode`\-=\active \let-\realdash +} } \def\realdash{-} -\def\realunder{_} \def\codedash{-\discretionary{}{}{}} -\def\codeunder{\normalunderscore\discretionary{}{}{}} +\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} \def\codex #1{\tclose{#1}\endgroup} %\let\exp=\tclose %Was temporary % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. -% + +% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), +% `example' (@kbd uses ttsl only inside of @example and friends), +% or `code' (@kbd uses normal tty font always). +\def\kbdinputstyle{\parsearg\kbdinputstylexxx} +\def\kbdinputstylexxx#1{% + \def\arg{#1}% + \ifx\arg\worddistinct + \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% + \else\ifx\arg\wordexample + \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% + \else\ifx\arg\wordcode + \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \fi\fi\fi +} +\def\worddistinct{distinct} +\def\wordexample{example} +\def\wordcode{code} + +% Default is kbdinputdistinct. (Too much of a hassle to call the macro, +% the catcodes are wrong for parsearg to work.) +\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} + \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\ttsl\look}}\fi -\else{\tclose{\ttsl\look}}\fi} +\else{\tclose{\kbdfont\look}}\fi +\else{\tclose{\kbdfont\look}}\fi} + +% @url. Quotes do not seem necessary, so use \code. +\let\url=\code + +% @uref (abbreviation for `urlref') takes an optional second argument +% specifying the text to display. First (mandatory) arg is the url. +% Perhaps eventually put in a hypertex \special here. +% +\def\uref#1{\urefxxx #1,,\finish} +\def\urefxxx#1,#2,#3\finish{% + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \unhbox0\ (\code{#1})% + \else + \code{#1}% + \fi +} + +% rms does not like the angle brackets --karl, 17may97. +% So now @email is just like @uref. +%\def\email#1{$\langle${\tt #1}$\rangle$} +\let\email=\uref % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. -% +% \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Typeset a dimension, e.g., `in' or `pt'. The only reason for the @@ -1349,8 +1459,6 @@ \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. -\def\titlefont#1{{\titlerm #1}} - \newif\ifseenauthor \newif\iffinishedtitlepage @@ -1372,7 +1480,7 @@ % % Now you can print the title using @title. \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefont{##1}} + \def\titlezzz##1{\leftline{\titlefonts\rm ##1} % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% @@ -1461,10 +1569,7 @@ \gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\everyheadingxxx #1{\everyheadingyyy #1@|@|@|@|\finish} -\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} +\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} \gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% @@ -1472,12 +1577,15 @@ \gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} \gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish} -\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} + \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% + % + % Leave some space for the footline. Hopefully ok to assume + % @evenfooting will not be used by itself. + \global\advance\pageheight by -\baselineskip + \global\advance\vsize by -\baselineskip +} + +\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} % }% unbind the catcode of @. @@ -1861,7 +1969,7 @@ \def\itemizeitem{% \advance\itemno by 1 {\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{\in hmode at itemizeitem}\fi +\ifhmode \errmessage{In hmode at itemizeitem}\fi {\parskip=0in \hskip 0pt \hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% \vadjust{\penalty 1200}}% @@ -1879,7 +1987,7 @@ % To make preamble: % -% Either define widths of columns in terms of percent of \hsize: +% Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % @@ -1897,13 +2005,13 @@ % the preamble, break the line within one argument and it % will parse correctly, i.e., % -% @multitable {Column 1 template} {Column 2 template} {Column 3 +% @multitable {Column 1 template} {Column 2 template} {Column 3 % template} % Not: -% @multitable {Column 1 template} {Column 2 template} +% @multitable {Column 1 template} {Column 2 template} % {Column 3 template} -% Each new table line starts with @item, each subsequent new column +% Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. @@ -1915,15 +2023,15 @@ % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col -% @item -% first col stuff -% @tab -% second col stuff -% @tab -% third col -% @item first col stuff @tab second col stuff +% @item +% first col stuff +% @tab +% second col stuff +% @tab +% third col +% @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. -% +% % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable @@ -1937,7 +2045,7 @@ % 0pt means it depends on current normal line spacing. %%%% -% Dimensions +% Dimensions \newskip\multitableparskip \newskip\multitableparindent @@ -2007,18 +2115,18 @@ % To parse everything between @multitable and @item : \setuptable#1 \endsetuptable % Need to reset this to 0 after \setuptable. -\global\colcount=0\relax% +\global\colcount=0\relax% % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. - % \vtop will set a single line and will also let text wrap and + % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup&\global\advance\colcount by 1\relax% \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. - % If a template has been used, we will add \multitablecolspace + % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % If user has set preamble in terms of percent of \hsize % we will use that dimension as the width of the column, and @@ -2030,19 +2138,31 @@ \ifsetpercent \else % If user has <not> set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace + % we will advance \hsize by \multitablecolspace \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi -\noindent##\multistrut}\cr% + % Ignoring space at the beginning and end avoids an occasional spurious + % blank line, when TeX decides to break the line at the space before the + % box from the multistrut, so the strut ends up on a line by itself. + % For example: + % @multitable @columnfractions .11 .89 + % @item @code{#} + % @tab Legal holiday which is valid in major parts of the whole country. + % Is automatically provided with highlighting sequences respectively marking + % characters. + \noindent\ignorespaces##\unskip\multistrut}\cr % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. + % each line. Every column entry will cause \colcount to advance by one. % The table preamble % looks at the current \colcount to find the correct column width. \global\everycr{\noalign{% -\filbreak%% keeps underfull box messages off when table breaks over pages. +% \filbreak%% keeps underfull box messages off when table breaks over pages. +% Maybe so, but it also creates really weird page breaks when the table +% breaks over pages Wouldn't \vfil be better? Wait until the problem +% manifests itself, so it can be fixed for real --karl. \global\colcount=0\relax}} } @@ -2054,7 +2174,7 @@ %% to keep lines equally spaced \let\multistrut = \strut %% Test to see if parskip is larger than space between lines of -%% table. If not, do nothing. +%% table. If not, do nothing. %% If so, set to same dimension as multitablelinespace. \else \gdef\multistrut{\vrule height\multitablelinespace depth\dp0 @@ -2189,7 +2309,13 @@ %\def\char{\realbackslash char}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% -\def\copyright{\realbackslash copyright }% +\def\result{\realbackslash result}% +\def\equiv{\realbackslash equiv}% +\def\expansion{\realbackslash expansion}% +\def\print{\realbackslash print}% +\def\error{\realbackslash error}% +\def\point{\realbackslash point}% +\def\copyright{\realbackslash copyright}% \def\tclose##1{\realbackslash tclose {##1}}% \def\code##1{\realbackslash code {##1}}% \def\dotless##1{\realbackslash dotless {##1}}% @@ -2199,6 +2325,7 @@ \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% \def\b##1{\realbackslash b {##1}}% +\def\sc##1{\realbackslash sc {##1}}% \def\cite##1{\realbackslash cite {##1}}% \def\key##1{\realbackslash key {##1}}% \def\file##1{\realbackslash file {##1}}% @@ -2206,6 +2333,7 @@ \def\kbd##1{\realbackslash kbd {##1}}% \def\dfn##1{\realbackslash dfn {##1}}% \def\emph##1{\realbackslash emph {##1}}% +\def\value##1{\realbackslash value {##1}}% \unsepspaces } @@ -2296,7 +2424,7 @@ \indexdummies % Must do this here, since \bf, etc expand at this stage \escapechar=`\\ {% - \let\folio=0 % We will expand all macros now EXCEPT \folio. + \let\folio=0% We will expand all macros now EXCEPT \folio. \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % @@ -2370,27 +2498,16 @@ % Define the macros used in formatting output of the sorted index material. -% This is what you call to cause a particular index to get printed. -% Write -% @unnumbered Function Index -% @printindex fn - +% @printindex causes a particular index (the ??s file) to get printed. +% It does not print any chapter heading (usually an @unnumbered). +% \def\printindex{\parsearg\doprintindex} - \def\doprintindex#1{\begingroup \dobreak \chapheadingskip{10000}% % \indexfonts \rm \tolerance = 9500 \indexbreaks - \def\indexbackslash{\rawbackslashxx}% - % Index files are almost Texinfo source, but we use \ as the escape - % character. It would be better to use @, but that's too big a change - % to make right now. - \catcode`\\ = 0 - \catcode`\@ = 11 - \escapechar = `\\ - \begindoublecolumns % % See if the index file exists and is nonempty. \openin 1 \jobname.#1s @@ -2409,11 +2526,19 @@ \ifeof 1 (Index is empty) \else + % Index files are almost Texinfo source, but we use \ as the escape + % character. It would be better to use @, but that's too big a change + % to make right now. + \def\indexbackslash{\rawbackslashxx}% + \catcode`\\ = 0 + \catcode`\@ = 11 + \escapechar = `\\ + \begindoublecolumns \input \jobname.#1s + \enddoublecolumns \fi \fi \closein 1 - \enddoublecolumns \endgroup} % These macros are used by the sorted index file itself. @@ -2515,24 +2640,39 @@ \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. - \output = {\global\setbox\partialpage - =\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}% + \output = {\global\setbox\partialpage = \vbox{% + % + % Here is a possibility not foreseen in manmac: if we accumulate a + % whole lot of material, we might end up calling this \output + % routine twice in a row (see the doublecol-lose test, which is + % essentially a couple of indexes with @setchapternewpage off). In + % that case, we must prevent the second \partialpage from + % simply overwriting the first, causing us to lose the page. + % This will preserve it until a real output routine can ship it + % out. Generally, \partialpage will be empty when this runs and + % this will be a no-op. + \unvbox\partialpage + % + % Unvbox the main output page. + \unvbox255 + \kern-\topskip \kern\baselineskip + }}% \eject % - % Now switch to the double-column output routine. - \output={\doublecolumnout}% + % Use the double-column output routine for subsequent pages. + \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the - % execution time, so we may as well do it once. + % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant - % below is chosen so that the gutter has the same value (well, +- < - % 1pt) as it did when we hard-coded it. + % below is chosen so that the gutter has the same value (well, +-<1pt) + % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) @@ -2553,100 +2693,109 @@ % (undoubled) page height minus any material left over from the % previous page. \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage - % box0 will be the left-hand column, box1 the right. + % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar - \unvbox255 \penalty\outputpenalty + \unvbox255 + \penalty\outputpenalty } \def\pagesofar{% - % The contents of the output page -- any previous material, + % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split. \unvbox\partialpage \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } \def\enddoublecolumns{% - \output={\balancecolumns}\eject % split what we have - \endgroup + \output = {\balancecolumns}\eject % split what we have + \endgroup % started in \begindoublecolumns + % % Back to normal single-column typesetting, but take account of the % fact that we just accumulated some stuff on the output page. - \pagegoal=\vsize + \pagegoal = \vsize } \def\balancecolumns{% - % Called on the last page of the double column material. - \setbox0=\vbox{\unvbox255}% + % Called at the end of the double column material. + \setbox0 = \vbox{\unvbox255}% \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 \splittopskip = \topskip % Loop until we get a decent breakpoint. - {\vbadness=10000 \loop \global\setbox3=\copy0 + {\vbadness=10000 \loop + \global\setbox3=\copy0 \global\setbox1=\vsplit3 to\dimen@ - \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}% + \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt + \repeat}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% \pagesofar } -\catcode `\@=\other +\catcode`\@ = \other \message{sectioning,} % Define chapters, sections, etc. -\newcount \chapno -\newcount \secno \secno=0 -\newcount \subsecno \subsecno=0 -\newcount \subsubsecno \subsubsecno=0 +\newcount\chapno +\newcount\secno \secno=0 +\newcount\subsecno \subsecno=0 +\newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... -\newcount \appendixno \appendixno = `\@ +\newcount\appendixno \appendixno = `\@ \def\appendixletter{\char\the\appendixno} -\newwrite \contentsfile +\newwrite\contentsfile % This is called from \setfilename. -\def\opencontents{\openout \contentsfile = \jobname.toc} +\def\opencontents{\openout\contentsfile = \jobname.toc } % Each @chapter defines this as the name of the chapter. % page headings and footings can use it. @section does likewise \def\thischapter{} \def\thissection{} -\def\seccheck#1{\if \pageno<0 % -\errmessage{@#1 not allowed after generating table of contents}\fi -% -} +\def\seccheck#1{\ifnum \pageno<0 + \errmessage{@#1 not allowed after generating table of contents}% +\fi} \def\chapternofonts{% -\let\rawbackslash=\relax% -\let\frenchspacing=\relax% -\def\result{\realbackslash result} -\def\equiv{\realbackslash equiv} -\def\expansion{\realbackslash expansion} -\def\print{\realbackslash print} -\def\TeX{\realbackslash TeX} -\def\dots{\realbackslash dots} -\def\copyright{\realbackslash copyright} -\def\tt{\realbackslash tt} -\def\bf{\realbackslash bf } -\def\w{\realbackslash w} -\def\less{\realbackslash less} -\def\gtr{\realbackslash gtr} -\def\hat{\realbackslash hat} -\def\char{\realbackslash char} -\def\tclose##1{\realbackslash tclose {##1}} -\def\code##1{\realbackslash code {##1}} -\def\samp##1{\realbackslash samp {##1}} -\def\r##1{\realbackslash r {##1}} -\def\b##1{\realbackslash b {##1}} -\def\key##1{\realbackslash key {##1}} -\def\file##1{\realbackslash file {##1}} -\def\kbd##1{\realbackslash kbd {##1}} -% These are redefined because @smartitalic wouldn't work inside xdef. -\def\i##1{\realbackslash i {##1}} -\def\cite##1{\realbackslash cite {##1}} -\def\var##1{\realbackslash var {##1}} -\def\emph##1{\realbackslash emph {##1}} -\def\dfn##1{\realbackslash dfn {##1}} + \let\rawbackslash=\relax + \let\frenchspacing=\relax + \def\result{\realbackslash result}% + \def\equiv{\realbackslash equiv}% + \def\expansion{\realbackslash expansion}% + \def\print{\realbackslash print}% + \def\TeX{\realbackslash TeX}% + \def\dots{\realbackslash dots}% + \def\result{\realbackslash result}% + \def\equiv{\realbackslash equiv}% + \def\expansion{\realbackslash expansion}% + \def\print{\realbackslash print}% + \def\error{\realbackslash error}% + \def\point{\realbackslash point}% + \def\copyright{\realbackslash copyright}% + \def\tt{\realbackslash tt}% + \def\bf{\realbackslash bf}% + \def\w{\realbackslash w}% + \def\less{\realbackslash less}% + \def\gtr{\realbackslash gtr}% + \def\hat{\realbackslash hat}% + \def\char{\realbackslash char}% + \def\tclose##1{\realbackslash tclose{##1}}% + \def\code##1{\realbackslash code{##1}}% + \def\samp##1{\realbackslash samp{##1}}% + \def\r##1{\realbackslash r{##1}}% + \def\b##1{\realbackslash b{##1}}% + \def\key##1{\realbackslash key{##1}}% + \def\file##1{\realbackslash file{##1}}% + \def\kbd##1{\realbackslash kbd{##1}}% + % These are redefined because @smartitalic wouldn't work inside xdef. + \def\i##1{\realbackslash i{##1}}% + \def\cite##1{\realbackslash cite{##1}}% + \def\var##1{\realbackslash var{##1}}% + \def\emph##1{\realbackslash emph{##1}}% + \def\dfn##1{\realbackslash dfn{##1}}% } \newcount\absseclevel % used to calculate proper heading level @@ -2733,7 +2882,8 @@ % because we don't want its macros evaluated now. \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2752,8 +2902,9 @@ \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry - {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}% + {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2787,7 +2938,8 @@ \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2802,8 +2954,9 @@ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2817,8 +2970,9 @@ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2830,7 +2984,8 @@ \def\unnumberedseczzz #1{\seccheck{unnumberedsec}% \plainsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2843,8 +2998,9 @@ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2857,8 +3013,9 @@ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2870,7 +3027,8 @@ \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% \plainsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2884,8 +3042,8 @@ \subsubsecheading {#1} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry % - {#1} +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} {\noexpand\folio}}}% \escapechar=`\\% @@ -2901,7 +3059,8 @@ \subsubsecheading {#1} {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry{#1}% +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0}% {\appendixletter} {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% \escapechar=`\\% @@ -2915,7 +3074,8 @@ \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% \plainsubsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -3096,7 +3256,7 @@ % Print any size section title. -% +% % #1 is the section type (sec/subsec/subsubsec), #2 is the section % number (maybe empty), #3 the text. \def\sectionheading#1#2#3{% @@ -3140,7 +3300,9 @@ \unnumbchapmacro{#1}\def\thischapter{}% \begingroup % Set up to handle contents files properly. \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - \catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi + % We can't do this, because then an actual ^ in a section + % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. + %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. } @@ -3348,14 +3510,13 @@ \escapechar=`\\ % \let\,=\ptexcomma -\let\~=\ptextilde \let\{=\ptexlbrace \let\}=\ptexrbrace \let\.=\ptexdot \let\*=\ptexstar \let\dots=\ptexdots -\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}} -\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi} +\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% +\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% \let\bullet=\ptexbullet \let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext @@ -3496,11 +3657,12 @@ % \def\nonfillfinish{\afterenvbreak\endgroup}% -% This macro is \def\lisp{\begingroup \nonfillstart \let\Elisp = \nonfillfinish \tt + % Make @kbd do something special, if requested. + \let\kbdfont\kbdexamplefont \rawbackslash % have \ input char produce \ char from current font \gobble } @@ -3618,16 +3780,17 @@ % Definitions of (, ) and & used in args for functions. % This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested % -\global\advance\parencount by 1 } +\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested + \global\advance\parencount by 1 +} % % This is the definition of ( when already inside a level of parens. \gdef\opnested{\char`\(\global\advance\parencount by 1 } % \gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. -% also in that case restore the outer-level definition of (. -\ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi -\global\advance \parencount by -1 } + % also in that case restore the outer-level definition of (. + \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi + \global\advance \parencount by -1 } % If we encounter &foo, then turn on ()-hacking afterwards \gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } % @@ -3635,8 +3798,11 @@ } % End of definition inside \activeparens %% These parens (in \boldbrax) actually are a little bolder than the %% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&} -\def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}} +\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } +\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } +\def\ampnr{\&} +\def\lbrb{{\bf\char`\[}} +\def\rbrb{{\bf\char`\]}} % First, defname, which formats the header line itself. % #1 should be the function name. @@ -3729,7 +3895,7 @@ % This is used for \def{tp,vr}parsebody. It could probably be used for % some of the others, too, with some judicious conditionals. -% +% \def\parsebodycommon#1#2#3{% \begingroup\inENV % \medbreak % @@ -3763,17 +3929,16 @@ } % Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does, putting the result in \tptemp. -% -\def\removeemptybraces\empty#1\relax{\def\tptemp{#1}}% +% braces (if any). That's what this does. +% +\def\removeemptybraces\empty#1\relax{#1} % After \spacesplit has done its work, this is called -- #1 is the final % thing to call, #2 the type name (which starts with \empty), and #3 % (which might be empty) the arguments. -% +% \def\parsetpheaderline#1#2#3{% - \removeemptybraces#2\relax - #1{\tptemp}{#3}% + #1{\removeemptybraces#2\relax}{#3}% }% \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % @@ -3814,7 +3979,7 @@ \hyphenchar\tensl=0 #1% \hyphenchar\tensl=45 -\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi% +\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% \interlinepenalty=10000 \advance\rightskip by 0pt plus 1fil \endgraf\penalty 10000\vskip -\parskip\penalty 10000% @@ -3915,6 +4080,7 @@ \def\defmacx #1 {\errmessage{@defmacx in invalid context}} \def\defspecx #1 {\errmessage{@defspecx in invalid context}} \def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}} +\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}} \def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}} % @defmethod, and so on @@ -3930,6 +4096,16 @@ \defunargs {#3}\endgroup % } +% @deftypemethod foo-class return-type foo-method args +% +\def\deftypemethod{% + \defmethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} +% +% #1 is the class name, #2 the data type, #3 the method name, #4 the args. +\def\deftypemethodheader#1#2#3#4{% + \deftypefnheaderx{Method on #1}{#2}#3 #4\relax +} + % @defmethod == @defop Method \def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} @@ -4007,19 +4183,21 @@ \def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} -% #1 is the data type. #2 is the name. +% #1 is the data type. #2 is the name, perhaps followed by text that +% is actually part of the data type, which should not be put into the index. \def\deftypevarheader #1#2{% -\doind {vr}{\code{#2}}% Make entry in variables index +\dovarind#2 \relax% Make entry in variables index \begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}% \interlinepenalty=10000 \endgraf\penalty 10000\vskip -\parskip\penalty 10000 \endgroup} +\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} % @deftypevr {Global Flag} int enable \def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} -\def\deftypevrheader #1#2#3{\doind {vr}{\code{#3}}% +\def\deftypevrheader #1#2#3{\dovarind#3 \relax% \begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} \interlinepenalty=10000 \endgraf\penalty 10000\vskip -\parskip\penalty 10000 @@ -4142,7 +4320,7 @@ % Use \turnoffactive so that punctuation chars such as underscore % work in node names. -\def\dosetq #1#2{{\let\folio=0 \turnoffactive \auxhat% +\def\dosetq #1#2{{\let\folio=0 \turnoffactive \edef\next{\write\auxfile{\internalsetq {#1}{#2}}}% \next}} @@ -4211,84 +4389,99 @@ #2% Output the suffix in any case. } +% This is the macro invoked by entries in the aux file. +\def\xrdef #1#2{{% + \catcode`\'=\other + \expandafter\gdef\csname X#1\endcsname{#2}% +}} + % Read the last existing aux file, if any. No error if none exists. - -% This is the macro invoked by entries in the aux file. -\def\xrdef #1#2{ -{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}} - -\def\readauxfile{% -\begingroup -\catcode `\^^@=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\^^C=\other -\catcode `\^^D=\other -\catcode `\^^E=\other -\catcode `\^^F=\other -\catcode `\^^G=\other -\catcode `\^^H=\other -\catcode `\=\other -\catcode `\^^L=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode 26=\other -\catcode `\^^[=\other -\catcode `\^^\=\other -\catcode `\^^]=\other -\catcode `\^^^=\other -\catcode `\^^_=\other -\catcode `\@=\other -\catcode `\^=\other -\catcode `\~=\other -\catcode `\[=\other -\catcode `\]=\other -\catcode`\"=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode `\$=\other -\catcode `\#=\other -\catcode `\&=\other -% `\+ does not work, so use 43. -\catcode 43=\other -% Make the characters 128-255 be printing characters -{% - \count 1=128 - \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi +\def\readauxfile{\begingroup + \catcode`\^^@=\other + \catcode`\^^A=\other + \catcode`\^^B=\other + \catcode`\^^C=\other + \catcode`\^^D=\other + \catcode`\^^E=\other + \catcode`\^^F=\other + \catcode`\^^G=\other + \catcode`\^^H=\other + \catcode`\^^K=\other + \catcode`\^^L=\other + \catcode`\^^N=\other + \catcode`\^^P=\other + \catcode`\^^Q=\other + \catcode`\^^R=\other + \catcode`\^^S=\other + \catcode`\^^T=\other + \catcode`\^^U=\other + \catcode`\^^V=\other + \catcode`\^^W=\other + \catcode`\^^X=\other + \catcode`\^^Z=\other + \catcode`\^^[=\other + \catcode`\^^\=\other + \catcode`\^^]=\other + \catcode`\^^^=\other + \catcode`\^^_=\other + \catcode`\@=\other + \catcode`\^=\other + % It was suggested to define this as 7, which would allow ^^e4 etc. + % in xref tags, i.e., node names. But since ^^e4 notation isn't + % supported in the main text, it doesn't seem desirable. Furthermore, + % that is not enough: for node names that actually contain a ^ + % character, we would end up writing a line like this: 'xrdef {'hat + % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first + % argument, and \hat is not an expandable control sequence. It could + % all be worked out, but why? Either we support ^^ or we don't. + % + % The other change necessary for this was to define \auxhat: + % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter + % and then to call \auxhat in \setq. + % + \catcode`\~=\other + \catcode`\[=\other + \catcode`\]=\other + \catcode`\"=\other + \catcode`\_=\other + \catcode`\|=\other + \catcode`\<=\other + \catcode`\>=\other + \catcode`\$=\other + \catcode`\#=\other + \catcode`\&=\other + % `\+ does not work, so use 43. + \catcode43=\other + % Make the characters 128-255 be printing characters + {% + \count 1=128 + \def\loop{% + \catcode\count 1=\other + \advance\count 1 by 1 + \ifnum \count 1<256 \loop \fi + }% }% -}% -% the aux file uses ' as the escape. -% Turn off \ as an escape so we do not lose on -% entries which were dumped with control sequences in their names. -% For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ -% Reference to such entries still does not work the way one would wish, -% but at least they do not bomb out when the aux file is read in. -\catcode `\{=1 \catcode `\}=2 -\catcode `\%=\other -\catcode `\'=0 -\catcode`\^=7 % to make ^^e4 etc usable in xref tags -\catcode `\\=\other -\openin 1 \jobname.aux -\ifeof 1 \else \closein 1 \input \jobname.aux \global\havexrefstrue -\global\warnedobstrue -\fi -% Open the new aux file. Tex will close it automatically at exit. -\openout \auxfile=\jobname.aux + % The aux file uses ' as the escape (for now). + % Turn off \ as an escape so we do not lose on + % entries which were dumped with control sequences in their names. + % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ + % Reference to such entries still does not work the way one would wish, + % but at least they do not bomb out when the aux file is read in. + \catcode`\{=1 + \catcode`\}=2 + \catcode`\%=\other + \catcode`\'=0 + \catcode`\\=\other + % + \openin 1 \jobname.aux + \ifeof 1 \else + \closein 1 + \input \jobname.aux + \global\havexrefstrue + \global\warnedobstrue + \fi + % Open the new aux file. TeX will close it automatically at exit. + \openout\auxfile=\jobname.aux \endgroup} @@ -4303,7 +4496,7 @@ % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } -% @footnotestyle is meaningful for info output only.. +% @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment \let\ptexfootnote=\footnote @@ -4329,7 +4522,11 @@ % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % -\long\gdef\footnotezzz#1{\insert\footins{% +% Oh yes, they do; otherwise, @ifset and anything else that uses +% \parseargline fail inside footnotes because the tokens are fixed when +% the footnote is read. --karl, 16nov96. +% +\long\gdef\footnotezzz{\insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. @@ -4351,8 +4548,13 @@ % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut - #1\strut}% + \futurelet\next\fo@t } +\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t + \else\let\next\f@t\fi \next} +\def\f@@t{\bgroup\aftergroup\@foot\let\next} +\def\f@t#1{#1\@foot} +\def\@foot{\strut\egroup} }%end \catcode `\@=11 @@ -4409,9 +4611,51 @@ % \def\finalout{\overfullrule=0pt} +% @image. We use the macros from epsf.tex to support this. +% If epsf.tex is not installed and @image is used, we complain. +% +% Check for and read epsf.tex up front. If we read it only at @image +% time, we might be inside a group, and then its definitions would get +% undone and the next image would fail. +\openin 1 = xepsf.tex +\ifeof 1 \else + \closein 1 + \def\epsfannounce{\toks0 = }% do not bother showing banner + \input epsf.tex +\fi +% +\newif\ifwarnednoepsf +\newhelp\noepsfhelp{epsf.tex must be installed for images to + work. It is also included in the Texinfo distribution, or you can get + it from ftp://ftp.tug.org/tex/epsf.tex.} +% +% Only complain once about lack of epsf.tex. +\def\image#1{% + \ifx\epsfbox\undefined + \ifwarnednoepsf \else + \errhelp = \noepsfhelp + \errmessage{epsf.tex not found, images will be ignored}% + \global\warnednoepsftrue + \fi + \else + \imagexxx #1,,,\finish + \fi +} +% +% Arguments to @image: +% #1 is (mandatory) image filename; we tack on .eps extension. +% #2 is (optional) width, #3 is (optional) height. +% #4 is just the usual extra ignored arg for parsing this stuff. +\def\imagexxx#1,#2,#3,#4\finish{% + % \epsfbox itself resets \epsf?size at each figure. + \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi + \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi + \epsfbox{#1.eps}% +} % End of control word definitions. + \message{and turning on texinfo input format.} \def\openindices{% @@ -4584,7 +4828,6 @@ \def~{{\tt \char '176}} \chardef\hat=`\^ \catcode`\^=\active -\def\auxhat{\def^{'hat}} \def^{{\tt \hat}} \catcode`\_=\active
--- a/man/texinfo.texi Mon Aug 13 08:56:06 2007 +0200 +++ b/man/texinfo.texi Mon Aug 13 08:56:41 2007 +0200 @@ -1,19 +1,27 @@ \input texinfo.tex @c -*-texinfo-*- -@comment %**start of header +@c $Id: texinfo.texi,v 1.4 1997/08/30 03:56:40 steve Exp $ +@c %**start of header + +@c All text is ignored before the setfilename. @setfilename texinfo @settitle Texinfo @value{edition} + +@set edition 2.24 +@set update-month July 1997 +@set update-date 25 @value{update-month} + @c Define a new index for options. @defcodeindex op @c Put everything except function (command, in this case) names in one -index (arbitrarily chosen to be the concept index). +@c index (arbitrarily chosen to be the concept index). @syncodeindex op cp @syncodeindex vr cp @syncodeindex pg cp + @footnotestyle separate @paragraphindent 2 @finalout @comment %**end of header -@comment $Id: texinfo.texi,v 1.3 1997/08/21 06:24:24 steve Exp $ @c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update with a @c prefix arg). This updates the node pointers, which texinfmt.el needs. @@ -24,19 +32,17 @@ * install-info: (texinfo)Invoking install-info. Updating info/dir entries. * texi2dvi: (texinfo)Format with texi2dvi. Printing Texinfo documentation. * texindex: (texinfo)Format with tex/texindex. Sorting Texinfo index files. +* makeinfo: (texinfo)makeinfo Preferred. Translate Texinfo source. @end direntry @c Set smallbook if printing in smallbook format so the example of the @c smallbook font is actually written using smallbook; in bigbook, a kludge -@c is used for TeX output. -@smallbook -@set smallbook +@c is used for TeX output. Do this through the -t option to texi2dvi, +@c so this same source can be used for other paper sizes as well. +@c smallbook +@c set smallbook @c @@clear smallbook -@set edition 2.23 -@set update-month October 1996 -@set update-date 1 @value{update-month} - @c Currently undocumented command, 5 December 1993: @c @c nwnode (Same as node, but no warnings; for `makeinfo'.) @@ -45,7 +51,7 @@ This file documents Texinfo, a documentation system that can produce both on-line information and a printed manual from a single source file. -Copyright (C) 1988, 90, 91, 92, 93, 95, 1996 Free Software Foundation, Inc. +Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97 Free Software Foundation, Inc. This is the second edition of the Texinfo documentation,@* and is consistent with version 2 of @file{texinfo.tex}. @@ -91,7 +97,8 @@ @page @vskip 0pt plus 1filll -Copyright @copyright{} 1988, 1990, 1991, 1992, 1993, 1995, 1996 Free Software Foundation, Inc. +Copyright @copyright{} 1988, 90, 91, 92, 93, 95, 96, 97 +Free Software Foundation, Inc. @sp 2 This is the second edition of the Texinfo documentation,@* @@ -99,8 +106,9 @@ @sp 2 Published by the Free Software Foundation @* -59 Temple Place Suite 330, @* -Boston, MA 02111-1307 USA @* +59 Temple Place Suite 330 @* +Boston, MA 02111-1307 @* +USA @* Printed copies are available for $15 each.@* ISBN 1-882114-64-7 @c ISBN 1-882114-63-9 is for edition 2.20 of 28 February 1995 @@ -201,8 +209,6 @@ * Lists and Tables:: How to write lists and tables. * Indices:: How to create indices. * Insertions:: How to insert @@-signs, braces, etc. -* Glyphs:: How to indicate results of evaluation, - expansion of macros, errors, etc. * Breaks:: How to force and prevent line and page breaks. * Definition Commands:: How to describe functions and the like in a uniform manner. @@ -224,7 +230,6 @@ * Refilling Paragraphs:: All about paragraph refilling. * Command Syntax:: A description of @@-Command syntax. * Obtaining TeX:: How to Obtain @TeX{}. -* New Features:: Texinfo second edition features. * Command and Variable Index:: A menu containing commands and variables. * Concept Index:: A menu covering many topics. @@ -367,6 +372,7 @@ * ref:: A reference for the last part of a sentence. * pxref:: How to write a parenthetical cross reference. * inforef:: How to refer to an Info-only file. +* uref:: How to refer to a uniform resource locator. @code{@@xref} @@ -418,7 +424,7 @@ * flushleft & flushright:: How to push text flushleft or flushright. * cartouche:: How to draw cartouches around examples. -Making Lists and Tables +Lists and Tables * Introducing Lists:: Texinfo formats lists for you. * itemize:: How to construct a simple list. @@ -429,8 +435,7 @@ Making a Two-column Table * table:: How to construct a two-column table. -* ftable vtable:: How to construct a two-column table - with automatic indexing. +* ftable vtable:: Automatic indexing for two-column tables. * itemx:: How to put more entries in the first column. Multi-column Tables @@ -466,6 +471,9 @@ * pounds:: How to insert the pounds currency symbol. * minus:: How to insert a minus sign. * math:: How to format a mathematical expression. +* Glyphs:: How to indicate results of evaluation, + expansion of macros, errors, etc. +* Images:: How to include graphics. Inserting @@ and Braces @@ -499,6 +507,15 @@ * Equivalence:: How to indicate equivalence. * Point Glyph:: How to indicate the location of point. +Glyphs Summary + +* result:: +* expansion:: +* Print Glyph:: +* Error Glyph:: +* Equivalence:: +* Point Glyph:: + Making and Preventing Breaks * Break Commands:: Cause and prevent splits. @@ -536,10 +553,11 @@ Conditionally Visible Text -* Conditional Commands:: How to specify text for HTML, Info, or @TeX{}. -* Using Ordinary TeX Commands:: You can use any and all @TeX{} commands. -* set clear value:: How to designate which text to format (for - both Info and @TeX{}); and how to set a +* Conditional Commands:: Specifying text for HTML, Info, or @TeX{}. +* Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}. +* Raw Formatter Commands:: Using raw @TeX{} or HTML commands. +* set clear value:: Designating which text to format (for + all output formats); and how to set a flag to a string that you can insert. @code{@@set}, @code{@@clear}, and @code{@@value} @@ -620,7 +638,7 @@ Formatting Mistakes -* makeinfo preferred:: @code{makeinfo} finds errors. +* makeinfo Preferred:: @code{makeinfo} finds errors. * Debugging with Info:: How to catch errors with Info formatting. * Debugging with TeX:: How to catch errors with @TeX{} formatting. * Using texinfo-show-structure:: How to use @code{texinfo-show-structure}. @@ -634,7 +652,7 @@ * Tagifying:: How to tagify a file. * Splitting:: How to split a file manually. -Second Edition Features +How to Obtain @TeX{} * New Texinfo Mode Commands:: The updating commands are especially useful. * New Commands:: Many newly described @@-commands. @@ -735,7 +753,7 @@ Emacs Manual} is a good example of a Texinfo file, as is this manual.@refill To make a printed document, you process a Texinfo source file with the -@TeX{} typesetting program. This creates a @sc{dvi} file that you can +@TeX{} typesetting program. This creates a DVI file that you can typeset and print as a book or report. (Note that the Texinfo language is completely different from @TeX{}'s usual language, plain @TeX{}.) If you do not have @TeX{}, but do have @code{troff} or @code{nroff}, you @@ -745,7 +763,7 @@ @code{makeinfo} utility or Emacs's @code{texinfo-format-buffer} command; this creates an Info file that you can install on-line.@refill -@TeX{} and @code{texi2roff} work with many types of printer; similarly, +@TeX{} and @code{texi2roff} work with many types of printers; similarly, Info works with almost every type of computer terminal. This power makes Texinfo a general purpose system, but brings with it a constraint, which is that a Texinfo file may contain only the customary @@ -827,26 +845,26 @@ represent links that do not fit a hierarchical structure.@refill Usually, you will design a document so that its nodes match the -structure of chapters and sections in the printed output. But there -are times when this is not right for the material being discussed. -Therefore, Texinfo uses separate commands to specify the node -structure for the Info file and the section structure for the printed -output.@refill +structure of chapters and sections in the printed output. But +occasionally there are times when this is not right for the material +being discussed. Therefore, Texinfo uses separate commands to specify +the node structure for the Info file and the section structure for the +printed output.@refill Generally, you enter an Info file through a node that by convention is -called @samp{Top}. This node normally contains just a brief summary -of the file's purpose, and a large menu through which the rest of the -file is reached. From this node, you can either traverse the file +named `Top'. This node normally contains just a brief summary of the +file's purpose, and a large menu through which the rest of the file is +reached. From this node, you can either traverse the file systematically by going from node to node, or you can go to a specific -node listed in the main menu, or you can search the index menus and -then go directly to the node that has the information you want.@refill -@c !!! With the standalone Info system you may go to specific nodes -@c directly.. +node listed in the main menu, or you can search the index menus and then +go directly to the node that has the information you want. Alternatively, +with the standalone Info program, you can specify specific menu items on +the command line (@pxref{Top,,, info, Info}). If you want to read through an Info file in sequence, as if it were a -printed manual, you can get the whole file with the advanced Info -command @kbd{g* @key{RET}}. (@inforef{Expert, Advanced Info commands, -info}.)@refill +printed manual, you can hit @key{SPC} repeatedly, or you get the whole +file with the advanced Info command @kbd{g *}. (@inforef{Expert, +Advanced Info commands, info}.)@refill @c !!! dir file may be located in one of many places: @c /usr/local/emacs/info mentioned in info.c DEFAULT_INFOPATH @@ -873,7 +891,7 @@ program written by Donald Knuth.@footnote{You can also use the @code{texi2roff} program if you do not have @TeX{}; since Texinfo is designed for use with @TeX{}, @code{texi2roff} is not described here. -@code{texi2roff} is part of the standard GNU distribution.}@refill +@code{texi2roff} is not part of the standard GNU distribution.} A Texinfo-based book is similar to any other typeset, printed work: it can have a title page, copyright page, table of contents, and preface, @@ -909,7 +927,7 @@ specifications, you can make a book look dignified, old and serious, or light-hearted, young and cheery.@refill -@TeX{} is freely distributable. It is written in a dialect of Pascal +@TeX{} is freely distributable. It is written in a superset of Pascal called WEB and can be compiled either in Pascal or (by using a conversion program that comes with the @TeX{} distribution) in C. (@xref{TeX Mode, ,@TeX{} Mode, emacs, The GNU Emacs Manual}, for information @@ -1041,9 +1059,9 @@ @end iftex Use three hyphens in a row, @samp{---}, for a dash---like this. In -@TeX{}, a single or even a double hyphen produces a printed dash that -is shorter than the usual typeset dash. Info reduces three hyphens to two for -display on the screen.@refill +@TeX{}, a single or double hyphen produces a printed dash that is +shorter than the usual typeset dash. Info reduces three hyphens to two +for display on the screen. To prevent a paragraph from being indented in the printed manual, put the command @code{@@noindent} on a line by itself before the @@ -1056,7 +1074,10 @@ you mark off a region with the @code{@@ifinfo} and @code{@@end ifinfo} commands, that region will appear only in the Info file; in that region, you can use Info commands that you cannot use in @TeX{}. -Similarly for @code{@@ifhtml} and @code{@@end ifhtml}. +Similarly for @code{@@ifhtml @dots{} @@end ifhtml}, +@code{@@ifnothtml @dots{} @@end ifnothtml}, +@code{@@ifnotinfo @dots{} @@end ifnotinfo}, +@code{@@ifnottex @dots{} @@end ifnottex}, @xref{Conditionals}. @cindex Tabs; don't use! @@ -1064,7 +1085,9 @@ @strong{Caution:} Do not use tabs in a Texinfo file! @TeX{} uses variable-width fonts, which means that it cannot predefine a tab to work in all circumstances. Consequently, @TeX{} treats tabs like single -spaces, and that is not what they look like.@refill +spaces, and that is not what they look like. Furthermore, +@code{makeinfo} does nothing special with tabs, and thus a tab character +in your input file may appear differently in the output. @noindent To avoid this problem, Texinfo mode causes GNU Emacs to insert multiple @@ -1073,6 +1096,9 @@ @noindent Also, you can run @code{untabify} in Emacs to convert tabs in a region to multiple spaces.@refill + +@noindent +Don't use tabs. @end quotation @node Comments, Minimum, Conventions, Overview @@ -1237,7 +1263,7 @@ @section A Short Sample Texinfo File @cindex Sample Texinfo file -Here is a complete but very short Texinfo file, in 6 parts. The first +Here is a complete but very short Texinfo file, in six parts. The first three parts of the file, from @samp{\input texinfo} through to @samp{@@end titlepage}, look more intimidating than they are. Most of the material is standard boilerplate; when you write a manual, simply @@ -1252,8 +1278,8 @@ @subheading Part 1: Header @noindent -The header does not appear in either the Info file or the@* -printed output. It sets various parameters, including the@* +The header does not appear in either the Info file or the +printed output. It sets various parameters, including the name of the Info file and the title used in the header. @example @@ -1271,7 +1297,7 @@ @subheading Part 2: Summary Description and Copyright @noindent -The summary description and copyright segment does not@* +The summary description and copyright segment does not appear in the printed document. @example @@ -1309,13 +1335,13 @@ @subheading Part 4: `Top' Node and Master Menu @noindent -The `Top' node contains the master menu for the Info file.@* -Since a printed manual uses a table of contents rather than@* +The `Top' node contains the master menu for the Info file. +Since a printed manual uses a table of contents rather than a menu, the master menu appears only in the Info file. @example @group -@@node Top, First Chapter, (dir), (dir) +@@node Top, First Chapter, , (dir) @@comment node-name, next, previous, up @end group @end example @@ -1418,7 +1444,7 @@ manual. @end quotation -@node Acknowledgements, , Short Sample, Overview +@node Acknowledgements, , Short Sample, Overview @comment node-name, next, previous, up @section Acknowledgements @@ -1502,7 +1528,7 @@ Show the structure of a Texinfo source file.@refill @item -Automatically create or update the `Next',@* +Automatically create or update the `Next', `Previous', and `Up' pointers of a node. @item @@ -1668,12 +1694,12 @@ @emph{existing} word, position the cursor in front of the word and type @kbd{C-u 1 C-c C-c c}. This makes it easy to edit existing plain text. The value of the prefix argument tells Emacs how many words following -point to include between braces---1 for one word, 2 for two words, and -so on. Use a negative argument to enclose the previous word or words. -If you do not specify a prefix argument, Emacs inserts the @@-command -string and positions the cursor between the braces. This feature works -only for those @@-commands that operate on a word or words within one -line, such as @code{@@kbd} and @code{@@var}.@refill +point to include between braces---@samp{1} for one word, @samp{2} for +two words, and so on. Use a negative argument to enclose the previous +word or words. If you do not specify a prefix argument, Emacs inserts +the @@-command string and positions the cursor between the braces. This +feature works only for those @@-commands that operate on a word or words +within one line, such as @code{@@kbd} and @code{@@var}.@refill This set of insert commands was created after analyzing the frequency with which different @@-commands are used in the @cite{GNU Emacs @@ -2029,7 +2055,7 @@ both @code{makeinfo} and the @code{texinfo-format-@dots{}} commands require that you insert menus in the file.@refill -@node Other Updating Commands, , Updating Requirements, Updating Nodes and Menus +@node Other Updating Commands, , Updating Requirements, Updating Nodes and Menus @comment node-name, next, previous, up @subsection Other Updating Commands @@ -2098,7 +2124,7 @@ nodes' hierarchical level. This means that the `Next' node of a subsection may well be the next chapter. Sequentially ordered nodes are useful for novels and other documents that you read through -sequentially. (However, in Info, the @code{g* @key{RET}} command lets +sequentially. (However, in Info, the @kbd{g *} command lets you look through the file sequentially, so sequentially ordered nodes are not strictly necessary.) With an argument (prefix argument, if interactive), the @code{texinfo-sequential-node-update} command @@ -2174,7 +2200,7 @@ @cindex Part of file formatting and printing Typesetting and printing a Texinfo file is a multi-step process in which -you first create a file for printing (called a @sc{dvi} file), and then +you first create a file for printing (called a DVI file), and then print the file. Optionally, you may also create indices. To do this, you must run the @code{texindex} command after first running the @code{tex} typesetting command; and then you must run the @code{tex} @@ -2209,7 +2235,7 @@ a second time after sorting the raw index files with the @code{texindex} command. (Usually, you do not format an index when you format a region, only when you format a buffer. Now that the @code{texi2dvi} command -exists, there is no little need for this command.)@refill +exists, there is little or no need for this command.)@refill @item C-c C-t C-p @itemx M-x texinfo-tex-print @@ -2228,7 +2254,7 @@ @xref{Format/Print Hardcopy}, for a description of the other @TeX{} related commands, such as @code{tex-show-print-queue}.@refill -@node Texinfo Mode Summary, , Printing, Texinfo Mode +@node Texinfo Mode Summary, , Printing, Texinfo Mode @comment node-name, next, previous, up @section Texinfo Mode Summary @@ -2368,7 +2394,7 @@ C-c C-t C-r @r{Run @TeX{} on the region.} C-c C-t C-b @r{Run} @code{texi2dvi} @r{on the buffer.} C-c C-t C-i @r{Run} @code{texindex}. -C-c C-t C-p @r{Print the @sc{dvi} file.} +C-c C-t C-p @r{Print the DVI file.} C-c C-t C-q @r{Show the print queue.} C-c C-t C-d @r{Delete a job from the print queue.} C-c C-t C-k @r{Kill the current @TeX{} formatting job.} @@ -2441,7 +2467,7 @@ @item The header, delimited by special comment lines, that includes the commands for naming the Texinfo file and telling @TeX{} what -definitions' file to use when processing the Texinfo file.@refill +definitions file to use when processing the Texinfo file.@refill @item A short statement of what the file is about, with a copyright notice @@ -2519,7 +2545,7 @@ Permission is granted to @dots{} @@end titlepage -@@node Top, Overview, (dir), (dir) +@@node Top, Overview, , (dir) @@ifinfo This document describes @dots{} @@ -2612,12 +2638,12 @@ @enumerate @item -When the file is processed by @TeX{}, the @code{\input texinfo} command +When the file is processed by @TeX{}, the @samp{\input texinfo} command tells @TeX{} to load the macros needed for processing a Texinfo file. These are in a file called @file{texinfo.tex}, which is usually located in the @file{/usr/lib/tex/macros} directory. @TeX{} uses the backslash, @samp{\}, to mark the beginning of a command, just as Texinfo uses -@code{@@}. The @file{texinfo.tex} file causes the switch from @samp{\} +@samp{@@}. The @file{texinfo.tex} file causes the switch from @samp{\} to @samp{@@}; before the switch occurs, @TeX{} requires @samp{\}, which is why it appears at the beginning of the file.@refill @@ -2663,33 +2689,39 @@ @end example Write the @code{@@setfilename} command at the beginning of a line and -follow it on the same line by the Info file name. Do not write -anything else on the line; anything on the line after the command is -considered part of the file name, including a comment.@refill +follow it on the same line by the Info file name. Do not write anything +else on the line; anything on the line after the command is considered +part of the file name, including what would otherwise be a +comment. The @code{@@setfilename} line specifies the name of the Info file to be generated. This name should be different from the name of the Texinfo file. There are two conventions for choosing the name: you can either -remove the @samp{.tex} extension from the input file name, or replace it -with the @samp{.info} extension. +remove the @samp{.texi} extension from the input file name, or replace +it with the @samp{.info} extension. Some operating systems cannot handle long file names. You can run into a problem even when the file name you specify is itself short enough. This occurs because the Info formatters split a long Info file into -short indirect subfiles, and name them by appending `-1', `-2', @dots{}, -`-10', `-11', and so on, to the original file name. (@xref{Tag and -Split Files, , Tag Files and Split Files}.) The subfile name -@file{texinfo.info-10}, for example, is too long for some systems; so -the Info file name for this document is @file{texinfo} rather than -@file{texinfo.info}.@refill - +short indirect subfiles, and name them by appending @samp{-1}, +@samp{-2}, @dots{}, @samp{-10}, @samp{-11}, and so on, to the original +file name. (@xref{Tag and Split Files, , Tag Files and Split Files}.) +The subfile name @file{texinfo.info-10}, for example, is too long for +some systems; so the Info file name for this document is @file{texinfo} +rather than @file{texinfo.info}. + +@cindex Ignored before @code{@@setfilename} The Info formatting commands ignore everything written before the @code{@@setfilename} line, which is why the very first line of -the file (the @code{\input} line) does not need to be commented out. - +the file (the @code{\input} line) does not show up in the output. + +@pindex texinfo.cnf The @code{@@setfilename} line produces no output when you typeset a -printed manual, but is does an essential job: it opens the index, -cross-reference, and other auxiliary files used by Texinfo. +manual with @TeX{}, but it nevertheless is essential: it opens the +index, cross-reference, and other auxiliary files used by Texinfo, and +also reads @file{texinfo.cnf} if that file is present on your system +(@pxref{Preparing for TeX,, Preparing to Use @TeX{}}). + @node settitle, setchapternewpage, setfilename, Header @comment node-name, next, previous, up @@ -2853,11 +2885,11 @@ commands do not change the existing indentation.@refill @item -If the value of @var{indent} is 0, the Info formatting commands delete +If the value of @var{indent} is zero, the Info formatting commands delete existing indentation.@refill @item -If the value of @var{indent} is greater than 0, the Info formatting +If the value of @var{indent} is greater than zero, the Info formatting commands indent the paragraph by that number of spaces.@refill @end itemize @@ -2874,7 +2906,7 @@ @xref{Refilling Paragraphs}, for a detailed description of what goes on.@refill -@node End of Header, , paragraphindent, Header +@node End of Header, , paragraphindent, Header @comment node-name, next, previous, up @subsection End of Header @cindex End of header line @@ -3277,7 +3309,7 @@ double-sided printing and no @code{@@setchapternewpage} command for single-sided printing.@refill -@node headings on off, , end titlepage, Titlepage & Copyright Page +@node headings on off, , end titlepage, Titlepage & Copyright Page @comment node-name, next, previous, up @subsection The @code{@@headings} Command @findex headings @@ -3387,7 +3419,7 @@ @@end titlepage @@ifinfo -@@node Top, Copying, (dir), (dir) +@@node Top, Copying, , (dir) @@top Texinfo Texinfo is a documentation system@dots{} @@ -3415,7 +3447,7 @@ menu, which is usually the copying permissions, introduction, or first chapter.@refill -@node Master Menu Parts, , Title of Top Node, The Top Node +@node Master Menu Parts, , Title of Top Node, The Top Node @subsection Parts of a Master Menu @cindex Master menu parts @cindex Parts of a master menu @@ -3496,7 +3528,7 @@ @end group @end example -@node Software Copying Permissions, , The Top Node, Beginning a File +@node Software Copying Permissions, , The Top Node, Beginning a File @comment node-name, next, previous, up @section Software Copying Permissions @cindex Software copying permissions @@ -3649,12 +3681,16 @@ since that makes it easiest to find.)@refill @ignore +@c TeX can do sorting, just not conveniently enough to handle sorting +@c Texinfo indexes. --karl, 5may97. In @TeX{}, the @code{@@printindex} command needs a sorted index file to work from. @TeX{} does not know how to do sorting; this is a deficiency. @TeX{} writes output files of raw index data; use the @code{texindex} program to convert these files to sorted index files. (@xref{Format/Print Hardcopy}, for more information.)@refill @end ignore + + @node Contents, File End, Printing Indices & Menus, Ending a File @comment node-name, next, previous, up @section Generating a Table of Contents @@ -3723,7 +3759,7 @@ formatting commands ignore the @code{@@contents} and @code{@@shortcontents} commands.@refill -@node File End, , Contents, Ending a File +@node File End, , Contents, Ending a File @comment node-name, next, previous, up @section @code{@@bye} File Ending @findex bye @@ -3825,7 +3861,7 @@ @node Structuring Command Types, makeinfo top, Tree Structuring, Structuring @comment node-name, next, previous, up -@section Types of Structuring Command +@section Types of Structuring Commands The chapter structuring commands fall into four groups or series, each of which contains structuring commands corresponding to the @@ -3976,7 +4012,7 @@ @section @code{@@top} The @code{@@top} command is a special sectioning command that you use -only after an @code{@@node Top} line at the beginning of a Texinfo file. +only after an @samp{@@node Top} line at the beginning of a Texinfo file. The @code{@@top} command tells the @code{makeinfo} formatter which node is the `Top' node. It has the same typesetting effect as @code{@@unnumbered} @@ -4240,7 +4276,7 @@ @end group @end example -@node Raise/lower sections, , subsubsection, Structuring +@node Raise/lower sections, , subsubsection, Structuring @comment node-name, next, previous, up @section @code{@@raisesections} and @code{@@lowersections} @findex raisesections @@ -4254,6 +4290,7 @@ subsections to sections, and so on. The @code{@@lowersections} command changes chapters to sections, sections to subsections, and so on. +@cindex Include files, and section levels An @code{@@lowersections} command is useful if you wish to include text that is written as an outer or standalone Texinfo file in another Texinfo file as an inner, included file. If you write the command at @@ -4298,7 +4335,16 @@ line of its own. An @code{@@lowersections} command cancels an @code{@@raisesections} -command, and vice versa. +command, and vice versa. Typically, the commands are used like this: + +@example +@@lowersections +@@include somefile.texi +@@raisesections +@end example + +Without the @code{@@raisesections}, all the subsequent sections in your +document will be lowered. Repeated use of the commands continue to raise or lower the hierarchical level a step at a time. @@ -4498,7 +4544,7 @@ Usually, you write one of the chapter-structuring command lines immediately after an @code{@@node} line---for example, an @code{@@section} or @code{@@subsection} line. (@xref{Structuring -Command Types, , Types of Structuring Command}.)@refill +Command Types, , Types of Structuring Commands}.)@refill @quotation @strong{Please note:} The GNU Emacs Texinfo mode updating commands work @@ -4671,10 +4717,9 @@ @end smallexample @cindex Comma in nodename -@cindex Colon in nodename @cindex Apostrophe in nodename @item -You cannot use commas, colons, or apostrophes within a node name; these +You cannot use commas or apostrophes within a node name; these confuse @TeX{} or the Info formatters.@refill @need 700 @@ -4696,37 +4741,47 @@ Case is significant. @end itemize + @node First Node, makeinfo top command, Node Line Requirements, node @comment node-name, next, previous, up @subsection The First Node -@cindex @samp{@r{Top}} node is first +@cindex Top node is first @cindex First node -The first node of a Texinfo file is the `Top' node, except in an -included file (@pxref{Include Files}). - -The `Top' node (which must be named @samp{top} or @samp{Top}) should -have as its `Up' and `Previous' nodes the name of a node in another -file, where there is a menu that leads to this file. Specify the file -name in parentheses. If the file is to be installed directly in the -Info directory file, use @samp{(dir)} as the parent of the `Top' node; -this is short for @samp{(dir)top}, and specifies the `Top' node in the -@file{dir} file, which contains the main menu for Info. For example, -the @code{@@node Top} line of this manual looks like this:@refill - -@example -@@node Top, Overview, (dir), (dir) -@end example - -@noindent -(You may use the Texinfo updating commands or the @code{makeinfo} -utility to insert these `Next' and @samp{(dir)} pointers -automatically.)@refill +The first node of a Texinfo file is the @dfn{Top} node, except in an +included file (@pxref{Include Files}). The Top node contains the main +or master menu for the document, and a short summary of the document +(@pxref{Top Node Summary}). + +@cindex Up node of Top node +@cindex (dir) as Up node of Top node +The Top node (which must be named @samp{top} or @samp{Top}) should have +as its `Up' node the name of a node in another file, where there is a +menu that leads to this file. Specify the file name in parentheses. If +the file is to be installed directly in the Info directory file, use +@samp{(dir)} as the parent of the Top node; this is short for +@samp{(dir)top}, and specifies the Top node in the @file{dir} file, +which contains the main menu for the Info system as a whole. For +example, the @code{@@node Top} line of this manual looks like this: + +@example +@@node Top, Copying, , (dir) +@end example + +@noindent +(You can use the Texinfo updating commands or the @code{makeinfo} +utility to insert these pointers automatically.) + +@cindex Previous node of Top node +Do not define the `Previous' node of the Top node to be @samp{(dir)}, as +it causes confusing behavior for users: if you are in the Top node and +hits @key{DEL} to go backwards, you wind up in the middle of the +some other entry in the @file{dir} file, which has nothing to do with +what you were reading. @xref{Install an Info File}, for more information about installing -an Info file in the @file{info} directory.@refill - -The `Top' node contains the main or master menu for the document. +an Info file in the @file{info} directory. + @node makeinfo top command, Top Node Summary, First Node, node @comment node-name, next, previous, up @@ -4754,7 +4809,8 @@ @code{@@unnumbered} when you use the Texinfo updating commands to create or update pointers and menus.@refill -@node Top Node Summary, , makeinfo top command, node + +@node Top Node Summary, , makeinfo top command, node @subsection The `Top' Node Summary @cindex @samp{@r{Top}} node summary @@ -4783,7 +4839,7 @@ contain this information: see @ref{titlepage, , @code{@@titlepage}}.)@refill -@node makeinfo Pointer Creation, , node, Nodes +@node makeinfo Pointer Creation, , node, Nodes @section Creating Pointers with @code{makeinfo} @cindex Creating pointers with @code{makeinfo} @cindex Pointer creation with @code{makeinfo} @@ -4945,18 +5001,17 @@ @cindex Menu parts @cindex @code{@@menu} parts -A menu entry has three parts, only the second of which is -required:@refill +A menu entry has three parts, only the second of which is required: @enumerate @item -The menu entry name. +The menu entry name (optional). @item The name of the node (required). @item -A description of the item. +A description of the item (optional). @end enumerate The template for a menu entry looks like this:@refill @@ -4972,12 +5027,14 @@ command. The menu entry name is what the user types after the @kbd{m} command.@refill -The third part of a menu entry is a descriptive phrase or -sentence. Menu entry names and node names are often short; the -description explains to the reader what the node is about. The -description, which is optional, can spread over two or more lines. A -useful description complements the node name rather than repeats -it.@refill +The third part of a menu entry is a descriptive phrase or sentence. +Menu entry names and node names are often short; the description +explains to the reader what the node is about. A useful description +complements the node name rather than repeats it. The description, +which is optional, can spread over two or more lines; if it does, some +authors prefer to indent the second line while others prefer to align it +with the first (and all others). It's up to you. + @node Less Cluttered Menu Entry, Menu Example, Menu Parts, Menus @comment node-name, next, previous, up @@ -5080,7 +5137,7 @@ @samp{Buffers}, they must be the names of nodes in the same Info file (@pxref{Other Info Files, , Referring to Other Info Files}).@refill -@node Other Info Files, , Menu Example, Menus +@node Other Info Files, , Menu Example, Menus @comment node-name, next, previous, up @section Referring to Other Info Files @cindex Referring to other Info files @@ -5169,6 +5226,7 @@ * ref:: A reference for the last part of a sentence. * pxref:: How to write a parenthetical cross reference. * inforef:: How to refer to an Info-only file. +* uref:: How to refer to a uniform resource locator. @end menu @node References, Cross Reference Commands, Cross References, Cross References @@ -5202,7 +5260,7 @@ reference locations. This is evident in Info, in which a cross reference takes you to the specified node. @TeX{} also uses nodes to define cross reference locations, but the action is less obvious. When -@TeX{} generates a @sc{dvi} file, it records nodes' page numbers and +@TeX{} generates a DVI file, it records nodes' page numbers and uses the page numbers in making references. Thus, if you are writing a manual that will only be printed, and will not be used on-line, you must nonetheless write @code{@@node} lines to name the places to which @@ -5314,8 +5372,8 @@ @item The cross reference name for the Info reference, if it is to be different -from the node name. If you include this argument, it argument becomes -the first part of the cross reference. It is usually omitted.@refill +from the node name. If you include this argument, it becomes +the first part of the cross reference. It is usually omitted.@refill @item A topic description or section name. Often, this is the title of the @@ -5324,7 +5382,9 @@ @item The name of the Info file in which the reference is located, if it is -different from the current file.@refill +different from the current file. You need not include any @samp{.info} +suffix on the file name, since Info readers try appending it +automatically. @item The name of a printed manual from a different Texinfo file.@refill @@ -5641,7 +5701,7 @@ same, and with the first and third arguments if the node name and title are different.@refill -Here are several examples from @cite{The GAWK Manual}:@refill +Here are several examples from @cite{The GNU Awk User's Guide}:@refill @smallexample @@xref@{Sample Program@}. @@ -5652,7 +5712,7 @@ @@xref@{Regexp, , Regular Expressions as Patterns@}. @end smallexample -@node Four and Five Arguments, , Three Arguments, xref +@node Four and Five Arguments, , Three Arguments, xref @subsection @code{@@xref} with Four and Five Arguments In a cross reference, a fourth argument specifies the name of another @@ -5978,8 +6038,7 @@ breaks up the flow of text.@refill @end quotation -@node inforef, , pxref, Cross References -@comment node-name, next, previous, up +@node inforef, uref, pxref, Cross References @section @code{@@inforef} @cindex Cross references using @code{@@inforef} @cindex References using @code{@@inforef} @@ -6076,6 +6135,51 @@ refer to printed works for which no Info form exists. @xref{cite, , @code{@@cite}}.@refill + +@node uref, , inforef, Cross References +@section @code{@@uref@{@var{url}[, @var{displayed-text}]@}} +@findex uref +@cindex Uniform resource locator, referring to +@cindex URL, referring to + +@code{@@uref} produces a reference to a uniform resource locator (URL). +It takes one mandatory argument, the URL, and one optional argument, the +text to display (the default is the URL itself). In HTML output, +@code{@@uref} produces a link you can follow. For example: + +@example +The official GNU ftp site is +@@uref@{ftp://ftp.gnu.ai.mit.edu/pub/gnu@} +@end example + +@noindent produces (in text): +@display +The official GNU ftp site is +@uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu} +@end display + +@noindent whereas +@example +The official +@@uref@{ftp://ftp.gnu.ai.mit.edu/pub/gnu, + GNU ftp site@} holds programs and texts. +@end example + +@noindent produces (in text): +@display +The official @uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu, GNU ftp site} holds +programs and texts. +@end display + +@noindent and (in HTML): +@example +The official <A HREF="ftp://ftp.gnu.ai.mit.edu/pub/gnu">GNU ftp +site</A> holds programs and texts. +@end example + +To merely indicate a URL, use @code{@@url} (@pxref{url, @code{@@url}}). + + @node Marking Text, Quotations and Examples, Cross References, Top @comment node-name, next, previous, up @chapter Marking Words and Phrases @@ -6171,7 +6275,7 @@ @item @@file@{@var{file-name}@} Indicate the name of a file.@refill -@item @@email@{@var{email-address}@} +@item @@email@{@var{email-address}[, @var{displayed-text}]@} Indicate an electronic mail address. @item @@dfn@{@var{term}@} @@ -6270,10 +6374,11 @@ @end example @end iftex + @node kbd, key, code, Indicating -@comment node-name, next, previous, up @subsection @code{@@kbd}@{@var{keyboard-characters}@} @findex kbd +@cindex keyboard input Use the @code{@@kbd} command for characters of input to be typed by users. For example, to refer to the characters @kbd{M-a}, @@ -6290,8 +6395,31 @@ @@kbd@{M-x shell@} @end example +@cindex user input +@cindex slanted typewriter font, for @code{@@kbd} The @code{@@kbd} command has the same effect as @code{@@code} in Info, -but may produce a different font in a printed manual.@refill +but by default produces a different font (slanted typewriter instead of +normal typewriter) in the printed manual, so users can distinguish the +characters they are supposed to type from those the computer outputs. + +@findex kbdinputstyle +Since the usage of @code{@@kbd} varies from manual to manual, you can +control the font switching with the @code{@@kbdinputstyle} command. +This command has no effect on Info output. Write this command at the +beginning of a line with a single word as an argument, one of the +following: +@vindex distinct@r{, arg to @@kbdinputstyle} +@vindex example@r{, arg to @@kbdinputstyle} +@vindex code@r{, arg to @@kbdinputstyle} +@table @samp +@item code +Always use the same font for @code{@@kbd} as @code{@@code}. +@item example +Use the distinguishing font for @code{@@kbd} only in @code{@@example} +and similar environments. +@item example +(the default) Always use the distinguishing font for @code{@@kbd}. +@end table You can embed another @@-command inside the braces of an @code{@@kbd} command. Here, for example, is the way to describe a command that @@ -6325,6 +6453,7 @@ really want to mention a space character as one of the characters of input, write @kbd{@@key@{SPC@}} for it.)@refill + @node key, samp, kbd, Indicating @comment node-name, next, previous, up @subsection @code{@@key}@{@var{key-name}@} @@ -6382,11 +6511,11 @@ @cindex META key There are subtleties to handling words like `meta' or `ctrl' that are -names of shift keys. When mentioning a character in which the shift key -is used, such as @kbd{Meta-a}, use the @code{@@kbd} command alone; do -not use the @code{@@key} command; but when you are referring to the -shift key in isolation, use the @code{@@key} command. For example, -write @samp{@@kbd@{Meta-a@}} to produce @kbd{Meta-a} and +names of modifier keys. When mentioning a character in which the +modifier key is used, such as @kbd{Meta-a}, use the @code{@@kbd} command +alone; do not use the @code{@@key} command; but when you are referring +to the modifier key in isolation, use the @code{@@key} command. For +example, write @samp{@@kbd@{Meta-a@}} to produce @kbd{Meta-a} and @samp{@@key@{META@}} to produce @key{META}. @c I don't think this is a good explanation. @@ -6421,10 +6550,11 @@ @end quotation Any time you are referring to single characters, you should use -@code{@@samp} unless @code{@@kbd} is more appropriate. Use -@code{@@samp} for the names of command-line options. Also, you may use -@code{@@samp} for entire statements in C and for entire shell -commands---in this case, @code{@@samp} often looks better than +@code{@@samp} unless @code{@@kbd} or @code{@@key} is more appropriate. +Use @code{@@samp} for the names of command-line options (except in an +@code{@@table}, where @code{@@code} seems to read more easily). Also, +you may use @code{@@samp} for entire statements in C and for entire +shell commands---in this case, @code{@@samp} often looks better than @code{@@code}. Basically, @code{@@samp} is a catchall for whatever is not covered by @code{@@code}, @code{@@kbd}, or @code{@@key}.@refill @@ -6464,7 +6594,7 @@ Do not use @code{@@var} for the names of particular variables in programming languages. These are specific names from a program, so -@code{@@code} is correct for them. For example, the Lisp variable +@code{@@code} is correct for them. For example, the Emacs Lisp variable @code{texinfo-tex-command} is not a metasyntactic variable; it is properly formatted using @code{@@code}.@refill @@ -6643,39 +6773,53 @@ @var{ch}.@refill @end ignore + @node url, email, cite, Indicating @subsection @code{@@url}@{@var{uniform-resource-locator}@} @findex url - -Use the @code{@@url} command to indicate a uniform resource locator on -the World Wide Web. For example: +@cindex Uniform resource locator, indicating +@cindex URL, indicating + +Use the @code{@@url} to indicate a uniform resource locator on the World +Wide Web. This is analogous to @code{@@file}, @code{@@var}, etc., and +is purely for markup purposes. It does not produce a link you can +follow in HTML output (the @code{@@uref} command does, @pxref{uref,, +@code{@@uref}}). It is useful for example URL's which do not actually +exist. For example: @c Two lines because one is too long for smallbook format. @example -The official GNU ftp site is -@@url@{ftp://ftp.gnu.ai.mit.edu/pub/gnu@}. -@end example - -In Info and @TeX{}, this acts like @code{@@samp}. When -Texinfo is converted to HTML, this produces a link you can follow. - -@node email, , url, Indicating -@subsection @code{@@email}@{@var{email-address}@} +For example, the url might be +@@url@{http://host.domain.org/path@}. +@end example + + +@node email, , url, Indicating +@subsection @code{@@email}@{@var{email-address}[, @var{displayed-text}]@} @findex email Use the @code{@@email} command to indicate an electronic mail address. +It takes one mandatory argument, the address, and one optional argument, the +text to display (the default is the address itself). + +@cindex mailto link +In Info and @TeX{}, the address is shown in angle brackets, preceded by +the text to display if any. In HTML output, @code{@@email} produces a +@samp{mailto} link that usually brings up a mail composition window. For example: @example +Send bug reports to @@email@{bug-texinfo@@@@prep.ai.mit.edu@}. +Send suggestions to the @@email@{bug-texinfo@@@@prep.ai.mit.edu, same place@}. +@end example +@noindent produces +@example Send bug reports to @email{bug-texinfo@@prep.ai.mit.edu}. -@end example - -In Info and @TeX{}, this acts like @code{@@samp}. When we have support -for conversion of Texinfo to HTML, this will produce a link you can -follow to bring up a mail composition window initialized with -@var{email-address}. - -@node Emphasis, , Indicating, Marking Text +Send suggestions to the @email{bug-texinfo@@prep.ai.mit.edu, same place}. +@end example + + +@node Emphasis, , Indicating, Marking Text @comment node-name, next, previous, up @section Emphasizing Text @cindex Emphasizing text @@ -6714,7 +6858,7 @@ @example @group @@quotation -@@strong@{Caution:@} @@code@{rm * .[^.]*@} removes @@emph@{all@} +@@strong@{Caution:@} @@samp@{rm * .[^.]*@} removes @@emph@{all@} files in the directory. @@end quotation @end group @@ -6854,7 +6998,7 @@ you need to use one, it probably indicates a gap in the Texinfo language.@refill -@node Customized Highlighting, , Fonts, Emphasis +@node Customized Highlighting, , Fonts, Emphasis @comment node-name, next, previous, up @subsection Customized Highlighting @cindex Highlighting, customized @@ -7253,12 +7397,12 @@ @code{@@lisp} command and an @code{@@end lisp} command. @end lisp -Use @code{@@lisp} instead of @code{@@example} so as to preserve -information regarding the nature of the example. This is useful, for -example, if you write a function that evaluates only and all the Lisp -code in a Texinfo file. Then you can use the Texinfo file as a Lisp -library.@footnote{It would be straightforward to extend Texinfo to -work in a similar fashion for C, @sc{fortran}, or other languages.}@refill +Use @code{@@lisp} instead of @code{@@example} to preserve information +regarding the nature of the example. This is useful, for example, if +you write a function that evaluates only and all the Lisp code in a +Texinfo file. Then you can use the Texinfo file as a Lisp +library.@footnote{It would be straightforward to extend Texinfo to work +in a similar fashion for C, Fortran, or other languages.}@refill Mark the end of @code{@@lisp} with @code{@@end lisp} on a line by itself.@refill @@ -7459,12 +7603,8 @@ @end quotation -Flushright produces the type of indentation often used in the return -address of letters.@refill - -@need 1500 -@noindent -For example, +@code{@@flushright} produces the type of indentation often used in the +return address of letters. For example, @example @group @@ -7487,7 +7627,7 @@ left end ragged. @end flushright -@node cartouche, , flushleft & flushright, Quotations and Examples +@node cartouche, , flushleft & flushright, Quotations and Examples @section Drawing Cartouches Around Examples @findex cartouche @cindex Box with rounded corners @@ -7509,7 +7649,7 @@ @@example @@cartouche % pwd -/usr/local/lib/emacs/info +/usr/local/share/emacs @@end cartouche @@end example @end group @@ -7532,16 +7672,16 @@ @end example @end iftex + @node Lists and Tables, Indices, Quotations and Examples, Top -@comment node-name, next, previous, up -@chapter Making Lists and Tables +@chapter Lists and Tables @cindex Making lists and tables -@cindex Lists and tables, making them -@cindex Tables and lists, making them - -Texinfo has several ways of making lists and two-column tables. Lists can -be bulleted or numbered, while two-column tables can highlight the items in -the first column.@refill +@cindex Lists and tables, making +@cindex Tables and lists, making + +Texinfo has several ways of making lists and tables. Lists can be +bulleted or numbered; two-column tables can highlight the items in +the first column; multi-column tables are also supported. @menu * Introducing Lists:: Texinfo formats lists for you. @@ -7738,23 +7878,22 @@ @cindex Enumeration @findex enumerate -@code{@@enumerate} is like @code{@@itemize} except that the marks in -the left margin contain successive integers or letters. -(@xref{itemize, , @code{@@itemize}}.)@refill - -Write the @code{@@enumerate} command at the beginning of a line. -The command does not require an argument, but accepts either a number or -a letter as an option. -Without an argument, @code{@@enumerate} starts the list -with the number 1. With a numeric argument, such as 3, -the command starts the list with that number. -With an upper or lower case letter, such as @kbd{a} or @kbd{A}, -the command starts the list with that letter.@refill +@code{@@enumerate} is like @code{@@itemize} (@pxref{itemize,, +@code{@@itemize}}), except that the labels on the items are +successive integers or letters instead of bullets. + +Write the @code{@@enumerate} command at the beginning of a line. The +command does not require an argument, but accepts either a number or a +letter as an option. Without an argument, @code{@@enumerate} starts the +list with the number @samp{1}. With a numeric argument, such as +@samp{3}, the command starts the list with that number. With an upper +or lower case letter, such as @samp{a} or @samp{A}, the command starts +the list with that letter.@refill Write the text of the enumerated list in the same way you write an -itemized list: put @code{@@item} on a line of its own before the start of -each paragraph that you want enumerated. Do not write any other text on -the line beginning with @code{@@item}.@refill +itemized list: put @code{@@item} on a line of its own before the start +of each paragraph that you want enumerated. Do not write any other text +on the line beginning with @code{@@item}.@refill You should put a blank line between entries in the list. This generally makes it easier to read the Info file.@refill @@ -7855,16 +7994,15 @@ @cindex Tables, making two-column @findex table -@code{@@table} is similar to @code{@@itemize}, but the command allows -you to specify a name or heading line for each item. (@xref{itemize, -, @code{@@itemize}}.) The @code{@@table} command is used to produce -two-column tables, and is especially useful for glossaries and -explanatory exhibits.@refill +@code{@@table} is similar to @code{@@itemize} (@pxref{itemize,, +@code{@@itemize}}), but allows you to specify a name or heading line for +each item. The @code{@@table} command is used to produce two-column +tables, and is especially useful for glossaries, explanatory +exhibits, and command-line option summaries. @menu * table:: How to construct a two-column table. -* ftable vtable:: How to construct a two-column table - with automatic indexing. +* ftable vtable:: Automatic indexing for two-column tables. * itemx:: How to put more entries in the first column. @end menu @@ -7876,25 +8014,27 @@ @end ifinfo Write the @code{@@table} command at the beginning of a line and follow -it on the same line with an argument that is a Texinfo command such as -@code{@@code}, @code{@@samp}, @code{@@var}, or @code{@@kbd}. -Although these commands are usually followed by arguments in braces, -in this case you use the command name without an argument because -@code{@@item} will supply the argument. This command will be applied -to the text that goes into the first column of each item and -determines how it will be highlighted. For example, @code{@@samp} -will cause the text in the first column to be highlighted with an -@code{@@samp} command.@refill - +it on the same line with an argument that is a Texinfo ``indicating'' +command such as @code{@@code}, @code{@@samp}, @code{@@var}, or +@code{@@kbd} (@pxref{Indicating}). Although these commands are usually +followed by arguments in braces, in this case you use the command name +without an argument because @code{@@item} will supply the argument. +This command will be applied to the text that goes into the first column +of each item and determines how it will be highlighted. For example, +@code{@@code} will cause the text in the first column to be highlighted +with an @code{@@code} command. (We recommend @code{@@code} for +@code{@@table}'s of command-line options.) + +@findex asis You may also choose to use the @code{@@asis} command as an argument to -@code{@@table}. @code{@@asis} is a command that does nothing; if you use this -command after @code{@@table}, @TeX{} and the Info formatting commands -output the first column entries without added highlighting (`as -is').@refill +@code{@@table}. @code{@@asis} is a command that does nothing; if you +use this command after @code{@@table}, @TeX{} and the Info formatting +commands output the first column entries without added highlighting +(``as is'').@refill (The @code{@@table} command may work with other commands besides those -listed here. However, you can only use commands -that normally take arguments in braces.)@refill +listed here. However, you can only use commands that normally take +arguments in braces.)@refill Begin each table entry with an @code{@@item} command at the beginning of a line. Write the first column text on the same line as the @@ -7969,18 +8109,18 @@ See the example for @code{@@table} in the previous section. -@node itemx, , ftable vtable, Two-column Tables +@node itemx, , ftable vtable, Two-column Tables @comment node-name, next, previous, up @subsection @code{@@itemx} @cindex Two named items for @code{@@table} @findex itemx -Use the @code{@@itemx} command inside a table when you have two or -more first column entries for the same item, each of which should -appear on a line of its own. Use @code{@@itemx} for all but the first -entry. The @code{@@itemx} command works exactly like @code{@@item} -except that it does not generate extra vertical space above the first -column text.@refill +Use the @code{@@itemx} command inside a table when you have two or more +first column entries for the same item, each of which should appear on a +line of its own. Use @code{@@itemx} for all but the first entry; +@code{@@itemx} should always follow an @code{@@item} command. The +@code{@@itemx} command works exactly like @code{@@item} except that it +does not generate extra vertical space above the first column text. @need 1000 For example, @@ -8013,7 +8153,7 @@ a two-column table.)@refill -@node Multi-column Tables, , Two-column Tables, Lists and Tables +@node Multi-column Tables, , Two-column Tables, Lists and Tables @section Multi-column Tables @cindex Tables, making multi-column @findex multitable @@ -8080,7 +8220,7 @@ @end enumerate -@node Multitable Rows, , Multitable Column Widths, Multi-column Tables +@node Multitable Rows, , Multitable Column Widths, Multi-column Tables @subsection Multitable Rows @cindex Multitable rows @cindex Rows, of a multitable @@ -8094,7 +8234,8 @@ input lines in your source file as necessary. Here is a complete example of a multi-column table (the text is from -the GNU Emacs manual): +@cite{The GNU Emacs Manual}, @pxref{Split Window,, Splitting Windows, +emacs, The GNU Emacs Manual}): @example @@multitable @@columnfractions .15 .45 .4 @@ -8457,7 +8598,7 @@ index into a concept index, all the function names are printed in the @code{@@code} font as you would expect.@refill -@node synindex, , syncodeindex, Combining Indices +@node synindex, , syncodeindex, Combining Indices @subsection @code{@@synindex} @findex synindex @@ -8470,7 +8611,7 @@ @xref{Printing Indices & Menus}, for information about printing an index at the end of a book or creating an index menu in an Info file.@refill -@node New Indices, , Combining Indices, Indices +@node New Indices, , Combining Indices, Indices @section Defining New Indices @cindex Defining new indices @cindex Indices, defining new @@ -8537,35 +8678,26 @@ line of a Texinfo file, before any @code{@@synindex} or @code{@@syncodeindex} commands (@pxref{Header}).@refill -@node Insertions, Glyphs, Indices, Top +@node Insertions, Breaks, Indices, Top @comment node-name, next, previous, up @chapter Special Insertions @cindex Inserting special characters and symbols @cindex Special insertions -Texinfo provides several commands for formatting dimensions, for -inserting single characters that have special meaning in Texinfo, such -as braces, and for inserting special graphic symbols that do not -correspond to characters, such as dots and bullets.@refill +Texinfo provides several commands for inserting characters that have +special meaning in Texinfo, such as braces, and for other graphic +elements that do not correspond to simple characters you can type. @iftex These are: @itemize @bullet -@item -Braces, @samp{@@} and periods. - -@item -Format a dimension, such as @samp{12@dmn{pt}}. - -@item -Dots and bullets. - -@item -The @TeX{} logo and the copyright symbol. - -@item -A minus sign. +@item Braces, @samp{@@} and periods. +@item Whitespace within and around a sentence. +@item Accents. +@item Dots and bullets. +@item The @TeX{} logo and the copyright symbol. +@item Mathematical expressions. @end itemize @end iftex @@ -8580,6 +8712,9 @@ * pounds:: How to insert the pounds currency symbol. * minus:: How to insert a minus sign. * math:: How to format a mathematical expression. +* Glyphs:: How to indicate results of evaluation, + expansion of macros, errors, etc. +* Images:: How to include graphics. @end menu @@ -8612,7 +8747,7 @@ Do not put braces after an @code{@@@@} command. -@node Inserting Braces, , Inserting An Atsign, Braces Atsigns +@node Inserting Braces, , Inserting An Atsign, Braces Atsigns @subsection Inserting @samp{@{} and @samp{@}}with @@@{ and @@@} @findex @{ @r{(single @samp{@{})} @findex @} @r{(single @samp{@}})} @@ -8663,8 +8798,7 @@ Use the @code{@@:}@: command after a period, question mark, exclamation mark, or colon that should not be followed by extra space. For example, use @code{@@:}@: after periods that end abbreviations -which are not at the ends of sentences. @code{@@:}@: has no effect on -the Info file output. +which are not at the ends of sentences. @need 700 For example, @@ -8690,10 +8824,11 @@ @end quotation @noindent -@kbd{@@:} has no effect on the Info output. (@samp{s.o.p.} is an -abbreviation for ``Standard Operating Procedure''.) - -Do not put braces after @code{@@:}. +(Incidentally, @samp{s.o.p.} is an abbreviation for ``Standard Operating +Procedure''.) + +@code{@@:} has no effect on the Info output. Do not put braces after +@code{@@:}. @node Ending a Sentence, Multiple Spaces, Not Ending a Sentence, Inserting Space @@ -8736,8 +8871,8 @@ The meanings of @code{@@:} and @code{@@.}@: in Texinfo are designed to work well with the Emacs sentence motion commands (@pxref{Sentences,,, -emacs, GNU Emacs}). This made it necessary for them to be incompatible -with some other formatting systems that use @@-commands. +emacs, The GNU Emacs Manual}). This made it necessary for them to be +incompatible with some other formatting systems that use @@-commands. Do not put braces after any of these commands. @@ -8752,17 +8887,19 @@ @findex (newline) Ordinarily, @TeX{} collapses multiple whitespace characters (space, tab, -and newline) into a single space. (Info output, on the other hand, +and newline) into a single space. Info output, on the other hand, preserves whitespace as you type it, except for changing a newline into a space; this is why it is important to put two spaces at the end of -sentences in Texinfo documents.) +sentences in Texinfo documents. Occasionally, you may want to actually insert several consecutive spaces, either for purposes of example (what your program does with multiple spaces as input), or merely for purposes of appearance in -headings or lists. Texinfo supports three commands: @code{@@ }, -@code{@@@kbd{TAB}}, and @code{@@@kbd{NL}}, all of which insert a single -space into the output. (Here, @kbd{TAB} and @kbd{NL} represent the tab +headings or lists. Texinfo supports three commands: +@code{@@@kbd{SPACE}}, @code{@@@kbd{TAB}}, and @code{@@@kbd{NL}}, all of +which insert a single space into the output. (Here, +@code{@@@kbd{SPACE}} represents an @samp{@@} character followed by a +space, i.e., @samp{@@ }, and @kbd{TAB} and @kbd{NL} represent the tab character and end-of-line, i.e., when @samp{@@} is the last character on a line.) @@ -8779,13 +8916,13 @@ example. @end example -Other possible uses of @code{@@ } have been subsumed by @code{@@multitable} -(@pxref{Multi-column Tables}). +Other possible uses of @code{@@@kbd{SPACE}} have been subsumed by +@code{@@multitable} (@pxref{Multi-column Tables}). Do not follow any of these commands with braces. -@node dmn, , Multiple Spaces, Inserting Space +@node dmn, , Multiple Spaces, Inserting Space @subsection @code{@@dmn}@{@var{dimension}@}: Format a Dimension @cindex Thin space between number, dimension @cindex Dimension formatting @@ -8801,11 +8938,7 @@ To use the @code{@@dmn} command, write the number and then follow it immediately, with no intervening space, by @code{@@dmn}, and then by -the dimension within braces.@refill - -@need 700 -@noindent -For example, +the dimension within braces. For example, @example A4 paper is 8.27@@dmn@{in@} wide. @@ -8818,13 +8951,13 @@ A4 paper is 8.27@dmn{in} wide. @end quotation -Not everyone uses this style. Instead of writing -@w{@samp{8.27@@dmn@{in@}}} in the Texinfo file, you may write -@w{@samp{8.27 in.}} or @w{@samp{8.27 inches}}. (In these cases, the -formatters may insert a line break between the number and the -dimension. Also, if you write a period after an abbreviation within a -sentence, you should write @samp{@@:} after the period to prevent -@TeX{} from inserting extra whitespace. @xref{Inserting Space}. +Not everyone uses this style. Some people prefer @w{@samp{8.27 in.@@:}} +or @w{@samp{8.27 inches}} to @samp{8.27@@dmn@{in@}} in the Texinfo file. +In these cases, however, the formatters may insert a line break between +the number and the dimension, so use @code{@@w} (@pxref{w}). Also, if +you write a period after an abbreviation within a sentence, you should +write @samp{@@:} after the period to prevent @TeX{} from inserting extra +whitespace, as shown here. @xref{Inserting Space}. @node Inserting Accents, Dots Bullets, Inserting Space, Insertions @@ -8964,9 +9097,9 @@ * bullet:: How to insert a bullet. @end menu + @node dots, bullet, Dots Bullets, Dots Bullets -@comment node-name, next, previous, up -@subsection @code{@@dots}@{@} +@subsection @code{@@dots}@{@} (@dots{}) @findex dots @cindex Inserting dots @cindex Dots, inserting @@ -8988,9 +9121,9 @@ the dots in the ellipsis. @end iftex -@node bullet, , dots, Dots Bullets -@comment node-name, next, previous, up -@subsection @code{@@bullet}@{@} + +@node bullet, , dots, Dots Bullets +@subsection @code{@@bullet}@{@} (@bullet{}) @findex bullet Use the @code{@@bullet@{@}} command to generate a large round dot, or @@ -9002,8 +9135,8 @@ type the braces, because @code{@@itemize} supplies them. (@xref{itemize, , @code{@@itemize}}.)@refill + @node TeX and copyright, pounds, Dots Bullets, Insertions -@comment node-name, next, previous, up @section Inserting @TeX{} and the Copyright Symbol The logo `@TeX{}' is typeset in a special fashion and it needs an @@ -9017,9 +9150,9 @@ * copyright symbol:: How to use @code{@@copyright}@{@}. @end menu + @node tex, copyright symbol, TeX and copyright, TeX and copyright -@comment node-name, next, previous, up -@subsection @code{@@TeX}@{@} +@subsection @code{@@TeX}@{@} (@TeX{}) @findex tex (command) Use the @code{@@TeX@{@}} command to generate `@TeX{}'. In a printed @@ -9028,17 +9161,18 @@ @code{@@TeX@{@}} command is unique among Texinfo commands in that the @kbd{T} and the @kbd{X} are in upper case.@refill -@node copyright symbol, , tex, TeX and copyright -@comment node-name, next, previous, up -@subsection @code{@@copyright}@{@} + +@node copyright symbol, , tex, TeX and copyright +@subsection @code{@@copyright}@{@} (@copyright{}) @findex copyright Use the @code{@@copyright@{@}} command to generate `@copyright{}'. In a printed manual, this is a @samp{c} inside a circle, and in Info, this is @samp{(C)}.@refill + @node pounds, minus, TeX and copyright, Insertions -@section @code{@@pounds}@{@} +@section @code{@@pounds}@{@} (@pounds{}): Pounds Sterling @findex pounds Use the @code{@@pounds@{@}} command to generate `@pounds{}'. In a @@ -9046,37 +9180,38 @@ In Info, it is a @samp{#}. Other currency symbols are unfortunately not available. + @node minus, math, pounds, Insertions -@section @code{@@minus}@{@}: Inserting a Minus Sign +@section @code{@@minus}@{@} (@minus{}): Inserting a Minus Sign @findex minus Use the @code{@@minus@{@}} command to generate a minus sign. In a fixed-width font, this is a single hyphen, but in a proportional font, the symbol is the customary length for a minus sign---a little longer -than a hyphen.@refill - -You can compare the two forms: +than a hyphen, shorter than an em-dash: @display @samp{@minus{}} is a minus sign generated with @samp{@@minus@{@}}, -`-' is a hyphen generated with the character @samp{-}. +`-' is a hyphen generated with the character @samp{-}, + +`---' is an em-dash for text. @end display @noindent In the fixed-width font used by Info, @code{@@minus@{@}} is the same -as a hyphen.@refill +as a hyphen. You should not use @code{@@minus@{@}} inside @code{@@code} or @code{@@example} because the width distinction is not made in the -fixed-width font they use.@refill +fixed-width font they use. When you use @code{@@minus} to specify the mark beginning each entry in an itemized list, you do not need to type the braces -(@pxref{itemize, , @code{@@itemize}}.)@refill - -@node math, , minus, Insertions -@comment node-name, next, previous, up +(@pxref{itemize, , @code{@@itemize}}.) + + +@node math, Glyphs, minus, Insertions @section @code{@@math}: Inserting Mathematical Expressions @findex math @cindex Mathematical expressions @@ -9109,20 +9244,16 @@ (a + b)(a + b) = a^2 + 2ab + b^2 @end example -The @code{@@math} command has no effect on the Info output. Currently, -it has limited effect on typeset output. However, this may change since -@TeX{} itself is designed for mathematical typesetting and does a -splendid job. - -Certainly, for complex mathematical expressions, you could use @TeX{} -directly. @xref{Using Ordinary TeX Commands, , Using Ordinary @TeX{} -Commands}. When you use @TeX{} directly, remember to write the -mathematical expression between one or two @samp{$} (dollar-signs) as -appropriate. - -@node Glyphs, Breaks, Insertions, Top -@comment node-name, next, previous, up -@chapter Glyphs for Examples +Thus, the @code{@@math} command has no effect on the Info output. + +For complex mathematical expressions, you can also use @TeX{} directly +(@pxref{Raw Formatter Commands}). When you use @TeX{} directly, +remember to write the mathematical expression between one or two +@samp{$} (dollar-signs) as appropriate. + + +@node Glyphs, Images, math, Insertions +@section Glyphs for Examples @cindex Glyphs In Texinfo, code is often illustrated in examples that are delimited @@ -9150,7 +9281,7 @@ @node Glyphs Summary, result, Glyphs, Glyphs @ifinfo -@heading Glyphs Summary +@subheading Glyphs Summary Here are the different glyph commands:@refill @end ifinfo @@ -9176,8 +9307,18 @@ @code{@@point@{@}} shows the location of point.@refill @end table + +@menu +* result:: +* expansion:: +* Print Glyph:: +* Error Glyph:: +* Equivalence:: +* Point Glyph:: +@end menu + @node result, expansion, Glyphs Summary, Glyphs -@section @result{}: Indicating Evaluation +@subsection @code{@@result@{@}} (@result{}): Indicating Evaluation @cindex Result of an expression @cindex Indicating evaluation @cindex Evaluation glyph @@ -9205,8 +9346,9 @@ @noindent may be read as ``@code{(cdr '(1 2 3))} evaluates to @code{(2 3)}''. + @node expansion, Print Glyph, result, Glyphs -@section @expansion{}: Indicating an Expansion +@subsection @code{@@expansion@{@}} (@expansion{}): Indicating an Expansion @cindex Expansion, indicating it When an expression is a macro call, it expands into a new expression. @@ -9259,8 +9401,9 @@ @code{@@expansion@{@}} and @code{@@result@{@}} commands are indented five spaces.@refill + @node Print Glyph, Error Glyph, expansion, Glyphs -@section @print{}: Indicating Printed Output +@subsection @code{@@print@{@}} (@print{}): Indicating Printed Output @cindex Printed output, indicating it Sometimes an expression will print output during its execution. You @@ -9303,8 +9446,9 @@ @end group @end lisp + @node Error Glyph, Equivalence, Print Glyph, Glyphs -@section @error{}: Indicating an Error Message +@subsection @code{@@error@{@}} (@error{}): Indicating an Error Message @cindex Error message, indicating it A piece of code may cause an error when you evaluate it. You can @@ -9345,11 +9489,11 @@ Wrong type argument: integer-or-marker-p, x @end lisp -Note that @samp{@error{}} itself is not part of the error -message. +@samp{@error{}} itself is not part of the error message. + @node Equivalence, Point Glyph, Error Glyph, Glyphs -@section @equiv{}: Indicating Equivalence +@subsection @code{@@equiv@{@}} (@equiv{}): Indicating Equivalence @cindex Equivalence, indicating it Sometimes two expressions produce identical results. You can indicate the @@ -9383,9 +9527,9 @@ This indicates that evaluating @code{(make-sparse-keymap)} produces identical results to evaluating @code{(list 'keymap)}. -@c Cannot write point command here because it causes trouble with TOC. -@node Point Glyph, , Equivalence, Glyphs -@section Indicating Point in a Buffer + +@node Point Glyph, , Equivalence, Glyphs +@subsection @code{@@point@{@}} (@point{}): Indicating Point in a Buffer @cindex Point, indicating it in a buffer Sometimes you need to show an example of text in an Emacs buffer. In @@ -9446,8 +9590,93 @@ @@end example @end example -@node Breaks, Definition Commands, Glyphs, Top -@comment node-name, next, previous, up + +@c this should be described with figures when we have them +@c perhaps in the quotation/example chapter. +@node Images, , Glyphs, Insertions +@section Inserting Images + +@cindex Images, inserting +@cindex Pictures, inserting +@findex image + +You can insert an image in an external file with the @code{@@image} +command: + +@example +@@image@{@var{filename}, @r{[}@var{width}@r{]}, @r{[}@var{height}@r{]}@} +@end example + +@cindex Formats for images +@cindex Image formats +The @var{filename} argument is mandatory, and must not have an +extension, because the different processors support different formats: +@TeX{} reads the file @file{@var{filename}.eps} (Encapsulated PostScript +format); @code{makeinfo} uses @file{@var{filename}.txt} verbatim for +Info output (more or less as if it was an @code{@@example}). HTML +output requires @file{@var{filename}.jpg}. + +@cindex Width of images +@cindex Height of images +@cindex Aspect ratio of images +@cindex Distorting images +The optional @var{width} and @var{height} arguments specify the size to +scale the image to (they are ignored for Info output). If they are both +specified, the image is presented in its natural size (given in the +file); if only one is specified, the other is scaled proportionately; +and if both are specified, both are respected, thus possibly distorting +the original image by changing its aspect ratio. + +@cindex Dimensions and image sizes +The @var{width} and @var{height} may be specified using any valid @TeX{} +dimension, namely: + +@table @asis +@item pt +@cindex Points (dimension) +point (72.27pt = 1in) +@item pc +@cindex Picas +pica (1pc = 12pt) +@item bp +@cindex Big points +big point (72bp = 1in) +@item in +@cindex Inches +inch +@item cm +@cindex Centimeters +centimeter (2.54cm = 1in) +@item mm +@cindex Millimeters +millimeter (10mm = 1cm) +@item dd +@cindex Did@^ot points +did@^ot point (1157dd = 1238pt) +@item cc +@cindex Ciceros +cicero (1cc = 12dd) +@item sp +@cindex Scaled points +scaled point (65536sp = 1pt) +@end table + +@pindex ridt.eps +For example, the following will scale a file @file{ridt.eps} to one +inch vertically, with the width scaled proportionately: + +@example +@@image@{ridt,,1in@} +@end example + +@pindex epsf.tex +For @code{@@image} to work with @TeX{}, the file @file{epsf.tex} must be +installed somewhere that @TeX{} can find it. This file is included in +the Texinfo distribution and is available from +@uref{ftp://ftp.tug.org/tex/epsf.tex}. + + +@node Breaks, Definition Commands, Insertions, Top @chapter Making and Preventing Breaks @cindex Making line and page breaks @cindex Preventing line and page breaks @@ -9627,18 +9856,18 @@ within @var{text}.@refill You can use the @code{@@w} command to prevent @TeX{} from automatically -hyphenating a long name or phrase that accidentally falls near the end -of a line.@refill - -@example -You can copy GNU software from @@w@{@@file@{prep.ai.mit.edu@}@}. +hyphenating a long name or phrase that happens to fall near the end of a +line.@refill + +@example +You can copy GNU software from @@w@{@@samp@{ftp.gnu.ai.mit.edu@}@}. @end example @noindent produces @quotation -You can copy GNU software from @w{@file{prep.ai.mit.edu}}. +You can copy GNU software from @w{@samp{ftp.gnu.ai.mit.edu}}. @end quotation @quotation @@ -9778,7 +10007,7 @@ @code{@@end group} if you get incomprehensible error messages in @TeX{}.@refill -@node need, , group, Breaks +@node need, , group, Breaks @comment node-name, next, previous, up @section @code{@@need @var{mils}}: Prevent Page Breaks @cindex Need space at page bottom @@ -9911,9 +10140,10 @@ belongs. The @code{@@deffn} command possesses three predefined, specialized variations, @code{@@defun}, @code{@@defmac}, and @code{@@defspec}, that specify the category for you: ``Function'', -``Macro'', and ``Special Form'' respectively. The @code{@@defvr} -command also is accompanied by several predefined, specialized -variations for describing particular kinds of variables.@refill +``Macro'', and ``Special Form'' respectively. (In Lisp, a special form +is an entity much like a function.) The @code{@@defvr} command also is +accompanied by several predefined, specialized variations for describing +particular kinds of variables.@refill The template for a specialized definition, such as @code{@@defun}, is similar to the template for a generalized definition, except that you @@ -10190,7 +10420,8 @@ @findex defspec @item @@defspec @var{name} @var{arguments}@dots{} The @code{@@defspec} command is the definition command for special -forms. (In Lisp, a special form is an entity much like a function.) +forms. (In Lisp, a special form is an entity much like a function, +@pxref{Special Forms,,, elisp, GNU Emacs Lisp Reference Manual}.) @code{@@defspec} is equivalent to @samp{@@deffn @{Special Form@} @dots{}} and works like @code{@@defun}.@refill @end table @@ -10212,10 +10443,10 @@ followed it on the same line by the category of the entity and the name of the entity.@refill -Capitalize the category name like a title. If the name of the -category contains spaces, as in the name `User Option', write braces -around it. Otherwise, the second word will be mistaken for the name -of the entity, for example: +Capitalize the category name like a title. If the name of the category +contains spaces, as in the name ``User Option'', enclose it in braces. +Otherwise, the second word will be mistaken for the name of the entity. +For example, @example @group @@ -10274,17 +10505,21 @@ @findex defopt @item @@defopt @var{name} -The @code{@@defopt} command is the definition command for user -options. @code{@@defopt} is equivalent to @samp{@@defvr @{User +@cindex User options, marking +The @code{@@defopt} command is the definition command for @dfn{user +options}, i.e., variables intended for users to change according to +taste; Emacs has many such (@pxref{Variables,,, emacs, The GNU Emacs +Manual}). @code{@@defopt} is equivalent to @samp{@@defvr @{User Option@} @dots{}} and works like @code{@@defvar}.@refill @end table + @node Typed Functions, Typed Variables, Variables Commands, Def Cmds in Detail @subsection Functions in Typed Languages The @code{@@deftypefn} command and its variations are for describing -functions in C or any other language in which you must declare types -of variables and functions.@refill +functions in languages in which you must declare types of variables and +functions, such as C and C++. @table @code @findex deftypefn @@ -10388,8 +10623,8 @@ @code{@@deftypefn} creates an entry in the index of functions for @var{name}.@refill +@item @@deftypefun @var{data-type} @var{name} @var{arguments}@dots{} @findex deftypefun -@item @@deftypefun @var{data-type} @var{name} @var{arguments}@dots{} The @code{@@deftypefun} command is the specialized definition command for functions in typed languages. The command is equivalent to @samp{@@deftypefn Function @dots{}}.@refill @@ -10441,7 +10676,16 @@ @code{@@deftypefun} creates an entry in the index of functions for @var{name}.@refill -@end table + +@item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{} +@findex deftypefun +The @code{@@deftypemethod} command is the definition command for methods +in object-oriented typed languages, such as C++ and Java. It is similar +to the @code{@@deftypefn} with the addition of the @var{class} parameter +to specify the class containing the method. + +@end table + @node Typed Variables, Abstract Objects, Typed Functions, Def Cmds in Detail @subsection Variables in Typed Languages @@ -10684,8 +10928,8 @@ @code{@@defop} creates an entry, such as `@code{expose} on @code{windows}', in the index of functions.@refill +@item @@defmethod @var{class} @var{name} @var{arguments}@dots{} @findex defmethod -@item @@defmethod @var{class} @var{name} @var{arguments}@dots{} The @code{@@defmethod} command is the definition command for methods in object-oriented programming. A method is a kind of function that implements an operation for a particular class of objects and its @@ -10725,9 +10969,18 @@ @code{@@defmethod} creates an entry, such as `@code{bar-method} on @code{bar-class}', in the index of functions.@refill -@end table - -@node Data Types, , Abstract Objects, Def Cmds in Detail + +@item @@deftypemethod @var{class} @var{data-type} @var{name} @var{arguments}@dots{} +@findex defmethod +The @code{@@deftypemethod} command is the definition command for methods +in object-oriented typed languages, such as C++ and Java. It is similar +to the @code{@@defmethod} command with the addition of the +@var{data-type} parameter to specify the return type of the method. + +@end table + + +@node Data Types, , Abstract Objects, Def Cmds in Detail @subsection Data Types Here is the command for data types:@refill @@ -10784,7 +11037,7 @@ contains the name of a type, such as @var{integer}, take care that the argument actually is of that type.@refill -@node Sample Function Definition, , Def Cmd Conventions, Definition Commands +@node Sample Function Definition, , Def Cmd Conventions, Definition Commands @section A Sample Function Definition @cindex Function definitions @cindex Command definitions @@ -10796,9 +11049,8 @@ @code{@@defun} command and it is followed, on the same line, by the parameter list.@refill -Here is a definition from @cite{The GNU Emacs Lisp Reference Manual}. -(@xref{Calling Functions, , Calling Functions, elisp, The GNU Emacs -Lisp Reference Manual}.) +Here is a definition from @ref{Calling Functions,,, elisp, The GNU Emacs +Lisp Reference Manual}. @quotation @defun apply function &rest arguments @@ -10885,8 +11137,8 @@ Ordinary variables and user options are described using a format like that for functions except that variables do not take arguments. + @node Footnotes, Conditionals, Definition Commands, Top -@comment node-name, next, previous, up @chapter Footnotes @cindex Footnotes @findex footnote @@ -10908,28 +11160,31 @@ In Texinfo, footnotes are created with the @code{@@footnote} command. This command is followed immediately by a left brace, then by the text -of the footnote, and then by a terminating right brace. The template -is: - -@example -@@footnote@{@var{text}@} -@end example - -Footnotes may be of any length, but are usually short.@refill +of the footnote, and then by a terminating right brace. Footnotes may +be of any length (they will be broken across pages if necessary), but +are usually short. The template is: + +@example +ordinary text@@footnote@{@var{text of footnote}@} +@end example + +As shown here, the @code{@@footnote} command should come right after the +text being footnoted, with no intervening space; otherwise, the +formatters the footnote mark might end up starting up a line. For example, this clause is followed by a sample footnote@footnote{Here is the sample footnote.}; in the Texinfo source, it looks like this:@refill @example -@dots{}a sample footnote @@footnote@{Here is the sample +@dots{}a sample footnote@@footnote@{Here is the sample footnote.@}; in the Texinfo source@dots{} @end example @strong{Warning:} Don't use footnotes in the argument of the -@code{@@item} command for a @code{@@table} table. This doesn't work; -because of limitations of @TeX{}, there is no way to fix it. To avoid -the problem, move the footnote into the body text of the table. +@code{@@item} command for a @code{@@table} table. This doesn't work, and +because of limitations of @TeX{}, there is no way to fix it. You must +put the footnote into the body text of the table. In a printed manual or book, the reference mark for a footnote is a small, superscripted number; the text of the footnote appears at the @@ -10938,7 +11193,8 @@ In Info, the reference mark for a footnote is a pair of parentheses with the footnote number between them, like this: @samp{(1)}.@refill -@node Footnote Styles, , Footnote Commands, Footnotes + +@node Footnote Styles, , Footnote Commands, Footnotes @section Footnote Styles Info has two footnote styles, which determine where the text of the @@ -11064,6 +11320,7 @@ @end ignore This chapter contains two footnotes.@refill + @node Conditionals, Macros, Footnotes, Top @comment node-name, next, previous, up @chapter Conditionally Visible Text @@ -11071,9 +11328,6 @@ @cindex Text, conditionally visible @cindex Visibility of conditional text @cindex If text conditionally visible -@findex ifhtml -@findex ifinfo -@findex iftex Sometimes it is good to use different text for a printed manual and its corresponding Info file. In this case, you can use the @@ -11081,18 +11335,20 @@ and which is for the Info file.@refill @menu -* Conditional Commands:: How to specify text for HTML, Info, or @TeX{}. -* Using Ordinary TeX Commands:: You can use any and all @TeX{} commands. -* set clear value:: How to designate which text to format (for - both Info and @TeX{}); and how to set a +* Conditional Commands:: Specifying text for HTML, Info, or @TeX{}. +* Conditional Not Commands:: Specifying text for not HTML, Info, or @TeX{}. +* Raw Formatter Commands:: Using raw @TeX{} or HTML commands. +* set clear value:: Designating which text to format (for + all output formats); and how to set a flag to a string that you can insert. @end menu -@node Conditional Commands, Using Ordinary TeX Commands, Conditionals, Conditionals +@node Conditional Commands, Conditional Not Commands, Conditionals, Conditionals @ifinfo -@heading Using @code{@@ifinfo} and @code{@@iftex} +@heading Conditional Commands @end ifinfo +@findex ifinfo @code{@@ifinfo} begins segments of text that should be ignored by @TeX{} when it typesets the printed manual. The segment of text appears only @@ -11103,20 +11359,20 @@ contained within a region marked by @code{@@ifinfo} and @code{@@end ifinfo}. (@xref{Info Summary and Permissions}.)@refill +@findex iftex +@findex ifhtml The @code{@@iftex} and @code{@@end iftex} commands are similar to the @code{@@ifinfo} and @code{@@end ifinfo} commands, except that they specify text that will appear in the printed manual but not in the Info file. Likewise for @code{@@ifhtml} and @code{@@end ifhtml}, which specify text to appear only in HTML output.@refill -@need 700 For example, @example @@iftex This text will appear only in the printed manual. @@end iftex - @@ifinfo However, this text will appear only in Info. @@end ifinfo @@ -11124,11 +11380,9 @@ @noindent The preceding example produces the following line: - @iftex This text will appear only in the printed manual. @end iftex - @ifinfo However, this text will appear only in Info. @end ifinfo @@ -11140,40 +11394,69 @@ The @code{@@titlepage} command is a special variant of @code{@@iftex} that is used for making the title and copyright pages of the printed -manual. (@xref{titlepage, , @code{@@titlepage}}.) @refill - -@node Using Ordinary TeX Commands, set clear value, Conditional Commands, Conditionals -@comment node-name, next, previous, up -@section Using Ordinary @TeX{} Commands +manual. (@xref{titlepage, , @code{@@titlepage}}.) @refill + + +@node Conditional Not Commands, Raw Formatter Commands, Conditional Commands, Conditionals +@section Conditional Not Commands +@findex ifnothtml +@findex ifnotinfo +@findex ifnottex + +You can specify text to be included in any output format @emph{other} +than some given one with the @code{@@ifnot@dots{}} commands: +@example +@@ifnothtml @dots{} @@end ifnothtml +@@ifnotinfo @dots{} @@end ifnotinfo +@@ifnottex @dots{} @@end ifnottex +@end example +@noindent +(The @code{@@ifnot@dots{}} command and the @code{@@end} command must +actually appear on lines by themselves.) + +If the output file is not being made for the given format, the region is +included. Otherwise, it is ignored. + +The regions delimited by these commands are ordinary Texinfo source as +with @code{@@iftex}, not raw formatter source as with @code{@@tex}. + + +@node Raw Formatter Commands, set clear value, Conditional Not Commands, Conditionals +@section Raw Formatter Commands @cindex @TeX{} commands, using ordinary +@cindex HTML commands, using ordinary +@cindex Raw formatter commands @cindex Ordinary @TeX{} commands, using -@cindex Commands using ordinary @TeX{} +@cindex Ordinary HTML commands, using +@cindex Commands using raw @TeX{} +@cindex Commands using raw HTML @cindex plain @TeX{} -Inside a region delineated by @code{@@iftex} and @code{@@end iftex}, -you can embed some plain @TeX{} commands. Info will ignore these -commands since they are only in that part of the file which is seen by -@TeX{}. You can write the @TeX{} commands as you would write them in -a normal @TeX{} file, except that you must replace the @samp{\} used -by @TeX{} with an @samp{@@}. For example, in the @code{@@titlepage} -section of a Texinfo file, you can use the @TeX{} command -@code{@@vskip} to format the copyright page. (The @code{@@titlepage} -command causes Info to ignore the region automatically, as it does -with the @code{@@iftex} command.)@refill +Inside a region delineated by @code{@@iftex} and @code{@@end iftex}, you +can embed some raw @TeX{} commands. Info will ignore these commands +since they are only in that part of the file which is seen by @TeX{}. +You can write the @TeX{} commands as you would write them in a normal +@TeX{} file, except that you must replace the @samp{\} used by @TeX{} +with an @samp{@@}. For example, in the @code{@@titlepage} section of a +Texinfo file, you can use the @TeX{} command @code{@@vskip} to format +the copyright page. (The @code{@@titlepage} command causes Info to +ignore the region automatically, as it does with the @code{@@iftex} +command.) However, many features of plain @TeX{} will not work, as they are -overridden by features of Texinfo. +overridden by Texinfo features. @findex tex You can enter plain @TeX{} completely, and use @samp{\} in the @TeX{} commands, by delineating a region with the @code{@@tex} and @code{@@end tex} commands. (The @code{@@tex} command also causes Info to ignore the -region, like the @code{@@iftex} -command.)@refill +region, like the @code{@@iftex} command.) The sole exception is that +@code{@@} chracter still introduces a command, so that @code{@@end tex} +can be recognized properly. @cindex Mathematical expressions For example, here is a mathematical expression written in -plain @TeX{}:@refill +plain @TeX{}: @example @@tex @@ -11185,8 +11468,8 @@ @noindent The output of this example will appear only in a printed manual. If -you are reading this in Info, you will not see anything after this -paragraph. +you are reading this in Info, you will not see the equation that appears +in the printed manual. @iftex In a printed manual, the above expression looks like this: @@ -11198,7 +11481,16 @@ \over \sigma_i\right)^2 $$ @end tex -@node set clear value, , Using Ordinary TeX Commands, Conditionals +@findex ifhtml +@findex html +Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to delimit +a region to be included in HTML output only, and @code{@@html @dots{} +@@end ifhtml} for a region of raw HTML (again, except that @code{@@} is +still the escape character, so the @code{@@end} command can be +recognized.) + + +@node set clear value, , Raw Formatter Commands, Conditionals @comment node-name, next, previous, up @section @code{@@set}, @code{@@clear}, and @code{@@value} @@ -11218,6 +11510,7 @@ * value Example:: An easy way to update edition information. @end menu + @node ifset ifclear, value, set clear value, set clear value @subsection @code{@@ifset} and @code{@@ifclear} @@ -11414,7 +11707,7 @@ @end group @end example -@node value Example, , value, set clear value +@node value Example, , value, set clear value @subsection @code{@@value} Example You can use the @code{@@value} command to limit the number of places you @@ -11560,7 +11853,7 @@ @end example -@node Invoking Macros, , Defining Macros, Macros +@node Invoking Macros, , Defining Macros, Macros @section Invoking Macros @cindex Invoking macros @cindex Macro invocation @@ -11668,8 +11961,8 @@ The typesetting program called @TeX{} is used for formatting a Texinfo file. @TeX{} is a very powerful typesetting program and, if used right, -does an exceptionally good job. @xref{Obtaining TeX, , How to Obtain -@TeX{}}, for information on how to obtain @TeX{}.@refill +does an exceptionally good job. (@xref{Obtaining TeX, , How to Obtain +@TeX{}}, for information on how to obtain @TeX{}.) The @code{makeinfo}, @code{texinfo-format-region}, and @code{texinfo-format-buffer} commands read the very same @@-commands @@ -11684,45 +11977,43 @@ @cindex DVI file Format the Texinfo file with the shell command @code{tex} followed by -the name of the Texinfo file. This command produces a formatted -@sc{dvi} file as well as several auxiliary files containing indices, -cross references, etc. The @sc{dvi} file (for @dfn{DeVice Independent} -file) can be printed on a wide variety of printers.@refill - -The @code{tex} formatting command itself does not sort the indices; it -writes an output file of unsorted index data. This is a misfeature of -@TeX{}. (The @code{texi2dvi} command automatically generates indices; -see @ref{Format with texi2dvi, , Format using @code{texi2dvi}}.) To -generate a printed index after running the @code{tex} command, you first -need a sorted index to work from. The @code{texindex} command sorts -indices. (The source file @file{texindex.c} comes as part of the -standard GNU distribution and is usually installed when Emacs is -installed.)@refill +the name of the Texinfo file. For example: + +@example +tex foo.texi +@end example + +@noindent @TeX{} will produce a @dfn{DVI file} as well as several auxiliary +files containing information for indices, cross references, etc. The +DVI file (for @dfn{DeVice Independent} file) can be printed on virtually +any printe (see the following sections). + @pindex texindex -@ignore -Usage: texindex [-k] [-T tempdir] infile [-o outfile] ... - -Each infile arg can optionally be followed by a `-o outfile' arg; -for each infile that is not followed by a -o arg, the infile name with -`s' (for `sorted') appended is used for the outfile. - --T dir is the directory to put temp files in, instead of /tmp. --k means `keep tempfiles', for debugging. -@end ignore - +The @code{tex} formatting command itself does not sort the indices; it +writes an output file of unsorted index data. (The @code{texi2dvi} +command automatically generates indices; see @ref{Format with texi2dvi,, +Format using @code{texi2dvi}}.) To generate a printed index after +running the @code{tex} command, you first need a sorted index to work +from. The @code{texindex} command sorts indices. (The source file +@file{texindex.c} comes as part of the standard Texinfo distribution, +among other places.)@refill + +@cindex Names of index files The @code{tex} formatting command outputs unsorted index files under -names that obey a standard convention. These names are the name of -your main input file to the @code{tex} formatting command, with -everything after the first period thrown away, and the two letter -names of indices added at the end. For example, the raw index output -files for the input file @file{foo.texinfo} would be @file{foo.cp}, -@file{foo.vr}, @file{foo.fn}, @file{foo.tp}, @file{foo.pg} and -@file{foo.ky}. Those are exactly the arguments to give to -@code{texindex}.@refill +names that obey a standard convention: the name of your main input file +with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c, +Web2c}) extension removed, followed by the two letter names of indices. +For example, the raw index output files for the input file +@file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn}, +@file{foo.tp}, @file{foo.pg} and @file{foo.ky}. Those are exactly the +arguments to give to @code{texindex}.@refill @need 1000 -Or else, you can use @samp{??} as ``wild-cards'' and give the command in -this form:@refill +@cindex Wildcards +@cindex Globbing +Instead of specifying all the unsorted index file names explicitly, you +can use @samp{??} as shell wildcards and give the command in this +form:@refill @example texindex foo.?? @@ -11738,43 +12029,47 @@ For each file specified, @code{texindex} generates a sorted index file whose name is made by appending @samp{s} to the input file name. The -@code{@@printindex} command knows to look for a file of that name. -@code{texindex} does not alter the raw index output file.@refill +@code{@@printindex} command knows to look for a file of that name +(@pxref{Printing Indices & Menus}). @code{texindex} does not alter the +raw index output file.@refill After you have sorted the indices, you need to rerun the @code{tex} -formatting command on the Texinfo file. This regenerates a formatted -@sc{dvi} file with up-to-date index entries.@footnote{If you use more -than one index and have cross references to an index other than the -first, you must run @code{tex} @emph{three times} to get correct output: -once to generate raw index data; again (after @code{texindex}) to output -the text of the indices and determine their true page numbers; and a -third time to output correct page numbers in cross references to them. -However, cross references to indices are rare.}@refill - -To summarize, this is a three step process: +formatting command on the Texinfo file. This regenerates the DVI file, +this time with up-to-date index entries. + +Finally, you may need to run @code{tex} one more time, to get the page +numbers in the cross-references correct. + +To summarize, this is a four step process: @enumerate @item -Run the @code{tex} formatting command on the Texinfo file. This -generates the formatted @sc{dvi} file as well as the raw index files -with two letter extensions.@refill - -@item -Run the shell command @code{texindex} on the raw index files to sort -them. This creates the corresponding sorted index files.@refill - -@item -Rerun the @code{tex} formatting command on the Texinfo file. This -regenerates a formatted @sc{dvi} file with the index entries in the -correct order. This second run also corrects the page numbers for -the cross references. (The tables of contents are always correct.)@refill +Run @code{tex} on your Texinfo file. This generates a DVI file (with +undefined cross-references and no indices), and the raw index files +(with two letter extensions). + +@item +Run @code{texindex} on the raw index files. This creates the +corresponding sorted index files (with three letter extensions). + +@item +Run @code{tex} again on your Texinfo file. This regenerates the DVI +file, this time with indices and defined cross-references, but with page +numbers for the cross-references from last time, generally incorrect. + +@item +Run @code{tex} one last time. This time the correct page numbers are +written for the cross-references. @end enumerate -You need not run @code{texindex} each time after you run the -@code{tex} formatting. If you do not, on the next run, the @code{tex} -formatting command will use whatever sorted index files happen to -exist from the previous use of @code{texindex}. This is usually -@sc{ok} while you are debugging.@refill +@pindex texi2dvi +Alternatively, it's a one-step process: run @code{texi2dvi}. + +You need not run @code{texindex} each time after you run @code{tex}. If +you do not, on the next run, the @code{tex} formatting command will use +whatever sorted index files happen to exist from the previous use of +@code{texindex}. This is usually ok while you are +debugging.@refill @node Format with texi2dvi, Print with lpr, Format with tex/texindex, Format/Print Hardcopy @comment node-name, next, previous, up @@ -11783,8 +12078,8 @@ The @code{texi2dvi} command is a shell script that automatically runs both @code{tex} and @code{texindex} as many times as necessary to -produce a @sc{dvi} file with up-to-date, sorted indices. It simplifies -the @code{tex}---@code{texindex}---@code{tex} sequence described in the +produce a DVI file with up-to-date, sorted indices. It simplifies the +@code{tex}---@code{texindex}---@code{tex} sequence described in the previous section. @need 1000 @@ -11798,24 +12093,22 @@ @node Print with lpr, Within Emacs, Format with texi2dvi, Format/Print Hardcopy @comment node-name, next, previous, up @section Shell Print Using @code{lpr -d} -@pindex lpr @r{(@sc{dvi} print command)} - -You can print a @sc{dvi} file with the @sc{dvi} print command. The -precise printing command to use depends on your system; @samp{lpr -d} is -common. The @sc{dvi} print command may require a file name without any -extension or with a @samp{.dvi} extension.@refill - -@need 1200 -The following commands, for example, sort the indices, format, and -print the @cite{Bison Manual} (where @samp{%} is the shell -prompt):@refill - -@example -@group -% tex bison.texinfo -% texindex bison.?? -% tex bison.texinfo -% lpr -d bison.dvi +@pindex lpr @r{(DVI print command)} + +The precise command to print a DVI file depends on your system +installation, but @samp{lpr -d} is common. The command may require the +DVI file name without any extension or with a @samp{.dvi} +extension. (If it is @samp{lpr}, you must include the @samp{.dvi}.) + +The following commands, for example, will (probably) suffice to sort the +indices, format, and print the @cite{Bison Manual}: + +@example +@group +tex bison.texinfo +texindex bison.?? +tex bison.texinfo +lpr -d bison.dvi @end group @end example @@ -11828,14 +12121,14 @@ @example @group -% texi2dvi bison.texinfo -% lpr -d bison.dvi +texi2dvi bison.texinfo +lpr -d bison.dvi @end group @end example @node Within Emacs, Texinfo Mode Printing, Print with lpr, Format/Print Hardcopy @comment node-name, next, previous, up -@section From an Emacs Shell @dots{} +@section From an Emacs Shell @cindex Print, format from Emacs shell @cindex Format, print from Emacs shell @cindex Shell, format, print from @@ -11853,13 +12146,12 @@ You can also use @code{texi2dvi} from an Emacs shell. For example, here is how to use @code{texi2dvi} to format and print @cite{Using and -Porting GNU CC} from a shell within Emacs (where @samp{%} is the shell -prompt):@refill - -@example -@group -% texi2dvi gcc.texinfo -% lpr -d gcc.dvi +Porting GNU CC} from a shell within Emacs: + +@example +@group +texi2dvi gcc.texinfo +lpr -d gcc.dvi @end group @end example @ifinfo @@ -11896,7 +12188,7 @@ @item C-c C-t C-p @itemx M-x texinfo-tex-print -Print a @sc{dvi} file that was made with @code{texinfo-tex-region} or +Print a DVI file that was made with @code{texinfo-tex-region} or @code{texinfo-tex-buffer}.@refill @item C-c C-t C-q @@ -11934,7 +12226,7 @@ @example @group C-c C-t C-b @r{Run @code{texi2dvi} on the buffer.} -C-c C-t C-p @r{Print the @sc{dvi} file.} +C-c C-t C-p @r{Print the DVI file.} C-c C-t C-q @r{Display the printer queue.} @end group @end example @@ -11993,9 +12285,9 @@ @example @group -@@c Local Variables: -@@c compile-command: "texi2dvi gdb.texinfo" -@@c End: +Local Variables: +compile-command: "texi2dvi gdb.texinfo" +End: @end group @end example @@ -12003,48 +12295,45 @@ This technique is most often used by programmers who also compile programs this way; see @ref{Compilation, , , emacs, The GNU Emacs Manual}.@refill + @node Requirements Summary, Preparing for TeX, Compile-Command, Format/Print Hardcopy @comment node-name, next, previous, up @section @TeX{} Formatting Requirements Summary @cindex Requirements for formatting +@cindex Minimal requirements for formatting @cindex Formatting requirements Every Texinfo file that is to be input to @TeX{} must begin with a -@code{\input} command and must contain an @code{@@setfilename} command and -an @code{@@settitle} command:@refill +@code{\input} command and must contain an @code{@@setfilename} command: @example \input texinfo @@setfilename @var{arg-not-used-by-@TeX{}} -@@settitle @var{name-of-manual} @end example @noindent The first command instructs @TeX{} to load the macros it needs to -process a Texinfo file, the second command opens auxiliary files, and -the third specifies the title of printed manual. - -@need 1000 -Every Texinfo file must end with a line that terminates @TeX{} -processing and forces out unfinished pages:@refill +process a Texinfo file and the second command opens auxiliary files. + +Every Texinfo file must end with a line that terminates @TeX{}'s +processing and forces out unfinished pages: @example @@bye @end example -Strictly speaking, these four lines are all a Texinfo file needs for -@TeX{}, besides the body. (The @code{@@setfilename} line is the only -line that a Texinfo file needs for Info formatting.)@refill - -Usually, the file's first line contains an @samp{@@c -*-texinfo-*-} -comment that causes Emacs to switch to Texinfo mode when you edit the -file. In addition, the beginning usually includes an -@code{@@setchapternewpage} command, a title page, a copyright page, and -permissions. Besides an @code{@@bye}, the end of a file usually -includes indices and a table of contents.@refill +Strictly speaking, these lines are all a Texinfo file needs to be +processed successfully by @TeX{}. + +Usually, however, the beginning includes an @code{@@settitle} command to +define the title of the printed manual, an @code{@@setchapternewpage} +command, a title page, a copyright page, and permissions. Besides an +@code{@@bye}, the end of a file usually includes indices and a table of +contents. (And of course most manuals contain a body of text as well.) @iftex For more information, see +@ref{settitle, , @code{@@settitle}}, @ref{setchapternewpage, , @code{@@setchapternewpage}}, @ref{Headings, ,Page Headings}, @ref{Titlepage & Copyright Page}, @@ -12054,6 +12343,7 @@ @noindent @ifinfo For more information, see@* +@ref{settitle, , @code{@@settitle}},@* @ref{setchapternewpage, , @code{@@setchapternewpage}},@* @ref{Headings, ,Page Headings},@* @ref{Titlepage & Copyright Page},@* @@ -12061,6 +12351,7 @@ @ref{Contents}. @end ifinfo + @node Preparing for TeX, Overfull hboxes, Requirements Summary, Format/Print Hardcopy @comment node-name, next, previous, up @section Preparing to Use @TeX{} @@ -12072,41 +12363,60 @@ @cindex @b{.cshrc} initialization file @cindex Initialization file for @TeX{} input -@TeX{} needs to know where to find the @file{texinfo.tex} file -that you have told it to input with the @samp{\input texinfo} command -at the beginning of the first line. The @file{texinfo.tex} file tells -@TeX{} how to handle @@-commands. (@file{texinfo.tex} is -included in the standard GNU distributions.)@refill - -Usually, the @file{texinfo.tex} file is put in the default directory -that contains @TeX{} macros (the @file{/usr/lib/tex/macros} -directory) when GNU Emacs or other GNU software is installed. -In this case, @TeX{} will +@TeX{} needs to know where to find the @file{texinfo.tex} file that you +have told it to input with the @samp{\input texinfo} command at the +beginning of the first line. The @file{texinfo.tex} file tells @TeX{} +how to handle @@-commands; it is included in all standard GNU +distributions. + +@pindex texinfo.tex@r{, installing} +Usually, the @file{texinfo.tex} file is put under the default directory +that contains @TeX{} macros +(@file{/usr/local/share/texmf/tex/texinfo/texinfo.tex} by default) when +GNU Emacs or other GNU software is installed. In this case, @TeX{} will find the file and you do not need to do anything special. -Alternatively, you can put @file{texinfo.tex} in the directory in -which the Texinfo source file is located, and @TeX{} will find it -there.@refill - -However, you may want to specify the location of the @code{\input} file -yourself. One way to do this is to write the complete path for the file -after the @code{\input} command. Another way is to set the -@code{TEXINPUTS} environment variable in your @file{.cshrc} or -@file{.profile} file. The @code{TEXINPUTS} environment variable will tell -@TeX{} where to find the @file{texinfo.tex} file and any other file that -you might want @TeX{} to use.@refill - -Whether you use a @file{.cshrc} or @file{.profile} file depends on -whether you use @code{csh}, @code{sh}, or @code{bash} for your shell -command interpreter. When you use @code{csh}, it looks to the -@file{.cshrc} file for initialization information, and when you use -@code{sh} or @code{bash}, it looks to the @file{.profile} file.@refill - -@need 1000 +Alternatively, you can put @file{texinfo.tex} in the current directory +when you run @TeX{}, and @TeX{} will find it there. + +@pindex epsf.tex@r{, installing} +Also, you should install @file{epsf.tex} in the same place as +@file{texinfo.tex}, if it is not already installed from another +distribution. This file is needed to support the @code{@@image} command +(@pxref{Images}). + +@pindex texinfo.cnf @r{installation} +@cindex Customizing of @TeX{} for Texinfo +@cindex Site-wide Texinfo configuration file +Optionally, you may create an additional @file{texinfo.cnf}, and install +it as well. This file is read by @TeX{} at the @code{@@setfilename} +command (@pxref{setfilename,, @code{@@setfilename}}). You can put any +commands you like there according to local site-wide conventions, and +they will be read by @TeX{} when processing any Texinfo document. For +example, if @file{texinfo.cnf} contains the a single line +@samp{@@afourpaper} (@pxref{A4 Paper}), then all Texinfo documents will +be processed with that page size in effect. If you have nothing to put +in @file{texinfo.cnf}, you do not need to create it. + +@vindex TEXINPUTS +If neither of the above locations for these system files suffice for +you, you can specify the directories explicitly. For +@file{texinfo.tex}, you can do this by writing the complete path for the +file after the @code{\input} command. Another way, that works for both +@file{texinfo.tex} and @file{texinfo.cnf} (and any other file @TeX{} +might read), is to set the @code{TEXINPUTS} environment variable in your +@file{.cshrc} or @file{.profile} file. + +Which you use of @file{.cshrc} or @file{.profile} depends on +whether you use a Bourne shell-compatible (@code{sh}, @code{bash}, +@code{ksh}, @dots{}) or C shell-compatible (@code{csh}, @code{tcsh}) +command interpreter. The latter read the @file{.cshrc} file for +initialization information, and the former read @file{.profile}. + In a @file{.cshrc} file, you could use the following @code{csh} command -sequence:@refill - -@example -setenv TEXINPUTS .:/usr/me/mylib:/usr/lib/tex/macros +sequence: + +@example +setenv TEXINPUTS .:/home/me/mylib:/usr/lib/tex/macros @end example @need 1000 @@ -12115,7 +12425,7 @@ @example @group -TEXINPUTS=.:/usr/me/mylib:/usr/lib/tex/macros +TEXINPUTS=.:/home/me/mylib:/usr/lib/tex/macros export TEXINPUTS @end group @end example @@ -12123,7 +12433,8 @@ @noindent This would cause @TeX{} to look for @file{\input} file first in the current directory, indicated by the @samp{.}, then in a hypothetical user's -@file{me/mylib} directory, and finally in the system library.@refill +@file{me/mylib} directory, and finally in a system directory. + @node Overfull hboxes, smallbook, Preparing for TeX, Format/Print Hardcopy @comment node-name, next, previous, up @@ -12210,6 +12521,13 @@ @code{@@smalllisp}}, for information about commands that make it easier to produce examples for a smaller manual.@refill +Alternatively, to avoid embedding this physical paper size in your +document, use @code{texi2dvi} to format your document (@pxref{Format +with texi2dvi}), and supply @samp{-t @@smallbook} as an argument. Then +other people do not have to change the document source file to format it +differently. + + @node A4 Paper, Cropmarks and Magnification, smallbook, Format/Print Hardcopy @comment node-name, next, previous, up @section Printing on A4 Paper @@ -12239,7 +12557,20 @@ @end group @end example -@node Cropmarks and Magnification, , A4 Paper, Format/Print Hardcopy +Alternatively, to avoid embedding this physical paper size in your +document, use @code{texi2dvi} to format your document (@pxref{Format +with texi2dvi}), and supply @samp{-t @@afourpaper} as an argument. Then +other people do not have to change the document source file to format it +differently. + +@pindex texinfo.cnf +Another alternative: put the @code{@@afourpaper} command in the file +@file{texinfo.cnf} that @TeX{} will read. (No need for @code{@@iftex} +there.) This will automatically typeset all the Texinfo documents at +your site with that paper size in effect. + + +@node Cropmarks and Magnification, , A4 Paper, Format/Print Hardcopy @comment node-name, next, previous, up @section Cropmarks and Magnification @@ -12278,8 +12609,7 @@ ``magnification''.) This is @emph{not} a Texinfo @@-command, but is a plain @TeX{} command that is prefixed with a backslash. You have to write this command between @code{@@tex} and @code{@@end tex} -(@pxref{Using Ordinary TeX Commands, , Using Ordinary @TeX{} -Commands}).@refill +(@pxref{Raw Formatter Commands}). Follow the @code{\mag} command with an @samp{=} and then a number that is 1000 times the magnification you desire. For example, to print pages @@ -12311,8 +12641,8 @@ file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are GNU Emacs functions that do the same.@refill -A Texinfo file must possess an @code{@@setfilename} line near its -beginning, otherwise the Info formatting commands will fail.@refill +A Texinfo file must contain an @code{@@setfilename} line near its +beginning, otherwise the Info formatting commands will fail. For information on installing the Info file in the Info system, see @ref{Install an Info File}.@refill @@ -12356,15 +12686,14 @@ To create an Info file from a Texinfo file, type @code{makeinfo} followed by the name of the Texinfo file. Thus, to create the Info -file for Bison, type the following at the shell prompt (where @samp{%} +file for Bison, type the following to the shell: is the prompt):@refill @example -% makeinfo bison.texinfo -@end example - -(You can run a shell inside Emacs by typing @kbd{M-x -shell}.)@refill +makeinfo bison.texinfo +@end example + +(You can run a shell inside Emacs by typing @kbd{M-x shell}.)@refill @ifinfo Sometimes you will want to specify options. For example, if you wish @@ -12372,12 +12701,13 @@ type:@refill @example -% makeinfo --version +makeinfo --version @end example @xref{makeinfo options}, for more information. @end ifinfo + @node makeinfo options, Pointer Validation, Invoking makeinfo, Create an Info File @comment node-name, next, previous, up @section Options for @code{makeinfo} @@ -12387,166 +12717,169 @@ The @code{makeinfo} command takes a number of options. Most often, options are used to set the value of the fill column and specify the footnote style. Each command line option is a word preceded by -@samp{--}@footnote{@samp{--} has replaced @samp{+}, the old introductory -character, to maintain POSIX.2 compatibility without losing long-named -options.} or a letter preceded by @samp{-}. You can use abbreviations -for the option names as long as they are unique.@refill - -For example, you could use the following command to create an Info +@samp{--} or a letter preceded by @samp{-}. You can use abbreviations +for the long option names as long as they are unique.@refill + +For example, you could use the following shell command to create an Info file for @file{bison.texinfo} in which each line is filled to only 68 -columns (where @samp{%} is the prompt):@refill - -@example -% makeinfo --fill-column=68 bison.texinfo +columns:@refill + +@example +makeinfo --fill-column=68 bison.texinfo @end example You can write two or more options in sequence, like this:@refill @example -% makeinfo --no-split --fill-column=70 @dots{} +makeinfo --no-split --fill-column=70 @dots{} @end example @noindent This would keep the Info file together as one possibly very long file and would also set the fill column to 70.@refill -@iftex -If you wish to discover which version of @code{makeinfo} -you are using, type:@refill - -@example -% makeinfo --version -@end example -@end iftex - -The options are:@refill - -@need 100 +The options are: + @table @code + @item -D @var{var} -Cause @var{var} to be defined. This is equivalent to -@code{@@set @var{var}} in the Texinfo file. +@opindex -D @var{var} +Cause the variable @var{var} to be defined. This is equivalent to +@code{@@set @var{var}} in the Texinfo file (@pxref{set clear value}). + +@item --error-limit=@var{limit} +@opindex --error-limit=@var{limit} +Set the maximum number of errors that @code{makeinfo} will report +before exiting (on the assumption that continuing would be useless); +default 100. @need 150 -@item --error-limit @var{limit} -Set the maximum number of errors that @code{makeinfo} will report -before exiting (on the assumption that continuing would be useless). -The default number of errors that can be reported before -@code{makeinfo} gives up is 100.@refill - -@need 150 -@item --fill-column @var{width} +@item --fill-column=@var{width} +@opindex --fill-column=@var{width} Specify the maximum number of columns in a line; this is the right-hand edge of a line. Paragraphs that are filled will be filled to this width. (Filling is the process of breaking up and connecting lines so that lines are the same length as or shorter than the number specified as the fill column. Lines are broken between words.) The default value -for @code{fill-column} is 72. -@refill - -@item --footnote-style @var{style} +is 72. + +@item --footnote-style=@var{style} +@opindex --footnote-style=@var{style} Set the footnote style to @var{style}, either @samp{end} for the end -node style or @samp{separate} for the separate node style. The value -set by this option overrides the value set in a Texinfo file by an -@code{@@footnotestyle} command. When the footnote style is -@samp{separate}, @code{makeinfo} makes a new node containing the -footnotes found in the current node. When the footnote style is -@samp{end}, @code{makeinfo} places the footnote references at the end -of the current node.@refill - -@need 150 +node style (the default) or @samp{separate} for the separate node style. +The value set by this option overrides the value set in a Texinfo file +by an @code{@@footnotestyle} command (@pxref{Footnotes}). When the +footnote style is @samp{separate}, @code{makeinfo} makes a new node +containing the footnotes found in the current node. When the footnote +style is @samp{end}, @code{makeinfo} places the footnote references at +the end of the current node. + +@item --force +@opindex --force +Ordinarily, if the input file has errors, the output files are not +created. With this option, they are preserved. + +@item --help +@opindex --help +Print a usage message listing all available options, then exit successfully. + @item -I @var{dir} +@opindex -I @var{dir} Add @code{dir} to the directory search list for finding files that are included using the @code{@@include} command. By default, @code{makeinfo} searches only the current directory. -@need 150 @item --no-headers +@opindex --no-headers Do not include menus or node lines in the output. This results in an @sc{ascii} file that you cannot read in Info since it does not contain -the requisite nodes or menus; but you can print such a file in a -single, typewriter-like font and produce acceptable output. - -@need 150 +the requisite nodes or menus. It is primarily useful to extract certain +pieces of a manual into separate files to be included in a distribution, +such as @file{INSTALL} files. + @item --no-split -Suppress the splitting stage of @code{makeinfo}. Normally, large +@opindex --no-split +Suppress the splitting stage of @code{makeinfo}. By default, large output files (where the size is greater than 70k bytes) are split into -smaller subfiles, each one approximately 50k bytes. If you specify -@samp{--no-split}, @code{makeinfo} will not split up the output -file.@refill - -@need 100 +smaller subfiles, each one approximately 50k bytes. + @item --no-pointer-validate -@item --no-validate +@itemx --no-validate +@opindex --no-pointer-validate +@opindex --no-validate Suppress the pointer-validation phase of @code{makeinfo}. Normally, after a Texinfo file is processed, some consistency checks are made to ensure that cross references can be resolved, etc. @xref{Pointer Validation}.@refill -@need 150 @item --no-warn -Suppress the output of warning messages. This does @emph{not} -suppress the output of error messages, only warnings. You might +@opindex --no-warn +Suppress warning messages (but @emph{not} error messages). You might want this if the file you are creating has examples of Texinfo cross references within it, and the nodes that are referenced do not actually -exist.@refill +exist. @item --no-number-footnotes +@opindex --no-number-footnotes Suppress automatic footnote numbering. By default, @code{makeinfo} numbers each footnote sequentially in a single node, resetting the current footnote number to 1 at the start of each node. -@need 150 -@item --output @var{file} +@item --output=@var{file} @itemx -o @var{file} +@opindex --output=@var{file} +@opindex -o @var{file} Specify that the output should be directed to @var{file} and not to the -file name specified in the @code{@@setfilename} command found in the Texinfo -source. @var{file} can be the special token @samp{-}, which specifies -standard output. - -@need 150 -@item --paragraph-indent @var{indent} +file name specified in the @code{@@setfilename} command found in the +Texinfo source (@pxref{setfilename}). If @var{file} is @samp{-}, output +goes to standard output and @samp{--no-split} is implied. + +@item -P @var{dir} +@opindex -P @var{dir} +Prepend @code{dir} to the directory search list for @code{@@include}. +See @samp{-I} for more details. + +@item --paragraph-indent=@var{indent} +@opindex --paragraph-indent=@var{indent} Set the paragraph indentation style to @var{indent}. The value set by this option overrides the value set in a Texinfo file by an -@code{@@paragraphindent} command. The value of @var{indent} is -interpreted as follows:@refill - -@itemize @bullet -@item -If the value of @var{indent} is @samp{asis}, do not change the -existing indentation at the starts of paragraphs.@refill - -@item -If the value of @var{indent} is zero, delete any existing -indentation.@refill - -@item -If the value of @var{indent} is greater than zero, indent each -paragraph by that number of spaces.@refill -@end itemize - -@need 100 -@item --reference-limit @var{limit} +@code{@@paragraphindent} command (@pxref{paragraphindent}). The value +of @var{indent} is interpreted as follows: + +@table @asis +@item @samp{asis} +Preserve any existing indentation at the starts of paragraphs. + +@item @samp{0} or @samp{none} +Delete any existing indentation. + +@item @var{num} +Indent each paragraph by that number of spaces. +@end table + +@item --reference-limit=@var{limit} +@opindex --reference-limit=@var{limit} Set the value of the number of references to a node that @code{makeinfo} will make without reporting a warning. If a node has more than this number of references in it, @code{makeinfo} will make the -references but also report a warning.@refill - -@need 150 +references but also report a warning. The default is 1000. + @item -U @var{var} Cause @var{var} to be undefined. This is equivalent to -@code{@@clear @var{var}} in the Texinfo file. - -@need 100 +@code{@@clear @var{var}} in the Texinfo file (@pxref{set clear value}). + @item --verbose +@opindex --verbose Cause @code{makeinfo} to display messages saying what it is doing. Normally, @code{makeinfo} only outputs messages if there are errors or -warnings.@refill - -@need 100 +warnings. + @item --version -Report the version number of this copy of @code{makeinfo}.@refill -@end table +@opindex --version +Print the version number, then exit successfully. + +@end table + @node Pointer Validation, makeinfo in Emacs, makeinfo options, Create an Info File @section Pointer Validation @@ -12610,7 +12943,7 @@ When you invoke either @code{makeinfo-region} or @code{makeinfo-buffer}, Emacs prompts for a file name, offering the name of the visited file as the default. You can edit the default -file name in the minibuffer if you wish, before typing @key{RET} to +file name in the minibuffer if you wish, before pressing @key{RET} to start the @code{makeinfo} process.@refill The Emacs @code{makeinfo-region} and @code{makeinfo-buffer} commands @@ -12731,11 +13064,11 @@ including a shell inside of Emacs. (@xref{Command Switches, , Command Line Switches and Arguments, emacs, The GNU Emacs Manual}.)@refill -Here is the command to format all the files that end in @file{.texinfo} -in the current directory (where @samp{%} is the shell prompt):@refill - -@example -% emacs -batch -funcall batch-texinfo-format *.texinfo +Here is a shell command to format all the files that end in +@file{.texinfo} in the current directory: + +@example +emacs -batch -funcall batch-texinfo-format *.texinfo @end example @noindent @@ -12752,7 +13085,7 @@ @code{texinfo-format-region} or @code{texinfo-format-buffer}, you cannot use that Emacs for anything else until the command finishes.)@refill -@node Tag and Split Files, , Batch Formatting, Create an Info File +@node Tag and Split Files, , Batch Formatting, Create an Info File @comment node-name, next, previous, up @section Tag Files and Split Files @cindex Making a tag table automatically @@ -12968,24 +13301,22 @@ @item If you are using Emacs, list the name of the file in a second @file{dir} file, in its directory; and then add the name of that directory to the -@code{Info-default-directory-list} variable in your personal or site +@code{Info-directory-list} variable in your personal or site initialization file. -This tells Emacs's Info reader where to look for @file{dir} -files. Emacs merges the files named @file{dir} from each of the listed -directories. (In Emacs Version 18, you can set the -@code{Info-directory} variable to the name of only one -directory.)@refill - -@item -Specify the @file{info} directory name in the @code{INFOPATH} -environment variable in your @file{.profile} or @file{.cshrc} -initialization file. (Only you and others who set this environment -variable will be able to find Info files whose location is specified -this way.)@refill +This tells Emacs where to look for @file{dir} files. Emacs merges the +files named @file{dir} from each of the listed directories. (In Emacs +version 18, you can set the @code{Info-directory} variable to the name +of only one directory.)@refill + +@item +Specify the Info directory name in the @code{INFOPATH} environment +variable in your @file{.profile} or @file{.cshrc} initialization file. +(Only you and others who set this environment variable will be able to +find Info files whose location is specified this way.)@refill @end itemize -For example, to reach a test file in the @file{~bob/manuals} +For example, to reach a test file in the @file{/home/bob/manuals} directory, you could add an entry like this to the menu in the @file{dir} file:@refill @@ -12997,35 +13328,34 @@ In this case, the absolute file name of the @file{info-test} file is written as the second part of the menu entry.@refill -@vindex Info-default-directory-list +@vindex Info-directory-list Alternatively, you could write the following in your @file{.emacs} file:@refill @example @group -(setq Info-default-directory-list +(setq Info-directory-list '("/home/bob/manuals" - "/usr/local/emacs/info")) + "/usr/local/info")) @end group @end example @c reworded to avoid overfill hbox This tells Emacs to merge the @file{dir} file from the @file{/home/bob/manuals} directory with the @file{dir} file from the -@file{"/usr/local/emacs/info}" directory. Info will list the +@file{/usr/local/info} directory. Info will list the @file{/home/bob/manuals/info-test} file as a menu entry in the @file{/home/bob/manuals/dir} file.@refill @vindex INFOPATH -Finally, you can tell Info where to look by setting the -@code{INFOPATH} environment variable in your @file{.cshrc} or -@file{.profile} file.@refill - -If you use @code{sh} or @code{bash} for your shell command interpreter, -you must set the @code{INFOPATH} environment variable in the -@file{.profile} initialization file; but if you use @code{csh}, you must -set the variable in the @file{.cshrc} initialization file. The two -files use slightly different command formats.@refill +Finally, you can tell Info where to look by setting the @code{INFOPATH} +environment variable in your @file{.cshrc} or @file{.profile} file. If +you use a Bourne-compatible shell such as @code{sh} or @code{bash} for +your shell command interpreter, you set the @code{INFOPATH} environment +variable in the @file{.profile} initialization file; but if you use +@code{csh} or @code{tcsh}, you must set the variable in the +@file{.cshrc} initialization file. The two types of shells use +different syntax. @itemize @bullet @item @@ -13033,7 +13363,7 @@ variable as follows:@refill @smallexample -setenv INFOPATH .:~bob/manuals:/usr/local/emacs/info +setenv INFOPATH .:~/manuals:/usr/local/emacs/info @end smallexample @item @@ -13041,16 +13371,31 @@ writing:@refill @smallexample -INFOPATH=.:~bob/manuals:/usr/local/emacs/info +INFOPATH=.:$HOME/manuals:/usr/local/emacs/info export INFOPATH @end smallexample @end itemize @noindent -The @samp{.} indicates the current directory. Emacs uses the +The @samp{.} indicates the current directory as usual. Emacs uses the @code{INFOPATH} environment variable to initialize the value of Emacs's own @code{Info-directory-list} variable. +@cindex @samp{:} @r{last in @code{INFOPATH}} +However you set @code{INFOPATH}, if its last character is a colon, this +is replaced by the default (compiled-in) path. This gives you a way to +augment the default path with new directories without having to list all +the standard places. For example (using @code{sh} syntax: + +@example +INFOPATH=/local/info: +export INFOPATH +@end example + +@noindent +will search @file{/local/info} first, then the standard directories. +Leading or doubled colons are not treated specially. + @node Installing Dir Entries, Invoking install-info, Other Info Directories, Install an Info File @section Installing Info Directory Files @@ -13106,7 +13451,7 @@ specified categories. -@node Invoking install-info, , Installing Dir Entries, Install an Info File +@node Invoking install-info, , Installing Dir Entries, Install an Info File @section Invoking install-info @pindex install-info @@ -13127,13 +13472,18 @@ @code{install-info} can read only one info file and write only one dir file per invocation. +@cindex @file{dir}, created by @code{install-info} +If @var{dir-file} (however specified) does not exist, +@code{install-info} creates it if possible (with no entries). + Options: -@table @samp +@table @code @item --delete @opindex --delete -Only delete existing entries in @var{info-file}; don't insert any new -entries. +Delete the entries in @var{info-file} from @var{dir-file}. The file +name in the entry in @var{dir-file} must be @var{info-file} (except for +an optional @samp{.info} in either one). Don't insert any new entries. @item --dir-file=@var{name} @opindex --dir-file=@var{name} @@ -13164,8 +13514,8 @@ @item --item=@var{text} @opindex --item=@var{text} -Same as --entry=@var{text}. An Info directory entry is actually a menu -item. +Same as @samp{--entry=@var{text}}. An Info directory entry is actually +a menu item. @item --quiet @opindex --quiet @@ -13173,7 +13523,7 @@ @item --remove @opindex --remove -Same as --delete. +Same as @samp{--delete}. @item --section=@var{sec} @opindex --section=@var{sec} @@ -13190,8 +13540,6 @@ @end table -@c ================ Appendix starts here ================ - @node Command List, Tips, Install an Info File, Top @appendix @@-Command List @cindex Alphabetical @@-command list @@ -13248,7 +13596,7 @@ an end-of-sentence capital letter). @xref{Ending a Sentence}. @item @@@@ -Stands for an at sign, @samp{@@}.@* +Stands for an at sign, @samp{@@}. @xref{Braces Atsigns, , Inserting @@ and braces}. @item @@^ @@ -13258,7 +13606,7 @@ @xref{Inserting Accents}. @item @@@{ -Stands for a left brace, @samp{@{}.@* +Stands for a left brace, @samp{@{}. @xref{Braces Atsigns, , Inserting @@ and braces}. @item @@@} @@ -13279,6 +13627,11 @@ Generate the uppercase and lowercase AE ligatures, respectively: @AE{}, @ae{}. @xref{Inserting Accents}. +@item @@afourpaper +Change page dimensions for the A4 paper size. +Only allowed inside @code{@@iftex} @dots{} @code{@@end iftex}. +@xref{A4 Paper}. + @item @@appendix @var{title} Begin an appendix. The title appears in the table of contents of a printed manual. In Info, the title is @@ -13300,10 +13653,10 @@ subheading, , Subsection Commands}.@refill @item @@appendixsubsubsec @var{title} -Begin an appendix subsubsection within a subappendix. The title -appears in the table of contents of a printed manual. In Info, the -title is underlined with periods. @xref{subsubsection,, The `subsub' -Commands}.@refill +Begin an appendix subsubsection within an appendix subsection. The +title appears in the table of contents of a printed manual. In Info, +the title is underlined with periods. @xref{subsubsection,, The +`subsub' Commands}.@refill @item @@asis Used following @code{@@table}, @code{@@ftable}, and @code{@@vtable} to @@ -13494,6 +13847,13 @@ @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}. +@item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{} +@itemx @@deftypemethodx @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{} +Format a description for a typed method in object-oriented programming. +Takes as arguments the name of the class of the method, the return type +of the method, the name of the method, and its arguments, if any. +@xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}. + @item @@deftypevr @var{classification} @var{data-type} @var{name} @itemx @@deftypevrx @var{classification} @var{data-type} @var{name} Format a description for something like a variable in a typed @@ -13528,7 +13888,7 @@ and @ref{deffnx,, Def Cmds in Detail}. @item @@detailmenu@{@} -Use to avoid Makeinfo confusion stemming from the detailed node listing +Avoid @code{makeinfo} confusion stemming from the detailed node listing in a master menu. @xref{Master Menu Parts}. @item @@dfn@{@var{term}@} @@ -13554,19 +13914,23 @@ thin space before @var{dimension}. No effect in Info. @xref{dmn, , @code{@@dmn}}.@refill -@need 100 +@item @@dotaccent@{@var{c}@} +Generate a dot accent over the character @var{c}, as in @dotaccent{oo}. +@xref{Inserting Accents}. + @item @@dots@{@} Insert an ellipsis: @samp{@dots{}}. @xref{dots, , @code{@@dots}}.@refill -@item @@email@{@var{address}@} +@item @@email@{@var{address}[, @var{displayed-text}]@} Indicate an electronic mail address. @xref{email, , @code{@@email}}.@refill @need 100 @item @@emph@{@var{text}@} Highlight @var{text}; text is displayed in @emph{italics} in printed -output, and surrounded by asterisks in Info. @xref{Emphasis, , Emphasizing Text}.@refill +output, and surrounded by asterisks in Info. @xref{Emphasis, , +Emphasizing Text}. @item @@end @var{environment} Ends @var{environment}, as in @samp{@@end example}. @xref{Formatting @@ -13592,14 +13956,11 @@ Indicate to the reader with a glyph that the following text is an error message: @samp{@error{}}. @xref{Error Glyph}.@refill -@item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}] -Specify page footings for even-numbered (left-hand) pages. Not relevant to -Info. @xref{Custom Headings, , How to Make Your Own Headings}.@refill - -@item @@evenheading [@var{left}] @@| [@var{center}] @@| [@var{right}] -Specify page headings for even-numbered (left-hand) pages. Only -supported within @code{@@iftex}. @xref{Custom Headings, , How to Make -Your Own Headings}.@refill +@item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}] +@itemx @@evenheading [@var{left}] @@| [@var{center}] @@| [@var{right}] +Specify page footings resp.@: headings for even-numbered (left-hand) +pages. Only allowed inside @code{@@iftex}. @xref{Custom Headings, , +How to Make Your Own Headings}.@refill @item @@everyfooting [@var{left}] @@| [@var{center}] @@| [@var{right}] @itemx @@everyheading [@var{left}] @@| [@var{center}] @@| [@var{right}] @@ -13612,7 +13973,7 @@ @code{@@example}}.@refill @item @@exclamdown@{@} -Generate an upside-down exclamation point. @xref{Inserting Accents}. +Produce an upside-down exclamation point. @xref{Inserting Accents}. @item @@exdent @var{line-of-text} Remove any indentation a line might have. @xref{exdent, , @@ -13688,6 +14049,14 @@ page headings for printing. @xref{headings on off, , The @code{@@headings} Command}. +@item @@html +Enter HTML completely. Pair with @code{@@end html}. @xref{Raw +Formatter Commands}. + +@item @@hyphenation@{@var{hy-phen-a-ted words}@} +Explicitly define hyphenation points. @xref{- and hyphenation,, +@code{@@-} and @code{@@hyphenation}}. + @item @@i@{@var{text}@} Print @var{text} in @i{italic} font. No effect in Info. @xref{Fonts}.@refill @@ -13703,7 +14072,15 @@ Begin a stretch of text that will be ignored by @TeX{} when it typesets the printed manual. The text appears only in the HTML resp.@: Info file. Pair with @code{@@end ifhtml} resp.@: @code{@@end ifinfo}. -@xref{Conditionals, , Conditionally Visible Text}.@refill +@xref{Conditionals}. + +@item @@ifnothtml +@itemx @@ifnotinfo +@itemx @@ifnottex +Begin a stretch of text that will be ignored in one output format but +not the others. The text appears only in the format not specified. +Pair with @code{@@end ifnothtml} resp.@: @code{@@end ifnotinfo} resp.@: +@code{@@end ifnotinfo}. @xref{Conditionals}. @item @@ifset @var{flag} If @var{flag} is set, the Texinfo formatting commands format text @@ -13721,6 +14098,10 @@ or the printed output. Pair with @code{@@end ignore}. @xref{Comments, , Comments and Ignored Text}.@refill +@item @@image@{@var{filename}, [@var{width}], [@var{height}]@} +Include graphics image in external @var{filename} scaled to the given +@var{width} and/or @var{height}. @xref{Images}. + @item @@include @var{filename} Incorporate the contents of the file @var{filename} into the Info file or printed document. @xref{Include Files}.@refill @@ -13757,13 +14138,17 @@ Indicate text that is characters of input to be typed by users. @xref{kbd, , @code{@@kbd}}.@refill +@item @@kbdinputstyle @var{style} +Specify when @code{@@kbd} should use a font distinct from @code{@@code}. +@xref{kbd, , @code{@@kbd}}.@refill + @item @@key@{@var{key-name}@} -Highlight @var{key-name}, a name for a key on a keyboard. +Indicate a name for a key on a keyboard. @xref{key, , @code{@@key}}.@refill @item @@kindex @var{entry} -Add @var{entry} to the index of keys. @xref{Index Entries, , Defining the -Entries of an Index}.@refill +Add @var{entry} to the index of keys. +@xref{Index Entries, , Defining the Entries of an Index}.@refill @item @@L@{@} @itemx @@l@{@} @@ -13771,10 +14156,11 @@ respectively: @L{}, @l{}. @c Possibly this can be tossed now that we have macros. --karl, 16sep96. -@item @@global@@let@var{new-command}=@var{existing-command} -Equate a new highlighting command with an existing one. Only for -@TeX{}. Write definition inside of @code{@@iftex} @dots{} @code{@@end -iftex}. @xref{Customized Highlighting}.@refill +@c Yes, let's toss it, it's pretty weird. --karl, 15jun97. +@c @item @@global@@let@var{new-command}=@var{existing-command} +@c Equate a new highlighting command with an existing one. Only for +@c @TeX{}. Write definition inside of @code{@@iftex} @dots{} @code{@@end +@c iftex}. @xref{Customized Highlighting}.@refill @item @@lisp Begin an example of Lisp code. Indent text, do not fill, and select @@ -13788,7 +14174,8 @@ @item @@macro @var{macro-name} @{@var{params}@} Define a new Texinfo command @code{@@@var{macro-name}@{@var{params}@}}. -Only supported by Makeinfo and Texi2dvi. @xref{Defining Macros}. +Only supported by @code{makeinfo} and @code{texi2dvi}. @xref{Defining +Macros}. @item @@majorheading @var{title} Print a chapter-like heading in the text, but not in the table of @@ -13827,10 +14214,10 @@ @item @@O@{@} @itemx @@o@{@} -Generate the uppercase and lowercase Owith-slash letters, respectively: +Generate the uppercase and lowercase O-with-slash letters, respectively: @O{}, @o{}. -@item @@oddfooting [@var{left}] @@| [@var{center}] @@| [@var{right}] +@item @@oddfooting [@var{left}] @@| [@var{center}] @@| [@var{right}] @itemx @@oddheading [@var{left}] @@| [@var{center}] @@| [@var{right}] Specify page footings resp.@: headings for odd-numbered (right-hand) pages. Only allowed inside @code{@@iftex}. @xref{Custom Headings, , @@ -14074,8 +14461,8 @@ and @copyright{}}.@refill @item @@tex -Enter @TeX{} completely. Pair with @code{@@end tex}. @xref{Using -Ordinary TeX Commands, , Using Ordinary @TeX{} Commands}.@refill +Enter @TeX{} completely. Pair with @code{@@end tex}. @xref{Raw +Formatter Commands}. @item @@thischapter @itemx @@thischaptername @@ -14088,6 +14475,10 @@ document, respectively. @xref{Custom Headings, , How to Make Your Own Headings}.@refill +@item @@tieaccent@{@var{cc}@} +Generate a tie-after accent over the next two characters @var{cc}, as in +`@tieaccent{oo}'. @xref{Inserting Accents}. + @item @@tindex @var{entry} Add @var{entry} to the index of data types. @xref{Index Entries, , Defining the Entries of an Index}.@refill @@ -14129,9 +14520,9 @@ command is merely a synonym for @code{@@unnumbered}. @xref{makeinfo Pointer Creation, , Creating Pointers with @code{makeinfo}}. -@item @@u@var{c} -@itemx @@ubaraccent@var{c} -@itemx @@udotaccent@var{c} +@item @@u@{@var{c}@} +@itemx @@ubaraccent@{@var{c}@} +@itemx @@udotaccent@{@var{c}@} Generate a breve, underbar, or underdot accent, respectively, over or under the character @var{c}, as in @u{o}, @ubaraccent{o}, @udotaccent{o}. @xref{Inserting Accents}. @@ -14163,11 +14554,15 @@ manual. In Info, the title is underlined with periods. @xref{subsubsection, , The `subsub' Commands}.@refill +@item @@uref@{@var{url}[, @var{displayed-text}@} +Define a cross reference to an external uniform resource locator for the +World Wide Web. @xref{url, , @code{@@url}}.@refill + @item @@url@{@var{url}@} -Highlight text that is a uniform resource locator for the World Wide +Indicate text that is a uniform resource locator for the World Wide Web. @xref{url, , @code{@@url}}.@refill -@item @@v@var{c} +@item @@v@{@var{c}@} Generate check accent over the character @var{c}, as in @v{o}. @xref{Inserting Accents}. @@ -14216,8 +14611,8 @@ mandatory. @xref{xref, , @code{@@xref}}.@refill @end table + @node Tips, Sample Texinfo File, Command List, Top -@comment node-name, next, previous, up @appendix Tips and Hints Here are some tips for writing Texinfo documentation:@refill @@ -14240,7 +14635,7 @@ Include a copyright notice and copying permissions. @end itemize -@subsubheading Index, index, index! +@subsubheading Index, Index, Index! Write many index entries, in different ways. Readers like indices; they are helpful and convenient. @@ -14306,7 +14701,7 @@ readers can look up the concept in different ways.) @end itemize -@subsubheading Blank lines +@subsubheading Blank Lines @itemize @bullet @item @@ -14350,7 +14745,7 @@ same way. @end itemize -@subsubheading Complete phrases +@subsubheading Complete Phrases Complete phrases are easier to read than @dots{} @@ -14366,7 +14761,7 @@ ``You can set these variables:''. The former expression sounds cut off. @end itemize -@subsubheading Editions, dates and versions +@subsubheading Editions, Dates and Versions Write the edition and version numbers and date in three places in every manual: @@ -14434,11 +14829,11 @@ @itemize @bullet @item -Capitalize @samp{Texinfo}; it is a name. Do not write the @samp{x} or +Capitalize ``Texinfo''; it is a name. Do not write the @samp{x} or @samp{i} in upper case. @item -Capitalize @samp{Info}; it is a name. +Capitalize ``Info''; it is a name. @item Write @TeX{} using the @code{@@TeX@{@}} command. Note the uppercase @@ -14574,8 +14969,8 @@ @subsubheading Invoking from a Shell -You can invoke programs such as Emacs, GCC, and GAWK from a shell. -The documentation for each program should contain a section that +You can invoke programs such as Emacs, GCC, and @code{gawk} from a +shell. The documentation for each program should contain a section that describes this. Unfortunately, if the node names and titles for these sections are all different, readers find it hard to search for the section.@refill @@ -14584,10 +14979,10 @@ @w{`Invoking @dots{}'}, as in `Invoking Emacs'; this way users can find the section easily. -@subsubheading @sc{ansi c} Syntax +@subsubheading ANSI C Syntax When you use @code{@@example} to describe a C function's calling -conventions, use the @sc{ansi c} syntax, like this:@refill +conventions, use the ANSI C syntax, like this:@refill @example void dld_init (char *@@var@{path@}); @@ -14650,7 +15045,7 @@ @item Pronounce @TeX{} as if the @samp{X} were a Greek `chi', as the last sound in the name `Bach'. But pronounce Texinfo as in `speck': -@samp{teckinfo}. +``teckinfo''. @item Write notes for yourself at the very end of a Texinfo file after the @@ -14659,8 +15054,8 @@ @code{@@end ignore}. @end itemize + @node Sample Texinfo File, Sample Permissions, Tips, Top -@comment node-name, next, previous, up @appendix A Sample Texinfo File @cindex Sample Texinfo file, no comments @@ -14695,7 +15090,7 @@ Copyright @@copyright@{@} 1990 Free Software Foundation, Inc. @@end titlepage -@@node Top, First Chapter, (dir), (dir) +@@node Top, First Chapter, , (dir) @@comment node-name, next, previous, up @@menu @@ -14737,6 +15132,7 @@ @@bye @end example + @node Sample Permissions, Include Files, Sample Texinfo File, Top @appendix Sample Permissions @cindex Permissions @@ -14817,7 +15213,7 @@ @example This file documents @dots{} -Copyright 1992 Free Software Foundation, Inc. +Copyright 1997 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and @@ -14847,7 +15243,7 @@ translation approved by the Free Software Foundation. @end example -@node Titlepage Permissions, , ifinfo Permissions, Sample Permissions +@node Titlepage Permissions, , ifinfo Permissions, Sample Permissions @comment node-name, next, previous, up @appendixsec Titlepage Copying Permissions @cindex Titlepage permissions @@ -14878,14 +15274,14 @@ translation approved by the Free Software Foundation. @end example + @node Include Files, Headings, Sample Permissions, Top -@comment node-name, next, previous, up @appendix Include Files @cindex Include files When @TeX{} or an Info formatting command sees an @code{@@include} command in a Texinfo file, it processes the contents of the file named -by the command and incorporates them into the @sc{dvi} or Info file being +by the command and incorporates them into the DVI or Info file being created. Index entries from the included file are incorporated into the indices of the output file.@refill @@ -15077,13 +15473,13 @@ @group @@page @@vskip 0pt plus 1filll -Copyright @@copyright@{@} 1990 Free Software Foundation, Inc. +Copyright @@copyright@{@} 1997 Free Software Foundation, Inc. @@end titlepage @end group @group @@ifinfo -@@node Top, First, (dir), (dir) +@@node Top, First, , (dir) @@top Master Menu @@end ifinfo @end group @@ -15130,7 +15526,7 @@ menu with 417 entries and a list of 41 @code{@@include} files.@refill -@node Include Files Evolution, , Sample Include File, Include Files +@node Include Files Evolution, , Sample Include File, Include Files @comment node-name, next, previous, up @appendixsec Evolution of Include Files @@ -15170,8 +15566,8 @@ you can write menus and cross references without naming the different Texinfo files.@refill + @node Headings, Catching Mistakes, Include Files, Top -@comment node-name, next, previous, up @appendix Page Headings @cindex Headings @cindex Footings @@ -15196,10 +15592,10 @@ @heading Headings Introduced @end ifinfo -Texinfo provides standard page heading formats for manuals that are printed -on one side of each sheet of paper and for manuals that are printed on -both sides of the paper. Usually, you will use one or other of these -formats, but you can specify your own format, if you wish.@refill +Texinfo provides standard page heading formats for manuals that are +printed on one side of each sheet of paper and for manuals that are +printed on both sides of the paper. Typically, you will use these +formats, but you can specify your own format if you wish.@refill In addition, you can specify whether chapters should begin on a new page, or merely continue the same page as the previous chapter; and if @@ -15293,9 +15689,9 @@ @end example @noindent -The chapter name is preceded by the word @samp{Chapter}, the chapter -number and a colon. This makes it easier to keep track of where you -are in the manual.@refill +The chapter name is preceded by the word ``Chapter'', the chapter number +and a colon. This makes it easier to keep track of where you are in the +manual.@refill @node Heading Choice, Custom Headings, Heading Format, Headings @comment node-name, next, previous, up @@ -15334,12 +15730,13 @@ @noindent Texinfo lacks an @code{@@setchapternewpage even} command.@refill -@node Custom Headings, , Heading Choice, Headings +@node Custom Headings, , Heading Choice, Headings @comment node-name, next, previous, up @appendixsec How to Make Your Own Headings You can use the standard headings provided with Texinfo or specify -your own.@refill +your own. By default, Texinfo has no footers, so if you specify them, +the available page size for the main text will be slightly reduced. @c Following paragraph is verbose to prevent overfull hboxes. Texinfo provides six commands for specifying headings and @@ -15376,7 +15773,7 @@ @noindent You need to divide the left part from the central part and the central -part from the right had part by inserting @samp{@@|} between parts. +part from the right part by inserting @samp{@@|} between parts. Otherwise, the specification command will not be able to tell where the text for one part ends and the next part begins.@refill @@ -15412,7 +15809,7 @@ The `even' and `odd' commands specify the format for even-numbered pages and odd-numbered pages. These commands are for books and -manuals that are printed on both sides of each sheet of paper.@refill +manuals that are printed on both sides of each sheet of paper. @end table Use the @samp{@@this@dots{}} series of @@-commands to @@ -15429,7 +15826,7 @@ @findex thispage @item @@thispage Expands to the current page number.@refill -@c !!! Karl Berry says that `thissection' fails on page breaks. +@c !!! Karl Berry says that `thissection' can fail on page breaks. @ignore @item @@thissection Expands to the name of the current section.@refill @@ -15481,8 +15878,8 @@ Beware of overlong titles: they may overlap another part of the header or footer and blot it out.@refill + @node Catching Mistakes, Refilling Paragraphs, Headings, Top -@comment node-name, next, previous, up @appendix Formatting Mistakes @cindex Structure, catching mistakes in @cindex Nodes, catching mistakes @@ -15509,7 +15906,7 @@ command and you can use the @kbd{M-x Info-validate} command.@refill @menu -* makeinfo preferred:: @code{makeinfo} finds errors. +* makeinfo Preferred:: @code{makeinfo} finds errors. * Debugging with Info:: How to catch errors with Info formatting. * Debugging with TeX:: How to catch errors with @TeX{} formatting. * Using texinfo-show-structure:: How to use @code{texinfo-show-structure}. @@ -15517,7 +15914,7 @@ * Running Info-Validate:: How to find badly referenced nodes. @end menu -@node makeinfo preferred, Debugging with Info, Catching Mistakes, Catching Mistakes +@node makeinfo Preferred, Debugging with Info, Catching Mistakes, Catching Mistakes @ifinfo @heading @code{makeinfo} Find Errors @end ifinfo @@ -15536,7 +15933,7 @@ cannot use @code{makeinfo}, or your problem is very puzzling, then you may want to use the tools described in this appendix.@refill -@node Debugging with Info, Debugging with TeX, makeinfo preferred, Catching Mistakes +@node Debugging with Info, Debugging with TeX, makeinfo Preferred, Catching Mistakes @comment node-name, next, previous, up @appendixsec Catching Errors with Info Formatting @cindex Catching errors with Info formatting @@ -15798,9 +16195,9 @@ This is often the best thing to do. However, beware: the one error may produce a cascade of additional error messages as its consequences -are felt through the rest of the file. (To stop @TeX{} when it is -producing such an avalanche of error messages, type @kbd{C-d} (or -@kbd{C-c C-d}, if you are running a shell inside Emacs.))@refill +are felt through the rest of the file. To stop @TeX{} when it is +producing such an avalanche of error messages, type @kbd{C-c} (or +@kbd{C-c C-c}, if you are running a shell inside Emacs). @item You can tell @TeX{} to stop this run by typing @kbd{x @key{RET}} @@ -15815,7 +16212,7 @@ though there is a problem. This usually occurs if a command is not ended but @TeX{} is able to continue processing anyhow. For example, if you fail to end an itemized list with the @code{@@end itemize} command, @TeX{} will -write a @sc{dvi} file that you can print out. The only error message that +write a DVI file that you can print out. The only error message that @TeX{} will give you is the somewhat mysterious comment that@refill @example @@ -15823,7 +16220,7 @@ @end example @noindent -However, if you print the @sc{dvi} file, you will find that the text +However, if you print the DVI file, you will find that the text of the file that follows the itemized list is entirely indented as if it were part of the last item in the itemized list. The error message is the way @TeX{} says that it expected to find an @code{@@end} @@ -15965,7 +16362,7 @@ @xref{Other Repeating Search, , Using Occur, emacs , The GNU Emacs Manual}, for more information.@refill -@node Running Info-Validate, , Using occur, Catching Mistakes +@node Running Info-Validate, , Using occur, Catching Mistakes @comment node-name, next, previous, up @appendixsec Finding Badly Referenced Nodes @findex Info-validate @@ -16128,7 +16525,7 @@ tag table and split the file automatically, or you can make the tag table and split the file manually.@refill -@node Splitting, , Tagifying, Running Info-Validate +@node Splitting, , Tagifying, Running Info-Validate @comment node-name, next, previous, up @appendixsubsec Splitting a File Manually @cindex Splitting an Info file manually @@ -16179,8 +16576,8 @@ The primary file still functions as an Info file, but it contains just the tag table and a directory of subfiles.@refill + @node Refilling Paragraphs, Command Syntax, Catching Mistakes, Top -@comment node-name, next, previous, up @appendix Refilling Paragraphs @cindex Refilling paragraphs @cindex Filling paragraphs @@ -16218,6 +16615,7 @@ the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}} and therefore do not refill or indent them.@refill + @node Command Syntax, Obtaining TeX, Refilling Paragraphs, Top @comment node-name, next, previous, up @appendix @@-Command Syntax @@ -16230,12 +16628,13 @@ @table @asis @item 1. Non-alphabetic commands. These commands consist of an @@ followed by a punctuation mark or other -character that is not part of the alphabet. Non-alphabetic commands -are almost always part of the text within a paragraph, and never take -any argument. The two characters (@@ and the other one) are complete -in themselves; none is followed by braces. The non-alphabetic -commands are: @code{@@.}, @code{@@:}, @code{@@*}, @code{@@@@}, -@code{@@@{}, and @code{@@@}}.@refill +character that is not part of the alphabet. Non-alphabetic commands are +almost always part of the text within a paragraph, and never take any +argument. The two characters (@@ and the other one) are complete in +themselves; none is followed by braces. The non-alphabetic commands +are: @code{@@.}, @code{@@:}, @code{@@*}, @code{@@@kbd{SPACE}}, +@code{@@@kbd{TAB}}, @code{@@@kbd{NL}}, @code{@@@@}, @code{@@@{}, and +@code{@@@}}.@refill @item 2. Alphabetic commands that do not require arguments. These commands start with @@ followed by a word followed by left- and @@ -16280,7 +16679,8 @@ Emacs paragraph commands because it cannot appear at the beginning of a line.@refill -@node Obtaining TeX, New Features, Command Syntax, Top + +@node Obtaining TeX, Command and Variable Index, Command Syntax, Top @appendix How to Obtain @TeX{} @cindex Obtaining @TeX{} @cindex @TeX{}, how to obtain @@ -16289,14 +16689,16 @@ @c !!! Also consider updating TeX.README on prep. @c Updated by RJC on 1 March 1995, conversation with MacKay. @c Updated by kb@cs.umb.edu on 29 July 1996. +@c Updated by kb@cs.umb.edu on 25 April 1997. @TeX{} is freely redistributable. You can obtain @TeX{} for Unix -systems via anonymous ftp or on tape or CD-ROM. The core material -consists of Karl Berry's Web2c @TeX{} distribution. - -On-line retrieval instructions are available from either: -@example -@url{ftp://ftp.tug.org/tex/unixtex.ftp} -@url{http://www.tug.org/unixtex.ftp} +systems via anonymous ftp or on physical media. The core material +consists of the Web2c @TeX{} distribution (@uref{http://www.tug.org/web2c}). + +Instructions for retrieval by anonymous ftp and information on other +available distributions: +@example +@uref{ftp://ftp.tug.org/tex/unixtex.ftp} +@uref{http://www.tug.org/unixtex.ftp} @end example The Free Software Foundation provides a core distribution on its Source @@ -16304,6 +16706,9 @@ Washington maintains and supports a tape distribution; the @TeX{} Users Group co-sponsors a complete CD-ROM @TeX{} distribution. +@itemize @bullet + +@item For the FSF Source Code CD-ROM, please contact: @iftex @@ -16311,9 +16716,8 @@ @group Free Software Foundation, Inc. 59 Temple Place Suite 330 -Boston, MA w{ } 02111-1307 +Boston, MA @ @ 02111-1307 USA - Telephone: @w{@t{+}1--617--542--5942} Fax: (including Japan) @w{@t{+}1--617--542--2652} Free Dial Fax (in Japan): @@ -16341,17 +16745,15 @@ @end display @end ifinfo -To order a full distribution on CD-ROM, please see: -@display -@url{http://www.tug.org/tex-live.html} -@end display - -@noindent -(The distribution is also available by FTP; see the URL's above.) - -To order a full distribution from the University of Washington on either a -1/4@dmn{in} 4-track QIC-24 cartridge or a 4@dmn{mm} DAT cartridge, send -$210 to: +@item +To order a complete distribution on CD-ROM, please see +@uref{http://www.tug.org/tex-live.html}. (This distribution is also +available by FTP; see the URL's above.) + +@item +To order a full distribution from the University of Washington on either +a 1/4@dmn{in} 4-track QIC-24 cartridge or a 4@dmn{mm} DAT cartridge, +send $210 to: @display @group @@ -16360,24 +16762,27 @@ University of Washington Seattle, WA @w{ } 98195 USA - Telephone: @t{+}1--206--543--2268 Electronic mail: @code{mackay@@cs.washington.edu} @end group @end display -Please make checks payable to the University of Washington. -Checks must be in U.S.@: dollars, drawn on a U.S.@: bank. - -Prepaid orders are the only orders that can now be handled. Overseas -sites: please add to the base cost, if desired, $20.00 for shipment -via air parcel post, or $30.00 for shipment via courier. - -Please check with the above for current prices and formats. - - -@node New Features, Command and Variable Index, Obtaining TeX, Top -@appendix Second Edition Features +@noindent Please make checks payable to the University of Washington. +Checks must be in U.S.@: dollars, drawn on a U.S.@: bank. Overseas +sites: please add to the base cost, if desired, $20.00 for shipment via +air parcel post, or $30.00 for shipment via courier. + +@end itemize + +Many other @TeX{} distributions are available; see +@uref{http://www.tug.org/}. + + +@c These are no longer ``new'', and the explanations +@c are all given elsewhere anyway, I think. --karl, 25apr97. +@ignore (the entire appendix) +@c node New Features, Command and Variable Index, Obtaining TeX, Top +@c appendix Second Edition Features @tex % Widen the space for the first column so three control-character @@ -16398,8 +16803,8 @@ * New Commands:: Many newly described @@-commands. @end menu -@node New Texinfo Mode Commands, New Commands, New Features, New Features -@appendixsec New Texinfo Mode Commands +@c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX +@c appendixsec New Texinfo Mode Commands Texinfo mode provides commands and features especially designed for working with Texinfo files. More than 20 new commands have been @@ -16408,7 +16813,7 @@ The keybindings are intended to be somewhat mnemonic.@refill -@subheading Update all nodes and menus +@c subheading Update all nodes and menus The @code{texinfo-master-menu} command is the primary command: @@ -16421,7 +16826,7 @@ and regular menus. @end table -@subheading Update Pointers +@c subheading Update Pointers @noindent Create or update `Next', `Previous', and `Up' node pointers.@refill @@ -16439,7 +16844,7 @@ Update every node in the buffer. @end table -@subheading Update Menus +@c subheading Update Menus @noindent Create or update menus.@refill @@ -16459,7 +16864,7 @@ first update all the nodes. @end table -@subheading Insert Title as Description +@c subheading Insert Title as Description @noindent Insert a node's chapter or section title in the space for the @@ -16475,7 +16880,7 @@ Insert title. @end table -@subheading Format for Info +@c subheading Format for Info @noindent Provide keybindings both for the Info formatting commands that are @@ -16513,7 +16918,7 @@ Kill the @code{makeinfo} formatting job. @end table -@subheading Typeset and Print +@c subheading Typeset and Print @noindent Typeset and print Texinfo documents from within Emacs.@refill @@ -16538,7 +16943,7 @@ Run @code{texindex}. @item C-c C-t C-p -Print the @sc{dvi} file. +Print the DVI file. @item C-c C-t C-q Show the print queue. @@ -16556,7 +16961,7 @@ Recenter the output buffer. @end table -@subheading Other Updating Commands +@c subheading Other Updating Commands @noindent The ``other updating commands'' do not have standard keybindings because @@ -16584,8 +16989,8 @@ Insert node pointers in strict sequence. @end table -@node New Commands, , New Texinfo Mode Commands, New Features -@appendixsec New Texinfo @@-Commands +@c node New Commands, , New Texinfo Mode Commands, Obtaining TeX +@c appendixsec New Texinfo @@-Commands The second edition of the Texinfo manual describes more than 50 commands that were not described in the first edition. A third or so @@ -16593,7 +16998,7 @@ manual; the others are new. Here is a listing, with brief descriptions of them:@refill -@subheading Indexing +@c subheading Indexing @noindent Create your own index, and merge indices.@refill @@ -16612,7 +17017,7 @@ See also the @code{@@syncodeindex} command. @end table -@subheading Definitions +@c subheading Definitions @noindent Describe functions, variables, macros, @@ -16631,7 +17036,7 @@ 15 other related commands. @end table -@subheading Glyphs +@c subheading Glyphs @noindent Indicate the results of evaluation, expansion, @@ -16667,7 +17072,7 @@ Result of an expression @end table -@subheading Page Headings +@c subheading Page Headings @noindent Customize page headings. @@ -16692,7 +17097,7 @@ Related commands. @end table -@subheading Formatting +@c subheading Formatting @noindent Format blocks of text. @@ -16732,7 +17137,7 @@ Like @@table and @@lisp @r{but for} @@smallbook. @end table -@subheading Conditionals +@c subheading Conditionals @noindent Conditionally format text. @@ -16758,7 +17163,7 @@ Ignore, if @var{flag} is set. @end table -@subheading @@heading series for Titles +@c subheading @@heading series for Titles @noindent Produce unnumbered headings that do not appear in a table of contents. @@ -16771,12 +17176,12 @@ Unnumbered section-like heading not listed in the table of contents of a printed manual. -@item @@chapheading, @@majorheading, @@subheading, @@subsubheading +@item @@chapheading, @@majorheading, @@c subheading, @@subsubheading Related commands. @end table @need 1000 -@subheading Font commands +@c subheading Font commands @need 1000 @noindent @@ -16791,7 +17196,7 @@ Print in @sc{small caps} font. @end table -@subheading Miscellaneous +@c subheading Miscellaneous @noindent See @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author} Commands},@* @@ -16811,10 +17216,8 @@ @item @@author @var{author} Typeset author's name. -@ignore -@item @@definfoenclose @var{new-command}, @var{before}, @var{after}, -Define a highlighting command for Info. (Info only.) -@end ignore +@c @item @@definfoenclose @var{new-command}, @var{before}, @var{after}, +@c Define a highlighting command for Info. (Info only.) @item @@finalout Produce cleaner printed output. @@ -16862,9 +17265,9 @@ % Switch width of first column of tables back to default value \global\tableindent=.8in @end tex - - -@node Command and Variable Index, Concept Index, New Features, Top +@end ignore + +@node Command and Variable Index, Concept Index, Obtaining TeX, Top @comment node-name, next, previous, up @unnumbered Command and Variable Index @@ -16875,7 +17278,7 @@ @printindex fn -@node Concept Index, , Command and Variable Index, Top +@node Concept Index, , Command and Variable Index, Top @unnumbered Concept Index @printindex cp
--- a/src/config.h.in Mon Aug 13 08:56:06 2007 +0200 +++ b/src/config.h.in Mon Aug 13 08:56:41 2007 +0200 @@ -26,7 +26,7 @@ #ifndef _CONFIG_H_ #define _CONFIG_H_ -/* #### This will be removed in 19.15. */ +/* #### This has been removed in 20.3. */ #define LOSING_BYTECODE
--- a/src/console.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/console.c Mon Aug 13 08:56:41 2007 +0200 @@ -250,7 +250,7 @@ /* perhaps this should do something more complicated */ Vselected_console = console; - /* #### Schedule this to be removed in 19.14 */ + /* #### Schedule this to be removed in some future version */ #ifdef HAVE_X_WINDOWS if (CONSOLE_X_P (XCONSOLE (console))) Vwindow_system = Qx;
--- a/src/doprnt.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/doprnt.c Mon Aug 13 08:56:41 2007 +0200 @@ -445,6 +445,15 @@ if (!largs) { string = Dynarr_at (args, spec->argnum - 1).bp; + /* error() can be called with null string arguments. + E.g., in fileio.c, the return value of strerror() + is never checked. We'll print (null), like some + printf implementations do. Would it be better (and safe) + to signal an error instead? Or should we just use the + empty string? -dkindred@cs.cmu.edu 8/1997 + */ + if (!string) + string = "(null)"; string_len = strlen ((char *) string); } else
--- a/src/emacs.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/emacs.c Mon Aug 13 08:56:41 2007 +0200 @@ -84,6 +84,10 @@ /* Variable whose value is string giving configuration built for. */ Lisp_Object Vsystem_configuration; +/* Version numbers and strings */ +Lisp_Object Vemacs_major_version; +Lisp_Object Vemacs_minor_version; + /* The name under which XEmacs was invoked, with any leading directory names discarded. */ Lisp_Object Vinvocation_name; @@ -2237,6 +2241,25 @@ */ ); Vsystem_configuration = Fpurecopy (build_string (EMACS_CONFIGURATION)); + /* emacs-major-version and emacs-minor-version work correctly in the */ + /* real XEmacs source code ... */ + DEFVAR_LISP ("emacs-major-version", &Vemacs_major_version /* +Major version number of this version of Emacs, as an integer. +Warning: this variable did not exist in Emacs versions earlier than: + FSF Emacs: 19.23 + XEmacs: 19.10 +*/ ); + Vemacs_major_version = make_int (19); + + DEFVAR_LISP ("emacs-minor-version", &Vemacs_minor_version /* +Minor version number of this version of Emacs, as an integer. +Warning: this variable did not exist in Emacs versions earlier than: + FSF Emacs: 19.23 + XEmacs: 19.10 +*/ ); + Vemacs_minor_version = make_int (16); + + DEFVAR_BOOL ("noninteractive", &noninteractive1 /* Non-nil means XEmacs is running without interactive terminal. */ );
--- a/src/emacsfns.h Mon Aug 13 08:56:06 2007 +0200 +++ b/src/emacsfns.h Mon Aug 13 08:56:41 2007 +0200 @@ -1149,6 +1149,7 @@ extern Lisp_Object Qactually_requested; extern Lisp_Object Qafter; extern Lisp_Object Qall; +extern Lisp_Object Qand; extern Lisp_Object Qassoc; extern Lisp_Object Qat; extern Lisp_Object Qautodetect; @@ -1220,10 +1221,12 @@ extern Lisp_Object Qmotion; extern Lisp_Object Qname; extern Lisp_Object Qnone; +extern Lisp_Object Qnot; extern Lisp_Object Qnothing; extern Lisp_Object Qnotice; extern Lisp_Object Qobject; extern Lisp_Object Qonly; +extern Lisp_Object Qor; extern Lisp_Object Qother; extern Lisp_Object Qpath; extern Lisp_Object Qpointer;
--- a/src/fileio.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/fileio.c Mon Aug 13 08:56:41 2007 +0200 @@ -123,7 +123,8 @@ /* System error messages are capitalized. Downcase the initial unless it is followed by a slash. */ - if (string_char (XSTRING (errstring), 1) != '/') + if (string_char_length (XSTRING (errstring)) >= 2 + && string_char (XSTRING (errstring), 1) != '/') set_string_char (XSTRING (errstring), 0, DOWNCASE (current_buffer, string_char (XSTRING (errstring), 0)));
--- a/src/fns.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/fns.c Mon Aug 13 08:56:41 2007 +0200 @@ -3031,18 +3031,77 @@ Lisp_Object Vfeatures; +extern Lisp_Object Vemacs_major_version, Vemacs_minor_version; DEFUN ("featurep", Ffeaturep, 1, 1, 0, /* -Return t if FEATURE is present in this Emacs. -Use this to conditionalize execution of lisp code based on the -presence or absence of emacs or environment extensions. -Use `provide' to declare that a feature is available. -This function looks at the value of the variable `features'. +Return non-nil if feature expression FEXP is true. */ - (feature)) + (fexp)) { - CHECK_SYMBOL (feature); - return NILP (Fmemq (feature, Vfeatures)) ? Qnil : Qt; + static double featurep_emacs_version; + + /* Brute force translation from Erik Naggum's lisp function. */ + if (SYMBOLP(fexp)) + { + /* Original definition */ + return NILP (Fmemq (fexp, Vfeatures)) ? Qnil : Qt; + } + else if (INTP(fexp) || FLOATP(fexp)) + { + double d = extract_float(fexp); + + if (featurep_emacs_version == 0.0) + { + featurep_emacs_version = XINT (Vemacs_major_version) + + (XINT (Vemacs_minor_version) / 100.0); + } + return featurep_emacs_version >= d ? Qt : Qnil; + } + else if (CONSP(fexp)) + { + Lisp_Object tem; + + tem = XCAR(fexp); + if (EQ(tem, Qnot)) + { + Lisp_Object negate = XCDR(fexp); + + if (!NILP(XCDR(fexp))) + { + return Fsignal(Qinvalid_read_syntax, list1(XCDR(fexp))); + } + else + { + return NILP(Ffeaturep(negate)) ? Qt : Qnil; + } + } + else if (EQ(tem, Qand)) + { + tem = XCDR(fexp); + while (!NILP(tem) && !NILP(Ffeaturep(XCAR(tem)))) + { + tem = XCDR(tem); + } + return NILP(tem) ? Qt : Qnil; + } + else if (EQ(tem, Qor)) + { + tem = XCDR(fexp); + while (!NILP(tem) && NILP(Ffeaturep(XCAR(tem)))) + { + tem = XCDR(tem); + } + return NILP(tem) ? Qnil : Qt; + } + else + { + return Fsignal(Qinvalid_read_syntax, list1(XCDR(fexp))); + } + } + else + { + return Fsignal(Qinvalid_read_syntax, list1 (fexp)); + } } DEFUN ("provide", Fprovide, 1, 1, 0, /*
--- a/src/general.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/general.c Mon Aug 13 08:56:41 2007 +0200 @@ -34,6 +34,7 @@ Lisp_Object Qactually_requested; Lisp_Object Qafter; Lisp_Object Qall; +Lisp_Object Qand; Lisp_Object Qassoc; Lisp_Object Qat; Lisp_Object Qautodetect; @@ -106,10 +107,12 @@ Lisp_Object Qmotion; Lisp_Object Qname; Lisp_Object Qnone; +Lisp_Object Qnot; Lisp_Object Qnothing; Lisp_Object Qnotice; Lisp_Object Qobject; Lisp_Object Qonly; +Lisp_Object Qor; Lisp_Object Qother; Lisp_Object Qpath; Lisp_Object Qpointer; @@ -157,6 +160,7 @@ defsymbol (&Qactually_requested, "actually-requested"); defsymbol (&Qafter, "after"); defsymbol (&Qall, "all"); + defsymbol (&Qand, "and"); defsymbol (&Qassoc, "assoc"); defsymbol (&Qat, "at"); defsymbol (&Qautodetect, "autodetect"); @@ -229,10 +233,12 @@ defsymbol (&Qminus, "-"); defsymbol (&Qname, "name"); defsymbol (&Qnone, "none"); + defsymbol (&Qnot, "not"); defsymbol (&Qnothing, "nothing"); defsymbol (&Qnotice, "notice"); defsymbol (&Qobject, "object"); defsymbol (&Qonly, "only"); + defsymbol (&Qor, "or"); defsymbol (&Qother, "other"); defsymbol (&Qpath, "path"); defsymbol (&Qpointer, "pointer");
--- a/src/glyphs-x.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/glyphs-x.c Mon Aug 13 08:56:41 2007 +0200 @@ -3586,8 +3586,8 @@ which are both being displayed simultaneously you will lose big time. This can be dealt with in the new redisplay. */ -/* #### These are completely un-re-implemented in 19.14. Get it done - for 19.15. */ +/* #### These are completely un-re-implemented in 19.16. Get it done + for 20.3. */ DEFUN ("make-subwindow", Fmake_subwindow, 0, 3, 0, /* Creates a new `subwindow' object of size WIDTH x HEIGHT. @@ -3611,7 +3611,7 @@ XSetWindowAttributes xswa; Mask valueMask = 0; - error ("subwindows are not functional in 19.14; they will be in 19.15"); + error ("subwindows are not functional in 19.16; perhaps some day ..."); f = decode_x_frame (frame);
--- a/src/lread.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/lread.c Mon Aug 13 08:56:41 2007 +0200 @@ -70,6 +70,13 @@ int puke_on_fsf_keys; +/* This symbol is also used in fns.c */ +#define FEATUREP_SYNTAX + +#ifdef FEATUREP_SYNTAX +static Lisp_Object Qfeaturep; +#endif + /* non-zero if inside `load' */ int load_in_progress; @@ -2265,6 +2272,26 @@ return Fsignal (Qinvalid_read_syntax, list1 (build_string ("Cannot read unreadable object"))); } +#ifdef FEATUREP_SYNTAX + case '+': + case '-': + { + Lisp_Object fexp, obj, tem; + struct gcpro gcpro1, gcpro2; + + fexp = read0(readcharfun); + obj = read0(readcharfun); + + /* the call to `featurep' may GC. */ + GCPRO2(fexp, obj); + tem = call1(Qfeaturep, fexp); + UNGCPRO; + + if (c == '+' && NILP(tem)) goto retry; + if (c == '-' && !NILP(tem)) goto retry; + return obj; + } +#endif default: { @@ -2479,10 +2506,12 @@ return (state); else unreadchar (readcharfun, ch); +#ifdef FEATUREP_SYNTAX if (ch == ']') syntax_error ("\"]\" in a list"); else if (ch == ')') syntax_error ("\")\" in a vector"); +#endif state = ((conser) (readcharfun, state, len)); } } @@ -2514,6 +2543,18 @@ free_cons (XCONS (tem)); tem = Qnil; ch = XCHAR (elt); +#ifdef FEATUREP_SYNTAX + if (ch == s->terminator) /* deal with #+, #- reader macros */ + { + unreadchar (readcharfun, s->terminator); + goto done; + } + else if (ch == ']') + syntax_error ("']' in a list"); + else if (ch == ')') + syntax_error ("')' in a vector"); + else +#endif if (ch != '.') signal_simple_error ("BUG! Internal reader error", elt); else if (!s->allow_dotted_lists) @@ -3021,6 +3062,11 @@ /* So that early-early stuff will work */ Ffset (Qload, intern ("load-internal")); +#ifdef FEATUREP_SYNTAX + Qfeaturep = intern("featurep"); + staticpro(&Qfeaturep); + Fprovide(intern("xemacs")); +#endif #ifdef LISP_BACKQUOTES old_backquote_flag = new_backquote_flag = 0; #endif
--- a/src/redisplay-tty.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/redisplay-tty.c Mon Aug 13 08:56:41 2007 +0200 @@ -1269,7 +1269,9 @@ color, too. */ char foobuf[500]; char *fooptr = foobuf; - if (tgetstr ("AB", &fooptr) && tgetstr ("AF", &fooptr)) + if ((tgetstr ("AB", &fooptr) && tgetstr ("AF", &fooptr)) || + (tgetstr ("Sf", &fooptr) && tgetstr ("Sb", &fooptr)) || + ((tgetnum ("Co") > 0) && (tgetnum ("pa") > 0))) DEVICE_CLASS (d) = Qcolor; else DEVICE_CLASS (d) = Qmono;
--- a/src/redisplay.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/redisplay.c Mon Aug 13 08:56:41 2007 +0200 @@ -465,6 +465,7 @@ #ifndef INHIBIT_REDISPLAY_HOOKS /* #### Chuck says: I think this needs more thought. Think about this for 19.14. */ +/* 19.16: We're still thinking, I guess. -slb */ Lisp_Object Vpre_redisplay_hook, Vpost_redisplay_hook; Lisp_Object Qpre_redisplay_hook, Qpost_redisplay_hook; #endif @@ -8209,11 +8210,9 @@ */ ); no_redraw_on_reenter = 0; - /* #### This should be removed in 19.14 */ DEFVAR_LISP ("window-system", &Vwindow_system /* A symbol naming the window-system under which Emacs is running, such as `x', or nil if emacs is running on an ordinary terminal. -This variable is OBSOLETE and will be removed in a future version. */ ); Vwindow_system = Qnil;
--- a/src/specifier.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/specifier.c Mon Aug 13 08:56:41 2007 +0200 @@ -74,7 +74,7 @@ in specifiers that can inherit from other specifiers, but it's not yet implemented. - #### Look into this for 19.14. */ + #### Look into this some day. */ lisp_dynarr current_specifiers; static void recompute_cached_specifier_everywhere (Lisp_Object specifier); @@ -2771,7 +2771,6 @@ What really needs to be done is to write a function `make-specifier-type' that creates new specifier types. - #### I'll look into this for 19.14. */ "A generic specifier is a generalized kind of specifier with user-defined\n"
--- a/src/unexelfsgi.c Mon Aug 13 08:56:06 2007 +0200 +++ b/src/unexelfsgi.c Mon Aug 13 08:56:41 2007 +0200 @@ -479,7 +479,12 @@ new_bss_addr - roundup(old_bss_addr,0x1000) */ - + /* Still more mods... Olivier Galibert 19971705 + - support for .sbss section (automagically changed to data without + name change) + - support for 64bits ABI (will need a bunch of fixes in the rest + of the code before it works + */ #include <sys/types.h> #include <stdio.h> @@ -492,6 +497,28 @@ #include <elf.h> #include <sym.h> /* for HDRR declaration */ #include <sys/mman.h> +#include <config.h> +#include "sysdep.h" + +/* in 64bits mode, use 64bits elf */ +#ifdef _ABI64 +typedef Elf64_Shdr l_Elf_Shdr; +typedef Elf64_Phdr l_Elf_Phdr; +typedef Elf64_Ehdr l_Elf_Ehdr; +typedef Elf64_Addr l_Elf_Addr; +typedef Elf64_Word l_Elf_Word; +typedef Elf64_Off l_Elf_Off; +typedef Elf64_Sym l_Elf_Sym; +#else +typedef Elf32_Shdr l_Elf_Shdr; +typedef Elf32_Phdr l_Elf_Phdr; +typedef Elf32_Ehdr l_Elf_Ehdr; +typedef Elf32_Addr l_Elf_Addr; +typedef Elf32_Word l_Elf_Word; +typedef Elf32_Off l_Elf_Off; +typedef Elf32_Sym l_Elf_Sym; +#endif + #ifndef emacs #define fatal(a, b, c) fprintf(stderr, a, b, c), exit(1) @@ -504,13 +531,13 @@ */ #define OLD_SECTION_H(n) \ - (*(Elf32_Shdr *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) + (*(l_Elf_Shdr *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) #define NEW_SECTION_H(n) \ - (*(Elf32_Shdr *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) + (*(l_Elf_Shdr *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) #define OLD_PROGRAM_H(n) \ - (*(Elf32_Phdr *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) + (*(l_Elf_Phdr *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) #define NEW_PROGRAM_H(n) \ - (*(Elf32_Phdr *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) + (*(l_Elf_Phdr *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) #define PATCH_INDEX(n) \ do { \ @@ -542,8 +569,8 @@ char *name; char *section_names; char *file_name; - Elf32_Ehdr *old_file_h; - Elf32_Shdr *old_section_h; + l_Elf_Ehdr *old_file_h; + l_Elf_Shdr *old_section_h; int noerror; { int idx; @@ -581,9 +608,9 @@ void unexec (new_name, old_name, data_start, bss_start, entry_address) char *new_name, *old_name; - unsigned data_start, bss_start, entry_address; + uintptr_t data_start, bss_start, entry_address; { - extern unsigned int bss_end; + extern uintptr_t bss_end; int new_file, old_file, new_file_size; /* Pointers to the base of the image of the two files. */ @@ -591,21 +618,22 @@ /* Pointers to the file, program and section headers for the old and new files. */ - Elf32_Ehdr *old_file_h, *new_file_h; - Elf32_Phdr *old_program_h, *new_program_h; - Elf32_Shdr *old_section_h, *new_section_h; + l_Elf_Ehdr *old_file_h, *new_file_h; + l_Elf_Phdr *old_program_h, *new_program_h; + l_Elf_Shdr *old_section_h, *new_section_h; /* Point to the section name table in the old file. */ char *old_section_names; - Elf32_Addr old_bss_addr, new_bss_addr; - Elf32_Word old_bss_size, new_data2_size; - Elf32_Off new_data2_offset; - Elf32_Addr new_data2_addr; - Elf32_Addr new_offsets_shift; + l_Elf_Addr old_bss_addr, new_bss_addr; + l_Elf_Addr old_base_addr; + l_Elf_Word old_bss_size, new_data2_size; + l_Elf_Off new_data2_offset, new_base_offset; + l_Elf_Addr new_data2_addr; + l_Elf_Addr new_offsets_shift; int n, nn, old_bss_index, old_data_index, new_data2_index; - int old_mdebug_index; + int old_mdebug_index, old_sbss_index; struct stat stat_buf; /* Open the old file & map it into the address space. */ @@ -630,9 +658,9 @@ /* Get pointers to headers & section names. */ - old_file_h = (Elf32_Ehdr *) old_base; - old_program_h = (Elf32_Phdr *) ((byte *) old_base + old_file_h->e_phoff); - old_section_h = (Elf32_Shdr *) ((byte *) old_base + old_file_h->e_shoff); + old_file_h = (l_Elf_Ehdr *) old_base; + old_program_h = (l_Elf_Phdr *) ((byte *) old_base + old_file_h->e_phoff); + old_section_h = (l_Elf_Shdr *) ((byte *) old_base + old_file_h->e_shoff); old_section_names = (char *) old_base + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; @@ -641,6 +669,11 @@ old_mdebug_index = find_section (".mdebug", old_section_names, old_name, old_file_h, old_section_h, 1); + /* Find the .sbss section, if any. */ + + old_sbss_index = find_section (".sbss", old_section_names, + old_name, old_file_h, old_section_h, 1); + /* Find the old .bss section. */ old_bss_index = find_section (".bss", old_section_names, @@ -654,9 +687,10 @@ old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; + old_base_addr = old_sbss_index == -1 ? old_bss_addr : OLD_SECTION_H (old_sbss_index).sh_addr; #if defined(emacs) || !defined(DEBUG) - bss_end = (unsigned int) sbrk (0); - new_bss_addr = (Elf32_Addr) bss_end; + bss_end = (uintptr_t) sbrk (0); + new_bss_addr = (l_Elf_Addr) bss_end; #else new_bss_addr = old_bss_addr + old_bss_size + 0x1234; #endif @@ -664,13 +698,16 @@ new_data2_size = new_bss_addr - old_bss_addr; new_data2_offset = OLD_SECTION_H (old_data_index).sh_offset + (new_data2_addr - OLD_SECTION_H (old_data_index).sh_addr); + new_base_offset = OLD_SECTION_H (old_data_index).sh_offset + + (old_base_addr - OLD_SECTION_H (old_data_index).sh_addr); new_offsets_shift = new_bss_addr - - ((old_bss_addr & ~0xfff) + ((old_bss_addr & 0xfff) ? 0x1000 : 0)); + ((old_base_addr & ~0xfff) + ((old_base_addr & 0xfff) ? 0x1000 : 0)); #ifdef DEBUG fprintf (stderr, "old_bss_index %d\n", old_bss_index); fprintf (stderr, "old_bss_addr %x\n", old_bss_addr); fprintf (stderr, "old_bss_size %x\n", old_bss_size); + fprintf (stderr, "old_base_addr %x\n", old_base_addr); fprintf (stderr, "new_bss_addr %x\n", new_bss_addr); fprintf (stderr, "new_data2_addr %x\n", new_data2_addr); fprintf (stderr, "new_data2_size %x\n", new_data2_size); @@ -702,10 +739,10 @@ if (new_base == (caddr_t) -1) fatal ("Can't mmap (%s): errno %d\n", new_name, errno); - new_file_h = (Elf32_Ehdr *) new_base; - new_program_h = (Elf32_Phdr *) ((byte *) new_base + old_file_h->e_phoff); + new_file_h = (l_Elf_Ehdr *) new_base; + new_program_h = (l_Elf_Phdr *) ((byte *) new_base + old_file_h->e_phoff); new_section_h - = (Elf32_Shdr *) ((byte *) new_base + old_file_h->e_shoff + = (l_Elf_Shdr *) ((byte *) new_base + old_file_h->e_shoff + new_offsets_shift); /* Make our new file, program and section headers as copies of the @@ -747,7 +784,7 @@ /* Supposedly this condition is okay for the SGI. */ #if 0 - if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz > old_bss_addr) + if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz > old_base_addr) fatal ("Program segment above .bss in %s\n", old_name, 0); #endif @@ -755,11 +792,12 @@ && (round_up ((NEW_PROGRAM_H (n)).p_vaddr + (NEW_PROGRAM_H (n)).p_filesz, alignment) - == round_up (old_bss_addr, alignment))) + == round_up (old_base_addr, alignment))) break; } if (n < 0) - fatal ("Couldn't find segment next to .bss in %s\n", old_name, 0); + fatal ("Couldn't find segment next to %s in %s\n", + old_sbss_index == -1 ? ".sbss" : ".bss", old_name, 0); NEW_PROGRAM_H (n).p_filesz += new_offsets_shift; NEW_PROGRAM_H (n).p_memsz = NEW_PROGRAM_H (n).p_filesz; @@ -843,7 +881,7 @@ /* Any section that was original placed AFTER the bss section must now be adjusted by NEW_OFFSETS_SHIFT. */ - if (NEW_SECTION_H (nn).sh_offset >= new_data2_offset) + if (NEW_SECTION_H (nn).sh_offset >= new_base_offset) NEW_SECTION_H (nn).sh_offset += new_offsets_shift; /* If any section hdr refers to the section after the new .data @@ -857,17 +895,26 @@ && NEW_SECTION_H (nn).sh_type != SHT_DYNSYM) PATCH_INDEX (NEW_SECTION_H (nn).sh_info); + /* Fix the type and alignment for the .sbss section */ + if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".sbss")) + { + NEW_SECTION_H (nn).sh_type = SHT_PROGBITS; + NEW_SECTION_H (nn).sh_offset = round_up (NEW_SECTION_H (nn).sh_offset, + NEW_SECTION_H (nn).sh_addralign); + } + /* Now, start to copy the content of sections. */ if (NEW_SECTION_H (nn).sh_type == SHT_NULL || NEW_SECTION_H (nn).sh_type == SHT_NOBITS) continue; - /* Write out the sections. .data and .data1 (and data2, called + /* Write out the sections. .data, .data1 and .sbss (and data2, called ".data" in the strings table) get copied from the current process instead of the old file. */ if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data") || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data1") - || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".got")) + || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".got") + || !strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".sbss")) src = (caddr_t) OLD_SECTION_H (n).sh_addr; else src = old_base + OLD_SECTION_H (n).sh_offset; @@ -932,9 +979,9 @@ if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) { - Elf32_Shdr *spt = &NEW_SECTION_H (nn); + l_Elf_Shdr *spt = &NEW_SECTION_H (nn); unsigned int num = spt->sh_size / spt->sh_entsize; - Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H (nn).sh_offset + l_Elf_Sym * sym = (l_Elf_Sym *) (NEW_SECTION_H (nn).sh_offset + new_base); for (; num--; sym++) {