Automatically infer variables' measurement level from format and data.
[pspp] / doc / utilities.texi
index d370d808443cdcaef8a28a2a6c1fc75feecbc487..4cad836ad11eaac66c8dbfc537c0e24209ad13c5 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017, 2020 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Utilities
 @chapter Utilities
 
@@ -25,6 +34,7 @@ encountered in the input.
 * HOST::                        Temporarily return to the operating system.
 * INCLUDE::                     Include a file within the current one.
 * INSERT::                      Insert a file within the current one.
+* OUTPUT::                      Modify the appearance of the output.
 * PERMISSIONS::                 Change permissions on a file.
 * PRESERVE and RESTORE::        Saving settings and restoring them later.
 * SET::                         Adjust @pspp{} runtime parameters.
@@ -38,18 +48,18 @@ encountered in the input.
 @vindex  ADD DOCUMENT
 
 @display
-ADD DOCUMENT 
+ADD DOCUMENT
     'line one' 'line two' @dots{} 'last line' .
 @end display
 
 
-@cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to 
+@cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to
 the active dataset.  Documents added in this way are saved to system files.
 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
 DOCUMENTS}.
 
-Each line of documentary text must be enclosed in quotation marks, and 
+Each line of documentary text must be enclosed in quotation marks, and
 may not be more than 80 bytes long. @xref{DOCUMENT}.
 
 @node CACHE
@@ -70,28 +80,36 @@ This command is accepted, for compatibility, but it has no effect.
 
 @display
 CD 'new directory' .
-@end display 
+@end display
 
-@cmd{CD} changes the current directory.  The new directory will become that specified by the command.
+@cmd{CD} changes the current directory.  The new directory becomes
+that specified by the command.
 
 @node COMMENT
 @section COMMENT
 @vindex COMMENT
 @vindex *
 
-@display 
-Two possibles syntaxes:
-        COMMENT comment text @dots{} .
-        *comment text @dots{} .
+@display
+Comment commands:
+    COMMENT comment text @dots{} .
+    *comment text @dots{} .
+
+Comments within a line of syntax:
+    FREQUENCIES /VARIABLES=v0 v1 v2.  /* All our categorical variables.
 @end display
 
 @cmd{COMMENT} is ignored.  It is used to provide information to
-the author and other readers of the @pspp{} syntax file.  
-
-@cmd{COMMENT} can extend over any number of lines.  Don't forget to
-terminate it with a dot or a blank line.
+the author and other readers of the @pspp{} syntax file.
 
+@cmd{COMMENT} can extend over any number of lines.  It ends at a dot
+at the end of a line or a blank line.  The comment may contain any
+characters.
 
+PSPP also supports comments within a line of syntax, introduced with
+@samp{/*}.  These comments end at the first @samp{*/} or at the end of
+the line, whichever comes first.  A line that contains just this kind
+of comment is considered blank and ends the current command.
 
 @node DOCUMENT
 @section DOCUMENT
@@ -107,12 +125,13 @@ They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
 DOCUMENTS}.  They can be removed from the active dataset with @cmd{DROP
 DOCUMENTS}.
 
-Specify the @var{documentary text} following the @subcmd{DOCUMENT} keyword.  
-It is interpreted literally --- any quotes or other punctuation marks 
-will be included in the file.
-You can extend the documentary text over as many lines as necessary.  
+Specify the @var{documentary text} following the @subcmd{DOCUMENT} keyword.
+It is interpreted literally---any quotes or other punctuation marks
+are included in the file.
+You can extend the documentary text over as many lines as necessary,
+including blank lines to separate paragraphs.
 Lines are truncated at 80 bytes.  Don't forget to terminate
-the command with a dot or a blank line. @xref{ADD DOCUMENT}.
+the command with a dot at the end of a line. @xref{ADD DOCUMENT}.
 
 @node DISPLAY DOCUMENTS
 @section DISPLAY DOCUMENTS
@@ -158,7 +177,7 @@ system files stored on disk.
 @section ECHO
 @vindex ECHO
 
-@display 
+@display
 ECHO 'arbitrary text' .
 @end display
 
@@ -172,7 +191,7 @@ Use @cmd{ECHO} to write arbitrary text to the output stream. The text should be
 ERASE FILE @var{file_name}.
 @end display
 
