xref: /dflybsd-src/contrib/mdocml/tbl.7 (revision 1e4d43f9c96723e4e55543d240f182e1aac9a4c2)
1*99db7d0eSSascha Wildner.\"	$Id: tbl.7,v 1.37 2021/09/18 12:34:27 schwarze Exp $
280387638SSascha Wildner.\"
360e1e752SSascha Wildner.\" Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
454ba9607SSascha Wildner.\" Copyright (c) 2014,2015,2017,2018,2019 Ingo Schwarze <schwarze@openbsd.org>
580387638SSascha Wildner.\"
680387638SSascha Wildner.\" Permission to use, copy, modify, and distribute this software for any
780387638SSascha Wildner.\" purpose with or without fee is hereby granted, provided that the above
880387638SSascha Wildner.\" copyright notice and this permission notice appear in all copies.
980387638SSascha Wildner.\"
1080387638SSascha Wildner.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1180387638SSascha Wildner.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1280387638SSascha Wildner.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1380387638SSascha Wildner.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1480387638SSascha Wildner.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1580387638SSascha Wildner.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1680387638SSascha Wildner.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1780387638SSascha Wildner.\"
18*99db7d0eSSascha Wildner.Dd $Mdocdate: September 18 2021 $
1980387638SSascha Wildner.Dt TBL 7
2080387638SSascha Wildner.Os
2180387638SSascha Wildner.Sh NAME
2280387638SSascha Wildner.Nm tbl
2380387638SSascha Wildner.Nd tbl language reference for mandoc
2480387638SSascha Wildner.Sh DESCRIPTION
2580387638SSascha WildnerThe
2680387638SSascha Wildner.Nm tbl
2754ba9607SSascha Wildnerlanguage formats tables.
2880387638SSascha WildnerIt is used within
2980387638SSascha Wildner.Xr mdoc 7
3080387638SSascha Wildnerand
3180387638SSascha Wildner.Xr man 7
3254ba9607SSascha Wildnerpages.
3380387638SSascha WildnerThis manual describes the subset of the
3480387638SSascha Wildner.Nm
3580387638SSascha Wildnerlanguage accepted by the
3680387638SSascha Wildner.Xr mandoc 1
3780387638SSascha Wildnerutility.
3880387638SSascha Wildner.Pp
3954ba9607SSascha WildnerEach table is started with a
4080387638SSascha Wildner.Xr roff 7
4154ba9607SSascha Wildner.Ic \&TS
4254ba9607SSascha Wildnermacro, consist of at most one line of
4354ba9607SSascha Wildner.Sx Options ,
4454ba9607SSascha Wildnerone or more
4580387638SSascha Wildner.Sx Layout
4654ba9607SSascha Wildnerlines, one or more
4754ba9607SSascha Wildner.Sx Data
4854ba9607SSascha Wildnerlines, and ends with a
4954ba9607SSascha Wildner.Ic \&TE
5054ba9607SSascha Wildnermacro.
5180387638SSascha WildnerAll input must be 7-bit ASCII.
5280387638SSascha Wildner.Ss Options
5354ba9607SSascha WildnerIf the first input line of a table ends with a semicolon, it contains
5454ba9607SSascha Wildnercase-insensitive options separated by spaces, tabs, or commas.
5554ba9607SSascha WildnerOtherwise, it is interpreted as the first
5680387638SSascha Wildner.Sx Layout
5754ba9607SSascha Wildnerline.
5854ba9607SSascha Wildner.Pp
5954ba9607SSascha WildnerThe following options are available.
6054ba9607SSascha WildnerSome of them require arguments enclosed in parentheses:
6180387638SSascha Wildner.Bl -tag -width Ds
6254ba9607SSascha Wildner.It Cm allbox
6354ba9607SSascha WildnerDraw a single-line box around each table cell.
6480387638SSascha Wildner.It Cm box
6580387638SSascha WildnerDraw a single-line box around the table.
6654ba9607SSascha WildnerFor GNU compatibility, this may also be invoked with
6780387638SSascha Wildner.Cm frame .
6854ba9607SSascha Wildner.It Cm center
6954ba9607SSascha WildnerCenter the table instead of left-adjusting it.
7054ba9607SSascha WildnerFor GNU compatibility, this may also be invoked with
7154ba9607SSascha Wildner.Cm centre .
7280387638SSascha Wildner.It Cm decimalpoint
7354ba9607SSascha WildnerUse the single-character argument as the decimal point with the
7480387638SSascha Wildner.Cm n
7580387638SSascha Wildnerlayout key.
7654ba9607SSascha WildnerThis is a GNU extension.
7754ba9607SSascha Wildner.It Cm delim
7854ba9607SSascha WildnerUse the two characters of the argument as
7954ba9607SSascha Wildner.Xr eqn 7
8054ba9607SSascha Wildnerdelimiters.
8154ba9607SSascha WildnerCurrently unsupported.
8254ba9607SSascha Wildner.It Cm doublebox
8354ba9607SSascha WildnerDraw a double-line box around the table.
8454ba9607SSascha WildnerFor GNU compatibility, this may also be invoked with
8554ba9607SSascha Wildner.Cm doubleframe .
8654ba9607SSascha Wildner.It Cm expand
8754ba9607SSascha WildnerIncrease the width of the table to the current line length.
8854ba9607SSascha WildnerCurrently ignored.
8954ba9607SSascha Wildner.It Cm linesize
9054ba9607SSascha WildnerDraw lines with the point size given by the unsigned integer argument.
9154ba9607SSascha WildnerCurrently ignored.
9254ba9607SSascha Wildner.It Cm nokeep
9354ba9607SSascha WildnerAllow page breaks within the table.
9454ba9607SSascha WildnerThis is a GNU extension and currently ignored.
9580387638SSascha Wildner.It Cm nospaces
9654ba9607SSascha WildnerIgnore leading and trailing spaces in data cells.
97*99db7d0eSSascha WildnerThis is a GNU extension.
9854ba9607SSascha Wildner.It Cm nowarn
9954ba9607SSascha WildnerSuppress warnings about tables exceeding the current line length.
10054ba9607SSascha WildnerThis is a GNU extension and currently ignored.
10154ba9607SSascha Wildner.It Cm tab
10254ba9607SSascha WildnerUse the single-character argument as a delimiter between data cells.
10354ba9607SSascha WildnerBy default, the horizontal tabulator character is used.
10480387638SSascha Wildner.El
10580387638SSascha Wildner.Ss Layout
10654ba9607SSascha WildnerThe table layout follows an
10780387638SSascha Wildner.Sx Options
10854ba9607SSascha Wildnerline or a
10954ba9607SSascha Wildner.Xr roff 7
11054ba9607SSascha Wildner.Ic \&TS
11154ba9607SSascha Wildneror
11254ba9607SSascha Wildner.Ic \&T&
11354ba9607SSascha Wildnermacro.
11454ba9607SSascha WildnerEach layout line specifies how one line of
11554ba9607SSascha Wildner.Sx Data
11654ba9607SSascha Wildneris formatted.
11754ba9607SSascha WildnerThe last layout line ends with a full stop.
11854ba9607SSascha WildnerIt also applies to all remaining data lines.
11954ba9607SSascha WildnerMultiple layout lines can be joined by commas on a single physical
12054ba9607SSascha Wildnerinput line.
12154ba9607SSascha Wildner.Pp
12254ba9607SSascha WildnerEach layout line consists of one or more layout cell specifications,
12354ba9607SSascha Wildneroptionally separated by whitespace.
12454ba9607SSascha WildnerThe following case-insensitive key characters start a new cell
12554ba9607SSascha Wildnerspecification:
12654ba9607SSascha Wildner.Bl -tag -width 2n
12780387638SSascha Wildner.It Cm c
12854ba9607SSascha WildnerCenter the string in this cell.
12980387638SSascha Wildner.It Cm r
13054ba9607SSascha WildnerRight-justify the string in this cell.
13180387638SSascha Wildner.It Cm l
13254ba9607SSascha WildnerLeft-justify the string in this cell.
13380387638SSascha Wildner.It Cm n
13460e1e752SSascha WildnerJustify a number around its last decimal point.
13554ba9607SSascha WildnerIf no decimal point is found in the number,
13654ba9607SSascha Wildnerit is assumed to trail the number.
13780387638SSascha Wildner.It Cm s
13860e1e752SSascha WildnerHorizontally span columns from the last
13954ba9607SSascha Wildner.Pf non- Cm s
14054ba9607SSascha Wildnerlayout cell.
14154ba9607SSascha WildnerIt is an error if a column span follows a
14280387638SSascha Wildner.Cm _
14380387638SSascha Wildneror
14480387638SSascha Wildner.Cm =
14554ba9607SSascha Wildnercell, or comes first on a layout line.
14654ba9607SSascha WildnerThe combined cell as a whole consumes only one cell
14754ba9607SSascha Wildnerof the corresponding data line.
14854ba9607SSascha Wildner.It Cm a
14954ba9607SSascha WildnerLeft-justify a string and pad with one space.
15054ba9607SSascha Wildner.It Cm \(ha
15154ba9607SSascha WildnerVertically span rows from the last
15254ba9607SSascha Wildner.Pf non- Cm \(ha
15354ba9607SSascha Wildnerlayout cell.
15454ba9607SSascha WildnerIt is an error to invoke a vertical span on the first layout line.
15554ba9607SSascha WildnerUnlike a horizontal span, a vertical span consumes a data cell
15654ba9607SSascha Wildnerand discards the content.
15754ba9607SSascha Wildner.It Cm _
15854ba9607SSascha WildnerDraw a single horizontal line in this cell.
15954ba9607SSascha WildnerThis consumes a data cell and discards the content.
16054ba9607SSascha WildnerIt may also be invoked with
16154ba9607SSascha Wildner.Cm \- .
16254ba9607SSascha Wildner.It Cm =
16354ba9607SSascha WildnerDraw a double horizontal line in this cell.
16454ba9607SSascha WildnerThis consumes a data cell and discards the content.
16554ba9607SSascha Wildner.El
16680387638SSascha Wildner.Pp
16754ba9607SSascha WildnerEach cell key may be followed by zero or more of the following
16854ba9607SSascha Wildnercase-insensitive modifiers:
16954ba9607SSascha Wildner.Bl -tag -width 2n
17054ba9607SSascha Wildner.It Cm b
17154ba9607SSascha WildnerUse a bold font for the contents of this cell.
17254ba9607SSascha Wildner.It Cm d
17354ba9607SSascha WildnerMove content down to the last row of this vertical span.
17454ba9607SSascha WildnerCurrently ignored.
17554ba9607SSascha Wildner.It Cm e
17654ba9607SSascha WildnerMake this column wider to match the maximum width
17754ba9607SSascha Wildnerof any other column also having the
17854ba9607SSascha Wildner.Cm e
17954ba9607SSascha Wildnermodifier.
18054ba9607SSascha Wildner.It Cm f
181*99db7d0eSSascha WildnerThe next one or two characters select the font to use for this cell.
182*99db7d0eSSascha WildnerOne-character font names must be followed by a blank or period.
18354ba9607SSascha WildnerSee the
18454ba9607SSascha Wildner.Xr roff 7
185*99db7d0eSSascha Wildnermanual for supported font names.
18654ba9607SSascha Wildner.It Cm i
18754ba9607SSascha WildnerUse an italic font for the contents of this cell.
18854ba9607SSascha Wildner.It Cm m
18954ba9607SSascha WildnerSpecify a cell start macro.
19054ba9607SSascha WildnerThis is a GNU extension and currently unsupported.
19154ba9607SSascha Wildner.It Cm p
19254ba9607SSascha WildnerSet the point size to the following unsigned argument,
19354ba9607SSascha Wildneror change it by the following signed argument.
19454ba9607SSascha WildnerCurrently ignored.
19554ba9607SSascha Wildner.It Cm v
19654ba9607SSascha WildnerSet the vertical line spacing to the following unsigned argument,
19754ba9607SSascha Wildneror change it by the following signed argument.
19854ba9607SSascha WildnerCurrently ignored.
19954ba9607SSascha Wildner.It Cm t
20054ba9607SSascha WildnerDo not vertically center content in this vertical span,
20154ba9607SSascha Wildnerleave it in the top row.
20254ba9607SSascha WildnerCurrently ignored.
20354ba9607SSascha Wildner.It Cm u
20454ba9607SSascha WildnerMove cell content up by half a table row.
20554ba9607SSascha WildnerCurrently ignored.
20654ba9607SSascha Wildner.It Cm w
20754ba9607SSascha WildnerSpecify a minimum column width.
20854ba9607SSascha Wildner.It Cm x
20954ba9607SSascha WildnerAfter determining the width of all other columns, distribute the
21054ba9607SSascha Wildnerrest of the line length among all columns having the
21154ba9607SSascha Wildner.Cm x
21254ba9607SSascha Wildnermodifier.
21354ba9607SSascha Wildner.It Cm z
21454ba9607SSascha WildnerDo not use this cell for determining the width of this column.
21554ba9607SSascha Wildner.It Cm \&|
21654ba9607SSascha WildnerDraw a single vertical line to the right of this cell.
21754ba9607SSascha Wildner.It Cm ||
21854ba9607SSascha WildnerDraw a double vertical line to the right of this cell.
21954ba9607SSascha Wildner.El
22054ba9607SSascha Wildner.Pp
22154ba9607SSascha WildnerIf a modifier consists of decimal digits,
22254ba9607SSascha Wildnerit specifies a minimum spacing in units of
22354ba9607SSascha Wildner.Cm n
22454ba9607SSascha Wildnerbetween this column and the next column to the right.
22554ba9607SSascha WildnerThe default is 3.
22654ba9607SSascha WildnerIf there is a vertical line, it is drawn inside the spacing.
22754ba9607SSascha Wildner.Ss Data
22854ba9607SSascha WildnerThe data section follows the last
22954ba9607SSascha Wildner.Sx Layout
23054ba9607SSascha Wildnerline.
23154ba9607SSascha WildnerEach data line consists of one or more data cells, delimited by
23254ba9607SSascha Wildner.Cm tab
23354ba9607SSascha Wildnercharacters.
23454ba9607SSascha Wildner.Pp
23554ba9607SSascha WildnerIf a data cell contains only the two bytes
23654ba9607SSascha Wildner.Ql \e\(ha ,
23754ba9607SSascha Wildnerthe cell above spans to this row, as if the layout specification
23854ba9607SSascha Wildnerof this cell were
23954ba9607SSascha Wildner.Cm \(ha .
24054ba9607SSascha Wildner.Pp
24154ba9607SSascha WildnerIf a data cell contains only the single character
24254ba9607SSascha Wildner.Ql _
24354ba9607SSascha Wildneror
24454ba9607SSascha Wildner.Ql = ,
24554ba9607SSascha Wildnera single or double horizontal line is drawn across the cell,
24654ba9607SSascha Wildnerjoining its neighbours.
24754ba9607SSascha WildnerIf a data cell contains only the two character sequence
24854ba9607SSascha Wildner.Ql \e_
24954ba9607SSascha Wildneror
25054ba9607SSascha Wildner.Ql \e= ,
25154ba9607SSascha Wildnera single or double horizontal line is drawn inside the cell,
25254ba9607SSascha Wildnernot joining its neighbours.
25354ba9607SSascha WildnerIf a data line contains nothing but the single character
25454ba9607SSascha Wildner.Ql _
25554ba9607SSascha Wildneror
25654ba9607SSascha Wildner.Ql = ,
25754ba9607SSascha Wildnera horizontal line across the whole table is inserted
25854ba9607SSascha Wildnerwithout consuming a layout row.
25954ba9607SSascha Wildner.Pp
26054ba9607SSascha WildnerIn place of any data cell, a text block can be used.
26154ba9607SSascha WildnerIt starts with
26254ba9607SSascha Wildner.Ic \&T{
26354ba9607SSascha Wildnerat the end of a physical input line.
26454ba9607SSascha WildnerInput line breaks inside the text block
26554ba9607SSascha Wildnerneither end the text block nor its data cell.
26654ba9607SSascha WildnerIt only ends if
26754ba9607SSascha Wildner.Ic \&T}
26854ba9607SSascha Wildneroccurs at the beginning of a physical input line and is followed
26954ba9607SSascha Wildnerby an end-of-cell indicator.
27054ba9607SSascha WildnerIf the
27154ba9607SSascha Wildner.Ic \&T}
27254ba9607SSascha Wildneris followed by the end of the physical input line, the text block,
27354ba9607SSascha Wildnerthe data cell, and the data line ends at this point.
27454ba9607SSascha WildnerIf the
27554ba9607SSascha Wildner.Ic \&T}
27654ba9607SSascha Wildneris followed by the
27754ba9607SSascha Wildner.Cm tab
27854ba9607SSascha Wildnercharacter, only the text block and the data cell end,
27954ba9607SSascha Wildnerbut the data line continues with the data cell following the
28054ba9607SSascha Wildner.Cm tab
28154ba9607SSascha Wildnercharacter.
28254ba9607SSascha WildnerIf
28354ba9607SSascha Wildner.Ic \&T}
28454ba9607SSascha Wildneris followed by any other character, it does not end the text block,
28554ba9607SSascha Wildnerwhich instead continues to the following physical input line.
28654ba9607SSascha Wildner.Sh EXAMPLES
28754ba9607SSascha WildnerString justification and font selection:
28854ba9607SSascha Wildner.Bd -literal -offset indent
28954ba9607SSascha Wildner\&.TS
29054ba9607SSascha Wildnerrb c  lb
29154ba9607SSascha Wildnerr  ci l.
29254ba9607SSascha Wildnerr	center	l
29354ba9607SSascha Wildnerri	ce	le
29454ba9607SSascha Wildnerright	c	left
29554ba9607SSascha Wildner\&.TE
29654ba9607SSascha Wildner.Ed
29754ba9607SSascha Wildner.Bd -filled -offset indent
29854ba9607SSascha Wildner.TS
29954ba9607SSascha Wildnerrb c  lb
30054ba9607SSascha Wildnerr  ci l.
30154ba9607SSascha Wildnerr	center	l
30254ba9607SSascha Wildnerri	ce	le
30354ba9607SSascha Wildnerright	c	left
30454ba9607SSascha Wildner.TE
30554ba9607SSascha Wildner.Ed
30654ba9607SSascha Wildner.Pp
30754ba9607SSascha WildnerSome ports in
30854ba9607SSascha Wildner.Ox 6.1
30954ba9607SSascha Wildnerto show number alignment and line drawing:
31054ba9607SSascha Wildner.Bd -literal -offset indent
31154ba9607SSascha Wildner\&.TS
31254ba9607SSascha Wildnerbox tab(:);
31354ba9607SSascha Wildnerr| l
31454ba9607SSascha Wildnerr  n.
31554ba9607SSascha Wildnersoftware:version
31654ba9607SSascha Wildner_
31754ba9607SSascha WildnerAFL:2.39b
31854ba9607SSascha WildnerMutt:1.8.0
31954ba9607SSascha WildnerRuby:1.8.7.374
32054ba9607SSascha WildnerTeX Live:2015
32154ba9607SSascha Wildner\&.TE
32254ba9607SSascha Wildner.Ed
32354ba9607SSascha Wildner.Bd -filled -offset indent
32454ba9607SSascha Wildner.TS
32554ba9607SSascha Wildnerbox tab(:);
32654ba9607SSascha Wildnerr| l
32754ba9607SSascha Wildnerr  n.
32854ba9607SSascha Wildnersoftware:version
32954ba9607SSascha Wildner_
33054ba9607SSascha WildnerAFL:2.39b
33154ba9607SSascha WildnerMutt:1.8.0
33254ba9607SSascha WildnerRuby:1.8.7.374
33354ba9607SSascha WildnerTeX Live:2015
33454ba9607SSascha Wildner.TE
33554ba9607SSascha Wildner.Ed
33654ba9607SSascha Wildner.sp 2v
33754ba9607SSascha WildnerSpans and skipping width calculations:
33854ba9607SSascha Wildner.Bd -literal -offset indent
33954ba9607SSascha Wildner\&.TS
34054ba9607SSascha Wildnerbox tab(:);
34154ba9607SSascha Wildnerlz  s | rt
34254ba9607SSascha Wildnerlt| cb| \(ha
34354ba9607SSascha Wildner\(ha | rz  s.
34454ba9607SSascha Wildnerleft:r
34554ba9607SSascha Wildnerl:center:
34654ba9607SSascha Wildner:right
34754ba9607SSascha Wildner\&.TE
34854ba9607SSascha Wildner.Ed
34954ba9607SSascha Wildner.Bd -filled -offset indent
35054ba9607SSascha Wildner.TS
35154ba9607SSascha Wildnerbox tab(:);
35254ba9607SSascha Wildnerlz  s | rt
35354ba9607SSascha Wildnerlt| cb| ^
35454ba9607SSascha Wildner^ | rz  s.
35554ba9607SSascha Wildnerleft:r
35654ba9607SSascha Wildnerl:center:
35754ba9607SSascha Wildner:right
35854ba9607SSascha Wildner.TE
35954ba9607SSascha Wildner.Ed
36054ba9607SSascha Wildner.sp 2v
36154ba9607SSascha WildnerText blocks, specifying spacings and specifying and equalizing
36254ba9607SSascha Wildnercolumn widths, putting lines into individual cells, and overriding
36354ba9607SSascha Wildner.Cm allbox :
36454ba9607SSascha Wildner.Bd -literal -offset indent
36554ba9607SSascha Wildner\&.TS
36654ba9607SSascha Wildnerallbox tab(:);
36754ba9607SSascha Wildnerle le||7 lw10.
36854ba9607SSascha WildnerThe fourth line:_:line 1
36954ba9607SSascha Wildnerof this column:=:line 2
37054ba9607SSascha Wildnerdetermines:\_:line 3
37154ba9607SSascha Wildnerthe column width.:T{
37254ba9607SSascha WildnerThis text is too wide to fit into a column of width 17.
37354ba9607SSascha WildnerT}:line 4
37454ba9607SSascha WildnerT{
37554ba9607SSascha WildnerNo break here.
37654ba9607SSascha WildnerT}::line 5
37754ba9607SSascha Wildner\&.TE
37854ba9607SSascha Wildner.Ed
37954ba9607SSascha Wildner.Bd -filled -offset indent
38054ba9607SSascha Wildner.TS
38154ba9607SSascha Wildnerallbox tab(:);
38254ba9607SSascha Wildnerle le||7 lw10.
38354ba9607SSascha WildnerThe fourth line:_:line 1
38454ba9607SSascha Wildnerof this column:=:line 2
38554ba9607SSascha Wildnerdetermines:\_:line 3
38654ba9607SSascha Wildnerthe column width.:T{
38754ba9607SSascha WildnerThis text is too wide to fit into a column of width 17.
38854ba9607SSascha WildnerT}:line 4
38954ba9607SSascha WildnerT{
39054ba9607SSascha WildnerNo break here.
39154ba9607SSascha WildnerT}::line 5
39254ba9607SSascha Wildner.TE
39354ba9607SSascha Wildner.Ed
39454ba9607SSascha Wildner.sp 2v
39554ba9607SSascha WildnerThese examples were constructed to demonstrate many
39654ba9607SSascha Wildner.Nm
39754ba9607SSascha Wildnerfeatures in a compact way.
39854ba9607SSascha WildnerIn real manual pages, keep tables as simple as possible.
39954ba9607SSascha WildnerThey usually look better, are less fragile, and are more portable.
40054ba9607SSascha Wildner.Sh COMPATIBILITY
40180387638SSascha WildnerThe
40280387638SSascha Wildner.Xr mandoc 1
40354ba9607SSascha Wildnerimplementation of
40454ba9607SSascha Wildner.Nm
40554ba9607SSascha Wildnerdoesn't support
40654ba9607SSascha Wildner.Xr mdoc 7
40754ba9607SSascha Wildnerand
40854ba9607SSascha Wildner.Xr man 7
40954ba9607SSascha Wildnermacros and
41054ba9607SSascha Wildner.Xr eqn 7
41154ba9607SSascha Wildnerequations inside tables.
41280387638SSascha Wildner.Sh SEE ALSO
41380387638SSascha Wildner.Xr mandoc 1 ,
41480387638SSascha Wildner.Xr man 7 ,
41580387638SSascha Wildner.Xr mandoc_char 7 ,
41680387638SSascha Wildner.Xr mdoc 7 ,
41780387638SSascha Wildner.Xr roff 7
41880387638SSascha Wildner.Rs
41980387638SSascha Wildner.%A M. E. Lesk
42080387638SSascha Wildner.%T Tbl \(em A Program to Format Tables
42180387638SSascha Wildner.%D June 11, 1976
42280387638SSascha Wildner.Re
42380387638SSascha Wildner.Sh HISTORY
42480387638SSascha WildnerThe tbl utility, a preprocessor for troff, was originally written by M.
42580387638SSascha WildnerE. Lesk at Bell Labs in 1975.
42680387638SSascha WildnerThe GNU reimplementation of tbl, part of the groff package, was released
42780387638SSascha Wildnerin 1990 by James Clark.
42880387638SSascha WildnerA standalone tbl implementation was written by Kristaps Dzonsons in
42980387638SSascha Wildner2010.
43054ba9607SSascha WildnerThis formed the basis of the implementation that first appeared in
43154ba9607SSascha Wildner.Ox 4.9
43254ba9607SSascha Wildneras a part of the
43380387638SSascha Wildner.Xr mandoc 1
43480387638SSascha Wildnerutility.
43580387638SSascha Wildner.Sh AUTHORS
43636342e81SSascha WildnerThis
43780387638SSascha Wildner.Nm
43880387638SSascha Wildnerreference was written by
43954ba9607SSascha Wildner.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv
44054ba9607SSascha Wildnerand
44154ba9607SSascha Wildner.An Ingo Schwarze Aq Mt schwarze@openbsd.org .
44254ba9607SSascha Wildner.Sh BUGS
44354ba9607SSascha WildnerIn
44454ba9607SSascha Wildner.Fl T
44554ba9607SSascha Wildner.Cm utf8
44654ba9607SSascha Wildneroutput mode, heavy lines are drawn instead of double lines.
44754ba9607SSascha WildnerThis cannot be improved because the Unicode standard only provides
44854ba9607SSascha Wildneran incomplete set of box drawing characters with double lines,
44954ba9607SSascha Wildnerwhereas it provides a full set of box drawing characters
45054ba9607SSascha Wildnerwith heavy lines.
45154ba9607SSascha WildnerIt is unlikely this can be improved in the future because the box
45254ba9607SSascha Wildnerdrawing characters are already marked in Unicode as characters
45354ba9607SSascha Wildnerintended only for backward compatibility with legacy systems,
45454ba9607SSascha Wildnerand their use is not encouraged.
45554ba9607SSascha WildnerSo it seems unlikely that the missing ones might get added in the future.
456