Skip to content

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.


  width = NULL,
  n = NULL,
  max_extra_cols = NULL,
  max_footer_lines = NULL,
  focus = NULL

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



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.


Maximum number of lines for the footer. No options should be considered by implementations of this method.



Names of columns to show preferentially if space is tight.


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 × 8
#> <tbl_format_body(setup)>
#>    species island    bill_length_mm bill_depth_mm flipper_length_mm
#>    <fct>   <fct>              <dbl>         <dbl>             <int>
#>  1 Adelie  Torgersen           39.1          18.7               181
#>  2 Adelie  Torgersen           39.5          17.4               186
#>  3 Adelie  Torgersen           40.3          18                 195
#>  4 Adelie  Torgersen           NA            NA                  NA
#>  5 Adelie  Torgersen           36.7          19.3               193
#>  6 Adelie  Torgersen           39.3          20.6               190
#>  7 Adelie  Torgersen           38.9          17.8               181
#>  8 Adelie  Torgersen           39.2          19.6               195
#>  9 Adelie  Torgersen           34.1          18.1               193
#> 10 Adelie  Torgersen           42            20.2               190
#> <tbl_format_footer(setup)>
#> # ℹ 334 more rows
#> # ℹ 3 more variables: body_mass_g <int>, sex <fct>, year <int>