-@cmd{ERASE FILE} deletes a file from the local filesystem.
+@cmd{ERASE FILE} deletes a file from the local file system.
 @var{file_name} must be quoted.
 This command cannot be used if the SAFER (@pxref{SET}) setting is active.
 
@@ -197,7 +216,7 @@ FILE LABEL @var{file_label}.
 @end display
 
 @cmd{FILE LABEL} provides a title for the active dataset.  This
-title will be saved into system files and portable files that are
+title is saved into system files and portable files that are
 created during this @pspp{} run.
 
 @var{file_label} should not be quoted.
@@ -218,21 +237,51 @@ control to the operating system.
 @section HOST
 @vindex HOST
 
+In the syntax below, the square brackets must be included in the
+command syntax and do not indicate that that their contents are
+optional.
+
 @display
-HOST.
-HOST COMMAND=['@var{command}'...].
+HOST COMMAND=['@var{command}'...]
+     TIMELIMIT=@var{secs}.
 @end display
 
-@cmd{HOST} suspends the current @pspp{} session and temporarily returns control 
-to the operating system.
-This command cannot be used if the SAFER (@pxref{SET}) setting is active.
+@cmd{HOST} executes one or more commands, each provided as a string in
+the required @subcmd{COMMAND} subcommand, in the shell of the
+underlying operating system.  PSPP runs each command in a separate
+shell process and waits for it to finish before running the next one.
+If a command fails (with a nonzero exit status, or because it is
+killed by a signal), then PSPP does not run any remaining commands.
+
+PSPP provides @file{/dev/null} as the shell's standard input.  If a
+process needs to read from stdin, redirect from a file or device, or
+use a pipe.
 
-If the @subcmd{COMMAND} subcommand is specified, as a sequence of shell
-commands as quoted strings within square brackets, then @pspp{} executes
-them together in a single subshell.
+PSPP displays the shell's standard output and standard error as PSPP
+output.  Redirect to a file or @code{/dev/null} or another device if
+this is not desired.
 
-If no subcommands are specified, then @pspp{} invokes an interactive
-subshell.
+The following example runs @code{rsync} to copy a file from a remote
+server to the local file @file{data.txt}, writing @code{rsync}'s own
+output to @file{rsync-log.txt}.  PSPP displays the command's error
+output, if any.  If @code{rsync} needs to prompt the user (@i{e.g.}@: to
+obtain a password), the command fails.  Only if the @code{rsync}
+succeeds, PSPP then runs the @code{sha512sum} command.
+
+@example
+HOST COMMAND=['rsync remote:data.txt data.txt > rsync-log.txt'
+              'sha512sum -c data.txt.sha512sum].
+@end example
+
+By default, PSPP waits as long as necessary for the series of commands
+to complete.  Use the optional @subcmd{TIMELIMIT} subcommand to limit
+the execution time to the specified number of seconds.
+
+PSPP built for mingw does not support all the features of
+@subcmd{HOST}.
+
+PSPP rejects this command if the SAFER (@pxref{SET}) setting is
+active.
 
 @node INCLUDE
 @section INCLUDE
@@ -245,8 +294,8 @@ subshell.
 @cmd{INCLUDE} causes the @pspp{} command processor to read an
 additional command file as if it were included bodily in the current
 command file.
-If errors are encountered in the included file, then command processing will 
-stop and no more commands will be processed.
+If errors are encountered in the included file, then command
+processing stops and no more commands are processed.
 Include files may be nested to any depth, up to the limit of available
 memory.
 
@@ -268,24 +317,24 @@ The optional @subcmd{ENCODING} subcommand has the same meaning as with @cmd{INSE
         [ENCODING=@{LOCALE, '@var{charset_name}'@}].
 @end display
 
-@cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE}) 
+@cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE})
 but somewhat more flexible.
-It causes the command processor to read a file as if it were embedded in the 
+It causes the command processor to read a file as if it were embedded in the
 current command file.
 
 If @subcmd{CD=YES} is specified, then before including the file, the
-current directory  will be changed to the directory of the included
-file.  
+current directory becomes the directory of the included
+file.
 The default setting is @samp{CD=NO}.
