Initial release of Maemo 5 port of gnuplot
[gnuplot] / docs / README
diff --git a/docs/README b/docs/README
new file mode 100644 (file)
index 0000000..8236aab
--- /dev/null
@@ -0,0 +1,309 @@
+Notes on the gnuplot help files and documentation.
+--------------------------------------------------
+
+Gnuplot documentation is available in three ways:
+
+1 - interactively, within gnuplot
+2 - as a printed document. 
+3 - as a manual page, through the Unix man(1) facility
+
+The third form tells how to run gnuplot.
+
+The first two forms describe the inner workings, and contain equivalent
+information.  They derive their information from the file "gnuplot.doc",
+which is the master copy of gnuplot help information.  All other forms,
+except for the man page "gnuplot.1", are derived from it. 
+
+gnuplot.doc -> gnuplot.gih 
+            -> gnuplot.hlp
+            -> gnuplot.html
+            -> gnuplot.info
+            -> gnuplot.ipf
+            -> gnuplot.ms
+            -> gnuplot.rnh
+            -> gnuplot.rtf
+            -> gnuplot.tex
+                                               
+On Unix, AmigaOS, and MSDOS the interactive help is built into the
+program, and uses the file "gnuplot.gih" ('make gih').
+
+On VMS, the interactive help is supplied by the system help facility,
+using the file "gnuplot.hlp".  This is built by default, either by 
+doc2hlp, or doc2rnh and RUNOFF which format gnuplot.doc for the VMS
+HELP indenting conventions.  The help file is placed in a help library, 
+"gnuplot.hlb" but it may be also be placed in one of the system-wide 
+help libraries, using lib/help ('help lib').  If VMS users prefer the 
+gnuplot interactive help facility to the system facility, this can be 
+easily changed by not defining NO_GIH.
+
+On the World Wide Web, the gnuplot manual can include demonstration
+plots; the links for these are included in the file "gnuplot.html"
+('make html').
+
+Under EMACS, interactive help uses the file "gnuplot.info" ('make info').
+
+On OS/2, the Information Presentation Facility Compiler converts the
+file "gnuplot.ipf" to a "gnuplot.inf" file.
+
+The printed document is available in troff/nroff (ms) format, using
+the file "gnuplot.ms".  For nroff, use 'make nroff'. For troff, type
+'make ms' and then 'troff -ms gnuplot.ms' in whatever way you use troff.
+For groff (on linux), use  'groff -t -e -mgs gnuplot.ms'
+
+On MS-Windows, the Microsoft help compiler converts the file "gnuplot.rtf"
+to an 'hlp' file which is used by the standard Windows help program.
+
+The printed document is also available in LaTeX format, using the file
+"gnuplot.tex" ('make tex').  If you use LaTeX on your computer, you can
+type 'make dvi' to create "gnuplot.dvi", and then run your dvi-to-
+PostScript converter to generate "gnuplot.ps".
+
+
+Manual entries for the terminals are not included in "gnuplot.doc";
+instead, each "driver.trm" file (in the directory /term) contains its
+own documentation section.  See "term/README" for details.
+
+When you build gnuplot, only some of the terminal drivers are loaded;
+these are selected in "term.h" by compiler directives specified in the
+makefile.  The interactive help generators use the same set of compiler
+directives in "term.h", and thus interactive help contains information
+for just those terminals actually loaded.
+
+The printed manual generators and the html generator contain information
+about all terminals.  This is accomplished by concatenating all of the
+".trm" files into a single one, "allterm.h".
+
+The file "termdoc.c" is used by each of the eight processing programs
+("doc2gih.c", etc.); it #includes either "term.h" or "allterm.h", as is
+appropriate.  If you wish to override the default decision about which
+terminals are to appear in the documentation, edit the appropriate target
+in the Makefile and add/remove -DALL_TERM_DOC to/from the compiler flags.
+
+
+Description of the gnuplot.doc format:
+--------------------------------------
+
+Here is an example of the DOC master help format:
+
+?
+1 gnuplot
+ GNUPLOT is a command-driven interactive function plotting program.  It
+ ...
+?exit
+2 exit
+ 'exit', 'quit' and ...
+?expressions
+2 expressions
+ In general, any mathematical expression accepted by C, ...
+
+ Topics:
+ functions operators
+?expressions functions
+?functions
+3 functions
+ The functions in GNUPLOT are ...
+
+ Topics:
+ abs acos arg ...
+?expressions functions abs
+?functions abs
+?abs
+4 abs
+ This function returns the absolute value of its argument.  The
+ returned value is of the same type as the argument. 
+?expressions functions acos
+?functions acos
+?acos
+4 acos
+ This function returns the arc cosine (inverse cosine) of its
+ argument.  'acos' returns its argument in radians. 
+
+
+Some notes about the format:
+----------------------------
+Remember that all text must be able to be processed by gnuplot, VMS,
+ nroff, troff, info, itl, and latex, and always do something reasonable. 
+The first column is reserved for control characters.
+Text does not start in the first column.
+Lines that start in column 2 may be typeset by LaTeX.
+Lines that have a space in column 2 are to be printed in a verbatim
+ environment by LaTeX.
+Tables must have a space in column 2.
+Do NOT use tabs in the help file.
+Conversion from this format to vax .hlp file involves removal of
+ lines starting with [?@#$%] (see doc2hlp). VMS uses the numbers
+ to represent a tree. 
+Conversion from this format to gnuplot .gih file involves removal of
+ lines starting with [0-9@#$%] (see doc2gih). Gnuplot matches your
+ help query against the ? lines to find the help information.
+ Multiple ? lines for one text block constitute synonyms. The most
+ specific should be first, eg 'expressions functions' before 'functions'.
+ Spaces are allowed here, but should be single.
+Backquote pairs are converted by the doc2tex program into boldface;
+ that is, `some text` is converted to {\bf some text}. Be sure to pair
+ the backquotes, or the whole document will be boldface! doc2ms converts
+ `` pairs to \fB...\fR, except inside tables : for the moment, this
+ has to be done manually on the lines starting %, but we ought to
+ find some way to allow tables to be entered just the once !
+
+Control characters in first column:
+?    used by .gih format, for builtin interactive help - keyword
+0-9  used by VMS help and by doc2{tex,ms} formatters to define level,keyword
+@    used by doc2{tex,ms,rnh} to define table start/end
+#    used by doc2tex: table entry
+=    used by doc2tex: index entry
+%    used by doc2ms: table entry
+^    used by doc2html : hypertext link
+<    the help from the terminal driver files is inserted at this point.
+C    comment (mainly for RCS ID line)
+C#   reserved form of comment (used internally by termdoc.c)
+
+
+Tables:
+-------
+
+Here is a sample table:
+
+@start table - first is interactive cleartext form
+     Symbol       Example      Explanation
+       ?:          a?b:c     ternary operation
+#\begin{tabular}{|ccl|} \hline
+#\multicolumn{3}{|c|}{Ternary Operator} \\
+#Symbol & Example & Explanation \\ \hline
+#\verb~?:~ & \verb~a?b:c~ & ternary operation\\
+%c c l .
+%Symbol@Example@Explanation
+%_
+%?:@a?b:c@* ternary operation
+
+@end table
+
+"doc2tex" and "doc2ms" are the formats that do something with tables
+other than copy them verbatim.  It is best to bracket a table in a
+"@start table"/"@end table" pair.
+
+Inside the "@start"/"@end" block are three independent sets of commands:
+those that begin with "#" will be processed by "doc2tex" only, those
+that begin with "%" will be processed by "doc2ms" only, and all others
+will be copied verbatim by all other "doc2"s.  So the commands may be
+shuffled together, as long as the order of each of the three sets is
+unchanged.  That is, the example could be written this way without any
+effect on the result:
+
+@start table - first is interactive cleartext form
+#\begin{tabular}{|ccl|} \hline
+%c c l .
+#\multicolumn{3}{|c|}{Ternary Operator} \\
+%Symbol@Example@Explanation
+     Symbol       Example      Explanation
+#Symbol & Example & Explanation \\ \hline
+%_
+       ?:          a?b:c     ternary operation
+#\verb~?:~ & \verb~a?b:c~ & ternary operation\\
+%?:@a?b:c@* ternary operation
+
+@end table
+
+In LaTeX, the command "\begin{tabular}{|ccl|} \hline" creates a
+three-column table having the first two columns centered, the third column
+left-justified, a vertical line at each side, and a horizontal line drawn
+first.  Thus the table will be enclosed in a box ("doc2tex" provides the
+closing "\hline").  A double-backslash is a line skip.  In the table
+entries themselves, the ampersand is the column separator.  If any LaTeX
+special characters are in the table, they must be written within "\verb"
+constructs, as is the case with the question mark in the example.
+
+In nroff, the command "c c l ." creates a three-column table justified
+the same way as the LaTeX table discussed above.  The ampersand is the
+column separator.
+
+
+Rules for stylistic consistency (courtesy Jens Emmerich):
+---------------------------------------------------------
+
+0. General
+
+   * Use your brain -- the reader has one, too (at least in theory).
+
+   * Format according to the logical structure, not according to
+     visual charm.
+
+   * Keep things short.  Don't split lines without a good reason.  Many
+     people still use 24 line terminals/screens.  Backslashify lines
+     only in code examples.
+
+
+1. Verbatim lines: start column and line length 
+
+   * Verbatim text starts in column 8 (7 spaces before the text).  The
+     reason is that "Syntax:" is 7 and "Examples:" is 9 characters
+     wide.  Adding the space in column 1 we have 1 resp. 3 characters
+     "overlap" in the online text versions, which is still easy to
+     read as all commands are at least 3 characters long.  This does
+     not apply to the "interactive clear text form"-tables.
+
+   * The rightmost used column is column 73 (counting from 1).  This
+     allows LaTeX formatted documents with only slightly wider text
+     than default, which adds to readability.
+
+2. Line spacing
+
+   * An empty line goes before "Syntax:" and "Example:", but not after
+     them.  Without these keywords, add an empty line before verbatim
+     lines if they are not embedded in a sentence.
+
+   * Leave blank lines within verbatim environments only if it is
+     really needed for clarity.
+
+   * Verbatim environments are separated from the following text by a
+     blank line, but not if they are embedded in a sentence.
+
+   * Short explanations within examples can be embedded within
+     comments if they are really short, otherwise use "normal" text
+     (beginning at column 2) and leave no blank lines between the text
+     and the example.
+
+3. Spaces around braces 
+
+   * In general don't put a space after an opening "{" or before a
+     closing brace "}".  This makes everything wider and harder to
+     spot.
+
+   * Do insert a space in the following situations:
+     
+     - where it adds clarity to nesting levels >=3 of braces; usually
+       only one brace for the outermost brace on a particular line 
+       (see 'set grid')
+     
+     - on multiple line optional constructs (see 'set xtics')
+
+   * Separate multiple optional constructs by a space.
+
+   * Don't separate them if they belong together. (see 'set title')
+
+   * Do separate them if they belong together but require a space in
+     between (see 'set ticscale').
+
+   * Part of these rules are really a consequence of gnuplot's
+     inconsistent syntax.
+
+4. Placing and spaces around "|"
+
+   * Place a space before and after the "|".  Otherwise the
+     alternatives tend to optically 'melt' and they are harder to
+     read. 
+
+   * Keep or-expressions on one line, if possible.
+
+   * On multi-line expressions place the "|" at the beginning of the
+     next line rather than the end of the first.  This makes it easier
+     to see that the expression continues.  Align the first components;
+     this requires indenting the first line a bit further (see 'set
+     cntrparam').
+5. Comma-separated optional argument lists
+
+   * Place the space before the opening brace rather within the braces
+     after the comma (as one normally does) (see 'set isosamples').
+
+