Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

nroff(1)

ttcompat(4M)

TERM(5)  —  FILE FORMATS

NAME

term − terminal driving tables for nroff

SYNOPSIS

/usr/lib/term/tabname

DESCRIPTION

nroff(1) uses driving tables to customize its output for various types of output devices, such as terminals, line printers, daisy-wheel printers, or special output filter programs.  These driving tables are written as C programs, compiled, and installed in the directory /usr/lib/term.  The name of the output device is specified with the −T option of nroff.  The structure of the terminal table is as follows:

#defineINCH240
struct {
int bset;
int breset;
int Hor;
int Vert;
int Newline;
int Char;
int Em;
int Halfline;
int Adj;
char ∗twinit;
char ∗twrest;
char ∗twnl;
char ∗hlr;
char ∗hlf;
char ∗flr;
char ∗bdon;
char ∗bdoff;
char ∗ploton;
char ∗plotoff;
char ∗up;
char ∗down;
char ∗right;
char ∗left;
char ∗codetab[256−32];
char ∗zzz;
} t;

The meanings of the various fields are as follows:

bset Bits to set in the sg_flags field of the sgtty structure before output; see ttcompat(4M). 

breset Bits to reset in the sg_flags field of the sgtty structure after output; see ttcompat(4M). 

Hor Horizontal resolution in fractions of an inch. 

Vert Vertical resolution in fractions of an inch. 

Newline Space moved by a NEWLINE (LINEFEED) character in fractions of an inch. 

Char Quantum of character sizes, in fractions of an inch.  (that is, a character is a multiple of Char units wide)

Em Size of an em in fractions of an inch. 

Halfline Space moved by a half-LINEFEED (or half-reverse-LINEFEED) character in fractions of an inch. 

Adj Quantum of white space, in fractions of an inch.  (that is, white spaces are a multiple of Adj units wide)

Note: if this is less than the size of the SPACE character (in units of Char; see below for how the sizes of characters are defined), nroff will output fractional SPACE characters using plot mode.  Also, if the −e switch to nroff is used, Adj is set equal to Hor by nroff. 

twinit Set of characters used to initialize the terminal in a mode suitable for nroff. 

twrest Set of characters used to restore the terminal to normal mode. 

twnl Set of characters used to move down one line. 

hlr Set of characters used to move up one-half line. 

hlf Set of characters used to move down one-half line. 

flr Set of characters used to move up one line. 

bdon Set of characters used to turn on hardware boldface mode, if any. 

bdoff Set of characters used to turn off hardware boldface mode, if any. 

ploton Set of characters used to turn on hardware plot mode (for Diablo type mechanisms), if any. 

plotoff Set of characters used to turn off hardware plot mode (for Diablo type mechanisms), if any. 

up Set of characters used to move up one resolution unit (Vert) in plot mode, if any. 

down Set of characters used to move down one resolution unit (Vert) in plot mode, if any. 

right Set of characters used to move right one resolution unit (Hor) in plot mode, if any. 

left Set of characters used to move left one resolution unit (Hor) in plot mode, if any. 

codetab Definition of characters needed to print an nroff character on the terminal.  The first byte is the number of character units (Char) needed to hold the character; that is, \001 is one unit wide, \002 is two units wide, etc.  The high-order bit (0200) is on if the character is to be underlined in underline mode (.ul).  The rest of the bytes are the characters used to produce the character in question.  If the character has the sign (0200) bit on, it is a code to move the terminal in plot mode.  It is encoded as:

0100 bit on vertical motion. 

0100 bit off horizontal motion. 

040 bit on negative (up or left) motion. 

040 bit off positive (down or right) motion. 

037 bits number of such motions to make. 

zzz A zero terminator at the end. 

All quantities which are in units of fractions of an inch should be expressed as ‘INCH∗num/denom’, where num and denom are respectively the numerator and denominator of the fraction; that is, 1/48 of an inch would be written as ‘INCH/48’. 

If any sequence of characters does not pertain to the output device, that sequence should be given as a null string. 

The following is a sample codetab encoding. 