-Note that this directory will remain current until it is
+Note that this directory remains current until it is
 changed explicitly (with the @cmd{CD} command, or a subsequent
 @cmd{INSERT} command with the @samp{CD=YES} option).
-It will not revert to its original setting even after the included
+It does not revert to its original setting even after the included
 file is finished processing.
 
 If @subcmd{ERROR=STOP} is specified, errors encountered in the
-inserted file will cause processing to immediately cease.
-Otherwise processing will continue at the next command.
+inserted file causes processing to immediately cease.
+Otherwise processing continues at the next command.
 The default setting is @subcmd{ERROR=CONTINUE}.
 
 If @subcmd{SYNTAX=INTERACTIVE} is specified then the syntax contained in
@@ -299,9 +348,9 @@ the following forms:
 
 @table @asis
 @item @subcmd{LOCALE}
-The encoding used by the system locale, or as overridden by the 
+The encoding used by the system locale, or as overridden by the
 @cmd{SET} command (@pxref{SET}).  On GNU/Linux and other Unix-like systems,
-environment variables, e.g.@: @env{LANG} or @env{LC_ALL}, determine the
+environment variables, @i{e.g.}@: @env{LANG} or @env{LC_ALL}, determine the
 system locale.
 
 @item @var{charset_name}
@@ -334,6 +383,58 @@ When ENCODING is not specified, the default is taken from the
 @option{--syntax-encoding} command option, if it was specified, and
 otherwise it is @code{Auto}.
 
+@node OUTPUT
+@section OUTPUT
+@vindex OUTPUT
+@cindex precision, of output
+@cindex decimal places
+
+@display
+OUTPUT MODIFY
+       /SELECT TABLES
+       /TABLECELLS SELECT = [ @var{class}... ]
+                   FORMAT = @var{fmt_spec}.
+@end display
+@note{In the above synopsis the characters @samp{[} and @samp{]} are literals.
+They must appear in the syntax to be interpreted.}
+
+@cmd{OUTPUT} changes the appearance of the tables in which results are
+printed. In particular, it can be used to set the format and precision
+to which results are displayed.
+
+After running this command, the default table appearance parameters
+will have been modified and  each new output table generated uses
+the new parameters.
+
+Following @code{/TABLECELLS SELECT =} a list of cell classes must
+appear, enclosed in square brackets.  This list determines the classes
+of values should be selected for modification. Each class can be:
+
+@table @asis
+@item RESIDUAL
+Residual values.  Default: @t{F40.2}.
+
+@item CORRELATION
+Correlations.  Default: @t{F40.3}.
+
+@item PERCENT
+Percentages.  Default: @t{PCT40.1}.
+
+@item SIGNIFICANCE
+Significance of tests (p-values).  Default: @t{F40.3}.
+
+@item COUNT
+Counts or sums of weights.  For a weighted data set, the default is
+the weight variable's print format.  For an unweighted data set, the
+default is F40.0.
+@end table
+
+For most other numeric values that appear in tables, @code{SET FORMAT}
+may be used to specify the format (@pxref{SET FORMAT}).
+
+The value of @var{fmt_spec} must be a valid output format (@pxref{Input and Output Formats}).
+Note that not all possible formats are meaningful for all classes.
+
 @node PERMISSIONS
 @section PERMISSIONS
 @vindex PERMISSIONS
@@ -347,15 +448,15 @@ PERMISSIONS
         /PERMISSIONS = @{READONLY,WRITEABLE@}.
 @end display
 
-@cmd{PERMISSIONS} changes the permissions of a file.  
+@cmd{PERMISSIONS} changes the permissions of a file.
 There is one mandatory subcommand which specifies the permissions to
-which the file should be changed.  
-If you set a file's  permission  to @subcmd{READONLY}, then the file will become
-unwritable either by you or anyone else on the system.
-If you set the permission to @subcmd{WRITEABLE}, then the file will become
-writeable by you; the permissions afforded to others will be
-unchanged.
-This command cannot be used if the @subcmd{SAFER} (@pxref{SET}) setting is active.
+which the file should be changed.
+If you set a file's  permission  to @subcmd{READONLY}, then the file
+will become unwritable either by you or anyone else on the system.
+If you set the permission to @subcmd{WRITEABLE}, then the file becomes
+writeable by you; the permissions afforded to others are unchanged.
+This command cannot be used if the @subcmd{SAFER} (@pxref{SET})
+setting is active.
 
 
 @node PRESERVE and RESTORE
