Skip to main content
padding() controls the space between cell content and cell borders. All padding values are in points (pts) by default.

Function signature

padding(
  x,
  i = NULL,
  j = NULL,
  padding = NULL,
  padding.top = NULL,
  padding.bottom = NULL,
  padding.left = NULL,
  padding.right = NULL,
  part = "body"
)

Parameters

x
flextable
required
A flextable object.
i
integer | formula | logical
Row selector. Accepts integer indices, a one-sided formula (e.g., ~ col > 5), or a logical vector. NULL selects all rows in the specified part.
j
integer | character | formula
Column selector. Accepts integer indices, column names, or a formula. NULL selects all columns.
padding
number
A single value (in points) applied as shortcut for all four sides: top, bottom, left, and right. Individual side arguments take precedence over this shortcut if both are supplied.
padding.top
number
Top padding in points.
padding.bottom
number
Bottom padding in points.
padding.left
number
Left padding in points.
padding.right
number
Right padding in points.
part
string
default:"\"body\""
Which part of the table to target: "body", "header", "footer", or "all".

Return value

The modified flextable object.

Examples

Set uniform top padding across all parts:
ft <- flextable(head(iris))
ft <- theme_vader(ft)
ft <- padding(ft, padding.top = 4, part = "all")
ft
Set per-side padding on specific rows and columns:
ft <- flextable(head(iris))
ft <- theme_vader(ft)
ft <- padding(ft, padding.top = 4, part = "all")
ft <- padding(ft, j = 1, padding.right = 40)
ft <- padding(ft, i = 3, padding.top = 40)
ft <- padding(ft, padding.top = 10, part = "header")
ft <- padding(ft, padding.bottom = 10, part = "header")
ft <- autofit(ft)
ft
In PDF output, only padding.left and padding.right are applied. padding.top and padding.bottom are ignored due to LaTeX limitations. For global horizontal spacing in PDF, use set_table_properties(opts_pdf = list(tabcolsep = 1)).

See also