.TH TABS 1 .SH NAME tabs \- set tabs on a terminal .SH SYNOPSIS .B tabs [ tabspec ] [ .BR +m n ] [ .BR \-T type ] .SH DESCRIPTION .I Tabs\^ sets the tab stops on the user's terminal according to the tab specification .IR tabspec , after clearing any previous settings. The user must of course be logged in on a terminal with remotely-settable hardware tabs. .PP Users of .SM GE TermiNet terminals should be aware that they behave in a different way than most other terminals for some tab settings: the first number in a list of tab settings becomes the .I "left margin\^" on a TermiNet terminal. Thus, any list of tab numbers whose first element is other than 1 causes a margin to be left on a TermiNet, but not on other terminals. A tab list beginning with 1 causes the same effect regardless of terminal type. It is possible to set a left margin on some other terminals, although in a different way (see below). .PP Four types of tab specification are accepted for .IR tabspec : ``canned,'' repetitive, arbitrary, and file. If no .I tabspec\^ is given, the default value is .BR \-8 , i.e., \s-1UNIX\s+1 System ``standard'' tabs. The lowest column number is 1. Note that for .IR tabs , column 1 always refers to the leftmost column on a terminal, even one whose column markers begin at 0, e.g., the \s-1DASI\s+1 300, \s-1DASI\s+1 300s, and \s-1DASI\s+1 450. .PP .PD 0 .TP 8 .BI \- code\^ Gives the name of one of a set of ``canned'' tabs. The legal codes and their meanings are as follows: .TP .B \-a 1,10,16,36,72 .br Assembler, \s-1IBM\s+1 S/370, first format .TP .B \-a2 1,10,16,40,72 .br Assembler, \s-1IBM\s+1 S/370, second format .TP .B \-c 1,8,12,16,20,55 .br \s-1COBOL\s+1, normal format .TP .B \-c2 1,6,10,14,49 .br \s-1COBOL\s+1 compact format (columns 1-6 omitted). Using this code, the first typed character corresponds to card column 7, one space gets you to column 8, and a tab reaches column 12. Files using this tab setup should include a format specification as follows: .RS .RS .B "<:t\-c2 \|m6 \|s66 \|d:>" .RE .RE .TP .B \-c3 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67 .br \s-1COBOL\s+1 compact format (columns 1-6 omitted), with more tabs than .B \-c2. This is the recommended format for \s-1COBOL\s+1. The appropriate format specification is: .RS .RS .B "<:t\-c3 \|m6 \|s66 \|d:>" .RE .RE .TP .B \-f 1,7,11,15,19,23 .br \s-1FORTRAN\s+1 .TP .B \-p 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 .br \s-1PL/I\s+1 .TP .B \-s 1,10,55 .br \s-1SNOBOL\s+1 .TP .B \-u 1,12,20,44 .br \s-1UNIVAC\s+1 1100 Assembler .PD .PP In addition to these ``canned'' formats, three other types exist: .PP .PD 0 .TP 8 .BI \- n\^ A repetitive specification requests tabs at columns .RI 1+ n , .RI 1+2\(** n , etc. Note that such a setting leaves a left margin of .I n\^ columns on TermiNet terminals .IR only . Of particular importance is the value .BR \-8 : this represents the \s-1UNIX\s+1 System ``standard'' tab setting, and is the most likely tab setting to be found at a terminal. It is required for use with the .I nroff .B \-h option for high-speed output. Another special case is the value .BR \-0 , implying no tabs at all. .TP .IR n1 , n2 ,... The arbitrary format permits the user to type any chosen set of numbers, separated by commas, in ascending order. Up to 40 numbers are allowed. If any number (except the first one) is preceded by a plus sign, it is taken as an increment to be added to the previous value. Thus, the tab lists 1,10,20,30 and 1,10,+10,+10 are considered identical. .TP .BI \-\- file\^ If the name of a file is given, .I tabs\^ reads the first line of the file, searching for a format specification. If it finds one there, it sets the tab stops according to it, otherwise it sets them as .BR \-8 . This type of specification may be used to make sure that a tabbed file is printed with correct tab settings, and would be used with the .IR pr (1) command: .RS .RS tabs \-\- file; pr file .RE .RE .PD .PP Any of the following may be used also; if a given flag occurs more than once, the last value given takes effect: .PP .PD 0 .TP 8 .BI \-T type\^ .I Tabs\^ usually needs to know the type of terminal in order to set tabs and always needs to know the type to set margins. .I Type\^ is a name listed in .IR term (5). If no .B \-T flag is supplied, .I tabs\^ searches for the .SM .B $TERM value in the .I environment\^ (see .IR environ (5)). If no .I type\^ can be found, .I tabs\^ tries a sequence that will work for many terminals. .TP .BI +m n\^ The margin argument may be used for some terminals. It causes all tabs to be moved over .I n\^ columns by making column .I n+1\^ the left margin. If .B +m is given without a value of .IR n , the value assumed is 10. For a TermiNet, the first value in the tab list should be 1, or the margin will move even further to the right. The normal (leftmost) margin on most terminals is obtained by .BR +m0 . The margin for most terminals is reset only when the .B +m flag is given explicitly. .PD .PP Tab and margin setting is performed via the standard output. .SH DIAGNOSTICS .PD 0 .TP "\w@\f2unknown\ tab\ code\fP\ \ \ \ @u" .I "illegal tabs\^" when arbitrary tabs are ordered incorrectly. .br .TP .I "illegal increment\^" when a zero or missing increment is found in an arbitrary specification. .br .TP .I "unknown tab code\^" when a ``canned'' code cannot be found. .br .TP .I "can't open\^" if \f3\-\-\fP\f2file\fP option used, and file can't be opened. .br .TP .I "file indirection\^" if \f3\-\-\fP\f2file\fP option used and the specification in that file points to yet another file. Indirection of this form is not permitted. .br .PD .SH SEE ALSO nroff(1), environ(5), term(5). .SH BUGS There is no consistency among different terminals regarding ways of clearing tabs and setting the left margin. .br It is generally impossible to usefully change the left margin without also setting tabs. .br .I Tabs\^ clears only 20 tabs (on terminals requiring a long sequence), but is willing to set 40. .\" @(#)tabs.1 5.2 of 5/18/82