@@ -396,18 +497,19 @@ SET
 
 (syntax execution)
         /LOCALE='@var{locale}'
-        /MEXPAND=@{ON,OFF@}
-        /MITERATE=@var{max_iterations}
-        /MNEST=@var{max_nest}
-        /MPRINT=@{ON,OFF@}
         /MXLOOPS=@var{max_loops}
         /SEED=@{RANDOM,@var{seed_value}@}
         /UNDEFINED=@{WARN,NOWARN@}
+        /FUZZBITS=@var{fuzzbits}
+        /SCALEMIN=@var{count}
 
 (data output)
         /CC@{A,B,C,D,E@}=@{'@var{npre},@var{pre},@var{suf},@var{nsuf}','@var{npre}.@var{pre}.@var{suf}.@var{nsuf}'@}
         /DECIMAL=@{DOT,COMMA@}
         /FORMAT=@var{fmt_spec}
+        /LEADZERO=@{ON,OFF@}
+        /MDISPLAY=@{TEXT,TABLES@}
+        /SMALL=@var{number}
         /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
         /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
 
@@ -420,43 +522,43 @@ SET
 (output driver options)
         /HEADERS=@{NO,YES,BLANK@}
         /LENGTH=@{NONE,@var{n_lines}@}
-        /MORE=@{ON,OFF@}
         /WIDTH=@{NARROW,WIDTH,@var{n_characters}@}
         /TNUMBERS=@{VALUES,LABELS,BOTH@}
+        /TVARS=@{NAMES,LABELS,BOTH@}
+        /TLOOK=@{NONE,@var{file}@}
 
 (logging)
         /JOURNAL=@{ON,OFF@} ['@var{file_name}']
 
 (system files)
-        /COMPRESSION=@{ON,OFF@}
         /SCOMPRESSION=@{ON,OFF@}
 
 (miscellaneous)
         /SAFER=ON
         /LOCALE='@var{string}'
 
-
-(obsolete settings accepted for compatibility, but ignored)
-        /BOXSTRING=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
-        /CASE=@{UPPER,UPLOW@}
-        /CPI=cpi_value
-        /HIGHRES=@{ON,OFF@}
-        /HISTOGRAM='@var{c}'
-        /LOWRES=@{AUTO,ON,OFF@}
-        /LPI=@var{lpi_value}
-        /MENUS=@{STANDARD,EXTENDED@}
-        /MXMEMORY=@var{max_memory}
-        /SCRIPTTAB='c'
-        /TB1=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
-        /TBFONTS='@var{string}'
-        /XSORT=@{YES,NO@}
+(macros)
+        /MEXPAND=@{ON,OFF@}
+        /MPRINT=@{ON,OFF@}
+        /MITERATE=@var{number}
+        /MNEST=@var{number}
+
+(settings not yet implemented, but accepted and ignored)
+        /BASETEXTDIRECTION=@{AUTOMATIC,RIGHTTOLEFT,LEFTTORIGHT@}
+        /BLOCK='@var{c}'
+        /BOX=@{'@var{xxx}','@var{xxxxxxxxxxx}'@}
+        /CACHE=@{ON,OFF@}
+        /CELLSBREAK=@var{number}
+        /COMPRESSION=@{ON,OFF@}
+        /CMPTRANS=@{ON,OFF@}
+        /HEADER=@{NO,YES,BLANK@}
 @end display
 
 @cmd{SET} allows the user to adjust several parameters relating to
 @pspp{}'s execution.  Since there are many subcommands to this command, its
-subcommands will be examined in groups.
+subcommands are examined in groups.
 
-For subcommands that take boolean values, @subcmd{ON} and @subcmd{YES} are synonymous, 
+For subcommands that take boolean values, @subcmd{ON} and @subcmd{YES} are synonymous,
 as are @subcmd{OFF} and @subcmd{NO}, when used as subcommand values.
 
 The data input subcommands affect the way that data is read from data
@@ -466,7 +568,7 @@ files.  The data input subcommands are
 @item BLANKS
 @anchor{SET BLANKS}
 This is the value assigned to an item data item that is empty or
