Manual specifications of column widths can be performed using the cols_width() function. We choose which columns get specific widths (in pixels, usually by use of the px() helper function). Width assignments are supplied in ... through two-sided formulas, where the left-hand side defines the target columns and the right-hand side is a single width value in pixels.

cols_width(data, ..., .list = list2(...))

## Arguments

data A table object that is created using the gt() function. Expressions for the assignment of column widths for the table columns in data. Two-sided formulas (e.g,  ~ ) can be used, where the left-hand side corresponds to selections of columns and the right-hand side evaluates to single-length character values in the form {##}px (i.e., pixel dimensions); the px() helper function is best used for this purpose. Column names should be enclosed in vars(). The column-based select helpers starts_with(), ends_with(), contains(), matches(), one_of(), and everything() can be used in the LHS. Subsequent expressions that operate on the columns assigned previously will result in overwriting column width values (both in the same cols_width() call and across separate calls). All other columns can be assigned a default width value by using TRUE or everything() on the left-hand side. Allows for the use of a list as an input alternative to ....

## Value

An object of class gt_tbl.

## Details

Normally, column widths are automatically set to span across the width of the container (both table and container widths can be individually modified with the table.width and container.width options within tab_options()). When using cols_width() though, the table.width option is disregarded in favor of the pixel values set for each column.

## Function ID

4-2

Other Modify Columns: cols_align(), cols_hide(), cols_label(), cols_merge_range(), cols_merge_uncert(), cols_merge(), cols_move_to_end(), cols_move_to_start(), cols_move()

## Examples

# Use exibble to create a gt table;
# with named arguments in ..., we
# can specify the exact widths for
# table columns (using TRUE will
# capture all remaining columns)
tab_1 <-
exibble %>%
dplyr::select(
num, char, date,
datetime, row
) %>%
gt() %>%
cols_width(
vars(num) ~ px(150),
ends_with("r") ~ px(100),
starts_with("date") ~ px(200),
TRUE ~ px(60)
)