Annotation of OpenXM_contrib/gnuplot/docs/README, Revision 1.1
1.1 ! maekawa 1: Notes on the gnuplot help files and documentation.
! 2: --------------------------------------------------
! 3:
! 4: Gnuplot documentation is available in three ways:
! 5:
! 6: 1 - interactively, within gnuplot
! 7: 2 - as a printed document.
! 8: 3 - as a manual page, through the Unix man(1) facility
! 9:
! 10: The third form tells how to run gnuplot.
! 11:
! 12: The first two forms describe the inner workings, and contain equivalent
! 13: information. They derive their information from the file "gnuplot.doc",
! 14: which is the master copy of gnuplot help information. All other forms,
! 15: except for the man page "gnuplot.1", are derived from it.
! 16:
! 17: gnuplot.doc -> gnuplot.gih
! 18: -> gnuplot.hlp
! 19: -> gnuplot.html
! 20: -> gnuplot.info
! 21: -> gnuplot.ipf
! 22: -> gnuplot.ms
! 23: -> gnuplot.rnh
! 24: -> gnuplot.rtf
! 25: -> gnuplot.tex
! 26:
! 27: On Unix, AmigaOS, and MSDOS the interactive help is built into the
! 28: program, and uses the file "gnuplot.gih" ('make gih').
! 29:
! 30: On VMS, the interactive help is supplied by the system help facility,
! 31: using the file "gnuplot.hlp". This is built by default, either by
! 32: doc2hlp, or doc2rnh and RUNOFF which format gnuplot.doc for the VMS
! 33: HELP indenting conventions. The help file is placed in a help library,
! 34: "gnuplot.hlb" but it may be also be placed in one of the system-wide
! 35: help libraries, using lib/help ('help lib'). If VMS users prefer the
! 36: gnuplot interactive help facility to the system facility, this can be
! 37: easily changed by not defining NO_GIH.
! 38:
! 39: On the World Wide Web, the gnuplot manual can include demonstration
! 40: plots; the links for these are included in the file "gnuplot.html"
! 41: ('make html').
! 42:
! 43: Under EMACS, interactive help uses the file "gnuplot.info" ('make info').
! 44:
! 45: On OS/2, the Information Presentation Facility Compiler converts the
! 46: file "gnuplot.ipf" to a "gnuplot.inf" file.
! 47:
! 48: The printed document is available in troff/nroff (ms) format, using
! 49: the file "gnuplot.ms". For nroff, use 'make nroff'. For troff, type
! 50: 'make ms' and then 'troff -ms gnuplot.ms' in whatever way you use troff.
! 51: For groff (on linux), use 'groff -t -e -mgs gnuplot.ms'
! 52:
! 53: On MS-Windows, the Microsoft help compiler converts the file "gnuplot.rtf"
! 54: to an 'hlp' file which is used by the standard Windows help program.
! 55:
! 56: The printed document is also available in LaTeX format, using the file
! 57: "gnuplot.tex" ('make tex'). If you use LaTeX on your computer, you can
! 58: type 'make dvi' to create "gnuplot.dvi", and then run your dvi-to-
! 59: PostScript converter to generate "gnuplot.ps".
! 60:
! 61:
! 62: Manual entries for the terminals are not included in "gnuplot.doc";
! 63: instead, each "driver.trm" file (in the directory /term) contains its
! 64: own documentation section. See "term/README" for details.
! 65:
! 66: When you build gnuplot, only some of the terminal drivers are loaded;
! 67: these are selected in "term.h" by compiler directives specified in the
! 68: makefile. The interactive help generators use the same set of compiler
! 69: directives in "term.h", and thus interactive help contains information
! 70: for just those terminals actually loaded.
! 71:
! 72: The printed manual generators and the html generator contain information
! 73: about all terminals. This is accomplished by concatenating all of the
! 74: ".trm" files into a single one, "allterm.h".
! 75:
! 76: The file "termdoc.c" is used by each of the eight processing programs
! 77: ("doc2gih.c", etc.); it #includes either "term.h" or "allterm.h", as is
! 78: appropriate. If you wish to override the default decision about which
! 79: terminals are to appear in the documentation, edit the appropriate target
! 80: in the Makefile and add/remove -DALL_TERM_DOC to/from the compiler flags.
! 81:
! 82:
! 83: Description of the gnuplot.doc format:
! 84: --------------------------------------
! 85:
! 86: Here is an example of the DOC master help format:
! 87:
! 88: ?
! 89: 1 gnuplot
! 90: GNUPLOT is a command-driven interactive function plotting program. It
! 91: ...
! 92: ?exit
! 93: 2 exit
! 94: 'exit', 'quit' and ...
! 95: ?expressions
! 96: 2 expressions
! 97: In general, any mathematical expression accepted by C, ...
! 98:
! 99: Topics:
! 100: functions operators
! 101: ?expressions functions
! 102: ?functions
! 103: 3 functions
! 104: The functions in GNUPLOT are ...
! 105:
! 106: Topics:
! 107: abs acos arg ...
! 108: ?expressions functions abs
! 109: ?functions abs
! 110: ?abs
! 111: 4 abs
! 112: This function returns the absolute value of its argument. The
! 113: returned value is of the same type as the argument.
! 114: ?expressions functions acos
! 115: ?functions acos
! 116: ?acos
! 117: 4 acos
! 118: This function returns the arc cosine (inverse cosine) of its
! 119: argument. 'acos' returns its argument in radians.
! 120:
! 121:
! 122: Some notes about the format:
! 123: ----------------------------
! 124: Remember that all text must be able to be processed by gnuplot, VMS,
! 125: nroff, troff, info, itl, and latex, and always do something reasonable.
! 126: The first column is reserved for control characters.
! 127: Text does not start in the first column.
! 128: Lines that start in column 2 may be typeset by LaTeX.
! 129: Lines that have a space in column 2 are to be printed in a verbatim
! 130: environment by LaTeX.
! 131: Tables must have a space in column 2.
! 132: Do NOT use tabs in the help file.
! 133: Conversion from this format to vax .hlp file involves removal of
! 134: lines starting with [?@#$%] (see doc2hlp). VMS uses the numbers
! 135: to represent a tree.
! 136: Conversion from this format to gnuplot .gih file involves removal of
! 137: lines starting with [0-9@#$%] (see doc2gih). Gnuplot matches your
! 138: help query against the ? lines to find the help information.
! 139: Multiple ? lines for one text block constitute synonyms. The most
! 140: specific should be first, eg 'expressions functions' before 'functions'.
! 141: Spaces are allowed here, but should be single.
! 142: Backquote pairs are converted by the doc2tex program into boldface;
! 143: that is, `some text` is converted to {\bf some text}. Be sure to pair
! 144: the backquotes, or the whole document will be boldface! doc2ms converts
! 145: `` pairs to \fB...\fR, except inside tables : for the moment, this
! 146: has to be done manually on the lines starting %, but we ought to
! 147: find some way to allow tables to be entered just the once !
! 148:
! 149: Control characters in first column:
! 150: ? used by .gih format, for builtin interactive help - keyword
! 151: 0-9 used by VMS help and by doc2{tex,ms} formatters to define level,keyword
! 152: @ used by doc2{tex,ms,rnh} to define table start/end
! 153: # used by doc2tex: table entry
! 154: % used by doc2ms: table entry
! 155: ^ used by doc2html : hypertext link
! 156: < the help from the terminal driver files is inserted at this point.
! 157: C comment (mainly for RCS ID line)
! 158: C# reserved form of comment (used internally by termdoc.c)
! 159:
! 160:
! 161: Tables:
! 162: -------
! 163:
! 164: Here is a sample table:
! 165:
! 166: @start table - first is interactive cleartext form
! 167: Symbol Example Explanation
! 168: ?: a?b:c ternary operation
! 169: #\begin{tabular}{|ccl|} \hline
! 170: #\multicolumn{3}{|c|}{Ternary Operator} \\
! 171: #Symbol & Example & Explanation \\ \hline
! 172: #\verb~?:~ & \verb~a?b:c~ & ternary operation\\
! 173: %c c l .
! 174: %Symbol@Example@Explanation
! 175: %_
! 176: %?:@a?b:c@* ternary operation
! 177:
! 178: @end table
! 179:
! 180: "doc2tex" and "doc2ms" are the formats that do something with tables
! 181: other than copy them verbatim. It is best to bracket a table in a
! 182: "@start table"/"@end table" pair.
! 183:
! 184: Inside the "@start"/"@end" block are three independent sets of commands:
! 185: those that begin with "#" will be processed by "doc2tex" only, those
! 186: that begin with "%" will be processed by "doc2ms" only, and all others
! 187: will be copied verbatim by all other "doc2"s. So the commands may be
! 188: shuffled together, as long as the order of each of the three sets is
! 189: unchanged. That is, the example could be written this way without any
! 190: effect on the result:
! 191:
! 192: @start table - first is interactive cleartext form
! 193: #\begin{tabular}{|ccl|} \hline
! 194: %c c l .
! 195: #\multicolumn{3}{|c|}{Ternary Operator} \\
! 196: %Symbol@Example@Explanation
! 197: Symbol Example Explanation
! 198: #Symbol & Example & Explanation \\ \hline
! 199: %_
! 200: ?: a?b:c ternary operation
! 201: #\verb~?:~ & \verb~a?b:c~ & ternary operation\\
! 202: %?:@a?b:c@* ternary operation
! 203:
! 204: @end table
! 205:
! 206: In LaTeX, the command "\begin{tabular}{|ccl|} \hline" creates a
! 207: three-column table having the first two columns centered, the third column
! 208: left-justified, a vertical line at each side, and a horizontal line drawn
! 209: first. Thus the table will be enclosed in a box ("doc2tex" provides the
! 210: closing "\hline"). A double-backslash is a line skip. In the table
! 211: entries themselves, the ampersand is the column separator. If any LaTeX
! 212: special characters are in the table, they must be written within "\verb"
! 213: constructs, as is the case with the question mark in the example.
! 214:
! 215: In nroff, the command "c c l ." creates a three-column table justified
! 216: the same way as the LaTeX table discussed above. The ampersand is the
! 217: column separator.
! 218:
! 219:
! 220: Rules for stylistic consistency (courtesy Jens Emmerich):
! 221: ---------------------------------------------------------
! 222:
! 223: 0. General
! 224:
! 225: * Use your brain -- the reader has one, too (at least in theory).
! 226:
! 227: * Format according to the logical structure, not according to
! 228: visual charm.
! 229:
! 230: * Keep things short. Don't split lines without a good reason. Many
! 231: people still use 24 line terminals/screens. Backslashify lines
! 232: only in code examples.
! 233:
! 234:
! 235: 1. Verbatim lines: start column and line length
! 236:
! 237: * Verbatim text starts in column 8 (7 spaces before the text). The
! 238: reason is that "Syntax:" is 7 and "Examples:" is 9 characters
! 239: wide. Adding the space in column 1 we have 1 resp. 3 characters
! 240: "overlap" in the online text versions, which is still easy to
! 241: read as all commands are at least 3 characters long. This does
! 242: not apply to the "interactive clear text form"-tables.
! 243:
! 244: * The rightmost used column is column 73 (counting from 1). This
! 245: allows LaTeX formatted documents with only slightly wider text
! 246: than default, which adds to readability.
! 247:
! 248: 2. Line spacing
! 249:
! 250: * An empty line goes before "Syntax:" and "Example:", but not after
! 251: them. Without these keywords, add an empty line before verbatim
! 252: lines if they are not embedded in a sentence.
! 253:
! 254: * Leave blank lines within verbatim environments only if it is
! 255: really needed for clarity.
! 256:
! 257: * Verbatim environments are separated from the following text by a
! 258: blank line, but not if they are embedded in a sentence.
! 259:
! 260: * Short explanations within examples can be embedded within
! 261: comments if they are really short, otherwise use "normal" text
! 262: (beginning at column 2) and leave no blank lines between the text
! 263: and the example.
! 264:
! 265: 3. Spaces around braces
! 266:
! 267: * In general don't put a space after an opening "{" or before a
! 268: closing brace "}". This makes everything wider and harder to
! 269: spot.
! 270:
! 271: * Do insert a space in the following situations:
! 272:
! 273: - where it adds clarity to nesting levels >=3 of braces; usually
! 274: only one brace for the outermost brace on a particular line
! 275: (see 'set grid')
! 276:
! 277: - on multiple line optional constructs (see 'set xtics')
! 278:
! 279: * Separate multiple optional constructs by a space.
! 280:
! 281: * Don't separate them if they belong together. (see 'set title')
! 282:
! 283: * Do separate them if they belong together but require a space in
! 284: between (see 'set ticscale').
! 285:
! 286: * Part of these rules are really a consequence of gnuplot's
! 287: inconsistent syntax.
! 288:
! 289: 4. Placing and spaces around "|"
! 290:
! 291: * Place a space before and after the "|". Otherwise the
! 292: alternatives tend to optically 'melt' and they are harder to
! 293: read.
! 294:
! 295: * Keep or-expressions on one line, if possible.
! 296:
! 297: * On multi-line expressions place the "|" at the beginning of the
! 298: next line rather than the end of the first. This makes it easier
! 299: to see that the expression continues. Align the first components;
! 300: this requires indenting the first line a bit further (see 'set
! 301: cntrparam').
! 302:
! 303: 5. Comma-separated optional argument lists
! 304:
! 305: * Place the space before the opening brace rather within the braces
! 306: after the comma (as one normally does) (see 'set isosamples').
! 307:
! 308:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>