-contains only white space.  An argument of SYSMIS or '.' will cause the
+contains only white space.  An argument of SYSMIS or '.'  causes the
 system-missing value to be assigned to null items.  This is the
 default.  Any real value may be assigned.
 
@@ -478,9 +580,12 @@ Setting it to @subcmd{DOT} causes the decimal point character to be
 Setting it to @subcmd{COMMA}
 causes the decimal point character to be @samp{,} and the grouping
 character to be @samp{.}.
+If the setting is @subcmd{COMMA}, then @samp{,} is not treated
+as a field separator in the @cmd{DATA LIST} command (@pxref{DATA LIST}).
 The default value is determined from the system locale.
 
 @item FORMAT
+@anchor{SET FORMAT}
 Allows the default numeric input/output format to be specified.  The
 default is F8.2.  @xref{Input and Output Formats}.
 
@@ -494,7 +599,7 @@ epoch.  If @subcmd{AUTOMATIC} (the default) is specified, then the epoch begins
 69 years before the current date.
 
 @item RIB
-@anchor{SET RIB} 
+@anchor{SET RIB}
 
 @pspp{} extension to set the byte ordering (endianness) used for reading
 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
@@ -544,7 +649,7 @@ order.
 
 @item ZS
 32-bit IBM Z architecture short format hexadecimal floating point, in
-big-endian byte order.  
+big-endian byte order.
 
 @item ZL
 64-bit IBM Z architecture long format hexadecimal floating point, in
@@ -566,9 +671,9 @@ command file.  The default is 50.
 
 @item MXWARNS
 The maximum number of warnings + errors before @pspp{} halts processing the
-current command file.  
+current command file.
 The special value of zero means that all warning situations should be ignored.
-No warnings will be issued, except a single initial warning advising the user
+No warnings are issued, except a single initial warning advising you
 that warnings will not be given.
 The default value is 100.
 @end table
@@ -587,31 +692,41 @@ Example locales are @code{en_US.UTF-8} (UTF-8 encoded English as
 spoken in the United States) and @code{ja_JP.EUC-JP} (EUC-JP encoded
 Japanese as spoken in Japan).
 
-@item MEXPAND
-@itemx MITERATE
-@itemx MNEST
-@itemx MPRINT
-Currently not used.
-
 @item MXLOOPS
-The maximum number of iterations for an uncontrolled loop (@pxref{LOOP}).
-The default @var{max_loops} is 40.
+@anchor{SET MXLOOPS}
+
+The maximum number of iterations for an uncontrolled loop
+(@pxref{LOOP}), and for any loop in the matrix language (@pxref{Matrix
+LOOP and BREAK Commands}).  The default @var{max_loops} is 40.
 
 @item SEED
-The initial pseudo-random number seed.  Set to a real number or to
-RANDOM, which will obtain an initial seed from the current time of day.
+@anchor{SET SEED}
+The initial pseudo-random number seed.  Set it to a real number or to
+RANDOM, to obtain an initial seed from the current time of day.
 
 @item UNDEFINED
 Currently not used.
 
+@item FUZZBITS
+@anchor{SET FUZZBITS}
+The maximum number of bits of errors in the least-significant places
+to accept for rounding up a value that is almost halfway between two
+possibilities for rounding with the RND operator (@pxref{Miscellaneous
+Mathematics}).  The default @var{fuzzbits} is 6.
+
+@item SCALEMIN
+@anchor{SET SCALEMIN}
+The minimum number of distinct valid values for @pspp{} to assume that
+a variable has a scale measurement level.  @xref{Measurement Level}.
+
 @item WORKSPACE
-The maximum amount of memory that @pspp{} will use to store data being processed.
-If memory in excess of the workspace size is required, then @pspp{} will start
-to use temporary files to store the data.
-Setting a higher value will, in general, mean procedures will run faster, 
-but may cause other applications to run slower.
-On platforms without virtual memory management, setting a very large workspace
-may cause @pspp{} to abort.
+The maximum amount of memory (in kilobytes) that @pspp{} uses to
+store data being processed.  If memory in excess of the workspace size
+is required, then @pspp{} starts to use temporary files to store
+the data.   Setting a higher value means that procedures
+run faster, but may cause other applications to run slower.
+On platforms without virtual memory management, setting a very large
+workspace may cause @pspp{} to abort.
 @cindex workspace
 @cindex memory, amount used to store cases
 @end table