"\001 ", /∗space∗/
"\001!", /∗!∗/
"\001\"", /∗"∗/
"\001#", /∗#∗/
"\001$", /∗$∗/
"\001%", /∗%∗/
"\001&", /∗&∗/
"\001’", /∗’∗/
"\001(", /∗(∗/
"\001)", /∗)∗/
"\001∗", /∗∗∗/
"\001+", /∗+∗/
"\001,", /∗,∗/
"\001-", /∗-∗/
"\001.", /∗.∗/
"\001/", /∗/∗/
"\2010", /∗0∗/
"\2011", /∗1∗/
"\2012", /∗2∗/
"\2013", /∗3∗/
"\2014", /∗4∗/
"\2015", /∗5∗/
"\2016", /∗6∗/
"\2017", /∗7∗/
"\2018", /∗8∗/
"\2019", /∗9∗/
"\001:", /∗:∗/
"\001;", /∗;∗/
"\001<", /∗<∗/
"\001=", /∗=∗/
"\001>", /∗>∗/
"\001?", /∗?∗/
"\001@", /∗@∗/
"\201A", /∗A∗/
"\201B", /∗B∗/
"\201C", /∗C∗/
"\201D", /∗D∗/
"\201E", /∗E∗/
"\201F", /∗F∗/
"\201G", /∗G∗/
"\201H", /∗H∗/
"\201I", /∗I∗/
"\201J", /∗J∗/
"\201K", /∗K∗/
"\201L", /∗L∗/
"\201M", /∗M∗/
"\201N", /∗N∗/
"\201O", /∗O∗/
"\201P", /∗P∗/
"\201Q", /∗Q∗/
"\201R", /∗R∗/
"\201S", /∗S∗/
"\201T", /∗T∗/
"\201U", /∗U∗/
"\201V", /∗V∗/
"\201W", /∗W∗/
"\201X", /∗X∗/
"\201Y", /∗Y∗/
"\201Z", /∗Z∗/
"\001[", /∗[∗/
"\001\\", /∗\∗/
"\001]", /∗]∗/
"\001^", /∗^∗/
"\001_", /∗_∗/
"\001‘", /∗‘∗/
"\201a", /∗a∗/
"\201b", /∗b∗/
"\201c", /∗c∗/
"\201d", /∗d∗/
"\201e", /∗e∗/
"\201f", /∗f∗/
"\201g", /∗g∗/
"\201h", /∗h∗/
"\201i", /∗i∗/
"\201j", /∗j∗/
"\201k", /∗k∗/
"\201l", /∗l∗/
"\201m", /∗m∗/
"\201n", /∗n∗/
"\201o", /∗o∗/
"\201p", /∗p∗/
"\201q", /∗q∗/
"\201r", /∗r∗/
"\201s", /∗s∗/
"\201t", /∗t∗/
"\201u", /∗u∗/
"\201v", /∗v∗/
"\201w", /∗w∗/
"\201x", /∗x∗/
"\201y", /∗y∗/
"\201z", /∗z∗/
"\001{", /∗{∗/
"\001|", /∗|∗/
"\001}", /∗}∗/
"\001~", /∗~∗/
"\000\0", /∗narrow sp∗/
"\001-", /∗hyphen∗/
"\001\016Z\017", /∗bullet∗/
"\002[]", /∗square∗/
"\002--", /∗3/4 em dash∗/
"\001_", /∗rule∗/
"\0031/4", /∗1/4∗/
"\0031/2", /∗1/2∗/
"\0033/4", /∗3/4∗/
"\001-", /∗minus∗/
"\202fi", /∗fi∗/
"\202fl", /∗fl∗/
"\202ff", /∗ff∗/
"\203ffi", /∗ffi∗/
"\203ffl", /∗ffl∗/
"\001\016p\017", /∗degree∗/
"\001|\b\342-\302", /∗dagger∗/
"\001\301s\343s\302", /∗section∗/
"\001’", /∗foot mark∗/
"\001\033Z", /∗acute accent∗/
"\001‘", /∗grave accent∗/
"\001_", /∗underrule∗/
"\001/", /∗long slash∗/
"\000\0", /∗half narrow space∗/
"\001 ", /∗unpaddable space∗/
"\001\016A\017", /∗alpha∗/
"\001\016B\017", /∗beta∗/
"\001\016C\017", /∗gamma∗/
"\001\016D\017", /∗delta∗/
"\001\016E\017", /∗epsilon∗/
"\001\016F\017", /∗zeta∗/
"\001\016G\017", /∗eta∗/
"\001\016H\017", /∗theta∗/
"\001\016I\017", /∗iota∗/
"\001\016J\017", /∗kappa∗/
"\001\016K\017", /∗lambda∗/
"\001\016L\017", /∗mu∗/
"\001\016M\017", /∗nu∗/
"\001\016N\017", /∗xi∗/
"\001\016O\017", /∗omicron∗/
"\001\016P\017", /∗pi∗/
"\001\016Q\017", /∗rho∗/
"\001\016R\017", /∗sigma∗/
"\001\016S\017", /∗tau∗/
"\001\016T\017", /∗upsilon∗/
"\001\016U\017", /∗phi∗/
"\001\016V\017", /∗chi∗/
"\001\016W\017", /∗psi∗/
"\001\016X\017", /∗omega∗/
"\001\016#\017", /∗Gamma∗/
"\001\016$\017", /∗Delta∗/
"\001\016(\017", /∗Theta∗/
"\001\016+\017", /∗Lambda∗/
"\001\016.\017", /∗Xi∗/
"\001\0160\017", /∗Pi∗/
"\001\0169\017", /∗Sigma∗/
"\000", /∗∗/
"\001\0164\017", /∗Upsilon∗/
"\001\0165\017", /∗Phi∗/
"\001\0167\017", /∗Psi∗/
"\001\0168\017", /∗Omega∗/
"\001\016[\017", /∗square root∗/
"\001\016Y\017", /∗\(ts yields script-l∗/
"\001\016k\017", /∗root en∗/
"\001>\b_", /∗>=∗/
"\001<\b_", /∗<=∗/
"\001=\b_", /∗identically equal∗/
"\001-", /∗equation minus∗/
"\001\016o\017", /∗approx =∗/
"\001\016n\017", /∗approximates∗/
"\001=\b/", /∗not equal∗/
"\002-\242-\202>", /∗right arrow∗/
"\002<\b\202-\242\200-", /∗left arrow∗/
"\001|\b^", /∗up arrow∗/
"\001|\b\302v\342", /∗down arrow∗/
"\001=", /∗equation equal∗/
"\001\016|\017", /∗multiply∗/
"\001\016}\017", /∗divide∗/
"\001\016j\017", /∗plus-minus∗/
"\001\243|\203_\203|\243", /∗cup (union)∗/
"\001\243|\203\351_\311\203|\243", /∗cap (intersection)∗/
"\001\243(\203\302-\345-\303", /∗subset of∗/
"\001\302-\345-\303\203)\243", /∗superset of∗/
"\001_\b\243(\203\302-\345-\303", /∗improper subset∗/
"\001_\b\302-\345-\303\203)\243", /∗improper superset∗/
"\001\016~\017", /∗infinity∗/
"\001\200o\201\301‘\241\341‘\241\341‘\201\301", /∗partial derivative∗/
"\001\016:\017", /∗gradient∗/
"\001\200-\202\341,\301\242", /∗not∗/
"\001\016?\017", /∗integral sign∗/
"\002o\242c\202", /∗proportional to∗/
"\001O\b/", /∗empty set∗/
"\001<\b\341-\302", /∗member of∗/
"\001+", /∗equation plus∗/
"\003(R)", /∗registered∗/
"\003(C)", /∗copyright∗/
"\001|", /∗box rule ∗/
"\001\033Y", /∗cent sign∗/
"\001|\b\342=\302", /∗double dagger∗/
"\002=>", /∗right hand∗/
"\002<=", /∗left hand∗/
"\001∗", /∗math ∗ ∗/
"\001\0162\017", /∗\(bs yields small sigma∗/
"\001|", /∗or (was star)∗/
"\001O", /∗circle∗/
"\001|", /∗left top of big brace∗/
"\001|", /∗left bot of big brace∗/
"\001|", /∗right top of big brace∗/
"\001|", /∗right bot of big brace∗/
"\001\016]\017", /∗left center of big brace∗/
"\001\016\\\017", /∗right center of big brace∗/
"\001|", /∗bold vertical∗/
"\001|", /∗left floor (lb of big bracket)∗/
"\001|", /∗right floor (rb of big bracket)∗/
"\001|", /∗left ceiling (lt of big bracket)∗/
"\001|" /∗right ceiling (rt of big bracket)∗/

FILES

/usr/lib/term/tabname driving tables

/usr/lib/term/README
list of terminals supported by nroff(1)

SEE ALSO

nroff(1), ttcompat(4M)

Sun Release 4.0  —  Last change: 16 February 1988

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026