tbl_format_setup() is called by format.tbl(). This method collects information that is common to the header, body, and footer parts of a tibble. Examples:

  • the dimensions sometimes are reported both in the header and (implicitly) in the footer of a tibble;

  • the columns shown in the body decide which columns are shown in the footer.

This information is computed once in tbl_format_setup(). The result is passed on to the tbl_format_header(), tbl_format_body(), and tbl_format_footer() methods. If you need to customize parts of the printed output independently, override these methods instead.

tbl_format_setup(x, width = NULL, ..., n = NULL, max_extra_cols = NULL)

# S3 method for tbl
tbl_format_setup(x, width, ..., n, max_extra_cols)



An object.


Actual width for printing, a numeric greater than zero. This argument is mandatory for all implementations of this method.


Extra arguments to print.tbl() or format.tbl().


Actual number of rows to print. No options should be considered by implementations of this method.


Number of columns to print abbreviated information for, if the width is too small for the entire tibble. No options should be considered by implementations of this method.


An object that can be passed as setup argument to tbl_format_header(), tbl_format_body(), and tbl_format_footer().


Extend this method to prepare information that is used in several parts of the printed output of a tibble-like object, or to collect additional arguments passed via ... to print.tbl() or format.tbl().

We expect that tbl_format_setup() is extended only rarely, and overridden only in exceptional circumstances, if at all. If you override this method, you must also implement tbl_format_header(), tbl_format_body(), and tbl_format_footer() for your class.

Implementing a method allows to override printing and formatting of the entire object without overriding the print() and format() methods directly. This allows to keep the logic of the width and n arguments.

The default method for the "tbl" class collects information for standard printing for tibbles. See new_tbl_format_setup() for details on the returned object.


#> <pillar_tbl_format_setup> #> <tbl_format_header(setup)> #> # A tibble: 344 x 8 #> <tbl_format_body(setup)> #> species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g #> <fct> <fct> <dbl> <dbl> <int> <int> #> 1 Adelie Torgersen 39.1 18.7 181 3750 #> 2 Adelie Torgersen 39.5 17.4 186 3800 #> 3 Adelie Torgersen 40.3 18 195 3250 #> 4 Adelie Torgersen NA NA NA NA #> 5 Adelie Torgersen 36.7 19.3 193 3450 #> 6 Adelie Torgersen 39.3 20.6 190 3650 #> 7 Adelie Torgersen 38.9 17.8 181 3625 #> 8 Adelie Torgersen 39.2 19.6 195 4675 #> 9 Adelie Torgersen 34.1 18.1 193 3475 #> 10 Adelie Torgersen 42 20.2 190 4250 #> <tbl_format_footer(setup)> #> # … with 334 more rows, and 2 more variables: sex <fct>, year <int>