Rewrote the command line parser using argp.
[pspp-builds.git] / doc / utilities.texi
1 @node Utilities
2 @chapter Utilities
3
4 Commands that don't fit any other category are placed here.
5
6 Most of these commands are not affected by commands like @cmd{IF} and
7 @cmd{LOOP}:
8 they take effect only once, unconditionally, at the time that they are
9 encountered in the input.
10
11 @menu
12 * ADD DOCUMENT::                Add documentary text to the active file.
13 * CD::                          Change the current directory.
14 * COMMENT::                     Document your syntax file.
15 * DOCUMENT::                    Document the active file.
16 * DISPLAY DOCUMENTS::           Display active file documents.
17 * DISPLAY FILE LABEL::          Display the active file label.
18 * DROP DOCUMENTS::              Remove documents from the active file.
19 * ECHO::                        Write a string to the output stream.
20 * ERASE::                       Erase a file.
21 * EXECUTE::                     Execute pending transformations.
22 * FILE LABEL::                  Set the active file's label.
23 * FINISH::                      Terminate the PSPP session.
24 * HOST::                        Temporarily return to the operating system.
25 * INCLUDE::                     Include a file within the current one.
26 * INSERT::                      Insert a file within the current one.
27 * PERMISSIONS::                 Change permissions on a file.
28 * SET::                         Adjust PSPP runtime parameters.
29 * SHOW::                        Display runtime parameters.
30 * SUBTITLE::                    Provide a document subtitle.
31 * TITLE::                       Provide a document title.
32 @end menu
33
34 @node ADD DOCUMENT
35 @comment  node-name,  next,  previous,  up
36 @section ADD DOCUMENT
37 @vindex  ADD DOCUMENT
38
39 @display
40 ADD DOCUMENT 
41     'line one' 'line two' @dots{} 'last line' .
42 @end display
43
44
45 @cmd{ADD DOCUMENT} adds one or more lines of descriptive commentary to 
46 the active file.  Documents added in this way are saved to system files.
47 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
48 DOCUMENTS}.  They can be removed from the active file with @cmd{DROP
49 DOCUMENTS}.
50
51 Each line of documentary text must be enclosed in quotation marks, and 
52 may not be more than 80 bytes long. @xref{DOCUMENT}.
53
54 @node CD
55 @section CD
56 @vindex CD
57 @cindex directory
58 @cindex changing directory
59
60 @display
61 CD 'new directory' .
62 @end display 
63
64 @cmd{CD} changes the current directory.  The new directory will become that specified by the command.
65
66 @node COMMENT
67 @section COMMENT
68 @vindex COMMENT
69 @vindex *
70
71 @display 
72 Two possibles syntaxes:
73         COMMENT comment text @dots{} .
74         *comment text @dots{} .
75 @end display
76
77 @cmd{COMMENT} is ignored.  It is used to provide information to
78 the author and other readers of the PSPP syntax file.  
79
80 @cmd{COMMENT} can extend over any number of lines.  Don't forget to
81 terminate it with a dot or a blank line.
82
83
84
85 @node DOCUMENT
86 @section DOCUMENT
87 @vindex DOCUMENT
88
89 @display
90 DOCUMENT @var{documentary_text}.
91 @end display
92
93 @cmd{DOCUMENT} adds one or more lines of descriptive commentary to the
94 active file.  Documents added in this way are saved to system files.
95 They can be viewed using @cmd{SYSFILE INFO} or @cmd{DISPLAY
96 DOCUMENTS}.  They can be removed from the active file with @cmd{DROP
97 DOCUMENTS}.
98
99 Specify the @var{documentary text} following the DOCUMENT keyword.  
100 It is interpreted literally --- any quotes or other punctuation marks 
101 will be included in the file.
102 You can extend the documentary text over as many lines as necessary.  
103 Lines are truncated at 80 bytes.  Don't forget to terminate
104 the command with a dot or a blank line. @xref{ADD DOCUMENT}.
105
106 @node DISPLAY DOCUMENTS
107 @section DISPLAY DOCUMENTS
108 @vindex DISPLAY DOCUMENTS
109
110 @display
111 DISPLAY DOCUMENTS.
112 @end display
113
114 @cmd{DISPLAY DOCUMENTS} displays the documents in the active file.  Each
115 document is preceded by a line giving the time and date that it was
116 added.  @xref{DOCUMENT}.
117
118 @node DISPLAY FILE LABEL
119 @section DISPLAY FILE LABEL
120 @vindex DISPLAY FILE LABEL
121
122 @display
123 DISPLAY FILE LABEL.
124 @end display
125
126 @cmd{DISPLAY FILE LABEL} displays the file label contained in the
127 active file,
128 if any.  @xref{FILE LABEL}.
129
130 This command is a PSPP extension.
131
132 @node DROP DOCUMENTS
133 @section DROP DOCUMENTS
134 @vindex DROP DOCUMENTS
135
136 @display
137 DROP DOCUMENTS.
138 @end display
139
140 @cmd{DROP DOCUMENTS} removes all documents from the active file.
141 New documents can be added with @cmd{DOCUMENT} (@pxref{DOCUMENT}).
142
143 @cmd{DROP DOCUMENTS} changes only the active file.  It does not modify any
144 system files stored on disk.
145
146 @node ECHO
147 @section ECHO
148 @vindex ECHO
149
150 @display 
151 ECHO 'arbitrary text' .
152 @end display
153
154 Use @cmd{ECHO} to write arbitrary text to the output stream. The text should be enclosed in quotation marks following the normal rules for string tokens (@pxref{Tokens}).
155
156 @node ERASE
157 @comment  node-name,  next,  previous,  up
158 @section ERASE
159 @vindex ERASE
160
161 @display
162 ERASE FILE file_name.
163 @end display
164
165 @cmd{ERASE FILE} deletes a file from the local filesystem.
166 file_name must be quoted.
167 This command cannot be used if the SAFER setting is active.
168
169
170 @node EXECUTE
171 @section EXECUTE
172 @vindex EXECUTE
173
174 @display
175 EXECUTE.
176 @end display
177
178 @cmd{EXECUTE} causes the active file to be read and all pending
179 transformations to be executed.
180
181 @node FILE LABEL
182 @section FILE LABEL
183 @vindex FILE LABEL
184
185 @display
186 FILE LABEL file_label.
187 @end display
188
189 @cmd{FILE LABEL} provides a title for the active file.  This
190 title will be saved into system files and portable files that are
191 created during this PSPP run.
192
193 file_label need not be quoted.  If quotes are
194 included, they become part of the file label.
195
196 @node FINISH
197 @section FINISH
198 @vindex FINISH
199
200 @display
201 FINISH.
202 @end display
203
204 @cmd{FINISH} terminates the current PSPP session and returns
205 control to the operating system.
206
207 @node HOST
208 @comment  node-name,  next,  previous,  up
209 @section HOST
210 @vindex HOST
211
212 @display
213 HOST.
214 @end display
215
216 @cmd{HOST} suspends the current PSPP session and temporarily returns control 
217 to the operating system.
218 This command cannot be used if the SAFER setting is active.
219
220
221 @node INCLUDE
222 @section INCLUDE
223 @vindex INCLUDE
224
225 @display
226         INCLUDE [FILE=]'file-name'.
227 @end display
228
229 @cmd{INCLUDE} causes the PSPP command processor to read an
230 additional command file as if it were included bodily in the current
231 command file.
232 If errors are encountered in the included file, then command processing will 
233 stop and no more commands will be processed.
234 Include files may be nested to any depth, up to the limit of available
235 memory.
236
237
238 The @cmd{INSERT} command (@pxref{INSERT}) may be used instead of
239 @cmd{INCLUDE} if you require more flexible options.
240 The syntax 
241 @example
242 INCLUDE FILE=@var{file-name}.
243 @end example
244 @noindent 
245 functions identically to 
246 @example
247 INSERT FILE=@var{file-name} ERROR=STOP CD=NO SYNTAX=BATCH.
248 @end example
249
250
251 @node INSERT
252 @section INSERT
253 @vindex INSERT
254
255 @display
256      INSERT [FILE=]'file-name'
257         [CD=@{NO,YES@}]
258         [ERROR=@{CONTINUE,STOP@}]
259         [SYNTAX=@{BATCH,INTERACTIVE@}].
260 @end display
261
262 @cmd{INSERT} is similar to @cmd{INCLUDE} (@pxref{INCLUDE}) 
263 but somewhat more flexible.
264 It causes the command processor to read a file as if it were embedded in the 
265 current command file.
266
267 If @samp{CD=YES} is specified, then before including the file, the
268 current directory  will be changed to the directory of the included
269 file.  
270 The default setting is @samp{CD=NO}.
271 Note that this directory will remain current until it is
272 changed explicitly (with the @cmd{CD} command, or a subsequent
273 @cmd{INSERT} command with the @samp{CD=YES} option).
274 It will not revert to its original setting even after the included
275 file is finished processing.
276
277 If @samp{ERROR=STOP} is specified, errors encountered in the
278 inserted file will cause processing to immediately cease.
279 Otherwise processing will continue at the next command.
280 The default setting is @samp{ERROR=CONTINUE}.
281
282 If @samp{SYNTAX=INTERACTIVE} is specified then the syntax contained in
283 the included file must conform to interactive syntax
284 conventions. @xref{Syntax Variants}.
285 The default setting is @samp{SYNTAX=BATCH}.
286
287 @node PERMISSIONS
288 @section PERMISSIONS
289 @vindex PERMISSIONS
290 @cindex mode
291 @cindex file mode
292 @cindex changing file permissions
293
294 @display
295 PERMISSIONS
296         FILE='file-name'
297         /PERMISSIONS = @{READONLY,WRITEABLE@}.
298 @end display
299
300 @cmd{PERMISSIONS} changes the permissions of a file.  
301 There is one mandatory subcommand which specifies the permissions to
302 which the file should be changed.  
303 If you set a file's  permission  to READONLY, then the file will become
304 unwritable either by you or anyone else on the system.
305 If you set the permission to WRITEABLE, then the file will become
306 writeable by you; the permissions afforded to others will be
307 unchanged.
308 This command cannot be used if the SAFER setting is active.
309
310
311 @node SET
312 @section SET
313 @vindex SET
314
315 @display
316 SET
317
318 (data input)
319         /BLANKS=@{SYSMIS,'.',number@}
320         /DECIMAL=@{DOT,COMMA@}
321         /FORMAT=fmt_spec
322         /EPOCH=@{AUTOMATIC,year@}
323         /RIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
324         /RRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
325
326 (program input)
327         /ENDCMD='.'
328         /NULLINE=@{ON,OFF@}
329
330 (interaction)
331         /CPROMPT='cprompt_string'
332         /DPROMPT='dprompt_string'
333         /ERRORBREAK=@{OFF,ON@}
334         /MXERRS=max_errs
335         /MXWARNS=max_warnings
336         /PROMPT='prompt'
337         /WORKSPACE=workspace_size
338
339 (program execution)
340         /MEXPAND=@{ON,OFF@}
341         /MITERATE=max_iterations
342         /MNEST=max_nest
343         /MPRINT=@{ON,OFF@}
344         /MXLOOPS=max_loops
345         /SEED=@{RANDOM,seed_value@}
346         /UNDEFINED=@{WARN,NOWARN@}
347
348 (data output)
349         /CC@{A,B,C,D,E@}=@{'npre,pre,suf,nsuf','npre.pre.suf.nsuf'@}
350         /DECIMAL=@{DOT,COMMA@}
351         /FORMAT=fmt_spec
352         /WIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@}
353         /WRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@}
354
355 (output routing)
356         /ECHO=@{ON,OFF@}
357         /ERRORS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
358         /INCLUDE=@{ON,OFF@}
359         /MESSAGES=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
360         /PRINTBACK=@{ON,OFF@}
361         /RESULTS=@{ON,OFF,TERMINAL,LISTING,BOTH,NONE@}
362
363 (output driver options)
364         /HEADERS=@{NO,YES,BLANK@}
365         /LENGTH=@{NONE,length_in_lines@}
366         /LISTING=@{ON,OFF,'file-name'@}
367         /MORE=@{ON,OFF@}
368         /WIDTH=@{NARROW,WIDTH,n_characters@}
369
370 (logging)
371         /JOURNAL=@{ON,OFF@} ['file-name']
372
373 (system files)
374         /COMPRESSION=@{ON,OFF@}
375         /SCOMPRESSION=@{ON,OFF@}
376
377 (security)
378         /SAFER=ON
379
380 (obsolete settings accepted for compatibility, but ignored)
381         /BOXSTRING=@{'xxx','xxxxxxxxxxx'@}
382         /CASE=@{UPPER,UPLOW@}
383         /CPI=cpi_value
384         /DISK=@{ON,OFF@}
385         /HIGHRES=@{ON,OFF@}
386         /HISTOGRAM='c'
387         /LOWRES=@{AUTO,ON,OFF@}
388         /LPI=lpi_value
389         /MENUS=@{STANDARD,EXTENDED@}
390         /MXMEMORY=max_memory
391         /SCRIPTTAB='c'
392         /TB1=@{'xxx','xxxxxxxxxxx'@}
393         /TBFONTS='string'
394         /XSORT=@{YES,NO@}
395 @end display
396
397 @cmd{SET} allows the user to adjust several parameters relating to
398 PSPP's execution.  Since there are many subcommands to this command, its
399 subcommands will be examined in groups.
400
401 On subcommands that take boolean values, ON and YES are synonym, and
402 as are OFF and NO, when used as subcommand values.
403
404 The data input subcommands affect the way that data is read from data
405 files.  The data input subcommands are
406
407 @table @asis
408 @item BLANKS
409 @anchor{SET BLANKS}
410 This is the value assigned to an item data item that is empty or
411 contains only white space.  An argument of SYSMIS or '.' will cause the
412 system-missing value to be assigned to null items.  This is the
413 default.  Any real value may be assigned.
414
415 @item DECIMAL
416 @anchor{SET DECIMAL}
417 This value may be set to DOT or COMMA.
418 Setting it to DOT causes the decimal point character to be
419 @samp{.} and the grouping character to be @samp{,}.
420 Setting it to COMMA
421 causes the decimal point character to be @samp{,} and the grouping
422 character to be @samp{.}.
423 The default value is determined from the system locale.
424
425 @item FORMAT
426 Allows the default numeric input/output format to be specified.  The
427 default is F8.2.  @xref{Input and Output Formats}.
428
429 @item EPOCH
430 @anchor{SET EPOCH}
431 Specifies the range of years used when a 2-digit year is read from a
432 data file or used in a date construction expression (@pxref{Date
433 Construction}).  If a 4-digit year is specified for the epoch, then
434 2-digit years are interpreted starting from that year, known as the
435 epoch.  If AUTOMATIC (the default) is specified, then the epoch begins
436 69 years before the current date.
437
438 @item RIB
439 @anchor{SET RIB} 
440
441 PSPP extension to set the byte ordering (endianness) used for reading
442 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
443 Formats}).  In MSBFIRST ordering, the most-significant byte appears at
444 the left end of a IB or PIB field.  In LSBFIRST ordering, the
445 least-significant byte appears at the left end.  VAX ordering is like
446 MSBFIRST, except that each pair of bytes is in reverse order.  NATIVE,
447 the default, is equivalent to MSBFIRST or LSBFIRST depending on the
448 native format of the machine running PSPP.
449
450 @item RRB
451 @anchor{SET RRB}
452
453 PSPP extension to set the floating-point format used for reading data in
454 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The
455 possibilities are:
456
457 @table @asis
458 @item NATIVE
459 The native format of the machine running PSPP.  Equivalent to either IDL
460 or IDB.
461
462 @item ISL
463 32-bit IEEE 754 single-precision floating point, in little-endian byte
464 order.
465
466 @item ISB
467 32-bit IEEE 754 single-precision floating point, in big-endian byte
468 order.
469
470 @item IDL
471 64-bit IEEE 754 double-precision floating point, in little-endian byte
472 order.
473
474 @item IDB
475 64-bit IEEE 754 double-precision floating point, in big-endian byte
476 order.
477
478 @item VF
479 32-bit VAX F format, in VAX-endian byte order.
480
481 @item VD
482 64-bit VAX D format, in VAX-endian byte order.
483
484 @item VG
485 64-bit VAX G format, in VAX-endian byte order.
486
487 @item ZS
488 32-bit IBM Z architecture short format hexadecimal floating point, in
489 big-endian byte order.  
490
491 @item ZL
492 64-bit IBM Z architecture long format hexadecimal floating point, in
493 big-endian byte order.
494
495 Z architecture also supports IEEE 754 floating point.  The ZS and ZL
496 formats are only for use with very old input files.
497 @end table
498 The default is NATIVE.
499 @end table
500
501 Program input subcommands affect the way that programs are parsed when
502 they are typed interactively or run from a command file.  They are
503
504 @table @asis
505 @item ENDCMD
506 This is a single character indicating the end of a command.  The default
507 is @samp{.}.  Don't change this.
508
509 @item NULLINE
510 Whether a blank line is interpreted as ending the current command.  The
511 default is ON.
512 @end table
513
514 Interaction subcommands affect the way that PSPP interacts with an
515 online user.  The interaction subcommands are
516
517 @table @asis
518 @item CPROMPT
519 The command continuation prompt.  The default is @samp{    > }.
520
521 @item DPROMPT
522 Prompt used when expecting data input within @cmd{BEGIN DATA} (@pxref{BEGIN
523 DATA}).  The default is @samp{data> }.
524
525 @item ERRORBREAK
526 Whether an error causes PSPP to stop processing the current command
527 file after finishing the current command.  The default is OFF.
528
529 @item MXERRS
530 The maximum number of errors before PSPP halts processing of the current
531 command file.  The default is 50.
532
533 @item MXWARNS
534 The maximum number of warnings + errors before PSPP halts processing the
535 current command file.  The default is 100.
536
537 @item PROMPT
538 The command prompt.  The default is @samp{PSPP> }.
539 @end table
540
541 Program execution subcommands control the way that PSPP commands
542 execute.  The program execution subcommands are
543
544 @table @asis
545 @item MEXPAND
546 @itemx MITERATE
547 @itemx MNEST
548 @itemx MPRINT
549 Currently not used.
550
551 @item MXLOOPS
552 The maximum number of iterations for an uncontrolled loop (@pxref{LOOP}).
553
554 @item SEED
555 The initial pseudo-random number seed.  Set to a real number or to
556 RANDOM, which will obtain an initial seed from the current time of day.
557
558 @item UNDEFINED
559 Currently not used.
560
561 @item WORKSPACE
562 The maximum amount of memory that PSPP will use to store data being processed.
563 If memory in excess of the workspace size is required, then PSPP will start
564 to use temporary files to store the data.
565 Setting a higher value will, in general, mean procedures will run faster, 
566 but may cause other applications to run slower.
567 On platforms without virtual memory management, setting a very large workspace
568 may cause PSPP to abort.
569 @cindex workspace
570 @cindex memory, amount used to store cases
571 @end table
572
573 Data output subcommands affect the format of output data.  These
574 subcommands are
575
576 @table @asis
577 @item CCA
578 @itemx CCB
579 @itemx CCC
580 @itemx CCD
581 @itemx CCE
582 @anchor{CCx Settings}
583
584 Set up custom currency formats.  @xref{Custom Currency Formats}, for
585 details.
586
587 @item DECIMAL
588 The default DOT setting causes the decimal point character to be
589 @samp{.}.  A setting of COMMA causes the decimal point character to be
590 @samp{,}.
591
592 @item FORMAT
593 Allows the default numeric input/output format to be specified.  The
594 default is F8.2.  @xref{Input and Output Formats}.
595
596 @item WIB
597 @anchor{SET WIB} 
598
599 PSPP extension to set the byte ordering (endianness) used for writing
600 data in IB or PIB format (@pxref{Binary and Hexadecimal Numeric
601 Formats}).  In MSBFIRST ordering, the most-significant byte appears at
602 the left end of a IB or PIB field.  In LSBFIRST ordering, the
603 least-significant byte appears at the left end.  VAX ordering is like
604 MSBFIRST, except that each pair of bytes is in reverse order.  NATIVE,
605 the default, is equivalent to MSBFIRST or LSBFIRST depending on the
606 native format of the machine running PSPP.
607
608 @item WRB
609 @anchor{SET WRB}
610
611 PSPP extension to set the floating-point format used for writing data in
612 RB format (@pxref{Binary and Hexadecimal Numeric Formats}).  The choices
613 are the same as SET RIB.  The default is NATIVE.
614 @end table
615
616 Output routing subcommands affect where the output of transformations
617 and procedures is sent.  These subcommands are
618
619 @table @asis
620 @item ECHO
621
622 If turned on, commands are written to the listing file as they are read
623 from command files.  The default is OFF.
624
625 @itemx ERRORS
626 @itemx INCLUDE
627 @itemx MESSAGES
628 @item PRINTBACK
629 @item RESULTS
630 Currently not used.
631 @end table
632
633 Output driver option subcommands affect output drivers' settings.  These
634 subcommands are
635
636 @table @asis
637 @item HEADERS
638 @itemx LENGTH
639 @itemx LISTING
640 @itemx MORE
641 @itemx PAGER 
642 @itemx WIDTH
643 @end table
644
645 @cindex headers
646 @cindex length
647 @cindex listing
648 @cindex more
649 @cindex pager 
650 @cindex width
651
652
653 Logging subcommands affect logging of commands executed to external
654 files.  These subcommands are
655
656 @table @asis
657 @item JOURNAL
658 @itemx LOG
659 These subcommands, which are synonyms, control the journal.  The
660 default is ON, which causes commands entered interactively to be
661 written to the journal file.  Commands included from syntax files that
662 are included interactively and error messages printed by PSPP are also
663 written to the journal file, prefixed by @samp{>}.  OFF disables use
664 of the journal.
665
666 The journal is named @file{pspp.jnl} by default.  A different name may
667 be specified.
668 @end table
669
670 System file subcommands affect the default format of system files
671 produced by PSPP.  These subcommands are
672
673 @table @asis
674 @item COMPRESSION
675 Not currently used.
676
677 @item SCOMPRESSION
678 Whether system files created by @cmd{SAVE} or @cmd{XSAVE} are
679 compressed by default.  The default is ON.
680 @end table
681
682 Security subcommands affect the operations that commands are allowed to
683 perform.  The security subcommands are
684
685 @table @asis
686 @item SAFER
687 Setting this option disables the following operations:
688
689 @itemize @bullet
690 @item
691 The ERASE command.
692 @item
693 The HOST command.
694 @item
695 The PERMISSIONS command.
696 @item
697 Pipes (file names beginning or ending with @samp{|}).
698 @end itemize
699
700 Be aware that this setting does not guarantee safety (commands can still
701 overwrite files, for instance) but it is an improvement.
702 When set, this setting cannot be reset during the same session, for
703 obvious security reasons.
704 @end table
705
706 @node SHOW
707 @comment  node-name,  next,  previous,  up
708 @section SHOW
709 @vindex SHOW
710
711 @display
712 SHOW
713         [ALL]
714         [BLANKS]
715         [CC]
716         [CCA]
717         [CCB]
718         [CCC]
719         [CCD]
720         [CCE]
721         [COPYING]
722         [DECIMALS]
723         [ENDCMD]
724         [FORMAT]
725         [LENGTH]
726         [MXERRS]
727         [MXLOOPS]
728         [MXWARNS]
729         [SCOMPRESSION]
730         [UNDEFINED]
731         [WARRANTY]
732         [WEIGHT]
733         [WIDTH]
734 @end display
735
736 @cmd{SHOW} can be used to display the current state of PSPP's execution
737 parameters.  Parameters that can be changed using @cmd{SET}
738 (@pxref{SET}), can be examined using @cmd{SHOW} using the subcommand
739 with the same name.  @code{SHOW} supports the following additional
740 subcommands:
741
742 @table @code
743 @item ALL
744 Show all settings.
745 @item CC
746 Show all custom currency settings (CCA through CCE).
747 @item WARRANTY
748 Show details of the lack of warranty for PSPP.
749 @item COPYING
750 Display the terms of PSPP's copyright licence (@pxref{License}).
751 @end table
752
753 Specifying @cmd{SHOW} without any subcommands is equivalent to SHOW ALL.
754
755 @node SUBTITLE
756 @section SUBTITLE
757 @vindex SUBTITLE
758
759 @display
760 SUBTITLE 'subtitle_string'.
761   or
762 SUBTITLE subtitle_string.
763 @end display
764
765 @cmd{SUBTITLE} provides a subtitle to a particular PSPP
766 run.  This subtitle appears at the top of each output page below the
767 title, if headers are enabled on the output device.
768
769 Specify a subtitle as a string in quotes.  The alternate syntax that did
770 not require quotes is now obsolete.  If it is used then the subtitle is
771 converted to all uppercase.
772
773 @node TITLE
774 @section TITLE
775 @vindex TITLE
776
777 @display
778 TITLE 'title_string'.
779   or
780 TITLE title_string.
781 @end display
782
783 @cmd{TITLE} provides a title to a particular PSPP run.
784 This title appears at the top of each output page, if headers are enabled
785 on the output device.
786
787 Specify a title as a string in quotes.  The alternate syntax that did
788 not require quotes is now obsolete.  If it is used then the title is
789 converted to all uppercase.
790 @setfilename ignored