Initial release of Maemo 5 port of gnuplot
[gnuplot] / docs / gnuplot.texi
diff --git a/docs/gnuplot.texi b/docs/gnuplot.texi
new file mode 100644 (file)
index 0000000..84f8399
--- /dev/null
@@ -0,0 +1,19987 @@
+\input texinfo   @c -*-texinfo-*-
+
+@c %**start of header
+@setfilename gnuplot.info
+@settitle Gnuplot: An Interactive Plotting Program
+@setchapternewpage odd
+@c %**end of header
+
+@c define the command and options indeces
+@defindex cm
+@defindex op
+@defindex tm
+
+@dircategory Math
+@direntry
+* GNUPLOT: (gnuplot).             An Interactive Plotting Program
+@end direntry
+
+@ifnottex
+@node Top, gnuplot, (dir), (dir)
+@top Master Menu
+@end ifnottex
+
+@example
+                       GNUPLOT
+
+            An Interactive Plotting Program
+             Thomas Williams & Colin Kelley
+          Version 4.2 organized by: Hans-Bernhard Broeker
+
+ Copyright (C) 1986 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
+
+       Mailing list for comments: gnuplot-info@@lists.sourceforge.net
+     Mailing list for bug reports: gnuplot-bugs@@lists.sourceforge.net
+
+         This manual was originally prepared by Dick Crawford
+                   Version 4.2 - 1 Oct 2006
+
+
+Major contributors (alphabetic order):
+@end example
+
+@c ^ <h2> An Interactive Plotting Program </h2><p>
+@c ^ <h2>  Thomas Williams & Colin Kelley</h2><p>
+@c ^ <h2>  Version 4.2 organized by Hans-Bernhard Broeker and others</h2><p>
+@c ^ <h2>Major contributors (alphabetic order):</h2>
+
+@itemize @bullet
+@item
+Hans-Bernhard Broeker
+@item
+John Campbell
+@item
+Robert Cunningham
+@item
+David Denholm
+@item
+Gershon Elber
+@item
+Roger Fearick
+@item
+Carsten Grammes
+@item
+Lucas Hart
+@item
+Lars Hecking
+@item
+Thomas Koenig
+@item
+David Kotz
+@item
+Ed Kubaitis
+@item
+Russell Lang
+@item
+Alexander Lehmann
+@item
+Alexander Mai
+@item
+Ethan A Merritt
+@item
+Petr Mikulik
+@item
+Carsten Steger
+@item
+Tom Tkacik
+@item
+Jos Van der Woude
+@item
+Alex Woo
+@item
+James R. Van Zandt
+@item
+Johannes Zellner
+@end itemize
+
+@c ^<h2>  Copyright (C) 1986 - 1993, 1998 - 2004   Thomas Williams, Colin Kelley<p>
+@c ^   Mailing list for comments: gnuplot-info@@lists.sourceforge.net <p>
+@c ^   Mailing list for bug reports: gnuplot-bugs@@lists.sourceforge.net <p>
+@c ^</h2><p>
+@c ^<h3> This manual was prepared by Dick Crawford</h3><p>
+@c ^<h3> Last revised: February 2007</h3><p>
+@c ^<hr>
+
+@menu
+* gnuplot::                     
+* Commands::                    
+* Terminal_types::              
+* Graphical_User_Interfaces::   
+* Bugs::                        
+* Concept_Index::               
+* Command_Index::               
+* Options_Index::               
+* Function_Index::              
+* Terminal_Index::              
+@end menu
+
+@node gnuplot, Commands, Top, Top
+@chapter gnuplot
+
+
+@menu
+* Copyright::                   
+* Introduction::                
+* Seeking-assistance::          
+* New_features_introduced_in_version_4.2::  
+* Backwards_compatibility::     
+* Features_introduced_in_version_4.0::  
+* Batch/Interactive_Operation::  
+* Command-line-editing::        
+* Comments::                    
+* Coordinates::                 
+* Datastrings::                 
+* Environment::                 
+* Expressions::                 
+* Glossary::                    
+* linetype::                    
+* mouse_input::                 
+* Plotting::                    
+* Start-up::                    
+* String_constants_and_string_variables::  
+* Substitution_and_Command_line_macros::  
+* Syntax::                      
+* Time/Date_data::              
+@end menu
+
+@node Copyright, Introduction, gnuplot, gnuplot
+@section Copyright
+
+@cindex copyright
+
+@cindex license
+
+@example
+    Copyright (C) 1986 - 1993, 1998, 2004, 2007  Thomas Williams, Colin Kelley
+
+@end example
+
+Permission to use, copy, and distribute this software and its
+documentation for any purpose with or without fee is hereby granted,
+provided that the above copyright notice appear in all copies and
+that both that copyright notice and this permission notice appear
+in supporting documentation.
+
+Permission to modify the software is granted, but not the right to
+distribute the complete modified source code.  Modifications are to
+be distributed as patches to the released version.  Permission to
+distribute binaries produced by compiling modified sources is granted,
+provided you
+@example
+  1. distribute the corresponding source modifications from the
+   released version in the form of a patch file along with the binaries,
+  2. add special version identification to distinguish your version
+   in addition to the base release version number,
+  3. provide your name and address as the primary contact for the
+   support of your modified version, and
+  4. retain our contact information in regard to use of the base
+   software.
+@end example
+
+Permission to distribute the released version of the source code along
+with corresponding source modifications in the form of a patch file is
+granted with same provisions 2 through 4 for binary distributions.
+
+This software is provided "as is" without express or implied warranty
+to the extent permitted by applicable law.
+
+
+@example
+      AUTHORS
+
+@end example
+
+@example
+      Original Software:
+         Thomas Williams,  Colin Kelley.
+
+@end example
+
+@example
+      Gnuplot 2.0 additions:
+         Russell Lang, Dave Kotz, John Campbell.
+
+@end example
+
+@example
+      Gnuplot 3.0 additions:
+         Gershon Elber and many others.
+
+@end example
+
+@example
+      Gnuplot 4.0 additions:
+         See list of contributors at head of this document.
+
+@end example
+
+@node Introduction, Seeking-assistance, Copyright, gnuplot
+@section Introduction
+
+@cindex introduction
+
+@c ?
+`gnuplot` is a command-driven interactive function and data plotting program.
+
+Any command-line arguments are assumed to be names of files containing
+`gnuplot` commands, with the exception of standard X11 arguments, which are
+processed first.  Each file is loaded with the `load` command, in the order
+specified.  `gnuplot` exits after the last file is processed.  The special
+filename "-" is used to denote standard input.  When no load files are named,
+`gnuplot` enters into an interactive mode.  See help for `batch/interactive`
+for more details.
+
+`gnuplot` is case sensitive (commands and function names written in lowercase
+are not the same as those written in CAPS).  All command names may be
+abbreviated as long as the abbreviation is not ambiguous.  Any number of
+commands may appear on a line (with the exception that `load` or @ref{call} must
+be the final command), separated by semicolons (;).  Strings are indicated
+with quotes.  They may be either single or double quotation marks, e.g.,
+
+@example
+      load "filename"
+      cd 'dir'
+
+@end example
+
+although there are some subtle differences (see `syntax` for more details).
+
+Many `gnuplot` commands have multiple options. Version 4 is less sensitive
+to the order of these options than earlier versions, but some order-dependence
+remains. If you see error messages about unrecognized options, please try
+again using the exact order listed in the documentation.
+
+Commands may extend over several input lines by ending each line but the last
+with a backslash (\).  The backslash must be the _last_ character on each
+line.  The effect is as if the backslash and newline were not there.  That
+is, no white space is implied, nor is a comment terminated.  Therefore,
+commenting out a continued line comments out the entire command
+(see `comments`).  But note that if an error occurs somewhere on a multi-line
+command, the parser may not be able to locate precisely where the error is
+and in that case will not necessarily point to the correct line.
+
+In this document, curly braces (@{@}) denote optional arguments and a vertical
+bar (|) separates mutually exclusive choices.  `gnuplot` keywords or @ref{help}
+topics are indicated by backquotes or `boldface` (where available).  Angle
+brackets (<>) are used to mark replaceable tokens.  In many cases, a default
+value of the token will be taken for optional arguments if the token is
+omitted, but these cases are not always denoted with braces around the angle
+brackets.
+
+For on-line help on any topic, type @ref{help} followed by the name of the topic
+or just @ref{help} or `?` to get a menu of available topics.
+
+The new `gnuplot` user should begin by reading about `plotting` (if on-line,
+type `help plotting`).
+
+See the simple.dem demo, also available together with other demos on the web page
+@uref{http://www.gnuplot.info/demo/simple.html,http://www.gnuplot.info/demo/simple.html
+}
+
+@node Seeking-assistance, New_features_introduced_in_version_4.2, Introduction, gnuplot
+@section Seeking-assistance
+
+@c ^ <a name="Seeking-assistance"></a>
+@cindex help-desk
+
+@cindex seeking-assistance
+
+There is a mailing list for `gnuplot` users.  Note, however, that the
+newsgroup
+@example
+      comp.graphics.apps.gnuplot
+@end example
+
+is identical to the mailing list (they both carry the same set of messages).
+We prefer that you read the messages through the newsgroup rather than
+subscribing to the mailing list.  Instructions for subscribing to gnuplot
+mailing lists may be found via the gnuplot development website on SourceForge
+@uref{http://sourceforge.net/projects/gnuplot,http://sourceforge.net/projects/gnuplot
+}
+
+The address for mailing to list members is:
+@example
+      gnuplot-info@@lists.sourceforge.net
+
+@end example
+
+Bug reports and code contributions should be mailed to:
+@example
+      gnuplot-bugs@@lists.sourceforge.net
+
+@end example
+
+The list of those interested in beta-test versions is:
+@example
+      gnuplot-beta@@lists.sourceforge.net
+
+@end example
+
+There is also the canonical (if occasionally out-of-date) gnuplot web page at
+
+@uref{http://www.gnuplot.info,http://www.gnuplot.info
+}
+
+Before seeking help, please check the
+
+@uref{http://www.gnuplot.info/faq/,FAQ (Frequently Asked Questions) list.
+}
+
+When posting a question, please include full details of the version of
+`gnuplot`, the machine, and operating system you are using.  A _small_ script
+demonstrating the problem may be useful.  Function plots are preferable to
+datafile plots.  If email-ing to gnuplot-info, please state whether or not
+you are subscribed to the list, so that users who use news will know to email
+a reply to you.  There is a form for such postings on the WWW site.
+
+
+@node New_features_introduced_in_version_4.2, Backwards_compatibility, Seeking-assistance, gnuplot
+@section New features introduced in version 4.2
+
+@cindex new-features
+
+@c ?version 4.2 features
+Gnuplot version 4.2 offers many new features introduced since the preceding
+official version 4.0. This section lists major additions and gives a partial
+list of changes and minor new features. For a more exhaustive list, see the
+NEWS file.
+
+
+@menu
+* New_plot_styles::             
+* Input_from_binary_data_files::  
+* New_plot_elements::           
+* String_handling::             
+* Macros::                      
+* Auto-layout_of_multiple_plots_on_a_page::  
+* Internal_variables::          
+* New_or_revised_terminal_drivers::  
+* Canvas_size::                 
+@end menu
+
+@node New_plot_styles, Input_from_binary_data_files, New_features_introduced_in_version_4.2, New_features_introduced_in_version_4.2
+@subsection New plot styles
+
+
+
+@menu
+* Histogram::                   
+* Label_plots::                 
+* Image_data::                  
+* Filled_curves::               
+* Vectors::                     
+@end menu
+
+@node Histogram, Label_plots, New_plot_styles, New_plot_styles
+@subsubsection Histogram
+
+Histograms, or bar charts, can be produced.
+See `histograms`.
+
+
+@node Label_plots, Image_data, Histogram, New_plot_styles
+@subsubsection Label plots
+
+In coordination with the new `datastrings` feature described below, gnuplot
+can draw a label at each vertex of a curve.
+See `labels`.
+
+
+@node Image_data, Filled_curves, Label_plots, New_plot_styles
+@subsubsection Image data
+
+The `image` and `rgbimage` styles allow to plot 2D images (from ascii or
+`binary` files) and map them in a 2D or 3D plot.
+See `image` and `rgbimage`.
+
+
+@node Filled_curves, Vectors, Image_data, New_plot_styles
+@subsubsection Filled curves
+
+The plot style `fillstyle` has been augmented to allow to fill the area
+between two input curves with a color or a pattern.
+See `filledcurves`.
+
+
+@node Vectors,  , Filled_curves, New_plot_styles
+@subsubsection Vectors
+
+Gnuplot can draw plots with vectors with a small arrowhead, requiring four or
+six columns of data for 2D or 3D, respectively.
+See `vectors`.
+
+
+@node Input_from_binary_data_files, New_plot_elements, New_plot_styles, New_features_introduced_in_version_4.2
+@subsection Input from binary data files
+
+Gnuplot can now read a generic `binary` input, including matrix binary and
+`general binary` (until now gnuplot supported only its own `binary matrix`
+format). Several matrix file formats are autodetected (`gpbin`, `edf`, `avs`).
+Binary data files are mainly useful for `image` and `rgbimage` drawings.
+See `binary` and `binary general filetype`.
+
+
+@node New_plot_elements, String_handling, Input_from_binary_data_files, New_features_introduced_in_version_4.2
+@subsection New plot elements
+
+
+
+@menu
+* RGB_colors::                  
+* Arbitrary_rectangles::        
+@end menu
+
+@node RGB_colors, Arbitrary_rectangles, New_plot_elements, New_plot_elements
+@subsubsection RGB colors
+
+Explicit RGB colors can be specified for all plot elements instead of
+specifying a predefined linetype.
+See @ref{colorspec}.
+
+
+@node Arbitrary_rectangles,  , RGB_colors, New_plot_elements
+@subsubsection Arbitrary rectangles
+
+You can place rectangles with desired fill style and border anywhere in a 2D
+plot.
+See `set object rectangle`.
+
+
+@node String_handling, Macros, New_plot_elements, New_features_introduced_in_version_4.2
+@subsection String handling
+
+
+@menu
+* String_and_text_data_read_from_datafiles::  
+* User-defined_string_variables::  
+@end menu
+
+@node String_and_text_data_read_from_datafiles, User-defined_string_variables, String_handling, String_handling
+@subsubsection String and text data read from datafiles
+
+Gnuplot can now read and process text fields in datafiles.
+See `datastrings`.
+
+@node User-defined_string_variables,  , String_and_text_data_read_from_datafiles, String_handling
+@subsubsection User-defined string variables, operators, and functions
+
+String variables and string functions are introduced. Most gnuplot commands
+that previously required a string constant will now also accept a string
+variable, a string expression, or a function that returns a string.
+See @ref{variables}.
+
+
+@node Macros, Auto-layout_of_multiple_plots_on_a_page, String_handling, New_features_introduced_in_version_4.2
+@subsection Macros
+
+Gnuplot supports command line macro expansion  by '@@stringvariablename'.
+See @ref{macros}.
+
+
+@node Auto-layout_of_multiple_plots_on_a_page, Internal_variables, Macros, New_features_introduced_in_version_4.2
+@subsection Auto-layout of multiple plots on a page
+
+The @ref{multiplot} mode is now able to layout automatically simple
+multiplots without having to set the size or the position for each plot.
+See @ref{multiplot}.
+
+
+@node Internal_variables, New_or_revised_terminal_drivers, Auto-layout_of_multiple_plots_on_a_page, New_features_introduced_in_version_4.2
+@subsection Internal variables
+
+Gnuplot now exports several "read-only" variables such as GPVAL_TERM,
+GPVAL_X_MIN, etc.
+See @ref{variables}.
+
+
+@node New_or_revised_terminal_drivers, Canvas_size, Internal_variables, New_features_introduced_in_version_4.2
+@subsection New or revised terminal drivers
+
+
+@menu
+* `wxt`::                       
+* `emf`::                       
+* `gif`::                       
+* @ref{postscript}::            
+* `ai`::                        
+* `epslatex`::                  
+* `windows`::                   
+@end menu
+
+@node `wxt`, `emf`, New_or_revised_terminal_drivers, New_or_revised_terminal_drivers
+@subsubsection `wxt`
+
+The `wxt` terminal is an interactive and cross-platform terminal for on-screen
+rendering. It uses the wxWidgets library for its user interface, and Cairo
+associated with Pango for the actual rendering, providing nice plots with
+antialiasing on lines and text. The terminal supports the full range of
+gnuplot capabilities, including mousing, pm3d plots, image plots and
+enhanced text.
+
+@node `emf`, `gif`, `wxt`, New_or_revised_terminal_drivers
+@subsubsection `emf`
+
+The `emf` terminal generates an Enhanced Metafile Format file. This file
+format is the metafile standard on MS Win32 Systems. The emf terminal
+supports pm3d, rgb color, and image plot modes.
+
+@node `gif`, @ref{postscript}, `emf`, New_or_revised_terminal_drivers
+@subsubsection `gif`, `jpeg`, `png`
+
+The code for the terminals using the `gd` library has been consolidated.
+The `gif` terminal also knows how to produce an animated gif from a sequence
+of plots.
+
+@node @ref{postscript}, `ai`, `gif`, New_or_revised_terminal_drivers
+@subsubsection @ref{postscript}
+
+The @ref{postscript} terminal can load prologue files, which can contain
+additional user-defined sections with, for example, character encodings.
+See `postscript prologue`.
+
+@node `ai`, `epslatex`, @ref{postscript}, New_or_revised_terminal_drivers
+@subsubsection `ai`
+
+The Adobe Illustrator `ai` driver is outdated. Since Adobe Illustrator
+understands PostScript files, `set terminal post level1 ...` should be used
+instead.
+
+@node `epslatex`, `windows`, `ai`, New_or_revised_terminal_drivers
+@subsubsection `epslatex`, `pslatex`, `pstex`
+
+The terminals supporting an output to latex augmented by PostScript commands
+have been consolidated. Many options are the same as in the @ref{postscript}
+terminal.
+
+@node `windows`,  , `epslatex`, New_or_revised_terminal_drivers
+@subsubsection `windows`
+
+The `windows` terminal now supports the `enhanced text` mode.
+
+
+@node Canvas_size,  , New_or_revised_terminal_drivers, New_features_introduced_in_version_4.2
+@subsection Canvas size
+
+@c ?canvas size
+@cindex canvas
+
+@c ?set term size
+
+In earlier versions of gnuplot, some terminal types used the values from
+@ref{size} to control also the size of the output canvas; others did not.
+The use of 'set size' for this purpose was deprecated in version 4.2.
+In version 4.3 almost all terminals now behave as follows:
+
+`set term <terminal_type> size <XX>, <YY>` controls the size of the output
+file, or "canvas". Please see individual terminal documentation for allowed
+values of the size parameters.  By default, the plot will fill this canvas.
+
+`set size <XX>, <YY>` scales the plot itself relative to the size of the
+canvas.  Scale values less than 1 will cause the plot to not fill the entire
+canvas.  Scale values larger than 1 will cause only a portion of the plot to
+fit on the canvas.  Please be aware that setting scale values larger than 1
+may cause problems on some terminal types.
+
+The major exception to this convention is the PostScript driver, which
+by default continues to act as it has in earlier versions. Be warned that
+the next version of gnuplot may change the default behaviour of the
+PostScript driver as well.
+
+Example:
+
+@example
+      set size 0.5, 0.5
+      set term png size 600, 400
+      set output "figure.png"
+      plot "data" with lines
+
+@end example
+
+These commands will produce an output file "figure.png" that is 600 pixels
+wide and 400 pixels tall. The plot will fill the lower left quarter of this
+canvas.  This is consistent with the way multiplot mode has always worked,
+however it is a change in the way the png driver worked for single plots in
+version 4.0.
+
+
+@node Backwards_compatibility, Features_introduced_in_version_4.0, New_features_introduced_in_version_4.2, gnuplot
+@section Backwards compatibility
+
+@c ?backwards compatibility
+@cindex compatibility
+
+Gnuplot version 4.0 deprecated certain syntax used in earlier versions, but
+continued to recognize it.  This is now under the control of a configuration
+option, and can be disabled as follows:
+
+@example
+      ./configure --disable-backwards-compatibility
+
+@end example
+
+Notice: Deprecated syntax items may be disabled permanently in some future
+version of gnuplot.
+
+One major difference is the introduction of keywords to disambiguate complex
+commands, particularly commands containing string variables. A notable issue
+was the use of bare numbers to specify offsets, line and point types.
+Illustrative examples:
+
+Deprecated:
+@example
+      set title "Old" 0,-1
+      set data linespoints
+      plot 1 2 4               # horizontal line at y=1
+@end example
+
+New:
+@example
+      TITLE = "New"
+      set title TITLE offset char 0, char -1
+      set style data linespoints
+      plot 1 linetype 2 pointtype 4
+
+@end example
+
+Another compatibility issue is the effect of the command @ref{size} outside
+when not in multiplot mode.  In earlier versions, the command
+`set size <xx>, <yy>` caused some terminals to change both the size of the plot
+and the size of the canvas is was drawn on; other terminatls changed only the
+plot size.  The use of @ref{size} to change the canvas size is now deprecated.
+
+Please see @ref{size}, @ref{size} and also the documentation for
+individual terminals.
+
+
+@node Features_introduced_in_version_4.0, Batch/Interactive_Operation, Backwards_compatibility, gnuplot
+@section Features introduced in version 4.0
+
+@c ?version 4 features
+Gnuplot version 4.0 contained many features introduced since the preceding
+official version 3.7.  These are summarized here.
+
+
+@menu
+* Mouse_and_hotkey_support_in_interactive_terminals::  
+* New_terminals::               
+* New_plot_style_@ref{pm3d}::   
+* Filled_boxes::                
+* New_plot_option_smooth_frequency::  
+* Improved_text_options::       
+* More_text_encodings::         
+* Arrows::                      
+* Data_file_format::            
+* New_commands::                
+* Other_changes_and_additions::  
+* Accompanying_documentation::  
+@end menu
+
+@node Mouse_and_hotkey_support_in_interactive_terminals, New_terminals, Features_introduced_in_version_4.0, Features_introduced_in_version_4.0
+@subsection Mouse and hotkey support in interactive terminals
+
+
+Interaction with the current plot via mouse and hotkeys is supported for the
+X11, OS/2 Presentation Manager, ggi, Windows, and wxWidgets terminals. See
+`mouse input` for more information on mousing. See help for @ref{bind} for
+information on hotkeys. Also see the documentation for individual mousing
+terminals `ggi`, `pm`, `windows`, `wxt` and `x11`.
+
+Sample script: mousevariables.dem
+
+
+@node New_terminals, New_plot_style_@ref{pm3d}, Mouse_and_hotkey_support_in_interactive_terminals, Features_introduced_in_version_4.0
+@subsection New terminals
+
+
+`aqua`: New terminal for Mac OS X. Requires AquaTerm 1.0 or later.
+
+`epslatex`: New terminal. Prepares eps figures for inclusion in LaTeX
+documents.
+
+`gif`: Consolidated with png/jpeg terminals. Requires libgd.
+
+`ggi`: New full-screen interactive terminal for Linux. Interface to the
+General Graphics Interface Library.
+
+`pdf`: New terminal exporting Adobe Portable Document Format. Requires libpdf.
+
+`png` and `jpeg`: Support for GIF, PNG and JPEG image output is provided by a
+new driver via libgd. The new driver supports many more features than the
+old png driver, including TrueType fonts. Requires libgd.
+
+`svg`: New terminal exporting Scalable Vector Graphics.
+
+
+@node New_plot_style_@ref{pm3d}, Filled_boxes, New_terminals, Features_introduced_in_version_4.0
+@subsection New plot style @ref{pm3d}
+
+
+The `splot` command is now capable of plotting 2D maps and 3D surfaces
+colored by greyscale or color palettes. See help for @ref{pm3d}, @ref{palette},
+@ref{cbrange}, `set view map`, `set colorbox` and @ref{palette}.
+
+Sample scripts: pm3d.dem pm3dcolors.dem pm3dgamma.dem
+
+
+@node Filled_boxes, New_plot_option_smooth_frequency, New_plot_style_@ref{pm3d}, Features_introduced_in_version_4.0
+@subsection Filled boxes
+
+
+A solid color or patterned fill style can be set for any plot style that
+contains boxes. See `boxes`, `boxerrorbars`, `boxxyerrorbars`,
+`candlesticks`, `set style fill`.
+
+Sample scripts: fillstyle.dem candlesticks.dem
+
+
+@node New_plot_option_smooth_frequency, Improved_text_options, Filled_boxes, Features_introduced_in_version_4.0
+@subsection New plot option smooth frequency
+
+
+Input data can be filtered through several built-in routines for interpolation
+or approximation of data.  See @ref{smooth}, `frequency`, `unique`.
+
+Sample scripts: steps.dem mgr.dem
+
+
+@node Improved_text_options, More_text_encodings, New_plot_option_smooth_frequency, Features_introduced_in_version_4.0
+@subsection Improved text options
+
+
+Most gnuplot plot commands that produce text labels now accept modifiers to
+specify text color, font, size, and rotation angle. See @ref{label}.
+Not all terminal types support these options, however.  The enhanced text
+mode previously available for the postscript and pm terminals has been
+extended to other terminal types as well.  Terminal types currently supported
+include aqua, dumb, jpeg, pdf, pm, png, postscript, x11, windows, and wxt.
+See `enhanced text`.
+
+Sample scripts: textcolor.dem textrotate.dem
+
+
+@node More_text_encodings, Arrows, Improved_text_options, Features_introduced_in_version_4.0
+@subsection More text encodings
+
+
+Several terminals, including @ref{postscript}, `x11` and `pm`, support additional
+text `encodings`: ISO 8859-1 (Latin 1), ISO 8859-2 (Latin 2), ISO 8859-15
+(variant of 8859-1 with Euro sign), KOI8-R and KOI8-U (cyrillic), and
+miscellaneous codepages. See @ref{encoding} for more details.
+
+
+@node Arrows, Data_file_format, More_text_encodings, Features_introduced_in_version_4.0
+@subsection Arrows
+
+
+Single- or double-ended arrows can be placed on a plot individually from the
+command line or from a data file via the `plot with vectors` style.
+See @ref{arrow}, `plotting styles vectors`.
+
+Sample scripts: arrowstyle.dem vector.dem
+
+
+@node Data_file_format, New_commands, Arrows, Features_introduced_in_version_4.0
+@subsection Data file format
+
+
+The new @ref{datafile} command can be used to specify information about the
+format of input data files, including the characters used to separate fields,
+to indicate comment lines, and to specify missing data.  Gnuplot now attempts
+to recognize text fields with embedded blanks as single entities based on the
+datafile format settings.  This allows input from csv (comma-separated value)
+files such as those exported by spreadsheet programs. See @ref{datafile}.
+See also the `binary` option (introduced in 4.2).
+
+
+@node New_commands, Other_changes_and_additions, Data_file_format, Features_introduced_in_version_4.0
+@subsection New commands
+
+
+`set view map` selects a top-view 2D projection of 3D surface plot.
+
+`set term push` and `set term pop` save and restore the current terminal type.
+
+`load` and @ref{save} commands accept piped input and output, respectively.
+
+
+@node Other_changes_and_additions, Accompanying_documentation, New_commands, Features_introduced_in_version_4.0
+@subsection Other changes and additions
+
+
+Since gnuplot 4.0, `unset <something>` is preferred to `set no<something>`.
+The older form has been deprecated.
+Version 4.2 continues to allow the older syntax, but such backwards
+compatibility may be lost in future versions.
+
+Commands of the form `set <something> <style>` also are deprecated in favor
+of the more general form `set style <something> <options>`.  Many more plot
+elements now have style options of their own, including arrows, filled
+areas, lines, and points. There are also style settings for input data and
+formatting. Please see @ref{style}, @ref{decimalsign}, and @ref{datafile}.
+
+The MS Windows package includes an additional executable `pgnuplot.exe` to
+support piping command through standard input, which is otherwise not
+available for graphical applications on this system.
+
+
+@node Accompanying_documentation,  , Other_changes_and_additions, Features_introduced_in_version_4.0
+@subsection Accompanying documentation
+
+
+In directory docs/psdocs/ you may find new information in the gnuplot output
+postscript file guide, list of postscript symbols in different encodings.
+
+Improved FAQ. Please read it before asking your question in a public forum.
+
+There are plenty of new demos *.dem in the demo/ directory. Please run them,
+for example by
+@example
+      load "all.dem"
+@end example
+
+before asking for help.  Plots produced by the demo scripts can also be viewed
+at
+@uref{http://www.gnuplot.info/demo/,http://www.gnuplot.info/demo/
+}
+
+
+@node Batch/Interactive_Operation, Command-line-editing, Features_introduced_in_version_4.0, gnuplot
+@section Batch/Interactive Operation
+
+@cindex batch/interactive
+
+`gnuplot` may be executed in either batch or interactive modes, and the two
+may even be mixed together on many systems.
+
+Any command-line arguments are assumed to be names of files containing
+`gnuplot` commands (with the exception of standard X11 arguments, which are
+processed first).  Each file is loaded with the `load` command, in the order
+specified.  `gnuplot` exits after the last file is processed.  When no load
+files are named, `gnuplot` enters into an interactive mode.  The special
+filename "-" is used to denote standard input.
+
+Both the @ref{exit} and @ref{quit} commands terminate the current command file and
+`load` the next one, until all have been processed.
+
+Examples:
+
+To launch an interactive session:
+@example
+      gnuplot
+
+@end example
+
+To launch a batch session using two command files "input1" and "input2":
+@example
+      gnuplot input1 input2
+
+@end example
+
+To launch an interactive session after an initialization file "header" and
+followed by another command file "trailer":
+@example
+      gnuplot header - trailer
+
+@end example
+
+@node Command-line-editing, Comments, Batch/Interactive_Operation, gnuplot
+@section Command-line-editing
+
+@cindex line-editing
+
+@cindex editing
+
+@cindex command-line-editing
+
+Command-line editing is supported by the Unix, Atari, VMS, MS-DOS and OS/2
+versions of `gnuplot`.  Also, a history mechanism allows previous commands to
+be edited and re-executed.  After the command line has been edited, a newline
+or carriage return will enter the entire line without regard to where the
+cursor is positioned.
+
+(The readline function in `gnuplot` is not the same as the readline used in
+GNU Bash and GNU Emacs.  If the GNU version is desired, it may be selected
+instead of the `gnuplot` version at compile time.)
+
+
+The editing commands are as follows:
+
+
+@example
+      `Line-editing`:
+
+@end example
+
+@example
+      ^B    moves back a single character.
+      ^F    moves forward a single character.
+      ^A    moves to the beginning of the line.
+      ^E    moves to the end of the line.
+      ^H    and DEL delete the previous character.
+      ^D    deletes the current character.
+      ^K    deletes from current position to the end of line.
+      ^L,^R redraws line in case it gets trashed.
+      ^U    deletes the entire line.
+      ^W    deletes from the current word to the end of line.
+
+@end example
+
+@example
+      `History`:
+
+@end example
+
+@example
+      ^P    moves back through history.
+      ^N    moves forward through history.
+
+@end example
+
+
+On the IBM PC, the use of a TSR program such as DOSEDIT or CED may be desired
+for line editing.  The default makefile assumes that this is the case;  by
+default `gnuplot` will be compiled with no line-editing capability.  If you
+want to use `gnuplot`'s line editing, set READLINE in the makefile and add
+readline.obj to the link file.  The following arrow keys may be used on the
+IBM PC and Atari versions if readline is used:
+
+
+@example
+      Left  Arrow      - same as ^B.
+      Right Arrow      - same as ^F.
+      Ctrl Left  Arrow - same as ^A.
+      Ctrl Right Arrow - same as ^E.
+      Up    Arrow      - same as ^P.
+      Down  Arrow      - same as ^N.
+
+@end example
+
+
+The Atari version of readline defines some additional key aliases:
+
+
+@example
+      Undo            - same as ^L.
+      Home            - same as ^A.
+      Ctrl Home       - same as ^E.
+      Esc             - same as ^U.
+      Help            - @ref{help} plus return.
+      Ctrl Help       - @ref{help}.
+
+@end example
+
+
+@node Comments, Coordinates, Command-line-editing, gnuplot
+@section Comments
+
+@cindex comments
+
+Comments are supported as follows: a `#` may appear in most places in a line
+and `gnuplot` will ignore the rest of the line.  It will not have this effect
+inside quotes, inside numbers (including complex numbers), inside command
+substitutions, etc.  In short, it works anywhere it makes sense to work.
+
+See also `set datafile commentschars` for specifying comment characters in
+data files.
+
+@node Coordinates, Datastrings, Comments, gnuplot
+@section Coordinates
+
+@cindex coordinates
+
+The commands @ref{arrow}, @ref{key}, @ref{label} and @ref{object} allow you
+to draw something at an arbitrary position on the graph.  This position is
+specified by the syntax:
+
+@example
+      @{<system>@} <x>, @{<system>@} <y> @{,@{<system>@} <z>@}
+
+@end example
+
+Each <system> can either be `first`, `second`, `graph`, `screen`, or
+`character`.
+
+`first` places the x, y, or z coordinate in the system defined by the left
+and bottom axes; `second` places it in the system defined by the second axes
+(top and right); `graph` specifies the area within the axes---0,0 is bottom
+left and 1,1 is top right (for splot, 0,0,0 is bottom left of plotting area;
+use negative z to get to the base---see @ref{ticslevel}); `screen`
+specifies the screen area (the entire area---not just the portion selected by
+@ref{size}), with 0,0 at bottom left and 1,1 at top right; and `character`
+gives the position in character widths and heights from the bottom left of
+the screen area (screen 0,0), `character` coordinates depend on the chosen
+font size.
+
+If the coordinate system for x is not specified, `first` is used.  If the
+system for y is not specified, the one used for x is adopted.
+
+In some cases, the given coordinate is not an absolute position but a
+relative value (e.g., the second position in @ref{arrow} ... `rto`).  In
+most cases, the given value serves as difference to the first position.
+If the given coordinate resides in a logarithmic axis the value is
+interpreted as factor. For example,
+
+@example
+      set logscale x
+      set arrow 100,5 rto 10,2
+
+@end example
+
+plots an arrow from position 100,5 to position 1000,7 since the x axis is
+logarithmic while the y axis is linear.
+
+If one (or more) axis is timeseries, the appropriate coordinate should
+be given as a quoted time string according to the @ref{timefmt} format string.
+See @ref{xdata} and @ref{timefmt}.  `gnuplot` will also accept an integer
+expression, which will be interpreted as seconds from 1 January 2000.
+
+@node Datastrings, Environment, Coordinates, gnuplot
+@section Datastrings
+
+@cindex datastrings
+
+The configuration option --enable-datastrings allows gnuplot to read and
+process text fields in datafiles. A text field consists of either an arbitrary
+string of printable characters containing no whitespace or an arbitrary string
+of characters, possibly including whitespace, delimited by double quotes.
+The following sample line from a datafile is interpreted to contain four
+columns, with a text field in column 3:
+
+@example
+  1.000 2.000 "Third column is all of this text" 4.00
+
+@end example
+
+Text fields can be positioned within a 2-D or 3-D plot using the commands:
+
+@example
+  plot 'datafile' using 1:2:4 with labels
+  splot 'datafile using 1:2:3:4 with labels
+
+@end example
+
+A column of text data can also be used to label the ticmarks along one or more
+of the plot axes. The example below plots a line through a series of points
+with (X,Y) coordinates taken from columns 3 and 4 of the input datafile.
+However, rather than generating regularly spaced tics along the x axis
+labeled numerically, gnuplot will position a tic mark along the x axis at the
+X coordinate of each point and label the tic mark with text taken from column
+1 of the input datafile.
+
+@example
+  set xtics
+  plot 'datafile' using 3:4:xticlabels(1) with linespoints
+
+@end example
+
+There is also an option that will interpret the first entry in a column of
+input data as a text field, and use it as the key title for data plotted from
+that column. The example given below will use the first entry in column 2 to
+generate a title in the key box, while processing the remainder of columns
+2 and 4 to draw the required line:
+
+@example
+  plot 'datafile' using 1:(f($2)/$4) title 2 with lines
+
+@end example
+
+See `set style labels`, `using xticlabels`, @ref{title}, @ref{using}.
+
+@node Environment, Expressions, Datastrings, gnuplot
+@section Environment
+
+@cindex environment
+
+A number of shell environment variables are understood by `gnuplot`.  None of
+these are required, but may be useful.
+
+If GNUTERM is defined, it is used as the name of the terminal type to be
+used.  This overrides any terminal type sensed by `gnuplot` on start-up, but
+is itself overridden by the .gnuplot (or equivalent) start-up file
+(see `start-up`) and, of course, by later explicit changes.
+
+On Unix, AmigaOS, AtariTOS, MS-DOS and OS/2, GNUHELP may be defined to be the
+pathname of the HELP file (gnuplot.gih).
+
+On VMS, the logical name GNUPLOT$HELP should be defined as the name of the
+help library for `gnuplot`.  The `gnuplot` help can be put inside any system
+help library, allowing access to help from both within and outside `gnuplot`
+if desired.
+
+On Unix, HOME is used as the name of a directory to search for a .gnuplot
+file if none is found in the current directory.  On AmigaOS, AtariTOS,
+MS-DOS, Windows and OS/2, GNUPLOT is used.  On Windows, the NT-specific
+variable USERPROFILE is tried, too. VMS, SYS$LOGIN: is used. Type `help
+start-up`.
+
+On Unix, PAGER is used as an output filter for help messages.
+
+On Unix, AtariTOS and AmigaOS, SHELL is used for the @ref{shell} command.  On
+MS-DOS and OS/2, COMSPEC is used for the @ref{shell} command.
+
+On MS-DOS, if the BGI or Watcom interface is used, PCTRM is used to tell
+the maximum resolution supported by your monitor by setting it to
+S<max. horizontal resolution>. E.g. if your monitor's maximum resolution is
+800x600, then use:
+@example
+      set PCTRM=S800
+@end example
+
+If PCTRM is not set, standard VGA is used.
+
+FIT_SCRIPT may be used to specify a `gnuplot` command to be executed when a
+fit is interrupted---see @ref{fit}.  FIT_LOG specifies the default filename of the
+logfile maintained by fit.
+
+GNUPLOT_LIB may be used to define additional search directories for data
+and command files. The variable may contain a single directory name, or
+a list of directories separated by a platform-specific path separator,
+eg. ':' on Unix, or ';' on DOS/Windows/OS/2/Amiga platforms. The contents
+of GNUPLOT_LIB are appended to the @ref{loadpath} variable, but not saved
+with the @ref{save} and `save set` commands.
+
+Several gnuplot terminal drivers access TrueType fonts via the gd library.
+For these drivers the font search path is controlled by the environmental
+variable GDFONTPATH.  Furthermore, a default font for these drivers may be
+set via the environmental variable GNUPLOT_DEFAULT_GDFONT.
+
+The postscript terminal uses its own font search path. It is controlled by
+the environmental variable GNUPLOT_FONTPATH. The format is the same as for
+GNUPLOT_LIB. The contents of GNUPLOT_FONTPATH are appended to the @ref{fontpath}
+variable, but not saved with the @ref{save} and `save set` commands.
+
+GNUPLOT_PS_DIR is used by the postscript driver to use external prologue
+files. Depending on the build process, gnuplot contains either a builtin
+copy of those files or simply a default hardcoded path. Use this variable
+to test the postscript terminal with custom prologue files. See
+`postscript prologue`.
+
+@node Expressions, Glossary, Environment, gnuplot
+@section Expressions
+
+@cindex expressions
+
+In general, any mathematical expression accepted by C, FORTRAN, Pascal, or
+BASIC is valid.  The precedence of these operators is determined by the
+specifications of the C programming language.  White space (spaces and tabs)
+is ignored inside expressions.
+
+Complex constants are expressed as @{<real>,<imag>@}, where <real> and <imag>
+must be numerical constants.  For example, @{3,2@} represents 3 + 2i; @{0,1@}
+represents 'i' itself.  The curly braces are explicitly required here.
+
+Note that gnuplot uses both "real" and "integer" arithmetic, like FORTRAN and
+C.  Integers are entered as "1", "-10", etc; reals as "1.0", "-10.0", "1e1",
+3.5e-1, etc.  The most important difference between the two forms is in
+division: division of integers truncates: 5/2 = 2; division of reals does
+not: 5.0/2.0 = 2.5.  In mixed expressions, integers are "promoted" to reals
+before evaluation: 5/2e0 = 2.5.  The result of division of a negative integer
+by a positive one may vary among compilers.  Try a test like "print -5/2" to
+determine if your system chooses -2 or -3 as the answer.
+
+The integer expression "1/0" may be used to generate an "undefined" flag,
+which causes a point to ignored; the `ternary` operator gives an example.
+Or you can use the pre-defined variable NaN to achieve the same result.
+@cindex NaN
+
+
+The real and imaginary parts of complex expressions are always real, whatever
+the form in which they are entered: in @{3,2@} the "3" and "2" are reals, not
+integers.
+
+Gnuplot can also perform simple operations on strings and string variables.
+For example, the expression ("A" . "B" eq "AB") evaluates as true, illustrating
+the string concatenation operator and the string equality operator.
+
+A string which contains a numerical value is promoted to the corresponding
+integer or real value if used in a numerical expression. Thus ("3" + "4" == 7)
+and (6.78 == "6.78") both evaluate to true.  An integer, but not a real or
+complex value, is promoted to a string if used in string concatenation.
+A typical case is the use of integers to construct file names or other strings;
+e.g. ("file" . 4 eq "file4") is true.
+
+Substrings can be specified using a postfixed range descriptor [beg:end].
+For example, "ABCDEF"[3:4] == "CD"   and   "ABCDEF"[4:*] == "DEF"
+The syntax "string"[beg:end] is exactly equivalent to calling the built-in
+string-valued function substr("string",beg,end), except that you cannot
+omit either beg or end from the function call.
+
+@menu
+* Functions::                   
+* Operators::                   
+* Gnuplot-defined_variables::   
+* User-defined_variables_and_functions::  
+@end menu
+
+@node Functions, Operators, Expressions, Expressions
+@subsection Functions
+
+@c ?expressions functions
+@cindex functions
+@opindex functions
+
+
+The functions in `gnuplot` are the same as the corresponding functions in
+the Unix math library, except that all functions accept integer, real, and
+complex arguments, unless otherwise noted.
+
+For those functions that accept or return angles that may be given in either
+degrees or radians (sin(x), cos(x), tan(x), asin(x), acos(x), atan(x),
+atan2(x) and arg(z)), the unit may be selected by @ref{angles}, which
+defaults to radians.
+
+
+
+@menu
+* abs::                         
+* acos::                        
+* acosh::                       
+* arg::                         
+* asin::                        
+* asinh::                       
+* atan::                        
+* atan2::                       
+* atanh::                       
+* besj0::                       
+* besj1::                       
+* besy0::                       
+* besy1::                       
+* ceil::                        
+* cos::                         
+* cosh::                        
+* erf::                         
+* erfc::                        
+* exp::                         
+* floor::                       
+* gamma::                       
+* ibeta::                       
+* inverf::                      
+* igamma::                      
+* imag::                        
+* invnorm::                     
+* int::                         
+* lambertw::                    
+* lgamma::                      
+* log::                         
+* log10::                       
+* norm::                        
+* rand::                        
+* real::                        
+* sgn::                         
+* sin::                         
+* sinh::                        
+* sqrt::                        
+* tan::                         
+* tanh::                        
+* gprintf::                     
+* sprintf::                     
+* strlen::                      
+* strstrt::                     
+* substr::                      
+* strftime::                    
+* strptime::                    
+* system::                      
+* word::                        
+* words::                       
+* column::                      
+* defined::                     
+* exists::                      
+* stringcolumn::                
+* timecolumn::                  
+* tm_hour::                     
+* tm_mday::                     
+* tm_min::                      
+* tm_mon::                      
+* tm_sec::                      
+* tm_wday::                     
+* tm_yday::                     
+* tm_year::                     
+* valid::                       
+* Random_number_generator::     
+@end menu
+
+@node abs, acos, Functions, Functions
+@subsubsection abs
+
+@c ?expressions functions abs
+@c ?functions abs
+@cindex abs
+@findex abs
+
+
+The `abs(x)` function returns the absolute value of its argument.  The
+returned value is of the same type as the argument.
+
+For complex arguments, abs(x) is defined as the length of x in the complex
+plane [i.e.,  sqrt(real(x)**2 + imag(x)**2) ].
+
+@node acos, acosh, abs, Functions
+@subsubsection acos
+
+@c ?expressions functions acos
+@c ?functions acos
+@cindex acos
+@findex acos
+
+
+The `acos(x)` function returns the arc cosine (inverse cosine) of its
+argument.  `acos` returns its argument in radians or degrees, as selected by
+@ref{angles}.
+
+@node acosh, arg, acos, Functions
+@subsubsection acosh
+
+@c ?expressions functions acosh
+@c ?functions acosh
+@cindex acosh
+@findex acosh
+
+
+The `acosh(x)` function returns the inverse hyperbolic cosine of its argument
+in radians.
+
+@node arg, asin, acosh, Functions
+@subsubsection arg
+
+@c ?expressions functions arg
+@c ?functions arg
+@cindex arg
+@findex arg
+
+
+The `arg(x)` function returns the phase of a complex number in radians or
+degrees, as selected by @ref{angles}.
+
+@node asin, asinh, arg, Functions
+@subsubsection asin
+
+@c ?expressions functions asin
+@c ?functions asin
+@cindex asin
+@findex asin
+
+
+The `asin(x)` function returns the arc sin (inverse sin) of its argument.
+`asin` returns its argument in radians or degrees, as selected by @ref{angles}.
+
+@node asinh, atan, asin, Functions
+@subsubsection asinh
+
+@c ?expressions functions asinh
+@c ?functions asinh
+@cindex asinh
+@findex asinh
+
+
+The `asinh(x)` function returns the inverse hyperbolic sin of its argument in
+radians.
+
+@node atan, atan2, asinh, Functions
+@subsubsection atan
+
+@c ?expressions functions atan
+@c ?functions atan
+@cindex atan
+@findex atan
+
+
+The `atan(x)` function returns the arc tangent (inverse tangent) of its
+argument.  `atan` returns its argument in radians or degrees, as selected by
+@ref{angles}.
+
+@node atan2, atanh, atan, Functions
+@subsubsection atan2
+
+@c ?expressions functions atan2
+@c ?functions atan2
+@cindex atan2
+@findex atan2
+
+
+The `atan2(y,x)` function returns the arc tangent (inverse tangent) of the
+ratio of the real parts of its arguments.  @ref{atan2} returns its argument in
+radians or degrees, as selected by @ref{angles}, in the correct quadrant.
+
+@node atanh, besj0, atan2, Functions
+@subsubsection atanh
+
+@c ?expressions functions atanh
+@c ?functions atanh
+@cindex atanh
+@findex atanh
+
+
+The `atanh(x)` function returns the inverse hyperbolic tangent of its
+argument in radians.
+
+@node besj0, besj1, atanh, Functions
+@subsubsection besj0
+
+@c ?expressions functions besj0
+@c ?functions besj0
+@cindex besj0
+@findex besj0
+
+
+The `besj0(x)` function returns the j0th Bessel function of its argument.
+@ref{besj0} expects its argument to be in radians.
+
+@node besj1, besy0, besj0, Functions
+@subsubsection besj1
+
+@c ?expressions functions besj1
+@c ?functions besj1
+@cindex besj1
+@findex besj1
+
+
+The `besj1(x)` function returns the j1st Bessel function of its argument.
+@ref{besj1} expects its argument to be in radians.
+
+@node besy0, besy1, besj1, Functions
+@subsubsection besy0
+
+@c ?expressions functions besy0
+@c ?functions besy0
+@cindex besy0
+@findex besy0
+
+
+The `besy0(x)` function returns the y0th Bessel function of its argument.
+@ref{besy0} expects its argument to be in radians.
+
+@node besy1, ceil, besy0, Functions
+@subsubsection besy1
+
+@c ?expressions functions besy1
+@c ?functions besy1
+@cindex besy1
+@findex besy1
+
+
+The `besy1(x)` function returns the y1st Bessel function of its argument.
+@ref{besy1} expects its argument to be in radians.
+
+@node ceil, cos, besy1, Functions
+@subsubsection ceil
+
+@c ?expressions functions ceil
+@c ?functions ceil
+@cindex ceil
+@findex ceil
+
+
+The `ceil(x)` function returns the smallest integer that is not less than its
+argument.  For complex numbers, @ref{ceil} returns the smallest integer not less
+than the real part of its argument.
+
+@node cos, cosh, ceil, Functions
+@subsubsection cos
+
+@c ?expressions functions cos
+@c ?functions cos
+@cindex cos
+@findex cos
+
+
+The `cos(x)` function returns the cosine of its argument.  `cos` accepts its
+argument in radians or degrees, as selected by @ref{angles}.
+
+@node cosh, erf, cos, Functions
+@subsubsection cosh
+
+@c ?expressions functions cosh
+@c ?functions cosh
+@cindex cosh
+@findex cosh
+
+
+The `cosh(x)` function returns the hyperbolic cosine of its argument.  @ref{cosh}
+expects its argument to be in radians.
+
+@node erf, erfc, cosh, Functions
+@subsubsection erf
+
+@c ?expressions functions erf
+@c ?functions erf
+@cindex erf
+@findex erf
+
+
+The `erf(x)` function returns the error function of the real part of its
+argument.  If the argument is a complex value, the imaginary component is
+ignored.  See @ref{erfc}, @ref{inverf}, and @ref{norm}.
+
+@node erfc, exp, erf, Functions
+@subsubsection erfc
+
+@c ?expressions functions erfc
+@c ?functions erfc
+@cindex erfc
+@findex erfc
+
+
+The `erfc(x)` function returns 1.0 - the error function of the real part of
+its argument.  If the argument is a complex value, the imaginary component is
+ignored.  See `erf`, @ref{inverf}, and @ref{norm}.
+
+@node exp, floor, erfc, Functions
+@subsubsection exp
+
+@c ?expressions functions exp
+@c ?functions exp
+@cindex exp
+@findex exp
+
+
+The `exp(x)` function returns the exponential function of its argument (`e`
+raised to the power of its argument).  On some implementations (notably
+suns), exp(-x) returns undefined for very large x.  A user-defined function
+like safe(x) = x<-100 ? 0 : exp(x) might prove useful in these cases.
+
+@node floor, gamma, exp, Functions
+@subsubsection floor
+
+@c ?expressions functions floor
+@c ?functions floor
+@cindex floor
+@findex floor
+
+
+The `floor(x)` function returns the largest integer not greater than its
+argument.  For complex numbers, @ref{floor} returns the largest integer not
+greater than the real part of its argument.
+
+@node gamma, ibeta, floor, Functions
+@subsubsection gamma
+
+@c ?expressions functions gamma
+@c ?functions gamma
+@cindex gamma
+@findex gamma
+
+
+The `gamma(x)` function returns the gamma function of the real part of its
+argument.  For integer n, gamma(n+1) = n!.  If the argument is a complex
+value, the imaginary component is ignored.
+
+@node ibeta, inverf, gamma, Functions
+@subsubsection ibeta
+
+@c ?expressions functions ibeta
+@c ?functions ibeta
+@cindex ibeta
+@findex ibeta
+
+
+The `ibeta(p,q,x)` function returns the incomplete beta function of the real
+parts of its arguments. p, q > 0 and x in [0:1].  If the arguments are
+complex, the imaginary components are ignored.
+
+@node inverf, igamma, ibeta, Functions
+@subsubsection inverf
+
+@c ?expressions functions inverf
+@c ?functions inverf
+@cindex inverf
+@findex inverf
+
+
+The `inverf(x)` function returns the inverse error function of the real part
+of its argument.   See `erf` and @ref{invnorm}.
+
+@node igamma, imag, inverf, Functions
+@subsubsection igamma
+
+@c ?expressions functions igamma
+@c ?functions igamma
+@cindex igamma
+@findex igamma
+
+
+The `igamma(a,x)` function returns the normalized incomplete gamma
+function of the real parts of its arguments, where a > 0 and x >= 0.
+The standard notation is P(a,x), e.g. Abramowitz and Stegun (6.5.1),
+with limiting value of 1 as x approaches infinity.  If the arguments
+are complex, the imaginary components are ignored.
+
+@node imag, invnorm, igamma, Functions
+@subsubsection imag
+
+@c ?expressions functions imag
+@c ?functions imag
+@cindex imag
+@findex imag
+
+
+The `imag(x)` function returns the imaginary part of its argument as a real
+number.
+
+@node invnorm, int, imag, Functions
+@subsubsection invnorm
+
+@c ?expressions functions invnorm
+@c ?functions invnorm
+@cindex invnorm
+@findex invnorm
+
+
+The `invnorm(x)` function returns the inverse cumulative normal (Gaussian)
+distribution function of the real part of its argument.  See @ref{norm}.
+
+@node int, lambertw, invnorm, Functions
+@subsubsection int
+
+@c ?expressions functions int
+@c ?functions int
+@cindex int
+@findex int
+
+
+The `int(x)` function returns the integer part of its argument, truncated
+toward zero.
+
+@node lambertw, lgamma, int, Functions
+@subsubsection lambertw
+
+@c ?expressions functions lambertw
+@c ?functions lambertw
+@cindex lambertw
+@findex lambertw
+
+
+The lambertw function returns the value of the principal branch of
+Lambert's W function, which is defined by the equation (W(z)*exp(W(z))=z.
+z must be a real number with z >= -exp(-1).
+
+@node lgamma, log, lambertw, Functions
+@subsubsection lgamma
+
+@c ?expressions functions lgamma
+@c ?functions lgamma
+@cindex lgamma
+@findex lgamma
+
+
+The `lgamma(x)` function returns the natural logarithm of the gamma function
+of the real part of its argument.  If the argument is a complex value, the
+imaginary component is ignored.
+
+@node log, log10, lgamma, Functions
+@subsubsection log
+
+@c ?expressions functions log
+@c ?functions log
+@cindex log
+@findex log
+
+
+The `log(x)` function returns the natural logarithm (base `e`) of its
+argument.  See @ref{log10}.
+
+@node log10, norm, log, Functions
+@subsubsection log10
+
+@c ?expressions functions log10
+@c ?functions log10
+@cindex log10
+@findex log10
+
+
+The `log10(x)` function returns the logarithm (base 10) of its argument.
+
+@node norm, rand, log10, Functions
+@subsubsection norm
+
+@c ?expressions functions norm
+@c ?functions norm
+@cindex norm
+@findex norm
+
+
+The `norm(x)` function returns the cumulative normal (Gaussian) distribution
+function of the real part of its argument.   See @ref{invnorm}, `erf` and @ref{erfc}.
+
+@node rand, real, norm, Functions
+@subsubsection rand
+
+@c ?expressions functions rand
+@c ?functions rand
+@cindex rand
+@findex rand
+
+
+`rand(0)`  returns a pseudo random number in the interval [0:1] generated
+@example
+           from the current value of two internal 32-bit seeds.
+@end example
+
+`rand(-1)` resets both seeds to a standard value.
+`rand(x)`  for x>0 sets both seeds to a value based on the value of x.
+`rand(@{x,y@})` for x>0 sets seed1 to x and seed2 to y.
+Note: This behavior has changed starting with gnuplot version 3.8l. Older
+scripts that expected rand(x>0) to produce sequential pseudo-random numbers
+from the same seeded sequence must be changed to call rand(0) instead.
+
+@node real, sgn, rand, Functions
+@subsubsection real
+
+@c ?expressions functions real
+@c ?functions real
+@cindex real
+@findex real
+
+
+The `real(x)` function returns the real part of its argument.
+
+@node sgn, sin, real, Functions
+@subsubsection sgn
+
+@c ?expressions functions sgn
+@c ?functions sgn
+@cindex sgn
+@findex sgn
+
+
+The `sgn(x)` function returns 1 if its argument is positive, -1 if its
+argument is negative, and 0 if its argument is 0.  If the argument is a
+complex value, the imaginary component is ignored.
+
+@node sin, sinh, sgn, Functions
+@subsubsection sin
+
+@c ?expressions functions sin
+@c ?functions sin
+@cindex sin
+@findex sin
+
+
+The `sin(x)` function returns the sine of its argument.  `sin` expects its
+argument to be in radians or degrees, as selected by @ref{angles}.
+
+@node sinh, sqrt, sin, Functions
+@subsubsection sinh
+
+@c ?expressions functions sinh
+@c ?functions sinh
+@cindex sinh
+@findex sinh
+
+
+The `sinh(x)` function returns the hyperbolic sine of its argument.  @ref{sinh}
+expects its argument to be in radians.
+
+@node sqrt, tan, sinh, Functions
+@subsubsection sqrt
+
+@c ?expressions functions sqrt
+@c ?functions sqrt
+@cindex sqrt
+@findex sqrt
+
+
+The `sqrt(x)` function returns the square root of its argument.
+
+@node tan, tanh, sqrt, Functions
+@subsubsection tan
+
+@c ?expressions functions tan
+@c ?functions tan
+@cindex tan
+@findex tan
+
+
+The `tan(x)` function returns the tangent of its argument.  `tan` expects
+its argument to be in radians or degrees, as selected by @ref{angles}.
+
+@node tanh, gprintf, tan, Functions
+@subsubsection tanh
+
+@c ?expressions functions tanh
+@c ?functions tanh
+@cindex tanh
+@findex tanh
+
+
+The `tanh(x)` function returns the hyperbolic tangent of its argument.  @ref{tanh}
+expects its argument to be in radians.
+
+
+
+
+@node gprintf, sprintf, tanh, Functions
+@subsubsection gprintf
+
+@c ?expressions functions gprintf
+@c ?functions gprintf
+`gprintf("format",x)` applies gnuplot's own format specifiers to the single
+variable x and returns the resulting string. If you want standard C-language
+format specifiers, you must instead use `sprintf("format",x)`.
+See `format specifiers`.
+
+@node sprintf, strlen, gprintf, Functions
+@subsubsection sprintf
+
+@c ?expressions functions sprintf
+@c ?functions sprintf
+@cindex sprintf
+@findex sprintf
+
+
+`sprintf("format",var1,var2,...)` applies standard C-language format specifiers
+to multiple arguments (10 max) and returns the resulting string. If you want to
+use gnuplot's own format specifiers, you must instead call `gprintf()`.
+For information on sprintf format specifiers, please see standard C-language
+documentation or the unix sprintf man page.
+
+@node strlen, strstrt, sprintf, Functions
+@subsubsection strlen
+
+@c ?expressions functions strlen
+@c ?functions strlen
+@cindex strlen
+@findex strlen
+
+
+`strlen("string")` returns the number of characters in the string.
+
+@node strstrt, substr, strlen, Functions
+@subsubsection strstrt
+
+@c ?expressions functions strstrt
+@c ?functions strstrt
+@cindex strstrt
+@findex strstrt
+
+
+`strstrt("string","key")` searches for the character string "key" in "string"
+and returns the index to the first character of "key". If "key" is not found,
+returns 0. Similar to C library function strstr except that it returns an
+index rather than a string pointer. strstrt("hayneedlestack","needle") = 4.
+
+@node substr, strftime, strstrt, Functions
+@subsubsection substr
+
+@c ?expressions functions substr
+@c ?functions substr
+@cindex substr
+@findex substr
+
+
+@cindex substring
+
+`substr("string",beg,end)` returns the substring consisting of characters
+beg through end of the original string. This is exactly equivalent to the
+expression "string"[beg:end] except that you do not have the option of
+ommitting beg or end.
+
+@node strftime, strptime, substr, Functions
+@subsubsection strftime
+
+@c ?expressions functions strftime
+@c ?functions strftime
+@cindex strftime
+@findex strftime
+
+
+`strftime("timeformat",t)` applies the timeformat specifiers to the time t
+given in seconds since the year 2000. 
+See `time_specifiers` and @ref{strptime}.
+
+@node strptime, system, strftime, Functions
+@subsubsection strptime
+
+@c ? expressions functions strptime
+@c ?functions strptime
+@cindex strptime
+@findex strptime
+
+
+`strptime("timeformat",s)` reads the time from the string s using the
+timeformat specifiers and converts it into seconds since the year 2000.
+See `time_specifiers` and @ref{strftime}.
+
+@node system, word, strptime, Functions
+@subsubsection system
+
+@c ?expressions functions system
+@c ?functions system
+@c ?system function
+@cindex system
+@cmindex system
+
+
+`system("command")` executes "command" using the standard shell and returns
+the resulting character stream from stdout as string variable.
+One optional trailing newline is ignored.
+
+This can be used to import external functions into gnuplot scripts using
+'f(x) = real(system(sprintf("somecommand %f", x)))'.
+
+@node word, words, system, Functions
+@subsubsection word
+
+@c ?expressions functions word
+@c ?functions word
+@cindex word
+@findex word
+
+
+@cindex word
+@findex word
+
+
+`word("string",n)` returns the nth word in string. For example,
+`word("one two three",2)` returns the string "two".
+
+@node words, column, word, Functions
+@subsubsection words
+
+@c ?expressions functions words
+@c ?functions words
+@cindex words
+@findex words
+
+
+@cindex words
+@findex words
+
+
+`words("string")` returns the number of words in string. For example,
+`words(" a b c d")` returns the 4.
+
+
+
+
+@node column, defined, words, Functions
+@subsubsection column
+
+@c ?expressions functions column
+@c ?functions column
+@cindex column
+@findex column
+
+
+`column(x)` may be used only in expressions as part of @ref{using} manipulations
+to fits or datafile plots.  It evaluates to the numerical value of the contents
+of column x. See @ref{using}.
+
+@node defined, exists, column, Functions
+@subsubsection defined
+
+@c ?expressions functions defined
+@c ?functions defined
+@cindex defined
+@findex defined
+
+
+`defined(X)` [DEPRECATED] returns 1 if a variable named X has been defined, otherwise
+it returns 0.
+
+@node exists, stringcolumn, defined, Functions
+@subsubsection exists
+
+@c ?expressions functions exists
+@c ?functions exists
+@cindex exists
+@findex exists
+
+
+The argument to exists() is a string constant or a string variable;
+if the string contains the name of a defined variable, the function returns 1.
+Otherwise the function returns 0.
+
+@node stringcolumn, timecolumn, exists, Functions
+@subsubsection stringcolumn
+
+@c ?expressions functions stringcolumn
+@c ?functions stringcolumn
+@cindex stringcolumn
+@findex stringcolumn
+
+
+@c ?expressions functions strcol
+@c ?functions strcol
+@cindex strcol
+
+`stringcolumn(x)` may be used only in expressions as part of @ref{using} manipulations
+to fits or datafile plots.  It returns the content of column x as a string variable.
+See @ref{using}.
+
+@node timecolumn, tm_hour, stringcolumn, Functions
+@subsubsection timecolumn
+
+@c ?expressions functions timecolumn
+@c ?functions timecolumn
+@cindex timecolumn
+@findex timecolumn
+
+
+`timecolumn(x)` may be used only in expressions as part of @ref{using}
+manipulations to fits or datafile plots.   See @ref{using}.
+
+It reads the data starting at that column as a time/date value and
+returns its value in gnuplot's internal time representation of
+"seconds since the millennium".
+
+To find the right @ref{timefmt} string to use, @ref{timecolumn} searches for a
+@ref{using} specification with the same column number as its argument.
+If one is found, @ref{timefmt} pattern of the target axis for this specifier
+is used.  Otherwise, @ref{timecolumn} chooses the x axis @ref{timefmt} per default.
+
+@node tm_hour, tm_mday, timecolumn, Functions
+@subsubsection tm_hour
+
+@c ?expressions tm_hour
+@findex tm_hour
+@c ?functions tm_hour
+@cindex tm_hour
+@findex tm_hour
+
+
+The @ref{tm_hour} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the hour (an integer in the range 0--23) as a real.
+
+@node tm_mday, tm_min, tm_hour, Functions
+@subsubsection tm_mday
+
+@c ?expressions tm_mday
+@findex tm_mday
+@c ?functions tm_mday
+@cindex tm_mday
+@findex tm_mday
+
+
+The @ref{tm_mday} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the day of the month (an integer in the range 1--31)
+as a real.
+
+@node tm_min, tm_mon, tm_mday, Functions
+@subsubsection tm_min
+
+@c ?expressions tm_min
+@findex tm_min
+@c ?functions tm_min
+@cindex tm_min
+@findex tm_min
+
+
+The @ref{tm_min} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the minute (an integer in the range 0--59) as a real.
+
+@node tm_mon, tm_sec, tm_min, Functions
+@subsubsection tm_mon
+
+@c ?expressions tm_mon
+@findex tm_mon
+@c ?functions tm_mon
+@cindex tm_mon
+@findex tm_mon
+
+
+The @ref{tm_mon} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the month (an integer in the range 0--11) as a real.
+
+@node tm_sec, tm_wday, tm_mon, Functions
+@subsubsection tm_sec
+
+@c ?expressions tm_sec
+@findex tm_sec
+@c ?functions tm_sec
+@cindex tm_sec
+@findex tm_sec
+
+
+The @ref{tm_sec} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the second (an integer in the range 0--59) as a real.
+
+@node tm_wday, tm_yday, tm_sec, Functions
+@subsubsection tm_wday
+
+@c ?expressions tm_wday
+@findex tm_wday
+@c ?functions tm_wday
+@cindex tm_wday
+@findex tm_wday
+
+
+The @ref{tm_wday} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the day of the week (an integer in the range 0--6) as
+a real.
+
+@node tm_yday, tm_year, tm_wday, Functions
+@subsubsection tm_yday
+
+@c ?expressions tm_yday
+@findex tm_yday
+@c ?functions tm_yday
+@cindex tm_yday
+@findex tm_yday
+
+
+The @ref{tm_yday} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the day of the year (an integer in the range 1--366)
+as a real.
+
+@node tm_year, valid, tm_yday, Functions
+@subsubsection tm_year
+
+@c ?expressions tm_year
+@findex tm_year
+@c ?functions tm_year
+@cindex tm_year
+@findex tm_year
+
+
+The @ref{tm_year} function interprets its argument as a time, in seconds from
+1 Jan 2000.  It returns the year (an integer) as a real.
+
+@node valid, Random_number_generator, tm_year, Functions
+@subsubsection valid
+
+@c ?expressions functions valid
+@c ?functions valid
+@cindex valid
+@findex valid
+
+
+`valid(x)` may be used only in expressions as part of @ref{using} manipulations
+to fits or datafile plots.  See @ref{using}.
+
+See also
+@uref{http://www.gnuplot.info/demo/airfoil.html,airfoil.dem: use of functions and complex variables for airfoils demo.
+}
+
+
+@node Random_number_generator,  , valid, Functions
+@subsubsection Random number generator
+
+@c ?expressions random
+@c ?functions random
+@cindex random
+
+The behavior of the built-in function `rand(x)` has changed as of version 3.8l.
+Older scripts that expected rand(x>0) to produce sequential pseudo-random
+numbers from the same seeded sequence must be changed to call rand(0) instead.
+The current behavior is as follows:
+@example
+ `rand(0)`  returns a pseudo random number in the interval [0:1] generated
+            from the current value of two internal 32-bit seeds.
+ `rand(-1)` resets both seeds to a standard value.
+ `rand(x)`  for x>0 sets both seeds to a value based on the value of x.
+ `rand(@{x,y@})` for x>0 sets seed1 to x and seed2 to y.
+
+@end example
+
+
+@node Operators, Gnuplot-defined_variables, Functions, Expressions
+@subsection Operators
+
+@c ?expressions operators
+@cindex operators
+
+The operators in `gnuplot` are the same as the corresponding operators in the
+C programming language, except that all operators accept integer, real, and
+complex arguments, unless otherwise noted.  The ** operator (exponentiation)
+is supported, as in FORTRAN.
+
+Parentheses may be used to change order of evaluation.
+
+@menu
+* Unary::                       
+* Binary::                      
+* Ternary::                     
+@end menu
+
+@node Unary, Binary, Operators, Operators
+@subsubsection Unary
+
+@c ?expressions operators unary
+@c ?operators unary
+@cindex unary
+
+The following is a list of all the unary operators and their usages:
+
+
+@example
+    Symbol      Example    Explanation
+      -           -a          unary minus
+      +           +a          unary plus (no-operation)
+      ~           ~a        * one's complement
+      !           !a        * logical negation
+      !           a!        * factorial
+      $           $3        * call arg/column during @ref{using} manipulation
+@end example
+
+@cindex factorial
+
+@cindex negation
+
+@cindex one's complement
+
+@cindex operator precedence
+
+
+(*) Starred explanations indicate that the operator requires an integer
+argument.
+
+Operator precedence is the same as in Fortran and C.  As in those languages,
+parentheses may be used to change the order of operation.  Thus -2**2 = -4,
+but (-2)**2 = 4.
+
+The factorial operator returns a real number to allow a greater range.
+
+@node Binary, Ternary, Unary, Operators
+@subsubsection Binary
+
+@c ?expressions operators binary
+@c ?operators binary
+The following is a list of all the binary operators and their usages:
+
+
+@example
+    Symbol       Example      Explanation
+      **          a**b          exponentiation
+      *           a*b           multiplication
+      /           a/b           division
+      %           a%b         * modulo
+      +           a+b           addition
+      -           a-b           subtraction
+      ==          a==b          equality
+      !=          a!=b          inequality
+      <           a<b           less than
+      <=          a<=b          less than or equal to
+      >           a>b           greater than
+      >=          a>=b          greater than or equal to
+      &           a&b         * bitwise AND
+      ^           a^b         * bitwise exclusive OR
+      |           a|b         * bitwise inclusive OR
+      &&          a&&b        * logical AND
+      ||          a||b        * logical OR
+      .           A.B           string concatenation
+      eq          A eq B        string equality
+      ne          A ne B        string inequality
+@end example
+
+@cindex bitwise operators
+
+@cindex string operators
+
+@cindex modulo
+
+@cindex exponentiation
+
+
+
+(*) Starred explanations indicate that the operator requires integer
+arguments.
+Capital letters A and B indicate that the operator requires string arguments.
+
+Logical AND (&&) and OR (||) short-circuit the way they do in C.  That is,
+the second `&&` operand is not evaluated if the first is false; the second
+`||` operand is not evaluated if the first is true.
+
+@node Ternary,  , Binary, Operators
+@subsubsection Ternary
+
+@c ?expressions operators ternary
+@c ?operators ternary
+@cindex ternary
+
+There is a single ternary operator:
+
+
+@example
+    Symbol       Example      Explanation
+      ?:          a?b:c     ternary operation
+
+@end example
+
+
+The ternary operator behaves as it does in C.  The first argument (a), which
+must be an integer, is evaluated.  If it is true (non-zero), the second
+argument (b) is evaluated and returned; otherwise the third argument (c) is
+evaluated and returned.
+
+The ternary operator is very useful both in constructing piecewise functions
+and in plotting points only when certain conditions are met.
+
+Examples:
+
+Plot a function that is to equal sin(x) for 0 <= x < 1, 1/x for 1 <= x < 2,
+and undefined elsewhere:
+@example
+      f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
+      plot f(x)
+@end example
+
+@c ^ <img align=bottom src="http://www.gnuplot.info/doc/ternary.gif" alt="[ternary.gif]" width=640 height=480>
+Note that `gnuplot` quietly ignores undefined values, so the final branch of
+the function (1/0) will produce no plottable points.  Note also that f(x)
+will be plotted as a continuous function across the discontinuity if a line
+style is used.  To plot it discontinuously, create separate functions for the
+two pieces.  (Parametric functions are also useful for this purpose.)
+
+For data in a file, plot the average of the data in columns 2 and 3 against
+the datum in column 1, but only if the datum in column 4 is non-negative:
+
+@example
+      plot 'file' using 1:( $4<0 ? 1/0 : ($2+$3)/2 )
+
+@end example
+
+Please see @ref{using} for an explanation of the @ref{using} syntax.
+
+
+@node Gnuplot-defined_variables, User-defined_variables_and_functions, Operators, Expressions
+@subsection Gnuplot-defined variables
+
+@c ?gnuplot-defined variables
+The variable `pi` is defined to be pi, see
+@example
+      print pi
+
+@end example
+
+Additionally, gnuplot may define some variables under various operations.
+
+Working with interactive terminals with `mouse` functionality defines
+variables with names that begin "MOUSE_", see @ref{variables} for details.
+
+Further, there are several "read-only" variables that begin "GPVAL_", like
+GPVAL_TERM, GPVAL_X_MIN, GPVAL_X_MAX, GPVAL_Y_MIN,... Type `show variables all`
+to display their list and values. Values related to axes parameters (ranges, log
+base) are values used during the last plot, not those currently `set`.
+
+The @ref{fit} mechanism uses several variables with names that begin "FIT_".  It
+is safest to avoid using such names.  "FIT_LIMIT", however, is one that you
+may wish to redefine. Under `set fit errorvariables`, the error for each
+fitted parameter will be stored in a variable named like the parameter, but
+with "_err" appended. See the documentation on @ref{fit} for details.
+
+See @ref{variables}, @ref{variables}, and @ref{fit}.
+
+
+@node User-defined_variables_and_functions,  , Gnuplot-defined_variables, Expressions
+@subsection User-defined variables and functions
+
+@c ?expressions user-defined
+@c ?user-defined variables
+@cindex user-defined
+
+@cindex variables
+@opindex variables
+
+
+New user-defined variables and functions of one through five variables may
+be declared and used anywhere, including on the `plot` command itself.
+
+User-defined function syntax:
+@example
+      <func-name>( <dummy1> @{,<dummy2>@} ... @{,<dummy5>@} ) = <expression>
+
+@end example
+
+where <expression> is defined in terms of <dummy1> through <dummy5>.
+
+User-defined variable syntax:
+@example
+      <variable-name> = <constant-expression>
+
+@end example
+
+Examples:
+@example
+      w = 2
+      q = floor(tan(pi/2 - 0.1))
+      f(x) = sin(w*x)
+      sinc(x) = sin(pi*x)/(pi*x)
+      delta(t) = (t == 0)
+      ramp(t) = (t > 0) ? t : 0
+      min(a,b) = (a < b) ? a : b
+      comb(n,k) = n!/(k!*(n-k)!)
+      len3d(x,y,z) = sqrt(x*x+y*y+z*z)
+      plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x)
+
+@end example
+
+@example
+      file = "mydata.inp"
+      file(n) = sprintf("run_%d.dat",n)
+
+@end example
+
+@c ^ <img align=bottom src="http://www.gnuplot.info/doc/userdefined.gif" alt="[userdefined.gif]" width=640 height=480>
+The final two examples illustrate a user-defined string variable and a
+user-defined string function.
+
+@cindex NaN
+
+@cindex pi
+
+Note that the variables `pi` (3.14159...) and `NaN` (IEEE "Not a Number") are
+already defined.  You can redefine these to something else if you really need
+to. The original values can be recovered by setting:
+
+@example
+      NaN = GPVAL_NaN
+      pi  = GPVAL_pi
+
+@end example
+
+Other variables may be defined under various gnuplot operations like mousing in
+interactive terminals or fitting; see @ref{variables} for details.
+
+You can check for existence of a given variable V by the exists("V")
+expression. For example
+@example
+      a = 10
+      if (exists("a")) print "a is defined"
+      if (!exists("b")) print "b is not defined"
+
+@end example
+
+Valid names are the same as in most programming languages: they must begin
+with a letter, but subsequent characters may be letters, digits, "$", or "_".
+
+See @ref{functions}, @ref{functions}, @ref{variables}, @ref{macros}.
+
+@node Glossary, linetype, Expressions, gnuplot
+@section Glossary
+
+@cindex glossary
+
+Throughout this document an attempt has been made to maintain consistency of
+nomenclature.  This cannot be wholly successful because as `gnuplot` has
+evolved over time, certain command and keyword names have been adopted that
+preclude such perfection.  This section contains explanations of the way
+some of these terms are used.
+
+A "page" or "screen" is the entire area addressable by `gnuplot`.  On a
+monitor, it is the full screen; on a plotter, it is a single sheet of paper.
+
+A screen may contain one or more "plots".  A plot is defined by an abscissa
+and an ordinate, although these need not actually appear on it, as well as
+the margins and any text written therein.
+
+A plot contains one "graph".  A graph is defined by an abscissa and an
+ordinate, although these need not actually appear on it.
+
+A graph may contain one or more "lines".  A line is a single function or
+data set.  "Line" is also a plotting style.  The word will also be used in
+sense "a line of text".  Presumably the context will remove any ambiguity.
+
+The lines on a graph may have individual names.  These may be listed
+together with a sample of the plotting style used to represent them in
+the "key", sometimes also called the "legend".
+
+The word "title" occurs with multiple meanings in `gnuplot`.  In this
+document, it will always be preceded by the adjective "plot", "line", or
+"key" to differentiate among them.
+
+A 2-d graph may have up to four labelled axes.  The names of the four axes
+for these usages are "x" for the axis along the bottom border of the plot,
+"y" for the left border, "x2" for the top border, and "y2" for the right
+border.
+
+A 3-d graph may have up to three labelled axes -- "x", "y" and "z".  It is
+not possible to say where on the graph any particular axis will fall because
+you can change the direction from which the graph is seen with @ref{view}.
+
+When discussing data files, the term "record" will be resurrected and used
+to denote a single line of text in the file, that is, the characters between
+newline or end-of-record characters.  A "point" is the datum extracted from
+a single record.  A "datablock" is a set of points from consecutive records,
+delimited by blank records.  A line, when referred to in the context of a
+data file, is a subset of a datablock.
+
+@node linetype, mouse_input, Glossary, gnuplot
+@section linetype, colors, and styles
+
+@cindex linetype
+
+@cindex colors
+
+Each gnuplot terminal type provides a set of distinct "linetypes". These may
+differ in color, in thickness, in dot/dash pattern, or in some combination of
+color and dot/dash. The default linetypes for a particular terminal can be
+previewed by issuing the @ref{test} command after setting the terminal type.
+The pre-defined colors and dot/dash patterns are not guaranteed to be
+consistent for all terminal types, but all terminals use the special linetype
+-1 to mean a solid line in the primary foreground color (normally black).
+By default, successive functions or datafiles plotted by a single command will
+be assigned successive linetypes.  You can override this default by specifying
+a particular linetype for any function, datafile, or plot element.
+
+Examples:
+
+@example
+     plot "foo", "bar"                 # plot two files using linetypes 1, 2
+     plot sin(x) linetype 4            # terminal-specific linetype color 4
+     plot sin(x) lt -1                 # black
+
+@end example
+
+@cindex colors
+
+For many terminal types it is also possible to assign user-defined colors
+using explicit rgb (red, green, blue) values, named colors, or color values
+that refer to the current PM3D palette.
+
+Examples:
+
+@example
+     plot sin(x) lt rgb "violet"       # one of gnuplot's named colors
+     plot sin(x) lt rgb "#FF00FF"      # explicit RGB triple in hexadecimal
+     plot sin(x) lt palette cb -45     # whatever color corresponds to -45
+                                       # in the current cbrange of the palette
+     plot sin(x) lt palette frac 0.3   # fractional value along the palette
+
+@end example
+
+See @ref{colornames}, @ref{palette}, @ref{cbrange}.
+
+For terminals that support dot/dash patterns, each default linetype has both
+a dot-dash pattern and a default color. However, you can override the default
+color by using the keyword `linecolor`, abbreviated `lc`.  For example, the
+postscript terminal provides a dashed blue line as linetype 3.  The plot
+commands below use this same dash pattern for three plots, one in blue (the
+default), another in red (the default for linetype 1), and a third in gold.
+
+Example:
+
+@example
+     set term postscript dashed color
+     plot 'foo' lt 3, 'baz' lt 3 linecolor 1, 'bar' lt 3 lc rgb 'gold'
+
+@end example
+
+Lines can have additional properties such as linewidth.  You can associate
+these various properties, as well as equivalent properties for point symbols,
+into user-defined "line styles" using the command `set style line`.  Once
+you have defined a linestyle, you can use it in a plot command to control
+the appearance of one or more plot elements.
+
+Examples:
+
+@example
+     # define a new line style with terminal-independent color cyan,
+     # linewidth 3, and associated point type 6 (a circle with a dot in it).
+     set style line 5 lt rgb "cyan" lw 3 pt 6
+     plot sin(x) with linespoints ls 5          # user-defined line style 5
+
+@end example
+
+See `linestyle`, `set style line`.
+
+@menu
+* colorspec::                   
+@end menu
+
+@node colorspec,  , linetype, linetype
+@subsection colorspec
+
+@cindex colorspec
+
+@cindex rgbcolor
+
+@cindex lc
+
+@cindex linecolor
+
+@cindex tc
+
+@cindex textcolor
+
+@cindex colors
+
+Many commands allow you to specify a linetype with an explicit color.
+Note that not all terminals support RGB colors or pm3d palette colors.
+
+Syntax:
+
+@example
+      ... @{linetype | lt@} <colorspec>
+      ... @{linecolor | lc@} <colorspec>
+      ... @{textcolor | tc@} <colorspec>
+
+@end example
+
+where <colorspec> has one of the following forms:
+
+@example
+      rgbcolor "colorname"
+      rgbcolor "#RRGGBB"
+      rgbcolor variable
+      palette frac <val>      # <val> runs from 0 to 1
+      palette cb <value>      # <val> lies within cbrange
+      palette z
+      variable                # color index is read from input file
+
+@end example
+
+"colorname" refers to one of the color names built in to gnuplot. For a list
+of the available names, see @ref{colornames}.
+
+"#RRGGBB" is a hexadecimal constant preceded by the "#" symbol. The RRGGBB
+represents the red, green, and blue components of the color, each on a scale
+from 0 - 255.  For example, magenta = full-scale red + full-scale blue would
+be represented by #FF00FF, which is the hexadecimal representation of
+(255 << 16) + (0 << 8) + (255).
+
+"rgb variable" requires an additional column in the @ref{using} specifier, and
+is only available in 3D plotting mode (splot). The extra column is interpreted
+as a 24-bit packed RGB triple. These are most easily specified in a data file
+as hexadecimal values (see above).
+
+Example:
+
+@example
+      rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
+      splot "data" using 1:2:3:(rgb($1,$2,$3)) with points lc rgb variable
+
+@end example
+
+The color palette is a linear gradient of colors that smoothly maps a
+single numerical value onto a particular color.  Two such mappings are always
+in effect. `palette frac`  maps a fractional value between 0 and 1 onto the
+full range of the color palette.  `palette cb` maps the range of the color
+axis onto the same palette.  See @ref{cbrange}.  See also `set colorbox`.
+You can use either of these to select a constant color from the current
+palette.
+
+"palette z" maps the z value of each plot segment or plot element into the
+cbrange mapping of the palette. This allows smoothly-varying color along a
+3D line or surface.  It also allows coloring 2D plots by palette values read
+from an extra column of data.
+
+@menu
+* linecolor_variable::          
+@end menu
+
+@node linecolor_variable,  , colorspec, colorspec
+@subsubsection linecolor variable
+
+@c ?linecolor variable
+@c ?lc variable
+@c ?textcolor variable
+@c ?tc variable
+Most plot commands assign a single color (linetype) to each element of the
+plot.  If there are multiple plots on a single graph, the default color
+(linetype) is incremented sequentially.  You can instead assign a separate
+color for each data point, line segment, or label based on additional 
+information in the input data file.  This is indicated by the colorspec
+keyword `variable`. 
+
+`lc variable` tells the program to use the value read from one column of the
+input data as a linestyle index, and use the color belonging to that linestyle.
+This requires a corresponding additional column in the @ref{using} specifier.
+Text colors can be set similarly using `tc variable`.
+
+A single data file may contain multiple sets of data, separated by two blank
+lines. Each of these separate sets is assigned an index value (see @ref{index})
+that can be retrieved via the using specifier column(-2).
+All data in the file is drawn with the same color/linestyle/pointtype
+properties by default.  The command `lc variable` can be used to assign
+different colors to each data set in the file by using the index value from
+pseudocolumn -2.
+
+Examples:
+@example
+      # Use the third column of data to assign colors to individual points
+      plot 'data' using 1:2:3 with points lc variable
+
+@end example
+
+@example
+      # Use the data set index to choose a linestyle color
+      plot 'data' using 1:2:(column(-2)) with lines lc variable
+
+@end example
+
+
+@node mouse_input, Plotting, linetype, gnuplot
+@section mouse input
+
+@c ?mouse input
+The `x11`, `pm`, `windows`, `ggi`, and `wxt` terminals allow interaction with
+the current plot using the mouse. They also support the definition of hotkeys
+to activate pre-defined functions by hitting a single key while the mouse
+focus is in the active plot window.  It is even possible to combine mouse
+input with `batch` command scripts, by invoking the command `pause mouse`
+and then using the mouse variables returned by mouse clicking as parameters
+for subsequent scripted actions. See @ref{bind} and @ref{variables}.
+See also the command `set mouse`.
+
+@menu
+* bind::                        
+* Mouse_variables::             
+@end menu
+
+@node bind, Mouse_variables, mouse_input, mouse_input
+@subsection bind
+
+@c ?commands bind
+@cindex bind
+
+The @ref{bind} allows defining or redefining a hotkey, i.e. a sequence of gnuplot
+commands which will be executed when a certain key or key sequence is pressed
+while the driver's window has the input focus. Note that @ref{bind} is only
+available if gnuplot was compiled with `mouse` support and it is used by all
+mouse-capable terminals. Bindings overwrite the builtin bindings (like in
+every real editor), except <space> and 'q' which cannot be rebound (unless
+one exception, see below). Mouse buttons cannot be rebound.
+
+You get the list of all hotkeys by typing @ref{bind} or by hitting 'h' in the
+graph window.
+
+Note that multikey-bindings with modifiers have to be quoted.
+
+Normally hotkeys are only recognized when the currently active plot window
+has focus. `bind allwindows <key> ...` (short form: `bind all <key> ...`)
+causes the binding for <key> to apply to all gnuplot plot windows, active
+or not.  In this case gnuplot variable MOUSE_KEY_WINDOW is set to the ID
+of the originating window, and may be used by the bound command.
+
+By default, the <space> hotkey raises gnuplot's command window. On some
+terminals (e.g. x11, wx), 'q' closes the graph window. These defaults can
+be changed to ctrl-space and ctrl-q by starting gnuplot as 'gnuplot -ctrlq',
+see `x11 command-line-options`, or by the X Resource 'gnuplot*ctrlq'.
+Note: if <space> (or ctrl-space) does not raise the gnuplot window under X11,
+see discussion in @ref{raise}.
+
+Syntax:
+@example
+      bind @{allwindows@} [<key-sequence>] ["<gnuplot commands>"]
+      bind!
+
+@end example
+
+Examples:
+
+- set bindings:
+
+@example
+    bind a "replot"
+    bind "ctrl-a" "plot x*x"
+    bind "ctrl-alt-a" 'print "great"'
+    bind Home "set view 60,30; replot"
+    bind all Home 'print "This is window ",MOUSE_KEY_WINDOW'
+
+@end example
+
+- show bindings:
+@example
+    bind "ctrl-a"          # shows the binding for ctrl-a
+    bind                   # shows all bindings
+
+@end example
+
+- remove bindings:
+@example
+    bind "ctrl-alt-a" ""   # removes binding for ctrl-alt-a
+                             (note that builtins cannot be removed)
+    bind!                  # installs default (builtin) bindings
+
+@end example
+
+- bind a key to toggle something:
+@example
+  v=0
+  bind "ctrl-r" "v=v+1;if(v%2)set term x11 noraise; else set term x11 raise"
+
+@end example
+
+Modifiers (ctrl / alt) are case insensitive, keys not:
+@example
+    ctrl-alt-a == CtRl-alT-a
+    ctrl-alt-a != ctrl-alt-A
+
+@end example
+
+List of modifiers (alt == meta):
+@example
+    ctrl, alt
+
+@end example
+
+List of supported special keys:
+
+@example
+   "BackSpace", "Tab", "Linefeed", "Clear", "Return", "Pause", "Scroll_Lock",
+   "Sys_Req", "Escape", "Delete", "Home", "Left", "Up", "Right", "Down",
+   "PageUp", "PageDown", "End", "Begin",
+
+@end example
+
+@example
+   "KP_Space", "KP_Tab", "KP_Enter", "KP_F1", "KP_F2", "KP_F3", "KP_F4",
+   "KP_Home", "KP_Left", "KP_Up", "KP_Right", "KP_Down", "KP_PageUp",
+   "KP_PageDown", "KP_End", "KP_Begin", "KP_Insert", "KP_Delete", "KP_Equal",
+   "KP_Multiply", "KP_Add", "KP_Separator", "KP_Subtract", "KP_Decimal",
+   "KP_Divide",
+
+@end example
+
+@example
+   "KP_1" - "KP_9", "F1" - "F12"
+
+@end example
+
+See also help for `mouse` and @ref{if}.
+
+
+@node Mouse_variables,  , bind, mouse_input
+@subsection Mouse variables
+
+@c ?mouse variables
+When mousing is active, clicking in the active window will set several user
+variables that can be accessed from the gnuplot command line. The coordinates
+of the mouse at the time of the click are stored in MOUSE_X MOUSE_Y MOUSE_X2
+and MOUSE_Y2. The mouse button clicked, and any meta-keys active at that time,
+are stored in MOUSE_BUTTON MOUSE_SHIFT MOUSE_ALT and MOUSE_CTRL.  These
+variables are set to undefined at the start of every plot, and only become
+defined in the event of a mouse click in the active plot window. To determine
+from a script if the mouse has been clicked in the active plot window, it is
+sufficient to test for any one of these variables being defined.
+
+@example
+      plot 'something'
+      pause mouse
+      if (defined(MOUSE_BUTTON)) call 'something_else'; \
+      else print "No mouse click."
+
+@end example
+
+It is also possible to track keystrokes in the plot window using the mousing
+code.
+
+@example
+      plot 'something'
+      pause mouse keypress
+      print "Keystroke ", MOUSE_KEY, " at ", MOUSE_X, " ", MOUSE_Y
+
+@end example
+
+When `pause mouse keypress` is terminated by a keypress, then MOUSE_KEY will
+contain the ascii character value of the key that was pressed. MOUSE_CHAR will
+contain the character itself as a string variable.  If the pause command is
+terminated abnormally (e.g. by ctrl-C or by externally closing the plot window)
+then MOUSE_KEY will equal -1.
+
+Note that after a zoom by mouse, you can read the new ranges as GPVAL_X_MIN,
+GPVAL_X_MAX, GPVAL_Y_MIN, and GPVAL_Y_MAX, see @ref{variables}.
+
+
+
+@node Plotting, Start-up, mouse_input, gnuplot
+@section Plotting
+
+@cindex plotting
+
+There are three `gnuplot` commands which actually create a plot: `plot`,
+`splot` and @ref{replot}.  `plot` generates 2-d plots, `splot` generates 3-d
+plots (actually 2-d projections, of course), and @ref{replot} appends its
+arguments to the previous `plot` or `splot` and executes the modified
+command.
+
+Much of the general information about plotting can be found in the discussion
+of `plot`; information specific to 3-d can be found in the `splot` section.
+
+`plot` operates in either rectangular or polar coordinates -- see `set polar`
+for details of the latter.  `splot` operates only in rectangular coordinates,
+but the @ref{mapping} command allows for a few other coordinate systems to be
+treated.  In addition, the @ref{using} option allows both `plot` and `splot` to
+treat almost any coordinate system you'd care to define.
+
+`plot` also lets you use each of the four borders -- x (bottom), x2 (top), y
+(left) and y2 (right) -- as an independent axis.  The `axes` option lets you
+choose which pair of axes a given function or data set is plotted against.  A
+full complement of `set` commands exists to give you complete control over
+the scales and labelling of each axis.  Some commands have the name of an
+axis built into their names, such as @ref{xlabel}.  Other commands have one
+or more axis names as options, such as `set logscale xy`.  Commands and
+options controlling the z axis have no effect on 2-d graphs.
+
+`splot` can plot surfaces and contours in addition to points and/or lines.
+In addition to `splot`, see @ref{isosamples} for information about defining
+the grid for a 3-d function;  @ref{datafile} for information about the
+requisite file structure for 3-d data values; and @ref{contour} and
+@ref{cntrparam} for information about contours.
+
+In `splot`, control over the scales and labels of the axes are the same as
+with `plot`, except that commands and options controlling the x2 and y2 axes
+have no effect whereas of course those controlling the z axis do take effect.
+
+@node Start-up, String_constants_and_string_variables, Plotting, gnuplot
+@section Start-up
+
+@c ^ <a name="start-up"></a>
+@cindex startup
+
+@cindex start
+
+@cindex .gnuplot
+
+When `gnuplot` is run, it looks for an initialization file to load.
+This file is called `.gnuplot` on Unix and AmigaOS systems, and
+`GNUPLOT.INI` on other systems.  If this file is not found in the
+current directory, the program will look for it in the HOME directory
+(under AmigaOS, Atari(single)TOS, MS-DOS, Windows and OS/2, the
+environment variable `GNUPLOT` should contain the name of this
+directory; on Windows NT, it will use `USERPROFILE` if GNUPLOT isn't
+defined).  Note: if NOCWDRC is defined during the installation,
+`gnuplot` will not read from the current directory.
+
+If the initialization file is found, `gnuplot` executes the commands in it.
+These may be any legal `gnuplot` commands, but typically they are limited to
+setting the terminal and defining frequently-used functions or variables.
+
+@node String_constants_and_string_variables, Substitution_and_Command_line_macros, Start-up, gnuplot
+@section String constants and string variables
+
+@cindex strings
+
+@c ?string variables
+In addition to string constants, most gnuplot commands also accept a string
+variable, a string expression, or a function that returns a string.
+For example, the following four methods of creating a plot all result in the
+same plot title:
+
+@example
+      four = "4"
+      graph4 = "Title for plot #4"
+      graph(n) = sprintf("Title for plot #%d",n)
+
+@end example
+
+@example
+      plot 'data.4' title "Title for plot #4"
+      plot 'data.4' title graph4
+      plot 'data.4' title "Title for plot #".four
+      plot 'data.4' title graph(4)
+
+@end example
+
+Since integers are promoted to strings when operated on by the string
+concatenation operator, the following method also works:
+
+@example
+      N = 4
+      plot 'data.'.N title "Title for plot #".N
+
+@end example
+
+In general, elements on the command line will only be evaluated as possible
+string variables if they are not otherwise recognizable as part of the normal
+gnuplot syntax. So the following sequence of commands is legal, although
+probably should be avoided so as not to cause confusion:
+
+@example
+      plot = "my_datafile.dat"
+      title = "My Title"
+      plot plot title title
+
+@end example
+
+There are three binary operators that require string operands: the string
+concatenation operator ".", the string equality operator "eq" and the string
+inequality operator "ne".  The following example will print TRUE.
+
+@example
+     if ("A"."B" eq "AB") print "TRUE"
+
+@end example
+
+See also the two string formatting functions @ref{gprintf} and @ref{sprintf}.
+
+@cindex substring
+
+Substrings can be specified by appending a range specifier to any string,
+string variable, or string-valued function.  The range specifier has the
+form [begin:end], where begin is the index of the first character of the
+substring and end is the index of the last character of the substring.
+The first character has index 1.  The begin or end fields may be empty, or
+contain '*', to indicate the true start or end of the original string.
+E.g.  str[:] and str[*:*] both describe the full string str.
+
+@node Substitution_and_Command_line_macros, Syntax, String_constants_and_string_variables, gnuplot
+@section Substitution and Command line macros
+
+@cindex substitution
+
+When a command line to gnuplot is first read, i.e. before it is interpreted
+or executed, two forms of lexical substitution are performed. These are
+triggered by the presence of text in backquotes (ascii character 96) or
+preceded by @@ (ascii character 64).
+
+@menu
+* Substitution_of_system_commands_in_backquotes::  
+* Substitution_of_string_variables_as_macros::  
+* String_variables::            
+@end menu
+
+@node Substitution_of_system_commands_in_backquotes, Substitution_of_string_variables_as_macros, Substitution_and_Command_line_macros, Substitution_and_Command_line_macros
+@subsection Substitution of system commands in backquotes
+
+@c ?substitution backquotes
+@cindex backquotes
+
+@c ?system commands
+Command-line substitution is specified by a system command enclosed in
+backquotes.  This command is spawned and the output it produces replaces
+the backquoted text on the command line.  Some implementations also support
+pipes;  see @ref{special-filenames}.
+
+Command-line substitution can be used anywhere on the `gnuplot` command
+line, except inside strings delimited by single quotes.
+
+Example:
+
+This will run the program `leastsq` and replace `leastsq` (including
+backquotes) on the command line with its output:
+@example
+      f(x) = `leastsq`
+
+@end example
+
+or, in VMS
+@example
+      f(x) = `run leastsq`
+
+@end example
+
+These will generate labels with the current time and userid:
+@example
+      set label "generated on `date +%Y-%m-%d` by `whoami`" at 1,1
+      set timestamp "generated on %Y-%m-%d by `whoami`"
+
+@end example
+
+@node Substitution_of_string_variables_as_macros, String_variables, Substitution_of_system_commands_in_backquotes, Substitution_and_Command_line_macros
+@subsection Substitution of string variables as macros
+
+@c ?substitution macros
+@cindex macros
+@opindex macros
+
+
+@cindex exists
+@findex exists
+
+
+Substitution of command line macros is disabled by default, but may be
+enabled using the @ref{macros} command.  If macro substitution is enabled,
+the character @@ is used to trigger substitution of the current value of a
+string variable into the command line. The text in the string variable may
+contain any number of lexical elements.  This allows string variables to be
+used as command line macros.  Only string constants may be expanded using this
+mechanism, not string-valued expressions.
+For example:
+
+@example
+      set macros
+      style1 = "lines lt 4 lw 2"
+      style2 = "points lt 3 pt 5 ps 2"
+      range1 = "using 1:3"
+      range2 = "using 1:5"
+      plot "foo" @@range1 with @@style1, "bar" @@range2 with @@style2
+
+@end example
+
+The line containing @@ symbols is expanded on input, so that by the time it is
+executed the effect is identical to having typed in full
+
+@example
+      plot "foo" using 1:3 with lines lt 4 lw 2, \
+           "bar" using 1:5 with points lt 3 pt 5 ps 2
+
+@end example
+
+The function exists() may be useful in connection with macro evaluation.
+The following example checks that C can safely be expanded as the name of
+a user-defined variable:
+
+@example
+      C = "pi"
+      if (exists(C)) print C," = ", @@C
+
+@end example
+
+Macro expansion does not occur inside either single or double quotes.
+However macro expansion does occur inside backquotes.
+
+@node String_variables,  , Substitution_of_string_variables_as_macros, Substitution_and_Command_line_macros
+@subsection String variables, macros, and command line substitution
+
+@cindex mixing_macros_backquotes
+
+@c ?substitution mixing_macros_backquotes
+The interaction of string variables, backquotes and macro substitution is
+somewhat complicated.  Backquotes do not block macro substitution, so
+
+@example
+      filename = "mydata.inp"
+      lines = ` wc --lines @@filename | sed "s/ .*//" `
+
+@end example
+
+results in the number of lines in mydata.inp being stored in the integer
+variable lines. And double quotes do not block backquote substitution, so
+
+@example
+      mycomputer = "`uname -n`"
+
+@end example
+
+results in the string returned by the system command `uname -n` being stored
+in the string variable mycomputer.
+
+However, macro substitution is not performed inside double quotes, so you
+cannot define a system command as a macro and then use both macro and backquote
+substitution at the same time.
+
+@example
+       machine_id = "uname -n"
+       mycomputer = "`@@machine_id`"  # doesn't work!!
+
+@end example
+
+This fails because the double quotes prevent @@machine_id from being interpreted
+as a macro. To store a system command as a macro and execute it later you must
+instead include the backquotes as part of the macro itself.  This is
+accomplished by defining the macro as shown below.  Notice that the sprintf
+format nests all three types of quotes.
+
+@example
+      machine_id = sprintf('"`uname -n`"')
+      mycomputer = @@machine_id
+
+@end example
+
+@node Syntax, Time/Date_data, Substitution_and_Command_line_macros, gnuplot
+@section Syntax
+
+@cindex syntax
+
+@cindex specify
+
+@cindex punctuation
+
+Version 4 of gnuplot is much less sensitive than earlier versions to the
+order of keywords and suboptions. However, if you get error messages from
+specifying options that you think should work, please try rearranging them
+into the exact order listed by the documentation.
+
+Options and any accompanying parameters are separated by spaces whereas lists
+and coordinates are separated by commas.  Ranges are separated by colons and
+enclosed in brackets [], text and file names are enclosed in quotes, and a
+few miscellaneous things are enclosed in parentheses.  Braces @{@} are used for
+a few special purposes.
+
+Commas are used to separate coordinates on the `set` commands @ref{arrow},
+@ref{key}, and @ref{label}; the list of variables being fitted (the list after the
+`via` keyword on the @ref{fit} command); lists of discrete contours or the loop
+parameters which specify them on the @ref{cntrparam} command; the arguments
+of the `set` commands @ref{dgrid3d}, @ref{dummy}, @ref{isosamples}, @ref{offsets}, @ref{origin},
+@ref{samples}, @ref{size}, `time`, and @ref{view}; lists of tics or the loop parameters
+which specify them; the offsets for titles and axis labels; parametric
+functions to be used to calculate the x, y, and z coordinates on the `plot`,
+@ref{replot} and `splot` commands; and the complete sets of keywords specifying
+individual plots (data sets or functions) on the `plot`, @ref{replot} and `splot`
+commands.
+
+Parentheses are used to delimit sets of explicit tics (as opposed to loop
+parameters) and to indicate computations in the @ref{using} filter of the @ref{fit},
+`plot`, @ref{replot} and `splot` commands.
+
+(Parentheses and commas are also used as usual in function notation.)
+
+Square brackets are used to delimit ranges given in `set`, `plot`
+or `splot` commands.
+
+Colons are used to separate extrema in `range` specifications (whether they
+are given on `set`, `plot` or `splot` commands) and to separate entries in
+the @ref{using} filter of the `plot`, @ref{replot}, `splot` and @ref{fit} commands.
+
+Semicolons are used to separate commands given on a single command line.
+
+Braces are used in text to be specially processed by some terminals, like
+@ref{postscript}.  They are also used to denote complex numbers: @{3,2@} = 3 + 2i.
+
+At present you should not embed \n inside @{@} when using the PostScript
+terminal in `enhanced text` mode.
+
+The EEPIC, Imagen, Uniplex, LaTeX, and TPIC drivers allow a newline to be
+specified by \\ in a single-quoted string or \\\\ in a double-quoted string.
+
+@menu
+* Quote_Marks::                 
+@end menu
+
+@node Quote_Marks,  , Syntax, Syntax
+@subsection Quote Marks
+
+@cindex quotes
+
+@c ?syntax quotes
+Gnuplot uses three forms of quote marks for delimiting text strings,
+double-quote (ascii 34), single-quote (ascii 39), and backquote (ascii 96).
+
+Filenames may be entered with either single- or double-quotes.  In this
+manual the command examples generally single-quote filenames and double-quote
+other string tokens for clarity.
+
+String constants and text strings used for labels, titles, or other plot
+elements may be enclosed in either single quotes or double quotes. Further
+processing of the quoted text depends on the choice of quote marks.
+
+Backslash processing of special characters like \n (newline) and
+\345 (octal character code) is performed for double-quoted strings.  In
+single-quoted strings, backslashes are just ordinary characters.  To get
+a single-quote (ascii 39) in a single-quoted string, it has to be doubled.
+Thus the strings "d\" s' b\\" and 'd" s'' b\' are completely equivalent.
+
+Text justification is the same for each line of a multi-line string.
+Thus the center-justified string
+@example
+      "This is the first line of text.\nThis is the second line."
+@end example
+
+will produce
+@example
+                       This is the first line of text.
+                          This is the second line.
+@end example
+
+but
+@example
+      'This is the first line of text.\nThis is the second line.'
+@end example
+
+will produce
+@example
+          This is the first line of text.\nThis is the second line.
+
+@end example
+
+Enhanced text processing is performed for both double-quoted text and
+single-quoted text, but only by terminals supporting this mode.
+See `enhanced text`.
+
+Back-quotes are used to enclose system commands for substitution into the
+command line.  See `substitution`.
+
+@node Time/Date_data,  , Syntax, gnuplot
+@section Time/Date data
+
+@c ^ <a name="Time/Date data"></a>
+@c ^ <a name="Time/date"></a>
+@cindex time/date
+
+`gnuplot` supports the use of time and/or date information as input data.
+This feature is activated by the commands `set xdata time`, `set ydata time`,
+etc.
+
+Internally all times and dates are converted to the number of seconds from
+the year 2000.  The command @ref{timefmt} defines the format for all inputs:
+data files, ranges, tics, label positions---in short, anything that accepts a
+data value must receive it in this format.  Since only one input format can
+be in force at a given time, all time/date quantities being input at the same
+time must be presented in the same format.  Thus if both x and y data in a
+file are time/date, they must be in the same format.
+
+The conversion to and from seconds assumes Universal Time (which is the same
+as Greenwich Standard Time).  There is no provision for changing the time
+zone or for daylight savings.  If all your data refer to the same time zone
+(and are all either daylight or standard) you don't need to worry about these
+things.  But if the absolute time is crucial for your application, you'll
+need to convert to UT yourself.
+
+Commands like @ref{xrange} will re-interpret the integer according to
+@ref{timefmt}.  If you change @ref{timefmt}, and then `show` the quantity again, it
+will be displayed in the new @ref{timefmt}.  For that matter, if you give the
+deactivation command (like @ref{xdata}), the quantity will be shown in its
+numerical form.
+
+The commands `set format` or `set tics format` define the format that will be
+used for tic labels, whether or not the specified axis is time/date.
+
+If time/date information is to be plotted from a file, the @ref{using} option
+_must_ be used on the `plot` or `splot` command.  These commands simply use
+white space to separate columns, but white space may be embedded within the
+time/date string.  If you use tabs as a separator, some trial-and-error may
+be necessary to discover how your system treats them.
+
+The following example demonstrates time/date plotting.
+
+Suppose the file "data" contains records like
+
+@example
+      03/21/95 10:00  6.02e23
+
+@end example
+
+This file can be plotted by
+
+@example
+      set xdata time
+      set timefmt "%m/%d/%y"
+      set xrange ["03/21/95":"03/22/95"]
+      set format x "%m/%d"
+      set timefmt "%m/%d/%y %H:%M"
+      plot "data" using 1:3
+
+@end example
+
+which will produce xtic labels that look like "03/21".
+
+See the descriptions of each command for more details.
+
+@node Commands, Terminal_types, gnuplot, Top
+@chapter Commands
+
+@cindex commands
+
+This section lists the commands acceptable to `gnuplot` in alphabetical
+order.  Printed versions of this document contain all commands; on-line
+versions may not be complete.  Indeed, on some systems there may be no
+commands at all listed under this heading.
+
+Note that in most cases unambiguous abbreviations for command names and their
+options are permissible, i.e., "`p f(x) w li`" instead of "`plot f(x) with
+lines`".
+
+In the syntax descriptions, braces (@{@}) denote optional arguments and a
+vertical bar (|) separates mutually exclusive choices.
+
+@menu
+* cd::                          
+* call::                        
+* clear::                       
+* exit::                        
+* fit::                         
+* help::                        
+* history::                     
+* if::                          
+* load::                        
+* lower::                       
+* pause::                       
+* plot::                        
+* print::                       
+* pwd::                         
+* quit::                        
+* raise::                       
+* replot::                      
+* reread::                      
+* reset::                       
+* save::                        
+* set-show::                    
+* shell::                       
+* splot::                       
+* system_::                     
+* test::                        
+* undefine::                    
+* unset::                       
+* update::                      
+@end menu
+
+@node cd, call, Commands, Commands
+@section cd
+
+@c ?commands cd
+@cindex cd
+@cmindex cd
+
+
+The @ref{cd} command changes the working directory.
+
+Syntax:
+@example
+      cd '<directory-name>'
+
+@end example
+
+The directory name must be enclosed in quotes.
+
+Examples:
+@example
+      cd 'subdir'
+      cd ".."
+
+@end example
+
+It is recommended for DOS and Windows users to use
+single-quotes---backslash [\] has special significance inside
+double-quotes and has to be escaped.  For example,
+@example
+      cd "c:\newdata"
+@end example
+
+fails, but
+@example
+      cd 'c:\newdata'
+      cd "c:\\newdata"
+@end example
+
+works as expected.
+
+@node call, clear, cd, Commands
+@section call
+
+@c ?commands call
+@cindex call
+@cmindex call
+
+
+The @ref{call} command is identical to the load command with one exception: you
+can have up to ten additional parameters to the command (delimited according
+to the standard parser rules) which can be substituted into the lines read
+from the file.  As each line is read from the @ref{call}ed input file, it is
+scanned for the sequence `$` (dollar-sign) followed by a digit (0--9).  If
+found, the sequence is replaced by the corresponding parameter from the
+@ref{call} command line.  If the parameter was specified as a string in the
+@ref{call} line, it is substituted without its enclosing quotes.  Sequence `$#`
+is replaced by the number of passed parameters.  `$` followed by any character
+will be that character; e.g. use `$$` to get a single `$`.  Providing more
+than ten parameters on the @ref{call} command line will cause an error.  A
+parameter that was not provided substitutes as nothing.  Files being @ref{call}ed
+may themselves contain @ref{call} or `load` commands.
+
+The @ref{call} command _must_ be the last command on a multi-command line.
+
+Syntax:
+@example
+      call "<input-file>" <parameter-0> <parm-1> ... <parm-9>
+
+@end example
+
+The name of the input file must be enclosed in quotes, and it is recommended
+that parameters are similarly enclosed in quotes (future versions of gnuplot
+may treat quoted and unquoted arguments differently).
+
+Example:
+
+If the file 'calltest.gp' contains the line:
+@example
+      print "argc=$# p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x"
+
+@end example
+
+entering the command:
+@example
+      call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2"
+
+@end example
+
+will display:
+@example
+      argc=7 p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx
+
+@end example
+
+NOTE: there is a clash in syntax with the datafile @ref{using} callback
+operator.  Use `$$n` or `column(n)` to access column n from a datafile inside
+a @ref{call}ed datafile plot.
+
+@node clear, exit, call, Commands
+@section clear
+
+@c ?commands clear
+@cindex clear
+@cmindex clear
+
+
+The @ref{clear} command erases the current screen or output device as specified
+by @ref{output}.  This usually generates a formfeed on hardcopy devices.  Use
+@ref{terminal} to set the device type.
+
+For some terminals @ref{clear} erases only the portion of the plotting surface
+defined by @ref{size}, so for these it can be used in conjunction with @ref{multiplot} to create an inset.
+
+Example:
+@example
+      set multiplot
+      plot sin(x)
+      set origin 0.5,0.5
+      set size 0.4,0.4
+      clear
+      plot cos(x)
+      unset multiplot
+
+@end example
+
+Please see @ref{multiplot}, @ref{size}, and @ref{origin} for details of these
+commands.
+
+@node exit, fit, clear, Commands
+@section exit
+
+@c ?commands exit
+@cindex exit
+@cmindex exit
+
+
+The commands @ref{exit} and @ref{quit}, as well as the END-OF-FILE character (usually
+Ctrl-D) terminate input from the current input stream: terminal session, pipe,
+and file input (pipe).
+
+If input streams are nested (inherited `load` scripts), then reading will
+continue in the parent stream. When the top level stream is closed, the
+program itself will exit.
+
+The command `exit gnuplot` will immediately and unconditionally cause gnuplot
+to exit even if the input stream is multiply nested.  In this case any open
+output files may not be completed cleanly. Example of use:
+
+@example
+      bind "ctrl-x" "unset output; exit gnuplot"
+
+@end example
+
+See help for `batch/interactive` for more details.
+
+@node fit, help, exit, Commands
+@section fit
+
+@c ?commands fit
+@cindex fit
+@cmindex fit
+
+
+@cindex least-squares
+
+@cindex Marquardt
+
+The @ref{fit} command can fit a user-defined function to a set of data points
+(x,y) or (x,y,z), using an implementation of the nonlinear least-squares
+(NLLS) Marquardt-Levenberg algorithm.  Any user-defined variable occurring in
+the function body may serve as a fit parameter, but the return type of the
+function must be real.
+
+Syntax:
+@example
+      fit @{[xrange] @{[yrange]@}@} <function> '<datafile>'
+          @{datafile-modifiers@}
+          via '<parameter file>' | <var1>@{,<var2>,...@}
+
+@end example
+
+Ranges may be specified to temporarily limit the data which is to be fitted;
+any out-of-range data points are ignored. The syntax is
+@example
+      [@{dummy_variable=@}@{<min>@}@{:<max>@}],
+@end example
+
+analogous to `plot`; see @ref{ranges}.
+
+<function> is any valid `gnuplot` expression, although it is usual to use a
+previously user-defined function of the form f(x) or f(x,y).
+
+<datafile> is treated as in the `plot` command.  All the @ref{datafile}
+modifiers (@ref{using}, @ref{every},...) except @ref{smooth} and the deprecated @ref{thru}
+are applicable to @ref{fit}. See @ref{datafile}.
+
+The default data formats for fitting functions with a single independent
+variable, y=f(x), are @{x:@}y or x:y:s; those formats can be changed with
+the datafile @ref{using} qualifier.  The third item (a column number or an
+expression), if present, is interpreted as the standard deviation of the
+corresponding y value and is used to compute a weight for the datum, 1/s**2.
+Otherwise, all data points are weighted equally, with a weight of one.
+Note that if you don't specify a @ref{using} option at all, no y deviations are
+read from the datafile even if it does have a third column, so you'll
+always get unit weights.
+
+To fit a function with two independent variables, z=f(x,y), the required
+format is @ref{using} with four items, x:y:z:s.  The complete format must be
+given---no default columns are assumed for a missing token.  Weights for
+each data point are evaluated from 's' as above.  If error estimates are
+not available, a constant value can be specified as a constant expression
+(see @ref{using}), e.g., `using 1:2:3:(1)`.
+
+Multiple datasets may be simultaneously fit with functions of one
+independent variable by making y a 'pseudo-variable', e.g., the dataline
+number, and fitting as two independent variables.  See @ref{multi-branch}.
+
+The `via` qualifier specifies which parameters are to be adjusted, either
+directly, or by referencing a parameter file.
+
+Examples:
+@example
+      f(x) = a*x**2 + b*x + c
+      g(x,y) = a*x**2 + b*y**2 + c*x*y
+      FIT_LIMIT = 1e-6
+      fit f(x) 'measured.dat' via 'start.par'
+      fit f(x) 'measured.dat' using 3:($7-5) via 'start.par'
+      fit f(x) './data/trash.dat' using 1:2:3 via a, b, c
+      fit g(x,y) 'surface.dat' using 1:2:3:(1) via a, b, c
+
+@end example
+
+After each iteration step, detailed information about the current state
+of the fit is written to the display.  The same information about the
+initial and final states is written to a log file, "fit.log".  This file
+is always appended to, so as to not lose any previous fit history;  it
+should be deleted or renamed as desired. By using the command
+`set fit logfile`, the name of the log file can be changed.
+
+If gnuplot was built with this option, and you activated it using `set fit
+errorvariables`, the error for each fitted parameter will be stored in
+a variable named like the parameter, but with "_err" appended.  Thus the
+errors can be used as input for further computations.
+
+The fit may be interrupted by pressing Ctrl-C (any key but Ctrl-C under
+MSDOS and Atari Multitasking Systems).  After the current iteration
+completes, you have the option to (1) stop the fit and accept the current
+parameter values, (2) continue the fit, (3) execute a `gnuplot` command
+as specified by the environment variable FIT_SCRIPT.  The default for
+FIT_SCRIPT is @ref{replot}, so if you had previously plotted both the data
+and the fitting function in one graph, you can display the current state
+of the fit.
+
+Once @ref{fit} has finished, the @ref{update} command may be used to store final
+values in a file for subsequent use as a parameter file.   See @ref{update}
+for details.
+
+@menu
+* adjustable_parameters::       
+* short_introduction::          
+* error_estimates::             
+* control::                     
+* multi-branch::                
+* starting_values::             
+* tips::                        
+@end menu
+
+@node adjustable_parameters, short_introduction, fit, fit
+@subsection adjustable parameters
+
+@c ?commands fit parameters
+@c ?fit parameters
+@c ?commands fit adjustable_parameters
+@c ?fit adjustable_parameters
+@cindex fit_parameters
+
+There are two ways that `via` can specify the parameters to be adjusted,
+either directly on the command line or indirectly, by referencing a
+parameter file.  The two use different means to set initial values.
+
+Adjustable parameters can be specified by a comma-separated list of variable
+names after the `via` keyword.  Any variable that is not already defined
+is created with an initial value of 1.0.  However, the fit is more likely
+to converge rapidly if the variables have been previously declared with more
+appropriate starting values.
+
+In a parameter file, each parameter to be varied and a corresponding initial
+value are specified, one per line, in the form
+@example
+      varname = value
+
+@end example
+
+Comments, marked by '#', and blank lines are permissible.  The
+special form
+@example
+      varname = value       # FIXED
+
+@end example
+
+means that the variable is treated as a 'fixed parameter', initialized by the
+parameter file, but not adjusted by @ref{fit}.  For clarity, it may be useful to
+designate variables as fixed parameters so that their values are reported by
+@ref{fit}.  The keyword `# FIXED` has to appear in exactly this form.
+
+
+@node short_introduction, error_estimates, adjustable_parameters, fit
+@subsection short introduction
+
+@c ?commands fit beginners_guide
+@c ?fit beginners_guide
+@c ?fit guide
+@cindex fitting
+
+@ref{fit} is used to find a set of parameters that 'best' fits your data to your
+user-defined function.  The fit is judged on the basis of the sum of the
+squared differences or 'residuals' (SSR) between the input data points and
+the function values, evaluated at the same places.  This quantity is often
+called 'chisquare' (i.e., the Greek letter chi, to the power of 2).  The
+algorithm attempts to minimize SSR, or more precisely, WSSR, as the residuals
+are 'weighted' by the input data errors (or 1.0) before being squared;
+see `fit error_estimates` for details.
+
+That's why it is called 'least-squares fitting'.  Let's look at an example
+to see what is meant by 'non-linear', but first we had better go over some
+terms.  Here it is convenient to use z as the dependent variable for
+user-defined functions of either one independent variable, z=f(x), or two
+independent variables, z=f(x,y).  A parameter is a user-defined variable
+that @ref{fit} will adjust, i.e., an unknown quantity in the function
+declaration.  Linearity/non-linearity refers to the relationship of the
+dependent variable, z, to the parameters which @ref{fit} is adjusting, not of
+z to the independent variables, x and/or y.  (To be technical, the
+second @{and higher@} derivatives of the fitting function with respect to
+the parameters are zero for a linear least-squares problem).
+
+For linear least-squares (LLS), the user-defined function will be a sum of
+simple functions, not involving any parameters, each multiplied by one
+parameter.  NLLS handles more complicated functions in which parameters can
+be used in a large number of ways.  An example that illustrates the
+difference between linear and nonlinear least-squares is the Fourier series.
+One member may be written as
+@example
+     z=a*sin(c*x) + b*cos(c*x).
+@end example
+
+If a and b are the unknown parameters and c is constant, then estimating
+values of the parameters is a linear least-squares problem.  However, if
+c is an unknown parameter, the problem is nonlinear.
+
+In the linear case, parameter values can be determined by comparatively
+simple linear algebra, in one direct step.  However LLS is a special case
+which is also solved along with more general NLLS problems by the iterative
+procedure that `gnuplot` uses.  @ref{fit} attempts to find the minimum by doing
+a search.  Each step (iteration) calculates WSSR with a new set of parameter
+values.  The Marquardt-Levenberg algorithm selects the parameter values for
+the next iteration.  The process continues until a preset criterion is met,
+either (1) the fit has "converged" (the relative change in WSSR is less than
+FIT_LIMIT), or (2) it reaches a preset iteration count limit, FIT_MAXITER
+(see @ref{variables}).  The fit may also be interrupted
+and subsequently halted from the keyboard (see @ref{fit}).  The user variable
+FIT_CONVERGED contains 1 if the previous fit command terminated due to
+convergence; it contains 0 if the previous fit terminated for any other
+reason.
+
+Often the function to be fitted will be based on a model (or theory) that
+attempts to describe or predict the behaviour of the data.  Then @ref{fit} can
+be used to find values for the free parameters of the model, to determine
+how well the data fits the model, and to estimate an error range for each
+parameter.  See `fit error_estimates`.
+
+Alternatively, in curve-fitting, functions are selected independent of
+a model (on the basis of experience as to which are likely to describe
+the trend of the data with the desired resolution and a minimum number
+of parameters*functions.)  The @ref{fit} solution then provides an analytic
+representation of the curve.
+
+However, if all you really want is a smooth curve through your data points,
+the @ref{smooth} option to `plot` may be what you've been looking for rather
+than @ref{fit}.
+
+@node error_estimates, control, short_introduction, fit
+@subsection error estimates
+
+@c ?commands fit error_estimates
+@c ?fit error_estimates
+@c ?fit errors
+In @ref{fit}, the term "error" is used in two different contexts, data error
+estimates and parameter error estimates.
+
+Data error estimates are used to calculate the relative weight of each data
+point when determining the weighted sum of squared residuals, WSSR or
+chisquare.  They can affect the parameter estimates, since they determine
+how much influence the deviation of each data point from the fitted function
+has on the final values.  Some of the @ref{fit} output information, including
+the parameter error estimates, is more meaningful if accurate data error
+estimates have been provided.
+
+The 'statistical overview' describes some of the @ref{fit} output and gives some
+background for the 'practical guidelines'.
+
+@menu
+* statistical_overview::        
+* practical_guidelines::        
+@end menu
+
+@node statistical_overview, practical_guidelines, error_estimates, error_estimates
+@subsubsection statistical overview
+
+@c ?commands fit error statistical_overview
+@c ?fit error statistical_overview
+@cindex statistical_overview
+
+The theory of non-linear least-squares (NLLS) is generally described in terms
+of a normal distribution of errors, that is, the input data is assumed to be
+a sample from a population having a given mean and a Gaussian (normal)
+distribution about the mean with a given standard deviation.  For a sample of
+sufficiently large size, and knowing the population standard deviation, one
+can use the statistics of the chisquare distribution to describe a "goodness
+of fit" by looking at the variable often called "chisquare".  Here, it is
+sufficient to say that a reduced chisquare (chisquare/degrees of freedom,
+where degrees of freedom is the number of datapoints less the number of
+parameters being fitted) of 1.0 is an indication that the weighted sum of
+squared deviations between the fitted function and the data points is the
+same as that expected for a random sample from a population characterized by
+the function with the current value of the parameters and the given standard
+deviations.
+
+If the standard deviation for the population is not constant, as in counting
+statistics where variance = counts, then each point should be individually
+weighted when comparing the observed sum of deviations and the expected sum
+of deviations.
+
+At the conclusion @ref{fit} reports 'stdfit', the standard deviation of the fit,
+which is the rms of the residuals, and the variance of the residuals, also
+called 'reduced chisquare' when the data points are weighted.  The number of
+degrees of freedom (the number of data points minus the number of fitted
+parameters) is used in these estimates because the parameters used in
+calculating the residuals of the datapoints were obtained from the same data.
+These values are exported to the variables
+@example
+      FIT_NDF = Number of degrees of freedom
+      FIT_WSSR = Weighted sum-of-squares residual
+      FIT_STDFIT = sqrt(WSSR/NDF)
+
+@end example
+
+To estimate confidence levels for the parameters, one can use the minimum
+chisquare obtained from the fit and chisquare statistics to determine the
+value of chisquare corresponding to the desired confidence level, but
+considerably more calculation is required to determine the combinations of
+parameters which produce such values.
+
+Rather than determine confidence intervals, @ref{fit} reports parameter error
+estimates which are readily obtained from the variance-covariance matrix
+after the final iteration.  By convention, these estimates are called
+"standard errors" or "asymptotic standard errors", since they are calculated
+in the same way as the standard errors (standard deviation of each parameter)
+of a linear least-squares problem, even though the statistical conditions for
+designating the quantity calculated to be a standard deviation are not
+generally valid for the NLLS problem.  The asymptotic standard errors are
+generally over-optimistic and should not be used for determining confidence
+levels, but are useful for qualitative purposes.
+
+The final solution also produces a correlation matrix, which gives an
+indication of the correlation of parameters in the region of the solution;
+if one parameter is changed, increasing chisquare, does changing another
+compensate?  The main diagonal elements, autocorrelation, are all 1; if
+all parameters were independent, all other elements would be nearly 0.  Two
+variables which completely compensate each other would have an off-diagonal
+element of unit magnitude, with a sign depending on whether the relation is
+proportional or inversely proportional.  The smaller the magnitudes of the
+off-diagonal elements, the closer the estimates of the standard deviation
+of each parameter would be to the asymptotic standard error.
+
+@node practical_guidelines,  , statistical_overview, error_estimates
+@subsubsection practical guidelines
+
+@c ?commands fit error practical_guidelines
+@c ?fit error practical_guidelines
+@cindex practical_guidelines
+
+@cindex guidelines
+
+If you have a basis for assigning weights to each data point, doing so lets
+you make use of additional knowledge about your measurements, e.g., take into
+account that some points may be more reliable than others.  That may affect
+the final values of the parameters.
+
+Weighting the data provides a basis for interpreting the additional @ref{fit}
+output after the last iteration.  Even if you weight each point equally,
+estimating an average standard deviation rather than using a weight of 1
+makes WSSR a dimensionless variable, as chisquare is by definition.
+
+Each fit iteration will display information which can be used to evaluate
+the progress of the fit.  (An '*' indicates that it did not find a smaller
+WSSR and is trying again.)  The 'sum of squares of residuals', also called
+'chisquare', is the WSSR between the data and your fitted function; @ref{fit}
+has minimized that.  At this stage, with weighted data, chisquare is expected
+to approach the number of degrees of freedom (data points minus parameters).
+The WSSR can be used to calculate the reduced chisquare (WSSR/ndf) or stdfit,
+the standard deviation of the fit, sqrt(WSSR/ndf).  Both of these are
+reported for the final WSSR.
+
+If the data are unweighted, stdfit is the rms value of the deviation of the
+data from the fitted function, in user units.
+
+If you supplied valid data errors, the number of data points is large enough,
+and the model is correct, the reduced chisquare should be about unity.  (For
+details, look up the 'chi-squared distribution' in your favourite statistics
+reference.)  If so, there are additional tests, beyond the scope of this
+overview, for determining how well the model fits the data.
+
+A reduced chisquare much larger than 1.0 may be due to incorrect data error
+estimates, data errors not normally distributed, systematic measurement
+errors, 'outliers', or an incorrect model function.  A plot of the residuals,
+e.g., `plot 'datafile' using 1:($2-f($1))`, may help to show any systematic
+trends.  Plotting both the data points and the function may help to suggest
+another model.
+
+Similarly, a reduced chisquare less than 1.0 indicates WSSR is less than that
+expected for a random sample from the function with normally distributed
+errors.  The data error estimates may be too large, the statistical
+assumptions may not be justified, or the model function may be too general,
+fitting fluctuations in a particular sample in addition to the underlying
+trends.  In the latter case, a simpler function may be more appropriate.
+
+You'll have to get used to both @ref{fit} and the kind of problems you apply it
+to before you can relate the standard errors to some more practical estimates
+of parameter uncertainties or evaluate the significance of the correlation
+matrix.
+
+Note that @ref{fit}, in common with most NLLS implementations, minimizes the
+weighted sum of squared distances (y-f(x))**2.  It does not provide any means
+to account for "errors" in the values of x, only in y.  Also, any "outliers"
+(data points outside the normal distribution of the model) will have an
+exaggerated effect on the solution.
+
+@node control, multi-branch, error_estimates, fit
+@subsection control
+
+@c ?commands fit control
+@c ?fit control
+There are a number of `gnuplot` variables that can be defined to affect
+@ref{fit}.  Those which can be defined once `gnuplot` is running are listed
+under 'control_variables' while those defined before starting `gnuplot`
+are listed under 'environment_variables'.
+
+@menu
+* control_variables::           
+* environment_variables::       
+@end menu
+
+@node control_variables, environment_variables, control, control
+@subsubsection control variables
+
+@c ?commands fit control variables
+@c ?fit control variables
+The default epsilon limit (1e-5) may be changed by declaring a value for
+@example
+      FIT_LIMIT
+@end example
+
+When the sum of squared residuals changes between two iteration steps by
+a factor less than this number (epsilon), the fit is considered to have
+'converged'.
+
+The maximum number of iterations may be limited by declaring a value for
+@example
+      FIT_MAXITER
+@end example
+
+A value of 0 (or not defining it at all)  means that there is no limit.
+
+If you need even more control about the algorithm, and know the
+Marquardt-Levenberg algorithm well, there are some more variables to
+influence it. The startup value of `lambda` is normally calculated
+automatically from the ML-matrix, but if you want to, you may provide
+your own one with
+@example
+      FIT_START_LAMBDA
+@end example
+
+Specifying FIT_START_LAMBDA as zero or less will re-enable the automatic
+selection. The variable
+@example
+      FIT_LAMBDA_FACTOR
+@end example
+
+gives the factor by which `lambda` is increased or decreased whenever
+the chi-squared target function increased or decreased significantly.
+Setting FIT_LAMBDA_FACTOR to zero re-enables the default factor of
+10.0.
+
+Other variables with the FIT_ prefix may be added to @ref{fit}, so it is safer
+not to use that prefix for user-defined variables.
+
+The variables FIT_SKIP and FIT_INDEX were used by earlier releases of
+`gnuplot` with a 'fit' patch called `gnufit` and are no longer available.
+The datafile @ref{every} modifier provides the functionality of FIT_SKIP.
+FIT_INDEX was used for multi-branch fitting, but multi-branch fitting of
+one independent variable is now done as a pseudo-3D fit in which the
+second independent variable and @ref{using} are used to specify the branch.
+See @ref{multi-branch}.
+
+@node environment_variables,  , control_variables, control
+@subsubsection environment variables
+
+@c ?commands fit control environment
+@c ?fit control environment
+The environment variables must be defined before `gnuplot` is executed; how
+to do so depends on your operating system.
+
+@example
+      FIT_LOG
+@end example
+
+changes the name (and/or path) of the file to which the fit log will be
+written from the default of "fit.log" in the working directory. The default
+value can be overwritten using the command `set fit logfile`.
+
+@example
+      FIT_SCRIPT
+@end example
+
+specifies a command that may be executed after an user interrupt. The default
+is @ref{replot}, but a `plot` or `load` command may be useful to display a plot
+customized to highlight the progress of the fit.
+
+@node multi-branch, starting_values, control, fit
+@subsection multi-branch
+
+@c ?commands fit multi-branch
+@c ?fit multi-branch
+@cindex multi-branch
+
+@cindex branch
+
+In multi-branch fitting, multiple data sets can be simultaneously fit with
+functions of one independent variable having common parameters by minimizing
+the total WSSR.  The function and parameters (branch) for each data set are
+selected by using a 'pseudo-variable', e.g., either the dataline number (a
+'column' index of -1) or the datafile index (-2), as the second independent
+variable.
+
+Example:  Given two exponential decays of the form, z=f(x), each describing
+a different data set but having a common decay time, estimate the values of
+the parameters.  If the datafile has the format x:z:s, then
+@example
+     f(x,y) = (y==0) ? a*exp(-x/tau) : b*exp(-x/tau)
+     fit f(x,y) 'datafile' using  1:-2:2:3  via a, b, tau
+
+@end example
+
+For a more complicated example, see the file "hexa.fnc" used by the
+"fit.dem" demo.
+
+Appropriate weighting may be required since unit weights may cause one
+branch to predominate if there is a difference in the scale of the dependent
+variable.  Fitting each branch separately, using the multi-branch solution
+as initial values, may give an indication as to the relative effect of each
+branch on the joint solution.
+
+@node starting_values, tips, multi-branch, fit
+@subsection starting values
+
+@c ?commands fit starting_values
+@c ?fit starting_values
+@cindex starting_values
+
+Nonlinear fitting is not guaranteed to converge to the global optimum (the
+solution with the smallest sum of squared residuals, SSR), and can get stuck
+at a local minimum.  The routine has no way to determine that;  it is up to
+you to judge whether this has happened.
+
+@ref{fit} may, and often will get "lost" if started far from a solution, where
+SSR is large and changing slowly as the parameters are varied, or it may
+reach a numerically unstable region (e.g., too large a number causing a
+floating point overflow) which results in an "undefined value" message
+or `gnuplot` halting.
+
+To improve the chances of finding the global optimum, you should set the
+starting values at least roughly in the vicinity of the solution, e.g.,
+within an order of magnitude, if possible.  The closer your starting values
+are to the solution, the less chance of stopping at another minimum.  One way
+to find starting values is to plot data and the fitting function on the same
+graph and change parameter values and @ref{replot} until reasonable similarity
+is reached.  The same plot is also useful to check whether the fit stopped at
+a minimum with a poor fit.
+
+Of course, a reasonably good fit is not proof there is not a "better" fit (in
+either a statistical sense, characterized by an improved goodness-of-fit
+criterion, or a physical sense, with a solution more consistent with the
+model.)  Depending on the problem, it may be desirable to @ref{fit} with various
+sets of starting values, covering a reasonable range for each parameter.
+
+@node tips,  , starting_values, fit
+@subsection tips
+
+@c ?commands fit tips
+@c ?fit tips
+@cindex tips
+
+Here are some tips to keep in mind to get the most out of @ref{fit}.  They're not
+very organized, so you'll have to read them several times until their essence
+has sunk in.
+
+The two forms of the `via` argument to @ref{fit} serve two largely distinct
+purposes.  The `via "file"` form is best used for (possibly unattended) batch
+operation, where you just supply the startup values in a file and can later
+use @ref{update} to copy the results back into another (or the same) parameter
+file.
+
+The `via var1, var2, ...` form is best used interactively, where the command
+history mechanism may be used to edit the list of parameters to be fitted or
+to supply new startup values for the next try.  This is particularly useful
+for hard problems, where a direct fit to all parameters at once won't work
+without good starting values.  To find such, you can iterate several times,
+fitting only some of the parameters, until the values are close enough to the
+goal that the final fit to all parameters at once will work.
+
+Make sure that there is no mutual dependency among parameters of the function
+you are fitting.  For example, don't try to fit a*exp(x+b), because
+a*exp(x+b)=a*exp(b)*exp(x).  Instead, fit either a*exp(x) or exp(x+b).
+
+A technical issue:  the parameters must not be too different in magnitude.
+The larger the ratio of the largest and the smallest absolute parameter
+values, the slower the fit will converge.  If the ratio is close to or above
+the inverse of the machine floating point precision, it may take next to
+forever to converge, or refuse to converge at all.  You will have to adapt
+your function to avoid this, e.g., replace 'parameter' by '1e9*parameter' in
+the function definition, and divide the starting value by 1e9.
+
+If you can write your function as a linear combination of simple functions
+weighted by the parameters to be fitted, by all means do so.  That helps a
+lot, because the problem is no longer nonlinear and should converge with only
+a small number of iterations, perhaps just one.
+
+Some prescriptions for analysing data, given in practical experimentation
+courses, may have you first fit some functions to your data, perhaps in a
+multi-step process of accounting for several aspects of the underlying
+theory one by one, and then extract the information you really wanted from
+the fitting parameters of those functions.  With @ref{fit}, this may often be
+done in one step by writing the model function directly in terms of the
+desired parameters.  Transforming data can also quite often be avoided,
+though sometimes at the cost of a more difficult fit problem.  If you think
+this contradicts the previous paragraph about simplifying the fit function,
+you are correct.
+
+A "singular matrix" message indicates that this implementation of the
+Marquardt-Levenberg algorithm can't calculate parameter values for the next
+iteration.  Try different starting values, writing the function in another
+form, or a simpler function.
+
+Finally, a nice quote from the manual of another fitting package (fudgit),
+that kind of summarizes all these issues:  "Nonlinear fitting is an art!"
+
+@node help, history, fit, Commands
+@section help
+
+@c ?commands help
+@cindex help
+@cmindex help
+
+
+The @ref{help} command displays on-line help. To specify information on a
+particular topic use the syntax:
+
+@example
+      help @{<topic>@}
+
+@end example
+
+If <topic> is not specified, a short message is printed about `gnuplot`.
+After help for the requested topic is given, a menu of subtopics is given;
+help for a subtopic may be requested by typing its name, extending the help
+request.  After that subtopic has been printed, the request may be extended
+again or you may go back one level to the previous topic.  Eventually, the
+`gnuplot` command line will return.
+
+If a question mark (?) is given as the topic, the list of topics currently
+available is printed on the screen.
+
+@node history, if, help, Commands
+@section history
+
+@c ?commands history
+@cindex history
+@cmindex history
+
+
+`history` command lists or saves previous entries in the history of the
+command line editing, or executes an entry.
+
+Here you find 'usage by examples':
+
+@example
+      history               # show the complete history
+      history 5             # show last 5 entries in the history
+      history quiet 5       # show last 5 entries without entry numbers
+      history "hist.gp"     # write the complete history to file hist.gp
+      history "hist.gp" append # append the complete history to file hist.gp
+      history 10 "hist.gp"  # write last 10 commands to file hist.gp
+      history 10 "|head -5 >>diary.gp" # write 5 history commands using pipe
+      history ?load         # show all history entries starting with "load"
+      history ?"set c"      # like above, several words enclosed in quotes
+      hi !reread            # execute last entry starting with "reread"
+      hist !"set xr"        # like above, several words enclosed in quotes
+      hi !hi                # guess yourself :-))
+
+@end example
+
+On systems which support a popen function (Unix), the output of history can be
+piped through an external program by starting the file name with a '|', as one
+of the above examples demonstrates.
+
+@node if, load, history, Commands
+@section if
+
+@c ?commands if
+@cindex if
+@cmindex if
+
+
+The @ref{if} command allows commands to be executed conditionally.
+
+Syntax:
+@example
+      if (<condition>) <command-line> [; else if (<condition>) ...; else ...]
+
+@end example
+
+<condition> will be evaluated.  If it is true (non-zero), then the command(s)
+of the <command-line> will be executed.  If <condition> is false (zero), then
+the entire <command-line> is ignored until the next occurrence of `else`.
+Note that use of `;` to allow multiple commands on the same line will
+_not_ end the conditionalized commands.
+
+Examples:
+@example
+      pi=3
+      if (pi!=acos(-1)) print "?Fixing pi!"; pi=acos(-1); print pi
+@end example
+
+will display:
+@example
+      ?Fixing pi!
+      3.14159265358979
+@end example
+
+but
+@example
+      if (1==2) print "Never see this"; print "Or this either"
+@end example
+
+will not display anything.
+
+else:
+@example
+      v=0
+      v=v+1; if (v%2) print "2" ; else if (v%3) print "3"; else print "fred"
+@end example
+
+(repeat the last line repeatedly!)
+
+See @ref{reread} for an example of how @ref{if} and @ref{reread} can be used together to
+perform a loop.
+
+@node load, lower, if, Commands
+@section load
+
+@c ?commands load
+@cindex load
+@cmindex load
+
+
+The `load` command executes each line of the specified input file as if it
+had been typed in interactively.  Files created by the @ref{save} command can
+later be `load`ed.  Any text file containing valid commands can be created
+and then executed by the `load` command.  Files being `load`ed may themselves
+contain `load` or @ref{call} commands.  See `comments` for information about
+comments in commands.  To `load` with arguments, see @ref{call}.
+
+The `load` command _must_ be the last command on a multi-command line.
+
+Syntax:
+@example
+      load "<input-file>"
+
+@end example
+
+The name of the input file must be enclosed in quotes.
+
+The special filename "-" may be used to `load` commands from standard input.
+This allows a `gnuplot` command file to accept some commands from standard
+input.  Please see help for `batch/interactive` for more details.
+
+On some systems which support a popen function (Unix), the load file can be
+read from a pipe by starting the file name with a '<'.
+
+Examples:
+@example
+      load 'work.gnu'
+      load "func.dat"
+      load "< loadfile_generator.sh"
+
+@end example
+
+The `load` command is performed implicitly on any file names given as
+arguments to `gnuplot`.  These are loaded in the order specified, and
+then `gnuplot` exits.
+
+@node lower, pause, load, Commands
+@section lower
+
+@c ?commands lower
+@cindex lower
+@cmindex lower
+
+
+Syntax:
+@example
+      lower @{plot_window_nb@}
+
+@end example
+
+The @ref{lower} command lowers (opposite to @ref{raise}) plot window(s) associated
+with the interactive terminal of your gnuplot session, i.e. `pm`, `win`, `wxt`
+or `x11`. It puts the plot window to bottom in the z-order windows stack of
+the window manager of your desktop.
+
+As `x11` and `wxt` support multiple plot windows, then by default they lower
+these windows in descending order of most recently created on top to the least
+recently created on bottom. If a plot number is supplied as an optional
+parameter, only the associated plot window will be lowered if it exists.
+
+The optional parameter is ignored for single plot-window terminals, i.e. `pm`
+and `win`.
+
+@node pause, plot, lower, Commands
+@section pause
+
+@c ?commands pause
+@cindex pause
+@cmindex pause
+
+
+@c ?pause mouse
+The @ref{pause} command displays any text associated with the command and then
+waits a specified amount of time or until the carriage return is pressed.
+@ref{pause} is especially useful in conjunction with `load` files.
+
+Syntax:
+@example
+      pause <time> @{"<string>"@}
+      pause mouse @{<endcondition>@}@{, <endcondition>@} @{"<string>"@}
+
+@end example
+
+<time> may be any constant or expression.  Choosing -1 will wait until a
+carriage return is hit, zero (0) won't pause at all, and a positive number
+will wait the specified number of seconds.  The time is rounded to an integer
+number of seconds if subsecond time resolution is not supported by the given
+platform.  `pause 0` is synonymous with @ref{print}.
+
+If the current terminal supports mousing, then `pause mouse` will terminate
+on either a mouse click or on ctrl-C.  For all other terminals, or if mousing
+is not active, `pause mouse` is equivalent to `pause -1`.
+
+If one or more end conditions are given after `pause mouse`, then any one of
+the conditions will terminate the pause. The possible end conditions are
+`keypress`, `button1`, `button2`, `button3`, `close`, and `any`.
+If the pause terminates on a keypress, then the ascii value of the key pressed
+is returned in MOUSE_KEY.  The character itself is returned as a one character
+string in MOUSE_CHAR. Hotkeys (bind command) are disabled if keypress is one of
+the end conditions.  Zooming is disabled if button3 is one of the end 
+conditions. 
+
+In all cases the coordinates of the mouse are returned in variables MOUSE_X,
+MOUSE_Y, MOUSE_X2, MOUSE_Y2.  See @ref{variables}.
+
+Note: Since @ref{pause} communicates with the operating system rather than the
+graphics, it may behave differently with different device drivers (depending
+upon how text and graphics are mixed).
+
+Examples:
+@example
+      pause -1    # Wait until a carriage return is hit
+      pause 3     # Wait three seconds
+      pause -1  "Hit return to continue"
+      pause 10  "Isn't this pretty?  It's a cubic spline."
+      pause mouse "Click any mouse button on selected data point"
+      pause mouse keypress "Type a letter from A-F in the active window"
+      pause mouse button1,keypress
+      pause mouse any "Any key or button will terminate"
+
+@end example
+
+The variant "pause mouse key" will resume after any keypress in the active
+plot window. If you want to wait for a particular key to be pressed, you can
+use a reread loop such as:
+
+@example
+      printf "I will resume after you hit the Tab key in the plot window"
+      load "wait_for_tab"
+
+@end example
+
+File "wait_for_tab" contains the lines
+
+@example
+      pause mouse key
+      if (MOUSE_KEY != 9) reread
+
+@end example
+
+
+@node plot, print, pause, Commands
+@section plot
+
+@c ?commands plot
+@cindex plot
+@cmindex plot
+
+
+`plot` is the primary command for drawing plots with `gnuplot`.  It creates
+plots of functions and data in many, many ways.  `plot` is used to draw 2-d
+functions and data; `splot` draws 2-d projections of 3-d surfaces and data.
+`plot` and `splot` contain many common features; see `splot` for differences.
+Note specifically that although the `binary <binary list>` variation does
+work for both `plot` and `splot`, there are small differences between these
+modes.  Furthermore, `plot`'s `axes` option does not exist for `splot`.
+
+Syntax:
+@example
+      plot @{<ranges>@}
+           @{<function> | @{"<datafile>" @{datafile-modifiers@}@}@}
+           @{axes <axes>@} @{<title-spec>@} @{with <style>@}
+           @{, @{definitions,@} <function> ...@}
+
+@end example
+
+where either a <function> or the name of a data file enclosed in quotes is
+supplied.  A function is a mathematical expression or a pair of mathematical
+expressions in parametric mode.  The expressions may be defined completely or
+in part earlier in the stream of `gnuplot` commands (see `user-defined`).
+
+It is also possible to define functions and parameters on the `plot` command
+itself.  This is done merely by isolating them from other items with commas.
+
+There are four possible sets of axes available; the keyword <axes> is used to
+select the axes for which a particular line should be scaled.  `x1y1` refers
+to the axes on the bottom and left; `x2y2` to those on the top and right;
+`x1y2` to those on the bottom and right; and `x2y1` to those on the top and
+left.  Ranges specified on the `plot` command apply only to the first set of
+axes (bottom left).
+
+Examples:
+@example
+      plot sin(x)
+      plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)
+      plot [t=1:10] [-pi:pi*2] tan(t), \
+           "data.1" using (tan($2)):($3/$4) smooth csplines \
+                    axes x1y2 notitle with lines 5
+
+@end example
+
+See also `show plot`.
+
+@menu
+* data::                        
+* errorbars::                   
+* errorlines::                  
+* parametric::                  
+* ranges::                      
+* title::                       
+* with::                        
+@end menu
+
+@node data, errorbars, plot, plot
+@subsection data
+
+@c ?commands plot datafile
+@c ?plot datafile
+@cindex data-file
+
+@cindex datafile
+@opindex datafile
+
+
+@cindex data
+
+@cindex file
+
+Discrete data contained in a file can be displayed by specifying the name of
+the data file (enclosed in single or double quotes) on the `plot` command line.
+
+Syntax:
+@example
+      plot '<file_name>' @{binary <binary list>@}
+                         @{matrix@}
+                         @{index <index list>@}
+                         @{every <every list>@}
+                         @{thru <thru expression>@}
+                         @{using <using list>@}
+                         @{smooth <option>@}
+
+@end example
+
+The modifiers `binary`, @ref{index}, @ref{every}, @ref{thru}, @ref{using}, and @ref{smooth} are
+discussed separately.  In brief, `binary` allows data entry from a binary
+file (default is ASCII), @ref{index} selects which data sets in a multi-data-set
+file are to be plotted, @ref{every} specifies which points within a single data
+set are to be plotted, @ref{using} determines how the columns within a single
+record are to be interpreted (@ref{thru} is a special case of @ref{using}), and
+@ref{smooth} allows for simple interpolation and approximation.  (`splot` has a
+similar syntax, but does not support the @ref{smooth} and @ref{thru} options.)
+
+
+ASCII DATA FILES:
+
+Data files should contain at least one data point per record (@ref{using}
+can select one data point from the record). Records beginning with `#`
+(and also with `!` on VMS) will be treated as comments and ignored.
+Each data point represents an (x,y) pair. For `plot`s with error bars or
+error bars with lines (see @ref{errorbars} or @ref{errorlines}),
+each data point is (x,y,ydelta), (x,y,ylow,yhigh),
+(x,y,xdelta), (x,y,xlow,xhigh), or (x,y,xlow,xhigh,ylow,yhigh).
+
+In all cases, the numbers of each record of a data file must be separated
+by white space (one or more blanks or tabs) unless a format specifier is
+provided by the @ref{using} option. This white space divides each record into
+columns. However, whitespace inside a pair of double quotes is ignored when
+counting columns, so the following datafile line has three columns:
+@example
+      1.0 "second column" 3.0
+
+@end example
+
+Data may be written in exponential format with the exponent preceded by the
+letter e or E.  The fortran exponential specificiers d, D, q, and Q may also
+be used if the command `set datafile fortran` is in effect.
+
+Only one column (the y value) need be provided.  If x is omitted, `gnuplot`
+provides integer values starting at 0.
+
+In datafiles, blank records (records with no characters other than blanks and
+a newline and/or carriage return) are significant.
+
+Single blank records designate discontinuities in a `plot`; no line will join
+points separated by a blank records (if they are plotted with a line style).
+
+Two blank records in a row indicate a break between separate data sets.
+See @ref{index}.
+
+If autoscaling has been enabled (@ref{autoscale}), the axes are automatically
+extended to include all datapoints, with a whole number of tic marks if tics
+are being drawn.  This has two consequences: i) For `splot`, the corner of
+the surface may not coincide with the corner of the base.  In this case, no
+vertical line is drawn.  ii) When plotting data with the same x range on a
+dual-axis graph, the x coordinates may not coincide if the x2tics are not
+being drawn.  This is because the x axis has been autoextended to a whole
+number of tics, but the x2 axis has not.  The following example illustrates
+the problem:
+
+@example
+      reset; plot '-', '-' axes x2y1
+      1 1
+      19 19
+      e
+      1 1
+      19 19
+      e
+
+@end example
+
+To avoid this, you can use the `fixmin`/`fixmax` feature of the
+@ref{autoscale} command, which turns off the automatic extension of the
+axis range upto the next tic mark.
+
+
+BINARY DATA FILES:
+
+Gnuplot can read binary data files.  However, adequate information about
+details of the file format must be given on the command line or extracted
+from the file itself for a supported binary `filetype`.  In particular,
+there are two structures for binary files, a matrix binary format and a
+general binary format.
+
+The matrix binary format contains a two dimensional array of 32 bit IEEE
+float values with an additional column and row of coordinate values.  As
+with ASCII matrix, in the @ref{using} list, repetition of the coordinate row
+constitutes column 1, repetition of the coordinate column constitutes
+column 2, and the array of values constitutes column 3.
+
+The general binary format contains an arbitrary number of columns for which
+information must be specified at the command line.  For example, `array`,
+`record`, `format` and @ref{using} can indicate the size, format and dimension
+of data.  There are a variety of useful commands for skipping file headers
+and changing endianess.  There are a set of commands for positioning and
+translating data since often coordinates are not part of the file when
+uniform sampling is inherent in the data.  Different from matrix binary or
+ASCII, general binary does not treat the generated columns as 1, 2 or 3 in
+the @ref{using} list.  Rather, column 1 begins with column 1 of the file, or as
+specified in the `format` list.
+
+There are global default settings for the various binary options which may
+be set using the same syntax as the options when used as part of the `(s)plot
+<filename> binary ...` command.  This syntax is `set datafile binary ...`.
+The general rule is that common command-line specified parameters override
+file-extracted parameters which override default parameters.
+
+Matrix binary is the default binary format when no keywords specific to
+general binary are given, i.e., `array`, `record`, `format`, `filetype`.
+
+General binary data can be entered at the command line via the special file
+name '-'.  However, this is intended for use through a pipe where programs
+can exchange binary data, not for keyboards.  There is no "end of record"
+character for binary data.  Gnuplot continues reading from a pipe until it
+has read the number of points declared in the `array` qualifier.
+
+See `datafile binary` for more details.
+
+@menu
+* binary::                      
+* binary_general::              
+* every::                       
+* example_datafile::            
+* index::                       
+* smooth::                      
+* special-filenames::           
+* thru::                        
+* using::                       
+@end menu
+
+@node binary, binary_general, data, data
+@subsubsection binary
+
+@c ?commands plot datafile binary
+@c ?plot datafile binary
+@c ?splot datafile binary
+@c ?plot binary
+@c ?splot binary
+@c ?data-file binary
+@c ?datafile binary
+@cindex binary
+
+The `binary` keyword allows a data file to be binary as opposed to ASCII.
+There are two formats for binary--matrix binary and general binary.  Matrix
+binary is a fixed format in which data appears in a 2D array with an extra
+row and column for coordinate values.  General binary is a flexible format
+for which details about the file must be given at the command line.
+
+See `binary matrix` or `binary general` for more details.
+
+@node binary_general, every, binary, data
+@subsubsection binary general
+
+@c ?commands plot datafile binary general
+@c ?commands splot datafile binary general
+@c ?plot binary general
+@c ?splot binary general
+@c ?binary general
+General binary data in which format information is not necessarily part of
+the file can be read by giving further details about the file format at the
+command line.  Although the syntax is slightly arcane to the casual user,
+general binary is particularly useful for application programs using gnuplot
+and sending large amounts of data.
+
+Syntax:
+@example
+      plot '<file_name>' @{binary <binary list>@} ...
+      splot '<file_name>' @{binary <binary list>@} ...
+
+@end example
+
+General binary format is activated by keywords in <binary list> pertaining
+to information about file structure, i.e., `array`, `record`, `format` or
+`filetype`.  Otherwise, matrix binary format is assumed.  (See `binary matrix`
+for more details.)
+
+There are some standard file types that may be read for which details about
+the binary format may be extracted automatically.  (Type `show datafile
+binary` at the command line for a list.)  Otherwise, details must be
+specified at the command line or set in the defaults.  Keywords are described
+below.
+
+The keyword `filetype` in <binary list> controls the routine used to
+read the file, i.e., the format of the data.  For a list of the supported
+file types, type `show datafile binary filetypes`.  If no file type is
+given, the rule is that traditional gnuplot binary is assumed for `splot`
+if the `binary` keyword stands alone.  In all other circumstances, for
+`plot` or when one of the <binary list> keywords appears, a raw binary
+file is assumed whereby the keywords specify the binary format.
+
+General binary data files fall into two basic classes, and some files may
+be of both classes depending upon how they are treated.  There is that
+class for which uniform sampling is assumed and point coordinates must be
+generated.  This is the class for which full control via the <binary
+list> keywords applies.  For this class, the settings precedence is that
+command line parameters override in-file parameters, which override
+default settings.  The other class is that set of files for which
+coordinate information is contained within the file or there is possibly
+a non-uniform sampling such as gnuplot binary.
+
+Other than for the unique data files such as gnuplot binary, one should
+think of binary data as conceptually the same as ASCII data.  Each point
+has columns of information which are selected via the `<using list>`
+associated with @ref{using}.  When no `format` string is specified, gnuplot
+will retrieve a number of binary variables equal to the largest column
+given in the `<using list>`.  For example, `using 1:3` will result in
+three columns being read, of which the second will be ignored.  There are
+default using lists based upon the typical number of parameters associated
+with a certain plot type.  For example, `with image` has a default of
+`using 1`, while `with rgbimage` has a default of `using 1:2:3`.  Note
+that the special characters for @ref{using} representing point/line/index
+generally should not be used for binary data.  There are keywords in
+<binary list> that control this.
+
+
+@noindent --- ARRAY ---
+
+@c ?binary general array
+Describes the sampling array dimensions associated with the binary file.
+The coordinates will be generated by gnuplot.  A number must be specified
+for each dimension, thereby calling out the size of the array.  For example,
+`array=10x20` means the underlying sampling structure is two-dimensional with
+10 points along the first (x) dimension and 20 points along the second (y)
+dimension.  A special "number", `Inf`, can be used to indicate that data should
+be read until the end of file.  A colon can be used to separate the dimensions
+for multiple records.  For example, `array=25:35` indicates there are two
+one-dimensional records within the file.  The colon behavior applies to the
+remaining keywords in this list for which it makes sense to be associated with
+individual records.
+
+Currently, syntax allows for up to three-dimensional arrays.  However, no
+conventions have yet been made for handling three-dimensional coordinates.
+
+
+@noindent --- RECORD ---
+
+@c ?binary general record
+This keyword serves the same function as `array`, having the same syntax.
+However, `record` causes gnuplot to not generate coordinate information.
+This is for the case where such information may be included in one of the
+columns of the binary data file.
+
+
+@noindent --- FORMAT ---
+
+@c ?binary general format
+The default binary format is a float.  For more flexibility, the format can
+include details about variable sizes.  For example, `format="%uchar%int%float"`
+associates an unsigned character with the first using column, an int with the
+second column and a float with the third column.  If the number of size
+specifications is less than the greatest column number, the size is implicitly
+taken to be similar to the last given variable size.
+
+Furthermore, the format specification can include "discarded" terms via the `*`
+character.  For example, to skip the middle column of the previous example, one
+could write `format="%uchar%*int%float"` and gnuplot will discard the middle
+integer.  To list variable sizes, type `show datafile binary datasizes`.  There
+are a group of names that are machine dependent along with their sizes in bytes
+for the particular compilation.  There is also a group of names which attempt
+to be machine independent.
+
+
+@noindent --- ENDIAN ---
+
+@c ?binary general endian
+Often the endianess of binary data in the file does not agree with the
+endianess used by the platform on which gnuplot is running.  Several words can
+direct gnuplot how to arrange bytes.  For example `endian=little` means treat
+the binary file as having byte significance from least to greatest. The options
+are
+
+@example
+              little:  least significant to greatest significance
+                 big:  greatest significance to least significance
+             default:  assume file endianess is the same as compiler
+         swap (swab):  Interchange the significance.  (If things
+                       don't look right, try this.)
+
+@end example
+
+Gnuplot can support "middle" ("pdp") endian if it is compiled with that option.
+
+
+@noindent --- FILETYPE ---
+
+@c ?binary general filetype
+For some standard binary file formats gnuplot can extract all the necessary
+information from the file in question.  As an example, "format=edf" will read
+ESRF Header File format files.  For a list of the currently supported file
+formats, type `show datafile binary filetypes`.
+
+There is a special file type called `auto` for which gnuplot will check if the
+binary file's extension is a quasi-standard extension for a supported format.
+
+Command line keywords may be used to override settings extracted from the file.
+The settings from the file override any defaults.  (See `set datafile binary`
+for details.)
+
+
+@noindent --- AVS ---
+
+@c ?binary general filetype avs
+@c ?filetype avs
+@cindex avs
+
+`avs` is one of the automatically recognized binary file types for images.
+AVS is an extremely simple format, suitable mostly for streaming between
+applications. It consists of 2 longs (xwidth, ywidth) followed by a stream
+of pixels, each with four bytes of information alpha/red/green/blue.
+
+
+@noindent --- EDF ---
+
+@c ?binary general filetype edf
+@c ?filetype edf
+@cindex edf
+
+@c ?filetype ehf
+@cindex ehf
+
+`edf` is one of the automatically recognized binary file types for images.
+EDF stands for ESRF Data Format, and it supports both edf and ehf formats
+(the latter means ESRF Header Format).  More information on specifications
+can be found at
+
+@example
+  http://www.esrf.fr/computing/expg/subgroups/general/format/Format.html
+
+@end example
+
+See also `binary`.
+
+
+@noindent --- KEYWORDS ---
+
+@c ?binary general keywords
+@c ?filetype keywords
+The following keywords apply only when generating coordinates.  That is, when
+the keyword `array` is used.
+
+
+@noindent --- SCAN ---
+
+@c ?binary general keywords scan
+A great deal of confusion can arise concerning the relationship between how
+gnuplot scans a binary file and the dimensions seen on the plot.  To lessen
+the confusion, conceptually think of gnuplot _always_ scanning the binary file
+point/line/plane or fast/medium/slow.  Then this keyword is used to tell
+gnuplot how to map this scanning convention to the Cartesian convention shown
+in plots, i.e., x/y/z.  The qualifier for scan is a two or three letter code
+representing where point is assigned (first letter), line is assigned (second
+letter), and plane is assigned (third letter).  For example, `scan=yx` means
+the fastest, point-by-point, increment should be mapped along the Cartesian
+y dimension and the middle, line-by-line, increment should be mapped along the
+x dimension.
+
+When the plotting mode is `plot`, the qualifier code can include the two
+letters x and y.  For `splot`, it can include the three letters x, y and z.
+
+There is nothing restricting the inherent mapping from point/line/plane to
+apply only to Cartesian coordinates.  For this reason there are cylindrical
+coordinate synonyms for the qualifier codes where t (theta), r and z are
+analogous to the x, y and z of Cartesian coordinates.
+
+
+@noindent --- TRANSPOSE ---
+
+@c ?binary general keywords transpose
+Shorthand notation for `scan=yx` or `scan=yxz`.
+
+
+@noindent --- DX, DY, DZ ---
+
+@c ?binary general keywords dx
+When gnuplot generates coordinates, it uses the spacing described by these
+keywords.  For example `dx=10 dy=20` would mean space samples along the
+x dimension by 10 and space samples along the y dimension by 20.  `dy` cannot
+appear if `dx` does not appear.  Similarly, `dz` cannot appear if `dy` does not
+appear.  If the underlying dimensions are greater than the keywords specified,
+the spacing of the highest dimension given is extended to the other dimensions.
+For example, if an image is being read from a file and only `dx=3.5` is given
+gnuplot uses a delta x and delta y of 3.5.
+
+The following keywords also apply only when generating coordinates.  However
+they may also be used with matrix binary files.
+
+
+@noindent --- FLIPX, FLIPY, FLIPZ ---
+
+@c ?binary general keywords flipx
+Sometimes the scanning directions in a binary datafile are not consistent with
+that assumed by gnuplot.  These keywords can flip the scanning direction along
+dimensions x, y, z.
+
+
+@noindent --- ORIGIN  ---
+
+@c ?binary general keywords origin
+When gnuplot generates coordinates based upon transposition and flip, it
+attempts to always position the lower left point in the array at the origin,
+i.e., the data lies in the first quadrant of a Cartesian system after transpose
+and flip.
+
+To position the array somewhere else on the graph, the @ref{origin} keyword directs
+gnuplot to position the lower left point of the array at a point specified by a
+tuple.  The tuple should be a double for `plot` and a triple for `splot`.
+For example, `origin=(100,100):(100,200)` is for two records in the file and
+intended for plotting in two dimensions. A second example, `origin=(0,0,3.5)`,
+is for plotting in three dimensions.
+
+
+@noindent --- CENTER ---
+
+@c ?binary general keywords center
+Similar to @ref{origin}, this keyword will position the array such that its center
+lies at the point given by the tuple.  For example, `center=(0,0)`.  Center
+does not apply when the size of the array is `Inf`.
+
+
+@noindent --- ROTATE ---
+
+@c ?binary general keywords rotate
+The transpose and flip commands provide some flexibility in generating and
+orienting coordinates.  However, for full degrees of freedom, it is possible to
+apply a rotational vector described by a rotational angle in two dimensions.
+
+The `rotate` keyword applies to the two-dimensional plane, whether it be `plot`
+or `splot`.  The rotation is done with respect to the positive angle of the
+Cartesian plane.
+
+The angle can be expressed in radians, radians as a multiple of pi, or degrees.
+For example, `rotate=1.5708`, `rotate=0.5pi` and `rotate=90deg` are equivalent.
+
+If @ref{origin} is specified, the rotation is done about the lower left sample
+point before translation.  Otherwise, the rotation is done about the array
+`center`.
+
+
+@noindent --- PERPENDICULAR ---
+
+@c ?binary general keywords perpendicular
+For `splot`, the concept of a rotational vector is implemented by a triple
+representing the vector to be oriented normal to the two-dimensional x-y plane.
+Naturally, the default is (0,0,1).  Thus specifying both rotate and
+perpendicular together can orient data myriad ways in three-space.
+
+The two-dimensional rotation is done first, followed by the three-dimensional
+rotation.  That is, if R' is the rotational 2 x 2 matrix described by an angle,
+and P is the 3 x 3 matrix projecting (0,0,1) to (xp,yp,zp), let R be
+constructed from R' at the upper left sub-matrix, 1 at element 3,3 and zeros
+elsewhere.  Then the matrix formula for translating data is v' = P R v, where v
+is the 3 x 1 vector of data extracted from the data file.  In cases where the
+data of the file is inherently not three-dimensional, logical rules are used to
+place the data in three-space.  (E.g., usually setting the z-dimension value to
+zero and placing 2D data in the x-y plane.)
+
+
+@noindent --- BINARY EXAMPLES ---
+
+@cindex binary_examples
+
+@c ?binary examples
+@c ?binary general examples
+Examples:
+
+@example
+      # Selects two float values (second one implicit) with a float value
+      # discarded between them for an indefinite length of 1D data.
+      plot '<file_name>' binary format="%float%*float" using 1:2 with lines
+
+@end example
+
+@example
+      # The data file header contains all details necessary for creating
+      # coordinates from an EDF file.
+      plot '<file_name>' binary filetype=edf with image
+      plot '<file_name>.edf' binary filetype=auto with image
+
+@end example
+
+@example
+      # Selects three unsigned characters for components of a raw RGB image
+      # and flips the y-dimension so that typical image orientation (start
+      # at top left corner) translates to the Cartesian plane.  Pixel
+      # spacing is given and there are two images in the file.  One of them
+      # is translated via origin.
+      plot '<file_name>' binary array=512x1024:1024x512 format='%uchar' \
+           dx=2:1 dy=1:2 origin=(0,0):(1024,1024) flipy u 1:2:3 w rgbimage
+
+@end example
+
+@example
+      # Four separate records in which the coordinates are part of the
+      # data file.  The file was created with a endianess different from
+      # the system on which gnuplot is running.
+      splot '<file_name>' binary record=30:30:29:26 endian=swap u 1:2:3
+
+@end example
+
+See also `binary matrix`.
+
+@node every, example_datafile, binary_general, data
+@subsubsection every
+
+@c ?commands plot datafile every
+@c ?plot datafile every
+@c ?plot every
+@c ?data-file every
+@c ?datafile every
+@cindex every
+
+The @ref{every} keyword allows a periodic sampling of a data set to be plotted.
+
+In the discussion a "point" is a datum defined by a single record in the
+file; "block" here will mean the same thing as "datablock" (see `glossary`).
+
+Syntax:
+@example
+      plot 'file' every @{<point_incr>@}
+                          @{:@{<block_incr>@}
+                            @{:@{<start_point>@}
+                              @{:@{<start_block>@}
+                                @{:@{<end_point>@}
+                                  @{:<end_block>@}@}@}@}@}
+
+@end example
+
+The data points to be plotted are selected according to a loop from
+<`start_point`> to <`end_point`> with increment <`point_incr`> and the
+blocks according to a loop from <`start_block`> to <`end_block`> with
+increment <`block_incr`>.
+
+The first datum in each block is numbered '0', as is the first block in the
+file.
+
+Note that records containing unplottable information are counted.
+
+Any of the numbers can be omitted; the increments default to unity, the start
+values to the first point or block, and the end values to the last point or
+block.  If @ref{every} is not specified, all points in all lines are plotted.
+
+Examples:
+@example
+      every :::3::3    # selects just the fourth block ('0' is first)
+      every :::::9     # selects the first 10 blocks
+      every 2:2        # selects every other point in every other block
+      every ::5::15    # selects points 5 through 15 in each block
+
+@end example
+
+See
+@uref{http://www.gnuplot.info/demo/simple.html,simple plot demos (simple.dem)
+}
+,
+@uref{http://www.gnuplot.info/demo/surface1.html,Non-parametric splot demos
+}
+, and
+@uref{http://gnuplot.sourceforge.net/demo/surface2.html,Parametric splot demos
+}
+.
+
+@node example_datafile, index, every, data
+@subsubsection example datafile
+
+@c ?commands plot datafile example
+@c ?plot datafile example
+@c ?plot example
+@c ?datafile example
+@c ?data-file example
+@cindex example
+
+This example plots the data in the file "population.dat" and a theoretical
+curve:
+
+@example
+      pop(x) = 103*exp((1965-x)/10)
+      plot [1960:1990] 'population.dat', pop(x)
+
+@end example
+
+The file "population.dat" might contain:
+
+@example
+      # Gnu population in Antarctica since 1965
+         1965   103
+         1970   55
+         1975   34
+         1980   24
+         1985   10
+
+@end example
+
+@c ^ <img align=bottom src="http://www.gnuplot.info/doc/population.gif" alt="[population.gif]" width=640 height=480>
+
+@node index, smooth, example_datafile, data
+@subsubsection index
+
+@c ?commands plot datafile index
+@c ?plot datafile index
+@c ?plot index
+@c ?data-file index
+@c ?datafile index
+@cindex index
+
+The @ref{index} keyword allows you to select specific data sets in a multi-data-set
+file for plotting.
+
+Syntax:
+@example
+      plot 'file' index <m>@{@{:<n>@}:<p>@}
+
+@end example
+
+Data sets are separated by pairs of blank records.  `index <m>` selects only
+set <m>; `index <m>:<n>` selects sets in the range <m> to <n>; and `index
+<m>:<n>:<p>` selects indices <m>, <m>+<p>, <m>+2<p>, etc., but stopping at
+<n>.  Following C indexing, the index 0 is assigned to the first data set in
+the file.  Specifying too large an index results in an error message.  If
+@ref{index} is not specified, all sets are plotted as a single data set.
+
+Example:
+@example
+      plot 'file' index 4:5
+
+@end example
+
+For each point in the file, the index value of the data set it appears in is
+available via the pseudo-column `column(-2)`.  This leads to an alternative way
+of distinguishing individual data sets within a file as shown below.  This is
+more awkward that the @ref{index} command if all you are doing is selecting one
+data set for plotting, but is very useful if you want to assign different
+properties to each data set.  See `lc variable`.
+
+Example:
+@example
+      plot 'file' using 1:(column(-2)==4 ? $2 : NaN)        # very awkward
+      plot 'file' using 1:2:(column(-2)) linecolor variable # very useful!
+
+@end example
+
+@c ^ See also web page
+@uref{http://www.gnuplot.info/demo/multimsh.html, splot with indices demo.
+}
+
+@node smooth, special-filenames, index, data
+@subsubsection smooth
+
+@c ?commands plot datafile smooth
+@c ?plot datafile smooth
+@c ?plot smooth
+@c ?data-file smooth
+@c ?datafile smooth
+@cindex smooth
+
+`gnuplot` includes a few general-purpose routines for interpolation and
+approximation of data; these are grouped under the @ref{smooth} option.  More
+sophisticated data processing may be performed by preprocessing the data
+externally or by using @ref{fit} with an appropriate model.
+
+Syntax:
+@example
+      smooth @{unique | frequency | csplines | acsplines | bezier | sbezier@}
+
+@end example
+
+`unique` and `frequency` plot the data after making them monotonic.  Each of
+the other routines uses the data to determine the coefficients of a
+continuous curve between the endpoints of the data.  This curve is then
+plotted in the same manner as a function, that is, by finding its value at
+uniform intervals along the abscissa (see @ref{samples}) and connecting these
+points with straight line segments (if a line style is chosen).
+
+If @ref{autoscale} is in effect, the ranges will be computed such that the
+plotted curve lies within the borders of the graph.
+
+If @ref{autoscale} is not in effect, and the smooth option is either `acspline`
+or `cspline`, the sampling of the generated curve is
+done across the intersection of the x range covered by the input data and
+the fixed abscissa range as defined by @ref{xrange}.
+
+If too few points are available to allow the selected option to be applied,
+an error message is produced.  The minimum number is one for `unique` and
+`frequency`, four for `acsplines`, and three for the others.
+
+The @ref{smooth} options have no effect on function plots.
+
+
+@noindent --- ACSPLINES ---
+
+@c ?commands plot datafile smooth acsplines
+@c ?plot datafile smooth acsplines
+@c ?data-file smooth acsplines
+@c ?datafile smooth acsplines
+@c ?plot smooth acsplines
+@c ?plot acsplines
+@c ?smooth acsplines
+@cindex acsplines
+
+The `acsplines` option approximates the data with a "natural smoothing spline".
+After the data are made monotonic in x (see `smooth unique`), a curve is
+piecewise constructed from segments of cubic polynomials whose coefficients
+are found by the weighting the data points; the weights are taken from the
+third column in the data file.  That default can be modified by the third
+entry in the @ref{using} list, e.g.,
+@example
+      plot 'data-file' using 1:2:(1.0) smooth acsplines
+
+@end example
+
+Qualitatively, the absolute magnitude of the weights determines the number
+of segments used to construct the curve.  If the weights are large, the
+effect of each datum is large and the curve approaches that produced by
+connecting consecutive points with natural cubic splines.  If the weights are
+small, the curve is composed of fewer segments and thus is smoother; the
+limiting case is the single segment produced by a weighted linear least
+squares fit to all the data.  The smoothing weight can be expressed in terms
+of errors as a statistical weight for a point divided by a "smoothing factor"
+for the curve so that (standard) errors in the file can be used as smoothing
+weights.
+
+Example:
+@example
+      sw(x,S)=1/(x*x*S)
+      plot 'data_file' using 1:2:(sw($3,100)) smooth acsplines
+
+@end example
+
+
+@noindent --- BEZIER ---
+
+@c ?commands plot datafile smooth bezier
+@c ?plot datafile smooth bezier
+@c ?plot smooth bezier
+@c ?data-file smooth bezier
+@c ?datafile smooth bezier
+@c ?plot bezier
+@c ?smooth bezier
+@cindex bezier
+
+The `bezier` option approximates the data with a Bezier curve of degree n
+(the number of data points) that connects the endpoints.
+
+
+@noindent --- CSPLINES ---
+
+@c ?commands plot datafile smooth csplines
+@c ?plot datafile smooth csplines
+@c ?plot smooth csplines
+@c ?data-file smooth csplines
+@c ?datafile smooth csplines
+@c ?plot csplines
+@c ?smooth csplines
+@cindex csplines
+
+The `csplines` option connects consecutive points by natural cubic splines
+after rendering the data monotonic (see `smooth unique`).
+
+
+@noindent --- SBEZIER ---
+
+@c ?commands plot datafile smooth sbezier
+@c ?plot datafile smooth sbezier
+@c ?plot smooth sbezier
+@c ?data-file smooth sbezier
+@c ?datafile smooth sbezier
+@c ?plot sbezier
+@c ?smooth sbezier
+@cindex sbezier
+
+The `sbezier` option first renders the data monotonic (`unique`) and then
+applies the `bezier` algorithm.
+
+
+@noindent --- UNIQUE ---
+
+@c ?commands plot datafile smooth unique
+@c ?plot datafile smooth unique
+@c ?plot smooth unique
+@c ?data-file smooth unique
+@c ?datafile smooth unique
+@c ?plot unique
+@c ?smooth unique
+@cindex unique
+
+The `unique` option makes the data monotonic in x; points with the same
+x-value are replaced by a single point having the average y-value.  The
+resulting points are then connected by straight line segments.
+@c ^ See this
+@uref{http://www.gnuplot.info/demo/mgr.html,demos
+}
+@c ^ web page.
+
+
+@noindent --- FREQUENCY ---
+
+@c ?commands plot datafile smooth frequency
+@c ?plot datafile smooth frequency
+@c ?plot smooth frequency
+@c ?data-file smooth frequency
+@c ?datafile smooth frequency
+@c ?plot frequency
+@c ?smooth frequency
+@cindex frequency
+
+The `frequency` option makes the data monotonic in x; points with the same
+x-value are replaced by a single point having the summed y-values.  The
+resulting points are then connected by straight line segments.
+
+@node special-filenames, thru, smooth, data
+@subsubsection special-filenames
+
+@c ?commands plot datafile special-filenames
+@c ?plot datafile special-filenames
+@c ?plot special-filenames
+@c ?datafile special-filenames
+@cindex special-filenames
+
+A special filename of `'-'` specifies that the data are inline; i.e., they
+follow the command.  Only the data follow the command; `plot` options like
+filters, titles, and line styles remain on the `plot` command line.  This is
+similar to << in unix shell script, and $DECK in VMS DCL.  The data are
+entered as though they are being read from a file, one data point per record.
+The letter "e" at the start of the first column terminates data entry.  The
+@ref{using} option can be applied to these data---using it to filter them through
+a function might make sense, but selecting columns probably doesn't!
+
+`'-'` is intended for situations where it is useful to have data and commands
+together, e.g., when `gnuplot` is run as a sub-process of some front-end
+application.  Some of the demos, for example, might use this feature.  While
+`plot` options such as @ref{index} and @ref{every} are recognized, their use forces
+you to enter data that won't be used.  For example, while
+
+@example
+      plot '-' index 0, '-' index 1
+      2
+      4
+      6
+
+@end example
+
+
+@example
+      10
+      12
+      14
+      e
+      2
+      4
+      6
+
+@end example
+
+
+@example
+      10
+      12
+      14
+      e
+
+@end example
+
+does indeed work,
+
+@example
+      plot '-', '-'
+      2
+      4
+      6
+      e
+      10
+      12
+      14
+      e
+
+@end example
+
+is a lot easier to type.
+
+If you use `'-'` with @ref{replot}, you may need to enter the data more than once
+(see @ref{replot}).
+
+A blank filename ('') specifies that the previous filename should be reused.
+This can be useful with things like
+
+@example
+      plot 'a/very/long/filename' using 1:2, '' using 1:3, '' using 1:4
+
+@end example
+
+(If you use both `'-'` and `''` on the same `plot` command, you'll need to
+have two sets of inline data, as in the example above.)
+
+On some computer systems with a popen function (Unix), the datafile can be
+piped through a shell command by starting the file name with a '<'.  For
+example,
+
+@example
+      pop(x) = 103*exp(-x/10)
+      plot "< awk '@{print $1-1965, $2@}' population.dat", pop(x)
+
+@end example
+
+would plot the same information as the first population example but with
+years since 1965 as the x axis.  If you want to execute this example, you
+have to delete all comments from the data file above or substitute the
+following command for the first part of the command above (the part up to
+the comma):
+
+@example
+      plot "< awk '$0 !~ /^#/ @{print $1-1965, $2@}' population.dat"
+
+@end example
+
+While this approach is most flexible, it is possible to achieve simple
+filtering with the @ref{using} or @ref{thru} keywords.
+
+@node thru, using, special-filenames, data
+@subsubsection thru
+
+@c ?commands plot datafile thru
+@c ?plot datafile thru
+@c ?plot thru
+@c ?data-file thru
+@c ?datafile thru
+@cindex thru
+
+The @ref{thru} function is provided for backward compatibility.
+
+Syntax:
+@example
+      plot 'file' thru f(x)
+
+@end example
+
+It is equivalent to:
+
+@example
+      plot 'file' using 1:(f($2))
+
+@end example
+
+While the latter appears more complex, it is much more flexible.  The more
+natural
+
+@example
+      plot 'file' thru f(y)
+
+@end example
+
+also works (i.e. you can use y as the dummy variable).
+
+@ref{thru} is parsed for `splot` and @ref{fit} but has no effect.
+
+@node using,  , thru, data
+@subsubsection using
+
+@c ?commands plot datafile using
+@c ?plot datafile using
+@c ?plot using
+@c ?data-file using
+@c ?datafile using
+@cindex using
+
+The most common datafile modifier is @ref{using}.
+
+Syntax:
+@example
+      plot 'file' using @{<entry> @{:<entry> @{:<entry> ...@}@}@} @{'format'@}
+
+@end example
+
+If a format is specified, each datafile record is read using the C library's
+'scanf' function, with the specified format string.  Otherwise the record is
+read and broken into columns. By default the separation between columns is
+whitespace (spaces and/or tabs), but see `datafile separator`.
+
+Each <entry> may be a simple column number that selects the value from one
+field of the input fit, an expression enclosed in parentheses, or empty.
+
+If the entry is an expression in parentheses, then the function column(N) may
+be used to indicate the value in column N. That is, column(1) refers to the
+first item read, column(2) to the second, and so on.  The special symbols
+$1, $2, ... are shorthand for column(1), column(2) ...  The function `valid(N)`
+tests whether the value in the Nth column is a valid number.
+
+In addition to the actual columns 1...N in the input data file, gnuplot
+presents data from several "pseudo-columns" that hold bookkeeping information.
+E.g. $0 or column(0) returns the sequence number of this data record within a
+dataset.
+
+An empty <entry> will default to its order in the list of entries.
+For example, `using ::4` is interpreted as `using 1:2:4`.
+
+If the @ref{using} list has but a single entry, that <entry> will be used for y
+and the data point number (pseudo-column $0) is used for x; for example,
+"`plot 'file' using 1`" is identical to "`plot 'file' using 0:1`".
+If the @ref{using} list has two entries, these will be used for x and y.
+See @ref{style} and @ref{fit} for details about plotting styles that make use of
+data from additional columns of input.
+
+'scanf' accepts several numerical specifications but `gnuplot`
+requires all inputs to be double-precision floating-point variables,
+so "%lf" is essentially the only permissible specifier.
+A format string given by the user must contain at least one such
+input specifier, and no more than seven of them.
+'scanf' expects to see white space---a blank, tab
+("\t"), newline ("\n"), or formfeed ("\f")---between numbers; anything else
+in the input stream must be explicitly skipped.
+
+Note that the use of "\t", "\n", or "\f" requires use of double-quotes
+rather than single-quotes.
+
+
+@noindent --- USING_EXAMPLES ---
+
+@cindex examples
+
+@c ?commands plot datafile using examples
+@c ?plot datafile using examples
+@c ?datafile using examples
+@c ?using examples
+This creates a plot of the sum of the 2nd and 3rd data against the first:
+The format string specifies comma- rather than space-separated columns.
+The same result could be achieved by specifying `set datafile separator ","`.
+@example
+      plot 'file' using 1:($2+$3) '%lf,%lf,%lf'
+
+@end example
+
+In this example the data are read from the file "MyData" using a more
+complicated format:
+@example
+      plot 'MyData' using "%*lf%lf%*20[^\n]%lf"
+
+@end example
+
+The meaning of this format is:
+
+@example
+      %*lf        ignore a number
+      %lf         read a double-precision number (x by default)
+      %*20[^\n]   ignore 20 non-newline characters
+      %lf         read a double-precision number (y by default)
+
+@end example
+
+One trick is to use the ternary `?:` operator to filter data:
+
+@example
+      plot 'file' using 1:($3>10 ? $2 : 1/0)
+
+@end example
+
+which plots the datum in column two against that in column one provided
+the datum in column three exceeds ten.  `1/0` is undefined; `gnuplot`
+quietly ignores undefined points, so unsuitable points are suppressed.
+Or you can use the pre-defined variable NaN to achieve the same result.
+@cindex NaN
+
+
+In fact, you can use a constant expression for the column number, provided it
+doesn't start with an opening parenthesis; constructs like `using
+0+(complicated expression)` can be used.  The crucial point is that the
+expression is evaluated once if it doesn't start with a left parenthesis, or
+once for each data point read if it does.
+
+If timeseries data are being used, the time can span multiple columns.  The
+starting column should be specified.  Note that the spaces within the time
+must be included when calculating starting columns for other data.  E.g., if
+the first element on a line is a time with an embedded space, the y value
+should be specified as column three.
+
+It should be noted that `plot 'file'`, `plot 'file' using 1:2`, and `plot
+'file' using ($1):($2)` can be subtly different: 1) if @ref{file} has some lines
+with one column and some with two, the first will invent x values when they
+are missing, the second will quietly ignore the lines with one column, and
+the third will store an undefined value for lines with one point (so that in
+a plot with lines, no line joins points across the bad point); 2) if a line
+contains text at the first column, the first will abort the plot on an error,
+but the second and third should quietly skip the garbage.
+
+In fact, it is often possible to plot a file with lots of lines of garbage at
+the top simply by specifying
+
+@example
+      plot 'file' using 1:2
+
+@end example
+
+However, if you want to leave text in your data files, it is safer to put the
+comment character (#) in the first column of the text lines.
+@c ^ See also the web page
+@uref{http://www.gnuplot.info/demo/using.html,Feeble using demos.
+}
+
+If gnuplot is built with configuration option --enable-datastrings, then
+additional modifiers to @ref{using} can specify handling of text fields in the
+datafile. See `datastrings`, `using xticlabels`, @ref{title}.
+
+
+@noindent --- USING TITLE ---
+
+@c ?using title
+@c ?plot using title
+If gnuplot is built with configuration option --enable-datastrings, then
+the first entry of a column of the input data file can be used as a string
+to provide the plot title in the key box.  The column containing specified
+is independent of the column[s] used for the plot itself.
+
+@example
+   plot 'data' using 1:($2/$3) title column(N)
+
+@end example
+
+In this case the entry in the first row of column N will be used for the
+key entry of the plot constructed from dividing column 2 by column 3.
+The entry in the first row of columns 2 and 3 will be ignored.
+
+
+
+@noindent --- XTICLABELS ---
+
+@c ?using xticlabels
+@c ?plot using xticlabels
+If gnuplot is built with configuration option --enable-datastrings, then
+a column of the input data file can be used to label axis tic marks.
+The format of such a plot command is
+
+@example
+  plot 'datafile' using <xcol>:<ycol>:xticlabels(<labelcol>) with <plotstyle>
+
+@end example
+
+Tic labels may be read for any of the plot axes: x x2 y y2 z.
+The `ticlabels(<labelcol>)` specifiers must come after all of the data
+coordinate specifiers in the @ref{using} portion of the command.
+For each data point which has a valid set of X,Y[,Z] coordinates,
+the text field found in column <labelcol> is added to the list of xtic labels
+at the same X coordinate as the point it belongs to. `xticlabels(<labelcol>)`
+may be shortened to `xtic(<labelcol>)`.
+
+Example:
+
+@example
+      splot "data" using 2:4:6:xtic(1):ytic(3):ztic(6)
+
+@end example
+
+In this example the x and y axis tic labels are taken from different columns
+than the x and y coordinate values. The z axis tics, however, are generated
+from the z coordinate of the corresponding point.
+
+
+@noindent --- X2TICLABELS ---
+
+@c ?using x2ticlabels
+@c ?plot using x2ticlabels
+See `plot using xticlabels`.
+
+
+@noindent --- YTICLABELS ---
+
+@c ?using yticlabels
+@c ?plot using yticlabels
+See `plot using xticlabels`.
+
+
+@noindent --- Y2TICLABELS ---
+
+@c ?using y2ticlabels
+@c ?plot using y2ticlabels
+See `plot using xticlabels`.
+
+
+@noindent --- ZTICLABELS ---
+
+@c ?using zticlabels
+@c ?plot using zticlabels
+See `plot using xticlabels`.
+
+@node errorbars, errorlines, data, plot
+@subsection errorbars
+
+@c ?commands plot errorbars
+@c ?commands splot errorbars
+@c ?plot errorbars
+@c ?splot errorbars
+@cindex errorbars
+
+Error bars are supported for 2-d data file plots by reading one to four
+additional columns (or @ref{using} entries); these additional values are used in
+different ways by the various errorbar styles.
+
+In the default situation, `gnuplot` expects to see three, four, or six
+numbers on each line of the data file---either
+
+@example
+      (x, y, ydelta),
+      (x, y, ylow, yhigh),
+      (x, y, xdelta),
+      (x, y, xlow, xhigh),
+      (x, y, xdelta, ydelta), or
+      (x, y, xlow, xhigh, ylow, yhigh).
+
+@end example
+
+The x coordinate must be specified.  The order of the numbers must be
+exactly as given above, though the @ref{using} qualifier can manipulate the order
+and provide values for missing columns.  For example,
+
+@example
+      plot 'file' with errorbars
+      plot 'file' using 1:2:(sqrt($1)) with xerrorbars
+      plot 'file' using 1:2:($1-$3):($1+$3):4:5 with xyerrorbars
+
+@end example
+
+The last example is for a file containing an unsupported combination of
+relative x and absolute y errors.  The @ref{using} entry generates absolute x min
+and max from the relative error.
+
+The y error bar is a vertical line plotted from (x, ylow) to (x,
+yhigh). If ydelta is specified instead of ylow and yhigh, ylow = y -
+ydelta and yhigh = y + ydelta are derived. If there are only two
+numbers on the record, yhigh and ylow are both set to y. The x error
+bar is a horizontal line computed in the same fashion. To get lines
+plotted between the data points, `plot` the data file twice, once with
+errorbars and once with lines (but remember to use the `notitle`
+option on one to avoid two entries in the key). Alternately, use the
+errorlines command (see @ref{errorlines}).
+
+The error bars have crossbars at each end unless @ref{bars} is used
+(see @ref{bars} for details).
+
+If autoscaling is on, the ranges will be adjusted to include the error bars.
+
+See also
+@uref{http://gnuplot.sourceforge.net/demo/mgr.html,errorbar demos.
+}
+
+See @ref{using}, @ref{with}, and @ref{style} for more information.
+
+@node errorlines, parametric, errorbars, plot
+@subsection errorlines
+
+@c ?commands plot errorlines
+@c ?commands splot errorlines
+@c ?plot errorlines
+@c ?splot errorlines
+@cindex errorlines
+
+Lines with error bars are supported for 2-d data file plots by reading
+one to four additional columns (or @ref{using} entries); these additional
+values are used in different ways by the various errorlines styles.
+
+In the default situation, `gnuplot` expects to see three, four, or six
+numbers on each line of the data file---either
+
+@example
+      (x, y, ydelta),
+      (x, y, ylow, yhigh),
+      (x, y, xdelta),
+      (x, y, xlow, xhigh),
+      (x, y, xdelta, ydelta), or
+      (x, y, xlow, xhigh, ylow, yhigh).
+
+@end example
+
+The x coordinate must be specified. The order of the numbers must be
+exactly as given above, though the @ref{using} qualifier can manipulate
+the order and provide values for missing columns. For example,
+
+@example
+      plot 'file' with errorlines
+      plot 'file' using 1:2:(sqrt($1)) with xerrorlines
+      plot 'file' using 1:2:($1-$3):($1+$3):4:5 with xyerrorlines
+
+@end example
+
+The last example is for a file containing an unsupported combination
+of relative x and absolute y errors. The @ref{using} entry generates
+absolute x min and max from the relative error.
+
+The y error bar is a vertical line plotted from (x, ylow) to (x,
+yhigh). If ydelta is specified instead of ylow and yhigh, ylow = y -
+ydelta and yhigh = y + ydelta are derived. If there are only two
+numbers on the record, yhigh and ylow are both set to y. The x error
+bar is a horizontal line computed in the same fashion.
+
+The error bars have crossbars at each end unless @ref{bars} is used
+(see @ref{bars} for details).
+
+If autoscaling is on, the ranges will be adjusted to include the error bars.
+
+See @ref{using}, @ref{with}, and @ref{style} for more information.
+
+@node parametric, ranges, errorlines, plot
+@subsection parametric
+
+@c ?commands plot parametric
+@c ?commands splot parametric
+@c ?plot parametric
+@c ?splot parametric
+When in parametric mode (`set parametric`) mathematical expressions must be
+given in pairs for `plot` and in triplets for `splot`.
+
+Examples:
+@example
+      plot sin(t),t**2
+      splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
+
+@end example
+
+Data files are plotted as before, except any preceding parametric function
+must be fully specified before a data file is given as a plot.  In other
+words, the x parametric function (`sin(t)` above) and the y parametric
+function (`t**2` above) must not be interrupted with any modifiers or data
+functions; doing so will generate a syntax error stating that the parametric
+function is not fully specified.
+
+Other modifiers, such as @ref{with} and @ref{title}, may be specified only after the
+parametric function has been completed:
+
+@example
+      plot sin(t),t**2 title 'Parametric example' with linespoints
+
+@end example
+
+See also
+@uref{http://www.gnuplot.info/demo/param.html,Parametric Mode Demos.
+}
+
+@node ranges, title, parametric, plot
+@subsection ranges
+
+@c ?commands plot ranges
+@c ?commands splot ranges
+@c ?plot ranges
+@c ?splot ranges
+@cindex ranges
+
+The optional ranges specify the region of the graph that will be displayed.
+
+Syntax:
+@example
+      [@{<dummy-var>=@}@{@{<min>@}:@{<max>@}@}]
+      [@{@{<min>@}:@{<max>@}@}]
+
+@end example
+
+The first form applies to the independent variable (@ref{xrange} or @ref{trange}, if
+in parametric mode).  The second form applies to the dependent variable
+@ref{yrange} (and @ref{xrange}, too, if in parametric mode).  <dummy-var> is a new
+name for the independent variable.  (The defaults may be changed with @ref{dummy}.)  The optional <min> and <max> terms can be constant expressions or *.
+
+In non-parametric mode, the order in which ranges must be given is @ref{xrange}
+and @ref{yrange}.
+
+In parametric mode, the order for the `plot` command is @ref{trange}, @ref{xrange},
+and @ref{yrange}.  The following `plot` command shows setting the @ref{trange} to
+[-pi:pi], the @ref{xrange} to [-1.3:1.3] and the @ref{yrange} to [-1:1] for the
+duration of the graph:
+
+@example
+      plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
+
+@end example
+
+Note that the x2range and y2range cannot be specified here---@ref{x2range}
+and @ref{y2range} must be used.
+
+Ranges are interpreted in the order listed above for the appropriate mode.
+Once all those needed are specified, no further ones must be listed, but
+unneeded ones cannot be skipped---use an empty range `[]` as a placeholder.
+
+`*` can be used to allow autoscaling of either of min and max.  See also
+@ref{autoscale}.
+
+Ranges specified on the `plot` or `splot` command line affect only that
+graph; use the @ref{xrange}, @ref{yrange}, etc., commands to change the
+default ranges for future graphs.
+
+With time data, you must provide the range (in the same manner as the time
+appears in the datafile) within quotes.  `gnuplot` uses the @ref{timefmt} string
+to read the value---see @ref{timefmt}.
+
+Examples:
+
+This uses the current ranges:
+@example
+      plot cos(x)
+
+@end example
+
+This sets the x range only:
+@example
+      plot [-10:30] sin(pi*x)/(pi*x)
+
+@end example
+
+This is the same, but uses t as the dummy-variable:
+@example
+      plot [t = -10 :30]  sin(pi*t)/(pi*t)
+
+@end example
+
+This sets both the x and y ranges:
+@example
+      plot [-pi:pi] [-3:3]  tan(x), 1/x
+
+@end example
+
+This sets only the y range, and turns off autoscaling on both axes:
+@example
+      plot [ ] [-2:sin(5)*-8] sin(x)**besj0(x)
+
+@end example
+
+This sets xmax and ymin only:
+@example
+      plot [:200] [-pi:]  exp(sin(x))
+
+@end example
+
+This sets the x range for a timeseries:
+@example
+      set timefmt "%d/%m/%y %H:%M"
+      plot ["1/6/93 12:00":"5/6/93 12:00"] 'timedata.dat'
+
+@end example
+
+
+@node title, with, ranges, plot
+@subsection title
+
+@c ?commands plot title
+@c ?commands splot title
+@c ?plot title
+@c ?splot title
+A line title for each function and data set appears in the key, accompanied
+by a sample of the line and/or symbol used to represent it.  It can be
+changed by using the @ref{title} option.
+
+Syntax:
+@example
+      title "<title>" | notitle ["<ignored title>"]
+
+@end example
+
+where <title> is the new title of the line and must be enclosed in quotes.
+The quotes will not be shown in the key.  A special character may be given as
+a backslash followed by its octal value ("\345").  The tab character "\t" is
+understood.  Note that backslash processing occurs only for strings enclosed
+in double quotes---use single quotes to prevent such processing.  The newline
+character "\n" is not processed in key entries in either type of string.
+
+The line title and sample can be omitted from the key by using the keyword
+`notitle`.  A null title (`title ''`) is equivalent to `notitle`.  If only
+the sample is wanted, use one or more blanks (`title ' '`).  If `notitle`
+is followed by a string this string is ignored.
+
+If `key autotitles` is set (which is the default) and neither @ref{title} nor
+`notitle` are specified the line title is the function name or the file name as
+it appears on the `plot` command.  If it is a file name, any datafile modifiers
+specified will be included in the default title.
+
+The layout of the key itself (position, title justification, etc.) can be
+controlled by @ref{key}.  Please see @ref{key} for details.
+
+Examples:
+
+This plots y=x with the title 'x':
+@example
+      plot x
+
+@end example
+
+This plots x squared with title "x^2" and file "data.1" with title
+"measured data":
+@example
+      plot x**2 title "x^2", 'data.1' t "measured data"
+
+@end example
+
+This puts an untitled circular border around a polar graph:
+@example
+      set polar; plot my_function(t), 1 notitle
+
+@end example
+
+@node with,  , title, plot
+@subsection with
+
+@c ?commands plot with
+@c ?commands splot with
+@c ?commands plot style
+@c ?commands splot style
+@c ?plot with
+@c ?plot style
+@c ?splot with
+@c ?splot style
+@cindex style
+@opindex style
+
+
+@cindex with
+
+Functions and data may be displayed in one of a large number of styles.
+The @ref{with} keyword provides the means of selection.
+
+Syntax:
+@example
+      with <style> @{ @{linestyle | ls <line_style>@}
+                     | @{@{linetype  | lt <line_type>@}
+                        @{linewidth | lw <line_width>@}
+                        @{linecolor | lc <colorspec>@}
+                        @{pointtype | pt <point_type>@}
+                        @{pointsize | ps <point_size>@}
+                        @{fill | fs <fillstyle>@}
+                        @{nohidden3d | nocontours@}
+                        @{palette@}@}
+                   @}
+
+@end example
+
+where <style> is either `lines`, `points`, `linespoints`, `impulses`,
+`dots`, `steps`, `fsteps`, `histeps`, @ref{errorbars}, `labels`, `xerrorbars`,
+`yerrorbars`, `xyerrorbars`, @ref{errorlines}, `xerrorlines`, `yerrorlines`,
+`xyerrorlines`, `boxes`, `histograms`, `filledcurves`, `boxerrorbars`,
+`boxxyerrorbars`, `financebars`, `candlesticks`, `vectors`, `image`,
+`rgbimage` or @ref{pm3d}. Some of these styles require additional information.
+See `plotting styles` for details of each style.  `fill` is relevant only
+to certain 2D plots (currently `boxes` `boxxyerrorbars` and `candlesticks`).
+Note that `filledcurves` and @ref{pm3d} can take an additional option not
+listed above (the latter only when used in the `splot` command)---see
+their help or examples below for more details.
+
+Default styles are chosen with the `set style function` and `set style data`
+commands.
+
+By default, each function and data file will use a different line type and
+point type, up to the maximum number of available types.  All terminal
+drivers support at least six different point types, and re-use them, in
+order, if more are required.  The LaTeX driver supplies an additional six
+point types (all variants of a circle), and thus will only repeat after 12
+curves are plotted with points.  The PostScript drivers (@ref{postscript})
+supplies a total of 64.
+
+If you wish to choose the line or point type for a single plot, <line_type>
+and <point_type> may be specified.  These are positive integer constants (or
+expressions) that specify the line type and point type to be used for the
+plot.  Use @ref{test} to display the types available for your terminal.
+
+You may also scale the line width and point size for a plot by using
+<line_width> and <point_size>, which are specified relative to the default
+values for each terminal.  The pointsize may also be altered
+globally---see @ref{pointsize} for details.  But note that both <point_size>
+as set here and  as set by @ref{pointsize} multiply the default point
+size---their effects are  not cumulative.  That is,
+`set pointsize 2; plot x w p ps 3` will use points three times default size,
+not six.
+
+It is also possible to specify `pointsize variable` either as part of a
+line style or for an individual plot. In this case one extra column of input
+is required, i.e. 3 columns for a 2D plot and 4 columns for a 3D splot. The
+size of each individual point is determined by multiplying the global
+pointsize by the value read from the data file.
+
+If you have defined specific line type/width and point type/size combinations
+with `set style line`, one of these may be selected by setting <line_style> to
+the index of the desired style.
+
+If gnuplot was built with @ref{pm3d} support, the special keyword @ref{palette} is
+allowed for smooth color change of lines, points and dots in `splots`. The
+color is chosen from a smooth palette which was set previously with the
+command @ref{palette}. The color value corresponds to the z-value of the
+point coordinates or to the color coordinate if specified by the 4th parameter
+in @ref{using}. Both 2d and 3d plots (`plot` and `splot` commands) can use palette
+colors as specified by either their fractional value or the corresponding value
+mapped to the colorbox range. A palette color value can also be read from an
+explicitly specified column in the @ref{using} specifier.
+Z value. See `colors`, @ref{palette}, `linetype`.
+
+The keyword `nohidden3d` applies only to plots made with the `splot` command.
+Normally the global option @ref{hidden3d} applies to all plots in the graph.
+You can attach the `nohidden3d` option to any individual plots that you want
+to exclude from the hidden3d processing.  The individual elements other than
+surfaces (i.e. lines, dots, labels, ...) of a plot marked `nohidden3d` will all
+be drawn, even if they would normally be obscured by other plot elements.
+
+Similarly, the keyword `nocontours` will turn off contouring for an individual
+plot even if the global property "set contour" is active.
+
+The keywords may be abbreviated as indicated.
+
+Note that the `linewidth`, @ref{pointsize} and @ref{palette} options are not supported
+by all terminals.
+
+Examples:
+
+This plots sin(x) with impulses:
+@example
+      plot sin(x) with impulses
+
+@end example
+
+This plots x with points, x**2 with the default:
+@example
+      plot x w points, x**2
+
+@end example
+
+This plots tan(x) with the default function style, file "data.1" with lines:
+@example
+      plot [ ] [-2:5] tan(x), 'data.1' with l
+
+@end example
+
+This plots "leastsq.dat" with impulses:
+@example
+      plot 'leastsq.dat' w i
+
+@end example
+
+This plots the data file "population" with boxes:
+@example
+      plot 'population' with boxes
+
+@end example
+
+This plots "exper.dat" with errorbars and lines connecting the points
+(errorbars require three or four columns):
+@example
+      plot 'exper.dat' w lines, 'exper.dat' notitle w errorbars
+
+@end example
+
+Another way to plot "exper.dat" with errorlines (errorbars require three
+or four columns):
+@example
+      plot 'exper.dat' w errorlines
+
+@end example
+
+This plots sin(x) and cos(x) with linespoints, using the same line type but
+different point types:
+@example
+      plot sin(x) with linesp lt 1 pt 3, cos(x) with linesp lt 1 pt 4
+
+@end example
+
+This plots file "data" with points of type 3 and twice usual size:
+@example
+      plot 'data' with points pointtype 3 pointsize 2
+
+@end example
+
+This plots file "data" with variable pointsize read from column 4
+@example
+      plot 'data' using 1:2:4 with points pt 5 pointsize variable
+
+@end example
+
+This plots two data sets with lines differing only by weight:
+@example
+      plot 'd1' t "good" w l lt 2 lw 3, 'd2' t "bad" w l lt 2 lw 1
+
+@end example
+
+This plots filled curve of x*x and a color stripe:
+@example
+      plot x*x with filledcurve closed, 40 with filledcurve y1=10
+
+@end example
+
+This plots x*x and a color box:
+@example
+      plot x*x, (x>=-5 && x<=5 ? 40 : 1/0) with filledcurve y1=10 lt 8
+
+@end example
+
+This plots a surface with color lines:
+@example
+      splot x*x-y*y with line palette
+
+@end example
+
+This plots two color surfaces at different altitudes:
+@example
+      splot x*x-y*y with pm3d, x*x+y*y with pm3d at t
+
+@end example
+
+
+@node print, pwd, plot, Commands
+@section print
+
+@c ?commands print
+@cindex print
+@cmindex print
+
+
+The @ref{print} command prints the value of <expression> to the screen.  It is
+synonymous with `pause 0`.  <expression> may be anything that `gnuplot` can
+evaluate that produces a number, or it can be a string.
+
+Syntax:
+@example
+      print <expression> @{, <expression>, ...@}
+
+@end example
+
+See `expressions`.  The output file can be set with @ref{print}.
+
+@node pwd, quit, print, Commands
+@section pwd
+
+@c ?commands pwd
+@cindex pwd
+@cmindex pwd
+
+
+The @ref{pwd} command prints the name of the working directory to the screen.
+
+@node quit, raise, pwd, Commands
+@section quit
+
+@c ?commands quit
+@cindex quit
+@cmindex quit
+
+
+The @ref{exit} and @ref{quit} commands and END-OF-FILE character will exit `gnuplot`.
+Each of these commands will clear the output device (as does the @ref{clear}
+command) before exiting.
+
+@node raise, replot, quit, Commands
+@section raise
+
+@c ?commands raise
+@cindex raise
+@cmindex raise
+
+
+Syntax:
+@example
+      raise @{plot_window_nb@}
+
+@end example
+
+The @ref{raise} command raises (opposite to @ref{lower}) plot window(s) associated
+with the interactive terminal of your gnuplot session, i.e. `pm`, `win`, `wxt`
+or `x11`. It puts the plot window to front (top) in the z-order windows stack
+of the window manager of your desktop.
+
+As `x11` and `wxt` support multiple plot windows, then by default they raise
+these windows in descending order of most recently created on top to the least
+recently created on bottom. If a plot number is supplied as an optional
+parameter, only the associated plot window will be raised if it exists.
+
+The optional parameter is ignored for single plot-windows terminal, i.e. `pm`
+and `win`.
+
+@example
+ If the window is not raised under X11, then (1) they don't run in the same
+ X11 session (telnet or ssh session, for example), or (2) raising is blocked
+ by your window manager. On KDE, you may like to go to the KDE Control Center
+ => Desktop => Window Behaviour => Advanced and set the "Focus stealing
+ prevention level" to None (default is Low).
+
+@end example
+
+@node replot, reread, raise, Commands
+@section replot
+
+@c ?commands replot
+@cindex replot
+@cmindex replot
+
+
+The @ref{replot} command without arguments repeats the last `plot` or `splot`
+command.  This can be useful for viewing a plot with different `set` options,
+or when generating the same plot for several devices.
+
+Arguments specified after a @ref{replot} command will be added onto the last
+`plot` or `splot` command (with an implied ',' separator) before it is
+repeated.  @ref{replot} accepts the same arguments as the `plot` and `splot`
+commands except that ranges cannot be specified.  Thus you can use @ref{replot}
+to plot a function against the second axes if the previous command was `plot`
+but not if it was `splot`.
+
+N.B.---use of
+
+@example
+      plot '-' ; ... ; replot
+
+@end example
+
+is not recommended.  `gnuplot` does not store the inline data internally, so
+since @ref{replot} appends new information to the previous `plot` and then
+executes the modified command, the `'-'` from the initial `plot` will expect
+to read inline data again.
+
+Note that @ref{replot} does not work in @ref{multiplot} mode, since it reproduces
+only the last plot rather than the entire screen.
+
+See also `command-line-editing` for ways to edit the last `plot` (`splot`)
+command.
+
+See also `show plot` to show the whole current plotting command, and the
+possibility to copy it into the `history`.
+
+@node reread, reset, replot, Commands
+@section reread
+
+@c ?commands reread
+@cindex reread
+@cmindex reread
+
+
+The @ref{reread} command causes the current `gnuplot` command file, as specified
+by a `load` command or on the command line, to be reset to its starting
+point before further commands are read from it.  This essentially implements
+an endless loop of the commands from the beginning of the command file to
+the @ref{reread} command.  (But this is not necessarily a disaster---@ref{reread} can
+be very useful when used in conjunction with @ref{if}.  See @ref{if} for details.)
+The @ref{reread} command has no effect if input from standard input.
+
+Examples:
+
+Suppose the file "looper" contains the commands
+@example
+      a=a+1
+      plot sin(x*a)
+      pause -1
+      if(a<5) reread
+@end example
+
+and from within `gnuplot` you submit the commands
+@example
+      a=0
+      load 'looper'
+@end example
+
+The result will be five plots (separated by the @ref{pause} message).
+
+Suppose the file "data" contains six columns of numbers with a total yrange
+from 0 to 10; the first is x and the next are five different functions of x.
+Suppose also that the file "plotter" contains the commands
+@example
+      c_p = c_p+1
+      plot "$0" using 1:c_p with lines linetype c_p
+      if(c_p <  n_p) reread
+@end example
+
+and from within `gnuplot` you submit the commands
+@example
+      n_p=6
+      c_p=1
+      unset key
+      set yrange [0:10]
+      set multiplot
+      call 'plotter' 'data'
+      unset multiplot
+@end example
+
+The result is a single graph consisting of five plots.  The yrange must be
+set explicitly to guarantee that the five separate graphs (drawn on top of
+each other in multiplot mode) will have exactly the same axes.  The linetype
+must be specified; otherwise all the plots would be drawn with the same type.
+See animate.dem in demo directory for an animated example.
+
+
+@node reset, save, reread, Commands
+@section reset
+
+@c ?commands reset
+@cindex reset
+@cmindex reset
+
+
+The @ref{reset} command causes all graph-related options that can be set with the
+`set` command to take on their default values.  This command is useful, e.g.,
+to restore the default graph settings at the end of a command file, or to
+return to a defined state after lots of settings have been changed within a
+command file.  Please refer to the `set` command to see the default values
+that the various options take.
+
+The following `set` commands do not change the graph status and are thus left
+unchanged: the terminal set with `set term`, the output file set with @ref{output} and directory paths set with @ref{loadpath} and @ref{fontpath}.
+
+@node save, set-show, reset, Commands
+@section save
+
+@c ^ <a name="save set"></a>
+@c ?commands save
+@cindex save
+@cmindex save
+
+
+The @ref{save} command saves user-defined functions, variables, the `set
+term` status, all `set` options, or all of these, plus the last `plot`
+(`splot`) command to the specified file.
+
+Syntax:
+@example
+      save  @{<option>@} '<filename>'
+
+@end example
+
+where <option> is @ref{functions}, @ref{variables}, @ref{terminal} or `set`. If
+no option is used, `gnuplot` saves functions, variables, `set`
+options and the last `plot` (`splot`) command.
+
+@ref{save}d files are written in text format and may be read by the
+`load` command. For @ref{save} with the `set` option or without any
+option, the @ref{terminal} choice and the @ref{output} filename are written
+out as a comment, to get an output file that works in other
+installations of gnuplot, without changes and without risk of
+unwillingly overwriting files.
+
+@ref{terminal} will write out just the @ref{terminal} status, without
+the comment marker in front of it. This is mainly useful for
+switching the @ref{terminal} setting for a short while, and getting back
+to the previously set terminal, afterwards, by loading the saved
+@ref{terminal} status. Note that for a single gnuplot session you may
+rather use the other method of saving and restoring current terminal
+by the commands `set term push` and `set term pop`, see `set term`.
+
+The filename must be enclosed in quotes.
+
+The special filename "-" may be used to @ref{save} commands to standard output.
+On systems which support a popen function (Unix), the output of save can be
+piped through an external program by starting the file name with a '|'.
+This provides a consistent interface to `gnuplot`'s internal settings to
+programs which communicate with `gnuplot` through a pipe.  Please see
+help for `batch/interactive` for more details.
+
+Examples:
+@example
+      save 'work.gnu'
+      save functions 'func.dat'
+      save var 'var.dat'
+      save set 'options.dat'
+      save term 'myterm.gnu'
+      save '-'
+      save '|grep title >t.gp'
+
+@end example
+
+@node set-show, shell, save, Commands
+@section set-show
+
+@c ?commands set
+@c ?commands show
+@cindex set
+
+@cindex show
+
+@c ?show all
+The `set` command can be used to set _lots_ of options.  No screen is
+drawn, however, until a `plot`, `splot`, or @ref{replot} command is given.
+
+The `show` command shows their settings;  `show all` shows all the
+settings.
+
+Options changed using `set` can be returned to the default state by giving the
+corresponding @ref{unset} command.  See also the @ref{reset} command, which returns
+all settable parameters to default values.
+
+If a variable contains time/date data, `show` will display it according to
+the format currently defined by @ref{timefmt}, even if that was not in effect
+when the variable was initially defined.
+
+@menu
+* angles::                      
+* arrow::                       
+* autoscale::                   
+* bars::                        
+* bmargin::                     
+* border::                      
+* boxwidth::                    
+* clabel::                      
+* clip::                        
+* cntrparam::                   
+* color_box::                   
+* contour::                     
+* data_style::                  
+* datafile::                    
+* decimalsign::                 
+* dgrid3d::                     
+* dummy::                       
+* encoding::                    
+* fit_::                        
+* fontpath::                    
+* format_::                     
+* function_style::              
+* functions::                   
+* grid::                        
+* hidden3d::                    
+* historysize::                 
+* isosamples::                  
+* key::                         
+* label::                       
+* lmargin::                     
+* loadpath::                    
+* locale::                      
+* logscale::                    
+* macros::                      
+* mapping::                     
+* margin::                      
+* mouse::                       
+* multiplot::                   
+* mx2tics::                     
+* mxtics::                      
+* my2tics::                     
+* mytics::                      
+* mztics::                      
+* offsets::                     
+* origin::                      
+* output::                      
+* parametric_::                 
+* plot_::                       
+* pm3d::                        
+* palette::                     
+* pointsize::                   
+* polar::                       
+* print_::                      
+* object::                      
+* rmargin::                     
+* rrange::                      
+* samples::                     
+* size::                        
+* style::                       
+* surface::                     
+* table::                       
+* terminal::                    
+* termoption::                  
+* tics::                        
+* ticslevel::                   
+* ticscale::                    
+* timestamp::                   
+* timefmt::                     
+* title_::                      
+* tmargin::                     
+* trange::                      
+* urange::                      
+* variables::                   
+* version::                     
+* view::                        
+* vrange::                      
+* x2data::                      
+* x2dtics::                     
+* x2label::                     
+* x2mtics::                     
+* x2range::                     
+* x2tics::                      
+* x2zeroaxis::                  
+* xdata::                       
+* xdtics::                      
+* xlabel::                      
+* xmtics::                      
+* xrange::                      
+* xtics::                       
+* xyplane::                     
+* xzeroaxis::                   
+* y2data::                      
+* y2dtics::                     
+* y2label::                     
+* y2mtics::                     
+* y2range::                     
+* y2tics::                      
+* y2zeroaxis::                  
+* ydata::                       
+* ydtics::                      
+* ylabel::                      
+* ymtics::                      
+* yrange::                      
+* ytics::                       
+* yzeroaxis::                   
+* zdata::                       
+* zdtics::                      
+* zzeroaxis::                   
+* cbdata::                      
+* cbdtics::                     
+* zero::                        
+* zeroaxis::                    
+* zlabel::                      
+* zmtics::                      
+* zrange::                      
+* ztics::                       
+* cblabel::                     
+* cbmtics::                     
+* cbrange::                     
+* cbtics::                      
+@end menu
+
+@node angles, arrow, set-show, set-show
+@subsection angles
+
+@c ?commands set angles
+@c ?commands show angles
+@c ?set angles
+@c ?show angles
+@cindex angles
+@opindex angles
+
+
+@c ?commands set angles degrees
+@c ?set angles degrees
+@c ?angles degrees
+@cindex degrees
+
+By default, `gnuplot` assumes the independent variable in polar graphs is in
+units of radians.  If `set angles degrees` is specified before `set polar`,
+then the default range is [0:360] and the independent variable has units of
+degrees.  This is particularly useful for plots of data files.  The angle
+setting also applies to 3-d mapping as set via the @ref{mapping} command.
+
+Syntax:
+@example
+      set angles @{degrees | radians@}
+      show angles
+
+@end example
+
+The angle specified in `set grid polar` is also read and displayed in the
+units specified by @ref{angles}.
+
+@ref{angles} also affects the arguments of the machine-defined functions
+sin(x), cos(x) and tan(x), and the outputs of asin(x), acos(x), atan(x),
+atan2(x), and arg(x).  It has no effect on the arguments of hyperbolic
+functions or Bessel functions.  However, the output arguments of inverse
+hyperbolic functions of complex arguments are affected; if these functions
+are used, `set angles radians` must be in effect to maintain consistency
+between input and output arguments.
+
+@example
+      x=@{1.0,0.1@}
+      set angles radians
+      y=sinh(x)
+      print y         #prints @{1.16933, 0.154051@}
+      print asinh(y)  #prints @{1.0, 0.1@}
+@end example
+
+but
+@example
+      set angles degrees
+      y=sinh(x)
+      print y         #prints @{1.16933, 0.154051@}
+      print asinh(y)  #prints @{57.29578, 5.729578@}
+@end example
+
+See also
+@uref{http://www.gnuplot.info/demo/poldat.html,poldat.dem: polar plot using @ref{angles} demo.
+}
+
+@node arrow, autoscale, angles, set-show
+@subsection arrow
+
+@c ?commands set arrow
+@c ?commands unset arrow
+@c ?commands show arrow
+@c ?set arrow
+@c ?unset arrow
+@c ?show arrow
+@cindex arrow
+@opindex arrow
+
+
+@cindex noarrow
+
+Arbitrary arrows can be placed on a plot using the @ref{arrow} command.
+
+Syntax:
+@example
+      set arrow @{<tag>@} @{from <position>@} @{to|rto <position>@}
+                @{ @{arrowstyle | as <arrow_style>@}
+                  | @{ @{nohead | head | backhead | heads@}
+                      @{size <length>,<angle>@{,<backangle>@}@}
+                      @{filled | empty | nofilled@}
+                      @{front | back@}
+                      @{ @{linestyle | ls <line_style>@}
+                        | @{linetype | lt <line_type>@}
+                          @{linewidth | lw <line_width@} @} @} @}
+
+@end example
+
+@example
+      unset arrow @{<tag>@}
+      show arrow @{<tag>@}
+
+@end example
+
+<tag> is an integer that identifies the arrow.  If no tag is given, the
+lowest unused tag value is assigned automatically.  The tag can be used to
+delete or change a specific arrow.  To change any attribute of an existing
+arrow, use the @ref{arrow} command with the appropriate tag and specify the
+parts of the arrow to be changed.
+
+The <position>s are specified by either x,y or x,y,z, and may be preceded by
+`first`, `second`, `graph`, `screen`, or `character` to select the coordinate
+system.  Unspecified coordinates default to 0.  The end points can be
+specified in one of five coordinate systems---`first` or `second` axes,
+`graph`, `screen`, or `character`.  See `coordinates` for details.  A
+coordinate system specifier does not carry over from the "from" position to
+the "to" position.  Arrows outside the screen boundaries are permitted but
+may cause device errors.  If the end point is specified by "rto" instead of
+"to" it is drawn relatively to the start point.  For linear axes, `graph`
+and `screen` coordinates, the distance between the start and the end point
+corresponds to the given relative coordinate.  For logarithmic axes, the
+relative given coordinate corresponds to the factor of the coordinate
+between start and end point.  Thus, a negative relative value or zero are
+not allowed for logarithmic axes.
+
+Specifying `nohead` produces an arrow drawn without a head---a line segment.
+This gives you yet another way to draw a line segment on the plot.  By
+default, an arrow has a head at its end. Specifying `backhead` draws an arrow
+head at the start point of the arrow while `heads` draws arrow heads on both
+ends of the line.  Not all terminal types support double-ended arrows.
+
+Head size can be controlled by `size <length>,<angle>` or
+`size <length>,<angle>,<backangle>`, where `<length>` defines length of each
+branch of the arrow head and `<angle>` the angle (in degrees) they make with
+the arrow.  `<Length>` is in x-axis units; this can be changed by `first`,
+`second`, `graph`, `screen`, or `character` before the <length>;  see
+`coordinates` for details.  `<Backangle>` only takes effect when `filled`
+or `empty` is also used.  Then, `<backangle>` is the angle (in degrees) the
+back branches make with the arrow (in the same direction as `<angle>`).
+The `fig` terminal has a restricted backangle function. It supports three
+different angles. There are two thresholds: Below 70 degrees, the arrow head
+gets an indented back angle. Above 110 degrees, the arrow head has an acute
+back angle. Between these thresholds, the back line is straight.
+
+Specifying `filled` produces filled arrow heads (if heads are used).
+Filling is supported on filled-polygon capable terminals, see help of @ref{pm3d}
+for their list, otherwise the arrow heads are closed but not filled.
+The same result (closed but not filled arrow head) is reached by specifying
+`empty`.  Further, filling and outline is obviously not supported on
+terminals drawing arrows by their own specific routines, like `metafont`,
+`metapost`, `latex` or `tgif`.
+
+The line style may be selected from a user-defined list of line styles
+(see `set style line`) or may be defined here by providing values for
+<line_type> (an index from the default list of styles) and/or <line_width>
+(which is a  multiplier for the default width).
+
+Note, however, that if a user-defined line style has been selected, its
+properties (type and width) cannot be altered merely by issuing another
+@ref{arrow} command with the appropriate index and `lt` or `lw`.
+
+If `front` is given, the arrow is written on top of the graphed data. If
+`back` is given (the default), the arrow is written underneath the graphed
+data.  Using `front` will prevent an arrow from being obscured by dense data.
+
+Examples:
+
+To set an arrow pointing from the origin to (1,2) with user-defined style 5,
+use:
+@example
+      set arrow to 1,2 ls 5
+
+@end example
+
+To set an arrow from bottom left of plotting area to (-5,5,3), and tag the
+arrow number 3, use:
+@example
+      set arrow 3 from graph 0,0 to -5,5,3
+
+@end example
+
+To change the preceding arrow to end at 1,1,1, without an arrow head and
+double its width, use:
+@example
+      set arrow 3 to 1,1,1 nohead lw 2
+
+@end example
+
+To draw a vertical line from the bottom to the top of the graph at x=3, use:
+@example
+      set arrow from 3, graph 0 to 3, graph 1 nohead
+
+@end example
+
+To draw a vertical arrow with T-shape ends, use:
+@example
+      set arrow 3 from 0,-5 to 0,5 heads size screen 0.1,90
+
+@end example
+
+To draw an arrow relatively to the start point, where the relative distances
+are given in graph coordinates, use:
+@example
+      set arrow from 0,-5 rto graph 0.1,0.1
+
+@end example
+
+To draw an arrow with relative end point in logarithmic x axis, use:
+@example
+      set logscale x
+      set arrow from 100,-5 rto 10,10
+@end example
+
+This draws an arrow from 100,-5 to 1000,5. For the logarithmic x axis, the
+relative coordinate 10 means "factor 10" while for the linear y axis, the
+relative coordinate 10 means "difference 10".
+
+To delete arrow number 2, use:
+@example
+      unset arrow 2
+
+@end example
+
+To delete all arrows, use:
+@example
+      unset arrow
+
+@end example
+
+To show all arrows (in tag order), use:
+@example
+      show arrow
+
+@end example
+
+@uref{http://gnuplot.sourceforge.net/demo/arrowstyle.html,arrows demos.
+}
+
+
+@node autoscale, bars, arrow, set-show
+@subsection autoscale
+
+@c ?commands set autoscale
+@c ?commands unset autoscale
+@c ?commands show autoscale
+@c ?set autoscale
+@c ?unset autoscale
+@c ?show autoscale
+@cindex autoscale
+@opindex autoscale
+
+
+@cindex noautoscale
+
+Autoscaling may be set individually on the x, y or z axis or globally on all
+axes. The default is to autoscale all axes.
+
+Syntax:
+@example
+      set autoscale @{<axes>@{|min|max|fixmin|fixmax|fix@} | fix | keepfix@}
+      unset autoscale @{<axes>@}
+      show autoscale
+
+@end example
+
+where <axes> is either `x`, `y`, `z`, `cb`, `x2`, `y2` or `xy`.  A keyword with
+`min` or `max` appended (this cannot be done with `xy`) tells `gnuplot` to
+autoscale just the minimum or maximum of that axis.  If no keyword is given,
+all axes are autoscaled.
+
+A keyword with `fixmin`, `fixmax` or `fix` appended tells gnuplot to disable
+extension of the axis range to the next tic mark position, for autoscaled
+axes using equidistant tics; `set autoscale fix` sets this for all axes.
+Command `set autoscale keepfix` autoscales all axes while keeping the fix
+settings.
+
+When autoscaling, the axis range is automatically computed and the dependent
+axis (y for a `plot` and z for `splot`) is scaled to include the range of the
+function or data being plotted.
+
+If autoscaling of the dependent axis (y or z) is not set, the current y or z
+range is used.
+
+Autoscaling the independent variables (x for `plot` and x,y for `splot`) is a
+request to set the domain to match any data file being plotted.  If there are
+no data files, autoscaling an independent variable has no effect.  In other
+words, in the absence of a data file, functions alone do not affect the x
+range (or the y range if plotting z = f(x,y)).
+
+Please see @ref{xrange} for additional information about ranges.
+
+The behavior of autoscaling remains consistent in parametric mode, (see
+`set parametric`).  However, there are more dependent variables and hence more
+control over x, y, and z axis scales.  In parametric mode, the independent or
+dummy variable is t for `plot`s and u,v for `splot`s.  @ref{autoscale} in
+parametric mode, then, controls all ranges (t, u, v, x, y, and z) and allows
+x, y, and z to be fully autoscaled.
+
+Autoscaling works the same way for polar mode as it does for parametric mode
+for `plot`, with the extension that in polar mode @ref{dummy} can be used to
+change the independent variable from t (see @ref{dummy}).
+
+When tics are displayed on second axes but no plot has been specified for
+those axes, x2range and y2range are inherited from xrange and yrange.  This
+is done _before_ xrange and yrange are autoextended to a whole number of
+tics, which can cause unexpected results.  You can use the `fixmin`
+or `fixmax` options to avoid this.
+
+Examples:
+
+This sets autoscaling of the y axis (other axes are not affected):
+@example
+      set autoscale y
+
+@end example
+
+This sets autoscaling only for the minimum of the y axis (the maximum of the
+y axis and the other axes are not affected):
+@example
+      set autoscale ymin
+
+@end example
+
+This disables extension of the x2 axis tics to the next tic mark,
+thus keeping the exact range as found in the plotted data and functions:
+@example
+      set autoscale x2fixmin
+      set autoscale x2fixmax
+
+@end example
+
+This sets autoscaling of the x and y axes:
+@example
+      set autoscale xy
+
+@end example
+
+This sets autoscaling of the x, y, z, x2 and y2 axes:
+@example
+      set autoscale
+
+@end example
+
+This disables autoscaling of the x, y, z, x2 and y2 axes:
+@example
+      unset autoscale
+
+@end example
+
+This disables autoscaling of the z axis only:
+@example
+      unset autoscale z
+
+@end example
+
+@menu
+* parametric_mode::             
+* polar_mode::                  
+@end menu
+
+@node parametric_mode, polar_mode, autoscale, autoscale
+@subsubsection parametric mode
+
+@c ?commands set autoscale parametric
+@c ?set autoscale parametric
+@c ?set autoscale t
+When in parametric mode (`set parametric`), the xrange is as fully scalable
+as the y range.  In other words, in parametric mode the x axis can be
+automatically scaled to fit the range of the parametric function that is
+being plotted.  Of course, the y axis can also be automatically scaled just
+as in the non-parametric case.  If autoscaling on the x axis is not set, the
+current x range is used.
+
+Data files are plotted the same in parametric and non-parametric mode.
+However, there is a difference in mixed function and data plots: in
+non-parametric mode with autoscaled x, the x range of the datafile controls
+the x range of the functions; in parametric mode it has no influence.
+
+For completeness a last command `set autoscale t` is accepted.  However, the
+effect of this "scaling" is very minor.  When `gnuplot` determines that the
+t range would be empty, it makes a small adjustment if autoscaling is true.
+Otherwise, `gnuplot` gives an error.  Such behavior may, in fact, not be very
+useful and the command `set autoscale t` is certainly questionable.
+
+`splot` extends the above ideas as you would expect.  If autoscaling is set,
+then x, y, and z ranges are computed and each axis scaled to fit the
+resulting data.
+
+@node polar_mode,  , parametric_mode, autoscale
+@subsubsection polar mode
+
+@c ?commands set autoscale polar
+@c ?set autoscale polar
+When in polar mode (`set polar`), the xrange and the yrange are both found
+from the polar coordinates, and thus they can both be automatically scaled.
+In other words, in polar mode both the x and y axes can be automatically
+scaled to fit the ranges of the polar function that is being plotted.
+
+When plotting functions in polar mode, the rrange may be autoscaled.  When
+plotting data files in polar mode, the trange may also be autoscaled.  Note
+that if the trange is contained within one quadrant, autoscaling will produce
+a polar plot of only that single quadrant.
+
+Explicitly setting one or two ranges but not others may lead to unexpected
+results.
+See also
+@uref{http://www.gnuplot.info/demo/poldat.html,polar demos.
+}
+
+@node bars, bmargin, autoscale, set-show
+@subsection bars
+
+@c ?commands set bars
+@c ?commands show bars
+@c ?set bars
+@c ?show bars
+@cindex bars
+@opindex bars
+
+
+The @ref{bars} command controls the tics at the ends of error bars,
+and also the width of the boxes in plot styles candlesticks and
+financebars.
+
+Syntax:
+@example
+      set bars @{small | large | fullwidth | <size>@}
+      unset bars
+      show bars
+
+@end example
+
+`small` is a synonym for 0.0, and `large` for 1.0.
+The default is 1.0 if no size is given.
+
+The keyword `fullwidth` is relevant only to histograms with errorbars.
+It sets the width of the errorbar ends to be the same as the width of the
+associated box in the histogram.  It does not change the width of the box
+itself.
+
+@node bmargin, border, bars, set-show
+@subsection bmargin
+
+@c ?commands set bmargin
+@c ?set bmargin
+@cindex bmargin
+@opindex bmargin
+
+
+The command @ref{bmargin} sets the size of the bottom margin.
+Please see @ref{margin} for details.
+
+@node border, boxwidth, bmargin, set-show
+@subsection border
+
+@c ?commands set border
+@c ?commands unset border
+@c ?commands show border
+@c ?set border
+@c ?unset border
+@c ?show border
+@cindex border
+@opindex border
+
+
+@cindex noborder
+
+The @ref{border} and @ref{border} commands control the display of the graph
+borders for the `plot` and `splot` commands.  Note that the borders do not
+necessarily coincide with the axes; with `plot` they often do, but with
+`splot` they usually do not.
+
+Syntax:
+@example
+      set border @{<integer>@} @{front | back@} @{linewidth | lw <line_width>@}
+                 @{@{linestyle | ls <line_style>@} | @{linetype | lt <line_type>@}@}
+      unset border
+      show border
+
+@end example
+
+With a `splot` displayed in an arbitrary orientation, like `set view 56,103`,
+the four corners of the x-y plane can be referred to as "front", "back",
+"left" and "right".  A similar set of four corners exist for the top surface,
+of course.  Thus the border connecting, say, the back and right corners of the
+x-y plane is the "bottom right back" border, and the border connecting the top
+and bottom front corners is the "front vertical".  (This nomenclature is
+defined solely to allow the reader to figure out the table that follows.)
+
+The borders are encoded in a 12-bit integer: the bottom four bits control the
+border for `plot` and the sides of the base for `splot`; the next four bits
+control the verticals in `splot`; the top four bits control the edges on top
+of the `splot`.  In detail, `<integer>` should be the sum of the appropriate
+entries from the following table:
+
+
+@example
+            Bit     plot        splot
+              1   bottom      bottom left front
+              2   left        bottom left back
+              4   top         bottom right front
+              8   right       bottom right back
+             16   no effect   left vertical
+             32   no effect   back vertical
+             64   no effect   right vertical
+            128   no effect   front vertical
+            256   no effect   top left back
+            512   no effect   top right back
+           1024   no effect   top left front
+           2048   no effect   top right front
+
+@end example
+
+
+Various bits or combinations of bits may be added together in the command.
+
+The default is 31, which is all four sides for `plot`, and base and z axis
+for `splot`.
+
+In 2D plots the border is normally drawn on top of all plots elements
+(`front`). If you want the border to be drawn behind the plot elements,
+use `set border back`.
+
+Using the optional <line_style>, <line_type> and <line_width> specifiers, the
+way the border lines are drawn can be influenced (limited by what the current
+terminal driver supports).
+
+For `plot`, tics may be drawn on edges other than bottom and left by enabling
+the second axes -- see `set xtics` for details.
+
+If a `splot` draws only on the base, as is the case with "`unset surface; set
+contour base`", then the verticals and the top are not drawn even if they are
+specified.
+
+The `set grid` options 'back', 'front' and 'layerdefault' also
+control the order in which the border lines are drawn with respect to
+the output of the plotted data.
+
+Examples:
+
+Draw default borders:
+@example
+      set border
+
+@end example
+
+Draw only the left and bottom (`plot`) or both front and back bottom left
+(`splot`) borders:
+@example
+      set border 3
+
+@end example
+
+Draw a complete box around a `splot`:
+@example
+      set border 4095
+
+@end example
+
+Draw a topless box around a `splot`, omitting the front vertical:
+@example
+      set border 127+256+512 # or set border 1023-128
+
+@end example
+
+Draw only the top and right borders for a `plot` and label them as axes:
+@example
+      unset xtics; unset ytics; set x2tics; set y2tics; set border 12
+
+@end example
+
+
+@node boxwidth, clabel, border, set-show
+@subsection boxwidth
+
+@c ?commands set boxwidth
+@c ?commands show boxwidth
+@c ?set boxwidth
+@c ?show boxwidth
+@cindex boxwidth
+@opindex boxwidth
+
+
+The @ref{boxwidth} command is used to set the default width of boxes in the
+`boxes`, `boxerrorbars`, `candlesticks` and `histograms` styles.
+
+Syntax:
+@example
+      set boxwidth @{<width>@} @{absolute|relative@}
+      show boxwidth
+
+@end example
+
+By default, adjacent boxes are extended in width until they touch each other.
+A different default width may be specified using the @ref{boxwidth} command.
+`Relative` widths are interpreted as being a fraction of this default width.
+
+An explicit value for the boxwidth is interpreted as being a number of units
+along the current x axis (`absolute`) unless the modifier `relative` is given.
+If the x axis is a log-scale (see `set log`) then the value of boxwidth is
+truly "absolute" only at x=1; this physical width is maintained everywhere
+along the axis (i.e. the boxes do not become narrower the value of x
+increases). If the range spanned by a log scale x axis is far from x=1,
+some experimentation may be required to find a useful value of boxwidth.
+
+The default is superseded by explicit width information taken from an extra
+data column in styles `boxes` or `boxerrorbars`.  In a four-column data set,
+the fourth column will be interpreted as the box width unless the width is set
+to -2.0, in which case the width will be calculated automatically.
+See `style boxes` and `style boxerrorbars` for more details.
+
+To set the box width to automatic use the command
+@example
+      set boxwidth
+
+@end example
+
+or, for four-column data,
+@example
+      set boxwidth -2
+
+@end example
+
+The same effect can be achieved with the @ref{using} keyword in `plot`:
+@example
+      plot 'file' using 1:2:3:4:(-2)
+
+@end example
+
+To set the box width to half of the automatic size use
+@example
+      set boxwidth 0.5 relative
+
+@end example
+
+To set the box width to an absolute value of 2 use
+@example
+      set boxwidth 2 absolute
+
+@end example
+
+@node clabel, clip, boxwidth, set-show
+@subsection clabel
+
+@c ?commands set clabel
+@c ?commands unset clabel
+@c ?commands show clabel
+@c ?set clabel
+@c ?unset clabel
+@c ?show clabel
+@cindex clabel
+@opindex clabel
+
+
+`gnuplot` will vary the linetype used for each contour level when clabel is
+set.  When this option on (the default), a legend labels each linestyle with
+the z level it represents.  It is not possible at present to separate the
+contour labels from the surface key.
+
+Syntax:
+@example
+      set clabel @{'<format>'@}
+      unset clabel
+      show clabel
+
+@end example
+
+The default for the format string is %8.3g, which gives three decimal places.
+This may produce poor label alignment if the key is altered from its default
+configuration.
+
+The first contour linetype, or only contour linetype when clabel is off, is
+the surface linetype +1; contour points are the same style as surface points.
+
+See also @ref{contour}.
+
+@node clip, cntrparam, clabel, set-show
+@subsection clip
+
+@c ?commands set clip
+@c ?commands unset clip
+@c ?commands show clip
+@c ?set clip
+@c ?unset clip
+@c ?show clip
+@cindex clip
+@opindex clip
+
+
+@cindex noclip
+
+`gnuplot` can clip data points and lines that are near the boundaries of a
+graph.
+
+Syntax:
+@example
+      set clip <clip-type>
+      unset clip <clip-type>
+      show clip
+
+@end example
+
+Three clip types for points and lines are supported by `gnuplot`: `points`,
+`one`, and `two`. One, two, or all three clip types may be active for a
+single graph.
+Note that clipping of color filled quadrangles drawn by @ref{pm3d} maps and
+surfaces is not controlled by this command, but by `set pm3d clip1in` and
+`set pm3d clip4in`.
+
+The `points` clip type forces `gnuplot` to clip (actually, not plot at all)
+data points that fall within but too close to the boundaries.  This is done
+so that large symbols used for points will not extend outside the boundary
+lines.  Without clipping points near the boundaries, the plot may look bad.
+Adjusting the x and y ranges may give similar results.
+
+Setting the `one` clip type causes `gnuplot` to draw a line segment which has
+only one of its two endpoints within the graph.  Only the in-range portion of
+the line is drawn.  The alternative is to not draw any portion of the line
+segment.
+
+Some lines may have both endpoints out of range, but pass through the graph.
+Setting the `two` clip-type allows the visible portion of these lines to be
+drawn.
+
+In no case is a line drawn outside the graph.
+
+The defaults are `noclip points`, `clip one`, and `noclip two`.
+
+To check the state of all forms of clipping, use
+@example
+      show clip
+
+@end example
+
+For backward compatibility with older versions, the following forms are also
+permitted:
+@example
+      set clip
+      unset clip
+
+@end example
+
+@ref{clip} is synonymous with `set clip points`; @ref{clip} turns off all
+three types of clipping.
+
+@node cntrparam, color_box, clip, set-show
+@subsection cntrparam
+
+@c ?commands set cntrparam
+@c ?commands show cntrparam
+@c ?set cntrparam
+@c ?show cntrparam
+@cindex cntrparam
+@opindex cntrparam
+
+
+@ref{cntrparam} controls the generation of contours and their smoothness for
+a contour plot. @ref{contour} displays current settings of @ref{cntrparam} as
+well as @ref{contour}.
+
+Syntax:
+@example
+      set cntrparam @{ @{ linear
+                      | cubicspline
+                      | bspline
+                      | points <n>
+                      | order <n>
+                      | levels @{ auto @{<n>@} | <n>
+                                 | discrete <z1> @{,<z2>@{,<z3>...@}@}
+                                 | incremental <start>, <incr> @{,<end>@}
+                               @}
+                      @}
+                    @}
+      show contour
+
+@end example
+
+This command has two functions.  First, it sets the values of z for which
+contour points are to be determined (by linear interpolation between data
+points or function isosamples.)  Second, it controls the way contours are
+drawn between the points determined to be of equal z.  <n> should be an
+integral constant expression and <z1>, <z2> ... any constant expressions.
+The parameters are:
+
+`linear`, `cubicspline`, `bspline`---Controls type of approximation or
+interpolation.  If `linear`, then straight line segments connect points of
+equal z magnitude.  If `cubicspline`, then piecewise-linear contours are
+interpolated between the same equal z points to form somewhat smoother
+contours, but which may undulate.  If `bspline`, a guaranteed-smoother curve
+is drawn, which only approximates the position of the points of equal-z.
+
+`points`---Eventually all drawings are done with piecewise-linear strokes.
+This number controls the number of line segments used to approximate the
+`bspline` or `cubicspline` curve.  Number of cubicspline or bspline
+segments (strokes) = `points` * number of linear segments.
+
+`order`---Order of the bspline approximation to be used.  The bigger this
+order is, the smoother the resulting contour.  (Of course, higher order
+bspline curves will move further away from the original piecewise linear
+data.)  This option is relevant for `bspline` mode only.  Allowed values are
+integers in the range from 2 (linear) to 10.
+
+`levels`--- Selection of contour levels,  controlled by `auto` (default),
+`discrete`, `incremental`, and <n>, number of contour levels.
+
+For `auto`, <n> specifies a nominal number of levels; the actual number will
+be adjusted to give simple labels. If the surface is bounded by zmin and zmax,
+contours will be generated at integer multiples of dz between zmin and zmax,
+where dz is 1, 2, or 5 times some power of ten (like the step between two
+tic marks).
+
+For `levels discrete`, contours will be generated at z = <z1>, <z2> ... as
+specified; the number of discrete levels sets the number of contour levels.
+In `discrete` mode, any `set cntrparam levels <n>` are ignored.
+
+For `incremental`, contours are generated at values of z beginning at <start>
+and increasing by <increment>, until the number of contours is reached. <end>
+is used to determine the number of contour levels, which will be changed by
+any subsequent `set cntrparam levels <n>`.  If the z axis is logarithmic,
+<increment> will be interpreted as a factor, just like in @ref{ztics}.
+
+If the command @ref{cntrparam} is given without any arguments specified,  the
+defaults are used: linear, 5 points, order 4, 5 auto levels.
+
+Examples:
+@example
+      set cntrparam bspline
+      set cntrparam points 7
+      set cntrparam order 10
+
+@end example
+
+To select levels automatically, 5 if the level increment criteria are met:
+@example
+      set cntrparam levels auto 5
+
+@end example
+
+To specify discrete levels at .1, .37, and .9:
+@example
+      set cntrparam levels discrete .1,1/exp(1),.9
+
+@end example
+
+To specify levels from 0 to 4 with increment 1:
+@example
+      set cntrparam levels incremental  0,1,4
+
+@end example
+
+To set the number of levels to 10 (changing an incremental end or possibly
+the number of auto levels):
+@example
+      set cntrparam levels 10
+
+@end example
+
+To set the start and increment while retaining the number of levels:
+@example
+      set cntrparam levels incremental 100,50
+
+@end example
+
+See also @ref{contour} for control of where the contours are drawn, and
+@ref{clabel} for control of the format of the contour labels and linetypes.
+
+See also
+@uref{http://www.gnuplot.info/demo/contours.html,contours demo (contours.dem)
+}
+and
+@uref{http://www.gnuplot.info/demo/discrete.html,contours with user defined levels demo (discrete.dem).
+}
+
+@node color_box, contour, cntrparam, set-show
+@subsection color box
+
+@c ?commands set colorbox
+@c ?commands show colorbox
+@c ?commands unset colorbox
+@c ?set colorbox
+@c ?show colorbox
+@c ?unset colorbox
+@cindex colorbox
+
+
+The color scheme, i.e. the gradient of the smooth color with min_z and
+max_z values of @ref{pm3d}'s @ref{palette}, is drawn in a color box unless `unset
+colorbox`.
+
+@example
+      set colorbox
+      set colorbox @{
+                 @{ vertical | horizontal @}
+                 @{ default | user @}
+                 @{ origin x, y @}
+                 @{ size x, y @}
+                 @{ front | back @}
+                 @{ noborder | bdefault | border [line style] @}
+               @}
+      show colorbox
+      unset colorbox
+
+@end example
+
+Color box position can be `default` or `user`.  If the latter is specified the
+values as given with the @ref{origin} and @ref{size} subcommands are used. The box
+can be drawn after (`front`) or before (`back`) the graph or the surface.
+
+The orientation of the color gradient can be switched by options `vertical`
+and `horizontal`.
+
+`origin x, y` and `size x, y` are used only in combination with the `user`
+option. The x and y values are interpreted as screen coordinates by default,
+and this is the only legal option for 3D plots. 2D plots, including splot with
+`set view map`, allow any coordinate system to be specified.  Try for example:
+@example
+    set colorbox horiz user origin .1,.02 size .8,.04
+@end example
+
+which will draw a horizontal gradient somewhere at the bottom of the graph.
+
+@ref{border} turns the border on (this is the default). `noborder` turns the border
+off. If an positive integer argument is given after @ref{border}, it is used as a
+line style tag which is used for drawing the border, e.g.:
+@example
+    set style line 2604 linetype -1 linewidth .4
+    set colorbox border 2604
+@end example
+
+will use line style `2604`, a thin line with the default border color (-1)
+for drawing the border. `bdefault` (which is the default) will use the default
+border line style for drawing the border of the color box.
+
+The axis of the color box is called `cb` and it is controlled by means of the
+usual axes commands, i.e. `set/unset/show` with @ref{cbrange}, `[m]cbtics`,
+`format cb`, `grid [m]cb`, @ref{cblabel}, and perhaps even @ref{cbdata}, `[no]cbdtics`,
+`[no]cbmtics`.
+
+`set colorbox` without any parameter switches the position to default.
+`unset colorbox` resets the default parameters for the colorbox and switches
+the colorbox off.
+
+See also help for @ref{pm3d}, @ref{palette}, @ref{pm3d}, and `set style line`.
+
+
+@node contour, data_style, color_box, set-show
+@subsection contour
+
+@c ?commands set contour
+@c ?commands unset contour
+@c ?commands show contour
+@c ?set contour
+@c ?unset contour
+@c ?show contour
+@cindex contour
+@opindex contour
+
+
+@cindex nocontour
+
+@ref{contour} enables contour drawing for surfaces.  This option is available
+for `splot` only.  It requires grid data, see `grid_data` for more details.
+If contours are desired from non-grid data, @ref{dgrid3d} can be used to
+create an appropriate grid.
+
+Syntax:
+@example
+      set contour @{base | surface | both@}
+      unset contour
+      show contour
+
+@end example
+
+The three options specify where to draw the contours: `base` draws the
+contours on the grid base where the x/ytics are placed, @ref{surface} draws the
+contours on the surfaces themselves, and `both` draws the contours on both
+the base and the surface.  If no option is provided, the default is `base`.
+
+See also @ref{cntrparam} for the parameters that affect the drawing of
+contours, and @ref{clabel} for control of labelling of the contours.
+
+The surface can be switched off (see @ref{surface}), giving a contour-only
+graph.  Though it is possible to use @ref{size} to enlarge the plot to fill
+the screen, more control over the output format can be obtained by writing
+the contour information to a file, and rereading it as a 2-d datafile plot:
+
+@example
+      unset surface
+      set contour
+      set cntrparam ...
+      set table 'filename'
+      splot ...
+      unset table
+      # contour info now in filename
+      set term <whatever>
+      plot 'filename'
+
+@end example
+
+In order to draw contours, the data should be organized as "grid data".  In
+such a file all the points for a single y-isoline are listed, then all the
+points for the next y-isoline, and so on.  A single blank line (a line
+containing no characters other than blank spaces and a carriage return and/or
+a line feed) separates one y-isoline from the next.
+See also @ref{datafile}.
+
+See also
+@uref{http://www.gnuplot.info/demo/contours.html,contours demo (contours.dem)
+}
+and
+@uref{http://www.gnuplot.info/demo/discrete.html,contours with user defined levels demo (discrete.dem).
+}
+
+@node data_style, datafile, contour, set-show
+@subsection data style
+
+@c ?DUMMYLABEL set style data
+This form of the command is deprecated. Please see `set style data`.
+
+@node datafile, decimalsign, data_style, set-show
+@subsection datafile
+
+@c ?set datafile
+@c ?show datafile
+The @ref{datafile} command options control interpretation of fields read from
+input data files by the `plot`, `splot`, and @ref{fit} commands.  Four such
+options are currently implemented.
+
+@menu
+* set_datafile_fortran::        
+* set_datafile_missing::        
+* set_datafile_separator::      
+* set_datafile_commentschars::  
+* set_datafile_binary::         
+@end menu
+
+@node set_datafile_fortran, set_datafile_missing, datafile, datafile
+@subsubsection set datafile fortran
+
+@c ?set datafile fortran
+@cindex fortran
+
+The `set datafile fortran` command enables a special check for values in the
+input file expressed as Fortran D or Q constants. This extra check slows down
+the input process, and should only be selected if you do in fact have datafiles
+containing Fortran D or Q constants. The option can be disabled again using
+`unset datafile fortran`.
+
+@node set_datafile_missing, set_datafile_separator, set_datafile_fortran, datafile
+@subsubsection set datafile missing
+
+@c ?set datafile missing
+@c ?set missing
+@cindex missing
+
+The `set datafile missing` command allows you to tell `gnuplot` what character
+string is used in a data file to denote missing data.  Exactly how this missing
+value will be treated depends on the @ref{using} specifier of the `plot` or `splot`
+command.
+
+Syntax:
+@example
+      set datafile missing @{"<string>"@}
+      show datafile missing
+      unset datafile
+
+@end example
+
+Example:
+@example
+      # Ignore entries containing IEEE NaN ("Not a Number") code
+      set datafile missing "NaN"
+
+@end example
+
+Example:
+@example
+      set datafile missing "?"
+      set style data lines
+      plot '-'
+         1 10
+         2 20
+         3 ?
+         4 40
+         5 50
+         e
+      plot '-' using 1:2
+         1 10
+         2 20
+         3 ?
+         4 40
+         5 50
+         e
+      plot '-' using 1:($2)
+         1 10
+         2 20
+         3 ?
+         4 40
+         5 50
+         e
+
+@end example
+
+The first `plot` will recognize only the first datum in the "3 ?" line.  It
+will use the single-datum-on-a-line convention that the line number is "x"
+and the datum is "y", so the point will be plotted (in this case erroneously)
+at (2,3).
+
+The second `plot` will correctly ignore the middle line.  The plotted line
+will connect the points at (2,20) and (4,40).
+
+The third `plot` will also correctly ignore the middle line, but the plotted
+line will not connect the points at (2,20) and (4,40).
+
+There is no default character for `missing`, but in many cases any
+non-parsible string of characters found where a numerical value is expected
+will be treated as missing data.
+
+
+@node set_datafile_separator, set_datafile_commentschars, set_datafile_missing, datafile
+@subsubsection set datafile separator
+
+@c ?set datafile separator
+@c ?show datafile separator
+@c ?datafile separator
+@cindex separator
+
+The command `set datafile separator "<char>"` tells `gnuplot` that data fields
+in subsequent input files are separated by <char> rather than by whitespace.
+The most common use is to read in csv (comma-separated value) files written
+by spreadsheet or database programs. By default data fields are separated by
+whitespace.
+
+Syntax:
+@example
+      set datafile separator @{"<char>" | whitespace@}
+
+@end example
+
+Examples:
+@example
+      # Input file contains tab-separated fields
+      set datafile separator "\t"
+
+@end example
+
+@example
+      # Input file contains comma-separated values fields
+      set datafile separator ","
+
+@end example
+
+@node set_datafile_commentschars, set_datafile_binary, set_datafile_separator, datafile
+@subsubsection set datafile commentschars
+
+@c ?set datafile commentschars
+@cindex commentschars
+
+The `set datafile commentschars` command allows you to tell `gnuplot` what
+characters are used in a data file to denote comments.  Gnuplot will ignore
+rest of the line behind the specified characters if either of them is the
+first non-blank character on the line.
+
+Syntax:
+@example
+      set datafile commentschars @{"<string>"@}
+      show datafile commentschars
+      unset commentschars
+
+@end example
+
+Default value of the string is "#!" on VMS and "#" otherwise.
+
+Then, the following line in a data file is completely ignored
+@example
+    # 1 2 3 4
+@end example
+
+but the following
+@example
+    1 # 3 4
+@end example
+
+produces rather unexpected plot unless
+@example
+    set datafile missing '#'
+@end example
+
+is specified as well.
+
+Example:
+@example
+      set datafile commentschars "#!%"
+
+@end example
+
+@node set_datafile_binary,  , set_datafile_commentschars, datafile
+@subsubsection set datafile binary
+
+@c ?set datafile binary
+The `set datafile binary` command is used to set the defaults when reading
+binary data files.  The syntax matches precisely that used for commands
+`plot` and `splot`.  See `binary` for details about <binary list>.
+
+Syntax:
+@example
+      set datafile binary <binary list>
+      show datafile binary
+      show datafile
+      unset datafile
+
+@end example
+
+Examples:
+@example
+      set datafile binary filetype=auto
+      set datafile binary array=512x512 format="%uchar"
+
+@end example
+
+@node decimalsign, dgrid3d, datafile, set-show
+@subsection decimalsign
+
+@c ?commands set decimalsign
+@c ?commands show decimalsign
+@c ?commands unset decimalsign
+@c ?set decimalsign
+@c ?show decimalsign
+@c ?unset decimalsign
+@cindex decimalsign
+@opindex decimalsign
+
+
+@cindex locale
+@opindex locale
+
+
+The @ref{decimalsign} command selects a decimal sign for numbers printed
+into tic labels or @ref{label} strings.
+
+Syntax:
+@example
+      set decimalsign @{<value> | locale @{"<locale>"@}@}
+      unset decimalsign
+      show decimalsign
+
+@end example
+
+The argument <value> is a string to be used in place of the usual
+decimal point. Typical choices include the period, '.', and the comma,
+',', but others may be useful, too.  If you omit the <value> argument,
+the decimal separator is not modified from the usual default, which is
+a period.  Unsetting decimalsign has the same effect as omitting <value>.
+
+Example:
+
+Correct typesetting in most European countries requires:
+@example
+      set decimalsign ','
+
+@end example
+
+Please note: If you set an explicit string, this affects only numbers that
+are printed using gnuplot's gprintf() formatting routine, include axis tics.
+It does not affect the format expected for input data, and it does not affect
+numbers printed with the sprintf() formatting routine. To change the behavior
+of both input and output formatting, instead use the form
+
+@example
+      set decimalsign locale
+
+@end example
+
+This instructs the program to use both input and output formats in accordance
+with the current setting of the LC_ALL, LC_NUMERIC, or LANG environmental
+variables.
+
+@example
+      set decimalsign locale "foo"
+
+@end example
+
+This instructs the program to format all input and output in accordance with
+locale "foo", which must be installed.  If locale "foo" is not found then an
+error message is printed and the decimal sign setting is unchanged.
+On linux systems you can get a list of the locales installed on your machine by
+typing "locale -a". A typical linux locale string is of the form "sl_SI.UTF-8".
+A typical Windows locale string is of the form "Slovenian_Slovenia.1250" or
+"slovenian". Please note that interpretation of the locale settings is done by
+the C library at runtime. Older C libraries may offer only partial support for
+locale settings such as the thousands grouping separator character.
+
+@example
+      set decimalsign locale; set decimalsign "."
+
+@end example
+
+This sets all input and output to use whatever decimal sign is correct for
+the current locale, but over-rides this with an explicit '.' in numbers
+formatted using gnuplot's internal gprintf() function.
+
+@node dgrid3d, dummy, decimalsign, set-show
+@subsection dgrid3d
+
+@c ?commands set dgrid3d
+@c ?commands unset dgrid3d
+@c ?commands show dgrid3d
+@c ?set dgrid3d
+@c ?unset dgrid3d
+@c ?show dgrid3d
+@cindex dgrid3d
+@opindex dgrid3d
+
+
+@cindex nodgrid3d
+
+The @ref{dgrid3d} command enables, and can set parameters for, non-grid to
+grid data mapping.  See `splot grid_data` for more details about the grid data
+structure.
+
+Syntax:
+@example
+      set dgrid3d @{<row_size>@} @{,@{<col_size>@} @{,<norm>@}@}
+      unset dgrid3d
+      show dgrid3d
+
+@end example
+
+By default @ref{dgrid3d} is disabled.  When enabled, 3-d data read from a file
+are always treated as a scattered data set.  A grid with dimensions derived
+from a bounding box of the scattered data and size as specified by the
+row/col_size parameters is created for plotting and contouring.  The grid
+is equally spaced in x (rows) and in y (columns); the z values are computed
+as weighted averages of the scattered points' z values.
+
+The third parameter, norm, controls the weighting:  Each data point is
+weighted inversely by its distance from the grid point raised to the norm
+power.  (Actually, the weights are given by the inverse of dx^norm + dy^norm,
+where dx and dy are the components of the separation of the grid point from
+each data point.  For some norms that are powers of two, specifically 4, 8,
+and 16, the computation is optimized by using the Euclidean distance in the
+weight calculation, (dx^2+dy^2)^norm/2.  However, any non-negative integer
+can be used.)
+
+The closer the data point is to a grid point, the more effect it has on
+that grid point and the larger the value of norm the less effect more
+distant data points have on that grid point.
+
+The @ref{dgrid3d} option is a simple low pass filter that converts scattered
+data to a grid data set.  More sophisticated approaches to this problem
+exist and should be used to preprocess the data outside `gnuplot` if this
+simple solution is found inadequate.
+
+(The z values are found by weighting all data points, not by interpolating
+between nearby data points;  also edge effects may produce unexpected and/or
+undesired results.  In some cases, small norm values produce a grid point
+reflecting the average of distant data points rather than a local average,
+while large values of norm may produce "steps" with several grid points
+having the same value as the closest data point, rather than making a smooth
+transition between adjacent data points.  Some areas of a grid may be filled
+by extrapolation, to an arbitrary boundary condition.  The variables are
+not normalized; consequently the units used for x and y will affect the
+relative weights of points in the x and y directions.)
+
+Examples:
+@example
+      set dgrid3d 10,10,1     # defaults
+      set dgrid3d ,,4
+
+@end example
+
+The first specifies that a grid of size 10 by 10 is to be constructed using
+a norm value of 1 in the weight computation.  The second only modifies the
+norm, changing it to 4.
+See also
+@uref{http://www.gnuplot.info/demo/scatter.html,scatter.dem: dgrid3d demo.
+}
+
+
+@node dummy, encoding, dgrid3d, set-show
+@subsection dummy
+
+@c ?commands set dummy
+@c ?commands show dummy
+@c ?set dummy
+@c ?show dummy
+@cindex dummy
+@opindex dummy
+
+
+The @ref{dummy} command changes the default dummy variable names.
+
+Syntax:
+@example
+      set dummy @{<dummy-var>@} @{,<dummy-var>@}
+      show dummy
+
+@end example
+
+By default, `gnuplot` assumes that the independent, or "dummy", variable for
+the `plot` command is "t" if in parametric or polar mode, or "x" otherwise.
+Similarly the independent variables for the `splot` command are "u" and "v"
+in parametric mode (`splot` cannot be used in polar mode), or "x" and "y"
+otherwise.
+
+It may be more convenient to call a dummy variable by a more physically
+meaningful or conventional name.  For example, when plotting time functions:
+
+@example
+      set dummy t
+      plot sin(t), cos(t)
+
+@end example
+
+At least one dummy variable must be set on the command; @ref{dummy} by itself
+will generate an error message.
+
+Examples:
+@example
+      set dummy u,v
+      set dummy ,s
+
+@end example
+
+The second example sets the second variable to s.
+
+@node encoding, fit_, dummy, set-show
+@subsection encoding
+
+@c ?commands set encoding
+@c ?commands show encoding
+@c ?set encoding
+@c ?show encoding
+@cindex encoding
+@opindex encoding
+
+
+@cindex encodings
+
+The @ref{encoding} command selects a character encoding.
+Syntax:
+@example
+      set encoding @{<value>@}
+      show encoding
+
+@end example
+
+Valid values are
+@example
+   default     - tells a terminal to use its default encoding
+   iso_8859_1  - the most common Western European font used by many
+                 Unix workstations and by MS-Windows. This encoding is
+                 known in the PostScript world as 'ISO-Latin1'.
+   iso_8859_2  - used in Central and Eastern Europe
+   iso_8859_15 - a variant of iso_8859_1 that includes the Euro symbol
+   koi8r       - popular Unix cyrillic encoding
+   koi8u       - ukrainian Unix cyrillic encoding
+   cp437       - codepage for MS-DOS
+   cp850       - codepage for OS/2, Western Europe
+   cp852       - codepage for OS/2, Central and Eastern Europe
+   cp1250      - codepage for MS Windows, Central and Eastern Europe
+
+@end example
+
+Generally you must set the encoding before setting the terminal type.
+Note that encoding is not supported by all terminal drivers and that
+the device must be able to produce the desired non-standard characters.
+The PostScript, X11 and wxt terminals support all encodings. OS/2 Presentation
+Manager switches automatically to codepage 912 for `iso_8859_2`.
+
+@node fit_, fontpath, encoding, set-show
+@subsection fit
+
+@c ?commands set fit
+@c ?commands show fit
+@c ?set fit
+@c ?show fit
+The @ref{fit} setting defines where the @ref{fit} command writes its output.
+If this option was built into your version of gnuplot, it also controls
+whether parameter errors from the fit will be written into variables.
+
+Syntax:
+@example
+      set fit @{logfile @{"<filename>"@}@} @{@{no@}errorvariables@}
+      unset fit
+      show fit
+
+@end example
+
+The <filename> argument must be enclosed in single or double quotes.
+
+If no filename is given or @ref{fit} is used the log file is
+reset to its default value "fit.log" or the value of the environmental
+variable `FIT_LOG`.
+
+Users of DOS-like platforms should note that the \ character has
+special significance in double-quoted strings, so single-quotes
+should be used for filenames in different directories, or you have
+to write \\ for each \.  Or you can just use forward slashes,
+even though this is DOS.
+
+If the given logfile name ends with a / or \, it is interpreted to be
+a directory name, and the actual filename will be "fit.log" in that
+directory.
+
+If the `errorvariables` option is turned on, the error of each fitted
+parameter computed by @ref{fit} will be copied to a user-defined variable
+whose name is formed by appending "_err" to the name of the parameter
+itself.  This is useful mainly to put the parameter and its error onto
+a plot of the data and the fitted function, for reference, as in:
+
+@example
+       set fit errorvariables
+       fit f(x) 'datafile' using 1:2 via a, b
+       print "error of a is:", a_err
+       set label 'a=%6.2f', a, '+/- %6.2f', a_err
+       plot 'datafile' using 1:2, f(x)
+
+@end example
+
+@node fontpath, format_, fit_, set-show
+@subsection fontpath
+
+@c ?commands set fontpath
+@c ?commands show fontpath
+@c ?set fontpath
+@c ?show fontpath
+@cindex fontpath
+@opindex fontpath
+
+
+The @ref{fontpath} setting defines additional locations for font files
+searched when including font files. Currently only the postscript terminal
+supports @ref{fontpath}. If a file cannot be found in the current directory,
+the directories in @ref{fontpath} are tried. Further documentation concerning
+the supported file formats is included in the @ref{postscript} section
+of the documentation.
+
+Syntax:
+@example
+      set fontpath @{"pathlist1" @{"pathlist2"...@}@}
+      show fontpath
+
+@end example
+
+Path names may be entered as single directory names, or as a list of
+path names separated by a platform-specific path separator, eg. colon
+(':') on Unix, semicolon (';') on DOS/Windows/OS/2/Amiga platforms.
+The @ref{fontpath}, @ref{save} and `save set` commands replace the
+platform-specific separator with a space character (' ') for maximum
+portability. If a directory name ends with an exclamation mark ('!') also
+the subdirectories of this directory are searched for font files.
+
+If the environmental variable GNUPLOT_FONTPATH is set, its contents are
+appended to @ref{fontpath}.  If it is not set, a system dependent default value
+is used. It is set by testing several directories for existence when using
+the fontpath the first time. Thus, the first call of @ref{fontpath},
+@ref{fontpath}, @ref{fontpath}, `plot`, or `splot` with embedded font
+files takes a little more time. If you want to save this time you may
+set the environmental variable GNUPLOT_FONTPATH since probing is switched
+off, then. You can find out which is the default fontpath by using
+@ref{fontpath}.
+
+However, @ref{fontpath} prints the contents of user defined fontpath and
+system fontpath separately.  Also, the @ref{save} and `save set` commands save
+only the user specified parts of @ref{fontpath}, for portability reasons.
+
+Many other terminal drivers access TrueType fonts via the gd library.
+For these drivers the font search path is controlled by the environmental
+variable GDFONTPATH.
+
+@node format_, function_style, fontpath, set-show
+@subsection format
+
+@c ?commands set format
+@c ?commands show format
+@c ?set format
+@c ?show format
+@cindex format
+@opindex format
+
+
+@c ?format cb
+The format of the tic-mark labels can be set with the `set format` command
+or with the `set tics format` or individual `set @{axis@}tics format` commands.
+
+Syntax:
+@example
+      set format @{<axes>@} @{"<format-string>"@}
+      set format @{<axes>@} @{'<format-string>'@}
+      show format
+
+@end example
+
+where <axes> is either `x`, `y`, `xy`, `x2`, `y2`, `z`, `cb` or
+nothing (which refers to all axes at once).  The length of the string
+representing a tic mark (after formatting with 'printf') is restricted
+to 100 characters.  If the format string is omitted, the format will
+be returned to the default "% g".  For LaTeX users, the format "$%g$"
+is often desirable.  If the empty string "" is used, no label will be
+plotted with each tic, though the tic mark will still be plotted.  To
+eliminate all tic marks, use `unset xtics` or @ref{ytics}.
+
+Newline (\n) is accepted in the format string.  Use double-quotes rather than
+single-quotes to enable such interpretation.  See also `syntax`.
+
+The default format for both axes is "% g", but other formats such as "%.2f" or
+"%3.0em" are often desirable.  Anything accepted by 'printf' when given a
+double precision number, and accepted by the terminal, will work.  Some other
+options have been added.  If the format string looks like a floating point
+format, then `gnuplot` tries to construct a reasonable format.
+
+Characters not preceded by "%" are printed verbatim.  Thus you can include
+spaces and labels in your format string, such as "%g m", which will put " m"
+after each number.  If you want "%" itself, double it: "%g %%".
+
+See also `set xtics` for more information about tic labels, and
+@ref{decimalsign} for how to use non-default decimal separators in numbers
+printed this way.
+See also
+@uref{http://www.gnuplot.info/demo/electron.html,electron demo (electron.dem).
+}
+
+@menu
+* gprintf_::                    
+* format_specifiers::           
+* time/date_specifiers::        
+@end menu
+
+@node gprintf_, format_specifiers, format_, format_
+@subsubsection gprintf
+
+@cindex gprintf
+@findex gprintf
+
+
+The string function gprintf("format",x) uses gnuplot's own format specifiers,
+as do the gnuplot commands `set format`, @ref{timestamp}, and others. These
+format specifiers are not the same as those used by the standard C-language
+routine sprintf(). Gnuplot also provides an sprintf("format",x,...) routine
+if you prefer. For a list of gnuplot's format options, see `format specifiers`.
+
+@node format_specifiers, time/date_specifiers, gprintf_, format_
+@subsubsection format specifiers
+
+@c ?commands set format specifiers
+@c ?set format specifiers
+@c ?format specifiers
+@cindex format_specifiers
+
+The acceptable formats (if not in time/date mode) are:
+
+
+@example
+      Format       Explanation
+      %f           floating point notation
+      %e or %E     exponential notation; an "e" or "E" before the power
+      %g or %G     the shorter of %e (or %E) and %f
+      %x or %X     hex
+      %o or %O     octal
+      %t           mantissa to base 10
+      %l           mantissa to base of current logscale
+      %s           mantissa to base of current logscale; scientific power
+      %T           power to base 10
+      %L           power to base of current logscale
+      %S           scientific power
+      %c           character replacement for scientific power
+      %P           multiple of pi
+
+@end example
+
+
+A 'scientific' power is one such that the exponent is a multiple of three.
+Character replacement of scientific powers (`"%c"`) has been implemented
+for powers in the range -18 to +18.  For numbers outside of this range the
+format reverts to exponential.
+
+Other acceptable modifiers (which come after the "%" but before the format
+specifier) are "-", which left-justifies the number; "+", which forces all
+numbers to be explicitly signed; " " (a space), which makes positive numbers
+have a space in front of them where negative numbers have "-";
+"#", which places a decimal point after
+floats that have only zeroes following the decimal point; a positive integer,
+which defines the field width; "0" (the digit, not the letter) immediately
+preceding the field width, which indicates that leading zeroes are to be used
+instead of leading blanks; and a decimal point followed by a non-negative
+integer, which defines the precision (the minimum number of digits of an
+integer, or the number of digits following the decimal point of a float).
+
+Some systems may not support all of these modifiers but may also support
+others; in case of doubt, check the appropriate documentation and
+then experiment.
+
+Examples:
+@example
+      set format y "%t"; set ytics (5,10)          # "5.0" and "1.0"
+      set format y "%s"; set ytics (500,1000)      # "500" and "1.0"
+      set format y "%+-12.3f"; set ytics(12345)    # "+12345.000  "
+      set format y "%.2t*10^%+03T"; set ytic(12345)# "1.23*10^+04"
+      set format y "%s*10^@{%S@}"; set ytic(12345)   # "12.345*10^@{3@}"
+      set format y "%s %cg"; set ytic(12345)       # "12.345 kg"
+      set format y "%.0P pi"; set ytic(6.283185)   # "2 pi"
+      set format y "%.0f%%"; set ytic(50)          # "50%"
+
+@end example
+
+@example
+      set log y 2; set format y '%l'; set ytics (1,2,3)
+      #displays "1.0", "1.0" and "1.5" (since 3 is 1.5 * 2^1)
+
+@end example
+
+There are some problem cases that arise when numbers like 9.999 are printed
+with a format that requires both rounding and a power.
+
+If the data type for the axis is time/date, the format string must contain
+valid codes for the 'strftime' function (outside of `gnuplot`, type "man
+strftime").  See @ref{timefmt} for a list of the allowed input format codes.
+
+@node time/date_specifiers,  , format_specifiers, format_
+@subsubsection time/date specifiers
+
+@c ?commands set format date_specifiers
+@c ?commands set format time_specifiers
+@c ?set format date_specifiers
+@c ?set format time_specifiers
+@c ?set date_specifiers
+@c ?set time_specifiers
+@cindex date_specifiers
+
+@cindex time_specifiers
+
+In time/date mode, the acceptable formats are:
+
+
+@example
+      Format       Explanation
+      %a           abbreviated name of day of the week
+      %A           full name of day of the week
+      %b or %h     abbreviated name of the month
+      %B           full name of the month
+      %d           day of the month, 01--31
+      %D           shorthand for "%m/%d/%y" (only output)
+      %F           shorthand for "%Y-%m-%d" (only output)
+      %k           hour, 0--23 (one or two digits)
+      %H           hour, 00--23 (always two digits)
+      %l           hour, 1--12 (one or two digits)
+      %I           hour, 01--12 (always two digits)
+      %j           day of the year, 1--366
+      %m           month, 01--12
+      %M           minute, 0--60
+      %p           "am" or "pm"
+      %r           shorthand for "%I:%M:%S %p" (only output)
+      %R           shorthand for "%H:%M" (only output)
+      %S           second, 0--60
+      %T           shorthand for "%H:%M:%S" (only output)
+      %U           week of the year (week starts on Sunday)
+      %w           day of the week, 0--6 (Sunday = 0)
+      %W           week of the year (week starts on Monday)
+      %y           year, 0-99
+      %Y           year, 4-digit
+
+@end example
+
+
+Except for the non-numerical formats, these may be preceded by a "0" ("zero",
+not "oh") to pad the field length with leading zeroes, and a positive digit,
+to define the minimum field width (which will be overridden if the specified
+width is not large enough to contain the number).  There is a 24-character
+limit to the length of the printed text; longer strings will be truncated.
+
+Examples:
+
+Suppose the text is "76/12/25 23:11:11".  Then
+@example
+      set format x                 # defaults to "12/25/76" \n "23:11"
+      set format x "%A, %d %b %Y"  # "Saturday, 25 Dec 1976"
+      set format x "%r %D"         # "11:11:11 pm 12/25/76"
+
+@end example
+
+Suppose the text is "98/07/06 05:04:03".  Then
+@example
+      set format x "%1y/%2m/%3d %01H:%02M:%03S"  # "98/ 7/  6 5:04:003"
+
+@end example
+
+@node function_style, functions, format_, set-show
+@subsection function style
+
+This form of the command is deprecated. Please see `set style function`.
+
+@node functions, grid, function_style, set-show
+@subsection functions
+
+@c ?commands show functions
+@c ?show functions
+The @ref{functions} command lists all user-defined functions and their
+definitions.
+
+Syntax:
+@example
+      show functions
+
+@end example
+
+For information about the definition and usage of functions in `gnuplot`,
+please see `expressions`.
+See also
+@uref{http://www.gnuplot.info/demo/spline.html,splines as user defined functions (spline.dem)
+}
+and
+@uref{http://www.gnuplot.info/demo/airfoil.html,use of functions and complex variables for airfoils (airfoil.dem).
+}
+
+@node grid, hidden3d, functions, set-show
+@subsection grid
+
+@c ?commands set grid
+@c ?commands unset grid
+@c ?commands show grid
+@c ?set grid
+@c ?unset grid
+@c ?show grid
+@cindex grid
+@opindex grid
+
+
+@cindex nogrid
+
+The `set grid` command allows grid lines to be drawn on the plot.
+
+Syntax:
+@example
+      set grid @{@{no@}@{m@}xtics@} @{@{no@}@{m@}ytics@} @{@{no@}@{m@}ztics@}
+               @{@{no@}@{m@}x2tics@} @{@{no@}@{m@}y2tics@}
+               @{@{no@}@{m@}cbtics@}
+               @{polar @{<angle>@}@}
+               @{layerdefault | front | back@}
+               @{ @{linestyle <major_linestyle>@}
+                 | @{linetype | lt <major_linetype>@}
+                   @{linewidth | lw <major_linewidth>@}
+                 @{ , @{linestyle | ls <minor_linestyle>@}
+                     | @{linetype | lt <minor_linetype>@}
+                       @{linewidth | lw <minor_linewidth>@} @} @}
+      unset grid
+      show grid
+
+@end example
+
+The grid can be enabled and disabled for the major and/or minor tic
+marks on any axis, and the linetype and linewidth can be specified
+for major and minor grid lines, also via a predefined linestyle, as
+far as the active terminal driver supports this.
+
+Additionally, a polar grid can be selected for 2-d plots---circles are drawn
+to intersect the selected tics, and radial lines are drawn at definable
+intervals.  (The interval is given in degrees or radians, depending on the
+@ref{angles} setting.)  Note that a polar grid is no longer automatically
+generated in polar mode.
+
+The pertinent tics must be enabled before `set grid` can draw them; `gnuplot`
+will quietly ignore instructions to draw grid lines at non-existent tics, but
+they will appear if the tics are subsequently enabled.
+
+If no linetype is specified for the minor gridlines, the same linetype as the
+major gridlines is used.  The default polar angle is 30 degrees.
+
+If `front` is given, the grid is drawn on top of the graphed data. If
+`back` is given, the grid is drawn underneath the graphed data. Using
+`front` will prevent the grid from being obscured by dense data. The
+default setup, `layerdefault`, is equivalent to `back` for 2d plots.
+In 3D plots the default is to split up the grid and the graph box into
+two layers: one behind, the other in front of the plotted data and
+functions. Since @ref{hidden3d} mode does its own sorting, it ignores
+all grid drawing order options and passes the grid lines through the
+hidden line removal machinery instead. These options actually affect
+not only the grid, but also the lines output by @ref{border} and the
+various ticmarks (see `set xtics`).
+
+Z grid lines are drawn on the bottom of the plot.  This looks better if a
+partial box is drawn around the plot---see @ref{border}.
+
+@node hidden3d, historysize, grid, set-show
+@subsection hidden3d
+
+@c ?commands set hidden3d
+@c ?commands unset hidden3d
+@c ?commands show hidden3d
+@c ?set hidden3d
+@c ?unset hidden3d
+@c ?show hidden3d
+@cindex hidden3d
+@opindex hidden3d
+
+
+@cindex nohidden3d
+
+The @ref{hidden3d} command enables hidden line removal for surface plotting
+(see `splot`).  Some optional features of the underlying algorithm can also
+be controlled using this command.
+
+Syntax:
+@example
+      set hidden3d @{defaults@} |
+                   @{ @{@{offset <offset>@} | @{nooffset@}@}
+                     @{trianglepattern <bitpattern>@}
+                     @{@{undefined <level>@} | @{noundefined@}@}
+                     @{@{no@}altdiagonal@}
+                     @{@{no@}bentover@} @}
+      unset hidden3d
+      show hidden3d
+
+@end example
+
+In contrast to the usual display in gnuplot, hidden line removal actually
+treats the given function or data grids as real surfaces that can't be seen
+through, so parts behind the surface will be hidden by it.  For this to be
+possible, the surface needs to have 'grid structure' (see @ref{datafile}
+about this), and it has to be drawn `with lines` or `with linespoints`.
+
+When @ref{hidden3d} is set, both the hidden portion of the surface and possibly
+its contours drawn on the base (see @ref{contour}) as well as the grid will
+be hidden.  Each surface has its hidden parts removed with respect to itself
+and to other surfaces, if more than one surface is plotted.  Contours drawn
+on the surface (@ref{surface}) don't work.
+
+Labels and arrows are always visible and are unaffected.  The key box is
+never hidden by the surface. As of gnuplot version 4.2, @ref{hidden3d} also
+affects 3D plotting styles `with points`, `with labels`, and `with vectors`,
+even if no surface is present in the graph.  Individual plots within the
+graph may be explicitly excluded from this processing by appending the extra
+option `nohidden3d` to the @ref{with} specifier.
+
+Hidden3d does not affect solid surfaces drawn using the pm3d mode. To
+achieve a similar effect for pm3d surfaces, use instead set @ref{depthorder}.
+
+Functions are evaluated at isoline intersections.  The algorithm interpolates
+linearly between function points or data points when determining the visible
+line segments.  This means that the appearance of a function may be different
+when plotted with @ref{hidden3d} than when plotted with `nohidden3d` because in
+the latter case functions are evaluated at each sample.  Please see
+@ref{samples} and @ref{isosamples} for discussion of the difference.
+
+The algorithm used to remove the hidden parts of the surfaces has some
+additional features controllable by this command.  Specifying `defaults` will
+set them all to their default settings, as detailed below.  If `defaults` is
+not given, only explicitly specified options will be influenced: all others
+will keep their previous values, so you can turn on/off hidden line removal
+via `set @{no@}hidden3d`, without modifying the set of options you chose.
+
+The first option, `offset`, influences the linestyle used for lines on the
+'back' side.  Normally, they are drawn in a linestyle one index number higher
+than the one used for the front, to make the two sides of the surface
+distinguishable.  You can specify a different line style offset to add
+instead of the default 1, by `offset <offset>`.  Option `nooffset` stands for
+`offset 0`, making the two sides of the surface use the same linestyle.
+
+Next comes the option `trianglepattern <bitpattern>`.  <bitpattern> must be
+a number between 0 and 7, interpreted as a bit pattern.  Each bit determines
+the visibility of one edge of the triangles each surface is split up into.
+Bit 0 is for the 'horizontal' edges of the grid, Bit 1 for the 'vertical'
+ones, and Bit 2 for the diagonals that split each cell of the original grid
+into two triangles.  The default pattern is 3, making all horizontal and
+vertical lines visible, but not the diagonals.  You may want to choose 7 to
+see those diagonals as well.
+
+The `undefined <level>` option lets you decide what the algorithm is to do
+with data points that are undefined (missing data, or undefined function
+values), or exceed the given x-, y- or z-ranges.  Such points can either be
+plotted nevertheless, or taken out of the input data set.  All surface
+elements touching a point that is taken out will be taken out as well, thus
+creating a hole in the surface.  If <level> = 3, equivalent to option
+`noundefined`, no points will be thrown away at all.  This may produce all
+kinds of problems elsewhere, so you should avoid this.  <level> = 2 will
+throw away undefined points, but keep the out-of-range ones.  <level> = 1,
+the default, will get rid of out-of-range points as well.
+
+By specifying `noaltdiagonal`, you can override the default handling of a
+special case can occur if `undefined` is active (i.e. <level> is not 3).
+Each cell of the grid-structured input surface will be divided in two
+triangles along one of its diagonals.  Normally, all these diagonals have
+the same orientation relative to the grid.  If exactly one of the four cell
+corners is excluded by the `undefined` handler, and this is on the usual
+diagonal, both triangles will be excluded.  However if the default setting
+of `altdiagonal` is active, the other diagonal will be chosen for this cell
+instead, minimizing the size of the hole in the surface.
+
+The `bentover` option controls what happens to another special case, this
+time in conjunction with the `trianglepattern`.  For rather crumply surfaces,
+it can happen that the two triangles a surface cell is divided into are seen
+from opposite sides (i.e. the original quadrangle is 'bent over'), as
+illustrated in the following ASCII art:
+
+@example
+                                                              C----B
+    original quadrangle:  A--B      displayed quadrangle:     |\   |
+      ("set view 0,0")    | /|    ("set view 75,75" perhaps)  | \  |
+                          |/ |                                |  \ |
+                          C--D                                |   \|
+                                                              A    D
+
+@end example
+
+If the diagonal edges of the surface cells aren't generally made visible by
+bit 2 of the <bitpattern> there, the edge CB above wouldn't be drawn at all,
+normally, making the resulting display hard to understand.  Therefore, the
+default option of `bentover` will turn it visible in this case.  If you don't
+want that, you may choose `nobentover` instead.
+See also
+@uref{http://www.gnuplot.info/demo/hidden.html,hidden line removal demo (hidden.dem)
+}
+and
+@uref{http://www.gnuplot.info/demo/singulr.html,complex hidden line demo (singulr.dem).
+}
+
+@node historysize, isosamples, hidden3d, set-show
+@subsection historysize
+
+@c ?commands set historysize
+@c ?set historysize
+@c ?unset historysize
+@cindex historysize
+@opindex historysize
+
+
+@cindex nohistorysize
+
+Note: the command @ref{historysize} is only available when
+gnuplot has been configured with the GNU readline.
+
+Syntax:
+@example
+      set historysize <int>
+      unset historysize
+
+@end example
+
+When leaving gnuplot, the value of historysize is used for
+truncating the history to at most that much lines. The default
+is 500.
+@ref{historysize} will disable history truncation and thus
+allow an infinite number of lines to be written to the history
+file.
+
+@node isosamples, key, historysize, set-show
+@subsection isosamples
+
+@c ?commands set isosamples
+@c ?commands show isosamples
+@c ?set isosamples
+@c ?show isosamples
+@cindex isosamples
+@opindex isosamples
+
+
+The isoline density (grid) for plotting functions as surfaces may be changed
+by the @ref{isosamples} command.
+
+Syntax:
+@example
+      set isosamples <iso_1> @{,<iso_2>@}
+      show isosamples
+
+@end example
+
+Each function surface plot will have <iso_1> iso-u lines and <iso_2> iso-v
+lines.  If you only specify <iso_1>, <iso_2> will be set to the same value
+as <iso_1>.  By default, sampling is set to 10 isolines per u or v axis.
+A higher sampling rate will produce more accurate plots, but will take longer.
+These parameters have no effect on data file plotting.
+
+An isoline is a curve parameterized by one of the surface parameters while
+the other surface parameter is fixed.  Isolines provide a simple means to
+display a surface.  By fixing the u parameter of surface s(u,v), the iso-u
+lines of the form c(v) = s(u0,v) are produced, and by fixing the v parameter,
+the iso-v lines of the form c(u) = s(u,v0) are produced.
+
+When a function surface plot is being done without the removal of hidden
+lines, @ref{samples}  controls the number of points sampled along each
+isoline;  see @ref{samples} and @ref{hidden3d}. The contour algorithm
+assumes that a function sample occurs at each isoline intersection, so
+change in @ref{samples} as well as @ref{isosamples} may be desired when changing
+the resolution of a function surface/contour.
+
+@node key, label, isosamples, set-show
+@subsection key
+
+@c ?commands set key
+@c ?commands unset key
+@c ?commands show key
+@c ?set key
+@c ?unset key
+@c ?show key
+@cindex key
+@opindex key
+
+
+@cindex nokey
+
+@cindex legend
+
+The @ref{key} command enables a key (or legend) describing plots on a plot.
+
+The contents of the key, i.e., the names given to each plotted data set and
+function and samples of the lines and/or symbols used to represent them, are
+determined by the @ref{title} and @ref{with} options of the @{`s`@}`plot` command.
+Please see @ref{title} and @ref{with} for more information.
+
+Syntax:
+@example
+      set key @{on|off@} @{default@}
+              @{@{inside | outside@} | @{lmargin | rmargin | tmargin | bmargin@}
+                | @{at <position>@}@}
+              @{left | right | center@} @{top | bottom | center@}
+              @{vertical | horizontal@} @{Left | Right@}
+              @{@{no@}reverse@} @{@{no@}invert@}
+              @{samplen <sample_length>@} @{spacing <vertical_spacing>@}
+              @{width <width_increment>@}
+              @{height <height_increment>@}
+              @{@{no@}autotitle @{columnheader@}@}
+              @{title "<text>"@} @{@{no@}enhanced@}
+              @{@{no@}box @{ @{linestyle | ls <line_style>@}
+                         | @{linetype | lt <line_type>@}
+                           @{linewidth | lw <line_width>@}@}@}
+      unset key
+      show key
+
+@end example
+
+Plots may be drawn with no visible key by requesting `set key off` or
+@ref{key}.
+
+Elements within the key are stacked according to `vertical` or `horizontal`.
+In the case of `vertical`, the key occupies as few columns as possible.  That
+is, elements are aligned in a column until running out of vertical space at
+which point a new column is started.  In the case of `horizontal`, the key
+occupies as few rows as possible.
+
+By default the key is placed in the upper right inside corner of the graph.
+The keywords `left`, `right`, `top`, `bottom`, `center`, `inside`, `outside`,
+@ref{lmargin}, @ref{rmargin}, @ref{tmargin}, @ref{bmargin} (, `above`, `over`, `below` and
+`under`) may be used to automatically place the key in other positions of the
+graph.  Also an `at <position>` may be given to indicate precisely where the
+plot should be placed.  In this case, the keywords `left`, `right`, `top`,
+`bottom` and `center` serve an analogous purpose for alignment.
+
+To understand positioning, the best concept is to think of a region, i.e.,
+inside/outside, or one of the margins.  Along with the region, keywords
+`left/center/right` (l/c/r) and `top/center/bottom` (t/c/b) control where
+within the particular region the key should be placed.
+
+When in `inside` mode, the keywords `left` (l), `right` (r), `top` (t),
+`bottom` (b), and `center` (c) push the key out toward the plot boundary as
+illustrated:
+
+@example
+     t/l   t/c   t/r
+
+@end example
+
+@example
+     c/l    c    c/r
+
+@end example
+
+@example
+     b/l   b/c   b/r
+
+@end example
+
+
+When in `outside` mode, automatic placement is similar to the above
+illustration, but with respect to the view, rather than the graph boundary.
+That is, a border is moved inward to make room for the key outside of
+the plotting area, although this may interfere with other labels and may
+cause an error on some devices.  The particular plot border that is moved
+depends upon the position described above and the stacking direction.  For
+options centered in one of the dimensions, there is no ambiguity about which
+border to move.  For the corners, when the stack direction is `vertical`, the
+left or right border is moved inward appropriately.  When the stack direction
+is `horizontal`, the top or bottom border is moved inward appropriately.
+
+The margin syntax allows automatic placement of key regardless of stack
+direction.  When one of the margins @ref{lmargin} (lm), @ref{rmargin} (rm),
+@ref{tmargin} (tm), and @ref{bmargin} (bm) is combined with a single, non-conflicting
+direction keyword, the following illustrated positions may contain the key:
+
+@example
+          l/tm  c/tm  r/tm
+
+@end example
+
+@example
+     t/lm                  t/rm
+
+@end example
+
+@example
+     c/lm                  c/rm
+
+@end example
+
+@example
+     b/lm                  b/rm
+
+@end example
+
+@example
+          l/bm  c/bm  r/bm
+
+@end example
+
+
+Keywords `above` and `over` are synonymous with @ref{tmargin}.  For version
+compatibility, `above` or `over` without an additional l/c/r or stack direction
+keyword uses `center` and `horizontal`.  Keywords `below` and `under` are
+synonymous with @ref{bmargin}.  For compatibility, `below` or `under` without an
+additional l/c/r or stack  direction keyword uses `center` and `horizontal`.  A
+further compatibility issue is that `outside` appearing without an additional
+t/b/c or stack direction keyword uses `top`, `right` and `vertical` (i.e., the
+same as t/rm above).
+
+The <position> can be a simple x,y,z as in previous versions, but these can
+be preceded by one of five keywords (`first`, `second`, `graph`, `screen`,
+`character`) which selects the coordinate system in which the position of
+the first sample line is specified.  See `coordinates` for more details.
+The effect of `left`, `right`, `top`, `bottom`, and `center` when <position>
+is given is to align the key as though it were text positioned using the
+label command, i.e., `left` means left align with key to the right of
+<position>, etc.
+
+Justification of the labels within the key is controlled by `Left` or `Right`
+(default is `Right`).  The text and sample can be reversed (`reverse`) and a
+box can be drawn around the key (`box @{...@}`) in a specified `linetype`
+and `linewidth`, or a user-defined `linestyle`. Note that not all
+terminal drivers support linewidth selection, though.
+
+By default the first plot label is at the top of the key and successive labels
+are entered below it. The `invert` option causes the first label to be placed
+at the bottom of the key, with successive labels entered above it. This option
+is useful to force the vertical ordering of labels in the key to match the
+order of box types in a stacked histogram.
+
+The length of the sample line can be controlled by `samplen`.  The sample
+length is computed as the sum of the tic length and <sample_length> times the
+character width.  `samplen` also affects the positions of point samples in
+the key since these are drawn at the midpoint of the sample line, even if
+the sample line itself is not drawn.
+
+The vertical spacing between lines is controlled by `spacing`.  The spacing
+is set equal to the product of the pointsize, the vertical tic size, and
+<vertical_spacing>.  The program will guarantee that the vertical spacing is
+no smaller than the character height.
+
+The <width_increment> is a number of character widths to be added to or
+subtracted from the length of the string.  This is useful only when you are
+putting a box around the key and you are using control characters in the text.
+`gnuplot` simply counts the number of characters in the string when computing
+the box width; this allows you to correct it.
+
+The <height_increment> is a number of character heights to be added to or
+subtracted from the height of the key box.  This is useful mainly when you are
+putting a box around the key, otherwise it can be used to adjust the vertical
+shift of automatically chosen key position by <height_increment>/2.
+
+All plotted curves of `plot`s and `splot`s are titled according to the
+default option `autotitles`. The automatic generation of titles can be
+suppressed by `noautotitles`; then only those titles explicitly defined
+by `(s)plot ... title ...` will be drawn.
+
+The `set key autotitle columnheader` option is available if gnuplot was built
+with --enable-datastrings. This command causes the first entry in each column
+of plotted data to be interpreted as a text string and used as a title for
+the corresponding plot. If the quantity being plotted is a function of data
+from several columns, gnuplot may be confused as to which column to draw the
+title from. In this case it is necessary to specify the column explicitly in
+the plot command, e.g. `plot "datafile" using (($2+$3)/$4) title 3 with lines`.
+
+A title can be put on the key (`title "<text>"`)---see also `syntax` for the
+distinction between text in single- or double-quotes.  The key title uses the
+same justification as do the plot titles.
+
+An explicitly given title is typeset using enhanced text properties on
+terminals supporting this, see `enhanced text` for more details.
+This default behavior can be switched off by the `noenhanced` option.
+
+The defaults for @ref{key} are `on`, `right`, `top`, `vertical`, `Right`,
+`noreverse`, `noinvert`, `samplen 4`, `spacing 1.25`, `title ""`, and
+`nobox`.  The default <linetype> is the same as that used for the plot
+borders.  Entering `set key default` returns the key to its default
+configuration.
+
+The key is drawn as a sequence of lines, with one plot described on each
+line.  On the right-hand side (or the left-hand side, if `reverse` is
+selected) of each line is a representation that attempts to mimic the way the
+curve is plotted.  On the other side of each line is the text description
+(the line title), obtained from the `plot` command.  The lines are vertically
+arranged so that an imaginary straight line divides the left- and right-hand
+sides of the key.  It is the coordinates of the top of this line that are
+specified with the @ref{key} command.  In a `plot`, only the x and y
+coordinates are used to specify the line position.  For a `splot`, x, y and
+z are all used as a 3-d location mapped using the same mapping as the graph
+itself to form the required 2-d screen position of the imaginary line.
+
+When using the TeX or PostScript drivers, or similar drivers where formatting
+information is embedded in the string, `gnuplot` is unable to calculate
+correctly the width of the string for key positioning.  If the key is to be
+positioned at the left, it may be convenient to use the combination  `set key
+left Left reverse`.  The box and gap in the grid will be the width of the
+literal string.
+
+If `splot` is being used to draw contours, the contour labels will be listed
+in the key.  If the alignment of these labels is poor or a different number
+of decimal places is desired, the label format can be specified.  See
+@ref{clabel} for details.
+
+Examples:
+
+This places the key at the default location:
+@example
+      set key default
+
+@end example
+
+This disables the key:
+@example
+      unset key
+
+@end example
+
+This places a key at coordinates 2,3.5,2 in the default (first) coordinate
+system:
+@example
+      set key at 2,3.5,2
+
+@end example
+
+This places the key below the graph:
+@example
+      set key below
+
+@end example
+
+This places the key in the bottom left corner, left-justifies the text,
+gives it a title, and draws a box around it in linetype 3:
+@example
+      set key left bottom Left title 'Legend' box 3
+
+@end example
+
+@node label, lmargin, key, set-show
+@subsection label
+
+@c ?commands set label
+@c ?commands unset label
+@c ?commands show label
+@c ?set label
+@c ?unset label
+@c ?show label
+@cindex label
+@opindex label
+
+
+@cindex nolabel
+
+Arbitrary labels can be placed on the plot using the @ref{label} command.
+
+Syntax:
+@example
+      set label @{<tag>@} @{"<label text>"@} @{at <position>@}
+                @{left | center | right@}
+                @{norotate | rotate @{by <degrees>@}@}
+                @{font "<name>@{,<size>@}"@}
+                @{noenhanced@}
+                @{front | back@}
+                @{textcolor <colorspec>@}
+                @{point <pointstyle> | nopoint@}
+                @{offset <offset>@}
+      unset label @{<tag>@}
+      show label
+
+@end example
+
+The <position> is specified by either x,y or x,y,z, and may be preceded by
+`first`, `second`, `graph`, `screen`, or `character` to select the coordinate
+system.  See `coordinates` for details.
+
+The tag is an integer that is used to identify the label. If no <tag>
+is given, the lowest unused tag value is assigned automatically.  The
+tag can be used to delete or modify a specific label.  To change any
+attribute of an existing label, use the @ref{label} command with the
+appropriate tag, and specify the parts of the label to be changed.
+
+The <label text> can be a string constant, a string variable, or a string-
+valued expression. See `strings`, @ref{sprintf}, and @ref{gprintf}.
+
+By default, the text is placed flush left against the point x,y,z.  To adjust
+the way the label is positioned with respect to the point x,y,z, add the
+justification parameter, which may be `left`, `right` or `center`,
+indicating that the point is to be at the left, right or center of the text.
+Labels outside the plotted boundaries are permitted but may interfere with
+axis labels or other text.
+
+If `rotate` is given, the label is written vertically (if the terminal can do
+so, of course).  If `rotate by <degrees>` is given, conforming terminals will
+try to write the text at the specified angle; non-conforming terminals will
+treat this as vertical text.
+
+Font and its size can be chosen explicitly by `font "<name>@{,<size>@}"` if the
+terminal supports font settings.  Otherwise the default font of the terminal
+will be used.
+
+Normally the enhanced text mode string interpretation, if enabled for the
+current terminal, is applied to all text strings including label text.
+The `noenhanced` property can be used to exempt a specific label from the
+enhanced text mode processing.  The can be useful if the label contains
+underscores, for example. See `enhanced text`.
+
+If `front` is given, the label is written on top of the graphed data. If
+`back` is given (the default), the label is written underneath the graphed
+data.  Using `front` will prevent a label from being obscured by dense data.
+
+`textcolor <colorspec>` changes the color of the label text. <colorspec> can be
+a linetype, an rgb color, or a palette mapping. See help for @ref{colorspec} and
+@ref{palette}.  `textcolor` may be abbreviated `tc`.
+@example
+   `tc default` resets the text color to its default state.
+   `tc lt <n>` sets the text color to that of line type <n>.
+   `tc ls <n>` sets the text color to that of line style <n>.
+   `tc palette z` selects a palette color corresponding to the label z position.
+   `tc palette cb <val>` selects a color corresponding to <val> on the colorbar.
+   `tc palette fraction <val>`, with 0<=val<=1, selects a color corresponding to
+       the mapping [0:1] to grays/colors of the @ref{palette}.
+   `tc rgb "#RRGGBB"` selects an arbitrary 24-bit RGB color.
+
+@end example
+
+If a <pointstyle> is given, using keywords `lt`, `pt` and `ps`, see @ref{style},
+a point with the given style and color of the given line type is plotted at
+the label position and the text of the label is displaced slightly.
+This option is used by default for placing labels in `mouse` enhanced
+terminals.  Use `nopoint` to turn off the drawing of a point near
+the label (this is the default).
+
+The displacement defaults to 1,1 in @ref{pointsize} units if a <pointstyle> is
+given, 0,0 if no <pointstyle> is given.  The displacement can be controlled
+by the optional `offset <offset>` where <offset> is specified by either x,y
+or x,y,z, and may be preceded by `first`, `second`, `graph`, `screen`, or
+`character` to select the coordinate system.  See `coordinates` for details.
+
+If one (or more) axis is timeseries, the appropriate coordinate should be
+given as a quoted time string according to the @ref{timefmt} format string.
+See @ref{xdata} and @ref{timefmt}.
+
+The EEPIC, Imagen, LaTeX, and TPIC drivers allow \\ in a string to specify
+a newline.
+
+Examples:
+
+To set a label at (1,2) to "y=x", use:
+@example
+      set label "y=x" at 1,2
+
+@end example
+
+To set a Sigma of size 24, from the Symbol font set, at the center of
+the graph, use:
+@example
+      set label "S" at graph 0.5,0.5 center font "Symbol,24"
+
+@end example
+
+To set a label "y=x^2" with the right of the text at (2,3,4), and tag the
+label as number 3, use:
+@example
+      set label 3 "y=x^2" at 2,3,4 right
+
+@end example
+
+To change the preceding label to center justification, use:
+@example
+      set label 3 center
+
+@end example
+
+To delete label number 2, use:
+@example
+      unset label 2
+
+@end example
+
+To delete all labels, use:
+@example
+      unset label
+
+@end example
+
+To show all labels (in tag order), use:
+@example
+      show label
+
+@end example
+
+To set a label on a graph with a timeseries on the x axis, use, for example:
+@example
+      set timefmt "%d/%m/%y,%H:%M"
+      set label "Harvest" at "25/8/93",1
+
+@end example
+
+To display a freshly fitted parameter on the plot with the data and the
+fitted function, do this after the @ref{fit}, but before the `plot`:
+@example
+      set label sprintf("a = %3.5g",par_a) at 30,15
+      bfit = gprintf("b = %s*10^%S",par_b)
+      set label bfit at 30,20
+
+@end example
+
+To set a label displaced a little bit from a small point:
+@example
+      set label 'origin' at 0,0 point lt 1 pt 2 ps 3 offset 1,-1
+
+@end example
+
+To set a label whose color matches the z value (in this case 5.5) of some
+point on a 3D splot colored using pm3d:
+@example
+      set label 'text' at 0,0,5.5 tc palette z
+
+@end example
+
+
+@node lmargin, loadpath, label, set-show
+@subsection lmargin
+
+@c ?commands set lmargin
+@c ?set lmargin
+@cindex lmargin
+@opindex lmargin
+
+
+The command @ref{lmargin} sets the size of the left margin.
+Please see @ref{margin} for details.
+
+@node loadpath, locale, lmargin, set-show
+@subsection loadpath
+
+@c ?commands set loadpath
+@c ?commands show loadpath
+@c ?set loadpath
+@c ?show loadpath
+@cindex loadpath
+@opindex loadpath
+
+
+The @ref{loadpath} setting defines additional locations for data and command
+files searched by the @ref{call}, `load`, `plot` and `splot` commands.  If a
+file cannot be found in the current directory, the directories in
+@ref{loadpath} are tried.
+
+Syntax:
+@example
+      set loadpath @{"pathlist1" @{"pathlist2"...@}@}
+      show loadpath
+
+@end example
+
+Path names may be entered as single directory names, or as a list of
+path names separated by a platform-specific path separator, eg. colon
+(':') on Unix, semicolon (';') on DOS/Windows/OS/2/Amiga platforms.
+The @ref{loadpath}, @ref{save} and `save set` commands replace the
+platform-specific separator with a space character (' ') for maximum
+portability.
+
+If the environment variable GNUPLOT_LIB is set, its contents are
+appended to @ref{loadpath}.  However, @ref{loadpath} prints the contents
+of user defined loadpath and system loadpath separately.  Also, the
+@ref{save} and `save set` commands save only the user specified parts of
+@ref{loadpath}, for portability reasons.
+
+@node locale, logscale, loadpath, set-show
+@subsection locale
+
+@c ?commands set locale
+@c ?set locale
+@cindex locale
+@opindex locale
+
+
+The @ref{locale} setting determines the language with which `@{x,y,z@}@{d,m@}tics`
+will write the days and months.
+
+Syntax:
+@example
+      set locale @{"<locale>"@}
+
+@end example
+
+<locale> may be any language designation acceptable to your installation.
+See your system documentation for the available options.  The default value
+is determined from the LC_TIME, LC_ALL, or LANG environment variables.
+
+To change the decimal point locale, see @ref{decimalsign}.
+
+@node logscale, macros, locale, set-show
+@subsection logscale
+
+@c ?commands set logscale
+@c ?commands unset logscale
+@c ?commands show logscale
+@c ?set logscale
+@c ?unset logscale
+@c ?show logscale
+@c ?set log
+@cindex logscale
+@opindex logscale
+
+
+@cindex nologscale
+
+Syntax:
+@example
+      set logscale <axes> <base>
+      unset logscale <axes>
+      show logscale
+
+@end example
+
+where <axes> may be any combination of `x`, `x2`, `y`, `y2`, `z`, and `cb` in
+any order, and where <base> is the base of the log scaling.  If <base> is not
+given, then 10 is assumed.  If <axes> is not given, then all axes are assumed.
+@ref{logscale} turns off log scaling for the specified axes.
+
+Examples:
+
+To enable log scaling in both x and z axes:
+@example
+      set logscale xz
+
+@end example
+
+To enable scaling log base 2 of the y axis:
+@example
+      set logscale y 2
+
+@end example
+
+To enable z and color log axes for a pm3d plot:
+@example
+      set logscale zcb
+
+@end example
+
+To disable z axis log scaling:
+@example
+      unset logscale z
+
+@end example
+
+@node macros, mapping, logscale, set-show
+@subsection macros
+
+@c ?commands set macros
+@c ?commands show macros
+@c ?set macros
+@c ?show macros
+If command line macro substitution is enabled, then tokens in the command line
+of the form @@<stringvariablename> will be replaced by the text string contained
+in <stringvariablename>. See `substitution`.
+
+Syntax:
+@example
+     set macros
+
+@end example
+
+
+@node mapping, margin, macros, set-show
+@subsection mapping
+
+@c ?commands set mapping
+@c ?commands show mapping
+@c ?set mapping
+@c ?show mapping
+@cindex mapping
+@opindex mapping
+
+
+If data are provided to `splot` in spherical or cylindrical coordinates,
+the @ref{mapping} command should be used to instruct `gnuplot` how to
+interpret them.
+
+Syntax:
+@example
+      set mapping @{cartesian | spherical | cylindrical@}
+
+@end example
+
+A cartesian coordinate system is used by default.
+
+For a spherical coordinate system, the data occupy two or three columns
+(or @ref{using} entries).  The first two are interpreted as the azimuthal
+and polar angles theta and phi (or "longitude" and "latitude"), in the
+units specified by @ref{angles}.  The radius r is taken from the third
+column if there is one, or is set to unity if there is no third column.
+The mapping is:
+
+@example
+      x = r * cos(theta) * cos(phi)
+      y = r * sin(theta) * cos(phi)
+      z = r * sin(phi)
+
+@end example
+
+Note that this is a "geographic" spherical system, rather than a "polar"
+one (that is, phi is measured from the equator, rather than the pole).
+
+For a cylindrical coordinate system, the data again occupy two or three
+columns.  The first two are interpreted as theta (in the units specified by
+@ref{angles}) and z.  The radius is either taken from the third column or set
+to unity, as in the spherical case.  The mapping is:
+
+@example
+      x = r * cos(theta)
+      y = r * sin(theta)
+      z = z
+
+@end example
+
+The effects of @ref{mapping} can be duplicated with the @ref{using} filter on the
+`splot` command, but @ref{mapping} may be more convenient if many data files are
+to be processed.  However even if @ref{mapping} is used, @ref{using} may still be
+necessary if the data in the file are not in the required order.
+
+@ref{mapping} has no effect on `plot`.
+@c ^ See also
+@uref{http://www.gnuplot.info/demo/world.html,world.dem: mapping demos.
+}
+
+@node margin, mouse, mapping, set-show
+@subsection margin
+
+@c ?commands set margin
+@c ?commands show margin
+@c ?set margin
+@c ?show margin
+@cindex margin
+@opindex margin
+
+
+The computed margins can be overridden by the @ref{margin} commands.  @ref{margin} shows the current settings.
+
+Syntax:
+@example
+      set bmargin @{@{at screen@} <margin>@}
+      set lmargin @{@{at screen@} <margin>@}
+      set rmargin @{@{at screen@} <margin>@}
+      set tmargin @{@{at screen@} <margin>@}
+      show margin
+
+@end example
+
+The default units of <margin> are character heights or widths, as appropriate.
+A positive value defines the absolute size of the margin.  A negative value
+(or none) causes `gnuplot` to revert to the computed value.  For 3D plots,
+only the left margin can be set using character units.
+
+The keywords `at screen` indicates that the margin is specified as a fraction
+of the full drawing area. This can be used to precisely line up the corners of
+individual 2D and 3D graphs in a multiplot. This placement ignores the current
+values of @ref{origin} and @ref{size}, and is intended as an alternative 
+method for positioning graphs within a multiplot.
+
+Normally the margins of a plot are automatically calculated based on tics,
+tic labels, axis labels, the plot title, the timestamp and the size of the
+key if it is outside the borders.  If, however, tics are attached to the
+axes (`set xtics axis`, for example), neither the tics themselves nor their
+labels will be included in either the margin calculation or the calculation
+of the positions of other text to be written in the margin.  This can lead
+to tic labels overwriting other text if the axis is very close to the border.
+
+@node mouse, multiplot, margin, set-show
+@subsection mouse
+
+@c ?commands set mouse
+@c ?commands unset mouse
+@c ?set mouse
+@c ?unset mouse
+@cindex mouse
+@opindex mouse
+
+
+@cindex nomouse
+
+The command `set mouse` enables mouse actions. Currently the pm, x11, ggi,
+windows and wxt terminals are mouse enhanced. There are two mouse modes. The
+2d-graph mode works for 2d graphs and for maps (i.e. splots with @ref{view}
+having z-rotation 0, 90, 180, 270 or 360 degrees, including `set view map`)
+and it allows tracing the position over graph, zooming, annotating graph etc.
+For 3d graphs `splot`, the view and scaling of the graph can be changed with
+mouse buttons 1 and 2. If additionally to these buttons the modifier <ctrl> is
+hold down, the coordinate system only is rotated which is useful for large
+data sets. A vertical motion of Button 2 with the shift key hold down changes
+the @ref{ticslevel}.
+
+Mousing is not available in multiplot mode. When multiplot is finished using
+@ref{multiplot}, then the mouse will be turned on again and acts on the
+last plot (like replot does).
+
+Syntax:
+@example
+      set mouse @{doubleclick <ms>@} @{nodoubleclick@} \
+                @{@{no@}zoomcoordinates@} \
+                @{noruler | ruler @{at x,y@}@} \
+                @{polardistance@{deg|tan@} | nopolardistance@} \
+                @{format <string>@} \
+                @{clipboardformat <int>/<string>@} \
+                @{mouseformat <int>/<string>@} \
+                @{@{no@}labels@} @{labeloptions <string>@} \
+                @{@{no@}zoomjump@} @{@{no@}verbose@}
+      unset mouse
+
+@end example
+
+The doubleclick resolution is given in milliseconds and used for Button 1
+which copies the current mouse position to the `clipboard`. If you want that
+to be done by single clicking a value of 0 ms can be used. The default value
+is 300 ms.
+
+The option `zoomcoordinates` determines if the coordinates of the zoom box are
+drawn at the edges while zooming. This is on by default.
+
+The options `noruler` and `ruler` switch the ruler off and on, the latter
+optionally at given `coordinates`. This corresponds to the default key binding
+'r'.
+
+The option `polardistance` determines if the distance between the mouse cursor
+and the ruler is also shown in polar coordinates (distance and angle in
+degrees or tangent (slope)). This corresponds to the default key binding '5'.
+
+The `format` option takes a fprintf like format string which determines how
+floating point numbers are printed to the drivers window and the clipboard.
+The default is "% #g".
+
+`clipboardformat` and `mouseformat` are used for formatting the text on
+Button1 and Button2 actions -- copying the coordinates to the clipboard and
+temporarily annotating the mouse position. This corresponds to the key
+bindings '1', '2', '3', '4' (see the drivers's help window). If the argument
+is a string this string is used as c format specifier and should contain two
+float specifiers, e.g. `set mouse mouseformat "mouse = %5.2g, %10.2f"`. Use
+`set mouse mouseformat ""` to turn this string off again.
+
+The following formats are available (format 6 may only be selected if the
+format string was specified already):
+
+@example
+ 0   real coordinates in  brackets e.g. [1.23, 2.45]
+ 1   real coordinates w/o brackets e.g.  1.23, 2.45
+ 2   x == timefmt                       [(as set by @ref{timefmt}), 2.45]
+ 3   x == date                          [31. 12. 1999, 2.45]
+ 4   x == time                          [23:59, 2.45]
+ 5   x == date / time                   [31. 12. 1999 23:59, 2.45]
+ 6   alt. format, specified as string   ""
+
+@end example
+
+Choose the option `labels` to get real gnuplot labels on Button 2. (The
+default is `nolabels` which makes Button 2 drawing only temporary annotations
+at the mouse positions). The labels are drawn with the current setting of
+`mouseformat`. `labeloptions` controls which options are passed to the
+@ref{label} command. The default is "pointstyle 1" which will plot a small
+plus at the label position.  Note that the pointsize is taken from the
+@ref{pointsize} command.
+Labels can be removed by holding the Ctrl-Key down while clicking with
+Button 2 on the label's point. The threshold for how close you must be to the
+label is also determined by the @ref{pointsize}.
+
+If the option `zoomjump` is on, the mouse pointer will be automatically
+offset a small distance after starting a zoom region with button 3. This can
+be useful to avoid a tiny (or even empty) zoom region. `zoomjump` is off by
+default.
+
+If the option `verbose` is turned on the communication commands are shown
+during execution. This option can also be toggled by hitting `6` in the
+driver's window. `verbose` is off by default.
+
+Press 'h' in the driver's window for a short summary of the mouse and key
+bindings.  This will also display user defined bindings or `hotkeys` which
+can be defined using the @ref{bind} command, see help for @ref{bind}.  Note, that user
+defined `hotkeys` may override the default bindings.
+
+Press 'q' in the driver's window to close the window. This key cannot be
+overridden with the @ref{bind} command.
+
+See also help for @ref{bind} and @ref{label}.
+
+@menu
+* X11_mouse::                   
+@end menu
+
+@node X11_mouse,  , mouse, mouse
+@subsubsection X11 mouse
+
+@c ?mouse x11_mouse
+@cindex x11_mouse
+
+@c ?x11 mouse
+If multiple X11 plot windows have been opened using the `set term x11 <n>`
+terminal option, then only the current plot window supports the entire
+range of mouse commands and hotkeys.  The other windows will, however,
+continue to display mouse coordinates at the lower left.
+
+For consistency with other screen terminals, X11 mouse support is turned on by
+default, wherever the standard input comes from. However, on some UNIX
+flavors, special input devices as /dev/null might not be `select-able`; using
+such devices with the mouse turned on will hang gnuplot. Please turn off
+mousing with `unset mouse` if you are in this situation.
+
+@node multiplot, mx2tics, mouse, set-show
+@subsection multiplot
+
+@c ?commands set multiplot
+@c ?commands unset multiplot
+@c ?set multiplot
+@c ?unset multiplot
+@cindex multiplot
+@opindex multiplot
+
+
+@cindex nomultiplot
+
+The command @ref{multiplot} places `gnuplot` in the multiplot mode, in which
+several plots are placed on the same page, window, or screen.
+
+Syntax:
+@example
+      set multiplot @{ layout <rows>,<cols>
+                      @{rowsfirst|columnsfirst@} @{downwards|upwards@}
+                      @{title <page title>@}
+                      @{scale <xscale>@{,<yscale>@}@} @{offset <xoff>@{,<yoff>@}@}
+                    @}
+      unset multiplot
+
+@end example
+
+For some terminals, no plot is displayed until the command @ref{multiplot}
+is given, which causes the entire page to be drawn and then returns gnuplot
+to its normal single-plot mode.  For other terminals, each separate `plot`
+command produces an updated display, either by redrawing all previous ones
+and the newly added plot, or by just adding the new plot to the existing
+display.
+
+The area to be used by the next plot is not erased before doing the
+new plot.  The @ref{clear} command can be used to do this if wanted, as is
+typically the case for "inset" plots.
+
+Any labels or arrows that have been defined will be drawn for each plot
+according to the current size and origin (unless their coordinates are
+defined in the `screen` system).  Just about everything else that can be
+`set` is applied to each plot, too.  If you want something to appear only
+once on the page, for instance a single time stamp, you'll need to put a `set
+time`/`unset time` pair around one of the `plot`, `splot` or @ref{replot}
+commands within the @ref{multiplot}/@ref{multiplot} block.
+
+The multiplot title is separate from the individual plot titles, if any.
+Space is reserved for it at the top of the page, spanning the full width
+of the canvas.
+
+The commands @ref{origin} and @ref{size} must be used to correctly position
+each plot if no layout is specified or if fine tuning is desired.  See
+@ref{origin} and @ref{size} for details of their usage.
+
+Example:
+@example
+      set multiplot
+      set size 0.4,0.4
+      set origin 0.1,0.1
+      plot sin(x)
+      set size 0.2,0.2
+      set origin 0.5,0.5
+      plot cos(x)
+      unset multiplot
+
+@end example
+
+This displays a plot of cos(x) stacked above a plot of sin(x).
+
+@ref{size} and @ref{origin} refer to the entire plotting area used for each
+plot.  Please also see @ref{size}.  If you want to have the axes
+themselves line up, you can guarantee that the margins are the same size with
+the @ref{margin} commands.  See @ref{margin} for their use.  Note that the
+margin settings are absolute, in character units, so the appearance of the
+graph in the remaining space will depend on the screen size of the display
+device, e.g., perhaps quite different on a video display and a printer.
+
+With the `layout` option you can generate simple multiplots without having
+to give the @ref{size} and @ref{origin} commands before each plot:  Those
+are generated automatically, but can be overridden at any time.  With
+`layout` the display will be divided by a grid with <rows> rows and
+<cols> columns.  This grid is filled rows first or columns first depending on
+whether the corresponding option is given in the multiplot command.  The stack
+of plots can grow `downwards` or `upwards`.
+Default is `rowsfirst` and `downwards`.
+
+Each plot can be scaled by `scale` and shifted with `offset`; if the y-values
+for scale or offset are omitted, the x-value will be used.  @ref{multiplot}
+will turn off the automatic layout and restore the values of @ref{size} and
+@ref{origin} as they were before `set multiplot layout`.
+
+Example:
+@example
+      set size 1,1
+      set origin 0,0
+      set multiplot layout 3,2 columnsfirst scale 1.1,0.9
+      [ up to 6 plot commands here ]
+      unset multiplot
+
+@end example
+
+The above example will produce 6 plots in 2 columns filled top to bottom,
+left to right.  Each plot will have a horizontal size of 1.1/2 and a vertical
+size of 0.9/3.
+
+See also
+@uref{http://gnuplot.sourceforge.net/demo/multiplt.html,multiplot demo (multiplt.dem)
+}
+
+@node mx2tics, mxtics, multiplot, set-show
+@subsection mx2tics
+
+@c ?commands set mx2tics
+@c ?commands unset mx2tics
+@c ?commands show mx2tics
+@c ?set mx2tics
+@c ?unset mx2tics
+@c ?show mx2tics
+@cindex mx2tics
+@opindex mx2tics
+
+
+@cindex nomx2tics
+
+Minor tic marks along the x2 (top) axis are controlled by @ref{mx2tics}.
+Please see @ref{mxtics}.
+
+@node mxtics, my2tics, mx2tics, set-show
+@subsection mxtics
+
+@c ?commands set mxtics
+@c ?commands unset mxtics
+@c ?commands show mxtics
+@c ?set mxtics
+@c ?unset mxtics
+@c ?show mxtics
+@cindex mxtics
+@opindex mxtics
+
+
+@cindex nomxtics
+
+Minor tic marks along the x axis are controlled by @ref{mxtics}.  They can be
+turned off with @ref{mxtics}.  Similar commands control minor tics along
+the other axes.
+
+Syntax:
+@example
+      set mxtics @{<freq> | default@}
+      unset mxtics
+      show mxtics
+
+@end example
+
+The same syntax applies to @ref{mytics}, @ref{mztics}, @ref{mx2tics}, @ref{my2tics} and
+`mcbtics`.
+
+<freq> is the number of sub-intervals (NOT the number of minor tics) between
+major tics (the default for a linear axis is either two or five
+depending on the major tics, so there are one or four minor
+tics between major tics). Selecting `default` will return the number of minor
+ticks to its default value.
+
+If the axis is logarithmic, the number of sub-intervals will be set to a
+reasonable number by default (based upon the length of a decade).  This will
+be overridden if <freq> is given.  However the usual minor tics (2, 3, ...,
+8, 9 between 1 and 10, for example) are obtained by setting <freq> to 10,
+even though there are but nine sub-intervals.
+
+To set minor tics at arbitrary positions, use the ("<label>" <pos> <level>,
+...) form of `set @{x|x2|y|y2|z@}tics` with <label> empty and <level> set to 1.
+
+The `set m@{x|x2|y|y2|z@}tics` commands work only when there are uniformly
+spaced major tics.  If all major tics were placed explicitly by
+`set @{x|x2|y|y2|z@}tics`, then minor tic commands are ignored.  Implicit
+major tics and explicit minor tics can be combined using
+`set @{x|x2|y|y2|z@}tics` and `set @{x|x2|y|y2|z@}tics add`.
+
+Examples:
+@example
+      set xtics 0, 5, 10
+      set xtics add (7.5)
+      set mxtics 5
+@end example
+
+Major tics at 0,5,7.5,10, minor tics at 1,2,3,4,6,7,8,9
+@example
+      set logscale y
+      set ytics format ""
+      set ytics 1e-6, 10, 1
+      set ytics add ("1" 1, ".1" 0.1, ".01" 0.01, "10^-3" 0.001, \
+                     "10^-4" 0.0001)
+      set mytics 10
+@end example
+
+Major tics with special formatting, minor tics at log positions
+
+By default, minor tics are off for linear axes and on for logarithmic axes.
+They inherit the settings for `axis|border` and `@{no@}mirror` specified for
+the major tics.  Please see `set xtics` for information about these.
+
+@node my2tics, mytics, mxtics, set-show
+@subsection my2tics
+
+@c ?commands set my2tics
+@c ?commands unset my2tics
+@c ?commands show my2tics
+@c ?set my2tics
+@c ?unset my2tics
+@c ?show my2tics
+@cindex my2tics
+@opindex my2tics
+
+
+@cindex nomy2tics
+
+Minor tic marks along the y2 (right-hand) axis are controlled by @ref{my2tics}.  Please see @ref{mxtics}.
+
+@node mytics, mztics, my2tics, set-show
+@subsection mytics
+
+@c ?commands set mytics
+@c ?commands unset mytics
+@c ?commands show mytics
+@c ?set mytics
+@c ?unset mytics
+@c ?show mytics
+@cindex mytics
+@opindex mytics
+
+
+@cindex nomytics
+
+Minor tic marks along the y axis are controlled by @ref{mytics}.  Please
+see @ref{mxtics}.
+
+@node mztics, offsets, mytics, set-show
+@subsection mztics
+
+@c ?commands set mztics
+@c ?commands unset mztics
+@c ?commands show mztics
+@c ?set mztics
+@c ?unset mztics
+@c ?show mztics
+@cindex mztics
+@opindex mztics
+
+
+@cindex nomztics
+
+Minor tic marks along the z axis are controlled by @ref{mztics}.  Please
+see @ref{mxtics}.
+
+@node offsets, origin, mztics, set-show
+@subsection offsets
+
+@c ?commands set offsets
+@c ?commands unset offsets
+@c ?commands show offsets
+@c ?set offsets
+@c ?unset offsets
+@c ?show offsets
+@cindex offsets
+@opindex offsets
+
+
+@cindex nooffsets
+
+Offsets provide a mechanism to put a boundary around the data inside of an
+autoscaled graph.
+
+Syntax:
+@example
+      set offsets <left>, <right>, <top>, <bottom>
+      unset offsets
+      show offsets
+
+@end example
+
+Each offset may be a constant or an expression.  Each defaults to 0.  Left
+and right offsets are given in units of the x axis, top and bottom offsets in
+units of the y axis.  A positive offset expands the graph in the specified
+direction, e.g., a positive bottom offset makes ymin more negative.  Negative
+offsets, while permitted, can have unexpected interactions with autoscaling
+and clipping.
+
+Offsets are ignored in `splot`s.
+
+Example:
+@example
+      set offsets 0, 0, 2, 2
+      plot sin(x)
+
+@end example
+
+This graph of sin(x) will have a y range [-3:3] because the function
+will be autoscaled to [-1:1] and the vertical offsets are each two.
+
+@node origin, output, offsets, set-show
+@subsection origin
+
+@c ?commands set origin
+@c ?commands show origin
+@c ?set origin
+@c ?show origin
+@cindex origin
+@opindex origin
+
+
+The @ref{origin} command is used to specify the origin of a plotting surface
+(i.e., the graph and its margins) on the screen.  The coordinates are given
+in the `screen` coordinate system (see `coordinates` for information about
+this system).
+
+Syntax:
+@example
+      set origin <x-origin>,<y-origin>
+
+@end example
+
+@node output, parametric_, origin, set-show
+@subsection output
+
+@c ?commands set output
+@c ?commands show output
+@c ?set output
+@c ?show output
+@cindex output
+@opindex output
+
+
+@c ?output file
+By default, screens are displayed to the standard output. The @ref{output}
+command redirects the display to the specified file or device.
+
+Syntax:
+@example
+      set output @{"<filename>"@}
+      show output
+
+@end example
+
+The filename must be enclosed in quotes.  If the filename is omitted, any
+output file opened by a previous invocation of @ref{output} will be closed
+and new output will be sent to STDOUT.  (If you give the command `set output
+"STDOUT"`, your output may be sent to a file named "STDOUT"!  ["May be", not
+"will be", because some terminals, like `x11` or `wxt`, ignore @ref{output}.])
+
+MSDOS users should note that the \ character has special significance in
+double-quoted strings, so single-quotes should be used for filenames in
+different directories.
+
+When both @ref{terminal} and @ref{output} are used together, it is safest to
+give @ref{terminal} first, because some terminals set a flag which is needed
+in some operating systems.  This would be the case, for example, if the
+operating system needs to know whether or not a file is to be formatted in
+order to open it properly.
+
+On machines with popen functions (Unix), output can be piped through a shell
+command if the first non-whitespace character of the filename is '|'.
+For instance,
+
+@example
+      set output "|lpr -Plaser filename"
+      set output "|lp -dlaser filename"
+
+@end example
+
+On MSDOS machines, `set output "PRN"` will direct the output to the default
+printer.  On VMS, output can be sent directly to any spooled device.  It is
+also possible to send the output to DECnet transparent tasks, which allows
+some flexibility.
+
+@node parametric_, plot_, output, set-show
+@subsection parametric
+
+@c ?commands set parametric
+@c ?commands unset parametric
+@c ?commands show parametric
+@c ?set parametric
+@c ?unset parametric
+@c ?show parametric
+@cindex parametric
+@opindex parametric
+
+
+@cindex noparametric
+
+The `set parametric` command changes the meaning of `plot` (`splot`) from
+normal functions to parametric functions.  The command `unset parametric`
+restores the plotting style to normal, single-valued expression plotting.
+
+Syntax:
+@example
+      set parametric
+      unset parametric
+      show parametric
+
+@end example
+
+For 2-d plotting, a parametric function is determined by a pair of parametric
+functions operating on a parameter.  An example of a 2-d parametric function
+would be `plot sin(t),cos(t)`, which draws a circle (if the aspect ratio is
+set correctly---see @ref{size}).  `gnuplot` will display an error message if
+both functions are not provided for a parametric `plot`.
+
+For 3-d plotting, the surface is described as x=f(u,v), y=g(u,v), z=h(u,v).
+Therefore a triplet of functions is required.  An example of a 3-d parametric
+function would be `cos(u)*cos(v),cos(u)*sin(v),sin(u)`, which draws a sphere.
+`gnuplot` will display an error message if all three functions are not
+provided for a parametric `splot`.
+
+The total set of possible plots is a superset of the simple f(x) style plots,
+since the two functions can describe the x and y values to be computed
+separately.  In fact, plots of the type t,f(t) are equivalent to those
+produced with f(x) because the x values are computed using the identity
+function.  Similarly, 3-d plots of the type u,v,f(u,v) are equivalent to
+f(x,y).
+
+Note that the order the parametric functions are specified is xfunction,
+yfunction (and zfunction) and that each operates over the common parametric
+domain.
+
+Also, the `set parametric` function implies a new range of values.  Whereas
+the normal f(x) and f(x,y) style plotting assume an xrange and yrange (and
+zrange), the parametric mode additionally specifies a trange, urange, and
+vrange.  These ranges may be set directly with @ref{trange}, @ref{urange},
+and @ref{vrange}, or by specifying the range on the `plot` or `splot`
+commands.  Currently the default range for these parametric variables is
+[-5:5].  Setting the ranges to something more meaningful is expected.
+
+@node plot_, pm3d, parametric_, set-show
+@subsection plot
+
+@c ?commands show plot
+@c ?show plot
+The `show plot` command shows the current plotting command as it results
+from the last `plot` and/or `splot` and possible subsequent @ref{replot} commands.
+
+In addition, the `show plot add2history` command adds this current plot
+command into the `history`. It is useful if you have used @ref{replot} to add
+more curves to the current plot and you want to edit the whole command now.
+
+@node pm3d, palette, plot_, set-show
+@subsection pm3d
+
+@c ?commands set pm3d
+@c ?commands show pm3d
+@c ?set pm3d
+@c ?show pm3d
+@cindex pm3d
+@opindex pm3d
+
+
+pm3d is an `splot` style for drawing palette-mapped 3d and 4d data as
+color/gray maps and surfaces.  It uses a pm3d algorithm which allows plotting
+gridded as well as non-gridded data without preprocessing, even when the data
+scans do not have the same number of points.
+
+Drawing of color surfaces is available on terminals supporting filled colored
+polygons with color mapping specified by @ref{palette}. Currently supported
+terminals include
+
+@example
+  Screen terminals:
+    OS/2 Presentation Manager
+    X11
+    Linux VGA (vgagl)
+    GGI
+    Windows
+    AquaTerm (Mac OS X)
+    wxWidgets (wxt)
+  Files:
+    PostScript
+    pslatex, pstex, epslatex
+    gif, png, jpeg
+    (x)fig
+    tgif
+    cgm
+    pdf
+    svg
+    emf
+
+@end example
+
+Let us first describe how a map/surface is drawn.  The input data come from an
+evaluated function or from an @ref{file}.  Each surface consists of a
+sequence of separate scans (isolines).  The pm3d algorithm fills the region
+between two neighbouring points in one scan with another two points in the
+next scan by a gray (or color) according to z-values (or according to an
+additional 'color' column, see help for @ref{using}) of these 4 corners; by default
+the 4 corner values are averaged, but this can be changed by the option
+`corners2color`.  In order to get a reasonable surface, the neighbouring scans
+should not cross and the number of points in the neighbouring scans should not
+differ too much; of course, the best plot is with scans having same number of
+points.  There are no other requirements (e.g. the data need not be gridded).
+Another advantage is that the pm3d algorithm does not draw anything outside of
+the input (measured or calculated) region.
+
+Surface coloring works with the following input data:
+
+1. splot of function or of data file with one or three data columns: The
+gray/color scale is obtained by mapping the averaged (or `corners2color`)
+z-coordinate of the four corners of the above-specified quadrangle into the
+range [min_color_z,max_color_z] of @ref{zrange} or @ref{cbrange} providing a gray value
+in the range [0:1].  This value can be used directly as the gray for gray maps.
+The normalized gray value can be further mapped into a color---see @ref{palette}
+for the complete description.
+
+2. splot of data file with two or four data columns: The gray/color value is
+obtained by using the last-column coordinate instead of the z-value, thus
+allowing the color and the z-coordinate be mutually independent.  This can be
+used for 4d data drawing.
+
+Other notes:
+
+1. The term 'scan' referenced above is used more among physicists than the
+term 'iso_curve' referenced in gnuplot documentation and sources.  You measure
+maps recorded one scan after another scan, that's why.
+
+2. The 'gray' or 'color' scale is a linear mapping of a continuous variable
+onto a smoothly varying palette of colors. The mapping is shown in a
+rectangle next to the main plot. This documentation refers to this as a
+"colorbox", and refers to the indexing variable as lying on the colorbox axis.
+See `set colorbox`, @ref{cbrange}.
+
+3. To use pm3d coloring to generate a two-dimensional plot rather than a 3D
+surface, use `set view map` or `set pm3d map`.
+
+Syntax (the options can be given in any order):
+@example
+      set pm3d @{
+                 @{ at <bst combination> @}
+                 @{ interpolate <steps in scan>,<steps between scans> @}
+                 @{ scansautomatic | scansforward | scansbackward | depthorder @}
+                 @{ flush @{ begin | center | end @} @}
+                 @{ ftriangles | noftriangles @}
+                 @{ clip1in | clip4in @}
+                 @{ corners2color @{ mean|geomean|median|min|max|c1|c2|c3|c4 @} @}
+                 @{ hidden3d <linestyle> | nohidden3d @}
+                 @{ implicit | explicit @}
+                 @{ map @}
+               @}
+      show pm3d
+      unset pm3d
+
+@end example
+
+Color surface is drawn if data or function @ref{style} is set to pm3d globally or
+via 'with' option, or if the option `implicit` is on---then the pm3d surface
+is combined with the line surface mesh. See bottom of this section for mode
+details.
+
+Color surface can be drawn at the base or top (then it is a gray/color planar
+map) or at z-coordinates of surface points (gray/color surface).  This is
+defined by the `at` option with a string of up to 6 combinations of `b`, `t`
+and `s`. For instance, `at b` plots at bottom only, `at st` plots firstly
+surface and then top map, while `at bstbst` will never by seriously used.
+
+Colored quadrangles are plotted one after another.  When plotting surfaces
+(`at s`), the later quadrangles overlap (overdraw) the previous ones.
+(Gnuplot is not virtual reality tool to calculate intersections of filled
+polygon meshes.)  You may try to switch between `scansforward` and
+`scansbackward` to force the first scan of the data to be plotted first or
+last.  The default is `scansautomatic` where gnuplot makes a guess about scans
+order.  On the other hand, the @ref{depthorder} option completely reorders the
+qudrangles. The rendering is performed after a depth sorting, which allows to
+visualize even complicated surfaces; see @ref{depthorder} for more
+details.
+
+If two subsequent scans do not have same number of points, then it has to be
+decided whether to start taking points for quadrangles from the beginning of
+both scans (`flush begin`), from their ends (`flush end`) or to center them
+(`flush center`).  Note, that `flush (center|end)` are incompatible with
+`scansautomatic`: if you specify `flush center` or `flush end` and
+`scansautomatic` is set, it is silently switched to `scansforward`.
+
+If two subsequent scans do not have the same number of points, the option
+`ftriangles` specifies whether color triangles are drawn at the scan tail(s)
+where there are not enough points in either of the scan. This can be used to
+draw a smooth map boundary.
+
+Clipping with respect to x, y coordinates of quadrangles can be done in two
+ways.  `clip1in`: all 4 points of each quadrangle must be defined and at least
+1 point of the quadrangle must lie in the x and y ranges.  `clip4in`: all 4
+points of each quadrangle must lie in the x and y ranges.
+
+There is a single gray/color value associated to each drawn pm3d quadrangle
+(no smooth color change among vertices).  The value is calculated from
+z-coordinates from the surrounding corners according to `corners2color
+<option>`.  The options 'mean' (default), 'geomean' and 'median' produce
+various kinds of surface color smoothing, while options 'min' and 'max' choose
+minimal or maximal value, respectively. This may not be desired for pixel
+images or for maps with sharp and intense peaks, in which case the options
+'c1', 'c2', 'c3' or 'c4' can be used instead to assign the quadrangle color
+based on the z-coordinate of only one corner.  Some experimentation may be
+needed to determine which corner corresponds to 'c1', as the orientation
+depends on the drawing direction.  Because the pm3d algorithm does not extend
+the colored surface outside the range of the input data points, the 'c<j>'
+coloring options will result in pixels along two edges of the grid not
+contributing to the color of any quadrangle.  For example, applying the pm3d
+algorithm to the 4x4 grid of data points in script `demo/pm3d.dem` (please have
+a look) produces only (4-1)x(4-1)=9 colored rectangles.
+
+Another drawing algorithm, which would draw quadrangles around a given node
+by taking corners from averaged (x,y)-coordinates of its surrounding 4 nodes
+while using node's color, could be implemented in the future. This is already
+done for drawing images (2D grids) via `image` and `rgbimage` styles.
+
+Notice that ranges of z-values and color-values for surfaces are adjustable
+independently by @ref{zrange}, @ref{cbrange}, as well as `set log` for z or
+cb.  Maps can be adjusted by the cb-axis only; see also `set view map` and
+`set colorbox`.
+
+The option @ref{hidden3d} takes as the argument a linestyle which must be created
+by `set style line ...`. (The style need not to be present when setting pm3d,
+but it must be present when plotting).  If set, lines are drawn using the
+specified line style, taking into account hidden line removal.  This is by
+far more efficient than using the command @ref{hidden3d} as it doesn't really
+calculate hidden line removal, but just draws the filled polygons in the
+correct order. So the recommended choice when using pm3d is
+@example
+      set pm3d at s hidden3d 100
+      set style line 100 lt 5 lw 0.5
+      unset hidden3d
+      unset surf
+      splot x*x+y*y
+
+@end example
+
+There used to be an option @{transparent|solid@} to this command.  Now
+you get the same effect from `set grid @{front|layerdefault@}`,
+respectively.
+
+The `set pm3d map` is an abbreviation for `set pm3d at b`; `set view map`;
+@ref{pm3d}; @ref{pm3d};.
+It is used for backwards compatibility, when `set view map` was not available.
+Take care that you properly use @ref{zrange} and @ref{cbrange} for input data point
+filtering and color range scaling, respectively; and also `set (no)surface`
+seems to have a (side?) effect.
+
+The option `interpolate` will interpolate grid points into a finer mesh, and
+color each quadrangle appropriately. For data files, this will smoothen the
+color surface, and enhance spikes in a color surface. For functions,
+interpolation makes little sense, except to trade off precision for memory.
+It would usually make more sense to use @ref{samples} and @ref{isosamples} when working
+with functions.
+
+The coloring setup as well as the color box drawing are determined by
+@ref{palette}.  There can be only one palette for the current plot.  Drawing
+of several surfaces with different palettes can be achieved by @ref{multiplot}
+with fixed @ref{origin} and @ref{size}; don't forget to use `set palette maxcolors`
+when your terminal is running out of available colors.
+
+On gnuplot start-up, mode is `explicit`. For historical and thus compatibility
+reasons, commands `set pm3d;` (i.e. no options) and `set pm3d at X ...` (i.e.
+`at` is the first option) sets mode `implicit`. Further, `set pm3d;` sets up
+the other options to their default.
+
+If the option `implicit` is on, all surface plots will be plotted additionally
+to the default type, e.g.
+@example
+      splot 'fred.dat' with lines, 'lola.dat' with lines
+@end example
+
+would give both plots (meshes) additionally to a pm3d surface. That's what you
+are used to after `set pm3d;`.
+
+If the option `explicit` is on (or `implicit` is off) only plots specified
+by the @ref{pm3d} attribute are plotted with a pm3d surface, e.g.:
+@example
+      splot 'fred.dat' with lines, 'lola.dat' with pm3d
+@end example
+
+would plot 'fred.dat' with lines (and only lines) and 'lola.dat' with
+a pm3d surface.
+
+If you set the default data or function style to @ref{pm3d}, e.g.:
+@example
+      set style data pm3d
+@end example
+
+then the options `implicit` and `explicit` have no effect.
+
+Note that when plotting several plots, they are plotted in the order given
+on the command line. This can be of interest especially for filled surfaces
+which can overwrite and therefore hide part of earlier plots.
+
+If @ref{pm3d} is specified in the `splot` command line, then it accepts the
+'at' option.  The following plots draw three color surfaces at different
+altitudes:
+@example
+      set border 4095
+      set pm3d at s
+      splot 10*x with pm3d at b, x*x-y*y, x*x+y*y with pm3d at t
+
+@end example
+
+See also help for @ref{palette}, @ref{cbrange}, `set colorbox`, @ref{pm3d}
+and definitely the demo file `demo/pm3d.dem`.
+
+@menu
+* depthorder::                  
+@end menu
+
+@node depthorder,  , pm3d, pm3d
+@subsubsection depthorder
+
+@c ?commands set pm3d depthorder
+@c ?set pm3d depthorder
+@c ?pm3d depthorder
+@cindex depthorder
+
+By default the quadrangles making up a pm3d solid surface are rendered in the
+order they are encountered along the surface grid points.  This order may be
+controlled by the options `scansautomatic`|`scansforward`|`scansbackward`.
+These scan options are not in general compatible with hidden-surface removal.
+
+Gnuplot does not do true hidden surface removal for solid surfaces, but often
+it is sufficient to render the component quadrangles in order from furthest
+to closest.  This mode may be selected using the options
+@example
+      set pm3d depthorder hidden3d
+@end example
+
+The @ref{depthorder} option orders the solid quadrangles; the @ref{hidden3d} option
+similarly orders the bounding lines (if drawn).  Note that the global option
+@ref{hidden3d} does not affect pm3d surfaces.
+
+@node palette, pointsize, pm3d, set-show
+@subsection palette
+
+@c ?commands set palette
+@c ?commands show palette
+@c ?set palette
+@c ?show palette
+@cindex palette
+@opindex palette
+
+
+Palette is a color storage for use by @ref{pm3d}, filled color contours or
+polygons, color histograms, color gradient background, and whatever it is
+or it will be implemented...  Here it stands for a palette of smooth
+"continuous" colors or grays, but let's call it just a palette.
+
+Color palettes require terminal entries for filled color polygons and
+palettes of smooth colors, are currently available for terminals listed in
+help for @ref{pm3d}. The range of color values are adjustable independently by
+@ref{cbrange} and `set log cb`. The whole color palette is
+visualized in the `colorbox`.
+
+Syntax:
+@example
+      set palette
+      set palette @{
+                 @{ gray | color @}
+                 @{ gamma <gamma> @}
+                 @{   rgbformulae <r>,<g>,<b>
+                   | defined @{ ( <gray1> <color1> @{, <grayN> <colorN>@}... ) @}
+                   | file '<filename>' @{datafile-modifiers@}
+                   | functions <R>,<G>,<B>
+                 @}
+                 @{ model @{ RGB | HSV | CMY | YIQ | XYZ @} @}
+                 @{ positive | negative @}
+                 @{ nops_allcF | ps_allcF @}
+                 @{ maxcolors <maxcolors> @}
+               @}
+      show palette
+      show palette palette <n> @{@{float | int@}@}
+      show palette gradient
+      show palette fit2rgbformulae
+      show palette rgbformulae
+      show palette colornames
+
+@end example
+
+@ref{palette} (i.e. without options) sets up the default values.
+Otherwise, the options can be given in any order.
+@ref{palette} shows the current palette properties.
+
+`show palette gradient` displays the gradient defining the palette (if
+appropriate).  @ref{rgbformulae} prints the available fixed gray -->
+color transformation formulae.  @ref{colornames} prints the
+implemented color names.
+
+`show palette palette <n>` prints to screen or to the file given by
+@ref{output} table of RGB triplets calculated for the current palette settings
+and a palette having <n> discrete colors.  The default wide table can be
+limited to 3 columns of r,g,b float values [0..1] or integer values [0..255]
+by options float or int, respectively.  This way, the current gnuplot color
+palette can be loaded into other imaging applications, for example Octave.
+Additionally to this textual list of RGB table, you can enjoy command @ref{palette} to draw graphically the R,G,B profiles for the current palette.
+
+The following options determine the coloring properties.
+
+Figure using this palette can be `gray` or `color`.  For instance, in @ref{pm3d}
+color surfaces the gray of each small spot is obtained by mapping the averaged
+z-coordinate of the 4 corners of surface quadrangles into the range
+[min_z,max_z] providing range of grays [0:1]. This value can be used directly
+as the gray for gray maps. The color map requires a transformation gray -->
+(R,G,B), i.e. a mapping [0:1] --> ([0:1],[0:1],[0:1]).
+
+Basically two different types of mappings can be used:  Analytic formulae to
+convert gray to color, or discrete mapping tables which are interpolated.
+@ref{rgbformulae} and @ref{functions} use analytic formulae whereas
+@ref{defined} and @ref{file} use interpolated tables.  @ref{rgbformulae} reduces the size of postscript output to a minimum.
+
+The command `show palette fit2rgbformulae` finds the best matching @ref{rgbformulae} for the current @ref{palette}. Naturally, it makes sense
+to use it for non-rgbformulae palettes. This command can be found useful
+mainly for external programs using the same rgbformulae definition of palettes
+as gnuplot, like zimg (
+@uref{http://zimg.sourceforge.net,http://zimg.sourceforge.net
+}
+@example
+ ).
+
+@end example
+
+`set palette gray` switches to a gray only palette. @ref{rgbformulae},
+@ref{defined}, @ref{file} and @ref{functions} switch
+to a color mapping. `set palette color` is an easy way to switch back from the
+gray palette to the last color mapping.
+
+Automatic gamma correction via `set palette gamma <gamma>` can be done for
+gray maps only (`set palette gray`).  Linear mapping to gray is for gamma
+equals 1, see @ref{palette}.  Gamma is ignored for color mappings.
+
+Most terminals support only discrete number of colors (e.g. 256 colors in
+gif).  All entries of the palette remaining after the default gnuplot linetype
+colors declaration are allocated for pm3d by default.  Then @ref{multiplot} could
+fail if there are no more color positions in the terminal available.  Then you
+should use `set palette maxcolors <maxcolors>` with a reasonably small value.
+This option can also be used to separate levels of z=constant in discrete
+steps, thus to emulate filled contours. Default value of 0 stays for
+allocating all remaining entries in the terminal palette or for to use exact
+mapping to RGB.
+
+RGB color space might not be the most useful color space to work in.  For that
+reason you may change the color space with `model` to one of `RGB`, `HSV`,
+`CMY`, `YIQ` and `XYZ`.  Using color names for @ref{defined} tables
+and a color space other than RGB will result in funny colors.  All explanation
+have been written for RGB color space, so please note, that `R` can be `H`,
+`C`, `Y`, or `X`, depending on the actual color space (`G` and `B`
+accordingly).
+
+All values for all color spaces are limited to [0,1].
+
+RGB stands for Red, Green and Blue;  CMY stands for Cyan, Magenta and Yellow;
+HSV stands for Hue, Saturation, and Value;  YIQ is the color model used by
+the U.S. Commercial Color Television Broadcasting, it is basically an RGB
+recoding with downward compatibility for black and white television;
+XYZ are the three primary colors of the color model defined by the 'Commission
+Internationale de l'Eclairage' (CIE).
+For more information on color models see:
+@uref{http://www.cs.rit.edu/~ncs/color/glossary.htm,http://www.cs.rit.edu/~ncs/color/glossary.htm
+}
+and
+@uref{http://cs.fit.edu/wds/classes/cse5255/cse5255/davis/index.html,http://cs.fit.edu/wds/classes/cse5255/cse5255/davis/index.html
+}
+
+
+@menu
+* rgbformulae::                 
+* defined_::                    
+* functions_::                  
+* file::                        
+* gamma_correction::            
+* postscript::                  
+* colornames::                  
+@end menu
+
+@node rgbformulae, defined_, palette, palette
+@subsubsection rgbformulae
+
+@c ?commands set palette rgbformulae
+@c ?set palette rgbformulae
+@c ?palette rgbformulae
+@cindex rgbformulae
+
+@cindex colors
+
+For @ref{rgbformulae} three suitable mapping functions have
+to be chosen.  This is done via `rgbformulae <r>,<g>,<b>`.  The available
+mapping functions are listed by @ref{rgbformulae}.  Default is
+`7,5,15`, some other examples are `3,11,6`, `21,23,3` or `3,23,21`.  Negative
+numbers, like `3,-11,-6`, mean inverted color (i.e.  1-gray passed into the
+formula, see also `positive` and `negative` options below).
+
+Some nice schemes in RGB color space
+@example
+   7,5,15   ... traditional pm3d (black-blue-red-yellow)
+   3,11,6   ... green-red-violet
+   23,28,3  ... ocean (green-blue-white); try also all other permutations
+   21,22,23 ... hot (black-red-yellow-white)
+   30,31,32 ... color printable on gray (black-blue-violet-yellow-white)
+   33,13,10 ... rainbow (blue-green-yellow-red)
+   34,35,36 ... AFM hot (black-red-yellow-white)
+
+@end example
+
+A full color palette in HSV color space
+@example
+   3,2,2    ... red-yellow-green-cyan-blue-magenta-red
+
+@end example
+
+Please note that even if called @ref{rgbformulae} the formulas might actually
+determine the <H>,<S>,<V> or <X>,<Y>,<Z> or ... color components as usual.
+
+Use `positive` and `negative` to invert the figure colors.
+@c ^ <a name="positive"></a>
+@c ^ <a name="negative"></a>
+
+Note that it is possible to find a set of the best matching rgbformulae for any
+other color scheme by the command
+@example
+   show palette fit2rgbformulae
+
+@end example
+
+@node defined_, functions_, rgbformulae, palette
+@subsubsection defined
+
+@c ?commands set palette defined
+@c ?set palette defined
+@c ?palette defined
+@cindex colors
+
+Gray-to-rgb mapping can be manually set by use of @ref{defined}:  A color gradient
+is defined and used to give the rgb values.  Such a  gradient is a piecewise
+linear mapping from gray values in [0,1] to the RGB space [0,1]x[0,1]x[0,1].
+You have to specify the gray values and the corresponding RGB values in
+between a linear interpolation shall take place:
+
+Syntax:
+@example
+      set palette  defined @{ ( <gray1> <color1> @{, <grayN> <colorN>@}... ) @}
+
+@end example
+
+<grayX> are gray values which are mapped to [0,1] and <colorX> are the
+corresponding rgb colors.  The color can be specified in three different
+ways:
+
+@example
+     <color> :=  @{ <r> <g> <b> | '<color-name>' | '#rrggbb' @}
+
+@end example
+
+Either by three numbers (each in [0,1]) for red, green and blue, separated by
+whitespace, or the name of the color in quotes or X style color specifiers
+also in quotes.  You may freely mix the three types in a gradient definition,
+but the named color "red" will be something strange if RGB is not selected
+as color space.  Use @ref{colornames} for a list of known color
+names.
+
+Please note, that even if written as <r>, this might actually be the
+<H> component in HSV color space or <X> in CIE-XYZ space, or ...
+depending on the selected color model.
+
+The <gray> values have to form an ascending sequence of real numbers; the
+sequence will be automatically rescaled to [0,1].
+
+@ref{defined} (without a gradient definition in braces) switches to
+RGB color space and uses a preset full-spectrum color gradient.
+Use `show palette gradient` to display the gradient.
+
+Examples:
+
+To produce a gray palette (useless but instructive) use:
+@example
+      set palette model RGB
+      set palette defined ( 0 "black", 1 "white" )
+
+@end example
+
+To produce a blue yellow red palette use (all equivalent):
+@example
+      set palette defined ( 0 "blue", 1 "yellow", 2 "red" )
+      set palette defined ( 0 0 0 1, 1 1 1 0, 2 1 0 0 )
+      set palette defined ( 0 "#0000ff", 1 "#ffff00", 2 "#ff0000" )
+
+@end example
+
+To produce some rainbow-like palette use:
+@example
+      set palette defined ( 0 "blue", 3 "green", 6 "yellow", 10 "red" )
+
+@end example
+
+Full color spectrum within HSV color space:
+@example
+      set palette model HSV
+      set palette defined ( 0 0 1 1, 1 1 1 1 )
+      set palette defined ( 0 0 1 0, 1 0 1 1, 6 0.8333 1 1, 7 0.8333 0 1)
+
+@end example
+
+To produce a palette with few colors only use:
+@example
+      set palette model RGB maxcolors 4
+      set palette defined ( 0 "blue", 1 "green", 2 "yellow", 3 "red" )
+
+@end example
+
+'Traffic light' palette (non-smooth color jumps at gray = 1/3 and 2/3).
+@example
+      set palette model RGB
+      set palette defined (0 "dark-green", 1 "green", 1 "yellow", \
+                           2 "dark-yellow", 2 "red", 3 "dark-red" )
+
+@end example
+
+
+@node functions_, file, defined_, palette
+@subsubsection functions
+
+@c ?commands set palette functions
+@c ?set palette functions
+@c ?palette functions
+Use `set palette functions <Rexpr>, <Gexpr>, <Bexpr>` to define three formulae
+for the R(gray), G(gray) and B(gray) mapping.  The three formulae may depend
+on the variable `gray` which will take values in [0,1] and should also
+produce values in [0,1].
+Please note that <Rexpr> might be a formula for the H-value if HSV color
+space has been chosen (same for all other formulae and color spaces).
+
+Examples:
+
+To produce a full color palette use:
+@example
+      set palette model HSV functions gray, 1, 1
+
+@end example
+
+A nice black to gold palette:
+@example
+      set palette model XYZ functions gray**0.35, gray**0.5, gray**0.8
+
+@end example
+
+A gamma-corrected black and white palette
+@example
+      gamma = 2.2
+      color(gray) = gray**(1./gamma)
+      set palette model RGB functions color(gray), color(gray), color(gray)
+
+@end example
+
+
+@node file, gamma_correction, functions_, palette
+@subsubsection file
+
+@c ?commands set palette file
+@c ?set palette file
+@c ?palette file
+@ref{file} is basically a `set palette defined (<gradient>)` where
+<gradient> is read from a datafile.  Either 4 columns (gray,R,G,B) or
+just three columns (R,G,B) have to be selected via the @ref{using} data file
+modifier.  In the three column case, the line number will be used as gray.
+The gray range is automatically rescaled to [0,1].  The file is read as a
+normal data file, so all datafile modifiers can be used.
+Please note, that `R` might actually be e.g. `H` if HSV color space is
+selected.
+
+As usual <filename> may be `'-'` which means that the data follow the command
+inline and are terminated by a single `e` on a line of its own.
+
+Use `show palette gradient` to display the gradient.
+
+Examples:
+
+Read in a palette of RGB triples each in range [0,255]:
+@example
+      set palette file 'some-palette' using ($1/255):($2/255):($3/255)
+
+@end example
+
+Equidistant rainbow (blue-green-yellow-red) palette:
+@example
+      set palette model RGB file "-"
+      0 0 1
+      0 1 0
+      1 1 0
+      1 0 0
+      e
+
+@end example
+
+Binary palette files are supported as well, see `binary general`. Example:
+put 64 triplets of R,G,B doubles into file palette.bin and load it by
+@example
+      set palette file "palette.bin" binary record=64 using 1:2:3
+
+@end example
+
+
+
+@node gamma_correction, postscript, file, palette
+@subsubsection gamma correction
+
+@c ?commands set palette gamma-correction
+@c ?set palette gamma-correction
+@c ?palette gamma-correction
+@cindex gamma-correction
+
+For gray mappings gamma correction can be turned on by `set palette gamma
+<gamma>`.  <gamma> defaults to 1.5 which is quite suitable for most
+terminals.
+
+For color mappings no automatic gamma correction is done by gnuplot.  However,
+you may easily implement gamma correction.  Here is an example for a gray
+scale image by use of explicit functions for the red, green and blue component
+with slightly different values of gamma
+
+Example:
+@example
+      set palette model RGB
+      set palette functions gray**0.64, gray**0.67, gray**0.70
+
+@end example
+
+To use gamma correction with interpolated gradients specify intermediate
+gray values with appropriate colors.  Instead of
+
+@example
+      set palette defined ( 0 0 0 0, 1 1 1 1 )
+
+@end example
+
+use e.g.
+
+@example
+      set palette defined ( 0 0 0 0, 0.5 .73 .73 .73, 1 1 1 1 )
+
+@end example
+
+or even more intermediate points until the linear interpolation fits the
+"gamma corrected" interpolation well enough.
+
+
+@node postscript, colornames, gamma_correction, palette
+@subsubsection postscript
+
+@c ?commands set palette postscript
+@c ?set palette postscript
+In order to reduce the size of postscript files, the gray value and not all
+three calculated r,g,b values are written to the file.  Therefore the
+analytical formulae are coded directly in the postscript language as a header
+just before the pm3d drawing, see /g and /cF definitions.  Usually, it makes
+sense to write therein definitions of only the 3 formulae used.  But for
+multiplot or any other reason you may want to manually edit the
+transformations directly in the postscript file.  This is the default option
+`nops_allcF`.  Using the option `ps_allcF` writes postscript definitions of
+all formulae.  This you may find interesting if you want to edit the
+postscript file in order to have different palettes for different surfaces
+in one graph.  Well, you can achieve this functionality by @ref{multiplot} with
+fixed @ref{origin} and @ref{size}.
+
+If pm3d map has been plotted from gridded or almost regular data with an
+output to a postscript file, then it is possible to reduce the size of this
+postscript file up to at about 50% by the enclosed awk script
+`pm3dCompress.awk`.  This you may find  interesting if you intend to keep the
+file for including it into your publication or before downloading a very large
+file into a slow printer. Usage:
+@example
+    awk -f pm3dCompress.awk thefile.ps >smallerfile.ps
+
+@end example
+
+If pm3d map has been plotted from rectangular gridded data with an output
+to a postscript file, then it is possible to reduce the file size even more
+by the enclosed awk script `pm3dConvertToImage.awk`.  Usage:
+@example
+    awk -f pm3dConvertToImage.awk <thefile.ps >smallerfile.ps
+
+@end example
+
+You may manually change the postscript output from gray to color and vice
+versa and change the definition of <maxcolors>.
+
+@node colornames,  , postscript, palette
+@subsubsection colornames
+
+@cindex colornames
+
+@c ?show palette colornames
+@c ?show colornames
+Gnuplot knows a limited number of color names. You can use these to define
+the color range spanned by a pm3d palette, or to assign a terminal-independent
+color to a particular linetype or linestyle. To see the list of known color
+names, use the command @ref{colornames}.
+See @ref{palette}, `linestyle`.
+
+@node pointsize, polar, palette, set-show
+@subsection pointsize
+
+@c ?commands set pointsize
+@c ?commands show pointsize
+@c ?set pointsize
+@c ?show pointsize
+@cindex pointsize
+@opindex pointsize
+
+
+The @ref{pointsize} command scales the size of the points used in plots.
+
+Syntax:
+@example
+      set pointsize <multiplier>
+      show pointsize
+
+@end example
+
+The default is a multiplier of 1.0.  Larger pointsizes may be useful to
+make points more visible in bitmapped graphics.
+
+The pointsize of a single plot may be changed on the `plot` command.
+See @ref{with} for details.
+
+Please note that the pointsize setting is not supported by all terminal
+types.
+
+@node polar, print_, pointsize, set-show
+@subsection polar
+
+@c ?commands set polar
+@c ?commands unset polar
+@c ?commands show polar
+@c ?set polar
+@c ?unset polar
+@c ?show polar
+@cindex polar
+@opindex polar
+
+
+@cindex nopolar
+
+The `set polar` command changes the meaning of the plot from rectangular
+coordinates to polar coordinates.
+
+Syntax:
+@example
+      set polar
+      unset polar
+      show polar
+
+@end example
+
+There have been changes made to polar mode in version 3.7, so that scripts
+for `gnuplot` versions 3.5 and earlier will require modification.  The main
+change is that the dummy variable t is used for the angle so that the x and
+y ranges can be controlled independently.  Other changes are:
+1) tics are no longer put along the zero axes automatically
+---use `set xtics axis nomirror`; `set ytics axis nomirror`;
+2) the grid, if selected, is not automatically polar
+---use `set grid polar`;
+3) the grid is not labelled with angles
+---use @ref{label} as necessary.
+
+In polar coordinates, the dummy variable (t) is an angle.  The default range
+of t is [0:2*pi], or, if degree units have been selected, to [0:360] (see
+@ref{angles}).
+
+The command `unset polar` changes the meaning of the plot back to the default
+rectangular coordinate system.
+
+The `set polar` command is not supported for `splot`s.  See the @ref{mapping}
+command for similar functionality for `splot`s.
+
+While in polar coordinates the meaning of an expression in t is really
+r = f(t), where t is an angle of rotation.  The trange controls the domain
+(the angle) of the function, and the x and y ranges control the range of the
+graph in the x and y directions.  Each of these ranges, as well as the
+rrange, may be autoscaled or set explicitly.  See @ref{xrange} for details
+of all the @ref{ranges} commands.
+
+Example:
+@example
+      set polar
+      plot t*sin(t)
+      plot [-2*pi:2*pi] [-3:3] [-3:3] t*sin(t)
+
+@end example
+
+The first `plot` uses the default polar angular domain of 0 to 2*pi.  The
+radius and the size of the graph are scaled automatically.  The second `plot`
+expands the domain, and restricts the size of the graph to [-3:3] in both
+directions.
+
+You may want to `set size square` to have `gnuplot` try to make the aspect
+ratio equal to unity, so that circles look circular.
+See also
+@uref{http://www.gnuplot.info/demo/polar.html,polar demos (polar.dem)
+}
+and
+@uref{http://www.gnuplot.info/demo/poldat.html,polar data plot (poldat.dem).
+}
+
+@node print_, object, polar, set-show
+@subsection print
+
+@c ?commands set print
+@c ?commands show print
+@c ?set print
+@c ?show print
+The @ref{print} command redirects the output of the @ref{print} command to a file.
+
+Syntax:
+@example
+      set print
+      set print "-"
+      set print "<filename>"
+      set print "<filename>" append
+      set print "|<shell_command>"
+
+@end example
+
+Without "<filename>", the output file is restored to <STDERR>.  The <filename>
+"-" means <STDOUT>. The `append` flag causes the file to be opened in append
+mode.  A <filename> starting with "|" is opened as a pipe to the
+<shell_command> on platforms that support piping.
+
+@node object, rmargin, print_, set-show
+@subsection object
+
+@cindex object
+@opindex object
+
+
+@cindex rectangle
+
+@c ?commands set object
+@c ?commands show object
+@c ?commands set object rectangle
+@c ?commands show object rectangle
+@c ?set object
+@c ?show object
+@c ?set object rectangle
+@c ?show object rectangle
+This command defines a single object, which will appear in all subsequent
+2D plots. You may define as many objects as you like. Currently the only
+object type supported is `rectangle`.
+Each rectangle is specified by a pair of points that define diagonal vertices.
+A default set of style properties (fill, color, border) are inherited from
+those set by the command `set style rectangle`, but each rectangle can also be
+given individual style properties.
+
+Syntax:
+@example
+    set object <index> rectangle
+        @{from <position> @{to|rto@} <position> |
+         center <position> size <w>,<h> |
+         at <position> size <w>,<h>@}
+        @{front|back|behind@} @{fc|fillcolor <colorspec>@} @{fs <fillstyle>@}
+        @{default@} @{lw|linewidth <width>@}
+
+@end example
+
+The position of the rectangle may be specified by giving the position of two
+diagonal corners (bottom left and top right) or by giving the position of the
+center followed by the width and the height.  In either case the positions
+may be given in axis, graph, or screen coordinates. See `coordinates`.
+The options `at` and `center` are synonyms.
+
+Setting `front` will draw the rectangle in front of all plot elements, but
+behind any labels that are also marked `front`. Setting `back` will place the
+rectangle behind all plot curves and labels. Setting `behind` will place the
+rectangle behind everything including the axes and `back` rectangles, and can
+be used to provide a colored background for the entire graph or page.
+
+The fill color of the rectangle is taken from the <colorspec>. `fillcolor`
+may be abbreviated `fc`.  The fill style is taken from <fillstyle>.
+See @ref{colorspec} and `fillstyle`.  If the keyword `default` is given,
+these properties are inherited from the default settings of at the time a plot
+is drawn. See `set style rectangle`.
+
+Examples:
+@example
+    # Force the entire area enclosed by the axes to have background color cyan
+    set object 1 rect from graph 0, graph 0 to graph 1, graph 1 back
+    set object 1 rect fc rgb "cyan" fillstyle solid 1.0
+
+@end example
+
+@example
+    # Position a red square with lower left at 0,0 and upper right at 2,3
+    set object 2 rect from 0,0 to 2,3 fc lt 1
+
+@end example
+
+@example
+    # Position an empty rectangle (no fill) with a blue border
+    set object 3 rect from 0,0 to 2,3 fs empty border 3
+
+@end example
+
+@example
+    # Return fill and color to the default style but leave vertices unchanged
+    set object 2 rect default
+
+@end example
+
+
+@node rmargin, rrange, object, set-show
+@subsection rmargin
+
+@c ?commands set rmargin
+@c ?set rmargin
+@cindex rmargin
+@opindex rmargin
+
+
+The command @ref{rmargin} sets the size of the right margin.
+Please see @ref{margin} for details.
+
+@node rrange, samples, rmargin, set-show
+@subsection rrange
+
+@c ?commands set rrange
+@c ?commands show rrange
+@c ?set rrange
+@c ?show rrange
+@cindex rrange
+@opindex rrange
+
+
+The @ref{rrange} command sets the range of the radial coordinate for a
+graph in polar mode.  Please see @ref{xrange} for details.
+
+@node samples, size, rrange, set-show
+@subsection samples
+
+@c ?commands set samples
+@c ?commands show samples
+@c ?set samples
+@c ?show samples
+@cindex samples
+@opindex samples
+
+
+The sampling rate of functions, or for interpolating data, may be changed
+by the @ref{samples} command.
+
+Syntax:
+@example
+      set samples <samples_1> @{,<samples_2>@}
+      show samples
+
+@end example
+
+By default, sampling is set to 100 points.  A higher sampling rate will
+produce more accurate plots, but will take longer.  This parameter has no
+effect on data file plotting unless one of the interpolation/approximation
+options is used.  See @ref{smooth} re 2-d data and @ref{cntrparam} and
+@ref{dgrid3d} re 3-d data.
+
+When a 2-d graph is being done, only the value of <samples_1> is relevant.
+
+When a surface plot is being done without the removal of hidden lines, the
+value of samples specifies the number of samples that are to be evaluated for
+the isolines.  Each iso-v line will have <sample_1> samples and each iso-u
+line will have <sample_2> samples.  If you only specify <samples_1>,
+<samples_2> will be set to the same value as <samples_1>.  See also
+@ref{isosamples}.
+
+@node size, style, samples, set-show
+@subsection size
+
+@c ?commands set size
+@c ?commands show size
+@c ?set size
+@c ?show size
+@cindex size
+@opindex size
+
+
+@c ?aspect ratio
+Syntax:
+@example
+      set size @{@{no@}square | ratio <r> | noratio@} @{<xscale>,<yscale>@}
+      show size
+
+@end example
+
+The <xscale> and <yscale> values are scale factors for the size of the plot,
+which includes the graph, labels, and margins.
+
+Important note:
+@example
+      In earlier versions of gnuplot, some terminal types used the values from
+      @ref{size} to control also the size of the output canvas; others did not.
+      In version 4.2 almost all terminals now follow the following convention:
+
+@end example
+
+`set term <terminal_type> size <XX>, <YY>` controls the size of the output
+file, or `canvas`. Please see individual terminal documentation for allowed
+values of the size parameters.  By default, the plot will fill this canvas.
+
+`set size <XX>, <YY>` scales the plot itself relative to the size of the
+canvas.  Scale values less than 1 will cause the plot to not fill the entire
+canvas.  Scale values larger than 1 will cause only a portion of the plot to
+fit on the canvas.  Please be aware that setting scale values larger than 1
+may cause problems on some terminal types.
+
+`ratio` causes `gnuplot` to try to create a graph with an aspect ratio of <r>
+(the ratio of the y-axis length to the x-axis length) within the portion of
+the plot specified by <xscale> and <yscale>.
+
+The meaning of a negative value for <r> is different.  If <r>=-1, gnuplot
+tries to set the scales so that the unit has the same length on both the x
+and y axes (suitable for geographical data, for instance).  If <r>=-2, the
+unit on y has twice the length of the unit on x, and so on.
+
+The success of `gnuplot` in producing the requested aspect ratio depends on
+the terminal selected.  The graph area will be the largest rectangle of
+aspect ratio <r> that will fit into the specified portion of the output
+(leaving adequate margins, of course).
+
+`square` is a synonym for `ratio 1`.
+
+Both `noratio` and `nosquare` return the graph to the default aspect ratio
+of the terminal, but do not return <xscale> or <yscale> to their default
+values (1.0).
+
+`ratio` and `square` have no effect on 3-d plots, but do affect 3D projections
+created using `set view map`.  Similarly `set view equal` forces the
+x and y axes of a 3D onto the same scale.
+
+Examples:
+
+To set the size so that the plot fills the available canvas:
+@example
+      set size 1,1
+
+@end example
+
+To make the graph half size and square use:
+@example
+      set size square 0.5,0.5
+
+@end example
+
+To make the graph twice as high as wide use:
+@example
+      set size ratio 2
+
+@end example
+
+See also
+@uref{http://www.gnuplot.info/demo/airfoil.html,airfoil demo.
+}
+
+@node style, surface, size, set-show
+@subsection style
+
+@c ?set style
+@c ?show style
+@c ?unset style
+@c ^ <a name="set style <style>"></a>
+Default plotting styles are chosen with the `set style data` and
+`set style function` commands.  See @ref{with} for information about how to
+override the default plotting style for individual functions and data sets.
+See `plotting styles` for a complete list of styles.
+
+Syntax:
+@example
+      set style function <style>
+      set style data <style>
+      show style function
+      show style data
+
+@end example
+
+Default styles for specific plotting elements may also be set.
+
+Syntax:
+@example
+      set style arrow <n> <arrowstyle>
+      set style fill <fillstyle>
+      set style histogram <histogram style options>
+      set style line <n> <linestyle>
+
+@end example
+
+
+@menu
+* set_style_arrow::             
+* set_style_data::              
+* set_style_fill::              
+* set_style_function::          
+* set_style_increment::         
+* set_style_line::              
+* plotting_styles::             
+* set_style_rectangle::         
+@end menu
+
+@node set_style_arrow, set_style_data, style, style
+@subsubsection set style arrow
+
+@c ?commands set style arrow
+@c ?commands unset style arrow
+@c ?commands show style arrow
+@c ?set style arrow
+@c ?unset style arrow
+@c ?show style arrow
+@cindex arrowstyle
+
+@c ^ <a name="arrowtype"></a>
+@c ^ <a name="arrowwidth"></a>
+Each terminal has a default set of arrow and point types, which can be seen
+by using the command @ref{test}.  @ref{arrow} defines a set of arrow types
+and widths and point types and sizes so that you can refer to them later by
+an index instead of repeating all the information at each invocation.
+
+Syntax:
+@example
+      set style arrow <index> default
+      set style arrow <index> @{nohead | head | heads@}
+                              @{size <length>,<angle>@{,<backangle>@}@}
+                              @{filled | empty | nofilled@}
+                              @{front | back@}
+                              @{ @{linestyle | ls <line_style>@}
+                                | @{linetype | lt <line_type>@}
+                                  @{linewidth | lw <line_width@} @}
+      unset style arrow
+      show style arrow
+
+@end example
+
+<index> is an integer that identifies the arrowstyle.
+
+If `default` is given all arrow style parameters are set to their default
+values.
+
+If the linestyle <index> already exists, only the given parameters are
+changed while all others are preserved.  If not, all undefined values are
+set to the default values.
+
+Specifying `nohead` produces arrows drawn without a head---a line segment.
+This gives you yet another way to draw a line segment on the plot.  By
+default, arrows have one head. Specifying `heads` draws arrow heads on both
+ends of the line.
+
+Head size can be controlled by `size <length>,<angle>` or
+`size <length>,<angle>,<backangle>`, where `<length>` defines length of each
+branch of the arrow head and `<angle>` the angle (in degrees) they make with
+the arrow.  `<Length>` is in x-axis units; this can be changed by `first`,
+`second`, `graph`, `screen`, or `character` before the <length>;  see
+`coordinates` for details.  `<Backangle>` only takes effect when `filled`
+or `empty` is also used.  Then, `<backangle>` is the angle (in degrees) the
+back branches make with the arrow (in the same direction as `<angle>`).
+The `fig` terminal has a restricted backangle function. It supports three
+different angles. There are two thresholds: Below 70 degrees, the arrow head
+gets an indented back angle. Above 110 degrees, the arrow head has an acute
+back angle. Between these thresholds, the back line is straight.
+
+Specifying `filled` produces filled arrow heads (if heads are used).
+Filling is supported on filled-polygon capable terminals, see help of @ref{pm3d}
+for their list, otherwise the arrow heads are closed but not filled.
+The same result (closed but not filled arrow head) is reached by specifying
+`empty`.  Further, filling and outline is obviously not supported on
+terminals drawing arrows by their own specific routines, like `metafont`,
+`metapost`, `latex` or `tgif`.
+
+The line style may be selected from a user-defined list of line styles
+(see `set style line`) or may be defined here by providing values for
+`<line_type>` (an index from the default list of styles) and/or
+`<line_width>` (which is a  multiplier for the default width).
+
+Note, however, that if a user-defined line style has been selected, its
+properties (type and width) cannot be altered merely by issuing another
+@ref{arrow} command with the appropriate index and `lt` or `lw`.
+
+If `front` is given, the arrows are written on top of the graphed data. If
+`back` is given (the default), the arrow is written underneath the graphed
+data.  Using `front` will prevent a arrow from being obscured by dense data.
+
+Examples:
+
+To draw an arrow without an arrow head and double width, use:
+@example
+      set style arrow 1 nohead lw 2
+      set arrow arrowstyle 1
+
+@end example
+
+@example
+ See also @ref{arrow} for further examples.
+
+@end example
+
+
+@node set_style_data, set_style_fill, set_style_arrow, style
+@subsubsection set style data
+
+@c ?commands set style data
+@c ?commands show style data
+@c ?set style data
+@c ?show style data
+@c ?data style
+The `set style data` command changes the default plotting style for data
+plots.
+
+Syntax:
+@example
+      set style data <plotting-style>
+      show style data
+
+@end example
+
+See `plotting styles` for the choices.  If no choice is given, the choices are
+listed.  `show style data` shows the current default data plotting style.
+
+@node set_style_fill, set_style_function, set_style_data, style
+@subsubsection set style fill
+
+@c ?commands set style fill
+@c ?commands show style fill
+@c ?set style fill
+@c ?show style fill
+@cindex fillstyle
+
+The `set style fill` command is used to set the style of boxes,
+histograms, candlesticks and filledcurves.
+
+Syntax:
+@example
+      set style fill @{empty | solid @{<density>@} | pattern @{<n>@}@}
+                     @{border @{<linetype>@} | noborder@}
+
+@end example
+
+The default fillstyle is `empty`.
+
+The `solid` option causes filling with a solid color, if the terminal
+supports that. The <density> parameter specifies the intensity of the
+fill color. At a <density> of 0.0, the box is empty, at <density> of 1.0,
+the inner area is of the same color as the current linetype.
+Some terminal types can vary the density continuously; others implement
+only a few levels of partial fill.  If no <density> parameter is given,
+it defaults to 1.
+
+The `pattern` option causes filling to be done with a fill pattern supplied
+by the terminal driver.  The kind and number of available fill patterns
+depend on the terminal driver.  If multiple datasets using filled boxes are
+plotted, the pattern cycles through all available pattern types, starting
+from pattern <n>, much as the line type cycles for multiple line plots.
+
+The `empty` option causes filled boxes not to be filled. This is the default.
+
+By default, @ref{border}, the box is bounded by a solid line of the current
+linetype. `border <lt>` specifies that a border is to be drawn using
+linetype <lt>. `noborder` specifies that no bounding lines are drawn.
+
+@node set_style_function, set_style_increment, set_style_fill, style
+@subsubsection set style function
+
+@c ?commands set style function
+@c ?commands show style function
+@c ?set style function
+@c ?show style function
+@c ?function style
+The `set style function` command changes the default plotting style for
+function plots.
+
+Syntax:
+@example
+      set style function <plotting-style>
+      show style function
+
+@end example
+
+See `plotting styles` for the choices.  If no choice is given, the choices are
+listed.  `show style function` shows the current default function plotting
+style.
+
+@node set_style_increment, set_style_line, set_style_function, style
+@subsubsection set style increment
+
+@c ?commands set style increment
+@c ?commands show style increment
+@c ?set style increment
+@c ?show style increment
+Syntax:
+@example
+      set style increment @{default|userstyles@}
+      show style increment
+
+@end example
+
+By default, successive plots within the same graph will use successive
+linetypes from the default set for the current terminal type.
+However, choosing `set style increment user` allows you to step through
+the user-defined line styles rather than through the default linetypes.
+
+Example:
+
+@example
+      set style line 1 lw 2 lc rgb "gold"
+      set style line 2 lw 2 lc rgb "purple"
+      set style line 4 lw 1 lc rgb "sea-green"
+      set style increment user
+
+@end example
+
+@example
+      plot f1(x), f2(x), f3(x), f4(x)
+
+@end example
+
+should plot functions f1, f2, f4 in your 3 newly defined line styles.
+If a user-defined line style is not found then the corresponding default
+linetype is used instead.  E.g. in the example above, f3(x) will be plotted
+using the default linetype 3.
+
+
+@node set_style_line, plotting_styles, set_style_increment, style
+@subsubsection set style line
+
+@c ?commands set style line
+@c ?commands unset style line
+@c ?commands show style line
+@c ?set style line
+@c ?unset style line
+@c ?show style line
+@cindex linestyle
+
+@cindex linewidth
+
+Each terminal has a default set of line and point types, which can be seen
+by using the command @ref{test}.  `set style line` defines a set of line types
+and widths and point types and sizes so that you can refer to them later by
+an index instead of repeating all the information at each invocation.
+
+Syntax:
+@example
+      set style line <index> default
+      set style line <index> @{@{linetype  | lt@} <line_type> | <colorspec>@}
+                             @{@{linecolor | lc@} <colorspec>@}
+                             @{@{linewidth | lw@} <line_width>@}
+                             @{@{pointtype | pt@} <point_type>@}
+                             @{@{pointsize | ps@} <point_size>@}
+                             @{palette@}
+      unset style line
+      show style line
+
+@end example
+
+If `default` is given all line style parameters are set to their default
+values.
+
+If the linestyle <index> already exists, only the given parameters are
+changed while all others are preserved.  If not, all undefined values are
+set to the default values.
+
+The line and point types are taken from the default types for the terminal
+currently in use.  The line width and point size are multipliers for the
+default width and size (but note that <point_size> here is unaffected by
+the multiplier given on @ref{pointsize}).
+
+The defaults for the line and point types is the index.  The defaults for
+the width and size are both unity.
+
+Linestyles created by this mechanism do not replace the default linetype
+styles; both may be used.  If you want plots to use the defined styles in
+preference to the default linetypes, please see `set style increment`.
+
+Not all terminals support the `linewidth` and @ref{pointsize} features; if
+not supported, the option will be ignored.
+
+Terminal-independent colors may be assigned using either
+`linecolor <colorspec>` or `linetype <colorspec>`, abbreviated `lc` or `lt`.
+This requires giving a RGB color triple, a known palette color name,
+a fractional index into the current palette, or a constant value from the
+current mapping of the palette onto cbrange.
+See `colors`, @ref{colorspec}, @ref{palette}, @ref{colornames}, @ref{cbrange}.
+
+`set style line <n> linetype <lt>` will set both a terminal-dependent dot/dash
+pattern and color. The commands`set style line <n> linecolor <colorspec>` or
+`set style line <n> linetype <colorspec>` will set a new line color while
+leaving the existing dot-dash pattern unchanged.
+
+In 3d mode (`splot` command), the special keyword @ref{palette} is allowed as a
+shorthand for "linetype palette z".  The color value corresponds to the
+z-value (elevation) of the splot, and varies smoothly along a line or surface.
+
+Examples:
+Suppose that the default lines for indices 1, 2, and 3 are red, green, and
+blue, respectively, and the default point shapes for the same indices are a
+square, a cross, and a triangle, respectively.  Then
+
+@example
+      set style line 1 lt 2 lw 2 pt 3 ps 0.5
+
+@end example
+
+defines a new linestyle that is green and twice the default width and a new
+pointstyle that is a half-sized triangle.  The commands
+
+@example
+      set style function lines
+      plot f(x) lt 3, g(x) ls 1
+
+@end example
+
+will create a plot of f(x) using the default blue line and a plot of g(x)
+using the user-defined wide green line.  Similarly the commands
+
+@example
+      set style function linespoints
+      plot p(x) lt 1 pt 3, q(x) ls 1
+
+@end example
+
+will create a plot of p(x) using the default triangles connected by a red
+line and q(x) using small triangles connected by a green line.
+
+@example
+      splot sin(sqrt(x*x+y*y))/sqrt(x*x+y*y) w l pal
+
+@end example
+
+creates a surface plot using smooth colors according to @ref{palette}. Note,
+that this works only on some terminals. See also @ref{palette}, @ref{pm3d}.
+
+@example
+      set style line 10 linetype 1 linecolor rgb "cyan"
+
+@end example
+
+will assign linestyle 10 to be a solid cyan line on any terminal that
+supports rgb colors.
+
+
+@node plotting_styles, set_style_rectangle, set_style_line, style
+@subsubsection plotting styles
+
+@c ?plotting styles
+
+The commands `set style data` and `set style function` change the
+default plotting style for subsequent `plot` and `splot` commands.
+
+The types used for all line and point styles (i.e., solid, dash-dot, color,
+etc. for lines; circles, squares, crosses, etc. for points) will be either
+those specified on the `plot` or `splot` command or will be chosen
+sequentially from the types available to the terminal in use.  Use the
+command @ref{test} to see what is available.
+
+None of the styles requiring more than two columns of information
+(e.g., @ref{errorbars} or @ref{errorlines}) can be used with `splot`s or
+function `plot`s. Neither `boxes`, `filledcurves` nor any
+of the `steps` styles can be used with `splot`s. If an inappropriate style
+is specified, it will be changed to `points`.
+
+The above caveat does not apply to `plot with labels`, for which the third
+column specifies a data source rather than coordinate information.
+See `set style labels`.
+
+For 2-d data with more than two columns, `gnuplot` is picky about the
+allowed @ref{errorbars} and @ref{errorlines} styles. The @ref{using} option on the
+`plot` command can be used to set up the correct columns for the style
+you want. (In this discussion, "column" will be used to refer both to
+a column in the data file and an entry in the @ref{using} list.)
+
+For three columns, only `xerrorbars`, `yerrorbars` (or @ref{errorbars}),
+`xerrorlines`, `yerrorlines` (or @ref{errorlines}), `boxes`,
+and `boxerrorbars` are allowed. If another plot style is used, the style
+will be changed to `yerrorbars`. The `boxerrorbars` style will
+calculate the boxwidth automatically.
+
+For four columns, only `xerrorbars`, `yerrorbars` (or @ref{errorbars}),
+`xyerrorbars`, `xerrorlines`, `yerrorlines` (or @ref{errorlines}), `xyerrorlines`,
+`boxxyerrorbars`, and `boxerrorbars` are allowed.  An illegal
+style will be changed to `yerrorbars`.
+
+Five-column data allow only the `boxerrorbars`, `financebars`, and
+`candlesticks` styles.  An illegal style will be changed to `boxerrorbars`
+before plotting.
+
+Six- and seven-column data only allow the `xyerrorbars`,
+`xyerrorlines`, and `boxxyerrorbars` styles. Illegal styles will be
+changed to `xyerrorbars` before plotting.
+
+For more information about error bars with and without lines,
+please see @ref{errorlines} and @ref{errorbars}.
+
+
+@node set_style_rectangle,  , plotting_styles, style
+@subsubsection set style rectangle
+
+@c ?commands set style rectangle
+@c ?commands unset style rectangle
+@c ?commands show style rectangle
+@c ?set style rectangle
+@c ?unset style rectangle
+@c ?show style rectangle
+
+Rectangles defined with the `set object rectangle` command can have individual
+styles. However, if a rectangle is not assigned a private style then it
+inherits a default that is taken from the `set style rectangle` command.
+
+Syntax:
+@example
+    set style rectangle @{front|back@} @{fillcolor <colorspec>@} @{fs <fillstyle>@}
+                        @{lw|linewidth <lw>@}
+
+@end example
+
+See @ref{colorspec} and `fillstyle`.  `fillcolor` may be abbreviated as `fc`.
+
+Examples:
+@example
+    set style rectangle back fc rgb "white" fs solid 1.0 border -1
+    set style rectangle fc linsestyle 3 fs pattern 2 noborder
+
+@end example
+
+The default values correspond to solid fill with the background color and a
+black border.
+
+
+
+@noindent --- BOXERRORBARS ---
+
+@c ?commands set style boxerrorbars
+@c ?set style boxerrorbars
+@c ?plotting styles boxerrorbars
+@c ?style boxerrorbars
+@cindex boxerrorbars
+
+The `boxerrorbars` style is only relevant to 2-d data plotting.  It is a
+combination of the `boxes` and `yerrorbars` styles.  The boxwidth will come
+from the fourth column if the y errors are in the form of "ydelta" and the
+boxwidth was not previously set equal to -2.0 (`set boxwidth -2.0`) or from
+the fifth column if the y errors are in the form of "ylow yhigh".  The
+special case  `boxwidth = -2.0` is for four-column data with y errors in the
+form "ylow yhigh".  In this case the boxwidth will be calculated so that each
+box touches the adjacent boxes.  The width will also be calculated in cases
+where three-column data are used.
+
+The box height is determined from the y error in the same way as it is for
+the `yerrorbars` style---either from y-ydelta to y+ydelta or from ylow to
+yhigh, depending on how many data columns are provided.
+See also
+@uref{http://www.gnuplot.info/demo/mgr.html,errorbar demo.
+}
+
+
+@noindent --- BOXES ---
+
+@c ?commands set style boxes
+@c ?set style boxes
+@c ?plotting styles boxes
+@c ?style boxes
+@cindex boxes
+
+The `boxes` style is only relevant to 2-d plotting.  It draws a box centered
+about the given x coordinate from the x axis (not the graph border) to the
+given y coordinate.  The width of the box is obtained in one of three ways.
+If it is a data plot and the data file has a third column, this will be used
+to set the width of the box.  If not, if a width has been set using the @ref{boxwidth} command, this will be used.  If neither of these is available, the
+width of each box will be calculated automatically so that it touches the
+adjacent boxes.
+
+The interior of the boxes is drawn according to the current fillstyle.
+See `set style fill` for details.  Alternatively a new fillstyle
+may be specified in the plot command.
+
+For fillstyle `empty` the box is filled with the background color.
+
+For fillstyle `solid` the box is filled with a solid rectangle of the
+current drawing color. There is an optional parameter <density> that
+controls the fill density; it runs from 0 (background color) to 1
+(current drawing color).
+
+For fillstyle `pattern` the box is filled in the current drawing color with
+a pattern, if supported by the terminal driver.
+
+Examples:
+
+To plot a data file with solid filled boxes with a small vertical space
+separating them (bargraph):
+
+@example
+      set boxwidth 0.9 relative
+      set style fill solid 1.0
+      plot 'file.dat' with boxes
+
+@end example
+
+To plot a sine and a cosine curve in pattern-filled boxes style:
+
+@example
+      set style fill pattern
+      plot sin(x) with boxes, cos(x) with boxes
+
+@end example
+
+The sin plot will use pattern 0; the cos plot will use pattern 1.
+Any additional plots would cycle through the patterns supported by the
+terminal driver.
+
+To specify explicit fillstyles for each dataset:
+
+@example
+     plot 'file1' with boxes fs solid 0.25, \
+          'file2' with boxes fs solid 0.50, \
+          'file3' with boxes fs solid 0.75, \
+          'file4' with boxes fill pattern 1, \
+          'file5' with boxes fill empty
+
+@end example
+
+Currently only the following terminal drivers support fillstyles other
+than `empty`:
+x11, windows, pm, wxt, postscript, fig, pbm, png, gif, hpdj, hppj, hpljii,
+hp500c, jpeg, nec_cp6, epson_180dpi, epson_60dpi, epson_lx800, okidata, starc
+and tandy_60dpi. The BeOS driver (`be`) is untested.
+
+
+@noindent --- BOXXYERRORBARS ---
+
+@c ?commands set style boxxyerrorbars
+@c ?set style boxxyerrorbars
+@c ?plotting styles boxxyerrorbars
+@c ?style boxxyerrorbars
+@cindex boxxyerrorbars
+
+The `boxxyerrorbars` style is only relevant to 2-d data plotting.  It is a
+combination of the `boxes` and `xyerrorbars` styles.
+
+The box width and height are determined from the x and y errors in the same
+way as they are for the `xyerrorbars` style---either from xlow to xhigh and
+from ylow to yhigh, or from x-xdelta to x+xdelta and from y-ydelta to
+y+ydelta , depending on how many data columns are provided.
+
+If filled-box support is present, then the interior of the boxes is drawn
+according to the current fillstyle.  See `set style fill` and `boxes` for
+details.  Alternatively a new fillstyle may be specified in the plot command.
+
+
+@noindent --- CANDLESTICKS ---
+
+@c ?commands set style candlesticks
+@c ?set style candlesticks
+@c ?plotting styles candlesticks
+@c ?style candlesticks
+@cindex candlesticks
+
+The `candlesticks` style can be used for 2-d data plotting of financial
+data or for generating box-and-whisker plots of statistical data.
+Five columns of data are required; in order, these should be the x
+coordinate (most likely a date) and the opening, low, high, and closing
+prices.  The symbol is a rectangular box, centered horizontally at the x
+coordinate and limited vertically by the opening and closing prices.  A
+vertical line segment at the x coordinate extends up from the top of the
+rectangle to the high price and another down to the low.  The vertical line
+will be unchanged if the low and high prices are interchanged.
+
+The width of the rectangle can be controlled by the @ref{boxwidth} command.
+For backwards compatibility with earlier gnuplot versions, when the
+boxwidth parameter has not been set then the width of the candlestick
+rectangle is controlled by `set bars <width>`.
+
+By default the vertical line segments have no crossbars at the top and
+bottom. If you want crossbars, which are typically used for box-and-whisker
+plots, then add the keyword `whiskerbars` to the plot command.  By default
+these whiskerbars extend the full horizontal width of the candlestick, but
+you can modify this by specifying a fraction of the full width.
+
+By default the rectangle is empty if (open < close), and filled with three
+vertical bars if (close < open). If filled-boxes support is present, then
+the rectangle is colored according to `set style fill <fillstyle>`.
+See @ref{bars} and `financebars`.  See also
+@uref{http://gnuplot.sourceforge.net/demo/candlesticks.html,finance demos
+}
+.
+
+Note: To place additional symbols, such as the median value, on a
+box-and-whisker plot requires additional plot commands as in this example:
+
+@example
+  # Data columns: X Min 1stQuartile Median 3rdQuartile Max
+  set bars 4.0
+  set style fill empty
+  plot 'stat.dat' using 1:3:2:6:5 with candlesticks title 'Quartiles', \
+       ''         using 1:4:4:4:4 with candlesticks lt -1 notitle
+
+@end example
+
+@example
+  # Plot with crossbars on the whiskers, crossbars are 50% of full width
+  plot 'stat.dat' using 1:3:2:6:5 with candlesticks whiskerbars 0.5
+
+@end example
+
+@example
+ See @ref{boxwidth}, @ref{bars} and `set style fill`.
+
+@end example
+
+
+@noindent --- DOTS ---
+
+@c ?commands set style dots
+@c ?set style dots
+@c ?plotting styles dots
+@c ?style dots
+@cindex dots
+
+The `dots` style plots a tiny dot at each point; this is useful for scatter
+plots with many points. For some terminals (post, pdf) the size of the dot can
+be controlled by changing the linewidth.
+
+
+@noindent --- FILLEDCURVES ---
+
+@c ?commands set style filledcurves
+@c ?set style filledcurves
+@c ?plotting styles filledcurves
+@c ?style filledcurves
+@cindex filledcurves
+
+The `filledcurves` style is only relevant to 2-d plotting. Three variants
+are possible. The first two variants require either a function or two columns
+of input data, and may be further modified by the options listed below.
+The first variant, `closed`, treats the curve itself as a closed polygon.
+This is the default if there are two columns of input data.
+
+The second variant is to fill the area between the curve and a given axis,
+a horizontal or vertical line, or a point.
+
+The third variant requires three columns of input data: the x coordinate and
+two y coordinates corresponding to two curves sampled at the same set of
+x coordinates; the area between the two curves is filled.
+This is the default if there are three or more columns of input data.
+
+Syntax:
+
+@example
+    set style [data | function] filledcurves [option]
+    plot ... with filledcurves [option]
+
+@end example
+
+where the option can be
+
+@example
+    [closed | @{above | below@} @{x1 | x2 | y1 | y2@}[=<a>] | xy=<x>,<y>]
+
+@end example
+
+The first two plot variants can be further modified by the options
+
+@example
+    filledcurves closed   ... just filled closed curve,
+    filledcurves x1       ... x1 axis,
+    filledcurves x2       ... x2 axis, etc for y1 and y2 axes,
+    filledcurves y1=0     ... line y=0 (at y1 axis) ie parallel to x1 axis,
+    filledcurves y2=42    ... line y=42 (at y2 axis) ie parallel to x2, etc,
+    filledcurves xy=10,20 ... point 10,20 of x1,y1 axes (arc-like shape).
+
+@end example
+
+Example of filling the area between two input curves.
+@uref{http://www.gnuplot.info/demo/fillbetween.html,fill between curves demo.
+}
+
+@example
+    plot 'data' using 1:2:3 with filledcurves
+
+@end example
+
+The `above` and `below` options apply both to commands of the form
+@example
+    ... filledcurves above @{x1|x2|y1|y2@}=<val>
+@end example
+
+and to commands of the form
+@example
+    ... using 1:2:3 with filledcurves below
+@end example
+
+In either case the option limits the filled area to one side of the bounding
+line or curve.
+
+Note: Not all terminal types support this plotting mode.
+
+Zoom of a filled curve drawn from a datafile may produce empty or incorrect
+area because gnuplot is clipping points and lines, and not areas.
+
+If the values of <a>, <x>, <y> are out of the drawing boundary, then they
+are moved to the graph boundary. Then the actually filled area in the case
+of option xy=<x>,<y> will depend on xrange and yrange.
+
+
+@noindent --- FINANCEBARS ---
+
+@c ?commands set style financebars
+@c ?set style financebars
+@c ?plotting styles financebars
+@c ?style financebars
+@cindex financebars
+
+The `financebars` style is only relevant for 2-d data plotting of financial
+data.  Five columns of data are required; in order, these should be the x
+coordinate (most likely a date) and the opening, low, high, and closing
+prices.  The symbol is a vertical line segment, located horizontally at the x
+coordinate and limited vertically by the high and low prices.  A horizontal
+tic on the left marks the opening price and one on the right marks the
+closing price.  The length of these tics may be changed by @ref{bars}.  The
+symbol will be unchanged if the high and low prices are interchanged.
+See @ref{bars} and `candlesticks`, and also the
+@uref{http://www.gnuplot.info/demo/finance.html,finance demo.
+}
+
+
+@noindent --- FSTEPS ---
+
+@c ?commands set style fsteps
+@c ?set style fsteps
+@c ?plotting styles fsteps
+@c ?style fsteps
+@cindex fsteps
+
+The `fsteps` style is only relevant to 2-d plotting.  It connects consecutive
+points with two line segments: the first from (x1,y1) to (x1,y2) and the
+second from (x1,y2) to (x2,y2).
+See also
+@uref{http://www.gnuplot.info/demo/steps.html,steps demo.
+}
+
+
+@noindent --- HISTEPS ---
+
+@c ?commands set style histeps
+@c ?set style histeps
+@c ?plotting styles histeps
+@c ?style histeps
+@cindex histeps
+
+The `histeps` style is only relevant to 2-d plotting.  It is intended for
+plotting histograms.  Y-values are assumed to be centered at the x-values;
+the point at x1 is represented as a horizontal line from ((x0+x1)/2,y1) to
+((x1+x2)/2,y1).  The lines representing the end points are extended so that
+the step is centered on at x.  Adjacent points are connected by a vertical
+line at their average x, that is, from ((x1+x2)/2,y1) to ((x1+x2)/2,y2).
+
+If @ref{autoscale} is in effect, it selects the xrange from the data rather than
+the steps, so the end points will appear only half as wide as the others.
+See also
+@uref{http://www.gnuplot.info/demo/steps.html,steps demo.
+}
+
+`histeps` is only a plotting style; `gnuplot` does not have the ability to
+create bins and determine their population from some data set.
+
+
+@noindent --- HISTOGRAMS ---
+
+@c ?commands set style histogram
+@c ?set style histogram
+@c ?style histograms
+@c ?plotting styles histograms
+@cindex histograms
+
+The `histograms` style is only relevant to 2-d plotting.  It produces a bar
+chart from a sequence of data columns in parallel. Each element of the
+`plot` command must specify a single input data source (e.g. one column of
+the input file), possibly with associated tic values or key titles.
+Four styles of histogram layout are currently supported.
+
+@example
+      set style histogram clustered @{gap <gapsize>@}
+      set style histogram errorbars @{gap <gapsize>@} @{<linewidth>@}
+      set style histogram rowstacked
+      set style histogram columnstacked
+
+@end example
+
+The default style corresponds to `set style histogram clustered gap 2`.
+In this style, each set of parallel data values is collected into a group of
+boxes clustered at the x-axis coordinate corresponding to their sequential
+position (row #) in the selected datafile columns.  Thus if <n> datacolumns are
+selected, the first cluster is centered about x=1, and contains <n> boxes whose
+heights are taken from the first entry in the corresponding <n> data columns.
+This is followed by a gap and then a second cluster of boxes centered about x=2
+corresponding to the second entry in the respective data columns, and so on.
+The default gap width of 2 indicates that the empty space between clusters is
+equivalent to the width of 2 boxes.  All boxes derived from any one column
+are given the same fill color and/or pattern (see `set style fill`).
+
+Each cluster of boxes is derived from a single row of the input data file.
+It is common in such input files that the first element of each row is a
+label. Labels from this column may be placed along the x-axis underneath
+the appropriate cluster of boxes with the `xticlabels` option to @ref{using}.
+
+The @ref{errorbars} style is very similar to the `clustered` style, except that
+it requires two columns of input for each entry. The first column is treated
+as the height (y-value) of that box, exactly as for the `clustered` style.
+The second column is treated as an error magnitude, and used to generate a
+vertical error bar at the top of the box. The appearance of the error bar is
+controlled by the current value of @ref{bars} and by the optional <linewidth>
+specification.
+
+Two styles of stacked histogram are supported, chosen by the command
+`set style histogram @{rowstacked|columnstacked@}`.  In these styles the data
+values from the selected columns are collected into stacks of boxes.
+Positive values stack upwards from y=0; negative values stack downwards.
+Mixed positive and negative values will produce both an upward stack and a
+downward stack.  The default stacking mode is `rowstacked`.
+
+The `rowstacked` style places a box resting on the x-axis for each
+data value in the first selected column; the first data value results in
+a box a x=1, the second at x=2, and so on.  Boxes corresponding to the
+second and subsequent data columns are layered on top of these, resulting
+in a stack of boxes at x=1 representing the first data value from each
+column, a stack of boxes at x=2 representing the second data value from
+each column, and so on.  All boxes derived from any one column are given the
+same fill color and/or pattern (see `set style fill`).
+
+The `columnstacked` style is similar, except that each stack of boxes is
+built up from a single data column. Each data value from the first specified
+column yields a box in the stack at x=1, each data value from the second
+specified column yields a box in the stack at x=2, and so on.  In this style
+the color of each box is taken from the row number, rather than the column
+number, of the corresponding data field.
+
+Box widths may be modified using the @ref{boxwidth} command.
+Box fill styles may be set using the `set style fill` command.
+
+Histograms always use the x1 axis, but may use either y1 or y2.
+If a plot contains both histograms and other plot styles, the non-histogram
+plot elements may use either the x1 or the x2 axis.
+
+Examples:
+
+To plot a data file containing multiple columns of data as a histogram
+of clustered boxes (the default style):
+
+@example
+      set boxwidth 0.9 relative
+      set style data histograms
+      set style fill solid 1.0 border -1
+      plot 'file.dat' using 2, '' using 4, '' using 6
+
+@end example
+
+This will produce a plot with clusters of three boxes (vertical bars) centered
+at each integral value on the x axis.  If the first column of the input file
+contains labels, they may be placed along the x-axis using the variant command
+
+@example
+      plot 'file.dat' using 2, '' using 4, '' using 6:xticlabels(1)
+
+@end example
+
+If the file contains both a magnitude and an error estimate for each value,
+then error bars can be added to the plot.  The following commands will add
+error bars extending from (y-<error>) to (y+<error>), capped by horizontal bar
+ends drawn the same width as the box itself. The error bars and bar ends are
+drawn with linewidth 2 using the border linetype from the current fill style.
+
+@example
+      set bars fullwidth
+      set style fill solid border -1
+      set style histogram errorbars gap 2 lw 2
+      plot 'file.dat' using 2:3, '' using 4:5, '' using 6:7:xticlabels(1)
+
+@end example
+
+To plot the same data as a rowstacked histogram:
+
+@example
+      set style histogram rows
+      plot 'file.dat' using 2, '' using 4, '' using 6:xtic(1)
+
+@end example
+
+This will produce a plot in which each vertical bar contains a stack of three
+segments, corresponding in height to the values found in columns 2, 4 and 6
+of the datafile.
+
+Finally, the commands
+
+@example
+      set style histogram columnstacked
+      plot 'file.dat' using 2, '' using 4, '' using 6
+
+@end example
+
+will produce three vertical stacks. The stack at x=1 will contain a box for
+each entry in column 2 of the datafile.  The stack at x=2 will contain a box
+for each parallel entry in column 4 of the datafile, and the stack at x=3 a
+box for each entry of column 6.  Because this interchanges gnuplot's usual
+interpretation of input rows and columns, the specification of key titles and
+x-axis tic labels must also be modified.
+
+@example
+      set style histogram columnstacked
+      plot '' u 5:key(1)            # uses first column to generate key titles
+      plot '' u 5 title columnhead  # uses first row to generate xtic labels
+
+@end example
+
+
+@noindent --- NEWHISTOGRAM ---
+
+@cindex newhistogram
+
+@c ?histograms newhistogram
+More than one set of histograms can appear in a single plot. In this case you
+can force a gap between them, and a separate label for each set, by using the
+plot command `newhistogram @{"<title>"@} @{<linetype>@} @{at <x-coord>@}`.
+For example
+
+@example
+      set style histogram  cluster
+      plot newhistogram "Set A", 'a' using 1, '' using 2, '' using 3, \
+           newhistogram "Set B", 'b' using 1, '' using 2, '' using 3
+
+@end example
+
+The labels "Set A" and "Set B" will appear beneath the respective sets of
+histograms, under the overall x axis label.
+
+The newhistogram command can also be used to force histogram coloring to
+begin with a specific color (linetype). By default colors will continue to
+increment successively even across histogram boundaries. Here is an example
+using the same coloring for multiple histograms
+@example
+      plot newhistogram "Set A" lt 4, 'a' using 1, '' using 2, '' using 3, \
+           newhistogram "Set B" lt 4, 'b' using 1, '' using 2, '' using 3
+
+@end example
+
+The `at <x-coord>` option only applies to column-stacked histograms.
+
+
+@noindent --- IMAGE ---
+
+@c ?commands set style image
+@c ?set style image
+@c ?plotting styles image
+@c ?style image
+@cindex image
+
+The `image` style is intendend for plotting 2D images.  It may be used for
+both `plot` and `splot` in the form of 3D data (x,y,value) or projected 4D
+data (x,y,z,value), respectively.  It is assumed that in the viewing plane
+the image data forms an equidistant sampling grid in the viewing plane along
+two, not necessarily  orthogonal, directions.  In other words, groups of
+four adjacent points are assumed to form the same size parallelogram.  The
+variable `value` in the tuples represent a palette color (gray value) for
+indexing in the current palette.
+
+The `image` style will attempt to create a properly positioned and scaled
+data matrix to match the plot borders for those terminals supporting palettes
+and images.  Such output is efficient and draws quickly.  However, when a
+terminal driver does not support palettes and images, or when image support
+is not implemented, the `image` style reverts to drawing filled rectangular
+boxes for pixels, which is not as efficient.  General parallelogram-shaped
+images currently always have filled parallelograms for pixels.
+
+The coordinate of each data point of an image will lie at the center of a
+pixel.  That is, an M x N set of data will form an image with M x N pixels.
+This is slightly different than pm3d elements where an M x N set of data
+will form a surface of (M-1) x (N-1) elements.  The scan directions for the
+image data grid can be any of eight possible combinations.
+
+Here are some specific comments about particular terminal drivers:
+
+x11 and wxt - Pixels are either repeated or decimated to fit the display
+@example
+      resolution; no other processing (filtering) is done.  Thus, aliasing may
+      occur when decimating images having high spatial frequency content.
+
+@end example
+
+postscript (pslatex, epslatex, pstex) - Image is copied in its original
+@example
+      resolution, and sample interpolation is turned off.
+
+@end example
+
+See also `rgbimage`.
+
+
+@noindent --- IMPULSES ---
+
+@c ?commands set style impulses
+@c ?set style impulses
+@c ?plotting styles impulses
+@c ?style impulses
+@cindex impulses
+
+The `impulses` style displays a vertical line from the x axis (not the graph
+border), or from the grid base for `splot`, to each point.
+
+
+@noindent --- LABELS ---
+
+@c ?commands set style labels
+@c ?set style labels
+@c ?plotting styles labels
+@c ?style labels
+@cindex labels
+
+The `labels` style is available only if gnuplot is built with configuration
+option --enable-datastrings. For a 2-D plot with labels you must specify
+3 input data columns; the text string found in the third column is printed at
+the X and Y coordinates generated by the first two column specifiers. The
+font, color, rotation angle and other properties of the printed text may be
+specified as additional command options (see @ref{label}). The example below
+will generate a 2-D plot with text labels taken from column 4 of the input
+file (`tc lt 2` is shorthand for `textcolor linetype 2`, which is green).
+
+@example
+  plot 'datafile' using 1:(0.5 * $2):4 with labels font "arial,11" tc lt 2
+
+@end example
+
+The `labels` style can also be used in 3-D plots. In this case four input
+column specifiers are required, corresponding to X Y Z and text.
+
+@example
+  splot 'datafile' using 1:2:3:4 with labels
+
+@end example
+
+See also `datastrings`, `set style data`.
+
+
+@noindent --- LINES ---
+
+@c ?commands set style lines
+@c ?set style lines
+@c ?plotting styles lines
+@c ?style lines
+@cindex lines
+
+The `lines` style connects adjacent points with straight line segments.
+See also `linetype`, `linewidth`, and `linestyle`.
+
+
+@noindent --- LINESPOINTS ---
+
+@c ?commands set style linespoints
+@c ?commands set style lp
+@c ?set style linespoints
+@c ?plotting styles linespoints
+@c ?set style lp
+@c ?style linespoints
+@c ?style lp
+@cindex linespoints
+
+@cindex lp
+
+The `linespoints` style does both `lines` and `points`, that is, it draws a
+small symbol at each point and then connects adjacent points with straight
+line segments.  The command @ref{pointsize} may be used to change the size of
+the points.  See @ref{pointsize} for its usage.
+
+`linespoints` may be abbreviated `lp`.
+
+
+@noindent --- POINTS ---
+
+@c ?commands set style points
+@c ?set style points
+@c ?plotting styles points
+@c ?style points
+@cindex points
+
+The `points` style displays a small symbol at each point.  The command @ref{pointsize} may be used to change the size of the points.  See @ref{pointsize}
+for its usage.
+
+
+@noindent --- STEPS ---
+
+@c ?commands set style steps
+@c ?set style steps
+@c ?plotting styles steps
+@c ?style steps
+@cindex steps
+
+The `steps` style is only relevant to 2-d plotting.  It connects consecutive
+points with two line segments: the first from (x1,y1) to (x2,y1) and the
+second from (x2,y1) to (x2,y2).
+See also
+@uref{http://www.gnuplot.info/demo/steps.html,steps demo.
+}
+
+
+@noindent --- RGBIMAGE ---
+
+@c ?commands set style rgbimage
+@c ?set style rgbimage
+@c ?plotting styles rgbimage
+@c ?style rgbimage
+@cindex rgbimage
+
+The `rgbimage` style is intended for plotting 2D images and is similar
+in concept to `image`.  See `image` for details.  The difference is
+that 5D data (x,y,r,g,b) for `plot` and 6D data (x,y,z,r,g,b) for `splot`
+describe the coordinates and color components of an image.
+
+See also `image`.
+
+
+@noindent --- VECTORS ---
+
+@c ?commands set style vectors
+@c ?set style vectors
+@c ?plotting styles vectors
+@c ?style vectors
+@cindex vectors
+
+The 2D `vectors` style draws a vector from (x,y) to (x+xdelta,y+ydelta).
+Thus it requires four columns of data.  It also draws a small arrowhead at the
+end of the vector.
+The 3D `vectors` style is similar, but requires six columns of data.
+splot with vectors is supported only for `set mapping cartesian`.
+The keywords "with vectors" may be followed by arrow style specifications.
+See `arrowstyle` for more details.
+
+Example:
+@example
+      plot 'file.dat' using 1:2:3:4 with vectors head filled lt 2
+      splot 'file.dat' using 1:2:3:(1):(1):(1) with vectors filled head lw 2
+
+@end example
+
+`set clip one` and `set clip two` affect vectors drawn in 2D.
+Please see @ref{clip} and `arrowstyle`.
+
+
+@noindent --- XERRORBARS ---
+
+@c ?commands set style xerrorbars
+@c ?set style xerrorbars
+@c ?plotting styles xerrorbars
+@c ?style xerrorbars
+@cindex xerrorbars
+
+The `xerrorbars` style is only relevant to 2-d data plots.  `xerrorbars` is
+like `dots`, except that a horizontal error bar is also drawn.  At each point
+(x,y), a line is drawn from (xlow,y) to (xhigh,y) or from (x-xdelta,y) to
+(x+xdelta,y), depending on how many data columns are provided.  A tic mark
+is placed at the ends of the error bar (unless @ref{bars} is used---see
+@ref{bars} for details).
+
+
+@noindent --- XYERRORBARS ---
+
+@c ?commands set style xyerrorbars
+@c ?set style xyerrorbars
+@c ?plotting styles xyerrorbars
+@c ?style xyerrorbars
+@cindex xyerrorbars
+
+The `xyerrorbars` style is only relevant to 2-d data plots.  `xyerrorbars` is
+like `dots`, except that horizontal and vertical error bars are also drawn.
+At each point (x,y), lines are drawn from (x,y-ydelta) to (x,y+ydelta) and
+from (x-xdelta,y) to (x+xdelta,y) or from (x,ylow) to (x,yhigh) and from
+(xlow,y) to (xhigh,y), depending upon the number of data columns provided.  A
+tic mark is placed at the ends of the error bar (unless @ref{bars} is
+used---see @ref{bars} for details).
+
+If data are provided in an unsupported mixed form, the @ref{using} filter on the
+`plot` command should be used to set up the appropriate form.  For example,
+if the data are of the form (x,y,xdelta,ylow,yhigh), then you can use
+
+@example
+      plot 'data' using 1:2:($1-$3):($1+$3):4:5 with xyerrorbars
+
+@end example
+
+
+@noindent --- YERRORBARS ---
+
+@c ?commands set style yerrorbars
+@c ?commands set style errorbars
+@c ?plotting styles yerrorbars
+@c ?plotting styles errorbars
+@c ?set style yerrorbars
+@c ?set style errorbars
+@c ?style yerrorbars
+@c ?style errorbars
+@cindex yerrorbars
+
+The `yerrorbars` (or @ref{errorbars}) style is only relevant to 2-d data plots.
+`yerrorbars` is like `points`, except that a vertical error bar is also drawn.
+At each point (x,y), a line is drawn from (x,y-ydelta) to (x,y+ydelta) or
+from (x,ylow) to (x,yhigh), depending on how many data columns are provided.
+A tic mark is placed at the ends of the error bar (unless @ref{bars} is
+used---see @ref{bars} for details).
+See also
+@uref{http://www.gnuplot.info/demo/mgr.html,errorbar demo.
+}
+
+
+@noindent --- XERRORLINES ---
+
+@c ?commands set style xerrorlines
+@c ?set style xerrorlines
+@c ?plotting styles xerrorlines
+@c ?style xerrorlines
+@cindex xerrorlines
+
+The `xerrorlines` style is only relevant to 2-d data plots.
+`xerrorlines` is like `linespoints`, except that a horizontal error
+line is also drawn. At each point (x,y), a line is drawn from (xlow,y)
+to (xhigh,y) or from (x-xdelta,y) to (x+xdelta,y), depending on how
+many data columns are provided. A tic mark is placed at the ends of
+the error bar (unless @ref{bars} is used---see @ref{bars} for details).
+
+
+@noindent --- XYERRORLINES ---
+
+@c ?commands set style xyerrorlines
+@c ?set style xyerrorlines
+@c ?plotting styles xyerrorlines
+@c ?style xyerrorlines
+@cindex xyerrorlines
+
+The `xyerrorlines` style is only relevant to 2-d data plots.
+`xyerrorlines` is like `linespoints`, except that horizontal and
+vertical error bars are also drawn. At each point (x,y), lines are
+drawn from (x,y-ydelta) to (x,y+ydelta) and from (x-xdelta,y) to
+(x+xdelta,y) or from (x,ylow) to (x,yhigh) and from (xlow,y) to
+(xhigh,y), depending upon the number of data columns provided. A tic
+mark is placed at the ends of the error bar (unless @ref{bars} is
+used---see @ref{bars} for details).
+
+If data are provided in an unsupported mixed form, the @ref{using} filter on the
+`plot` command should be used to set up the appropriate form.  For example,
+if the data are of the form (x,y,xdelta,ylow,yhigh), then you can use
+
+@example
+      plot 'data' using 1:2:($1-$3):($1+$3):4:5 with xyerrorlines
+
+@end example
+
+
+@noindent --- YERRORLINES ---
+
+@c ?commands set style yerrorlines
+@c ?commands set style errorlines
+@c ?plotting styles yerrorlines
+@c ?plotting styles errorlines
+@c ?set style yerrorlines
+@c ?set style errorlines
+@c ?style yerrorlines
+@c ?style errorlines
+@cindex yerrorlines
+
+The `yerrorlines` (or @ref{errorlines}) style is only relevant to 2-d data
+plots. `yerrorlines` is like `linespoints`, except that a vertical
+error line is also drawn. At each point (x,y), a line is drawn from
+(x,y-ydelta) to (x,y+ydelta) or from (x,ylow) to (x,yhigh), depending
+on how many data columns are provided. A tic mark is placed at the
+ends of the error bar (unless @ref{bars} is used---see @ref{bars} for
+details).
+See also
+@uref{http://www.gnuplot.info/demo/mgr.html,errorbar demo.
+}
+
+@node surface, table, style, set-show
+@subsection surface
+
+@c ?commands set surface
+@c ?commands unset surface
+@c ?commands show surface
+@c ?set surface
+@c ?unset surface
+@c ?show surface
+@cindex surface
+@opindex surface
+
+
+@cindex nosurface
+
+The command @ref{surface} controls the display of surfaces by `splot`.
+
+Syntax:
+@example
+      set surface
+      unset surface
+      show surface
+
+@end example
+
+The surface is drawn with the style specified by @ref{with}, or else the
+appropriate style, data or function.
+
+Whenever @ref{surface} is issued, `splot` will not draw points or lines
+corresponding to the function or data file points.  Contours may still be
+drawn on the surface, depending on the @ref{contour} option. `unset surface;
+set contour base` is useful for displaying contours on the grid base.  See
+also @ref{contour}.
+
+@node table, terminal, surface, set-show
+@subsection table
+
+@c ?commands set table
+@c ?set table
+@cindex table
+@opindex table
+
+
+When @ref{table} mode is enabled, `plot` and `splot` commands print out a
+multicolumn ASCII table of X Y @{Z@} R values rather than creating an actual
+plot on the current terminal.  The character R takes on one of three values:
+"i" if the point is in the active range, "o" if it is out-of-range, or "u"
+if it is undefined.  The data format is determined by the format of the axis
+labels (see `set format`), and the columns are separated by single spaces.
+This can be useful if you want to generate contours and then save them for
+further use, perhaps for plotting with `plot`;  see @ref{contour} for example.
+The same method can be used to save interpolated data
+(see @ref{samples} and @ref{dgrid3d}).
+
+Syntax:
+@example
+      set table @{"outfile"@}
+      plot <whatever>
+      unset table
+
+@end example
+
+Tabular output is written to the named file, if any, otherwise it is written
+to the current value of @ref{output}.  You must explicitly @ref{table}
+in order to go back to normal plotting on the current terminal.
+
+@node terminal, termoption, table, set-show
+@subsection terminal
+
+@c ?commands set terminal
+@c ?commands show terminal
+@c ?set terminal
+@c ?set term
+@c ?show terminal
+@c ?show term
+@c ?set terminal push
+@c ?set term push
+@c ?terminal push
+@c ?term push
+@cindex push
+
+@c ?set terminal pop
+@c ?set term pop
+@c ?terminal pop
+@c ?term pop
+@cindex pop
+
+`gnuplot` supports many different graphics devices.  Use @ref{terminal} to
+tell `gnuplot` what kind of output to generate. Use @ref{output} to redirect
+that output to a file or device.
+
+Syntax:
+@example
+      set terminal @{<terminal-type> | push | pop@}
+      show terminal
+
+@end example
+
+If <terminal-type> is omitted, `gnuplot` will list the available terminal
+types.  <terminal-type> may be abbreviated.
+
+If both @ref{terminal} and @ref{output} are used together, it is safest to
+give @ref{terminal} first, because some terminals set a flag which is needed
+in some operating systems.
+
+Several terminals have many additional options.  For example, see `png`,
+or @ref{postscript}.
+The options used by a previous invocation `set term <term> <options>` of a
+given `<term>` are remembered, thus subsequent `set term <term>` does
+not reset them.  This helps in printing, for instance, when switching
+among different terminals---previous options don't have to be repeated.
+
+The command `set term push` remembers the current terminal including its
+settings while `set term pop` restores it. This is equivalent to `save term`
+and `load term`, but without accessing the filesystem. Therefore they can be
+used to achieve platform independent restoring of the terminal after printing,
+for instance. After gnuplot's startup, the default terminal or that from
+`startup` file is pushed automatically. Therefore portable scripts can rely
+that `set term pop` restores the default terminal on a given platform unless
+another terminal has been pushed explicitly.
+
+For a complete list of available terminal types, see @ref{terminal}.
+
+@node termoption, tics, terminal, set-show
+@subsection termoption
+
+@c ?commands set termoption
+@c ?set termoption
+@cindex termoption
+@opindex termoption
+
+
+The @ref{termoption} command allows you to change the behaviour of the
+current terminal without requiring a new @ref{terminal} command. Only one
+option can be changed per command, and only a small number of options can
+be changed this way. Currently the only options accepted are
+
+@example
+     set termoption @{no@}enhanced
+     set termoption font "<fontname>@{,<fontsize>@}"
+
+@end example
+
+
+@node tics, ticslevel, termoption, set-show
+@subsection tics
+
+@c ?commands set tics
+@c ?commands unset tics
+@c ?commands show tics
+@c ?set tics
+@c ?unset tics
+@c ?show tics
+@cindex tics
+@opindex tics
+
+
+Control of the major (labelled) tics on all axes at once is possible with the
+`set tics` command.
+
+Fine control of the major (labelled) tics on all axes at once is possible
+with the `set tics` command.  The tics may be turned off with the `unset tics`
+command, and may be turned on (the default state) with `set tics`.  Similar
+commands (by preceding 'tics' by the axis name) control the major tics on a
+single axis.
+
+Syntax:
+@example
+      set tics @{axis | border@} @{@{no@}mirror@}
+               @{in | out@} @{scale @{default | <major> @{,<minor>@}@}@}
+               @{@{no@}rotate @{by <ang>@}@} @{offset <offset> | nooffset@}
+               @{ format "formatstring" @} @{ font "name@{,<size>@}" @}
+               @{ textcolor <colorspec> @}
+      set tics @{front | back@}
+      unset tics
+      show tics
+
+@end example
+
+The options in the first set above can be applied individually to 
+any or all axes, i.e., x, y, z, x2, y2, and cb.
+
+Set tics `front` or `back` applies to all axes at once, but only for 2D plots
+(not splot).  It controls whether the tics are placed behind or in front of
+the plot elements, in the case that there is overlap.
+
+`axis` or @ref{border} tells `gnuplot` to put the tics (both the tics themselves
+and the accompanying labels) along the axis or the border, respectively.  If
+the axis is very close to the border, the `axis` option will move the
+tic labels to outside the border in case the border is printed (see
+@ref{border}).  The relevant margin settings will usually be sized badly by
+the automatic layout algorithm in this case.
+
+`mirror` tells `gnuplot` to put unlabelled tics at the same positions on the
+opposite border.  `nomirror` does what you think it does.
+
+`in` and `out` change the tic marks to be drawn inwards or outwards.
+
+With `scale`, the size of the tic marks can be adjusted. If <minor> is not
+specified, it is 0.5*<major>.  The default size 1.0 for major tics and 0.5
+for minor tics is requested by `scale default`.
+
+`rotate` asks `gnuplot` to rotate the text through 90 degrees, which will be
+done if the terminal driver in use supports text rotation.  `norotate`
+cancels this. `rotate by <ang>` asks for rotation by <ang> degrees, supported
+by some terminal types.
+
+The defaults are `border mirror norotate` for tics on the x and y axes, and
+`border nomirror norotate` for tics on the x2 and y2 axes.  For the z axis,
+the default is `nomirror`.
+
+The <offset> is specified by either x,y or x,y,z, and may be preceded by
+`first`, `second`, `graph`, `screen`, or `character` to select the
+coordinate system. <offset> is the offset of the tics texts from their
+default positions, while the default coordinate system is `character`.
+See `coordinates` for details. `nooffset` switches off the offset.
+
+`set tics` with no options restores to place tics inwards. Every other
+options are retained.
+
+See also `set xtics` for more control of major (labelled) tic marks and
+@ref{mxtics} for control of minor tic marks.  These commands provide control
+at a axis by axis basis.
+
+@node ticslevel, ticscale, tics, set-show
+@subsection ticslevel
+
+See @ref{xyplane}.
+
+@node ticscale, timestamp, ticslevel, set-show
+@subsection ticscale
+
+@c ?commands set ticscale
+@c ?commands show ticscale
+@c ?set ticscale
+@c ?show ticscale
+@cindex ticscale
+@opindex ticscale
+
+
+The @ref{ticscale} command is deprecated, use `set tics scale` instead.
+
+@node timestamp, timefmt, ticscale, set-show
+@subsection timestamp
+
+@c ?commands set timestamp
+@c ?commands unset timestamp
+@c ?commands show timestamp
+@c ?set timestamp
+@c ?unset timestamp
+@c ?show timestamp
+@cindex timestamp
+@opindex timestamp
+
+
+@cindex notimestamp
+
+The command @ref{timestamp} places the time and date of the plot in the left
+margin.
+
+Syntax:
+@example
+      set timestamp @{"<format>"@} @{top|bottom@} @{@{no@}rotate@}
+                    @{offset <xoff>@{,<yoff>@}@} @{font "<fontspec>"@}
+      unset timestamp
+      show timestamp
+
+@end example
+
+The format string allows you to choose the format used to write the date and
+time.  Its default value is what asctime() uses: "%a %b %d %H:%M:%S %Y"
+(weekday, month name, day of the month, hours, minutes, seconds, four-digit
+year).  With `top` or `bottom` you can place the timestamp at the top or
+bottom of the left margin (default: bottom).  `rotate` lets you write the
+timestamp vertically, if your terminal supports vertical text.  The constants
+<xoff> and <yoff> are offsets that let you adjust the position more finely.
+<font> is used to specify the font with which the time is to be written.
+
+The abbreviation `time` may be used in place of @ref{timestamp}.
+
+Example:
+@example
+      set timestamp "%d/%m/%y %H:%M" offset 80,-2 font "Helvetica"
+
+@end example
+
+See @ref{timefmt} for more information about time format strings.
+
+@node timefmt, title_, timestamp, set-show
+@subsection timefmt
+
+@c ?commands set timefmt
+@c ?commands show timefmt
+@c ?set timefmt
+@c ?show timefmt
+@cindex timefmt
+@opindex timefmt
+
+
+This command applies to timeseries where data are composed of dates/times.
+It has no meaning unless the command `set xdata time` is given also.
+
+Syntax:
+@example
+      set timefmt "<format string>"
+      show timefmt
+
+@end example
+
+The string argument tells `gnuplot` how to read timedata from the datafile.
+The valid formats are:
+
+
+@example
+      Format       Explanation
+      %d           day of the month, 1--31
+      %m           month of the year, 1--12
+      %y           year, 0--99
+      %Y           year, 4-digit
+      %j           day of the year, 1--365
+      %H           hour, 0--24
+      %M           minute, 0--60
+      %s           seconds since the Unix epoch (1970-01-01, 00:00 UTC)
+      %S           second, 0--60
+      %b           three-character abbreviation of the name of the month
+      %B           name of the month
+
+@end example
+
+Any character is allowed in the string, but must match exactly.  \t (tab) is
+recognized.  Backslash-octals (\nnn) are converted to char.  If there is no
+separating character between the time/date elements, then %d, %m, %y, %H, %M
+and %S read two digits each, %Y reads four digits and %j reads three digits.
+%b requires three characters, and %B requires as many as it needs.
+
+Spaces are treated slightly differently.  A space in the string stands for
+zero or more whitespace characters in the file.  That is, "%H %M" can be used
+to read "1220" and "12     20" as well as "12 20".
+
+Each set of non-blank characters in the timedata counts as one column in the
+`using n:n` specification.  Thus `11:11  25/12/76  21.0` consists of three
+columns.  To avoid confusion, `gnuplot` requires that you provide a complete
+@ref{using} specification if your file contains timedata.
+
+Since `gnuplot` cannot read non-numerical text, if the date format includes
+the day or month in words, the format string must exclude this text.  But
+it can still be printed with the "%a", "%A", "%b", or "%B" specifier:
+see `set format` for more details about these and other options for printing
+timedata.  (`gnuplot` will determine the proper month and weekday from the
+numerical values.)
+
+See also @ref{xdata} and `Time/date` for more information.
+
+Example:
+@example
+      set timefmt "%d/%m/%Y\t%H:%M"
+@end example
+
+tells `gnuplot` to read date and time separated by tab.  (But look closely at
+your data---what began as a tab may have been converted to spaces somewhere
+along the line; the format string must match what is actually in the file.)
+See also
+@uref{http://www.gnuplot.info/demo/timedat.html,time data demo.
+}
+
+@node title_, tmargin, timefmt, set-show
+@subsection title
+
+@c ?commands set title
+@c ?commands show title
+@c ?set title
+@c ?show title
+@cindex title
+@opindex title
+
+
+The @ref{title} command produces a plot title that is centered at the top of
+the plot.  @ref{title} is a special case of @ref{label}.
+
+Syntax:
+@example
+      set title @{"<title-text>"@} @{offset <offset>@} @{font "<font>@{,<size>@}"@}
+                @{@{textcolor | tc@} @{<colorspec> | default@}@} @{@{no@}enhanced@}
+      show title
+
+@end example
+
+If <offset> is specified by either x,y or x,y,z the title is moved by the
+given offset.  It may be preceded by `first`, `second`, `graph`, `screen`,
+or `character` to select the coordinate system.  See `coordinates` for
+details.  By default, the `character` coordinate system is used.  For
+example, "`set title offset 0,-1`" will change only the y offset of the
+title, moving the title down by roughly the height of one character.  The
+size of a character depends on both the font and the terminal.
+
+<font> is used to specify the font with which the title is to be written;
+the units of the font <size> depend upon which terminal is used.
+
+`textcolor <colorspec>` changes the color of the text. <colorspec> can be a
+linetype, an rgb color, or a palette mapping. See help for @ref{colorspec} and
+@ref{palette}.
+
+`noenhanced` requests that the title not be processed by the enhanced text
+mode parser, even if enhanced text mode is currently active.
+
+@ref{title} with no parameters clears the title.
+
+See `syntax` for details about the processing of backslash sequences and
+the distinction between single- and double-quotes.
+
+@node tmargin, trange, title_, set-show
+@subsection tmargin
+
+@c ?commands set tmargin
+@c ?set tmargin
+@cindex tmargin
+@opindex tmargin
+
+
+The command @ref{tmargin} sets the size of the top margin.
+Please see @ref{margin} for details.
+
+@node trange, urange, tmargin, set-show
+@subsection trange
+
+@c ?commands set trange
+@c ?commands show trange
+@c ?set trange
+@c ?show trange
+@cindex trange
+@opindex trange
+
+
+The @ref{trange} command sets the parametric range used to compute x and y
+values when in parametric or polar modes.  Please see @ref{xrange} for
+details.
+
+@node urange, variables, trange, set-show
+@subsection urange
+
+@c ?commands set urange
+@c ?commands show urange
+@c ?set urange
+@c ?show urange
+@cindex urange
+@opindex urange
+
+
+The @ref{urange} and @ref{vrange} commands set the parametric ranges used
+to compute x, y, and z values when in `splot` parametric mode.
+Please see @ref{xrange} for details.
+
+@node variables, version, urange, set-show
+@subsection variables
+
+@c ?commands show variables
+@c ?show variables
+The @ref{variables} command lists all user-defined variables and their
+values.
+
+Syntax:
+@example
+      show variables @{all@}
+
+@end example
+
+With the optional keyword "all", also the @ref{variables} that
+begin with `GPVAL_` are listed.
+
+
+@node version, view, variables, set-show
+@subsection version
+
+@c ?show version
+The @ref{version} command lists the version of gnuplot being run, its last
+modification date, the copyright holders, and email addresses for the FAQ,
+the gnuplot-info mailing list, and reporting bugs--in short, the information
+listed on the screen when the program is invoked interactively.
+
+Syntax:
+@example
+      show version @{long@}
+
+@end example
+
+When the `long` option is given, it also lists the operating system, the
+compilation options used when `gnuplot` was installed, the location of the
+help file, and (again) the useful email addresses.
+
+@node view, vrange, version, set-show
+@subsection view
+
+@c ?commands set view
+@c ?commands show view
+@c ?set view
+@c ?set view map
+@c ?set view @{no@}equal @{xy|xyz@}
+@c ?show view
+@cindex view
+@opindex view
+
+
+The @ref{view} command sets the viewing angle for `splot`s.  It controls how
+the 3-d coordinates of the plot are mapped into the 2-d screen space.  It
+provides controls for both rotation and scaling of the plotted data, but
+supports orthographic projections only.  It supports both 3D projection or
+orthogonal 2D projection into a 2D plot-like map.
+
+Syntax:
+@example
+      set view <rot_x>@{,@{<rot_z>@}@{,@{<scale>@}@{,<scale_z>@}@}@}
+      set view map
+      set view @{no@}equal_axes
+      show view
+
+@end example
+
+where <rot_x> and <rot_z> control the rotation angles (in degrees) in a
+virtual 3-d coordinate system aligned with the screen such that initially
+(that is, before the rotations are performed) the screen horizontal axis is
+x, screen vertical axis is y, and the axis perpendicular to the screen is z.
+The first rotation applied is <rot_x> around the x axis.  The second rotation
+applied is <rot_z> around the new z axis.
+
+Command `set view map` is used to represent the drawing as a map. It can be
+used for @ref{contour} plots, or for color @ref{pm3d} maps. In the latter, take care
+that you properly use @ref{zrange} and @ref{cbrange} for input data point filtering
+and color range scaling, respectively.
+
+<rot_x> is bounded to the [0:180] range with a default of 60 degrees, while
+<rot_z> is bounded to the [0:360] range with a default of 30 degrees.
+<scale> controls the scaling of the entire `splot`, while <scale_z> scales
+the z axis only.  Both scales default to 1.0.
+
+Examples:
+@example
+      set view 60, 30, 1, 1
+      set view ,,0.5
+
+@end example
+
+The first sets all the four default values.  The second changes only scale,
+to 0.5.
+
+The command `set view equal xy` forces the unit length of the x and y axes
+to be on the same scale, and chooses that scale so that the plot will fit on
+the page.  The command `set view equal xyz` additionally sets the z axis
+scale to match the x and y axes; however there is no guarantee that the
+current z axis range will fit within the plot boundary.
+By default all three axes are scaled independently to fill the available area.
+
+See also @ref{ticslevel}.
+
+@node vrange, x2data, view, set-show
+@subsection vrange
+
+@c ?commands set vrange
+@c ?commands show vrange
+@c ?set vrange
+@c ?show vrange
+@cindex vrange
+@opindex vrange
+
+
+The @ref{urange} and @ref{vrange} commands set the parametric ranges used
+to compute x, y, and z values when in `splot` parametric mode.
+Please see @ref{xrange} for details.
+
+@node x2data, x2dtics, vrange, set-show
+@subsection x2data
+
+@c ?commands set x2data
+@c ?commands show x2data
+@c ?set x2data
+@c ?show x2data
+@cindex x2data
+@opindex x2data
+
+
+The @ref{x2data} command sets data on the x2 (top) axis to timeseries
+(dates/times).  Please see @ref{xdata}.
+
+@node x2dtics, x2label, x2data, set-show
+@subsection x2dtics
+
+@c ?commands set x2dtics
+@c ?commands unset x2dtics
+@c ?commands show x2dtics
+@c ?set x2dtics
+@c ?unset x2dtics
+@c ?show x2dtics
+@cindex x2dtics
+@opindex x2dtics
+
+
+@cindex nox2dtics
+
+The @ref{x2dtics} command changes tics on the x2 (top) axis to days of the
+week.  Please see @ref{xdtics} for details.
+
+@node x2label, x2mtics, x2dtics, set-show
+@subsection x2label
+
+@c ?commands set x2label
+@c ?commands show x2label
+@c ?set x2label
+@c ?show x2label
+@cindex x2label
+@opindex x2label
+
+
+The @ref{x2label} command sets the label for the x2 (top) axis.
+Please see @ref{xlabel}.
+
+@node x2mtics, x2range, x2label, set-show
+@subsection x2mtics
+
+@c ?commands set x2mtics
+@c ?commands unset x2mtics
+@c ?commands show x2mtics
+@c ?set x2mtics
+@c ?unset x2mtics
+@c ?show x2mtics
+@cindex x2mtics
+@opindex x2mtics
+
+
+@cindex nox2mtics
+
+The @ref{x2mtics} command changes tics on the x2 (top) axis to months of the
+year.  Please see @ref{xmtics} for details.
+
+@node x2range, x2tics, x2mtics, set-show
+@subsection x2range
+
+@c ?commands set x2range
+@c ?commands show x2range
+@c ?set x2range
+@c ?show x2range
+@cindex x2range
+@opindex x2range
+
+
+The @ref{x2range} command sets the horizontal range that will be displayed on
+the x2 (top) axis.  Please see @ref{xrange} for details.
+
+@node x2tics, x2zeroaxis, x2range, set-show
+@subsection x2tics
+
+@c ?commands set x2tics
+@c ?commands unset x2tics
+@c ?commands show x2tics
+@c ?set x2tics
+@c ?unset x2tics
+@c ?show x2tics
+@cindex x2tics
+@opindex x2tics
+
+
+@cindex nox2tics
+
+The @ref{x2tics} command controls major (labelled) tics on the x2 (top) axis.
+Please see `set xtics` for details.
+
+@node x2zeroaxis, xdata, x2tics, set-show
+@subsection x2zeroaxis
+
+@c ?commands set x2zeroaxis
+@c ?commands unset x2zeroaxis
+@c ?commands show x2zeroaxis
+@c ?set x2zeroaxis
+@c ?unset x2zeroaxis
+@c ?show x2zeroaxis
+@cindex x2zeroaxis
+@opindex x2zeroaxis
+
+
+@cindex nox2zeroaxis
+
+The @ref{x2zeroaxis} command draws a line at the origin of the x2 (top) axis
+(y2 = 0).  For details, please see @ref{zeroaxis}.
+
+@node xdata, xdtics, x2zeroaxis, set-show
+@subsection xdata
+
+@c ?commands set xdata
+@c ?commands show xdata
+@c ?set xdata
+@c ?show xdata
+@cindex xdata
+@opindex xdata
+
+
+This command sets the datatype on the x axis to time/date.  A similar command
+does the same thing for each of the other axes.
+
+Syntax:
+@example
+      set xdata @{time@}
+      show xdata
+
+@end example
+
+The same syntax applies to @ref{ydata}, @ref{zdata}, @ref{x2data}, @ref{y2data} and @ref{cbdata}.
+
+The `time` option signals that the datatype is indeed time/date.  If the
+option is not specified, the datatype reverts to normal.
+
+See @ref{timefmt} to tell gnuplot how to read date or time data.  The
+time/date is converted to seconds from start of the century.  There is
+currently only one timefmt, which implies that all the time/date columns must
+conform to this format.  Specification of ranges should be supplied as quoted
+strings according to this format to avoid interpretation of the time/date as
+an expression.
+
+The function 'strftime' (type "man strftime" on unix to look it up) is used
+to print tic-mark labels.  `gnuplot` tries to figure out a reasonable format
+for this  unless the `set format x "string"` has supplied something that does
+not look like a decimal format (more than one '%' or neither %f nor %g).
+
+See also `Time/date` for more information.
+
+@node xdtics, xlabel, xdata, set-show
+@subsection xdtics
+
+@c ?commands set xdtics
+@c ?commands unset xdtics
+@c ?commands show xdtics
+@c ?set xdtics
+@c ?unset xdtics
+@c ?show xdtics
+@cindex xdtics
+@opindex xdtics
+
+
+@cindex noxdtics
+
+The @ref{xdtics} commands converts the x-axis tic marks to days of the week
+where 0=Sun and 6=Sat.  Overflows are converted modulo 7 to dates.  `set
+noxdtics` returns the labels to their default values.  Similar commands do
+the same things for the other axes.
+
+Syntax:
+@example
+      set xdtics
+      unset xdtics
+      show xdtics
+
+@end example
+
+The same syntax applies to @ref{ydtics}, @ref{zdtics}, @ref{x2dtics}, @ref{y2dtics} and
+@ref{cbdtics}.
+
+See also the `set format` command.
+
+@node xlabel, xmtics, xdtics, set-show
+@subsection xlabel
+
+@c ?commands set xlabel
+@c ?commands show xlabel
+@c ?set xlabel
+@c ?show xlabel
+@cindex xlabel
+@opindex xlabel
+
+
+The @ref{xlabel} command sets the x axis label.  Similar commands set labels
+on the other axes.
+
+Syntax:
+@example
+      set xlabel @{"<label>"@} @{offset <offset>@} @{font "<font>@{,<size>@}"@}
+                 @{@{textcolor | tc@} @{lt <line_type> | default@}@} @{@{no@}enhanced@}
+                 @{rotate by <degrees>@}
+      show xlabel
+
+@end example
+
+The same syntax applies to @ref{x2label}, @ref{ylabel}, @ref{y2label}, @ref{zlabel} and
+@ref{cblabel}.
+
+If <offset> is specified by either x,y or x,y,z the label is moved by the
+given offset.  It may be preceded by `first`, `second`, `graph`, `screen`,
+or `character` to select the coordinate system.  See `coordinates` for
+details.  By default, the `character` coordinate system is used.  For
+example, "`set xlabel offset -1,0`" will change only the x offset of the
+title, moving the label roughly one character width to the left.  The size
+of a character depends on both the font and the terminal.
+
+<font> is used to specify the font in which the label is written; the units
+of the font <size> depend upon which terminal is used.
+
+`textcolor lt <n>` sets the text color to that of line type <n>.
+
+`noenhanced` requests that the label text not be processed by the enhanced text
+mode parser, even if enhanced text mode is currently active.
+
+To clear a label, put no options on the command line, e.g., "@ref{y2label}".
+
+The default positions of the axis labels are as follows:
+
+xlabel:  The x-axis label is centered below the bottom axis.
+
+ylabel:  The position of the y-axis label depends on the terminal, and can be
+one of the following three positions:
+
+1. Horizontal text flushed left at the top left of the plot.  Terminals that
+cannot rotate text will probably use this method.  If @ref{x2tics} is also
+in use, the ylabel may overwrite the left-most x2tic label.  This may be
+remedied by adjusting the ylabel position or the left margin.
+
+2. Vertical text centered vertically at the left of the plot.  Terminals
+that can rotate text will probably use this method.
+
+3. Horizontal text centered vertically at the left of the plot.  The EEPIC,
+LaTeX and TPIC drivers use this method.  The EEPIC driver will produce a
+stack of characters so as not to overwrite the plot. With other drivers
+(such as LaTeX and TPIC), the user probably has to insert line breaks
+using \\ to prevent the ylabel from overwriting the plot.
+
+zlabel: The z-axis label is centered along the z axis and placed in the space
+above the grid level.
+
+cblabel: The color box axis label is centered along the box and placed below
+or right according to horizontal or vertical color box gradient.
+
+y2label: The y2-axis label is placed to the right of the y2 axis.  The
+position is terminal-dependent in the same manner as is the y-axis label.
+
+x2label: The x2-axis label is placed above the top axis but below the plot
+title.  It is also possible to create an x2-axis label by using new-line
+characters to make a multi-line plot title, e.g.,
+
+@example
+      set title "This is the title\n\nThis is the x2label"
+
+@end example
+
+Note that double quotes must be used.  The same font will be used for both
+lines, of course.
+
+The y and y2 axis labels can be explicitly rotated from their default
+orientation, but this applies only to 2D plots and only on terminals
+that support text rotation.
+
+If you are not satisfied with the default position of an axis label, use @ref{label} instead--that command gives you much more control over where text is
+placed.
+
+Please see `syntax` for further information about backslash processing
+and the difference between single- and double-quoted strings.
+
+@node xmtics, xrange, xlabel, set-show
+@subsection xmtics
+
+@c ?commands set xmtics
+@c ?commands unset xmtics
+@c ?commands show xmtics
+@c ?set xmtics
+@c ?unset xmtics
+@c ?show xmtics
+@cindex xmtics
+@opindex xmtics
+
+
+@cindex noxmtics
+
+The @ref{xmtics} command converts the x-axis tic marks to months of the
+year where 1=Jan and 12=Dec.  Overflows are converted modulo 12 to months.
+The tics are returned to their default labels by @ref{xmtics}.  Similar
+commands perform the same duties for the other axes.
+
+Syntax:
+@example
+      set xmtics
+      unset xmtics
+      show xmtics
+
+@end example
+
+The same syntax applies to @ref{x2mtics}, @ref{ymtics}, @ref{y2mtics}, @ref{zmtics} and
+@ref{cbmtics}.
+
+See also the `set format` command.
+
+@node xrange, xtics, xmtics, set-show
+@subsection xrange
+
+@c ?commands set xrange
+@c ?commands show xrange
+@c ?set xrange
+@c ?show xrange
+@cindex writeback
+
+@cindex restore
+
+@cindex xrange
+@opindex xrange
+
+
+The @ref{xrange} command sets the horizontal range that will be displayed.
+A similar command exists for each of the other axes, as well as for the
+polar radius r and the parametric variables t, u, and v.
+
+Syntax:
+@example
+      set xrange @{ [@{@{<min>@}:@{<max>@}@}] @{@{no@}reverse@} @{@{no@}writeback@} @}
+                 | restore
+      show xrange
+
+@end example
+
+where <min> and <max> terms are constants, expressions or an asterisk to set
+autoscaling.  If the data are time/date, you must give the range as a quoted
+string according to the @ref{timefmt} format.  Any value omitted will not be
+changed.
+
+The same syntax applies to @ref{yrange}, @ref{zrange}, @ref{x2range}, @ref{y2range}, @ref{cbrange},
+@ref{rrange}, @ref{trange}, @ref{urange} and @ref{vrange}.
+
+The `reverse` option reverses the direction of the axis, e.g., `set xrange
+[0:1] reverse` will produce an axis with 1 on the left and 0 on the right.
+This is identical to the axis produced by `set xrange [1:0]`, of course.
+`reverse` is intended primarily for use with @ref{autoscale}.
+
+The `writeback` option essentially saves the range found by @ref{autoscale} in
+the buffers that would be filled by @ref{xrange}.  This is useful if you wish
+to plot several functions together but have the range determined by only
+some of them.  The `writeback` operation is performed during the `plot`
+execution, so it must be specified before that command.  To restore,
+the last saved horizontal range use `set xrange restore`.  For example,
+
+@example
+      set xrange [-10:10]
+      set yrange [] writeback
+      plot sin(x)
+      set yrange restore
+      replot x/2
+
+@end example
+
+results in a yrange of [-1:1] as found only from the range of sin(x); the
+[-5:5] range of x/2 is ignored.  Executing @ref{yrange} after each command
+in the above example should help you understand what is going on.
+
+In 2-d, @ref{xrange} and @ref{yrange} determine the extent of the axes, @ref{trange}
+determines the range of the parametric variable in parametric mode or the
+range of the angle in polar mode.  Similarly in parametric 3-d, @ref{xrange},
+@ref{yrange}, and @ref{zrange} govern the axes and @ref{urange} and @ref{vrange} govern the
+parametric variables.
+
+In polar mode, @ref{rrange} determines the radial range plotted.  <rmin> acts as
+an additive constant to the radius, whereas <rmax> acts as a clip to the
+radius---no point with radius greater than <rmax> will be plotted.  @ref{xrange}
+and @ref{yrange} are affected---the ranges can be set as if the graph was of
+r(t)-rmin, with rmin added to all the labels.
+
+Any range may be partially or totally autoscaled, although it may not make
+sense to autoscale a parametric variable unless it is plotted with data.
+
+Ranges may also be specified on the `plot` command line.  A range given on
+the plot line will be used for that single `plot` command; a range given by
+a `set` command will be used for all subsequent plots that do not specify
+their own ranges.  The same holds true for `splot`.
+
+Examples:
+
+To set the xrange to the default:
+@example
+      set xrange [-10:10]
+
+@end example
+
+To set the yrange to increase downwards:
+@example
+      set yrange [10:-10]
+
+@end example
+
+To change zmax to 10 without affecting zmin (which may still be autoscaled):
+@example
+      set zrange [:10]
+
+@end example
+
+To autoscale xmin while leaving xmax unchanged:
+@example
+      set xrange [*:]
+
+@end example
+
+@node xtics, xyplane, xrange, set-show
+@subsection xtics
+
+@c ?commands set xtics
+@c ?commands unset xtics
+@c ?commands show xtics
+@c ?set xtics
+@c ?unset xtics
+@c ?show xtics
+@cindex xtics
+@opindex xtics
+
+
+@cindex noxtics
+
+Fine control of the major (labelled) tics on the x axis is possible with the
+`set xtics` command.  The tics may be turned off with the `unset xtics`
+command, and may be turned on (the default state) with `set xtics`.  Similar
+commands control the major tics on the y, z, x2 and y2 axes.
+
+Syntax:
+@example
+      set xtics @{axis | border@} @{@{no@}mirror@}
+                @{in | out@} @{scale @{default | <major> @{,<minor>@}@}@}
+                @{@{no@}rotate @{by <ang>@}@} @{offset <offset> | nooffset@}
+                @{add@}
+                @{  autofreq
+                 | <incr>
+                 | <start>, <incr> @{,<end>@}
+                 | (@{"<label>"@} <pos> @{<level>@} @{,@{"<label>"@}...) @}
+                @{ format "formatstring" @} @{ font "name@{,<size>@}" @}
+                @{ rangelimited @}
+                @{ textcolor <colorspec> @}
+      unset xtics
+      show xtics
+
+@end example
+
+The same syntax applies to @ref{ytics}, @ref{ztics}, @ref{x2tics}, @ref{y2tics} and @ref{cbtics}.
+
+`axis` or @ref{border} tells `gnuplot` to put the tics (both the tics themselves
+and the accompanying labels) along the axis or the border, respectively.  If
+the axis is very close to the border, the `axis` option will move the
+tic labels to outside the border.  The relevant margin settings will usually
+be sized badly by the automatic layout algorithm in this case.
+
+`mirror` tells `gnuplot` to put unlabelled tics at the same positions on the
+opposite border.  `nomirror` does what you think it does.
+
+`in` and `out` change the tic marks to be drawn inwards or outwards.
+
+With `scale`, the size of the tic marks can be adjusted. If <minor> is not
+specified, it is 0.5*<major>.  The default size 1.0 for major tics and 0.5
+for minor tics is requested by `scale default`.
+
+`rotate` asks `gnuplot` to rotate the text through 90 degrees, which will be
+done if the terminal driver in use supports text rotation.  `norotate`
+cancels this. `rotate by <ang>` asks for rotation by <ang> degrees, supported
+by some terminal types.
+
+The defaults are `border mirror norotate` for tics on the x and y axes, and
+`border nomirror norotate` for tics on the x2 and y2 axes.  For the z axis,
+the `@{axis | border@}` option is not available and the default is
+`nomirror`.  If you do want to mirror the z-axis tics, you might want to
+create a bit more room for them with @ref{border}.
+
+The <offset> is specified by either x,y or x,y,z, and may be preceded by
+`first`, `second`, `graph`, `screen`, or `character` to select the
+coordinate system. <offset> is the offset of the tics texts from their
+default positions, while the default coordinate system is `character`.
+See `coordinates` for details. `nooffset` switches off the offset.
+
+Example:
+
+Move xtics more closely to the plot.
+@example
+      set xtics offset 0,graph 0.05
+
+@end example
+
+`set xtics` with no options restores the default border or axis if xtics are
+being displayed;  otherwise it has no effect.  Any previously specified tic
+frequency or position @{and labels@} are retained.
+
+Positions of the tics are calculated automatically by default or if the
+`autofreq` option is given; otherwise they may be specified in either of
+two forms:
+
+The implicit <start>, <incr>, <end> form specifies that a series of tics will
+be plotted on the axis between the values <start> and <end> with an increment
+of <incr>.  If <end> is not given, it is assumed to be infinity.  The
+increment may be negative.  If neither <start> nor <end> is given, <start> is
+assumed to be negative infinity, <end> is assumed to be positive infinity,
+and the tics will be drawn at integral multiples of <incr>.  If the axis is
+logarithmic, the increment will be used as a multiplicative factor.
+
+If you specify to a negative <start> or <incr> after a numerical value
+(e.g., `rotate by <angle>` or `offset <offset>`), the parser fails because
+it subtracts <start> or <incr> from that value.  As a workaround, specify
+`0-<start>` resp. `0-<incr>` in that case.
+
+Example:
+@example
+      set xtics border offset 0,0.5 -5,1,5
+@end example
+
+Fails with 'invalid expression' at the last comma.
+@example
+      set xtics border offset 0,0.5 0-5,1,5
+@end example
+
+or
+@example
+      set xtics offset 0,0.5 border -5,1,5
+@end example
+
+Sets tics at the border, tics text with an offset of 0,0.5 characters, and
+sets the start, increment, and end to -5, 1, and 5, as requested.
+
+The `set grid` options 'front', 'back' and 'layerdefault' affect the drawing
+order of the xtics, too.
+
+Examples:
+
+Make tics at 0, 0.5, 1, 1.5, ..., 9.5, 10.
+@example
+      set xtics 0,.5,10
+
+@end example
+
+Make tics at ..., -10, -5, 0, 5, 10, ...
+@example
+      set xtics 5
+
+@end example
+
+Make tics at 1, 100, 1e4, 1e6, 1e8.
+@example
+      set logscale x; set xtics 1,100,1e8
+
+@end example
+
+The explicit ("<label>" <pos> <level>, ...) form allows arbitrary tic
+positions or non-numeric tic labels.  In this form, the tics do not
+need to be listed in numerical order.  Each tic has a
+position, optionally with a label.  Note that the label is
+a string enclosed by quotes.  It may be a constant string, such as
+"hello", may contain formatting information for converting the
+position into its label, such as "%3f clients", or may be empty, "".
+See `set format` for more information.  If no string is given, the
+default label (numerical) is used.
+
+An explicit tic mark has a third parameter, the "level".  The default
+is level 0, a major tic.  A level of 1 generates a minor tic.  If the
+level is specified, then the label must also be supplied.
+
+Examples:
+@example
+      set xtics ("low" 0, "medium" 50, "high" 100)
+      set xtics (1,2,4,8,16,32,64,128,256,512,1024)
+      set ytics ("bottom" 0, "" 10, "top" 20)
+      set ytics ("bottom" 0, "" 10 1, "top" 20)
+
+@end example
+
+In the second example, all tics are labelled.  In the third, only the end
+tics are labelled.  In the fourth, the unlabeled tic is a minor tic.
+
+Normally if explicit tics are given, they are used instead of auto-generated
+tics. Conversely if you specify `set xtics auto` or the like it will erase
+any previously specified explicit tics. You can mix explicit and auto-
+generated tics by using the keyword `add`, which must appear before
+the tic style being added.
+
+Example:
+@example
+      set xtics 0,.5,10
+      set xtics add ("Pi" 3.14159)
+
+@end example
+
+This will automatically generate tic marks every 0.5 along x, but will
+also add an explicit labeled tic mark at pi.
+
+However they are specified, tics will only be plotted when in range.
+
+Format (or omission) of the tic labels is controlled by `set format`, unless
+the explicit text of a label is included in the `set xtics ("<label>")` form.
+
+Minor (unlabelled) tics can be added automatically by the @ref{mxtics}
+command, or at explicit positions by the `set xtics ("" <pos> 1, ...)` form.
+
+@menu
+* xtics_time_data::             
+* xtics_rangelimited::          
+@end menu
+
+@node xtics_time_data, xtics_rangelimited, xtics, xtics
+@subsubsection xtics time_data
+
+@c ?set xtics time_axis tics
+@c ?xtics time_axis tics
+@c ?time_axis tics
+In case of timeseries data, axis tic position values must be given as quoted
+dates or times according to the format @ref{timefmt}. If the <start>, <incr>, <end>
+form is used, <start> and <end> must be given according to @ref{timefmt}, but
+<incr> must be in seconds.  Times will be written out according to the format
+given on `set format`, however.
+
+Examples:
+@example
+      set xdata time
+      set timefmt "%d/%m"
+      set xtics format "%b %d"
+      set xrange ["01/12":"06/12"]
+      set xtics "01/12", 172800, "05/12"
+
+@end example
+
+@example
+      set xdata time
+      set timefmt "%d/%m"
+      set xtics format "%b %d"
+      set xrange ["01/12":"06/12"]
+      set xtics ("01/12", "" "03/12", "05/12")
+@end example
+
+Both of these will produce tics "Dec 1", "Dec 3", and "Dec 5", but in the
+second example the tic at "Dec 3" will be unlabelled.
+
+@node xtics_rangelimited,  , xtics_time_data, xtics
+@subsubsection xtics rangelimited
+
+@c ?set xtics rangelimited
+@c ?xtics rangelimited
+@cindex rangelimited
+
+@cindex range-frame
+
+This option limits both the auto-generated axis tic labels and the
+corresponding plot border to the range of values actually present in the data
+that has been plotted.  Note that this is independent of the current range 
+limits for the plot. For example, suppose that the data in "file.dat" all lies
+in the range 2 < y < 4.  Then the following commands will create a plot for
+which the left-hand plot border (y axis) is drawn for only this portion of the
+total y range, and only the axis tics in this region are generated.
+I.e., the plot will be scaled to the full range on y, but there will be a gap
+between 0 and 2 on the left border and another gap between 4 and 10. This
+style is sometimes refered to as a `range-frame` graph.
+@example
+      set border 3
+      set yrange [0:10]
+      set ytics nomirror rangelimited
+      plot "file.dat"
+
+@end example
+
+@node xyplane, xzeroaxis, xtics, set-show
+@subsection xyplane
+
+@c ?commands set ticslevel
+@c ?commands show ticslevel
+@c ?set ticslevel
+@c ?show ticslevel
+@cindex ticslevel
+@opindex ticslevel
+
+
+@c ?commands set xyplane
+@c ?commands show xyplane
+@c ?set xyplane
+@c ?show xyplane
+@cindex xyplane
+@opindex xyplane
+
+
+The @ref{xyplane} command adjusts the position at which the xy plane is drawn
+in a 3D plot.  The synonym "set ticslevel" is accepted for backwards
+compatibility.
+
+Syntax:
+@example
+      set ticslevel <frac>
+      set xyplane <frac>
+      set xyplane at <zvalue>
+      show xyplane
+
+@end example
+
+The form `set ticslevel <frac>` places the xy plane below the range in Z, where
+the distance from the xy plane to Zmin is given as a fraction of the total
+range in z.  The default value is 0.5.  Negative values are permitted, but tic
+labels on the three axes may overlap.
+
+To place the xy-plane at a position 'pos' on the z-axis, @ref{ticslevel} may
+be set equal to  (pos - zmin) / (zmin - zmax).  However, this position will
+change if the z range is changed.
+
+The alternative form `set xyplane at <zvalue>` fixes the placement of the
+xy plane at a specific Z value regardless of the current z range. Thus to
+force the x, y, and z axes to meet at a common origin one would specify
+`set xyplane at 0`.
+
+See also @ref{view}, and @ref{zeroaxis}.
+
+@node xzeroaxis, y2data, xyplane, set-show
+@subsection xzeroaxis
+
+@c ?commands set xzeroaxis
+@c ?commands unset xzeroaxis
+@c ?commands show xzeroaxis
+@c ?set xzeroaxis
+@c ?unset xzeroaxis
+@c ?show xzeroaxis
+@cindex xzeroaxis
+@opindex xzeroaxis
+
+
+@cindex noxzeroaxis
+
+The @ref{xzeroaxis} command draws a line at y = 0.  For details,
+please see @ref{zeroaxis}.
+
+@node y2data, y2dtics, xzeroaxis, set-show
+@subsection y2data
+
+@c ?commands set y2data
+@c ?commands show y2data
+@c ?set y2data
+@c ?show y2data
+@cindex y2data
+@opindex y2data
+
+
+The @ref{y2data} command sets y2 (right-hand) axis data to timeseries
+(dates/times).  Please see @ref{xdata}.
+
+@node y2dtics, y2label, y2data, set-show
+@subsection y2dtics
+
+@c ?commands set y2dtics
+@c ?commands unset y2dtics
+@c ?set y2dtics
+@c ?unset y2dtics
+@c ?show y2dtics
+@cindex y2dtics
+@opindex y2dtics
+
+
+@cindex noy2dtics
+
+The @ref{y2dtics} command changes tics on the y2 (right-hand) axis to days of
+the week.  Please see @ref{xdtics} for details.
+
+@node y2label, y2mtics, y2dtics, set-show
+@subsection y2label
+
+@c ?commands set y2label
+@c ?commands show y2label
+@c ?set y2label
+@c ?show y2label
+@cindex y2label
+@opindex y2label
+
+
+The @ref{y2label} command sets the label for the y2 (right-hand) axis.
+Please see @ref{xlabel}.
+
+@node y2mtics, y2range, y2label, set-show
+@subsection y2mtics
+
+@c ?commands set y2mtics
+@c ?commands unset y2mtics
+@c ?commands show y2mtics
+@c ?set y2mtics
+@c ?unset y2mtics
+@c ?show y2mtics
+@cindex y2mtics
+@opindex y2mtics
+
+
+@cindex noy2mtics
+
+The @ref{y2mtics} command changes tics on the y2 (right-hand) axis to months
+of the year.  Please see @ref{xmtics} for details.
+
+@node y2range, y2tics, y2mtics, set-show
+@subsection y2range
+
+@c ?commands set y2range
+@c ?commands show y2range
+@c ?set y2range
+@c ?show y2range
+@cindex y2range
+@opindex y2range
+
+
+The @ref{y2range} command sets the vertical range that will be displayed on
+the y2 (right-hand) axis.  Please see @ref{xrange} for details.
+
+@node y2tics, y2zeroaxis, y2range, set-show
+@subsection y2tics
+
+@c ?commands set y2tics
+@c ?commands unset y2tics
+@c ?commands show y2tics
+@c ?set y2tics
+@c ?unset y2tics
+@c ?show y2tics
+@cindex y2tics
+@opindex y2tics
+
+
+@cindex noy2tics
+
+The @ref{y2tics} command controls major (labelled) tics on the y2 (right-hand)
+axis.  Please see `set xtics` for details.
+
+@node y2zeroaxis, ydata, y2tics, set-show
+@subsection y2zeroaxis
+
+@c ?commands set y2zeroaxis
+@c ?commands unset y2zeroaxis
+@c ?commands show y2zeroaxis
+@c ?set y2zeroaxis
+@c ?unset y2zeroaxis
+@c ?show y2zeroaxis
+@cindex y2zeroaxis
+@opindex y2zeroaxis
+
+
+@cindex noy2zeroaxis
+
+The @ref{y2zeroaxis} command draws a line at the origin of the y2 (right-hand)
+axis (x2 = 0).  For details, please see @ref{zeroaxis}.
+
+@node ydata, ydtics, y2zeroaxis, set-show
+@subsection ydata
+
+@c ?commands set ydata
+@c ?commands show ydata
+@c ?set ydata
+@c ?show ydata
+@cindex ydata
+@opindex ydata
+
+
+The @ref{ydata} commands sets y-axis data to timeseries (dates/times).
+Please see @ref{xdata}.
+
+@node ydtics, ylabel, ydata, set-show
+@subsection ydtics
+
+@c ?commands set ydtics
+@c ?commands unset ydtics
+@c ?commands show ydtics
+@c ?set ydtics
+@c ?unset ydtics
+@c ?show ydtics
+@cindex ydtics
+@opindex ydtics
+
+
+@cindex noydtics
+
+The @ref{ydtics} command changes tics on the y axis to days of the week.
+Please see @ref{xdtics} for details.
+
+@node ylabel, ymtics, ydtics, set-show
+@subsection ylabel
+
+@c ?commands set ylabel
+@c ?commands show ylabel
+@c ?set ylabel
+@c ?show ylabel
+@cindex ylabel
+@opindex ylabel
+
+
+This command sets the label for the y axis.  Please see @ref{xlabel}.
+
+@node ymtics, yrange, ylabel, set-show
+@subsection ymtics
+
+@c ?commands set ymtics
+@c ?commands unset ymtics
+@c ?commands show ymtics
+@c ?set ymtics
+@c ?unset ymtics
+@c ?show ymtics
+@cindex ymtics
+@opindex ymtics
+
+
+@cindex noymtics
+
+The @ref{ymtics} command changes tics on the y axis to months of the year.
+Please see @ref{xmtics} for details.
+
+@node yrange, ytics, ymtics, set-show
+@subsection yrange
+
+@c ?commands set yrange
+@c ?commands show yrange
+@c ?set yrange
+@c ?show yrange
+@cindex yrange
+@opindex yrange
+
+
+The @ref{yrange} command sets the vertical range that will be displayed on
+the y axis.  Please see @ref{xrange} for details.
+
+@node ytics, yzeroaxis, yrange, set-show
+@subsection ytics
+
+@c ?commands set ytics
+@c ?commands unset ytics
+@c ?commands show ytics
+@c ?set ytics
+@c ?unset ytics
+@c ?show ytics
+@cindex ytics
+@opindex ytics
+
+
+@cindex noytics
+
+The @ref{ytics} command controls major (labelled) tics on the y axis.
+Please see `set xtics` for details.
+
+@node yzeroaxis, zdata, ytics, set-show
+@subsection yzeroaxis
+
+@c ?commands set yzeroaxis
+@c ?commands unset yzeroaxis
+@c ?commands show yzeroaxis
+@c ?set yzeroaxis
+@c ?unset yzeroaxis
+@c ?show yzeroaxis
+@cindex yzeroaxis
+@opindex yzeroaxis
+
+
+@cindex noyzeroaxis
+
+The @ref{yzeroaxis} command draws a line at x = 0.  For details,
+please see @ref{zeroaxis}.
+
+@node zdata, zdtics, yzeroaxis, set-show
+@subsection zdata
+
+@c ?commands set zdata
+@c ?commands show zdata
+@c ?set zdata
+@c ?show zdata
+@cindex zdata
+@opindex zdata
+
+
+The @ref{zdata} command sets zaxis data to timeseries (dates/times).
+Please see @ref{xdata}.
+
+@node zdtics, zzeroaxis, zdata, set-show
+@subsection zdtics
+
+@c ?commands set zdtics
+@c ?commands unset zdtics
+@c ?commands show zdtics
+@c ?set zdtics
+@c ?unset zdtics
+@c ?show zdtics
+@cindex zdtics
+@opindex zdtics
+
+
+@cindex nozdtics
+
+The @ref{zdtics} command changes tics on the z axis to days of the week.
+Please see @ref{xdtics} for details.
+
+@node zzeroaxis, cbdata, zdtics, set-show
+@subsection zzeroaxis
+
+@c ?commands set zzeroaxis
+@c ?commands unset zzeroaxis
+@c ?commands show zzeroaxis
+@c ?set zzeroaxis
+@c ?unset zzeroaxis
+@c ?show zzeroaxis
+@cindex zzeroaxis
+@opindex zzeroaxis
+
+
+@cindex nozzeroaxis
+
+The @ref{zzeroaxis} command draws a line through (x=0,y=0).  This has no effect
+on 2D plots, including splot with `set view map`. For details, please
+see @ref{zeroaxis} and @ref{xyplane}.
+
+@node cbdata, cbdtics, zzeroaxis, set-show
+@subsection cbdata
+
+@c ?commands set cbdata
+@c ?commands show cbdata
+@c ?set cbdata
+@c ?show cbdata
+@cindex cbdata
+@opindex cbdata
+
+
+Set color box axis data to timeseries (dates/times).  Please see @ref{xdata}.
+
+@node cbdtics, zero, cbdata, set-show
+@subsection cbdtics
+
+@c ?commands set cbdtics
+@c ?commands unset cbdtics
+@c ?commands show cbdtics
+@c ?set cbdtics
+@c ?unset cbdtics
+@c ?show cbdtics
+@cindex cbdtics
+@opindex cbdtics
+
+
+@cindex nocbdtics
+
+The @ref{cbdtics} command changes tics on the color box axis to days of the
+week. Please see @ref{xdtics} for details.
+
+@node zero, zeroaxis, cbdtics, set-show
+@subsection zero
+
+@c ?commands set zero
+@c ?commands show zero
+@c ?set zero
+@c ?show zero
+@cindex zero
+@opindex zero
+
+
+The `zero` value is the default threshold for values approaching 0.0.
+
+Syntax:
+@example
+      set zero <expression>
+      show zero
+
+@end example
+
+`gnuplot` will not plot a point if its imaginary part is greater in magnitude
+than the `zero` threshold.  This threshold is also used in various other
+parts of `gnuplot` as a (crude) numerical-error threshold.  The default
+`zero` value is 1e-8.  `zero` values larger than 1e-3 (the reciprocal of the
+number of pixels in a typical bitmap display) should probably be avoided, but
+it is not unreasonable to set `zero` to 0.0.
+
+@node zeroaxis, zlabel, zero, set-show
+@subsection zeroaxis
+
+@c ?commands set zeroaxis
+@c ?commands unset zeroaxis
+@c ?commands show zeroaxis
+@c ?set zeroaxis
+@c ?unset zeroaxis
+@c ?show zeroaxis
+@cindex zeroaxis
+@opindex zeroaxis
+
+
+The x axis may be drawn by @ref{xzeroaxis} and removed by @ref{xzeroaxis}.
+Similar commands behave similarly for the y, x2, y2, and z axes.
+
+Syntax:
+@example
+      set @{x|x2|y|y2|z@}zeroaxis @{ @{linestyle | ls <line_style>@}
+                                 | @{ linetype | lt <line_type>@}
+                                   @{ linewidth | lw <line_width>@}@}
+      unset @{x|x2|y|y2|z@}zeroaxis
+      show @{x|y|z@}zeroaxis
+
+@end example
+
+
+By default, these options are off.  The selected zero axis is drawn
+with a line of type <line_type> and width <line_width> (if supported
+by the terminal driver currently in use), or a user-defined style
+<line_style>.
+
+If no linetype is specified, any zero axes selected will be drawn
+using the axis linetype (linetype 0).
+
+@ref{zeroaxis} is equivalent to @ref{yzeroaxis}.
+Note that the z-axis must be set separately using @ref{zzeroaxis}.
+
+Examples:
+
+To simply have the y=0 axis drawn visibly:
+
+@example
+       set xzeroaxis
+
+@end example
+
+If you want a thick line in a different color or pattern, instead:
+
+@example
+       set xzeroaxis linetype 3 linewidth 2.5
+
+@end example
+
+@node zlabel, zmtics, zeroaxis, set-show
+@subsection zlabel
+
+@c ?commands set zlabel
+@c ?commands show zlabel
+@c ?set zlabel
+@c ?show zlabel
+@cindex zlabel
+@opindex zlabel
+
+
+This command sets the label for the z axis.  Please see @ref{xlabel}.
+
+@node zmtics, zrange, zlabel, set-show
+@subsection zmtics
+
+@c ?commands set zmtics
+@c ?commands unset zmtics
+@c ?commands show zmtics
+@c ?set zmtics
+@c ?unset zmtics
+@c ?show zmtics
+@cindex zmtics
+@opindex zmtics
+
+
+@cindex nozmtics
+
+The @ref{zmtics} command changes tics on the z axis to months of the year.
+Please see @ref{xmtics} for details.
+
+@node zrange, ztics, zmtics, set-show
+@subsection zrange
+
+@c ?commands set zrange
+@c ?commands show zrange
+@c ?set zrange
+@c ?show zrange
+@cindex zrange
+@opindex zrange
+
+
+The @ref{zrange} command sets the range that will be displayed on the z axis.
+The zrange is used only by `splot` and is ignored by `plot`.  Please see
+@ref{xrange} for details.
+
+@node ztics, cblabel, zrange, set-show
+@subsection ztics
+
+@c ?commands set ztics
+@c ?commands unset ztics
+@c ?commands show ztics
+@c ?set ztics
+@c ?unset ztics
+@c ?show ztics
+@cindex ztics
+@opindex ztics
+
+
+@cindex noztics
+
+The @ref{ztics} command controls major (labelled) tics on the z axis.
+Please see `set xtics` for details.
+
+@node cblabel, cbmtics, ztics, set-show
+@subsection cblabel
+
+@c ?commands set cblabel
+@c ?commands show cblabel
+@c ?set cblabel
+@c ?show cblabel
+@cindex cblabel
+@opindex cblabel
+
+
+This command sets the label for the color box axis.  Please see @ref{xlabel}.
+
+@node cbmtics, cbrange, cblabel, set-show
+@subsection cbmtics
+
+@c ?commands set cbmtics
+@c ?commands unset cbmtics
+@c ?commands show cbmtics
+@c ?set cbmtics
+@c ?unset cbmtics
+@c ?show cbmtics
+@cindex cbmtics
+@opindex cbmtics
+
+
+@cindex nocbmtics
+
+The @ref{cbmtics} command changes tics on the color box axis to months of the
+year. Please see @ref{xmtics} for details.
+
+@node cbrange, cbtics, cbmtics, set-show
+@subsection cbrange
+
+@c ?commands set cbrange
+@c ?commands show cbrange
+@c ?set cbrange
+@c ?show cbrange
+@cindex cbrange
+@opindex cbrange
+
+
+The @ref{cbrange} command sets the range of values which are colored using
+the current @ref{palette} by styles @ref{pm3d}, `with image` and @ref{palette}.
+Values outside of the color range use color of the nearest extreme.
+
+If the cb-axis is autoscaled in `splot`, then the colorbox range is taken from
+@ref{zrange}.  Points drawn in `splot ... pm3d|palette` can be filtered by using
+different @ref{zrange} and @ref{cbrange}.
+
+Please see @ref{xrange} for details on @ref{cbrange} syntax. See also
+@ref{palette} and `set colorbox`.
+
+@node cbtics,  , cbrange, set-show
+@subsection cbtics
+
+@c ?commands set cbtics
+@c ?commands unset cbtics
+@c ?commands show cbtics
+@c ?set cbtics
+@c ?unset cbtics
+@c ?show cbtics
+@cindex cbtics
+@opindex cbtics
+
+
+@cindex nocbtics
+
+The @ref{cbtics} command controls major (labelled) tics on the color box axis.
+Please see `set xtics` for details.
+
+@node shell, splot, set-show, Commands
+@section shell
+
+@c ?commands shell
+@cindex shell
+@cmindex shell
+
+
+The @ref{shell} command spawns an interactive shell.  To return to `gnuplot`,
+type `logout` if using VMS, @ref{exit} or the END-OF-FILE character if using
+Unix, `endcli` if using AmigaOS, or @ref{exit} if using MS-DOS or OS/2.
+
+There are two ways of spawning a shell command: using @ref{system} command
+or via `!` ($ if using VMS). The former command takes a string as a
+parameter and thus it can be used anywhere among other gnuplot commands,
+while the latter syntax requires to be the only command on the line. Control
+will return immediately to `gnuplot` after this command is executed.  For
+example, in AmigaOS, MS-DOS or OS/2,
+
+@example
+      ! dir
+@end example
+
+or
+@example
+      system "dir"
+
+@end example
+
+
+prints a directory listing and then returns to `gnuplot`.
+
+
+Other examples of the former syntax:
+@example
+       system "date"; set time; plot "a.dat"
+       print=1; if (print) replot; set out; system "lpr x.ps"
+
+@end example
+
+On an Atari, the `!` command first checks whether a shell is already loaded
+and uses it, if available.  This is practical if `gnuplot` is run from
+`gulam`, for example.
+
+@node splot, system_, shell, Commands
+@section splot
+
+@c ?commands splot
+@cindex splot
+@cmindex splot
+
+
+`splot` is the command for drawing 3-d plots (well, actually projections on
+a 2-d surface, but you knew that).  It can create a plot from functions or
+a data file in a manner very similar to the `plot` command.
+
+See `plot` for features common to the `plot` command; only differences are
+discussed in detail here.  Note specifically `plot`'s `axes` option is not
+available for `splot`.
+
+Syntax:
+@example
+      splot @{<ranges>@}
+            <function> | "<datafile>" @{datafile-modifiers@}@}
+            @{<title-spec>@} @{with <style>@}
+            @{, @{definitions,@} <function> ...@}
+
+@end example
+
+where either a <function> or the name of a data file enclosed in quotes is
+supplied.  The function can be a mathematical expression, or a triple of
+mathematical expressions in parametric mode.
+
+By default `splot` draws the xy plane completely below the plotted data.
+The offset between the lowest ztic and the xy plane can be changed by @ref{ticslevel}.  The orientation of a `splot` projection is controlled by
+@ref{view}.  See @ref{view} and @ref{ticslevel} for more information.
+
+The syntax for setting ranges on the `splot` command is the same as for
+`plot`.  In non-parametric mode, the order in which ranges must be given is
+@ref{xrange}, @ref{yrange}, and @ref{zrange}.  In parametric mode, the order is @ref{urange},
+@ref{vrange}, @ref{xrange}, @ref{yrange}, and @ref{zrange}.
+
+The @ref{title} option is the same as in `plot`.  The operation of @ref{with} is also
+the same as in `plot`, except that the plotting styles available to `splot`
+are limited to `lines`, `points`, `linespoints`, `dots`, and `impulses`;  the
+error-bar capabilities of `plot` are not available for `splot`.
+
+The @ref{datafile} options have more differences.
+
+See also `show plot`.
+
+@menu
+* data-file::                   
+* grid_data::                   
+* splot_overview::              
+@end menu
+
+@node data-file, grid_data, splot, splot
+@subsection data-file
+
+@c ?commands splot datafile
+@c ?splot datafile
+@c ?splot data-file
+As for `plot`, discrete data contained in a file can be displayed by
+specifying the name of the data file, enclosed in quotes,  on the `splot`
+command line.
+
+Syntax:
+@example
+      splot '<file_name>' @{binary <binary list>@}
+                          @{matrix@}
+                          @{index <index list>@}
+                          @{every <every list>@}
+                          @{using <using list>@}
+
+@end example
+
+The special filenames `""` and `"-"` are permitted, as in `plot`.
+
+In brief, `binary` and `matrix` indicate that the data are in a special
+form, @ref{index} selects which data sets in a multi-data-set file are to be
+plotted, @ref{every} specifies which datalines (subsets) within a single data
+set are to be plotted, and @ref{using} determines how the columns within a single
+record are to be interpreted.
+
+The options @ref{index} and @ref{every} behave the same way as with `plot`;  @ref{using}
+does so also, except that the @ref{using} list must provide three entries
+instead of two.
+
+The `plot` options @ref{thru} and @ref{smooth} are not available for `splot`, but
+@ref{cntrparam} and @ref{dgrid3d} provide limited smoothing capabilities.
+
+Data file organization is essentially the same as for `plot`, except that
+each point is an (x,y,z) triple.  If only a single value is provided, it
+will be used for z, the datablock number will be used for y, and the index
+of the data point in the datablock will be used for x.  If two or four values
+are provided, `gnuplot` uses the last value for calculating the color in
+pm3d plots.  Three values are interpreted as an (x,y,z) triple.  Additional
+values are generally used as errors, which can be used by @ref{fit}.
+
+Single blank records separate datablocks in a `splot` datafile; `splot`
+treats datablocks as the equivalent of function y-isolines.  No line will
+join points separated by a blank record.  If all datablocks contain the same
+number of points, `gnuplot` will draw cross-isolines between datablocks,
+connecting corresponding points.  This is termed "grid data", and is required
+for drawing a surface, for contouring (@ref{contour}) and hidden-line removal
+(@ref{hidden3d}). See also `splot grid_data`.
+
+It is no longer necessary to specify `parametric` mode for three-column
+`splot`s.
+
+@menu
+* binary_matrix::               
+* example_datafile_::           
+* matrix_ascii::                
+* matrix::                      
+@end menu
+
+@node binary_matrix, example_datafile_, data-file, data-file
+@subsubsection binary matrix
+
+@c ?commands plot datafile binary matrix
+@c ?commands splot datafile binary matrix
+@c ?plot datafile matrix binary
+@c ?splot datafile matrix binary
+@c ?plot binary matrix
+@c ?splot binary matrix
+@c ?plot matrix binary
+@c ?splot matrix binary
+@c ?matrix binary
+@c ?binary matrix
+@cindex gpbin
+
+Gnuplot can read matrix binary files by use of the option `binary` appearing
+without keyword qualifications unique to general binary, i.e., `array`,
+`record`, `format`, or `filetype`.  Other general binary keywords for
+translation should also apply to matrix binary.  (See `binary general` for
+more details.)
+
+In previous versions, `gnuplot` dynamically detected binary data files.  It
+is now necessary to specify the keyword `binary` directly after the filename.
+
+Single precision floats are stored in a binary file as follows:
+
+@example
+      <N+1>  <y0>   <y1>   <y2>  ...  <yN>
+       <x0> <z0,0> <z0,1> <z0,2> ... <z0,N>
+       <x1> <z1,0> <z1,1> <z1,2> ... <z1,N>
+        :      :      :      :   ...    :
+
+@end example
+
+which are converted into triplets:
+@example
+      <x0> <y0> <z0,0>
+      <x0> <y1> <z0,1>
+      <x0> <y2> <z0,2>
+       :    :     :
+      <x0> <yN> <z0,N>
+
+@end example
+
+@example
+      <x1> <y0> <z1,0>
+      <x1> <y1> <z1,1>
+       :    :     :
+
+@end example
+
+These triplets are then converted into `gnuplot` iso-curves and then
+`gnuplot` proceeds in the usual manner to do the rest of the plotting.
+
+A collection of matrix and vector manipulation routines (in C) is provided
+in `binary.c`.  The routine to write binary data is
+
+@example
+      int fwrite_matrix(file,m,nrl,nrl,ncl,nch,row_title,column_title)
+
+@end example
+
+An example of using these routines is provided in the file `bf_test.c`, which
+generates binary files for the demo file `demo/binary.dem`.
+
+The @ref{index} keyword is not supported, since the file format allows only one
+surface per file.  The @ref{every} and @ref{using} filters are supported.  @ref{using}
+operates as if the data were read in the above triplet form.
+
+See also `binary general` and
+
+@uref{http://www.gnuplot.info/demo/binary.html,Binary File Splot Demo.
+}
+
+@node example_datafile_, matrix_ascii, binary_matrix, data-file
+@subsubsection example datafile
+
+@c ?commands splot datafile example
+@c ?splot datafile example
+@c ?splot example
+A simple example of plotting a 3-d data file is
+
+@example
+      splot 'datafile.dat'
+
+@end example
+
+where the file "datafile.dat" might contain:
+
+@example
+      # The valley of the Gnu.
+         0 0 10
+         0 1 10
+         0 2 10
+
+@end example
+
+@example
+         1 0 10
+         1 1 5
+         1 2 10
+
+@end example
+
+@example
+         2 0 10
+         2 1 1
+         2 2 10
+
+@end example
+
+@example
+         3 0 10
+         3 1 0
+         3 2 10
+
+@end example
+
+Note that "datafile.dat" defines a 4 by 3 grid ( 4 rows of 3 points each ).
+Rows (datablocks) are separated by blank records.
+
+@c ^ <img align=bottom src="http://www.gnuplot.info/doc/splot.gif" alt="[splot.gif]" width=640 height=480>
+Note also that the x value is held constant within each dataline.  If you
+instead keep y constant, and plot with hidden-line removal enabled, you will
+find that the surface is drawn 'inside-out'.
+
+Actually for grid data it is not necessary to keep the x values constant
+within a datablock, nor is it necessary to keep the same sequence of y
+values.  `gnuplot` requires only that the number of points be the same for
+each datablock.  However since the surface mesh, from which contours are
+derived, connects sequentially corresponding points, the effect of an
+irregular grid on a surface plot is unpredictable and should be examined
+on a case-by-case basis.
+
+@node matrix_ascii, matrix, example_datafile_, data-file
+@subsubsection matrix_ascii
+
+@c ?commands plot datafile matrix ascii
+@c ?commands splot datafile matrix ascii
+@c ?plot datafile matrix ascii
+@c ?splot datafile matrix ascii
+@c ?plot matrix ascii
+@c ?splot matrix ascii
+@c ?data-file matrix ascii
+@c ?datafile matrix ascii
+@c ?matrix ascii
+The `matrix` keyword (without a sequent `binary` keyword) in
+@example
+    @{s@}plot 'a.dat' matrix
+@end example
+
+indicates that data are stored in an ascii numbers matrix format.
+
+The z-values are read in a row at a time, i. e.,
+@example
+    z11 z12 z13 z14 ...
+    z21 z22 z23 z24 ...
+    z31 z32 z33 z34 ...
+@end example
+
+and so forth.
+
+In 3D, the x- and y-indices of the matrix surface plot correspond to column
+and row indices of the matrix, respectively, being enumerated from 0. You can
+rescale or transform the axes as usual for a data file with three columns
+by means of x=$1, y=$2, z=$3. For example
+@example
+    splot 'a.dat' matrix using (1+$1/100):(1+$2*10):3
+
+@end example
+
+A blank line or comment line ends the matrix, and starts a new surface mesh.
+You can select among the meshes inside a file by the @ref{index} option to the
+`splot` command, as usual.
+
+See `matrix` for examples of plotting rows and columns of the matrix in
+a 2D plot.
+
+@node matrix,  , matrix_ascii, data-file
+@subsubsection matrix
+
+@c ?commands plot datafile matrix
+@c ?commands splot datafile matrix
+@c ?plot datafile matrix
+@c ?splot datafile matrix
+@c ?plot matrix
+@c ?splot matrix
+@c ?data-file matrix
+@c ?datafile matrix
+@cindex matrix
+
+Datafile can be in an ascii or binary matrix format. The `matrix` flag
+indicates that the file is ascii, the `binary` or `matrix binary` stands for
+a binary format. For details, see `matrix ascii` and `matrix binary`.
+
+Basic usage in `splot`:
+@example
+    splot 'a.dat' matrix
+    splot 'a.gpbin' @{matrix@} binary
+@end example
+
+Advanced usage in `splot`:
+@example
+    splot 'a.dat' matrix using 1:2:3
+    splot 'a.gpbin' @{matrix@} binary using 1:2:3
+@end example
+
+allows to transform the axes coordinates and the z-data independently.
+
+Usage in `plot`:
+@example
+    plot `a.dat` matrix
+    plot `a.dat` matrix using 1:3
+    plot 'a.gpbin' @{matrix@} binary using 1:3
+@end example
+
+will plot rows of the matrix, while using 2:3 will plot matrix columns, and
+using 1:2 the point coordinates (rather useless). Applying the @ref{every} option
+you can specify explicit rows and columns.
+
+Example -- rescale axes of a matrix in an ascii file:
+@example
+    splot `a.dat` matrix using (1+$1):(1+$2*10):3
+
+@end example
+
+Example -- plot the 3rd row of a matrix in an ascii file:
+@example
+    plot 'a.dat' matrix using 1:3 every 1:999:1:2
+@end example
+
+(rows are enumerated from 0, thus 2 instead of 3).
+
+@node grid_data, splot_overview, data-file, splot
+@subsection grid data
+
+@c ?commands splot grid_data
+@c ?splot grid_data
+@cindex grid_data
+
+The 3D routines are designed for points in a grid format, with one sample,
+datapoint, at each mesh intersection; the datapoints may originate from
+either evaluating a function, see @ref{isosamples}, or reading a datafile,
+see @ref{datafile}.  The term "isoline" is applied to the mesh lines for
+both functions and data.  Note that the mesh need not be rectangular in x
+and y, as it may be parameterized in u and v, see @ref{isosamples}.
+
+However, `gnuplot` does not require that format.  In the case of functions,
+'samples' need not be equal to 'isosamples', i.e., not every x-isoline
+sample need intersect a y-isoline. In the case of data files, if there
+are an equal number of scattered data points in each datablock, then
+"isolines" will connect the points in a datablock, and "cross-isolines"
+will connect the corresponding points in each datablock to generate a
+"surface".  In either case, contour and hidden3d modes may give different
+plots than if the points were in the intended format.  Scattered data can be
+converted to a @{different@} grid format with @ref{dgrid3d}.
+
+The contour code tests for z intensity along a line between a point on a
+y-isoline and the corresponding point in the next y-isoline.  Thus a `splot`
+contour of a surface with samples on the x-isolines that do not coincide with
+a y-isoline intersection will ignore such samples. Try:
+@example
+       set xrange [-pi/2:pi/2]; set yrange [-pi/2:pi/2]
+       set style function lp
+       set contour
+       set isosamples 10,10; set samples 10,10;
+       splot cos(x)*cos(y)
+       set samples 4,10; replot
+       set samples 10,4; replot
+
+@end example
+
+
+@node splot_overview,  , grid_data, splot
+@subsection splot overview
+
+@c ?commands splot overview
+@c ?splot overview
+`splot` can display a surface as a collection of points, or by connecting
+those points.  As with `plot`, the points may be read from a data file or
+result from evaluation of a function at specified intervals, see
+@ref{isosamples}.  The surface may be approximated by connecting the points
+with straight line segments, see @ref{surface}, in which case the surface
+can be made opaque with `set hidden3d.`  The orientation from which the 3d
+surface is viewed can be changed with @ref{view}.
+
+Additionally, for points in a grid format, `splot` can interpolate points
+having a common amplitude (see @ref{contour}) and can then connect those
+new points to display contour lines, either directly with straight-line
+segments or smoothed lines (see @ref{cntrparam}).  Functions are already
+evaluated in a grid format, determined by @ref{isosamples} and @ref{samples},
+while file data must either be in a grid format, as described in @ref{data-file},
+or be used to generate a grid (see @ref{dgrid3d}).
+
+Contour lines may be displayed either on the surface or projected onto the
+base.  The base projections of the contour lines may be written to a
+file, and then read with `plot`, to take advantage of `plot`'s additional
+formatting capabilities.
+
+@node system_, test, splot, Commands
+@section system
+
+@c ?commands system
+@cindex system
+@cmindex system
+
+
+`system "command"` executes "command" using the standard shell. See @ref{shell}.
+If called as a function, `system("command")` returns the resulting character
+stream from stdout as a string.  One optional trailing newline is ignored.
+
+This can be used to import external functions into gnuplot scripts:
+
+@example
+      f(x) = real(system(sprintf("somecommand %f", x)))
+
+@end example
+
+@node test, undefine, system_, Commands
+@section test
+
+@c ?commands test
+@c ?test palette
+@cindex test
+@cmindex test
+
+
+This command graphically tests or presents terminal and palette capabilities.
+
+Syntax:
+@example
+      test @{terminal | palette [rgb|rbg|grb|gbr|brg|bgr]@}
+
+@end example
+
+@ref{test} or @ref{terminal} creates a display of line and point styles and other
+useful things appropriate for and supported by the @ref{terminal} you are just
+using.
+
+@ref{palette} draws graphically profiles R(z),G(z),B(z), where 0<=z<=1, as
+calculated by the current color @ref{palette}. In other words, it is a beautiful
+plot you would have to do yourself with the result of `show palette palette 256 float`.
+The optional parameter, a permutation of letters rgb, determines the sequence of
+r,g,b profiles drawn one after the other --- try this yourself for `set palette
+gray`. The default sequence is rgb.
+
+@node undefine, unset, test, Commands
+@section undefine
+
+@c ?commands undefine
+@cindex undefine
+@cmindex undefine
+
+
+Clear one or more previously defined user variables.  This is useful in order
+to reset the state of a script containing an initialization test.
+
+Example:
+
+@example
+      undefine foo foo1 foo2
+      if (!exists("foo")) load "initialize.gp"
+
+@end example
+
+
+@node unset, update, undefine, Commands
+@section unset
+
+@c ?commands unset
+@cindex unset
+@cmindex unset
+
+
+Options set using the `set` command may be returned to their default state by
+issuing the corresponding @ref{unset} command.
+
+Example:
+@example
+      set xtics mirror rotate by -45 0,10,100
+      ...
+      unset xtics
+
+@end example
+
+
+@node update,  , unset, Commands
+@section update
+
+@c ?commands update
+@cindex update
+@cmindex update
+
+
+This command writes the current values of the fit parameters into the given
+file, formatted as an initial-value file (as described in the @ref{fit}section).
+This is useful for saving the current values for later use or for restarting
+a converged or stopped fit.
+
+Syntax:
+@example
+      update <filename> @{<filename>@}
+
+@end example
+
+If a second filename is supplied, the updated values are written to this
+file, and the original parameter file is left unmodified.
+
+Otherwise, if the file already exists, `gnuplot` first renames it by
+appending `.old` and then opens a new file.  That is, "`update 'fred'`"
+behaves the same as "`!rename fred fred.old; update 'fred.old' 'fred'`".
+[On DOS and other systems that use the twelve-character "filename.ext"
+naming convention, "ext" will be "`old`" and "filename" will be related
+(hopefully recognizably) to the initial name.  Renaming is not done at all
+on VMS systems, since they use file-versioning.]
+
+Please see @ref{fit} for more information.
+
+@node Terminal_types, Graphical_User_Interfaces, Commands, Top
+@chapter Terminal types
+
+@c ^ <h2> Terminal Types </h2>
+
+@menu
+* terminal_::                   
+@end menu
+
+@node terminal_,  , Terminal_types, Terminal_types
+@section terminal
+
+@cindex terminal
+@opindex terminal
+
+
+@cindex term
+
+Gnuplot supports a large number of output formats. These are selected by
+choosing an appropriate terminal type, possibly with additional modifying
+options. See @ref{terminal}.
+
+This document may describe terminal types that are not available to you
+because they were not configured or installed on your system. To see a list of
+terminals available on a particular gnuplot installation, type 'set terminal'
+with no modifiers.
+@@c <3 -- all terminal stuff is pulled from the .trm files
+
+@menu
+* aed767::                      
+* aifm::                        
+* amiga::                       
+* apollo::                      
+* aqua::                        
+* atari_ST_(via_AES)::          
+* atari_ST_(via_VDI)::          
+* be::                          
+* cgi::                         
+* cgm::                         
+* corel::                       
+* debug::                       
+* svga::                        
+* dumb::                        
+* dxf::                         
+* dxy800a::                     
+* eepic::                       
+* emf::                         
+* emxvga::                      
+* epson-180dpi::                
+* excl::                        
+* hercules::                    
+* fig::                         
+* png::                         
+* ggi::                         
+* Gnugraph(GNU_plotutils)::     
+* gpic::                        
+* gpic_::                       
+* gpr::                         
+* grass::                       
+* hp2623a::                     
+* hp2648::                      
+* hp500c::                      
+* hpgl::                        
+* hpljii::                      
+* hppj::                        
+* imagen::                      
+* iris4d::                      
+* kyo::                         
+* latex::                       
+* linux::                       
+* linux_::                      
+* macintosh::                   
+* mf::                          
+* mp::                          
+* mgr::                         
+* mif::                         
+* mtos::                        
+* next::                        
+* Openstep_(next)::             
+* pbm::                         
+* dospc::                       
+* pdf::                         
+* pstricks::                    
+* qms::                         
+* regis::                       
+* regis_::                      
+* rgip::                        
+* sun::                         
+* svg::                         
+* tek410x::                     
+* tek410x_::                    
+* tek40::                       
+* texdraw::                     
+* tgif::                        
+* tgif_::                       
+* tkcanvas::                    
+* tpic::                        
+* unixpc::                      
+* unixplot::                    
+* vx384::                       
+* vgagl::                       
+* VWS::                         
+* windows::                     
+* x11::                         
+* x11_::                        
+* xlib::                        
+* xlib_::                       
+@end menu
+
+@node aed767, aifm, terminal_, terminal_
+@subsubsection aed767
+
+@c ?commands set terminal aed767
+@c ?set terminal aed767
+@c ?set term aed767
+@c ?terminal aed767
+@c ?term aed767
+@cindex aed767
+@tmindex aed767
+
+
+@c ?commands set terminal aed512
+@c ?set terminal aed512
+@c ?set term aed512
+@c ?terminal aed512
+@c ?term aed512
+@cindex aed512
+@tmindex aed512
+
+
+The `aed512` and `aed767` terminal drivers support AED graphics terminals.
+The two drivers differ only in their horizontal ranges, which are 512 and
+768 pixels, respectively.  Their vertical range is 575 pixels.  There are
+no options for these drivers."
+
+@node aifm, amiga, aed767, terminal_
+@subsubsection aifm
+
+@c ?commands set terminal aifm
+@c ?set terminal aifm
+@c ?set term aifm
+@c ?terminal aifm
+@c ?term aifm
+@cindex aifm
+
+
+NOTE: this terminal driver is outdated. Since Adobe Illustrator understands
+PostScript level 1 directly, you should use `set terminal post level1`
+instead.
+
+Several options may be set in `aifm`---the Adobe Illustrator 3.0+ driver.
+
+Syntax:
+@example
+      set terminal aifm @{<color>@} @{"<fontname>"@} @{<fontsize>@}
+
+@end example
+
+<color> is either `color` or `monochrome`; "<fontname>" is the name of a
+valid PostScript font; <fontsize> is the size of the font in PostScript
+points, before scaling by the @ref{size} command.  Selecting `default` sets
+all options to their default values: `monochrome`, "Times-Roman", and 14pt.
+
+Since AI does not really support multiple pages, multiple graphs will be
+drawn directly on top of one another.  However, each graph will be grouped
+individually, making it easy to separate them inside AI (just pick them up
+and move them).
+
+Examples:
+@example
+      set term aifm
+      set term aifm 22
+      set size 0.7,1.4; set term aifm color "Times-Roman" 14"
+
+@end example
+
+@node amiga, apollo, aifm, terminal_
+@subsubsection amiga
+
+@c ?commands set terminal amiga
+@c ?set terminal amiga
+@c ?set term amiga
+@c ?terminal amiga
+@c ?term amiga
+@cindex amiga
+@tmindex amiga
+
+
+The `amiga` terminal, for Commodore Amiga computers, allows the user to
+plot either to a screen (default), or, if Kickstart 3.0 or higher is
+installed, to a window on the current public screen. The font and its size
+can also be selected.
+
+Syntax:
+@example
+      set terminal amiga @{screen | window@} @{"<fontname>"@} @{<fontsize>@}
+
+@end example
+
+The default font is 8-point "topaz".
+
+The screen option uses a virtual screen, so it is possible that the graph
+will be larger than the screen."
+
+@node apollo, aqua, amiga, terminal_
+@subsubsection apollo
+
+@c ?commands set terminal apollo
+@c ?set terminal apollo
+@c ?set term apollo
+@c ?terminal apollo
+@c ?term apollo
+@cindex apollo
+@tmindex apollo
+
+
+The `apollo` terminal driver supports the Apollo Graphics Primitive Resource
+with rescaling after window resizing.  It has no options.
+
+If a fixed-size window is desired, the `gpr` terminal may be used instead."
+
+@node aqua, atari_ST_(via_AES), apollo, terminal_
+@subsubsection aqua
+
+@c ?commands set terminal aqua
+@c ?set terminal aqua
+@c ?set term aqua
+@c ?terminal aqua
+@c ?term aqua
+@cindex aqua
+
+@cindex Aqua
+
+This terminal relies on AquaTerm.app for display on Mac OS X.
+
+Syntax:
+@example
+      set terminal aqua @{<n>@} @{title "<wintitle>"@} @{size <x> <y>@}
+                        @{font "<fontname>@{,<fontsize>@}"@}
+                        @{@{no@}enhanced@} @{solid|dashed@} @{dl <dashlength>@}@}
+
+@end example
+
+where <n> is the number of the window to draw in (default is 0),
+<wintitle> is the name shown in the title bar (default "Figure <n>"),
+<x> <y> is the size of the plot (default is 846x594 pt = 11.75x8.25 in).
+
+Use <fontname> to specify the font to use (default is "Times-Roman"),
+and <fontsize> to specify the font size (default is 14.0 pt). The old syntax
+@{fname "<fontname>"@} @{fsize <fontsize>@} is still supported.
+
+The aqua terminal supports enhanced text mode (see `enhanced`), except for
+overprint. Font support is limited to the fonts available on the system.
+Character encoding can be selected by @ref{encoding} and currently supports
+iso_latin_1, iso_latin_2, cp1250, and default which equals UTF8.
+
+Lines can be drawn either solid or dashed, (default is solid) and the dash
+spacing can be modified by <dashlength> which is a multiplier > 0.
+
+
+@node atari_ST_(via_AES), atari_ST_(via_VDI), aqua, terminal_
+@subsubsection atari ST (via AES)
+
+@c ?commands set terminal atari
+@c ?set terminal atari
+@c ?set term atari
+@c ?terminal atari
+@c ?term atari
+@cindex atari
+@tmindex atari
+
+
+The `atari` terminal has options to set the character size and the screen
+colors.
+
+Syntax:
+@example
+      set terminal atari @{<fontsize>@} @{<col0> <col1> ... <col15>@}
+
+@end example
+
+The character size must appear if any colors are to be specified.  Each of
+the (up to 16) colors is given as a three-digit hex number, where the digits
+represent RED, GREEN and BLUE (in that order).  The range of 0--15 is scaled
+to whatever color range the screen actually has.  On a normal ST screen, odd
+and even intensities are the same.
+
+Examples:
+@example
+      set terminal atari 4    # use small (6x6) font
+      set terminal atari 6 0  # set monochrome screen to white on black
+      set terminal atari 13 0 fff f00 f0 f ff f0f
+                 # set first seven colors to black, white, red, green,
+                 # blue, cyan, and purple and use large font (8x16).
+
+@end example
+
+Additionally, if an environment variable GNUCOLORS exists, its contents are
+interpreted as an options string, but an explicit terminal option takes
+precedence."
+
+@node atari_ST_(via_VDI), be, atari_ST_(via_AES), terminal_
+@subsubsection atari ST (via VDI)
+
+@c ?commands set terminal vdi
+@c ?set terminal vdi
+@c ?set term vdi
+@c ?terminal vdi
+@c ?term vdi
+@cindex vdi
+@tmindex vdi
+
+
+The `vdi` terminal is the same as the `atari` terminal, except that it sends
+output to the screen via the VDI and not into AES-Windows.
+
+The `vdi` terminal has options to set the character size and the screen
+colors.
+
+Syntax:
+@example
+      set terminal vdi @{<fontsize>@} @{<col0> <col1> ... <col15>@}
+
+@end example
+
+The character size must appear if any colors are to be specified.  Each of
+the (up to 16) colors is given as a three-digit hex number, where the digits
+represent RED, GREEN and BLUE (in that order).  The range of 0--15 is scaled
+to whatever color range the screen actually has.  On a normal ST screen, odd
+and even intensities are the same.
+
+Examples:
+@example
+      set terminal vdi 4    # use small (6x6) font
+      set terminal vdi 6 0  # set monochrome screen to white on black
+      set terminal vdi 13 0 fff f00 f0 f ff f0f
+                 # set first seven colors to black, white, red, green,
+                 # blue, cyan, and purple and use large font (8x16).
+
+@end example
+
+Additionally, if an environment variable GNUCOLORS exists, its contents are
+interpreted as an options string, but an explicit terminal option takes
+precedence."
+
+@node be, cgi, atari_ST_(via_VDI), terminal_
+@subsubsection be
+
+@c ?commands set terminal be
+@c ?set terminal be
+@c ?set term be
+@c ?terminal be
+@c ?term be
+@cindex be
+
+@cindex BE
+
+`gnuplot` provides the `be` terminal type for use with X servers.  This
+terminal type is set automatically at startup if the `DISPLAY` environment
+variable is set, if the `TERM` environment variable is set to `xterm`, or
+if the `-display` command line option is used.
+
+Syntax:
+@example
+          set terminal be @{reset@} @{<n>@}
+
+@end example
+
+Multiple plot windows are supported: `set terminal be <n>` directs the
+output to plot window number n.  If n>0, the terminal number will be
+appended to the window title and the icon will be labeled `gplt <n>`.
+The active window may distinguished by a change in cursor (from default
+to crosshair.)
+
+Plot windows remain open even when the `gnuplot` driver is changed to a
+different device.  A plot window can be closed by pressing the letter q
+while that window has input focus, or by choosing `close` from a window
+manager menu.  All plot windows can be closed by specifying @ref{reset}, which
+actually terminates the subprocess which maintains the windows (unless
+`-persist` was specified).
+
+Plot windows will automatically be closed at the end of the session
+unless the `-persist` option was given.
+
+The size or aspect ratio of a plot may be changed by resizing the `gnuplot`
+window.
+
+Linewidths and pointsizes may be changed from within `gnuplot` with
+`set linestyle`.
+
+For terminal type `be`, `gnuplot` accepts (when initialized) the standard
+X Toolkit options and resources such as geometry, font, and name from the
+command line arguments or a configuration file.  See the X(1) man page
+(or its equivalent) for a description of such options.
+
+A number of other `gnuplot` options are available for the `be` terminal.
+These may be specified either as command-line options when `gnuplot` is
+invoked or as resources in the configuration file ".Xdefaults".  They are
+set upon initialization and cannot be altered during a `gnuplot` session.
+
+
+@noindent --- COMMAND-LINE_OPTIONS ---
+
+@c ?commands set terminal be command-line-options
+@c ?set terminal be command-line-options
+@c ?set term be command-line-options
+@c ?be command-line-options
+In addition to the X Toolkit options, the following options may be specified
+on the command line when starting `gnuplot` or as resources in your
+".Xdefaults" file:
+
+@example
+ `-mono`        forces monochrome rendering on color displays.
+ `-gray`        requests grayscale rendering on grayscale or color displays.
+                        (Grayscale displays receive monochrome rendering by default.)
+ `-clear`   requests that the window be cleared momentarily before a
+                        new plot is displayed.
+ `-raise`   raises plot window after each plot
+ `-noraise` does not raise plot window after each plot
+ `-persist` plots windows survive after main gnuplot program exits
+
+@end example
+
+The options are shown above in their command-line syntax.  When entered as
+resources in ".Xdefaults", they require a different syntax.
+
+Example:
+@example
+          gnuplot*gray: on
+
+@end example
+
+`gnuplot` also provides a command line option (`-pointsize <v>`) and a
+resource, `gnuplot*pointsize: <v>`, to control the size of points plotted
+with the `points` plotting style.  The value `v` is a real number (greater
+than 0 and less than or equal to ten) used as a scaling factor for point
+sizes.  For example, `-pointsize 2` uses points twice the default size, and
+`-pointsize 0.5` uses points half the normal size.
+
+
+@noindent --- MONOCHROME_OPTIONS ---
+
+@c ?commands set terminal be monochrome_options
+@c ?set terminal be monochrome_options
+@c ?set term be monochrome_options
+@c ?be monochrome_options
+For monochrome displays, `gnuplot` does not honor foreground or background
+colors.  The default is black-on-white.  `-rv` or `gnuplot*reverseVideo: on`
+requests white-on-black.
+
+
+
+@noindent --- COLOR_RESOURCES ---
+
+@c ?commands set terminal be color_resources
+@c ?set terminal be color_resources
+@c ?set term be color_resources
+@c ?be color_resources
+For color displays, `gnuplot` honors the following resources (shown here
+with their default values) or the greyscale resources.  The values may be
+color names as listed in the BE rgb.txt file on your system, hexadecimal
+RGB color specifications (see BE documentation), or a color name followed
+by a comma and an `intensity` value from 0 to 1.  For example, `blue, 0.5`
+means a half intensity blue.
+
+@example
+ gnuplot*background:  white
+ gnuplot*textColor:   black
+ gnuplot*borderColor: black
+ gnuplot*axisColor:   black
+ gnuplot*line1Color:  red
+ gnuplot*line2Color:  green
+ gnuplot*line3Color:  blue
+ gnuplot*line4Color:  magenta
+ gnuplot*line5Color:  cyan
+ gnuplot*line6Color:  sienna
+ gnuplot*line7Color:  orange
+ gnuplot*line8Color:  coral
+
+@end example
+
+
+The command-line syntax for these is, for example,
+
+Example:
+@example
+          gnuplot -background coral
+
+@end example
+
+
+
+@noindent --- GRAYSCALE_RESOURCES ---
+
+@c ?commands set terminal be grayscale_resources
+@c ?set terminal be grayscale_resources
+@c ?set term be grayscale_resources
+@c ?be grayscale_resources
+When `-gray` is selected, `gnuplot` honors the following resources for
+grayscale or color displays (shown here with their default values).  Note
+that the default background is black.
+
+@example
+ gnuplot*background: black
+ gnuplot*textGray:   white
+ gnuplot*borderGray: gray50
+ gnuplot*axisGray:   gray50
+ gnuplot*line1Gray:  gray100
+ gnuplot*line2Gray:  gray60
+ gnuplot*line3Gray:  gray80
+ gnuplot*line4Gray:  gray40
+ gnuplot*line5Gray:  gray90
+ gnuplot*line6Gray:  gray50
+ gnuplot*line7Gray:  gray70
+ gnuplot*line8Gray:  gray30
+
+@end example
+
+
+
+
+@noindent --- LINE_RESOURCES ---
+
+@c ?commands set terminal be line_resources
+@c ?set terminal be line_resources
+@c ?set term be line_resources
+@c ?be line_resources
+`gnuplot` honors the following resources for setting the width (in pixels) of
+plot lines (shown here with their default values.)  0 or 1 means a minimal
+width line of 1 pixel width.  A value of 2 or 3 may improve the appearance of
+some plots.
+
+@example
+ gnuplot*borderWidth: 2
+ gnuplot*axisWidth:   0
+ gnuplot*line1Width:  0
+ gnuplot*line2Width:  0
+ gnuplot*line3Width:  0
+ gnuplot*line4Width:  0
+ gnuplot*line5Width:  0
+ gnuplot*line6Width:  0
+ gnuplot*line7Width:  0
+ gnuplot*line8Width:  0
+
+@end example
+
+
+`gnuplot` honors the following resources for setting the dash style used for
+plotting lines.  0 means a solid line.  A two-digit number `jk` (`j` and `k`
+are >= 1  and <= 9) means a dashed line with a repeated pattern of `j` pixels
+on followed by `k` pixels off.  For example, '16' is a "dotted" line with one
+pixel on followed by six pixels off.  More elaborate on/off patterns can be
+specified with a four-digit value.  For example, '4441' is four on, four off,
+four on, one off.  The default values shown below are for monochrome displays
+or monochrome rendering on color or grayscale displays.  For color displays,
+the default for each is 0 (solid line) except for `axisDashes` which defaults
+to a '16' dotted line.
+
+@example
+ gnuplot*borderDashes:   0
+ gnuplot*axisDashes:        16
+ gnuplot*line1Dashes:        0
+ gnuplot*line2Dashes:   42
+ gnuplot*line3Dashes:   13
+ gnuplot*line4Dashes:   44
+ gnuplot*line5Dashes:   15
+ gnuplot*line6Dashes: 4441
+ gnuplot*line7Dashes:   42
+ gnuplot*line8Dashes:   13
+
+@end example
+
+
+@node cgi, cgm, be, terminal_
+@subsubsection cgi
+
+@c ?commands set terminal cgi
+@c ?set terminal cgi
+@c ?set term cgi
+@c ?terminal cgi
+@c ?term cgi
+@cindex cgi
+@tmindex cgi
+
+
+@c ?commands set terminal hcgi
+@c ?set terminal hcgi
+@c ?set term hcgi
+@c ?terminal hcgi
+@c ?term hcgi
+@cindex hcgi
+@tmindex hcgi
+
+
+The `cgi` and `hcgi` terminal drivers support SCO CGI drivers.  `hcgi` is for
+printers; the environment variable CGIPRNT must be set.  `cgi` may be used
+for either a display or hardcopy; if the environment variable CGIDISP is set,
+then that display is used.  Otherwise CGIPRNT is used.
+
+These terminals have no options."
+
+@node cgm, corel, cgi, terminal_
+@subsubsection cgm
+
+@c ?commands set terminal cgm
+@c ?set terminal cgm
+@c ?set term cgm
+@c ?terminal cgm
+@c ?term cgm
+@cindex cgm
+@tmindex cgm
+
+
+The `cgm` terminal generates a Computer Graphics Metafile, Version 1. 
+This file format is a subset of the ANSI X3.122-1986 standard entitled
+"Computer Graphics - Metafile for the Storage and Transfer of Picture
+Description Information".
+
+Syntax:
+@example
+      set terminal cgm @{color | monochrome@} @{solid | dashed@} @{@{no@}rotate@}
+                       @{<mode>@} @{width <plot_width>@} @{linewidth <line_width>@}
+                       @{font "<fontname>,<fontsize>"@}
+                       @{<color0> <color1> <color2> ...@}
+
+@end example
+
+`solid` draws all curves with solid lines, overriding any dashed patterns;
+<mode> is `landscape`, `portrait`, or `default`;
+<plot_width> is the assumed width of the plot in points; 
+<line_width> is the line width in points (default 1); 
+<fontname> is the name of a font (see list of fonts below)
+<fontsize> is the size of the font in points (default 12).
+
+The first six options can be in any order.  Selecting `default` sets all
+options to their default values.
+
+Each color must be of the form 'xrrggbb', where x is the literal
+character 'x' and 'rrggbb' are the red, green and blue components in
+hex.  For example, 'x00ff00' is green.  The background color is set
+first, then the plotting colors.
+
+Examples:
+@example
+      set terminal cgm landscape color rotate dashed width 432 \\
+                     linewidth 1  'Helvetica Bold' 12       # defaults
+      set terminal cgm linewidth 2  14  # wider lines & larger font
+      set terminal cgm portrait "Times Italic" 12
+      set terminal cgm color solid      # no pesky dashes!
+
+@end example
+
+
+
+@noindent --- CGM FONTS ---
+
+@c ?commands set terminal cgm font
+@c ?set terminal cgm font
+@c ?set term cgm font
+@c ?cgm font
+The first part of a Computer Graphics Metafile, the metafile description,
+includes a font table.  In the picture body, a font is designated by an
+index into this table.  By default, this terminal generates a table with
+the following 35 fonts, plus six more with `italic` replaced by
+`oblique`, or vice-versa (since at least the Microsoft Office and Corel
+Draw CGM import filters treat `italic` and `oblique` as equivalent):
+
+@example
+      Helvetica
+      Helvetica Bold
+      Helvetica Oblique
+      Helvetica Bold Oblique
+      Times Roman
+      Times Bold
+      Times Italic
+      Times Bold Italic
+      Courier
+      Courier Bold
+      Courier Oblique
+      Courier Bold Oblique
+      Symbol
+      Hershey/Cartographic_Roman
+      Hershey/Cartographic_Greek
+      Hershey/Simplex_Roman
+      Hershey/Simplex_Greek
+      Hershey/Simplex_Script
+      Hershey/Complex_Roman
+      Hershey/Complex_Greek
+      Hershey/Complex_Script
+      Hershey/Complex_Italic
+      Hershey/Complex_Cyrillic
+      Hershey/Duplex_Roman
+      Hershey/Triplex_Roman
+      Hershey/Triplex_Italic
+      Hershey/Gothic_German
+      Hershey/Gothic_English
+      Hershey/Gothic_Italian
+      Hershey/Symbol_Set_1
+      Hershey/Symbol_Set_2
+      Hershey/Symbol_Math
+      ZapfDingbats
+      Script
+      15
+
+@end example
+
+
+The first thirteen of these fonts are required for WebCGM.  The
+Microsoft Office CGM import filter implements the 13 standard fonts
+listed above, and also 'ZapfDingbats' and 'Script'.  However, the
+script font may only be accessed under the name '15'.  For more on
+Microsoft import filter font substitutions, check its help file which
+you may find here:
+@example
+  C:\\Program Files\\Microsoft Office\\Office\\Cgmimp32.hlp
+@end example
+
+and/or its configuration file, which you may find here:
+@example
+  C:\\Program Files\\Common Files\\Microsoft Shared\\Grphflt\\Cgmimp32.cfg
+
+@end example
+
+In the `set term` command, you may specify a font name which does not
+appear in the default font table.  In that case, a new font table is
+constructed with the specified font as its first entry. You must ensure
+that the spelling, capitalization, and spacing of the name are
+appropriate for the application that will read the CGM file.  (Gnuplot
+and any MIL-D-28003A compliant application ignore case in font names.)
+If you need to add several new fonts, use several `set term` commands.
+
+Example:
+@example
+      set terminal cgm 'Old English'
+      set terminal cgm 'Tengwar'
+      set terminal cgm 'Arabic'
+      set output 'myfile.cgm'
+      plot ...
+      set output
+
+@end example
+
+You cannot introduce a new font in a @ref{label} command.
+
+
+
+@noindent --- CGM FONTSIZE ---
+
+@c ?commands set terminal cgm fontsize
+@c ?set terminal cgm fontsize
+@c ?set term cgm fontsize
+@c ?cgm fontsize
+Fonts are scaled assuming the page is 6 inches wide.  If the @ref{size}
+command is used to change the aspect ratio of the page or the CGM file
+is converted to a different width, the resulting font sizes will be
+scaled up or down accordingly.  To change the assumed width, use the
+`width` option.
+
+
+
+@noindent --- CGM LINEWIDTH ---
+
+@c ?commands set terminal cgm linewidth
+@c ?set terminal cgm linewidth
+@c ?set term cgm linewidth
+@c ?cgm linewidth
+The `linewidth` option sets the width of lines in pt.  The default width
+is 1 pt.  Scaling is affected by the actual width of the page, as
+discussed under the `fontsize` and `width` options.
+
+
+
+@noindent --- CGM ROTATE ---
+
+@c ?commands set terminal cgm rotate
+@c ?set terminal cgm rotate
+@c ?set term cgm rotate
+@c ?cgm rotate
+The `norotate` option may be used to disable text rotation.  For
+example, the CGM input filter for Word for Windows 6.0c can accept
+rotated text, but the DRAW editor within Word cannot.  If you edit a
+graph (for example, to label a curve), all rotated text is restored to
+horizontal.  The Y axis label will then extend beyond the clip boundary.
+With `norotate`, the Y axis label starts in a less attractive location,
+but the page can be edited without damage.  The `rotate` option confirms
+the default behavior.
+
+
+
+@noindent --- CGM SOLID ---
+
+@c ?set terminal cgm solid
+@c ?set term cgm solid
+@c ?cgm solid
+The `solid` option may be used to disable dashed line styles in the
+plots.  This is useful when color is enabled and the dashing of the
+lines detracts from the appearance of the plot. The `dashed` option
+confirms the default behavior, which gives a different dash pattern to
+each line type.
+
+
+
+@noindent --- CGM SIZE ---
+
+@c ?commands set terminal cgm size
+@c ?set terminal cgm size
+@c ?set term cgm size
+@c ?cgm size
+Default size of a CGM plot is 32599 units wide and 23457 units high for
+landscape, or 23457 units wide by 32599 units high for portrait.
+
+
+
+@noindent --- CGM WIDTH ---
+
+@c ?commands set terminal cgm width
+@c ?set terminal cgm width
+@c ?set term cgm width
+@c ?cgm width
+All distances in the CGM file are in abstract units.  The application
+that reads the file determines the size of the final plot.  By default,
+the width of the final plot is assumed to be 6 inches (15.24 cm).  This
+distance is used to calculate the correct font size, and may be changed
+with the `width` option.  The keyword should be followed by the width in
+points.  (Here, a point is 1/72 inch, as in PostScript.  This unit is
+known as a "big point" in TeX.)  Gnuplot `expressions` can be used to
+convert from other units.
+
+Example:
+@example
+      set terminal cgm width 432            # default
+      set terminal cgm width 6*72           # same as above
+      set terminal cgm width 10/2.54*72     # 10 cm wide
+
+@end example
+
+
+
+@noindent --- CGM NOFONTLIST ---
+
+@c ?commands set terminal cgm nofontlist
+@c ?set terminal cgm nofontlist
+@c ?set term cgm nofontlist
+@c ?cgm nofontlist
+@c ?set terminal cgm winword6
+@c ?set term cgm winword6
+@c ?cgm winword6
+The default font table includes the fonts recommended for WebCGM, which
+are compatible with the Computer Graphics Metafile input filter for
+Microsoft Office and Corel Draw.  Another application might use
+different fonts and/or different font names, which may not be
+documented.  The `nofontlist` (synonym `winword6`) option deletes the font
+table from the CGM file.  In this case, the reading application should
+use a default table.  Gnuplot will still use its own default font table
+to select font indices.  Thus, 'Helvetica' will give you an index of 1,
+which should get you the first entry in your application's default font
+table. 'Helvetica Bold' will give you its second entry, etc.
+
+
+
+@node corel, debug, cgm, terminal_
+@subsubsection corel
+
+@c ?commands set terminal corel
+@c ?set terminal corel
+@c ?set term corel
+@c ?terminal corel
+@c ?term corel
+@cindex corel
+@tmindex corel
+
+
+The `corel` terminal driver supports CorelDraw.
+
+Syntax:
+@example
+      set terminal corel @{  default
+                          | @{monochrome | color
+                               @{"<font>" @{<fontsize> 
+                                  @{<xsize> <ysize> @{<linewidth> @}@}@}@}@}
+
+@end example
+
+where the fontsize and linewidth are specified in points and the sizes in
+inches.  The defaults are monochrome, "SwitzerlandLight", 22, 8.2, 10 and 1.2."
+
+@node debug, svga, corel, terminal_
+@subsubsection debug
+
+@c ?commands set terminal debug
+@c ?set terminal debug
+@c ?set term debug
+@c ?terminal debug
+@c ?term debug
+@cindex debug
+@tmindex debug
+
+
+This terminal is provided to allow for the debugging of `gnuplot`.  It is
+likely to be of use only for users who are modifying the source code."
+
+@node svga, dumb, debug, terminal_
+@subsubsection svga
+
+@c ?commands set terminal svga
+@c ?set terminal svga
+@c ?set term svga
+@c ?terminal svga
+@c ?term svga
+@cindex svga
+@tmindex svga
+
+
+The `svga` terminal driver supports PCs with SVGA graphics.  It can only be
+used if it is compiled with DJGPP.  Its only option is the font.
+
+Syntax:
+@example
+      set terminal svga @{"<fontname>"@}"
+
+@end example
+
+@node dumb, dxf, svga, terminal_
+@subsubsection dumb
+
+@c ?commands set terminal dumb
+@c ?set terminal dumb
+@c ?set term dumb
+@c ?terminal dumb
+@c ?term dumb
+@cindex dumb
+@tmindex dumb
+
+
+The `dumb` terminal driver has an optional size specification and trailing
+linefeed control.
+
+Syntax:
+@example
+      set terminal dumb @{[no]feed@} @{<xsize> <ysize>@}
+                        @{[no]enhanced@}
+
+@end example
+
+where <xsize> and <ysize> set the size of the dumb terminals. Default is
+79 by 24. The last newline is printed only if `feed` is enabled.
+
+Examples:
+@example
+      set term dumb nofeed
+      set term dumb 79 49 # VGA screen---why would anyone do that?"
+
+@end example
+
+@node dxf, dxy800a, dumb, terminal_
+@subsubsection dxf
+
+@c ?commands set terminal dxf
+@c ?set terminal dxf
+@c ?set term dxf
+@c ?terminal dxf
+@c ?term dxf
+@cindex dxf
+@tmindex dxf
+
+
+The `dxf` terminal driver creates pictures that can be imported into AutoCad
+(Release 10.x).  It has no options of its own, but some features of its plots
+may be modified by other means.  The default size is 120x80 AutoCad units,
+which can be changed by @ref{size}.  `dxf` uses seven colors (white, red,
+yellow, green, cyan, blue and magenta), which can be changed only by
+modifying the source file.  If a black-and-white plotting device is used, the
+colors are mapped to differing line thicknesses.  See the description of the
+AutoCad print/plot command."
+
+@node dxy800a, eepic, dxf, terminal_
+@subsubsection dxy800a
+
+@c ?commands set terminal dxy800a
+@c ?set terminal dxy800a
+@c ?set term dxy800a
+@c ?terminal dxy800a
+@c ?term dxy800a
+@cindex dxy800a
+@tmindex dxy800a
+
+
+This terminal driver supports the Roland DXY800A plotter.  It has no options."
+
+@node eepic, emf, dxy800a, terminal_
+@subsubsection eepic
+
+@c ?commands set terminal eepic
+@c ?set terminal eepic
+@c ?set term eepic
+@c ?terminal eepic
+@c ?term eepic
+@cindex eepic
+@tmindex eepic
+
+
+The `eepic` terminal driver supports the extended LaTeX picture environment.
+It is an alternative to the `latex` driver.
+
+The output of this terminal is intended for use with the "eepic.sty" macro
+package for LaTeX.  To use it, you need "eepic.sty", "epic.sty" and a
+printer driver that supports the "tpic" \\specials.  If your printer driver
+doesn't support those \\specials, "eepicemu.sty" will enable you to use some
+of them.
+dvips and dvipdfm do support the "tpic" \\specials.
+
+Syntax:
+@example
+   set terminal eepic @{color, dashed, rotate, small, tiny, default, <fontsize>@}
+
+@end example
+
+Options:
+You can give options in any order you wish.
+'color' causes gnuplot to produce \\color@{...@} commands so that the graphs are
+colored. Using this option, you must include \\usepackage@{color@} in the preambel
+of your latex document.
+'dashed' will allow dashed line types; without this option, only solid lines
+with varying thickness will be used.
+'dashed' and 'color' are mutually exclusive; if 'color' is specified, then 'dashed'
+will be ignored.
+'rotate' will enable true rotated text (by 90 degrees). Otherwise, rotated text
+will be typeset with letters stacked above each other. If you use this option
+you must include \\usepackage@{graphicx@} in the preamble.
+'small' will use \\scriptsize symbols as point markers (Probably does not work
+with TeX, only LaTeX2e). Default is to use the default math size.
+'tiny' uses \\scriptscriptstyle symbols.
+'default' resets all options to their defaults = no color, no dashed lines,
+pseudo-rotated (stacked) text, large point symbols.
+<fontsize> is a number which specifies the font size inside the picture
+environment; the unit is pt (points), i.e., 10 pt equals approx. 3.5 mm.
+If fontsize is not specified, then all text inside the picture will be set
+in \\footnotesize.
+
+Notes:
+Remember to escape the # character (or other chars meaningful to (La-)TeX)
+by \\\\ (2 backslashes).
+It seems that dashed lines become solid lines when the vertices of a plot
+are too close. (I do not know if that is a general problem with the tpic specials,
+or if it is caused by a bug in eepic.sty or dvips/dvipdfm.)
+The default size of an eepic plot is 5x3 inches, which can be scaled 
+by 'set size a,b'.
+Points, among other things, are drawn using the LaTeX commands "\\Diamond",
+"\\Box", etc.  These commands no longer belong to the LaTeX2e core; they are
+included in the latexsym package, which is part of the base distribution and
+thus part of any LaTeX implementation. Please do not forget to use this package.
+Instead of latexsym, you can also include the amssymb package.
+All drivers for LaTeX offer a special way of controlling text positioning:
+If any text string begins with '@{', you also need to include a '@}' at the
+end of the text, and the whole text will be centered both horizontally and
+vertically.  If the text string begins with '[', you need to follow this with
+a position specification (up to two out of t,b,l,r), ']@{', the text itself,
+and finally '@}'.  The text itself may be anything LaTeX can typeset as an
+LR-box.  '\\rule@{@}@{@}'s may help for best positioning.
+
+Examples:
+set term eepic
+@example
+  output graphs as eepic macros inside a picture environment;
+  \\input the resulting file in your LaTeX document.
+@end example
+
+set term eepic color tiny rotate 8
+@example
+  eepic macros with \\color macros, \\scripscriptsize point markers,
+  true rotated text, and all text set with 8pt.
+
+@end example
+
+About label positioning:
+Use gnuplot defaults (mostly sensible, but sometimes not really best):
+@example
+       set title '\\LaTeX\\ -- $ \\gamma $'
+@end example
+
+Force centering both horizontally and vertically:
+@example
+       set label '@{\\LaTeX\\ -- $ \\gamma $@}' at 0,0
+@end example
+
+Specify own positioning (top here):
+@example
+       set xlabel '[t]@{\\LaTeX\\ -- $ \\gamma $@}'
+@end example
+
+The other label -- account for long ticlabels:
+@example
+       set ylabel '[r]@{\\LaTeX\\ -- $ \\gamma $\\rule@{7mm@}@{0pt@}@}'"
+
+@end example
+
+@node emf, emxvga, eepic, terminal_
+@subsubsection emf
+
+@c ?commands set terminal emf
+@c ?set terminal emf
+@c ?set term emf
+@c ?terminal emf
+@c ?term emf
+@cindex emf
+@tmindex emf
+
+
+The `emf` terminal generates an Enhanced Metafile Format file.
+This file format is recognized by many Windows applications.
+
+Syntax:
+@example
+      set terminal emf @{color | monochrome@} @{solid | dashed@}
+                       @{enhanced @{noproportional@}@}
+                       @{linewidth <LW>@} @{dashlength <DL>@} @{size XX,YY@}
+                       @{"<fontname>"@} @{<fontsize>@}    #old syntax
+                       @{font "<fontname>,<fontsize>"@} #new syntax
+
+@end example
+
+In `monochrome` mode successive line types cycle through dash patterns.
+In `color` mode successive line types use successive colors, and only after
+all 8 default colors are exhausted is the dash pattern incremented.
+`solid` draws all curves with solid lines, overriding any dashed patterns;
+`linewidth <factor>` multiplies all line widths by this factor.
+`dashlength <factor>` is useful for thick lines.
+<font> is the name of a font; and 
+`<fontsize>` is the size of the font in points.
+
+The nominal size of the output image defaults to 1024x768 in arbitrary
+units. You may specify a different nominal size using the @ref{size} option.
+
+Enhanced text mode tries to approximate proportional character spacing.
+If you are using a monospaced font, or don't like the approximation, you
+can turn off this correction using the `noproportional` option.
+
+The default settings are `color dashed font "Arial,12" size 1024,768`
+Selecting `default` sets all options to their default values.
+
+Examples:
+@example
+      set terminal emf 'Times Roman Italic' 12
+      set terminal emf color solid    # no pesky dashes!"
+
+@end example
+
+@node emxvga, epson-180dpi, emf, terminal_
+@subsubsection emxvga
+
+@c ?commands set terminal emxvga
+@c ?set terminal emxvga
+@c ?set term emxvga
+@c ?terminal emxvga
+@c ?term emxvga
+@cindex emxvga
+@tmindex emxvga
+
+
+@c ?commands set terminal emxvesa
+@c ?set terminal emxvesa
+@c ?set term emxvesa
+@c ?terminal emxvesa
+@c ?term emxvesa
+@cindex emxvesa
+@tmindex emxvesa
+
+
+@c ?commands set terminal vgal
+@c ?set terminal vgal
+@c ?set term vgal
+@c ?terminal vgal
+@c ?term vgal
+@cindex vgal
+@tmindex vgal
+
+
+The `emxvga`, `emxvesa` and `vgal` terminal drivers support PCs with SVGA,
+vesa SVGA and VGA graphics boards, respectively.  They are intended to be
+compiled with "emx-gcc" under either DOS or OS/2.  They also need VESA and
+SVGAKIT maintained by Johannes Martin (JMARTIN@@GOOFY.ZDV.UNI-MAINZ.DE) with
+additions by David J. Liu (liu@@phri.nyu.edu).
+
+Syntax:
+@example
+      set terminal emxvga
+      set terminal emxvesa @{vesa-mode@}
+      set terminal vgal
+
+@end example
+
+The only option is the vesa mode for `emxvesa`, which defaults to G640x480x256."
+
+@node epson-180dpi, excl, emxvga, terminal_
+@subsubsection epson-180dpi
+
+@c ?commands set terminal epson-180dpi
+@c ?set terminal epson-180dpi
+@c ?set term epson-180dpi
+@c ?terminal epson-180dpi
+@c ?term epson-180dpi
+@cindex epson-180dpi
+@tmindex epson-180dpi
+
+
+@c ?commands set terminal epson-60dpi
+@c ?set terminal epson-60dpi
+@c ?set term epson-60dpi
+@c ?terminal epson-60dpi
+@c ?term epson-60dpi
+@cindex epson-60dpi
+@tmindex epson-60dpi
+
+
+@c ?commands set terminal epson-lx800
+@c ?set terminal epson-lx800
+@c ?set term epson-lx800
+@c ?terminal epson-lx800
+@c ?term epson-lx800
+@cindex epson-lx800
+@tmindex epson-lx800
+
+
+@c ?commands set terminal nec-cp6
+@c ?set terminal nec-cp6
+@c ?set term nec-cp6
+@c ?terminal nec-cp6
+@c ?term nec-cp6
+@cindex nec-cp6
+@tmindex nec-cp6
+
+
+@c ?commands set terminal okidata
+@c ?set terminal okidata
+@c ?set term okidata
+@c ?terminal okidata
+@c ?term okidata
+@cindex okidata
+@tmindex okidata
+
+
+@c ?commands set terminal starc
+@c ?set terminal starc
+@c ?set term starc
+@c ?terminal starc
+@c ?term starc
+@cindex starc
+@tmindex starc
+
+
+@c ?commands set terminal tandy-60dpi
+@c ?set terminal tandy-60dpi
+@c ?set term tandy-60dpi
+@c ?terminal tandy-60dpi
+@c ?term tandy-60dpi
+@cindex tandy-60dpi
+@tmindex tandy-60dpi
+
+
+This driver supports a family of Epson printers and derivatives.
+
+`epson-180dpi` and `epson-60dpi` are drivers for Epson LQ-style 24-pin
+printers with resolutions of 180 and 60 dots per inch, respectively.
+
+`epson-lx800` is a generic 9-pin driver appropriate for printers like the
+Epson LX-800, the Star NL-10 and NX-1000, the PROPRINTER, and so forth.
+
+`nec-cp6` is generic 24-pin driver that can be used for printers like the
+NEC CP6 and the Epson LQ-800.
+
+The `okidata` driver supports the 9-pin OKIDATA 320/321 Standard printers.
+
+The `starc` driver is for the Star Color Printer.
+
+The `tandy-60dpi` driver is for the Tandy DMP-130 series of 9-pin, 60-dpi
+printers.
+
+Only `nec-cp6` has any options.
+
+Syntax:
+@example
+      set terminal nec-cp6 @{monochrome | colour | draft@}
+
+@end example
+
+which defaults to monochrome.
+
+With each of these drivers, a binary copy is required on a PC to print.  Do
+not use @ref{print}---use instead `copy file /b lpt1:`."
+
+@node excl, hercules, epson-180dpi, terminal_
+@subsubsection excl
+
+@c ?commands set terminal excl
+@c ?set terminal excl
+@c ?set term excl
+@c ?terminal excl
+@c ?term excl
+@cindex excl
+@tmindex excl
+
+
+The `excl` terminal driver supports Talaris printers such as the EXCL Laser
+printer and the 1590.  It has no options."
+
+@node hercules, fig, excl, terminal_
+@subsubsection hercules
+
+@c ?commands set terminal hercules
+@c ?set terminal hercules
+@c ?set term hercules
+@c ?terminal hercules
+@c ?term hercules
+@cindex hercules
+@tmindex hercules
+
+
+@c ?commands set terminal egalib
+@c ?set terminal egalib
+@c ?set term egalib
+@c ?terminal egalib
+@c ?term egalib
+@cindex egalib
+@tmindex egalib
+
+
+@c ?commands set terminal egamono
+@c ?set terminal egamono
+@c ?set term egamono
+@c ?terminal egamono
+@c ?term egamono
+@cindex egamono
+@tmindex egamono
+
+
+@c ?commands set terminal vgalib
+@c ?set terminal vgalib
+@c ?set term vgalib
+@c ?terminal vgalib
+@c ?term vgalib
+@cindex vgalib
+@tmindex vgalib
+
+
+@c ?commands set terminal vgamono
+@c ?set terminal vgamono
+@c ?set term vgamono
+@c ?terminal vgamono
+@c ?term vgamono
+@cindex vgamono
+@tmindex vgamono
+
+
+@c ?commands set terminal svgalib
+@c ?set terminal svgalib
+@c ?set term svgalib
+@c ?terminal svgalib
+@c ?term svgalib
+@cindex svgalib
+@tmindex svgalib
+
+
+@c ?commands set terminal ssvgalib
+@c ?set terminal ssvgalib
+@c ?set term ssvgalib
+@c ?terminal ssvgalib
+@c ?term ssvgalib
+@cindex ssvgalib
+@tmindex ssvgalib
+
+
+These drivers supports PC monitors with autodetected graphics boards.  They
+can be used only when compiled with Zortech C/C++.  None have options."
+
+@node fig, png, hercules, terminal_
+@subsubsection fig
+
+@c ?commands set terminal fig
+@c ?set terminal fig
+@c ?set term fig
+@c ?terminal fig
+@c ?term fig
+@cindex fig
+
+@cindex xfig
+
+The `fig` terminal device generates output in the Fig graphics language.
+
+Syntax:
+@example
+      set terminal fig @{monochrome | color@}
+                       @{landscape | portrait@}
+                       @{small | big | size <xsize> <ysize>@}
+                       @{metric | inches@}
+                       @{pointsmax <max_points>@}
+                       @{solid | dashed@}
+                       @{font <fontname>@} @{fontsize <fsize>@}
+                       @{textnormal | @{textspecial texthidden textrigid@}@}
+                       @{@{thickness|linewidth@} <units>@}
+                       @{depth <layer>@}
+                       @{version <number>@}
+
+@end example
+
+`monochrome` and `color` determine whether the picture is black-and-white or
+`color`.  `small` and `big` produce a 5x3 or 8x5 inch graph in the default
+`landscape` mode and 3x5 or 5x8 inches in `portrait` mode.
+@ref{size} sets (overrides) the size of the drawing
+area to <xsize>*<ysize> in units of inches or centimeters depending on the
+`inches` or `metric` setting in effect.
+The latter settings is also used as default units for editing with "xfig".
+
+`pointsmax <max_points>` sets the maximum number of points per polyline.
+
+`solid` inhibits automatic usage of `dash`ed lines when solid linestyles are
+used up, which otherwise occurs.
+
+`fontsize` sets the size of the text font to <fsize> points.  `textnormal`
+resets the text flags and selects postscript fonts, `textspecial` sets the
+text flags for LaTeX specials, `texthidden` sets the hidden flag and
+`textrigid` the rigid flag. 
+
+`depth` sets the default depth layer for all lines and text.  The default
+depth is 10 to leave room for adding material with "xfig" on top of the
+plot.
+
+@ref{version} sets the format version of the generated fig output. Currently
+only versions 3.1 and 3.2 are supported.
+
+`thickness` sets the default line thickness, which is 1 if not specified.
+Overriding the thickness can be achieved by adding a multiple of 100 to the
+`linetype` value for a `plot` command.  In a similar way the `depth`
+of plot elements (with respect to the default depth) can be controlled by
+adding a multiple of 1000 to <linetype>.  The depth is then <layer> +
+<linetype>/1000 and the thickness is (<linetype>%1000)/100 or, if that is
+zero, the default line thickness. `linewidth` is a synonym for `thickness`.
+
+Additional point-plot symbols are also available with the `fig` driver. The
+symbols can be used through `pointtype` values % 100 above 50, with different
+fill intensities controlled by <pointtype> % 5 and outlines in black (for
+<pointtype> % 10 < 5) or in the current color.  Available symbols are
+@example
+        50 - 59:  circles
+        60 - 69:  squares
+        70 - 79:  diamonds
+        80 - 89:  upwards triangles
+        90 - 99:  downwards triangles
+@end example
+
+The size of these symbols is linked to the font size.  The depth of symbols
+is by default one less than the depth for lines to achieve nice error bars.
+If <pointtype> is above 1000, the depth is <layer> + <pointtype>/1000-1.  If
+<pointtype>%1000 is above 100, the fill color is (<pointtype>%1000)/100-1.
+
+Available fill colors are (from 1 to 9): black, blue, green, cyan, red,
+magenta, yellow, white and dark blue (in monochrome mode: black for 1 to 6
+and white for 7 to 9).
+
+See @ref{with} for details of <linetype> and <pointtype>.
+
+The `big` option is a substitute for the `bfig` terminal in earlier versions,
+which is no longer supported.
+
+Examples:
+@example
+      set terminal fig monochrome small pointsmax 1000  # defaults
+
+@end example
+
+@example
+      plot 'file.dat' with points linetype 102 pointtype 759
+@end example
+
+would produce circles with a blue outline of width 1 and yellow fill color.
+
+@example
+      plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 554
+@end example
+
+would produce errorbars with black lines and circles filled red.  These
+circles are one layer above the lines (at depth 9 by default).
+
+To plot the error bars on top of the circles use
+@example
+      plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 2554"
+
+@end example
+
+@node png, ggi, fig, terminal_
+@subsubsection png
+
+@c ?commands set terminal png
+@c ?set terminal png
+@c ?set term png
+@c ?terminal png
+@c ?term png
+@cindex png
+@tmindex png
+
+
+Syntax:
+@example
+      set terminal png 
+             @{@{no@}transparent@} @{@{no@}interlace@}
+             @{@{no@}truecolor@} @{rounded|butt@}
+             @{tiny | small | medium | large | giant@}
+             @{font <face> @{<pointsize>@}@}
+             @{size <x>,<y>@} @{@{no@}crop@}
+             @{@{no@}enhanced@}
+             @{<color0> <color1> <color2> ...@}
+
+@end example
+
+PNG images are created using libgd, with optional support for TrueType
+and Adobe Type 1 fonts via libfreetype. Version 1.8 or greater of libgd
+is required.
+
+`transparent` instructs the driver to generate transparent PNGs.  The first
+color will be the transparent one. Default is `notransparent`.
+
+`interlace` instructs the driver to generate interlaced PNGs.
+Default is `nointerlace`.
+
+`butt` instructs the driver to use a line drawing method that does
+not overshoot the desired end point of a line.  This setting is only
+applicable for line widths greater than 1.  This setting is most useful when
+drawing horizontal or vertical lines.  Default is `rounded`.
+Version 2.0 or greater of libgd is required.
+
+PNG plots may be conveniently viewed by piping the output to the
+'display' program from the ImageMagick package as follows:
+@example
+               set term png
+               set output '| display png:-'
+
+@end example
+
+View the output from successive plot commands interactively by hitting
+<space> in the display window.  To save a particular one to disk, left
+click in the display window and choose @ref{save}.
+
+Five basic fonts are supported directly by the gd library. These are
+`tiny` (5x8 pixels), `small` (6x12 pixels), `medium`, (7x13 Bold), 
+`large` (8x16) or `giant` (9x15 pixels). These fonts cannot be scaled
+or rotated (pure horizontal or vertical text only).
+
+@cindex fonts
+
+If gnuplot was built with support for TrueType (*.ttf) or Adobe Type 1 
+(*.pfa) fonts, they may be selected using the 'font <face> @{<pointsize>@}' 
+option. <face> is either the full pathname to the font file, or a font 
+face name that is assumed to be the first part of a filename in one of the 
+directories listed in the GDFONTPATH environmental variable. That is, 
+'set term png font "Face"' will look for a font file named either 
+<somedirectory>/Face.ttf or <somedirectory>/Face.pfa. Both TrueType and 
+Adobe Type 1 fonts are fully scalable and may be rotated through any angle.
+If no font is specified, gnuplot checks the environmental variable 
+GNUPLOT_DEFAULT_GDFONT to see if there is a preferred default font. 
+
+`enhanced` enables the enhanced text processing features, (subscripts, 
+superscripts and mixed fonts). See `enhanced` for more information. 
+The full enhanced mode syntax is supported by the PNG/JPEG driver itself,
+but some of these features are dependent on which version of the 
+underlying libgd library is present, and which fonts are available.
+
+The size <x,y> is given in pixels---it defaults to 640x480.  The number of
+pixels can be also modified by scaling with the @ref{size} command.
+`crop` trims blank space from the edges of the completed plot, resulting
+in a smaller final image size. Default is `nocrop`.
+
+Each color must be of the form 'xrrggbb', where x is the literal character
+'x' and 'rrggbb' are the red, green and blue components in hex.  For example,
+'x00ff00' is green.  The background color is set first, then the border
+colors, then the X & Y axis colors, then the plotting colors.  The maximum
+number of colors that can be set is 256.
+
+Examples:
+@example
+      set terminal png medium size 640,480 \\
+                       xffffff x000000 x404040 \\
+                       xff0000 xffa500 x66cdaa xcdb5cd \\
+                       xadd8e6 x0000ff xdda0dd x9500d3    # defaults
+
+@end example
+
+which uses white for the non-transparent background, black for borders, gray
+for the axes, and red, orange, medium aquamarine, thistle 3, light blue, blue,
+plum and dark violet for eight plotting colors.
+
+@example
+      set terminal png font arial 14 size 800,600
+
+@end example
+
+which searches for a TrueType font with face name 'arial' in the directory
+specified by the environment variable GDFONTPATH and 14pt font size.
+
+@example
+      set terminal png transparent xffffff \\
+                       x000000 x202020 x404040 x606060 \\
+                       x808080 xA0A0A0 xC0C0C0 xE0E0E0
+
+@end example
+
+which uses white for the transparent background, black for borders, dark
+gray for axes, and a gray-scale for the six plotting colors.
+
+
+@node ggi, Gnugraph(GNU_plotutils), png, terminal_
+@subsubsection ggi
+
+@c ?commands set terminal ggi
+@c ?set terminal ggi
+@c ?set term ggi
+@c ?terminal ggi
+@c ?term ggi
+@cindex ggi
+@tmindex ggi
+
+
+The `ggi` driver can run on different targets as X or svgalib.
+
+Syntax:
+@example
+   set terminal ggi [acceleration <integer>] [[mode] @{mode@}]
+
+@end example
+
+In X the window cannot be resized using window manager handles, but the
+mode can be given with the mode option, e.g.:
+@example
+ - V1024x768
+ - V800x600
+ - V640x480
+ - V320x200
+@end example
+
+Please refer to the ggi documentation for other modes. The 'mode' keyword
+is optional. It is recommended to select the target by environment variables
+as explained in the libggi manual page. To get DGA on X, you should for
+example
+@example
+   bash> export GGI_DISPLAY=DGA
+   csh>  setenv GGI_DISPLAY DGA
+
+@end example
+
+'acceleration' is only used for targets which report relative pointer
+motion events (e.g. DGA) and is a strictly positive integer multiplication
+factor for the relative distances.  The default for acceleration is 7.
+
+Examples:
+@example
+   set term ggi acc 10
+   set term ggi acc 1 mode V1024x768
+   set term ggi V1024x768"
+
+@end example
+
+@node Gnugraph(GNU_plotutils), gpic, ggi, terminal_
+@subsubsection Gnugraph(GNU plotutils)
+
+@c ?commands set terminal gnugraph
+@c ?set terminal gnugraph
+@c ?set term gnugraph
+@c ?terminal gnugraph
+@c ?term gnugraph
+@cindex gnugraph
+@tmindex gnugraph
+
+
+The `gnugraph` driver produces device-independent output in the GNU plot
+graphics language.  The default size of the PostScript results generated by
+"plot2ps" is 5 x 3 inches; this can be increased up to about 8.25 x 8.25 by
+@ref{size}.
+
+Syntax:
+@example
+      set terminal gnugraph @{"<fontname>"@} @{<fontsize>@}
+                            @{type <pt>@} @{size "<size>"@}
+
+@end example
+
+which defaults to 10-point "Courier".
+
+For `type`, the following options are accepted: `X`, `pnm`, `gif`, `ai`,
+`ps`, `cgm`, `fig`, `pcl5`, `hpgl`, `tek`, and `meta` (default). The
+@ref{size} option (default is a4) is passed straight through to plotutils, it's
+the user's responsibility to provide correct values. Details can be found
+in the plotutils documentation.
+
+Examples:
+@example
+      set terminal gnugraph type hpgl size "a4"
+      set terminal gnugraph size "a4,xoffset=-5mm,yoffset=2.0cm" type pnm
+
+@end example
+
+There is a non-GNU version of the `gnugraph` driver which cannot be compiled
+unless this version is left out."
+
+@node gpic, gpic_, Gnugraph(GNU_plotutils), terminal_
+@subsubsection gpic
+
+@c ?commands set terminal gpic
+@c ?set terminal gpic
+@c ?set term gpic
+@c ?terminal gpic
+@c ?term gpic
+@cindex gpic
+@tmindex gpic
+
+
+The `gpic` terminal driver generates GPIC graphs in the Free Software
+Foundations's "groff" package.  The default size is 5 x 3 inches.  The only
+option is the origin, which defaults to (0,0).
+
+Syntax:
+@example
+      set terminal gpic @{<x> <y>@}
+
+@end example
+
+where `x` and `y` are in inches.
+
+A simple graph can be formatted using
+
+@example
+      groff -p -mpic -Tps file.pic > file.ps.
+
+@end example
+
+The output from pic can be pipe-lined into eqn, so it is possible to put
+complex functions in a graph with the @ref{label} and `set @{x/y@}label`
+commands.  For instance,
+
+@example
+      set ylab '@@space 0 int from 0 to x alpha ( t ) roman d t@@'
+
+@end example
+
+will label the y axis with a nice integral if formatted with the command:
+
+@example
+      gpic filename.pic | geqn -d@@@@ -Tps | groff -m[macro-package] -Tps
+          > filename.ps
+
+@end example
+
+Figures made this way can be scaled to fit into a document.  The pic language
+is easy to understand, so the graphs can be edited by hand if need be.  All
+co-ordinates in the pic-file produced by `gnuplot` are given as x+gnuplotx
+and y+gnuploty.  By default x and y are given the value 0.  If this line is
+removed with an editor in a number of files, one can put several graphs in
+one figure like this (default size is 5.0x3.0 inches):
+
+@example
+      .PS 8.0
+      x=0;y=3
+      copy "figa.pic"
+      x=5;y=3
+      copy "figb.pic"
+      x=0;y=0
+      copy "figc.pic"
+      x=5;y=0
+      copy "figd.pic"
+      .PE
+
+@end example
+
+This will produce an 8-inch-wide figure with four graphs in two rows on top
+of each other.
+
+One can also achieve the same thing by the command
+
+@example
+      set terminal gpic x y
+
+@end example
+
+for example, using
+
+@example
+      .PS 6.0
+      copy "trig.pic"
+      .PE"
+
+@end example
+
+@node gpic_, gpr, gpic, terminal_
+@subsubsection gpic
+
+@c ?commands set terminal gpic
+@c ?set terminal gpic
+@c ?set term gpic
+@c ?terminal gpic
+@c ?term gpic
+@cindex gpic
+@tmindex gpic
+
+
+The `gpic` terminal driver generates GPIC graphs in the Free Software
+Foundations's "groff" package.  The default size is 5 x 3 inches.  The only
+option is the origin, which defaults to (0,0).
+
+Syntax:
+@example
+      set terminal gpic @{<x> <y>@}
+
+@end example
+
+where `x` and `y` are in inches.
+
+A simple graph can be formatted using
+
+@example
+      groff -p -mpic -Tps file.pic > file.ps.
+
+@end example
+
+The output from pic can be pipe-lined into eqn, so it is possible to put
+complex functions in a graph with the @ref{label} and `set @{x/y@}label`
+commands.  For instance,
+
+@example
+      set ylab '@@space 0 int from 0 to x alpha ( t ) roman d t@@'
+
+@end example
+
+will label the y axis with a nice integral if formatted with the command:
+
+@example
+      gpic filename.pic | geqn -d@@@@ -Tps | groff -m[macro-package] -Tps
+          > filename.ps
+
+@end example
+
+Figures made this way can be scaled to fit into a document.  The pic language
+is easy to understand, so the graphs can be edited by hand if need be.  All
+co-ordinates in the pic-file produced by `gnuplot` are given as x+gnuplotx
+and y+gnuploty.  By default x and y are given the value 0.  If this line is
+removed with an editor in a number of files, one can put several graphs in
+one figure like this (default size is 5.0x3.0 inches):
+
+@example
+      .PS 8.0
+      x=0;y=3
+      copy "figa.pic"
+      x=5;y=3
+      copy "figb.pic"
+      x=0;y=0
+      copy "figc.pic"
+      x=5;y=0
+      copy "figd.pic"
+      .PE
+
+@end example
+
+This will produce an 8-inch-wide figure with four graphs in two rows on top
+of each other.
+
+One can also achieve the same thing by the command
+
+@example
+      set terminal gpic x y
+
+@end example
+
+for example, using
+
+@example
+      .PS 6.0
+      copy "trig.pic"
+      .PE"
+
+@end example
+
+@node gpr, grass, gpic_, terminal_
+@subsubsection gpr
+
+@c ?commands set terminal gpr
+@c ?set terminal gpr
+@c ?set term gpr
+@c ?terminal gpr
+@c ?term gpr
+@cindex gpr
+@tmindex gpr
+
+
+The `gpr` terminal driver supports the Apollo Graphics Primitive Resource
+for a fixed-size window.  It has no options.
+
+If a variable window size is desired, use the `apollo` terminal instead."
+
+@node grass, hp2623a, gpr, terminal_
+@subsubsection grass
+
+@c ?commands set terminal grass
+@c ?set terminal grass
+@c ?set term grass
+@c ?terminal grass
+@c ?term grass
+@cindex grass
+@tmindex grass
+
+
+The `grass` terminal driver gives `gnuplot` capabilities to users of the 
+GRASS geographic information system.  Contact grassp-list@@moon.cecer.army.mil
+for more information.  Pages are written to the current frame of the GRASS
+Graphics Window.  There are no options."
+
+@node hp2623a, hp2648, grass, terminal_
+@subsubsection hp2623a
+
+@c ?commands set terminal hp2623a
+@c ?set terminal hp2623a
+@c ?set term hp2623a
+@c ?terminal hp2623a
+@c ?term hp2623a
+@cindex hp2623a
+@tmindex hp2623a
+
+
+The `hp2623a` terminal driver supports the Hewlett Packard HP2623A.  It has
+no options."
+
+@node hp2648, hp500c, hp2623a, terminal_
+@subsubsection hp2648
+
+@c ?commands set terminal hp2648
+@c ?set terminal hp2648
+@c ?set term hp2648
+@c ?terminal hp2648
+@c ?term hp2648
+@cindex hp2648
+@tmindex hp2648
+
+
+The `hp2648` terminal driver supports the Hewlett Packard HP2647 and HP2648.
+It has no options."
+
+@node hp500c, hpgl, hp2648, terminal_
+@subsubsection hp500c
+
+@c ?commands set terminal hp500c
+@c ?set terminal hp500c
+@c ?set term hp500c
+@c ?terminal hp500c
+@c ?term hp500c
+@cindex hp500c
+@tmindex hp500c
+
+
+The `hp500c` terminal driver supports the Hewlett Packard HP DeskJet 500c.
+It has options for resolution and compression.
+
+Syntax:
+@example
+      set terminal hp500c @{<res>@} @{<comp>@}
+
+@end example
+
+where `res` can be 75, 100, 150 or 300 dots per inch and `comp` can be "rle",
+or "tiff".  Any other inputs are replaced by the defaults, which are 75 dpi
+and no compression.  Rasterization at the higher resolutions may require a
+large amount of memory."
+
+@node hpgl, hpljii, hp500c, terminal_
+@subsubsection hpgl
+
+@c ?commands set terminal hpgl
+@c ?set terminal hpgl
+@c ?set term hpgl
+@c ?terminal hpgl
+@c ?term hpgl
+@cindex hpgl
+@tmindex hpgl
+
+
+@c ?commands set terminal pcl5
+@c ?set terminal pcl5
+@c ?set term pcl5
+@c ?terminal pcl5
+@c ?term pcl5
+@cindex pcl5
+@tmindex pcl5
+
+
+The `hpgl` driver produces HPGL output for devices like the HP7475A plotter.
+There are two options which can be set: the number of pens and `eject`,
+which tells the plotter to eject a page when done.  The default is to use 6
+pens and not to eject the page when done.
+
+The international character sets ISO-8859-1 and CP850 are recognized via
+`set encoding iso_8859_1` or `set encoding cp850` (see @ref{encoding} for
+details).
+
+Syntax:
+@example
+      set terminal hpgl @{<number_of_pens>@} @{eject@}
+
+@end example
+
+The selection
+
+@example
+      set terminal hpgl 8 eject
+
+@end example
+
+is equivalent to the previous `hp7550` terminal, and the selection
+
+@example
+      set terminal hpgl 4
+
+@end example
+
+is equivalent to the previous `hp7580b` terminal.
+
+The `pcl5` driver supports plotters such as the Hewlett-Packard Designjet
+750C, the Hewlett-Packard Laserjet III, and the Hewlett-Packard Laserjet IV.
+It actually uses HPGL-2, but there is a name conflict among the terminal
+devices.  It has several options which must be specified in the order
+indicated below:
+
+Syntax:
+@example
+      set terminal pcl5 @{mode <mode>@} @{<plotsize>@}
+          @{@{color @{<number_of_pens>@}@} | monochrome@} @{solid | dashed@}
+          @{font <font>@} @{size <fontsize>@} @{pspoints | nopspoints@}
+
+@end example
+
+<mode> is `landscape` or `portrait`. <plotsize> is the physical
+plotting size of the plot, which is one of the following: `letter` for
+standard (8 1/2" X 11") displays, `legal` for (8 1/2" X 14") displays,
+`noextended` for (36" X 48") displays (a letter size ratio) or,
+`extended` for (36" X 55") displays (almost a legal size ratio).
+`color` is for multi-pen (i.e. color) plots, and <number_of_pens> is
+the number of pens (i.e. colors) used in color plots. `monochrome` is for
+one (e.g. black) pen plots. `solid` draws all lines as solid lines, or
+`dashed` will draw lines with different dashed and dotted line patterns.
+<font> is `stick`, `univers`, `cg_times`, `zapf_dingbats`, `antique_olive`,
+`arial`, `courier`, `garamond_antigua`, `letter_gothic`, `cg_omega`,
+`albertus`, `times_new_roman`, `clarendon`, `coronet`, `marigold`,
+`truetype_symbols`, or `wingdings`. <fontsize> is the font size in points.
+The point type selection can be the standard default set by specifying
+`nopspoints`, or the same set of point types found in the postscript terminal
+by specifying `pspoints`.
+
+Note that built-in support of some of these options is printer device
+dependent. For instance, all the fonts are supposedly supported by the HP
+Laserjet IV, but only a few (e.g. univers, stick) may be supported by the HP
+Laserjet III and the Designjet 750C. Also, color obviously won't work on the
+the laserjets since they are monochrome devices.
+
+Defaults: landscape, noextended, color (6 pens), solid, univers, 12 point,
+@example
+          and nopspoints.
+
+@end example
+
+With `pcl5` international characters are handled by the printer; you just put
+the appropriate 8-bit character codes into the text strings.  You don't need
+to bother with @ref{encoding}.
+
+HPGL graphics can be imported by many software packages."
+
+@node hpljii, hppj, hpgl, terminal_
+@subsubsection hpljii
+
+@c ?commands set terminal hpljii
+@c ?set terminal hpljii
+@c ?set term hpljii
+@c ?terminal hpljii
+@c ?term hpljii
+@cindex hpljii
+@tmindex hpljii
+
+
+@c ?commands set terminal hpdj
+@c ?set terminal hpdj
+@c ?set term hpdj
+@c ?terminal hpdj
+@c ?term hpdj
+@cindex hpdj
+@tmindex hpdj
+
+
+The `hpljii` terminal driver supports the HP Laserjet Series II printer.  The
+`hpdj` driver supports the HP DeskJet 500 printer.  These drivers allow a
+choice of resolutions.
+
+Syntax:
+@example
+      set terminal hpljii | hpdj @{<res>@}
+
+@end example
+
+where `res` may be 75, 100, 150 or 300 dots per inch; the default is 75.
+Rasterization at the higher resolutions may require a large amount of memory.
+
+The `hp500c` terminal is similar to `hpdj`; `hp500c` additionally supports
+color and compression."
+
+@node hppj, imagen, hpljii, terminal_
+@subsubsection hppj
+
+@c ?commands set terminal hppj
+@c ?set terminal hppj
+@c ?set term hppj
+@c ?terminal hppj
+@c ?term hppj
+@cindex hppj
+@tmindex hppj
+
+
+The `hppj` terminal driver supports the HP PaintJet and HP3630 printers.  The
+only option is the choice of font.
+
+Syntax:
+@example
+      set terminal hppj @{FNT5X9 | FNT9X17 | FNT13X25@}
+
+@end example
+
+with the middle-sized font (FNT9X17) being the default."
+
+@node imagen, iris4d, hppj, terminal_
+@subsubsection imagen
+
+@c ?commands set terminal imagen
+@c ?set terminal imagen
+@c ?set term imagen
+@c ?terminal imagen
+@c ?term imagen
+@cindex imagen
+@tmindex imagen
+
+
+The `imagen` terminal driver supports Imagen laser printers.  It is capable
+of placing multiple graphs on a single page.
+
+Syntax:
+@example
+      set terminal imagen @{<fontsize>@} @{portrait | landscape@}
+                          @{[<horiz>,<vert>]@}
+
+@end example
+
+where `fontsize` defaults to 12 points and the layout defaults to `landscape`.
+`<horiz>` and `<vert>` are the number of graphs in the horizontal and
+vertical directions; these default to unity.
+
+Example:
+@example
+      set terminal imagen portrait [2,3]
+
+@end example
+
+puts six graphs on the page in three rows of two in portrait orientation."
+
+@node iris4d, kyo, imagen, terminal_
+@subsubsection iris4d
+
+@c ?commands set terminal iris4d
+@c ?set terminal iris4d
+@c ?set term iris4d
+@c ?terminal iris4d
+@c ?term iris4d
+@cindex iris4d
+@tmindex iris4d
+
+
+The `iris4d` terminal driver supports Silicon Graphics IRIS 4D computers.
+Its only option is 8- or 24-bit color depth.  The default is 8.
+
+Syntax:
+@example
+      set terminal iris4d @{8 | 24@}
+
+@end example
+
+The color depth is not really a choice -- the value appropriate for the
+hardware should be selected.
+
+When using 24-bit mode, the colors can be directly specified via the file
+.gnuplot_iris4d that is searched in the current directory and then in the
+home directory specified by the HOME environment variable.  This file holds
+RGB values for the background, border, labels and nine plotting colors, in
+that order.  For example, here is a file containing the default colors:
+
+@example
+      85   85   85     Background   (dark gray)
+      0    0    0      Boundary     (black)
+      170  0    170    Labeling     (magenta)
+      85   255  255    Plot Color 1 (light cyan)
+      170  0    0      Plot Color 2 (red)
+      0    170  0      Plot Color 3 (green)
+      255  85   255    Plot Color 4 (light magenta)
+      255  255  85     Plot Color 5 (yellow)
+      255  85   85     Plot Color 6 (light red)
+      85   255  85     Plot Color 7 (light green)
+      0    170  170    Plot Color 8 (cyan)
+      170  170  0      Plot Color 9 (brown)
+
+@end example
+
+This file must have exactly 12 lines of RGB triples.  No empty lines are
+allowed, and anything after the third number on a line is ignored."
+
+@node kyo, latex, iris4d, terminal_
+@subsubsection kyo
+
+@c ?commands set terminal kyo
+@c ?set terminal kyo
+@c ?set term kyo
+@c ?terminal kyo
+@c ?term kyo
+@cindex kyo
+@tmindex kyo
+
+
+@c ?commands set terminal prescribe
+@c ?set terminal prescribe
+@c ?set term prescribe
+@c ?terminal prescribe
+@c ?term prescribe
+@cindex prescribe
+@tmindex prescribe
+
+
+The `kyo` and `prescribe` terminal drivers support the Kyocera laser printer.
+The only difference between the two is that `kyo` uses "Helvetica" whereas
+`prescribe` uses "Courier".  There are no options."
+
+@node latex, linux, kyo, terminal_
+@subsubsection latex
+
+@c ?commands set terminal emtex
+@c ?set terminal emtex
+@c ?set term emtex
+@c ?terminal emtex
+@c ?term emtex
+@cindex emtex
+@tmindex emtex
+
+
+@c ?commands set terminal latex
+@c ?set terminal latex
+@c ?set term latex
+@c ?terminal latex
+@c ?term latex
+@cindex latex
+@tmindex latex
+
+
+Syntax:
+@example
+      set terminal @{latex | emtex@} @{default | @{courier|roman@} @{<fontsize>@}@}
+                   @{size <XX>@{unit@}, <YY>@{unit@}@}
+
+@end example
+
+By default the plot will inherit font settings from the embedding document.
+You have the option of forcing either Courier (cmtt) or Roman (cmr) fonts
+instead. In this case you may also specify a fontsize.
+Unless your driver is capable of building fonts at any size (e.g. dvips),
+stick to the standard 10, 11 and 12 point sizes.
+
+METAFONT users beware: METAFONT does not like odd sizes.
+
+All drivers for LaTeX offer a special way of controlling text positioning:
+If any text string begins with '@{', you also need to include a '@}' at the
+end of the text, and the whole text will be centered both horizontally and
+vertically.  If the text string begins with '[', you need to follow this with
+a position specification (up to two out of t,b,l,r), ']@{', the text itself,
+and finally '@}'.  The text itself may be anything LaTeX can typeset as an
+LR-box.  '\\rule@{@}@{@}'s may help for best positioning.
+
+Points, among other things, are drawn using the LaTeX commands "\\Diamond" and
+"\\Box".  These commands no longer belong to the LaTeX2e core; they are included
+in the latexsym package, which is part of the base distribution and thus part
+of any LaTeX implementation.  Please do not forget to use this package.
+
+The default size for the plot is 5 inches by 3 inches. The @ref{size} option
+changes this to whatever the user requests. By default the X and Y sizes
+are taken to be in inches, but other units are possible (currently only cm).
+
+Examples:
+About label positioning:
+Use gnuplot defaults (mostly sensible, but sometimes not really best):
+@example
+       set title '\\LaTeX\\ -- $ \\gamma $'
+@end example
+
+Force centering both horizontally and vertically:
+@example
+       set label '@{\\LaTeX\\ -- $ \\gamma $@}' at 0,0
+@end example
+
+Specify own positioning (top here):
+@example
+       set xlabel '[t]@{\\LaTeX\\ -- $ \\gamma $@}'
+@end example
+
+The other label -- account for long ticlabels:
+@example
+       set ylabel '[r]@{\\LaTeX\\ -- $ \\gamma $\\rule@{7mm@}@{0pt@}@}'"
+
+@end example
+
+@node linux, linux_, latex, terminal_
+@subsubsection linux
+
+@c ?commands set terminal linux
+@c ?set terminal linux
+@c ?set term linux
+@c ?terminal linux
+@c ?term linux
+@cindex linux
+@tmindex linux
+
+
+The `linux` driver has no additional options to specify.  It looks at the
+environment variable GSVGAMODE for the default mode; if not set, it uses
+1024x768x256 as default mode or, if that is not possible, 640x480x16
+(standard VGA)."
+
+@node linux_, macintosh, linux, terminal_
+@subsubsection linux
+
+@c ?commands set terminal linux
+@c ?set terminal linux
+@c ?set term linux
+@c ?terminal linux
+@c ?term linux
+@cindex linux
+@tmindex linux
+
+
+The `linux` driver has no additional options to specify.  It looks at the
+environment variable GSVGAMODE for the default mode; if not set, it uses
+1024x768x256 as default mode or, if that is not possible, 640x480x16
+(standard VGA)."
+
+@node macintosh, mf, linux_, terminal_
+@subsubsection macintosh
+
+@c ?set terminal macintosh
+@c ?set term macintosh
+@c ?terminal macintosh
+@c ?term macintosh
+@cindex macintosh
+@tmindex macintosh
+
+
+Several options may be set in the 'macintosh' driver.
+
+Syntax:
+@example
+     set terminal macintosh @{singlewin | multiwin@} @{vertical | novertical@}
+                            @{size <width>, <height> | default@}
+
+@end example
+
+'singlewin' limits the output to a single window and is useful for animations.
+'multiwin' allows multiple windows.
+'vertical' is only valid under the gx option. With this option, rotated text
+@example
+    be drawn vertically. novertical turns this option off.
+ size <width>, <height> overrides the graph size set in the preferences
+    dialog until it is cleared with either 'set term mac size default'
+    or 'set term mac default'.
+
+@end example
+
+@example
+ 'set term mac size default' sets the window size settings to those set in
+    the preferences dialog.
+
+@end example
+
+@example
+ 'set term mac default' sets all options to their default values.
+    Default values: nogx, multiwin, novertical.
+
+@end example
+
+@example
+ If you generate graphs under the multiwin option and then switch to singlewin,
+ the next plot command will cause one more window to be created. This new
+ window will be reused as long as singlewin is in effect. If you switch back
+ to multiwin, generate some graphs, and then switch to singlewin again, the
+ orginal 'singlewin' window will be resused if it is still open. Otherwise
+ a new 'singlewin' window will be created. The 'singlewin' window is not numbered."
+
+@end example
+
+@node mf, mp, macintosh, terminal_
+@subsubsection mf
+
+@c ?commands set terminal mf
+@c ?set terminal mf
+@c ?set term mf
+@c ?terminal mf
+@c ?term mf
+@cindex mf
+
+@cindex metafont
+
+The `mf` terminal driver creates an input file to the METAFONT program.  Thus a
+figure may be used in the TeX document in the same way as is a character.
+
+To use a picture in a document, the METAFONT program must be run with the
+output file from `gnuplot` as input.  Thus, the user needs a basic knowledge
+of the font creating process and the procedure for including a new font in a
+document.  However, if the METAFONT program is set up properly at the local
+site, an unexperienced user could perform the operation without much trouble.
+
+The text support is based on a METAFONT character set.  Currently the
+Computer Modern Roman font set is input, but the user is in principal free to
+choose whatever fonts he or she needs.  The METAFONT source files for the
+chosen font must be available.  Each character is stored in a separate
+picture variable in METAFONT.  These variables may be manipulated (rotated,
+scaled etc.) when characters are needed.  The drawback is the interpretation
+time in the METAFONT program.  On some machines (i.e. PC) the limited amount
+of memory available may also cause problems if too many pictures are stored.
+
+The `mf` terminal has no options.
+
+
+@noindent --- METAFONT INSTRUCTIONS ---
+
+@c ?commands set terminal mf detailed
+@c ?set terminal mf detailed
+@c ?set term mf detailed
+@c ?mf detailed
+@c ?metafont detailed
+
+- Set your terminal to METAFONT:
+@example
+  set terminal mf
+@end example
+
+- Select an output-file, e.g.:
+@example
+  set output "myfigures.mf"
+@end example
+
+- Create your pictures. Each picture will generate a separate character. Its
+default size will be 5*3 inches. You can change the size by saying `set size
+0.5,0.5` or whatever fraction of the default size you want to have.
+
+- Quit `gnuplot`.
+
+- Generate a TFM and GF file by running METAFONT on the output of `gnuplot`.
+Since the picture is quite large (5*3 in), you will have to use a version of
+METAFONT that has a value of at least 150000 for memmax.  On Unix systems
+these are conventionally installed under the name bigmf.  For the following
+assume that the command virmf stands for a big version of METAFONT.  For
+example:
+
+- Invoke METAFONT:
+@example
+    virmf '&plain'
+@end example
+
+- Select the output device: At the METAFONT prompt ('*') type:
+@example
+    \\mode:=CanonCX;     % or whatever printer you use
+@end example
+
+- Optionally select a magnification:
+@example
+    mag:=1;             % or whatever you wish
+@end example
+
+- Input the `gnuplot`-file:
+@example
+    input myfigures.mf
+@end example
+
+On a typical Unix machine there will usually be a script called "mf" that
+executes virmf '&plain', so you probably can substitute mf for virmf &plain.
+This will generate two files: mfput.tfm and mfput.$$$gf (where $$$ indicates
+the resolution of your device).  The above can be conveniently achieved by
+typing everything on the command line, e.g.:
+virmf '&plain' '\\mode:=CanonCX; mag:=1; input myfigures.mf'
+In this case the output files will be named myfigures.tfm and
+myfigures.300gf.
+
+- Generate a PK file from the GF file using gftopk:
+@example
+  gftopk myfigures.300gf myfigures.300pk
+@end example
+
+The name of the output file for gftopk depends on the DVI driver you use.
+Ask your local TeX administrator about the naming conventions.  Next, either
+install the TFM and PK files in the appropriate directories, or set your
+environment variables properly.  Usually this involves setting TEXFONTS to
+include the current directory and doing the same thing for the environment
+variable that your DVI driver uses (no standard name here...).  This step is
+necessary so that TeX will find the font metric file and your DVI driver will
+find the PK file.
+
+- To include your pictures in your document you have to tell TeX the font:
+@example
+  \\font\\gnufigs=myfigures
+@end example
+
+Each picture you made is stored in a single character.  The first picture is
+character 0, the second is character 1, and so on...  After doing the above
+step, you can use the pictures just like any other characters.  Therefore, to
+place pictures 1 and 2 centered in your document, all you have to do is:
+@example
+  \\centerline@{\\gnufigs\\char0@}
+  \\centerline@{\\gnufigs\\char1@}
+@end example
+
+in plain TeX.  For LaTeX you can, of course, use the picture environment and
+place the picture wherever you wish by using the \\makebox and \\put macros.
+
+This conversion saves you a lot of time once you have generated the font;
+TeX handles the pictures as characters and uses minimal time to place them,
+and the documents you make change more often than the pictures do.  It also
+saves a lot of TeX memory.  One last advantage of using the METAFONT driver
+is that the DVI file really remains device independent, because no \\special
+commands are used as in the eepic and tpic drivers."
+
+@node mp, mgr, mf, terminal_
+@subsubsection mp
+
+@c ?commands set terminal mpost
+@c ?set terminal mp
+@c ?set term mp
+@c ?terminal mp
+@c ?term mp
+@cindex mp
+
+@cindex metapost
+
+
+The `mp` driver produces output intended to be input to the Metapost program.
+Running Metapost on the file creates EPS files containing the plots. By
+default, Metapost passes all text through TeX.  This has the advantage of
+allowing essentially  any TeX symbols in titles and labels.
+
+Syntax:
+@example
+   set term mp @{color | colour | monochrome@}
+               @{solid | dashed@}
+               @{notex | tex | latex@}
+               @{magnification <magsize>@}
+               @{psnfss | psnfss-version7 | nopsnfss@}
+               @{prologues <value>@}
+               @{a4paper@}
+               @{amstex@}
+               @{"<fontname>"@} @{<fontsize>@}
+
+@end example
+
+The option `color` causes lines to be drawn in color (on a printer or display
+that supports it), `monochrome` (or nothing) selects black lines.  The option
+`solid` draws solid lines, while `dashed` (or nothing) selects lines with
+different patterns of dashes.  If `solid` is selected but `color` is not,
+nearly all lines will be identical.  This may occasionally be useful, so it is
+allowed.
+
+The option `notex` bypasses TeX entirely, therefore no TeX code can be used in
+labels under this option.  This is intended for use on old plot files or files
+that make frequent use of common characters like `$` and `%` that require
+special handling in TeX.
+
+The option `tex` sets the terminal to output its text for TeX to process.
+
+The option `latex` sets the terminal to output its text for processing by
+LaTeX. This allows things like \\frac for fractions which LaTeX knows about
+but TeX does not.  Note that you must set the environment variable TEX to the
+name of your LaTeX executable (normally latex) if you use this option or use
+`mpost --tex=<name of LaTeX executable> ...`. Otherwise metapost will try and
+use TeX to process the text and it won't work.
+
+Changing font sizes in TeX has no effect on the size of mathematics, and there
+is no foolproof way to make such a change, except by globally  setting a
+magnification factor. This is the purpose of the `magnification` option. It
+must be followed by a scaling factor. All text (NOT the graphs) will be scaled
+by this factor. Use this if you have math that you want at some size other
+than the default 10pt. Unfortunately, all math will be the same size, but see
+the discussion below on editing the MP output. `mag` will also work under
+`notex` but there seems no point in using it as the font size option (below)
+works as well.
+
+The option `psnfss` uses postscript fonts in combination with LaTeX. Since
+this option only makes sense, if LaTeX is being used, the `latex` option is selected
+automatically. This option includes the following packages for LaTeX:
+inputenc(latin1), fontenc(T1), mathptmx, helvet(scaled=09.2), courier, latexsym 
+and textcomp.
+
+The option `psnfss-version7` uses also postscript fonts in LaTeX (option `latex`
+is also automatically selected), but uses the following packages with LaTeX:
+inputenc(latin1), fontenc(T1), times, mathptmx, helvet and courier.
+
+The option `nopsnfss` is the default and uses the standard font (cmr10 if not
+otherwise specified).
+
+The option `prologues` takes a value as an additional argument and adds the line
+`prologues:=<value>` to the metapost file. If a value of `2` is specified metapost
+uses postscript fonts to generate the eps-file, so that the result can be viewed
+using e.g. ghostscript. Normally the output of metapost uses TeX fonts and therefore
+has to be included in a (La)TeX file before you can look at it.
+
+The option `noprologues` is the default. No additional line specifying the prologue
+will be added.
+
+The option `a4paper` adds a `[a4paper]` to the documentclass. Normally letter paper
+is used (default). Since this option is only used in case of LaTeX, the `latex` option
+is selected automatically.
+
+The option `amstex` automatically selects the `latex` option and includes the following
+LaTeX packages: amsfonts, amsmath(intlimits). By default these packages are not
+included.
+
+A name in quotes selects the font that will be used when no explicit font is
+given in a @ref{label} or @ref{title}.  A name recognized by TeX (a TFM file
+exists) must be used.  The default is "cmr10" unless `notex` is selected,
+then it is "pcrr8r" (Courier).  Even under `notex`, a TFM file is needed by
+Metapost. The file `pcrr8r.tfm` is the name given to Courier in LaTeX's psnfss
+package.  If you change the font from the `notex` default, choose a font that
+matches the ASCII encoding at least in the range 32-126.  `cmtt10` almost
+works, but it has a nonblank character in position 32 (space).
+
+The size can be any number between 5.0 and 99.99.  If it is omitted, 10.0 is
+used.  It is advisable to use `magstep` sizes: 10 times an integer or
+half-integer power of 1.2, rounded to two decimals, because those are the most
+available sizes of fonts in TeX systems.
+
+All the options are optional.  If font information is given, it must be at the
+end, with size (if present) last.  The size is needed to select a size for the
+font, even if the font name includes size information.  For example,
+`set term mp "cmtt12"` selects cmtt12 shrunk to the default size 10.  This
+is probably not what you want or you would have used cmtt10.
+
+The following common ascii characters need special treatment in TeX:
+@example
+   $, &, #, %, _;  |, <, >;  ^, ~,  \\, @{, and @}
+@end example
+
+The five characters $, #, &, _, and % can simply be escaped, e.g., `\\$`.
+The three characters <, >, and | can be wrapped in math mode, e.g., `$<$`.
+The remainder require some TeX work-arounds.  Any good book on TeX will give
+some guidance.
+
+If you type your labels inside double quotes, backslashes in TeX code need to
+be escaped (doubled). Using single quotes will avoid having to do this, but
+then you cannot use `\\n` for line breaks.  As of this writing, version 3.7 of
+gnuplot processes titles given in a `plot` command differently than in other
+places, and backslashes in TeX commands need to be doubled regardless of the
+style of quotes.
+
+Metapost pictures are typically used in TeX documents.  Metapost deals with
+fonts pretty much the same way TeX does, which is different from most other
+document preparation programs.  If the picture is included in a LaTeX document
+using the graphics package, or in a plainTeX document via epsf.tex, and then
+converted to PostScript with dvips (or other dvi-to-ps converter), the text in
+the plot will usually be handled correctly.  However, the text may not appear
+if you send the Metapost output as-is to a PostScript interpreter.
+
+
+
+@noindent --- METAPOST INSTRUCTIONS ---
+
+@c ?commands set terminal mp detailed
+@c ?set terminal mp detailed
+@c ?set term mp detailed
+@c ?mp detailed
+@c ?metapost detailed
+
+- Set your terminal to Metapost, e.g.:
+@example
+   set terminal mp mono "cmtt12" 12
+
+@end example
+
+- Select an output-file, e.g.:
+@example
+   set output "figure.mp"
+
+@end example
+
+- Create your pictures.  Each plot (or multiplot group) will generate a
+separate Metapost beginfig...endfig group.  Its default size will be 5 by 3
+inches.  You can change the size by saying `set size 0.5,0.5` or whatever
+fraction of the default size you want to have.
+
+- Quit gnuplot.
+
+- Generate EPS files by running Metapost on the output of gnuplot:
+@example
+   mpost figure.mp  OR  mp figure.mp
+@end example
+
+The name of the Metapost program depends on the system, typically `mpost` for
+a Unix machine and `mp` on many others.  Metapost will generate one EPS file
+for each picture.
+
+- To include your pictures in your document you can use the graphics package
+in LaTeX or epsf.tex in plainTeX:
+@example
+   \\usepackage@{graphics@} % LaTeX
+   \\input epsf.tex       % plainTeX
+@end example
+
+If you use a driver other than dvips for converting TeX DVI output to PS, you
+may need to add the following line in your LaTeX document:
+@example
+   \\DeclareGraphicsRule@{*@}@{eps@}@{*@}@{@}
+@end example
+
+Each picture you made is in a separate file.  The first picture is in, e.g.,
+figure.0, the second in figure.1, and so on....  To place the third picture in
+your document, for example, all you have to do is:
+@example
+   \\includegraphics@{figure.2@} % LaTeX
+   \\epsfbox@{figure.2@}         % plainTeX
+
+@end example
+
+The advantage, if any, of the mp terminal over a postscript terminal is
+editable output.  Considerable effort went into making this output as clean as
+possible.  For those knowledgeable in the Metapost language, the default line
+types and colors can be changed by editing the arrays `lt[]` and `col[]`.
+The choice of solid vs dashed lines, and color vs black lines can be change by
+changing the values assigned to the booleans `dashedlines` and `colorlines`.
+If the default `tex` option was in effect, global changes to the text of
+labels can be achieved by editing the `vebatimtex...etex` block.  In
+particular, a LaTeX preamble can be added if desired, and then LaTeX's
+built-in size changing commands can be used for maximum flexibility. Be sure
+to set the appropriate MP configuration variable to force Metapost to run
+LaTeX instead of plainTeX."
+
+@node mgr, mif, mp, terminal_
+@subsubsection mgr
+
+@c ?commands set terminal mgr
+@c ?set terminal mgr
+@c ?set term mgr
+@c ?terminal mgr
+@c ?term mgr
+@cindex mgr
+@tmindex mgr
+
+
+The `mgr` terminal driver supports the Mgr Window system.  It has no options."
+
+@node mif, mtos, mgr, terminal_
+@subsubsection mif
+
+@c ?commands set terminal mif
+@c ?set terminal mif
+@c ?set term mif
+@c ?terminal mif
+@c ?term mif
+@cindex mif
+@tmindex mif
+
+
+The `mif` terminal driver produces Frame Maker MIF format version 3.00.  It
+plots in MIF Frames with the size 15*10 cm, and plot primitives with the same
+pen will be grouped in the same MIF group.  Plot primitives in a `gnuplot`
+page will be plotted in a MIF Frame, and several MIF Frames are collected in
+one large MIF Frame.  The MIF font used for text is "Times".
+
+Several options may be set in the MIF 3.00 driver.
+
+Syntax:
+@example
+      set terminal mif @{color | colour | monochrome@} @{polyline | vectors@}
+                       @{help | ?@}
+
+@end example
+
+`colour` plots lines with line types >= 0 in colour (MIF sep. 2--7) and
+`monochrome` plots all line types in black (MIF sep. 0).
+`polyline` plots curves as continuous curves and `vectors` plots curves as
+collections of vectors.
+@ref{help} and `?` print online help on standard error output---both print a
+short description of the usage; @ref{help} also lists the options.
+
+Examples:
+@example
+      set term mif colour polylines    # defaults
+      set term mif                     # defaults
+      set term mif vectors
+      set term mif help"
+
+@end example
+
+@node mtos, next, mif, terminal_
+@subsubsection mtos
+
+@c ?commands set terminal mtos
+@c ?set terminal mtos
+@c ?set term mtos
+@c ?terminal mtos
+@c ?term mtos
+@cindex mtos
+@tmindex mtos
+
+
+The `mtos` terminal has no options.  It sends data via a pipe to an external
+program called GPCLIENT.  It runs under MULTITOS, Magic 3.x, MagicMAC. and
+MiNT.  If you cannot find GPCLIENT, than mail to dirk@@lstm.uni-erlangen.de."
+
+@node next, Openstep_(next), mtos, terminal_
+@subsubsection next
+
+@c ?commands set terminal next
+@c ?set terminal next
+@c ?set term next
+@c ?terminal next
+@c ?term next
+@cindex next
+
+@cindex NeXT
+
+Several options may be set in the next driver.
+
+Syntax:
+@example
+      set terminal next @{<mode>@} @{<type> @} @{<color>@} @{<dashed>@}
+                 @{"<fontname>"@} @{<fontsize>@} title @{"<newtitle>"@}
+
+@end example
+
+where <mode> is  `default`, which sets all options to their defaults;
+<type> is either `new` or `old`, where `old` invokes the old single window;
+<color> is either `color` or `monochrome`;
+<dashed> is either `solid` or `dashed`;
+"<fontname>" is the name of a valid PostScript font;
+<fontsize> is the size of the font in PostScript points; and
+<title> is the title for the GnuTerm window.
+Defaults are  `new`, `monochrome`, `dashed`, "Helvetica", 14pt.
+
+Examples:
+@example
+      set term next default
+      set term next 22
+      set term next color "Times-Roman" 14
+      set term next color "Helvetica" 12 title "MyPlot"
+      set term next old
+
+@end example
+
+Pointsizes may be changed with `set linestyle`."
+
+@node Openstep_(next), pbm, next, terminal_
+@subsubsection Openstep (next)
+
+@c ?commands set terminal openstep
+@c ?set terminal openstep
+@c ?set term openstep
+@c ?terminal openstep
+@c ?term openstep
+@cindex openstep
+
+@cindex OpenStep
+
+@cindex Openstep
+
+/*
+@cindex next
+
+@cindex NeXT
+
+*/
+Several options may be set in the openstep (next) driver.
+
+Syntax:
+@example
+      set terminal openstep @{<mode>@} @{<type> @} @{<color>@} @{<dashed>@}
+                 @{"<fontname>"@} @{<fontsize>@} title @{"<newtitle>"@}
+
+@end example
+
+where <mode> is  `default`, which sets all options to their defaults;
+<type> is either `new` or `old`, where `old` invokes the old single window;
+<color> is either `color` or `monochrome`;
+<dashed> is either `solid` or `dashed`;
+"<fontname>" is the name of a valid PostScript font;
+<fontsize> is the size of the font in PostScript points; and
+<title> is the title for the GnuTerm window.
+Defaults are  `new`, `monochrome`, `dashed`, "Helvetica", 14pt.
+
+Examples:
+@example
+      set term openstep default
+      set term openstep 22
+      set term openstep color "Times-Roman" 14
+      set term openstep color "Helvetica" 12 title "MyPlot"
+      set term openstep old
+
+@end example
+
+Pointsizes may be changed with `set linestyle`."
+
+@node pbm, dospc, Openstep_(next), terminal_
+@subsubsection pbm
+
+@c ?commands set terminal pbm
+@c ?set terminal pbm
+@c ?set term pbm
+@c ?terminal pbm
+@c ?term pbm
+@cindex pbm
+@tmindex pbm
+
+
+Several options may be set in the `pbm` terminal---the driver for PBMplus.
+
+Syntax:
+@example
+      set terminal pbm @{<fontsize>@} @{<mode>@} @{size <x>,<y>@}
+
+@end example
+
+where <fontsize> is `small`, `medium`, or `large` and <mode> is `monochrome`,
+`gray` or `color`.  The default plot size is 640 pixels wide and 480 pixels
+high.
+
+The output of the `pbm` driver depends upon <mode>: `monochrome` produces a
+portable bitmap (one bit per pixel), `gray` a portable graymap (three bits
+per pixel) and `color` a portable pixmap (color, four bits per pixel).
+
+The output of this driver can be used with various image conversion and
+manipulation utilities provided by NETPBM.  Based on Jef Poskanzer's
+PBMPLUS package, NETPBM provides programs to convert the above PBM formats
+to GIF, TIFF, MacPaint, Macintosh PICT, PCX, X11 bitmap and many others.
+Complete information is available at http://netpbm.sourceforge.net/.
+
+Examples:
+@example
+      set terminal pbm small monochrome                # defaults
+      set terminal pbm color medium size 800,600
+      set output '| pnmrotate 45 | pnmtopng > tilted.png'  # uses NETPBM"
+
+@end example
+
+@node dospc, pdf, pbm, terminal_
+@subsubsection dospc
+
+@c ?commands set terminal dospc
+@c ?set terminal dospc
+@c ?set term dospc
+@c ?terminal dospc
+@c ?term dospc
+@cindex dospc
+@tmindex dospc
+
+
+The `dospc` terminal driver supports PCs with arbitrary graphics boards,
+which will be automatically detected.  It should be used only if you are
+not using the gcc or Zortec C/C++ compilers."
+
+@node pdf, pstricks, dospc, terminal_
+@subsubsection pdf
+
+@c ?commands set terminal pdf
+@c ?set terminal pdf
+@c ?set term pdf
+@c ?terminal pdf
+@c ?term pdf
+@cindex pdf
+@tmindex pdf
+
+
+This terminal produces files in the Adobe Portable Document Format
+(PDF), useable for printing or display with tools like Acrobat Reader
+
+Syntax:
+@example
+      set terminal pdf @{monochrome|color|colour@}
+                       @{@{no@}enhanced@}
+                       @{fname "<font>"@} @{fsize <fontsize>@}
+                       @{font "<fontname>@{,<fontsize>@}"@}
+                       @{linewidth <lw>@} @{rounded|butt@}
+                       @{solid|dashed@} @{dl <dashlength>@}@}
+                       @{size <XX>@{unit@},<YY>@{unit@}@}
+
+@end example
+
+The default is to use a different color for each line type. Selecting
+`monochome` will use black for all linetypes, in which case you probably
+want to select `dashed` to distinguish line types. Even in in mono mode
+you can still use explicit colors for filled areas or linestyles.
+
+where <font> is the name of the default font to use (default Helvetica)
+and <fontsize> is the font size (in points, default 12).
+For help on which fonts are available or how to install new ones, please
+see the documentation for your local installation of pdflib.
+
+The `enhanced` option enables enhanced text processing features
+(subscripts, superscripts and mixed fonts). See `enhanced`.
+
+The width of all lines in the plot can be increased by the factor <n>
+specified in `linewidth`. Similarly `dashlength` is a multiplier for the
+default dash spacing.
+
+`rounded` sets line caps and line joins to be rounded; `butt` is the
+default, butt caps and mitered joins.
+
+The default size for PDF output is 5 inches by 3 inches. The @ref{size} option
+changes this to whatever the user requests. By default the X and Y sizes
+are taken to be in inches, but other units are possible (currently only cm).
+
+* does not work.
+
+@node pstricks, qms, pdf, terminal_
+@subsubsection pstricks
+
+@c ?commands set terminal pstricks
+@c ?set terminal pstricks
+@c ?set term pstricks
+@c ?terminal pstricks
+@c ?term pstricks
+@cindex pstricks
+@tmindex pstricks
+
+
+The `pstricks` driver is intended for use with the "pstricks.sty" macro
+package for LaTeX.  It is an alternative to the `eepic` and `latex` drivers.
+You need "pstricks.sty", and, of course, a printer that understands
+PostScript, or a converter such as Ghostscript.
+
+PSTricks is available via anonymous ftp from the /pub directory at
+Princeton.edu.  This driver definitely does not come close to using the full
+capability of the PSTricks package.
+
+Syntax:
+@example
+      set terminal pstricks @{hacktext | nohacktext@} @{unit | nounit@}
+
+@end example
+
+The first option invokes an ugly hack that gives nicer numbers; the second
+has to do with plot scaling.  The defaults are `hacktext` and `nounit`."
+
+@node qms, regis, pstricks, terminal_
+@subsubsection qms
+
+@c ?commands set terminal qms
+@c ?set terminal qms
+@c ?set term qms
+@c ?terminal qms
+@c ?term qms
+@cindex qms
+@tmindex qms
+
+
+The `qms` terminal driver supports the QMS/QUIC Laser printer, the Talaris
+1200 and others.  It has no options."
+
+@node regis, regis_, qms, terminal_
+@subsubsection regis
+
+@c ?commands set terminal regis
+@c ?set terminal regis
+@c ?set term regis
+@c ?terminal regis
+@c ?term regis
+@cindex regis
+@tmindex regis
+
+
+The `regis` terminal device generates output in the REGIS graphics language.
+It has the option of using 4 (the default) or 16 colors.
+
+Syntax:
+@example
+      set terminal regis @{4 | 16@}"
+
+@end example
+
+@node regis_, rgip, regis, terminal_
+@subsubsection regis
+
+@c ?commands set terminal regis
+@c ?set terminal regis
+@c ?set term regis
+@c ?terminal regis
+@c ?term regis
+@cindex regis
+@tmindex regis
+
+
+The `regis` terminal device generates output in the REGIS graphics language.
+It has the option of using 4 (the default) or 16 colors.
+
+Syntax:
+@example
+      set terminal regis @{4 | 16@}"
+
+@end example
+
+@node rgip, sun, regis_, terminal_
+@subsubsection rgip
+
+@c ?commands set terminal rgip
+@c ?set terminal rgip
+@c ?set term rgip
+@c ?terminal rgip
+@c ?term rgip
+@cindex rgip
+@tmindex rgip
+
+
+@c ?commands set terminal uniplex
+@c ?set terminal uniplex
+@c ?set term uniplex
+@c ?terminal uniplex
+@c ?term uniplex
+@cindex uniplex
+@tmindex uniplex
+
+
+The `rgip` and `uniplex` terminal drivers support RGIP metafiles.  They can
+combine several graphs on a single page, but only one page is allowed in a
+given output file.
+
+Syntax:
+@example
+      set terminal rgip | uniplex @{portrait | landscape@}
+                                  @{[<horiz>,<vert>]@} @{<fontsize>@}
+
+@end example
+
+permissible values for the font size are in the range 1--8, with the default
+being 1.  The default layout is landscape.  Graphs are placed on the page in
+a `horiz`x`vert` grid, which defaults to [1,1].
+
+Example:
+@example
+      set terminal uniplex portrait [2,3]
+
+@end example
+
+puts six graphs on a page in three rows of two in portrait orientation."
+
+@node sun, svg, rgip, terminal_
+@subsubsection sun
+
+@c ?commands set terminal sun
+@c ?set terminal sun
+@c ?set term sun
+@c ?terminal sun
+@c ?term sun
+@cindex sun
+@tmindex sun
+
+
+The `sun` terminal driver supports the SunView window system.  It has no
+options."
+
+@node svg, tek410x, sun, terminal_
+@subsubsection svg
+
+@c ?commands set terminal svg
+@c ?set terminal svg
+@c ?set term svg
+@c ?terminal svg
+@c ?term svg
+@cindex svg
+@tmindex svg
+
+
+This terminal produces files in the W3C Scalable Vector Graphics format.
+
+Syntax:
+@example
+      set terminal svg @{size <x>,<y> @{|fixed|dynamic@}@}
+                       @{@{no@}enhanced@}
+                       @{fname "<font>"@} @{fsize <fontsize>@}
+                       @{font "<fontname>@{,<fontsize>@}"@}
+                       @{fontfile <filename>@}
+                       @{rounded|butt@} @{solid|dashed@} @{linewidth <lw>@}
+
+@end example
+
+where <x> and <y> are the size of the SVG plot to generate,
+`dynamic` allows a svg-viewer to resize plot, whereas the default
+setting, `fixed`, will request an absolute size.
+
+`linewidth <w>` increases the width of all lines used in the figure
+by a factor of <w>.
+
+<font> is the name of the default font to use (default Arial) and
+<fontsize> is the font size (in points, default 12). SVG viewing
+programs may substitute other fonts when the file is displayed.
+
+The svg terminal supports an enhanced text mode, which allows font
+and other formatting commands to be embedded in labels and other text
+strings. The enhanced text mode syntax is shared with other gnuplot
+terminal types. See `enhanced` for more details.
+
+SVG allows you to embed fonts directly into an SVG document, or to
+provide a hypertext link to the desired font. The `fontfile` option
+specifies a local file which is copied into the <defs> section of the
+resulting SVG output file.  This file may either itself contain a font,
+or may contain the records necessary to create a hypertext reference to
+the desired font. Gnuplot will look for the requested file using the
+directory list in the GNUPLOT_FONTPATH environmental variable.
+NB: You must embed an svg font, not a TrueType or PostScript font."
+
+@node tek410x, tek410x_, svg, terminal_
+@subsubsection tek410x
+
+@c ?commands set terminal tek410x
+@c ?set terminal tek410x
+@c ?set term tek410x
+@c ?terminal tek410x
+@c ?term tek410x
+@cindex tek410x
+@tmindex tek410x
+
+
+The `tek410x` terminal driver supports the 410x and 420x family of Tektronix
+terminals.  It has no options."
+
+@node tek410x_, tek40, tek410x, terminal_
+@subsubsection tek410x
+
+@c ?commands set terminal tek410x
+@c ?set terminal tek410x
+@c ?set term tek410x
+@c ?terminal tek410x
+@c ?term tek410x
+@cindex tek410x
+@tmindex tek410x
+
+
+The `tek410x` terminal driver supports the 410x and 420x family of Tektronix
+terminals.  It has no options."
+
+@node tek40, texdraw, tek410x_, terminal_
+@subsubsection tek40
+
+@c ?commands set terminal tek40xx
+@c ?set terminal tek40xx
+@c ?set term tek40xx
+@c ?terminal tek40xx
+@c ?term tek40xx
+@cindex tek40
+@tmindex tek40
+
+
+@c ?commands set terminal vttek
+@c ?set terminal vttek
+@c ?set term vttek
+@c ?terminal vttek
+@c ?term vttek
+@cindex vttek
+@tmindex vttek
+
+
+@c ?commands set terminal kc-tek40xx
+@c ?set terminal kc-tek40xx
+@c ?set term kc-tek40xx
+@c ?terminal kc-tek40xx
+@c ?term kc-tek40xx
+@cindex kc-tek40xx
+@tmindex kc-tek40xx
+
+
+@c ?commands set terminal km-tek40xx
+@c ?set terminal km-tek40xx
+@c ?set term km-tek40xx
+@c ?terminal km-tek40xx
+@c ?term km-tek40xx
+@cindex km-tek40xx
+@tmindex km-tek40xx
+
+
+@c ?commands set terminal selanar
+@c ?set terminal selanar
+@c ?set term selanar
+@c ?terminal selanar
+@c ?term selanar
+@cindex selanar
+@tmindex selanar
+
+
+@c ?commands set terminal bitgraph
+@c ?set terminal bitgraph
+@c ?set term bitgraph
+@c ?terminal bitgraph
+@c ?term bitgraph
+@cindex bitgraph
+@tmindex bitgraph
+
+
+@c ?commands set terminal xterm
+@c ?set terminal xterm
+@c ?set term xterm
+@c ?terminal xterm
+@c ?term xterm
+@cindex xterm
+@tmindex xterm
+
+
+This family of terminal drivers supports a variety of VT-like terminals.
+`tek40xx` supports Tektronix 4010 and others as well as most TEK emulators;
+`vttek` supports VT-like tek40xx terminal emulators; `kc-tek40xx` supports
+MS-DOS Kermit Tek4010 terminal emulators in color: `km-tek40xx` supports them
+in monochrome; `selanar` supports Selanar graphics; and `bitgraph` supports
+BBN Bitgraph terminals.  None have any options."
+
+@node texdraw, tgif, tek40, terminal_
+@subsubsection texdraw
+
+@c ?commands set terminal texdraw
+@c ?set terminal texdraw
+@c ?set term texdraw
+@c ?terminal texdraw
+@c ?term texdraw
+@cindex texdraw
+@tmindex texdraw
+
+
+The `texdraw` terminal driver supports the LaTeX texdraw environment.  It is
+intended for use with "texdraw.sty" and "texdraw.tex" in the texdraw package.
+
+Points, among other things, are drawn using the LaTeX commands "\\Diamond" and
+"\\Box".  These commands no longer belong to the LaTeX2e core; they are included
+in the latexsym package, which is part of the base distribution and thus part
+of any LaTeX implementation.  Please do not forget to use this package.
+
+It has no options."
+
+@node tgif, tgif_, texdraw, terminal_
+@subsubsection tgif
+
+@c ?commands set terminal tgif
+@c ?set terminal tgif
+@c ?set term tgif
+@c ?terminal tgif
+@c ?term tgif
+@cindex tgif
+@tmindex tgif
+
+
+Tgif is an X11-based drawing tool---it has nothing to do with GIF.
+
+The `tgif` driver supports different pointsizes (with @ref{pointsize}),
+different label fonts and font sizes (e.g. `set label "Hallo" at x,y font
+"Helvetica,34"`) and multiple graphs on the page.  The proportions of the
+axes are not changed.
+
+Syntax:
+@example
+      set terminal tgif @{portrait | landscape | default@} @{<[x,y]>@}
+                        @{monochrome | color@}
+                        @{@{linewidth | lw@} <LW>@}
+                        @{solid | dashed@}
+                        @{font "<fontname>"@} @{<fontsize>@}
+
+@end example
+
+where <[x,y]> specifies the number of graphs in the x and y directions on the
+page, `color` enables color, `linewidth` scales all linewidths by <LW>,
+"<fontname>" is the name of a valid PostScript font, and <fontsize>
+specifies the size of the PostScript font.
+`defaults` sets all options to their defaults: `portrait`, `[1,1]`, `color`,
+`linwidth 1.0`, `dashed`, `"Helvetica"`, and `18`.
+
+The `solid` option is usually prefered if lines are colored, as they often
+are in the editor.  Hardcopy will be black-and-white, so `dashed` should be
+chosen for that.
+
+Multiplot is implemented in two different ways.
+
+The first multiplot implementation is the standard gnuplot multiplot feature:
+
+@example
+      set terminal tgif
+      set output "file.obj"
+      set multiplot
+      set origin x01,y01
+      set size  xs,ys
+      plot ...
+           ...
+      set origin x02,y02
+      plot ...
+      unset multiplot
+
+@end example
+
+See @ref{multiplot} for further information.
+
+The second version is the [x,y] option for the driver itself.  The advantage
+of this implementation is that everything is scaled and placed automatically
+without the need for setting origins and sizes; the graphs keep their natural
+x/y proportions of 3/2 (or whatever is fixed by @ref{size}).
+
+If both multiplot methods are selected, the standard method is chosen and a
+warning message is given.
+
+Examples of single plots (or standard multiplot):
+@example
+      set terminal tgif                  # defaults
+      set terminal tgif "Times-Roman" 24
+      set terminal tgif landscape
+      set terminal tgif landscape solid
+
+@end example
+
+Examples using the built-in multiplot mechanism:
+@example
+      set terminal tgif portrait [2,4]  # portrait; 2 plots in the x-
+                                        # and 4 in the y-direction
+      set terminal tgif [1,2]           # portrait; 1 plot in the x-
+                                        # and 2 in the y-direction
+      set terminal tgif landscape [3,3] # landscape; 3 plots in both
+                                        # directions"
+
+@end example
+
+@node tgif_, tkcanvas, tgif, terminal_
+@subsubsection tgif
+
+@c ?commands set terminal tgif
+@c ?set terminal tgif
+@c ?set term tgif
+@c ?terminal tgif
+@c ?term tgif
+@cindex tgif
+@tmindex tgif
+
+
+Tgif is an X11-based drawing tool---it has nothing to do with GIF.
+
+The `tgif` driver supports different pointsizes (with @ref{pointsize}),
+different label fonts and font sizes (e.g. `set label "Hallo" at x,y font
+"Helvetica,34"`) and multiple graphs on the page.  The proportions of the
+axes are not changed.
+
+Syntax:
+@example
+      set terminal tgif @{portrait | landscape | default@} @{<[x,y]>@}
+                        @{monochrome | color@}
+                        @{@{linewidth | lw@} <LW>@}
+                        @{solid | dashed@}
+                        @{font "<fontname>"@} @{<fontsize>@}
+
+@end example
+
+where <[x,y]> specifies the number of graphs in the x and y directions on the
+page, `color` enables color, `linewidth` scales all linewidths by <LW>,
+"<fontname>" is the name of a valid PostScript font, and <fontsize>
+specifies the size of the PostScript font.
+`defaults` sets all options to their defaults: `portrait`, `[1,1]`, `color`,
+`linwidth 1.0`, `dashed`, `"Helvetica"`, and `18`.
+
+The `solid` option is usually prefered if lines are colored, as they often
+are in the editor.  Hardcopy will be black-and-white, so `dashed` should be
+chosen for that.
+
+Multiplot is implemented in two different ways.
+
+The first multiplot implementation is the standard gnuplot multiplot feature:
+
+@example
+      set terminal tgif
+      set output "file.obj"
+      set multiplot
+      set origin x01,y01
+      set size  xs,ys
+      plot ...
+           ...
+      set origin x02,y02
+      plot ...
+      unset multiplot
+
+@end example
+
+See @ref{multiplot} for further information.
+
+The second version is the [x,y] option for the driver itself.  The advantage
+of this implementation is that everything is scaled and placed automatically
+without the need for setting origins and sizes; the graphs keep their natural
+x/y proportions of 3/2 (or whatever is fixed by @ref{size}).
+
+If both multiplot methods are selected, the standard method is chosen and a
+warning message is given.
+
+Examples of single plots (or standard multiplot):
+@example
+      set terminal tgif                  # defaults
+      set terminal tgif "Times-Roman" 24
+      set terminal tgif landscape
+      set terminal tgif landscape solid
+
+@end example
+
+Examples using the built-in multiplot mechanism:
+@example
+      set terminal tgif portrait [2,4]  # portrait; 2 plots in the x-
+                                        # and 4 in the y-direction
+      set terminal tgif [1,2]           # portrait; 1 plot in the x-
+                                        # and 2 in the y-direction
+      set terminal tgif landscape [3,3] # landscape; 3 plots in both
+                                        # directions"
+
+@end example
+
+@node tkcanvas, tpic, tgif_, terminal_
+@subsubsection tkcanvas
+
+@c ?commands set terminal tkcanvas
+@c ?set terminal tkcanvas
+@c ?set term tkcanvas
+@c ?terminal tkcanvas
+@c ?term tkcanvas
+@cindex tkcanvas
+@tmindex tkcanvas
+
+
+This terminal driver generates Tk canvas widget commands based on Tcl/Tk
+(default) or Perl.  To use it, rebuild `gnuplot` (after uncommenting or
+inserting the appropriate line in "term.h"), then
+
+@example
+ gnuplot> set term tkcanvas @{perltk@} @{interactive@}
+ gnuplot> set output 'plot.file'
+
+@end example
+
+After invoking "wish", execute the following sequence of Tcl/Tk commands:
+
+@example
+ % source plot.file
+ % canvas .c
+ % pack .c
+ % gnuplot .c
+
+@end example
+
+Or, for Perl/Tk use a program like this:
+
+@example
+ use Tk;
+ my $top = MainWindow->new;
+ my $c = $top->Canvas->pack;
+ my $gnuplot = do "plot.pl";
+ $gnuplot->($c);
+ MainLoop;
+
+@end example
+
+The code generated by `gnuplot` creates a procedure called "gnuplot"
+that takes the name of a canvas as its argument.  When the procedure is
+called, it clears the canvas, finds the size of the canvas and draws the plot
+in it, scaled to fit.
+
+For 2-dimensional plotting (`plot`) two additional procedures are defined:
+"gnuplot_plotarea" will return a list containing the borders of the plotting
+area "xleft, xright, ytop, ybot" in canvas screen coordinates, while the ranges
+of the two axes "x1min, x1max, y1min, y1max, x2min, x2max, y2min, y2max" in plot
+coordinates can be obtained calling "gnuplot_axisranges".
+If the "interactive" option is specified, mouse clicking on a line segment
+will print the coordinates of its midpoint to stdout. Advanced actions
+can happen instead if the user supplies a procedure named
+"user_gnuplot_coordinates", which takes the following arguments:
+"win id x1s y1s x2s y2s x1e y1e x2e y2e x1m y1m x2m y2m",
+the name of the canvas and the id of the line segment followed by the
+coordinates of its start and end point in the two possible axis ranges; the
+coordinates of the midpoint are only filled for logarithmic axes.
+
+The current version of `tkcanvas` supports neither @ref{multiplot} nor @ref{replot}."
+
+@node tpic, unixpc, tkcanvas, terminal_
+@subsubsection tpic
+
+@c ?commands set terminal tpic
+@c ?set terminal tpic
+@c ?set term tpic
+@c ?terminal tpic
+@c ?term tpic
+@cindex tpic
+@tmindex tpic
+
+
+The `tpic` terminal driver supports the LaTeX picture environment with tpic
+\\specials.  It is an alternative to the `latex` and `eepic` terminal drivers.
+Options are the point size, line width, and dot-dash interval.
+
+Syntax:
+@example
+      set terminal tpic <pointsize> <linewidth> <interval>
+
+@end example
+
+where @ref{pointsize} and `linewidth` are integers in milli-inches and `interval`
+is a float in inches.  If a non-positive value is specified, the default is
+chosen: pointsize = 40, linewidth = 6, interval = 0.1.
+
+All drivers for LaTeX offer a special way of controlling text positioning:
+If any text string begins with '@{', you also need to include a '@}' at the
+end of the text, and the whole text will be centered both horizontally
+and vertically by LaTeX. --- If the text string begins with '[', you need
+to continue it with: a position specification (up to two out of t,b,l,r),
+']@{', the text itself, and finally, '@}'. The text itself may be anything
+LaTeX can typeset as an LR-box. \\rule@{@}@{@}'s may help for best positioning.
+
+Examples:
+About label positioning:
+Use gnuplot defaults (mostly sensible, but sometimes not really best):
+@example
+       set title '\\LaTeX\\ -- $ \\gamma $'
+@end example
+
+Force centering both horizontally and vertically:
+@example
+       set label '@{\\LaTeX\\ -- $ \\gamma $@}' at 0,0
+@end example
+
+Specify own positioning (top here):
+@example
+       set xlabel '[t]@{\\LaTeX\\ -- $ \\gamma $@}'
+@end example
+
+The other label -- account for long ticlabels:
+@example
+       set ylabel '[r]@{\\LaTeX\\ -- $ \\gamma $\\rule@{7mm@}@{0pt@}@}'"
+
+@end example
+
+@node unixpc, unixplot, tpic, terminal_
+@subsubsection unixpc
+
+@c ?commands set terminal unixpc
+@c ?set terminal unixpc
+@c ?set term unixpc
+@c ?terminal unixpc
+@c ?term unixpc
+@cindex unixpc
+@tmindex unixpc
+
+
+The `unixpc` terminal driver supports AT&T 3b1 and AT&T 7300 Unix PC.  It has
+no options."
+
+@node unixplot, vx384, unixpc, terminal_
+@subsubsection unixplot
+
+@c ?commands set terminal unixplot
+@c ?set terminal unixplot
+@c ?set term unixplot
+@c ?terminal unixplot
+@c ?term unixplot
+@cindex unixplot
+@tmindex unixplot
+
+
+The `unixplot` terminal driver generates output in the Unix "plot" graphics
+language.  It has no options.
+
+This terminal cannot be compiled if the GNU version of plot is to be used;
+in that case, use the `gnugraph` terminal instead."
+
+@node vx384, vgagl, unixplot, terminal_
+@subsubsection vx384
+
+@c ?commands set terminal vx384
+@c ?set terminal vx384
+@c ?set term vx384
+@c ?terminal vx384
+@c ?term vx384
+@cindex vx384
+@tmindex vx384
+
+
+The `vx384` terminal driver supports the Vectrix 384 and Tandy color
+printers.  It has no options."
+
+@node vgagl, VWS, vx384, terminal_
+@subsubsection vgagl
+
+@c ?commands set terminal vgagl
+@c ?set terminal vgagl
+@c ?set term vgagl
+@c ?terminal vgagl
+@c ?term vgagl
+@cindex vgagl
+@tmindex vgagl
+
+
+The `vgagl` driver is a fast linux console driver with full mouse and pm3d
+support.  It looks at the environment variable SVGALIB_DEFAULT_MODE for the
+default mode; if not set, it uses a 256 color mode with the highest
+available resolution.
+
+Syntax:
+@example
+   set terminal vgagl \\
+                background [red] [[green] [blue]] \\
+                [uniform | interpolate] \\
+                [dump "file"] \\
+                [mode]
+
+@end example
+
+The color mode can also be given with the mode option. Both Symbolic
+names as G1024x768x256 and integers are allowed. The `background` option
+takes either one or three integers in the range [0, 255]. If only one
+integers is supplied, it is taken as gray value for the background.
+If three integers are present, the background gets the corresponding
+color.
+The (mutually exclusive) options `interpolate` and `uniform` control
+if color interpolation is done while drawing triangles (on by default).
+
+A @ref{file} can be specified with the `dump "file"` option.
+If this option is present, (i.e the dump file name is not empty) pressing
+the key KP_Delete will write the file.  This action cannot and cannot be
+rebound. The file is written in raw ppm (P6) format. Note that this option
+is reset each time the `set term` command is issued.
+
+To get high resolution modes, you will probably have to modify the
+configuration file of libvga, usually /etc/vga/libvga.conf.  Using
+the VESA fb is a good choice, but this needs to be compiled in the
+kernel.
+
+The vgagl driver uses the first *available* vga mode from the following list:
+@example
+ - the driver which was supplied when setting vgagl, e.g. `set term vgagl
+   G1024x768x256` would first check, if the G1024x768x256 mode is available.
+ - the environment variable SVGALIB_DEFAULT_MODE
+ - G1024x768x256
+ - G800x600x256
+ - G640x480x256
+ - G320x200x256
+ - G1280x1024x256
+ - G1152x864x256
+ - G1360x768x256
+ - G1600x1200x256
+
+@end example
+
+
+@node VWS, windows, vgagl, terminal_
+@subsubsection VWS
+
+@c ?commands set terminal VWS
+@c ?set terminal VWS
+@c ?set term VWS
+@c ?terminal VWS
+@c ?term VWS
+@cindex VWS
+@tmindex VWS
+
+
+The `VWS` terminal driver supports the VAX Windowing System.  It has
+no options.  It will sense the display type (monochrome, gray scale,
+or color.)  All line styles are plotted as solid lines."
+
+@node windows, x11, VWS, terminal_
+@subsubsection windows
+
+@c ?commands set terminal windows
+@c ?set terminal windows
+@c ?set term windows
+@c ?terminal windows
+@c ?term windows
+@cindex windows
+@tmindex windows
+
+
+Three options may be set in the `windows` terminal driver.
+
+Syntax:
+@example
+      set terminal windows @{color | monochrome@}
+                           @{enhanced | noenhanced@}
+                           @{@{font@} "fontname@{,fontsize@}" @{<fontsize>@}@}
+
+@end example
+
+where `color` and `monochrome` select colored or mono output,
+`enhanced` enables enhanced text mode features (subscripts,
+superscripts and mixed fonts). See `enhanced` for more information.
+`"<fontname>"` is the name of a valid Windows font, and `<fontsize>`
+is the size of the font in points.
+
+Other options may be set with the graph-menu or the initialization file.
+
+The Windows version normally terminates immediately as soon as the end of
+any files given as command line arguments is reached (i.e. in non-interactive
+mode), unless you specify `-` as the last command line option.
+It will also not show the text-window at all, in this mode, only the plot.
+By giving the optional argument `-persist` (same as for gnuplot under x11;
+former Windows-only options `/noend` or `-noend` are still accepted as well),
+will not close gnuplot. Contrary to gnuplot on other operating systems,
+gnuplot's interactive command line is accessible after the -persist option.
+
+
+@noindent --- GRAPH-MENU ---
+
+@c ?commands set terminal windows graph-menu
+@c ?set terminal windows graph-menu
+@c ?set term windows graph-menu
+@c ?windows graph-menu
+@cindex graph-menu
+@tmindex graph-menu
+
+
+The `gnuplot graph` window has the following options on a pop-up menu
+accessed by pressing the right mouse button or selecting `Options` from the
+system menu:
+
+`Bring to Top` when checked brings the graph window to the top after every
+plot.
+
+`Color` when checked enables color linestyles.  When unchecked it forces
+monochrome linestyles.
+
+`Copy to Clipboard` copies a bitmap and a Metafile picture.
+
+`Background...` sets the window background color.
+
+`Choose Font...` selects the font used in the graphics window.
+
+`Line Styles...` allows customization of the line colors and styles.
+
+`Print...` prints the graphics windows using a Windows printer driver and
+allows selection of the printer and scaling of the output.  The output
+produced by `Print` is not as good as that from `gnuplot`'s own printer
+drivers.
+
+`Update wgnuplot.ini` saves the current window locations, window sizes, text
+window font, text window font size, graph window font, graph window font
+size, background color and linestyles to the initialization file
+`WGNUPLOT.INI`.
+
+
+@noindent --- PRINTING ---
+
+@c ?commands set terminal windows printing
+@c ?set terminal windows printing
+@c ?set term windows printing
+@c ?windows printing
+@cindex printing
+@tmindex printing
+
+
+In order of preference, graphs may be be printed in the following ways.
+
+`1.` Use the `gnuplot` command @ref{terminal} to select a printer and @ref{output} to redirect output to a file.
+
+`2.` Select the `Print...` command from the `gnuplot graph` window.  An extra
+command `screendump` does this from the text window.
+
+`3.` If `set output "PRN"` is used, output will go to a temporary file.  When
+you exit from `gnuplot` or when you change the output with another @ref{output} command, a dialog box will appear for you to select a printer port.
+If you choose OK, the output will be printed on the selected port, passing
+unmodified through the print manager.  It is possible to accidentally (or
+deliberately) send printer output meant for one printer to an incompatible
+printer.
+
+
+@noindent --- TEXT-MENU ---
+
+@c ?commands set terminal windows text-menu
+@c ?set terminal windows text-menu
+@c ?set term windows text-menu
+@c ?windows text-menu
+@cindex text-menu
+@tmindex text-menu
+
+
+The `gnuplot text` window has the following options on a pop-up menu accessed
+by pressing the right mouse button or selecting `Options` from the system
+menu:
+
+`Copy to Clipboard` copies marked text to the clipboard.
+
+`Paste` copies text from the clipboard as if typed by the user.
+
+`Choose Font...` selects the font used in the text window.
+
+`System Colors` when selected makes the text window honor the System Colors
+set using the Control Panel.  When unselected, text is black or blue on a
+white background.
+
+`Update wgnuplot.ini` saves the current text window location, text window
+size, text window font and text window font size to the initialisation file
+`WGNUPLOT.INI`.
+
+`MENU BAR`
+
+If the menu file `WGNUPLOT.MNU` is found in the same directory as
+WGNUPLOT.EXE, then the menu specified in `WGNUPLOT.MNU` will be loaded.
+Menu commands:
+
+[Menu] starts a new menu with the name on the following line.
+
+[EndMenu] ends the current menu.
+
+[--] inserts a horizontal menu separator.
+
+[|] inserts a vertical menu separator.
+
+[Button] puts the next macro on a push button instead of a menu.
+
+Macros take two lines with the macro name (menu entry) on the first line and
+the macro on the second line.  Leading spaces are ignored.  Macro commands:
+
+[INPUT] --- Input string with prompt terminated by [EOS] or @{ENTER@}
+
+[EOS] --- End Of String terminator.  Generates no output.
+
+[OPEN] --- Get name of file to open from list box, with title of list box
+terminated by [EOS], followed by default filename terminated by [EOS] or
+@{ENTER@}.
+
+[SAVE] --- Get name of file to save.  Similar to [OPEN]
+
+Macro character substitutions:
+
+@{ENTER@} --- Carriage Return '\\r'
+
+@{TAB@} --- Tab '\\011'
+
+@{ESC@} --- Escape '\\033'
+
+@{^A@} --- '\\001'
+
+...
+
+@{^_@} --- '\\031'
+
+Macros are limited to 256 characters after expansion.
+
+
+@noindent --- WGNUPLOT.INI ---
+
+@c ?commands set terminal windows wgnuplot.ini
+@c ?set terminal windows wgnuplot.ini
+@c ?set term windows wgnuplot.ini
+@c ?windows wgnuplot.ini
+@cindex wgnuplot.ini
+@tmindex wgnuplot.ini
+
+
+Windows `gnuplot` will read some of its options from the `[WGNUPLOT]` section
+of `WGNUPLOT.INI` in user's %APPDATA% directory.  A sample `WGNUPLOT.INI` file:
+
+@example
+      [WGNUPLOT]
+      TextOrigin=0 0
+      TextSize=640 150
+      TextFont=Terminal,9
+      GraphOrigin=0 150
+      GraphSize=640 330
+      GraphFont=Arial,10
+      GraphColor=1
+      GraphToTop=1
+      GraphBackground=255 255 255
+      Border=0 0 0 0 0
+      Axis=192 192 192 2 2
+      Line1=0 0 255 0 0
+      Line2=0 255 0 0 1
+      Line3=255 0 0 0 2
+      Line4=255 0 255 0 3
+      Line5=0 0 128 0 4
+
+@end example
+
+The `GraphFont` entry specifies the font name and size in points.  The five
+numbers given in the `Border`, `Axis` and `Line` entries are the `Red`
+intensity (0--255), `Green` intensity, `Blue` intensity, `Color Linestyle`
+and `Mono Linestyle`.  `Linestyles` are 0=SOLID, 1=DASH, 2=DOT, 3=DASHDOT,
+4=DASHDOTDOT.  In the sample `WGNUPLOT.INI` file above, Line 2 is a green
+solid line in color mode, or a dashed line in monochrome mode.  The default
+line width is 1 pixel.  If `Linestyle` is negative, it specifies the width of
+a SOLID line in pixels.  Line1 and any linestyle used with the `points` style
+must be SOLID with unit width."
+
+@node x11, x11_, windows, terminal_
+@subsubsection x11
+
+@c ?commands set terminal x11
+@c ?set terminal x11
+@c ?set term x11
+@c ?terminal x11
+@c ?term x11
+@cindex x11
+
+@cindex X11
+
+`gnuplot` provides the `x11` terminal type for use with X servers.  This
+terminal type is set automatically at startup if the `DISPLAY` environment
+variable is set, if the `TERM` environment variable is set to `xterm`, or
+if the `-display` command line option is used.
+
+Syntax:
+@example
+   set terminal x11 @{<n>@}
+                    @{title "<string>"@}
+                    @{@{no@}enhanced@} @{font <fontspec>@}
+                    @{linewidth LW@} @{solid|dashed@}
+                    @{@{no@}persist@} @{@{no@}raise@} @{@{no@}ctrlq@}
+                    @{close@}
+                    @{size XX,YY@} @{position XX,YY@}
+   set terminal x11 @{reset@}
+
+@end example
+
+Multiple plot windows are supported: `set terminal x11 <n>` directs the
+output to plot window number n.  If n is not 0, the terminal number will be
+appended to the window title (unless a title has been supplied manually)
+and the icon will be labeled `Gnuplot <n>`.  The active window may be
+distinguished by a change in cursor (from default to crosshair).
+
+The x11 terminal support enhanced text mode (see `enhanced`), subject
+to the available fonts. In order for font size commands embedded in text
+to have any effect, the default x11 font must be scalable. Thus the first
+example below will work as expected, but the second will not.
+
+@example
+   set term x11 enhanced font "arial,15" 
+   set title '@{/=20 Big@} Medium @{/=5 Small@}' 
+
+@end example
+
+@example
+   set term x11 enhanced font "terminal-14" 
+   set title '@{/=20 Big@} Medium @{/=5 Small@}' 
+
+@end example
+
+Plot windows remain open even when the `gnuplot` driver is changed to a
+different device.  A plot window can be closed by pressing the letter q
+while that window has input focus, or by choosing `close` from a window
+manager menu.  All plot windows can be closed by specifying @ref{reset}, which
+actually terminates the subprocess which maintains the windows (unless
+`-persist` was specified).  The `close` command can be used to close
+individual plot windows by number.  However, after a @ref{reset}, those plot
+windows left due to persist cannot be closed with the command `close`.
+A `close` without a number closes the current active plot window.
+
+The gnuplot outboard driver, gnuplot_x11, is searched in a default place
+chosen when the program is compiled.  You can override that by defining
+the environment variable GNUPLOT_DRIVER_DIR to point to a different
+location.
+
+Plot windows will automatically be closed at the end of the session
+unless the `-persist` option was given.
+
+The options `persist` and @ref{raise} are unset by default, which means that
+the defaults (persist == no and raise == yes) or the command line options
+-persist / -raise or the Xresources are taken.  If [no]persist or
+[no]raise are specified, they will override command line options and
+Xresources.  Setting one of these options takes place immediately, so
+the behaviour of an already running driver can be modified.  If the window
+does not get raised, see discussion in @ref{raise}.
+
+The option `title "<title name>"` will supply the title name of the window
+for the current plot window or plot window <n> if a number is given.
+Where (or if) this title is shown depends on your X window manager.
+
+The size option can be used to set the size of the plot window.  The
+size option will only apply to newly created windows.
+
+The position option can be used to set the position of the plot window.  The
+position option will only apply to newly created windows.
+
+The size or aspect ratio of a plot may be changed by resizing the `gnuplot`
+window.
+
+Linewidths and pointsizes may be changed from within `gnuplot` with
+`set linestyle`.
+
+For terminal type `x11`, `gnuplot` accepts (when initialized) the standard
+X Toolkit options and resources such as geometry, font, and name from the
+command line arguments or a configuration file.  See the X(1) man page
+(or its equivalent) for a description of such options.
+
+@cindex X resources
+
+A number of other `gnuplot` options are available for the `x11` terminal.
+These may be specified either as command-line options when `gnuplot` is
+invoked or as resources in the configuration file ".Xdefaults".  They are
+set upon initialization and cannot be altered during a `gnuplot` session.
+(except `persist` and @ref{raise})
+
+
+@noindent --- X11_FONTS ---
+
+@c ?commands set terminal x11 x11_fonts
+@c ?set terminal x11 x11_fonts
+@c ?set term x11 x11_fonts
+@c ?x11 x11_fonts
+@cindex x11_fonts
+
+@cindex fonts
+
+Upon initial startup, the default font is taken from the X11 resources
+as set in the system or user .Xdefaults file or on the command line.
+
+Example:
+@example
+      gnuplot*font: lucidasans-bold-12
+@end example
+
+A new default font may be specified to the x11 driver from inside
+gnuplot using
+@example
+     `set term x11 font "<fontspec>"`
+@end example
+
+The driver first queries the X-server for a font of the exact name given.
+If this query fails, then it tries to interpret <fontspec> as
+"<font>,<size>,<slant>,<weight>" and to construct a full X11 font name
+of the form
+@example
+      -*-<font>-<weight>-<s>-*-*-<size>-*-*-*-*-*-<encoding>
+
+@end example
+
+@example
+ <font> is the base name of the font (e.g. Times or Symbol)
+ <size> is the point size (defaults to 12 if not specified)
+ <s> is `i` if <slant>=="italic" `o` if <slant>=="oblique" `r` otherwise
+ <weight> is `medium` or `bold` if explicitly requested, otherwise `*`
+ <encoding> is set based on the current character set (see @ref{encoding}).
+@end example
+
+So `set term x11 font "arial,15,italic"` will be translated to
+-*-arial-*-i-*-*-15-*-*-*-*-*-iso8859-1 (assuming default encoding).
+The <size>, <slant>, and <weight> specifications are all optional.
+If you do not specify <slant> or <weight> then you will get whatever font 
+variant the font server offers first.
+You may set a default enconding via the corresponding X11 resource. E.g.
+@example
+      gnuplot*encoding: iso8859-15
+@end example
+
+The driver also recognizes some common PostScript font names and
+replaces them with possible X11 or TrueType equivalents.
+This same sequence is used to process font requests from @ref{label}.
+
+If your gnuplot was built with configuration option --enable-x11-mbfonts,
+you can specify multi-byte fonts by using the prefix "mbfont:" on the font
+name. An additional font may be given, separated by a semicolon.
+Since multi-byte font encodings are interpreted according to the locale
+setting, you must make sure that the environmental variable LC_CTYPE is set
+to some appropriate locale value such as ja_JP.eucJP, ko_KR.EUC, or zh_CN.EUC.
+
+Example:
+@example
+      set term x11 font 'mbfont:kana14;k14'
+            # 'kana14' and 'k14' are Japanese X11 font aliases, and ';'
+            # is the separator of font names.
+      set term x11 font 'mbfont:fixed,16,r,medium'
+            # <font>,<size>,<slant>,<weight> form is also usable.
+      set title '(mb strings)' font 'mbfont:*-fixed-medium-r-normal--14-*'
+
+@end example
+
+The same syntax applies to the default font in Xresources settings,
+for example,
+@example
+      gnuplot*font: \\
+          mbfont:-misc-fixed-medium-r-normal--14-*-*-*-c-*-jisx0208.1983-0
+
+@end example
+
+If gnuplot is built with --enable-x11-mbfonts, you can use two special
+PostScript font names 'Ryumin-Light-*' and 'GothicBBB-Medium-*' (standard
+Japanese PS fonts) without the prefix "mbfont:".
+
+
+
+@noindent --- COMMAND-LINE_OPTIONS ---
+
+@c ?commands set terminal x11 command-line-options
+@c ?set terminal x11 command-line-options
+@c ?set term x11 command-line-options
+@c ?x11 command-line-options
+@cindex command-line-options
+
+In addition to the X Toolkit options, the following options may be specified
+on the command line when starting `gnuplot` or as resources in your
+".Xdefaults" file (note that @ref{raise} and `persist` can be overridden
+later by `set term x11 [no]raise [no]persist)`:
+
+@example
+ `-mono`     forces monochrome rendering on color displays.
+ `-gray`     requests grayscale rendering on grayscale or color displays.
+             (Grayscale displays receive monochrome rendering by default.)
+ `-clear`    requests that the window be cleared momentarily before a
+             new plot is displayed.
+ `-tvtwm`    requests that geometry specifications for position of the
+             window be made relative to the currently displayed portion
+             of the virtual root.
+ `-raise`    raises plot window after each plot
+ `-noraise`  does not raise plot window after each plot
+ `-noevents` does not process mouse and key events
+ `-ctrlq   ` closes window on ctrl-q rather than q
+ `-persist`  plot windows survive after main gnuplot program exits
+
+@end example
+
+@cindex X resources
+
+The options are shown above in their command-line syntax.  When entered as
+resources in ".Xdefaults", they require a different syntax.
+
+Example:
+@example
+      gnuplot*gray:  on
+      gnuplot*ctrlq: on
+
+@end example
+
+`gnuplot` also provides a command line option (`-pointsize <v>`) and a
+resource, `gnuplot*pointsize: <v>`, to control the size of points plotted
+with the `points` plotting style.  The value `v` is a real number (greater
+than 0 and less than or equal to ten) used as a scaling factor for point
+sizes.  For example, `-pointsize 2` uses points twice the default size, and
+`-pointsize 0.5` uses points half the normal size.
+
+The `-noevents` switch disables all mouse and key event processing (except
+for `q` and `<space>` for closing the window). This is useful for programs
+which use the x11 driver independent of the gnuplot main program.
+
+The `-ctrlq` switch changes the hot-key that closes a plot window from `q`
+to `<ctrl>q`. This is useful is you are using the keystroke-capture feature
+`pause mouse keystroke`, since it allows the character `q` to be captured
+just as all other alphanumeric characters. The `-ctrlq` switch similarly
+replaces the <space> hot-key with <ctrl><space> for the same reason.
+
+
+
+@noindent --- MONOCHROME_OPTIONS ---
+
+@c ?commands set terminal x11 monochrome_options
+@c ?set terminal x11 monochrome_options
+@c ?set term x11 monochrome_options
+@c ?x11 monochrome_options
+@cindex monochrome_options
+
+@cindex X resources
+
+For monochrome displays, `gnuplot` does not honor foreground or background
+colors.  The default is black-on-white.  `-rv` or `gnuplot*reverseVideo: on`
+requests white-on-black.
+
+
+
+@noindent --- COLOR_RESOURCES ---
+
+@c ?commands set terminal x11 color_resources
+@c ?set terminal x11 color_resources
+@c ?set term x11 color_resources
+@c ?x11 color_resources
+@cindex color_resources
+
+@cindex X resources
+
+For color displays, `gnuplot` honors the following resources (shown here
+with their default values) or the greyscale resources.  The values may be
+color names as listed in the X11 rgb.txt file on your system, hexadecimal
+RGB color specifications (see X11 documentation), or a color name followed
+by a comma and an `intensity` value from 0 to 1.  For example, `blue, 0.5`
+means a half intensity blue.
+
+@example
+ gnuplot*background:  white
+ gnuplot*textColor:   black
+ gnuplot*borderColor: black
+ gnuplot*axisColor:   black
+ gnuplot*line1Color:  red
+ gnuplot*line2Color:  green
+ gnuplot*line3Color:  blue
+ gnuplot*line4Color:  magenta
+ gnuplot*line5Color:  cyan
+ gnuplot*line6Color:  sienna
+ gnuplot*line7Color:  orange
+ gnuplot*line8Color:  coral
+
+@end example
+
+
+The command-line syntax for these is simple only for background,
+which maps directly to the usual X11 toolkit option "-bg".  All
+others can only be set on the command line by use of the generic
+"-xrm" resource override option
+
+Examples:
+
+@example
+      gnuplot -background coral
+@end example
+
+to change the background color.
+
+@example
+      gnuplot -xrm 'gnuplot*line1Color:blue'
+@end example
+
+to override the first linetype color.
+
+
+
+@noindent --- GRAYSCALE_RESOURCES ---
+
+@c ?commands set terminal x11 grayscale_resources
+@c ?set terminal x11 grayscale_resources
+@c ?set term x11 grayscale_resources
+@c ?x11 grayscale_resources
+@cindex grayscale_resources
+
+@cindex X resources
+
+When `-gray` is selected, `gnuplot` honors the following resources for
+grayscale or color displays (shown here with their default values).  Note
+that the default background is black.
+
+@example
+ gnuplot*background: black
+ gnuplot*textGray:   white
+ gnuplot*borderGray: gray50
+ gnuplot*axisGray:   gray50
+ gnuplot*line1Gray:  gray100
+ gnuplot*line2Gray:  gray60
+ gnuplot*line3Gray:  gray80
+ gnuplot*line4Gray:  gray40
+ gnuplot*line5Gray:  gray90
+ gnuplot*line6Gray:  gray50
+ gnuplot*line7Gray:  gray70
+ gnuplot*line8Gray:  gray30
+
+@end example
+
+
+
+
+@noindent --- LINE_RESOURCES ---
+
+@c ?commands set terminal x11 line_resources
+@c ?set terminal x11 line_resources
+@c ?set term x11 line_resources
+@c ?x11 line_resources
+@cindex line_resources
+
+@cindex X resources
+
+`gnuplot` honors the following resources for setting the width (in pixels) of
+plot lines (shown here with their default values.)  0 or 1 means a minimal
+width line of 1 pixel width.  A value of 2 or 3 may improve the appearance of
+some plots.
+
+@example
+ gnuplot*borderWidth: 2
+ gnuplot*axisWidth:   0
+ gnuplot*line1Width:  0
+ gnuplot*line2Width:  0
+ gnuplot*line3Width:  0
+ gnuplot*line4Width:  0
+ gnuplot*line5Width:  0
+ gnuplot*line6Width:  0
+ gnuplot*line7Width:  0
+ gnuplot*line8Width:  0
+
+@end example
+
+
+`gnuplot` honors the following resources for setting the dash style used for
+plotting lines.  0 means a solid line.  A two-digit number `jk` (`j` and `k`
+are >= 1 and <= 9) means a dashed line with a repeated pattern of `j` pixels
+on followed by `k` pixels off.  For example, '16' is a dotted line with one
+pixel on followed by six pixels off.  More elaborate on/off patterns can be
+specified with a four-digit value.  For example, '4441' is four on, four off,
+four on, one off.  The default values shown below are for monochrome displays
+or monochrome rendering on color or grayscale displays.
+Color displays default to dashed:off 
+
+@example
+ gnuplot*dashed:       off
+ gnuplot*borderDashes:   0
+ gnuplot*axisDashes:    16
+ gnuplot*line1Dashes:    0
+ gnuplot*line2Dashes:   42
+ gnuplot*line3Dashes:   13
+ gnuplot*line4Dashes:   44
+ gnuplot*line5Dashes:   15
+ gnuplot*line6Dashes: 4441
+ gnuplot*line7Dashes:   42
+ gnuplot*line8Dashes:   13
+
+@end example
+
+, "
+
+
+@noindent --- X11 PM3D_RESOURCES ---
+
+@c ?commands set terminal x11 pm3d_resources
+@c ?set terminal x11 pm3d_resources
+@c ?set term x11 pm3d_resources
+@c ?x11 pm3d_resources
+@cindex pm3d_resources
+
+@c ?x11 pm3d
+@cindex X resources
+
+Choosing the appropriate visual class and number of colors is a crucial
+point in X11 applications and a bit awkward, since X11 supports six visual
+types in different depths.
+
+By default `gnuplot` uses the default visual of the screen. The number of
+colors which can be allocated depends on the visual class chosen. On a
+visual class with a depth > 12bit, gnuplot starts with a maximal number
+of 0x200 colors.  On a visual class with a depth > 8bit (but <= 12 bit)
+the maximal number of colors is 0x100, on <= 8bit displays the maximum
+number of colors is 240 (16 are left for line colors).
+
+Gnuplot first starts to allocate the maximal number of colors as stated
+above.  If this fails, the number of colors is reduced by the factor 2
+until gnuplot gets all colors which are requested. If dividing `maxcolors`
+by 2 repeatedly results in a number which is smaller than `mincolors`
+`gnuplot` tries to install a private colormap. In this case the window
+manager is responsible for swapping colormaps when the pointer is moved
+in and out the x11 driver's window.
+
+The default for `mincolors` is maxcolors / (num_colormaps > 1 ? 2 : 8),
+where num_colormaps is the number of colormaps which are currently used
+by gnuplot (usually 1, if only one x11 window is open).
+
+Some systems support multiple (different) visual classes together on one
+screen. On these systems it might be necessary to force gnuplot to use a
+specific visual class, e.g. the default visual might be 8bit PseudoColor
+but the screen would also support 24bit TrueColor which would be the
+preferred choice.
+
+The information about an Xserver's capabilities can be obtained with the
+program `xdpyinfo`.  For the visual names below you can choose one of
+StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, DirectColor.
+If an Xserver supports a requested visual type at different depths,
+`gnuplot` chooses the visual class with the highest depth (deepest).
+If the requested visual class matches the default visual and multiple
+classes of this type are supported, the default visual is preferred.
+
+Example: on an 8bit PseudoColor visual you can force a private color map
+by specifying `gnuplot*maxcolors: 240` and `gnuplot*mincolors: 240`.
+
+
+@example
+ gnuplot*maxcolors:  <integer>
+ gnuplot*mincolors:  <integer>
+ gnuplot*visual:     <visual name>
+
+@end example
+
+, "
+
+
+@noindent --- X11 OTHER_RESOURCES ---
+
+@c ?commands set terminal x11 other_resources
+@c ?set terminal x11 other_resources
+@c ?set term x11 other_resources
+@c ?x11 other_resources
+@cindex X resources
+
+By default the contents of the current plot window are exported to the X11
+clipboard in response to X events in the window. Setting the resource
+'gnuplot*exportselection' to 'off' or 'false' will disable this.
+
+By default text rotation is done using a method that is fast, but can
+corrupt nearby colors depending on the background.  If this is a problem,
+you can set the resource 'gnuplot.fastrotate' to 'off'
+
+
+@example
+ gnuplot*exportselection:  off
+ gnuplot*fastrotate:  on
+ gnuplot*ctrlq:  off
+
+@end example
+
+
+
+@node x11_, xlib, x11, terminal_
+@subsubsection x11
+
+@c ?commands set terminal x11
+@c ?set terminal x11
+@c ?set term x11
+@c ?terminal x11
+@c ?term x11
+@cindex x11
+
+@cindex X11
+
+`gnuplot` provides the `x11` terminal type for use with X servers.  This
+terminal type is set automatically at startup if the `DISPLAY` environment
+variable is set, if the `TERM` environment variable is set to `xterm`, or
+if the `-display` command line option is used.
+
+Syntax:
+@example
+   set terminal x11 @{<n>@}
+                    @{title "<string>"@}
+                    @{@{no@}enhanced@} @{font <fontspec>@}
+                    @{linewidth LW@} @{solid|dashed@}
+                    @{@{no@}persist@} @{@{no@}raise@} @{@{no@}ctrlq@}
+                    @{close@}
+                    @{size XX,YY@} @{position XX,YY@}
+   set terminal x11 @{reset@}
+
+@end example
+
+Multiple plot windows are supported: `set terminal x11 <n>` directs the
+output to plot window number n.  If n is not 0, the terminal number will be
+appended to the window title (unless a title has been supplied manually)
+and the icon will be labeled `Gnuplot <n>`.  The active window may be
+distinguished by a change in cursor (from default to crosshair).
+
+The x11 terminal support enhanced text mode (see `enhanced`), subject
+to the available fonts. In order for font size commands embedded in text
+to have any effect, the default x11 font must be scalable. Thus the first
+example below will work as expected, but the second will not.
+
+@example
+   set term x11 enhanced font "arial,15" 
+   set title '@{/=20 Big@} Medium @{/=5 Small@}' 
+
+@end example
+
+@example
+   set term x11 enhanced font "terminal-14" 
+   set title '@{/=20 Big@} Medium @{/=5 Small@}' 
+
+@end example
+
+Plot windows remain open even when the `gnuplot` driver is changed to a
+different device.  A plot window can be closed by pressing the letter q
+while that window has input focus, or by choosing `close` from a window
+manager menu.  All plot windows can be closed by specifying @ref{reset}, which
+actually terminates the subprocess which maintains the windows (unless
+`-persist` was specified).  The `close` command can be used to close
+individual plot windows by number.  However, after a @ref{reset}, those plot
+windows left due to persist cannot be closed with the command `close`.
+A `close` without a number closes the current active plot window.
+
+The gnuplot outboard driver, gnuplot_x11, is searched in a default place
+chosen when the program is compiled.  You can override that by defining
+the environment variable GNUPLOT_DRIVER_DIR to point to a different
+location.
+
+Plot windows will automatically be closed at the end of the session
+unless the `-persist` option was given.
+
+The options `persist` and @ref{raise} are unset by default, which means that
+the defaults (persist == no and raise == yes) or the command line options
+-persist / -raise or the Xresources are taken.  If [no]persist or
+[no]raise are specified, they will override command line options and
+Xresources.  Setting one of these options takes place immediately, so
+the behaviour of an already running driver can be modified.  If the window
+does not get raised, see discussion in @ref{raise}.
+
+The option `title "<title name>"` will supply the title name of the window
+for the current plot window or plot window <n> if a number is given.
+Where (or if) this title is shown depends on your X window manager.
+
+The size option can be used to set the size of the plot window.  The
+size option will only apply to newly created windows.
+
+The position option can be used to set the position of the plot window.  The
+position option will only apply to newly created windows.
+
+The size or aspect ratio of a plot may be changed by resizing the `gnuplot`
+window.
+
+Linewidths and pointsizes may be changed from within `gnuplot` with
+`set linestyle`.
+
+For terminal type `x11`, `gnuplot` accepts (when initialized) the standard
+X Toolkit options and resources such as geometry, font, and name from the
+command line arguments or a configuration file.  See the X(1) man page
+(or its equivalent) for a description of such options.
+
+@cindex X resources
+
+A number of other `gnuplot` options are available for the `x11` terminal.
+These may be specified either as command-line options when `gnuplot` is
+invoked or as resources in the configuration file ".Xdefaults".  They are
+set upon initialization and cannot be altered during a `gnuplot` session.
+(except `persist` and @ref{raise})
+
+
+@noindent --- X11_FONTS ---
+
+@c ?commands set terminal x11 x11_fonts
+@c ?set terminal x11 x11_fonts
+@c ?set term x11 x11_fonts
+@c ?x11 x11_fonts
+@cindex x11_fonts
+
+@cindex fonts
+
+Upon initial startup, the default font is taken from the X11 resources
+as set in the system or user .Xdefaults file or on the command line.
+
+Example:
+@example
+      gnuplot*font: lucidasans-bold-12
+@end example
+
+A new default font may be specified to the x11 driver from inside
+gnuplot using
+@example
+     `set term x11 font "<fontspec>"`
+@end example
+
+The driver first queries the X-server for a font of the exact name given.
+If this query fails, then it tries to interpret <fontspec> as
+"<font>,<size>,<slant>,<weight>" and to construct a full X11 font name
+of the form
+@example
+      -*-<font>-<weight>-<s>-*-*-<size>-*-*-*-*-*-<encoding>
+
+@end example
+
+@example
+ <font> is the base name of the font (e.g. Times or Symbol)
+ <size> is the point size (defaults to 12 if not specified)
+ <s> is `i` if <slant>=="italic" `o` if <slant>=="oblique" `r` otherwise
+ <weight> is `medium` or `bold` if explicitly requested, otherwise `*`
+ <encoding> is set based on the current character set (see @ref{encoding}).
+@end example
+
+So `set term x11 font "arial,15,italic"` will be translated to
+-*-arial-*-i-*-*-15-*-*-*-*-*-iso8859-1 (assuming default encoding).
+The <size>, <slant>, and <weight> specifications are all optional.
+If you do not specify <slant> or <weight> then you will get whatever font 
+variant the font server offers first.
+You may set a default enconding via the corresponding X11 resource. E.g.
+@example
+      gnuplot*encoding: iso8859-15
+@end example
+
+The driver also recognizes some common PostScript font names and
+replaces them with possible X11 or TrueType equivalents.
+This same sequence is used to process font requests from @ref{label}.
+
+If your gnuplot was built with configuration option --enable-x11-mbfonts,
+you can specify multi-byte fonts by using the prefix "mbfont:" on the font
+name. An additional font may be given, separated by a semicolon.
+Since multi-byte font encodings are interpreted according to the locale
+setting, you must make sure that the environmental variable LC_CTYPE is set
+to some appropriate locale value such as ja_JP.eucJP, ko_KR.EUC, or zh_CN.EUC.
+
+Example:
+@example
+      set term x11 font 'mbfont:kana14;k14'
+            # 'kana14' and 'k14' are Japanese X11 font aliases, and ';'
+            # is the separator of font names.
+      set term x11 font 'mbfont:fixed,16,r,medium'
+            # <font>,<size>,<slant>,<weight> form is also usable.
+      set title '(mb strings)' font 'mbfont:*-fixed-medium-r-normal--14-*'
+
+@end example
+
+The same syntax applies to the default font in Xresources settings,
+for example,
+@example
+      gnuplot*font: \\
+          mbfont:-misc-fixed-medium-r-normal--14-*-*-*-c-*-jisx0208.1983-0
+
+@end example
+
+If gnuplot is built with --enable-x11-mbfonts, you can use two special
+PostScript font names 'Ryumin-Light-*' and 'GothicBBB-Medium-*' (standard
+Japanese PS fonts) without the prefix "mbfont:".
+
+
+
+@noindent --- COMMAND-LINE_OPTIONS ---
+
+@c ?commands set terminal x11 command-line-options
+@c ?set terminal x11 command-line-options
+@c ?set term x11 command-line-options
+@c ?x11 command-line-options
+@cindex command-line-options
+
+In addition to the X Toolkit options, the following options may be specified
+on the command line when starting `gnuplot` or as resources in your
+".Xdefaults" file (note that @ref{raise} and `persist` can be overridden
+later by `set term x11 [no]raise [no]persist)`:
+
+@example
+ `-mono`     forces monochrome rendering on color displays.
+ `-gray`     requests grayscale rendering on grayscale or color displays.
+             (Grayscale displays receive monochrome rendering by default.)
+ `-clear`    requests that the window be cleared momentarily before a
+             new plot is displayed.
+ `-tvtwm`    requests that geometry specifications for position of the
+             window be made relative to the currently displayed portion
+             of the virtual root.
+ `-raise`    raises plot window after each plot
+ `-noraise`  does not raise plot window after each plot
+ `-noevents` does not process mouse and key events
+ `-ctrlq   ` closes window on ctrl-q rather than q
+ `-persist`  plot windows survive after main gnuplot program exits
+
+@end example
+
+@cindex X resources
+
+The options are shown above in their command-line syntax.  When entered as
+resources in ".Xdefaults", they require a different syntax.
+
+Example:
+@example
+      gnuplot*gray:  on
+      gnuplot*ctrlq: on
+
+@end example
+
+`gnuplot` also provides a command line option (`-pointsize <v>`) and a
+resource, `gnuplot*pointsize: <v>`, to control the size of points plotted
+with the `points` plotting style.  The value `v` is a real number (greater
+than 0 and less than or equal to ten) used as a scaling factor for point
+sizes.  For example, `-pointsize 2` uses points twice the default size, and
+`-pointsize 0.5` uses points half the normal size.
+
+The `-noevents` switch disables all mouse and key event processing (except
+for `q` and `<space>` for closing the window). This is useful for programs
+which use the x11 driver independent of the gnuplot main program.
+
+The `-ctrlq` switch changes the hot-key that closes a plot window from `q`
+to `<ctrl>q`. This is useful is you are using the keystroke-capture feature
+`pause mouse keystroke`, since it allows the character `q` to be captured
+just as all other alphanumeric characters. The `-ctrlq` switch similarly
+replaces the <space> hot-key with <ctrl><space> for the same reason.
+
+
+
+@noindent --- MONOCHROME_OPTIONS ---
+
+@c ?commands set terminal x11 monochrome_options
+@c ?set terminal x11 monochrome_options
+@c ?set term x11 monochrome_options
+@c ?x11 monochrome_options
+@cindex monochrome_options
+
+@cindex X resources
+
+For monochrome displays, `gnuplot` does not honor foreground or background
+colors.  The default is black-on-white.  `-rv` or `gnuplot*reverseVideo: on`
+requests white-on-black.
+
+
+
+@noindent --- COLOR_RESOURCES ---
+
+@c ?commands set terminal x11 color_resources
+@c ?set terminal x11 color_resources
+@c ?set term x11 color_resources
+@c ?x11 color_resources
+@cindex color_resources
+
+@cindex X resources
+
+For color displays, `gnuplot` honors the following resources (shown here
+with their default values) or the greyscale resources.  The values may be
+color names as listed in the X11 rgb.txt file on your system, hexadecimal
+RGB color specifications (see X11 documentation), or a color name followed
+by a comma and an `intensity` value from 0 to 1.  For example, `blue, 0.5`
+means a half intensity blue.
+
+@example
+ gnuplot*background:  white
+ gnuplot*textColor:   black
+ gnuplot*borderColor: black
+ gnuplot*axisColor:   black
+ gnuplot*line1Color:  red
+ gnuplot*line2Color:  green
+ gnuplot*line3Color:  blue
+ gnuplot*line4Color:  magenta
+ gnuplot*line5Color:  cyan
+ gnuplot*line6Color:  sienna
+ gnuplot*line7Color:  orange
+ gnuplot*line8Color:  coral
+
+@end example
+
+
+The command-line syntax for these is simple only for background,
+which maps directly to the usual X11 toolkit option "-bg".  All
+others can only be set on the command line by use of the generic
+"-xrm" resource override option
+
+Examples:
+
+@example
+      gnuplot -background coral
+@end example
+
+to change the background color.
+
+@example
+      gnuplot -xrm 'gnuplot*line1Color:blue'
+@end example
+
+to override the first linetype color.
+
+
+
+@noindent --- GRAYSCALE_RESOURCES ---
+
+@c ?commands set terminal x11 grayscale_resources
+@c ?set terminal x11 grayscale_resources
+@c ?set term x11 grayscale_resources
+@c ?x11 grayscale_resources
+@cindex grayscale_resources
+
+@cindex X resources
+
+When `-gray` is selected, `gnuplot` honors the following resources for
+grayscale or color displays (shown here with their default values).  Note
+that the default background is black.
+
+@example
+ gnuplot*background: black
+ gnuplot*textGray:   white
+ gnuplot*borderGray: gray50
+ gnuplot*axisGray:   gray50
+ gnuplot*line1Gray:  gray100
+ gnuplot*line2Gray:  gray60
+ gnuplot*line3Gray:  gray80
+ gnuplot*line4Gray:  gray40
+ gnuplot*line5Gray:  gray90
+ gnuplot*line6Gray:  gray50
+ gnuplot*line7Gray:  gray70
+ gnuplot*line8Gray:  gray30
+
+@end example
+
+
+
+
+@noindent --- LINE_RESOURCES ---
+
+@c ?commands set terminal x11 line_resources
+@c ?set terminal x11 line_resources
+@c ?set term x11 line_resources
+@c ?x11 line_resources
+@cindex line_resources
+
+@cindex X resources
+
+`gnuplot` honors the following resources for setting the width (in pixels) of
+plot lines (shown here with their default values.)  0 or 1 means a minimal
+width line of 1 pixel width.  A value of 2 or 3 may improve the appearance of
+some plots.
+
+@example
+ gnuplot*borderWidth: 2
+ gnuplot*axisWidth:   0
+ gnuplot*line1Width:  0
+ gnuplot*line2Width:  0
+ gnuplot*line3Width:  0
+ gnuplot*line4Width:  0
+ gnuplot*line5Width:  0
+ gnuplot*line6Width:  0
+ gnuplot*line7Width:  0
+ gnuplot*line8Width:  0
+
+@end example
+
+
+`gnuplot` honors the following resources for setting the dash style used for
+plotting lines.  0 means a solid line.  A two-digit number `jk` (`j` and `k`
+are >= 1 and <= 9) means a dashed line with a repeated pattern of `j` pixels
+on followed by `k` pixels off.  For example, '16' is a dotted line with one
+pixel on followed by six pixels off.  More elaborate on/off patterns can be
+specified with a four-digit value.  For example, '4441' is four on, four off,
+four on, one off.  The default values shown below are for monochrome displays
+or monochrome rendering on color or grayscale displays.
+Color displays default to dashed:off 
+
+@example
+ gnuplot*dashed:       off
+ gnuplot*borderDashes:   0
+ gnuplot*axisDashes:    16
+ gnuplot*line1Dashes:    0
+ gnuplot*line2Dashes:   42
+ gnuplot*line3Dashes:   13
+ gnuplot*line4Dashes:   44
+ gnuplot*line5Dashes:   15
+ gnuplot*line6Dashes: 4441
+ gnuplot*line7Dashes:   42
+ gnuplot*line8Dashes:   13
+
+@end example
+
+, "
+
+
+@noindent --- X11 PM3D_RESOURCES ---
+
+@c ?commands set terminal x11 pm3d_resources
+@c ?set terminal x11 pm3d_resources
+@c ?set term x11 pm3d_resources
+@c ?x11 pm3d_resources
+@cindex pm3d_resources
+
+@c ?x11 pm3d
+@cindex X resources
+
+Choosing the appropriate visual class and number of colors is a crucial
+point in X11 applications and a bit awkward, since X11 supports six visual
+types in different depths.
+
+By default `gnuplot` uses the default visual of the screen. The number of
+colors which can be allocated depends on the visual class chosen. On a
+visual class with a depth > 12bit, gnuplot starts with a maximal number
+of 0x200 colors.  On a visual class with a depth > 8bit (but <= 12 bit)
+the maximal number of colors is 0x100, on <= 8bit displays the maximum
+number of colors is 240 (16 are left for line colors).
+
+Gnuplot first starts to allocate the maximal number of colors as stated
+above.  If this fails, the number of colors is reduced by the factor 2
+until gnuplot gets all colors which are requested. If dividing `maxcolors`
+by 2 repeatedly results in a number which is smaller than `mincolors`
+`gnuplot` tries to install a private colormap. In this case the window
+manager is responsible for swapping colormaps when the pointer is moved
+in and out the x11 driver's window.
+
+The default for `mincolors` is maxcolors / (num_colormaps > 1 ? 2 : 8),
+where num_colormaps is the number of colormaps which are currently used
+by gnuplot (usually 1, if only one x11 window is open).
+
+Some systems support multiple (different) visual classes together on one
+screen. On these systems it might be necessary to force gnuplot to use a
+specific visual class, e.g. the default visual might be 8bit PseudoColor
+but the screen would also support 24bit TrueColor which would be the
+preferred choice.
+
+The information about an Xserver's capabilities can be obtained with the
+program `xdpyinfo`.  For the visual names below you can choose one of
+StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, DirectColor.
+If an Xserver supports a requested visual type at different depths,
+`gnuplot` chooses the visual class with the highest depth (deepest).
+If the requested visual class matches the default visual and multiple
+classes of this type are supported, the default visual is preferred.
+
+Example: on an 8bit PseudoColor visual you can force a private color map
+by specifying `gnuplot*maxcolors: 240` and `gnuplot*mincolors: 240`.
+
+
+@example
+ gnuplot*maxcolors:  <integer>
+ gnuplot*mincolors:  <integer>
+ gnuplot*visual:     <visual name>
+
+@end example
+
+, "
+
+
+@noindent --- X11 OTHER_RESOURCES ---
+
+@c ?commands set terminal x11 other_resources
+@c ?set terminal x11 other_resources
+@c ?set term x11 other_resources
+@c ?x11 other_resources
+@cindex X resources
+
+By default the contents of the current plot window are exported to the X11
+clipboard in response to X events in the window. Setting the resource
+'gnuplot*exportselection' to 'off' or 'false' will disable this.
+
+By default text rotation is done using a method that is fast, but can
+corrupt nearby colors depending on the background.  If this is a problem,
+you can set the resource 'gnuplot.fastrotate' to 'off'
+
+
+@example
+ gnuplot*exportselection:  off
+ gnuplot*fastrotate:  on
+ gnuplot*ctrlq:  off
+
+@end example
+
+
+
+@node xlib, xlib_, x11_, terminal_
+@subsubsection xlib
+
+@c ?commands set terminal xlib
+@c ?set terminal xlib
+@c ?set term xlib
+@c ?terminal xlib
+@c ?term xlib
+@cindex xlib
+@tmindex xlib
+
+
+The `xlib` terminal driver supports the X11 Windows System.  It generates
+gnuplot_x11 commands, but sends them to the output file specified by
+`set output '<filename>'`. `set term x11` is equivalent to
+`set output "|gnuplot_x11 -noevents"; set term xlib.`
+`xlib` takes the same set of options as `x11`."
+
+@node xlib_,  , xlib, terminal_
+@subsubsection xlib
+
+@c ?commands set terminal xlib
+@c ?set terminal xlib
+@c ?set term xlib
+@c ?terminal xlib
+@c ?term xlib
+@cindex xlib
+@tmindex xlib
+
+
+The `xlib` terminal driver supports the X11 Windows System.  It generates
+gnuplot_x11 commands, but sends them to the output file specified by
+`set output '<filename>'`. `set term x11` is equivalent to
+`set output "|gnuplot_x11 -noevents"; set term xlib.`
+`xlib` takes the same set of options as `x11`."
+
+@node Graphical_User_Interfaces, Bugs, Terminal_types, Top
+@chapter Graphical User Interfaces
+
+@c ?graphical user interfaces
+@cindex gui's
+
+Several graphical user interfaces have been written for `gnuplot` and one for
+win32 is included in this distribution.  In addition, there is a Python
+interface at
+@uref{http://py-gnuplot.darwinports.com/,http://py-gnuplot.darwinports.com/
+}
+
+Also several X11 interfaces exist.
+One of them is called xgfe. It uses the Qt library and can be found on
+@uref{http://www.flash.net/~dmishee/xgfe/xgfe.html,http://www.flash.net/~dmishee/xgfe/xgfe.html
+}
+
+In addition three Tcl/Tk located at the usual Tcl/Tk repositories exist.
+
+Bruce Ravel (ravel@@phys.washington.edu) has written a new version of
+gnuplot-mode for GNU emacs and XEmacs. This version is based on
+the gnuplot.el file by Gershon Elber.
+While the gnuplot CVS repository has its own copy the most recent
+version of this package is available from
+@uref{http://feff.phys.washington.edu/~ravel/software/gnuplot-mode/,http://feff.phys.washington.edu/~ravel/software/gnuplot-mode/
+}
+
+
+@menu
+* Bugs::                       
+@end menu
+
+@node Bugs, Concept_Index, Graphical_User_Interfaces, Top
+@chapter Bugs
+
+@cindex bugs
+
+Bugs reported since the current release as well as older ones
+may be located via the official distribution site on SourceForge.
+
+Please e-mail bug reports to the gnuplot-bugs mailing list.
+Or upload the report to the gnuplot web site on SourceForge.
+Please give complete information on the version of gnuplot you are using
+and, if possible, a test script that demonstrates the bug.
+See @ref{Seeking-assistance}.
+
+The sections below list problems known to be present in gnuplot version 4.2 at
+the time of release.  Some of these are actually bugs in external support
+libraries and may have been fixed indepently of any changes in gnuplot.
+
+
+@menu
+* Gnuplot_limitations::         
+* External_libraries::          
+@end menu
+
+@node Gnuplot_limitations, External_libraries, Bugs, Bugs
+@section Gnuplot limitations
+
+@c ?bugs gnuplot
+@cindex gamma
+@findex gamma
+
+
+@cindex bessel
+
+@cindex timefmt
+@opindex timefmt
+
+
+@cindex load
+@cmindex load
+
+
+@cindex nohidden3d
+
+Floating point exceptions (floating point number too large/small, divide by
+zero, etc.) may occasionally be generated by user defined functions.  Some of
+the demos in particular may cause numbers to exceed the floating point range.
+Whether the system ignores such exceptions (in which case `gnuplot` labels
+the corresponding point as undefined) or aborts `gnuplot` depends on the
+compiler/runtime environment.
+
+The gamma and bessel functions do not work for complex arguments.
+
+If a command line contains a "load" command, then anything on the line after
+the "load <filename>" is ignored.
+
+Only one color palette at a time is active for any given x11 plot window.
+This means that multiplots whose constituent plots use different palettes
+will not display correctly in x11.
+
+Coordinates specified as "time" wrap at 24 hours, and have a precision limited
+to 1 second.  This is in particular a limitation in using time format to
+handle geographic coordinates.
+
+Error bars are not handled properly in polar/spherical coordinate plot modes.
+
+The 'nohidden3d' option that is supposed to exempt individual plots from the
+global property 'set hidden3d' does not work for parametric curves.
+
+
+@node External_libraries,  , Gnuplot_limitations, Bugs
+@section External libraries
+
+@c ?bugs external_libraries
+@cindex libgd
+
+@cindex svgalib
+@tmindex svgalib
+
+
+@cindex locale
+@opindex locale
+
+
+@cindex internationalization
+
+@cindex pdf
+@tmindex pdf
+
+
+External library GD (used by PNG/JPEG/GIF drivers):
+Versions of libgd through 2.0.33 contain various bugs in mapping the characters
+of Adobe's Symbol font.  Also it is possible to trigger a library segfault if
+an anti-aliased line crosses an upper corner of the canvas.
+
+External library PDFlib (used by PDF driver):
+Gnuplot can be linked against libpdf versions 4, 5, or 6. However, these
+versions differ in their handling of piped I/O.  Therefore gnuplot scripts
+using piped output to PDF may work only for some versions of PDFlib.
+
+External library svgalib (used by linux and vgagl driver):
+Requires gnuplot to be suid root (bad!) and has many bugs that are specific
+to the video card or graphics driver used in X11.
+
+Internationalization (locale settings):
+Gnuplot uses the C runtime library routine setlocale() to control
+locale-specific formatting of input and output number, times, and date strings.
+The locales available, and the level of support for locale features such as
+"thousands' grouping separator", depend on the internationalization support
+provided by your individual machine.
+@node Concept_Index, Command_Index, Bugs, Top
+@unnumbered Concept Index
+@printindex cp
+
+@node Command_Index, Options_Index, Concept_Index, Top
+@unnumbered Command Index
+@printindex cm
+
+@node Options_Index, Function_Index, Command_Index, Top
+@unnumbered Options Index
+@printindex op
+
+@node Function_Index, Terminal_Index, Options_Index, Top
+@unnumbered Function Index
+@printindex fn
+
+@node Terminal_Index,  , Function_Index, Top
+@unnumbered Terminal Index
+@printindex tm
+
+@c @shortcontents
+@contents
+@bye