@@ -639,8 +754,34 @@ The default @subcmd{DOT} setting causes the decimal point character to be
 Allows the default numeric input/output format to be specified.  The
 default is F8.2.  @xref{Input and Output Formats}.
 
+@item LEADZERO
+@anchor{SET LEADZERO}
+
+Controls whether numbers with magnitude less than one are displayed
+with a zero before the decimal point.  For example, with @code{SET
+LEADZERO=OFF}, which is the default, one-half is shown as 0.5, and
+with @code{SET LEADZERO=ON}, it is shown as .5.  This setting affects
+only the @code{F}, @code{COMMA}, and @code{DOT} formats.
+
+@item MDISPLAY
+@anchor{SET MDISPLAY}
+
+Controls how the @code{PRINT} command within
+@code{MATRIX}@dots{}@code{END MATRIX} outputs matrices.  With the
+default @subcmd{TEXT}, @code{PRINT} outputs matrices as text.  Change
+this setting to @code{TABLES} to instead output matrices as pivot
+tables.  @xref{Matrix PRINT Command}, for more information.
+
+@item SMALL
+This controls how @pspp{} formats small numbers in pivot tables, in
+cases where @pspp{} does not otherwise have a well-defined format for
+the numbers.  When such a number has a magnitude less than the value
+set here, @pspp{} formats the number in scientific notation;
+otherwise, it formats it in standard notation.  The default is 0.0001.
+Set a value of 0 to disable scientific notation.
+
 @item WIB
-@anchor{SET WIB} 
+@anchor{SET WIB}
 
 @pspp{} extension to set the byte ordering (endianness) used for writing
 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
@@ -708,24 +849,38 @@ subcommands are
 @table @asis
 @item HEADERS
 @itemx LENGTH
-@itemx MORE
 @itemx WIDTH
 @itemx TNUMBERS
 The @subcmd{TNUMBERS} option sets the way in which values are displayed in output tables.
 The valid settings are @subcmd{VALUES}, @subcmd{LABELS} and @subcmd{BOTH}.
-If @subcmd{TNUMBERS} is set to @subcmd{VALUES}, then all values are displayed with their literal value 
+If @subcmd{TNUMBERS} is set to @subcmd{VALUES}, then all values are displayed with their literal value
 (which for a numeric value is a number and for a string value an alphanumeric string).
 If @subcmd{TNUMBERS} is set to @subcmd{LABELS}, then values are displayed using their assigned labels if any.
 (@xref{VALUE LABELS}.)
-If the a value has no label, then it will be displayed using its literal value.
-If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values will be displayed with both their label
-(if any) and their literal value in parenthesis.
+If the value has no label, then the literal value is used for display.
+If @subcmd{TNUMBERS} is set to @subcmd{BOTH}, then values are displayed with both their label
+(if any) and their literal value in parentheses.
+@item TVARS
+The @subcmd{TVARS} option sets the way in which variables are displayed in output tables.
+The valid settings are @subcmd{NAMES}, @subcmd{LABELS} and @subcmd{BOTH}.
+If @subcmd{TVARS} is set to @subcmd{NAMES}, then all variables are displayed using their names.
+If @subcmd{TVARS} is set to @subcmd{LABELS}, then variables are displayed using their label if one
+has been set.  If no label has been set, then the name is used.
+(@xref{VARIABLE LABELS}.)
+If @subcmd{TVARS} is set to @subcmd{BOTH}, then variables are displayed with both their label
+(if any) and their name in parentheses.
+@item TLOOK
+The @subcmd{TLOOK} option sets the style used for subsequent table
+output.  Specifying @subcmd{NONE} makes @pspp{} use the default
+built-in style.  Otherwise, specifying @var{file} makes @pspp{} search
+for an @file{.stt} or @file{.tlo} file in the same way as specifying
+@option{--table-look=@var{file}} the @pspp{} command line (@pxref{Main
+Options}).
 @end table
 
 @cindex headers
 @cindex length
-@cindex more
-@cindex pager 
+@cindex pager
 @cindex width
 @cindex tnumbers
 
