diff options
-rw-r--r-- | tbl.7 | 49 | ||||
-rw-r--r-- | tbl_term.c | 22 |
2 files changed, 44 insertions, 27 deletions
@@ -1,6 +1,7 @@ -.\" $Id: tbl.7,v 1.18 2013/09/16 22:39:19 schwarze Exp $ +.\" $Id: tbl.7,v 1.19 2014/10/13 23:31:46 schwarze Exp $ .\" .\" Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> +.\" Copyright (c) 2014 Ingo Schwarze <schwarze@openbsd.org> .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -14,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: September 16 2013 $ +.Dd $Mdocdate: October 13 2014 $ .Dt TBL 7 .Os .Sh NAME @@ -195,7 +196,7 @@ Each layout line corresponds to a line of data; the last layout line applies to all remaining data lines. Layout lines may also be separated by a comma. Each layout cell consists of one of the following case-insensitive keys: -.Bl -tag -width Ds +.Bl -tag -width 2n .It Cm c Centre a literal string within its column. .It Cm r @@ -244,35 +245,35 @@ Keys may be followed by a set of modifiers. A modifier is either a modifier key or a natural number for specifying the minimum width of a column. The following case-insensitive modifier keys are available: -.Cm z , -.Cm u , -.Cm e , -.Cm t , +.Bl -tag -width 2n +.It Cm b +Use a bold font for the contents of this column. +.It Cm f +The next character selects the font to use for this column. +See the +.Xr roff 7 +manual for supported one-character font names. +.It Cm i +Use an italic font for the contents of this column. +.El +.Pp +The modifiers .Cm d , -.Cm b , -.Cm i , +.Cm e , .Cm r , +.Cm t , +.Cm u , and -.Cm f -.Po -followed by -.Cm b , -.Cm i , -.Cm r , -.Cm 3 , -.Cm 2 , -or -.Cm 1 -.Pc . -All of these are ignored by +.Cm z +are ignored by .Xr mandoc 1 . .Pp For example, the following layout specifies a centre-justified column of minimum width 10, followed by vertical bar, followed by a left-justified -column of minimum width 10, another vertical bar, then a column -justified about the decimal point in numbers: +column of minimum width 10, another vertical bar, then a column using +bold font justified about the decimal point in numbers: .Pp -.Dl c10 | l10 | n +.Dl c10 | l10 | nfB .Ss Data The data section follows the last layout row. By default, cells in a data section are delimited by a tab. @@ -1,4 +1,4 @@ -/* $Id: tbl_term.c,v 1.28 2014/08/10 23:54:41 schwarze Exp $ */ +/* $Id: tbl_term.c,v 1.29 2014/10/13 23:31:46 schwarze Exp $ */ /* * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2011, 2012, 2014 Ingo Schwarze <schwarze@openbsd.org> @@ -43,6 +43,7 @@ static void tbl_number(struct termp *, const struct tbl_opts *, const struct roffcol *); static void tbl_hrule(struct termp *, const struct tbl_span *); static void tbl_vrule(struct termp *, const struct tbl_head *); +static void tbl_word(struct termp *, const struct tbl_dat *); static size_t @@ -378,7 +379,7 @@ tbl_literal(struct termp *tp, const struct tbl_dat *dp, } tbl_char(tp, ASCII_NBRSP, padl); - term_word(tp, dp->string); + tbl_word(tp, dp); tbl_char(tp, ASCII_NBRSP, padr); } @@ -419,8 +420,23 @@ tbl_number(struct termp *tp, const struct tbl_opts *opts, padl = col->decimal - d; tbl_char(tp, ASCII_NBRSP, padl); - term_word(tp, dp->string); + tbl_word(tp, dp); if (col->width > sz + padl) tbl_char(tp, ASCII_NBRSP, col->width - sz - padl); } +static void +tbl_word(struct termp *tp, const struct tbl_dat *dp) +{ + const void *prev_font; + + prev_font = term_fontq(tp); + if (dp->layout->flags & TBL_CELL_BOLD) + term_fontpush(tp, TERMFONT_BOLD); + else if (dp->layout->flags & TBL_CELL_ITALIC) + term_fontpush(tp, TERMFONT_UNDER); + + term_word(tp, dp->string); + + term_fontpopq(tp, prev_font); +} |