@@ -751,9 +906,6 @@ System file subcommands affect the default format of system files
 produced by @pspp{}.  These subcommands are
 
 @table @asis
-@item COMPRESSION
-Not currently used.
-
 @item SCOMPRESSION
 Whether system files created by @cmd{SAVE} or @cmd{XSAVE} are
 compressed by default.  The default is @subcmd{ON}.
@@ -789,11 +941,11 @@ This item is used to set the default character encoding.
 The encoding may be specified either as an encoding name or alias
 (see @url{http://www.iana.org/assignments/character-sets}), or
 as a locale name.
-If given as a locale name, only the character encoding of the 
+If given as a locale name, only the character encoding of the
 locale is relevant.
 
-System files written by @pspp{} will use this encoding.
-System files read by @pspp{}, for which the encoding is unknown, will be
+System files written by @pspp{} use this encoding.
+System files read by @pspp{}, for which the encoding is unknown, are
 interpreted using this encoding.
 
 The full list of valid encodings and locale names/alias are operating system
@@ -808,10 +960,50 @@ SET LOCALE='ru_RU.cp1251'.
 SET LOCALE='japanese'.
 @end example
 
-Contrary to the intuition, this command does not affect any aspect 
+Contrary to intuition, this command does not affect any aspect
 of the system's locale.
 @end table
 
+The following subcommands affect the interpretation of macros.
+
+@table @asis
+@item MEXPAND
+@anchor{SET MEXPAND}
+Controls whether macros are expanded.  The default is ON.
+
+@item MPRINT
+@anchor{SET MPRINT}
+Controls whether the expansion of macros is included in output.  This
+is separate from whether command syntax in general is included in
+output.  The default is OFF.
+
+@item MITERATE
+@anchor{SET MITERATE}
+Limits the number of iterations executed in @code{!DO} loops within
+macros.  This does not affect other language constructs such as
+@cmd{LOOP}.  This must be set to a positive integer.  The default is
+1000.
+
+@item MNEST
+@anchor{SET MNEST}
+Limits the number of levels of nested macro expansions.  This must be
+set to a positive integer.  The default is 50.
+@end table
+
+The following subcommands are not yet implemented, but PSPP accepts
+them and ignores the settings.
+
+@table @asis
+@item BASETEXTDIRECTION
+@itemx BLOCK
+@itemx BOX
+@itemx CACHE
+@itemx CELLSBREAK
+@itemx COMPRESSION
+@itemx CMPTRANS
+@itemx HEADER
+@end table
+
 @node SHOW
 @section SHOW
 @vindex SHOW
@@ -831,11 +1023,18 @@ SHOW
         [DIRECTORY]
         [ENVIRONMENT]
         [FORMAT]
+        [FUZZBITS]
         [LENGTH]
+        [MEXPAND]
+        [MPRINT]
+        [MITERATE]
+        [MNEST]
         [MXERRS]
         [MXLOOPS]
         [MXWARNS]
+        [N]
         [SCOMPRESSION]
+        [SYSTEM]
         [TEMPDIR]
         [UNDEFINED]
         [VERSION]
@@ -850,7 +1049,7 @@ parameters.  Parameters that can be changed using @cmd{SET}
 with the same name.  @cmd{SHOW} supports the following additional
 subcommands:
 
-@table @bullet
+@table @asis
 @item @subcmd{ALL}
 Show all settings.
 @item @subcmd{CC}
@@ -859,8 +1058,14 @@ Show all custom currency settings (@subcmd{CCA} through @subcmd{CCE}).
 Shows the current working directory.
 @item @subcmd{ENVIRONMENT}
 Shows the operating system details.
+@item @subcmd{N}
+Reports the number of cases in the active dataset.  The reported number is not
+weighted.  If no dataset is defined, then @samp{Unknown} is reported.
+@item @subcmd{SYSTEM}
+Shows information about how PSPP was built.  This information is
+useful in bug reports.  @xref{Bugs}, for details.
 @item @subcmd{TEMPDIR}
-Shows the path of the directory where temporary files will be stored.
+Shows the path of the directory where temporary files are stored.
 @item @subcmd{VERSION}
 Shows the version of this installation of @pspp{}.
 @item @subcmd{WARRANTY}