Skip to contents

These functions work with the content of cells in tabular-like environments. Cells are numbered with the first row (typically column titles) being row 1. Rules (i.e. horizontal lines) are not considered part of a cell.

Usage

find_tableCell(table, row, col)

tableCell(table, row, col)

tableCell(table, row, col, asis = FALSE) <- value

Arguments

table

A tabular-like environment to work with.

row, col

row and column in the table.

asis

Should blanks be added around the value?

value

The content to be inserted into the cell. This can be a LaTeX2 object, or a character string that will be converted to one.

Value

find_tableCell() returns the indices of the entries corresponding to the content of the cell (row, col) of the table.

tableCell() returns a LaTeX2 object containing all of the table content in the cell (but not the &).

Details

find_tableCell() returns NA if the requested cell is missing because an earlier cell covered multiple columns. It signals an error if a request is made beyond the bounds of the table.

Unless asis = TRUE, tableContent(table) <- value will add blanks at the start end end if not present, to make the result more readable.

If col is higher than the current table width, the assignment will fail with an error. If only row is too high, blank lines will be added and it should succeed.

Examples

latex <- kableExtra::kbl(mtcars[1:2, 1:2], format = "latex")
parsed <- parseLatex(latex)
table <- parsed[[find_tabular(parsed)]]
find_tableCell(table, 1, 2)
#> [1] 11 12 13

tableCell(table, 1, 2)
#>  mpg  

tableCell(table, 5, 2) <- " d "
table
#> ENVIRONMENT: \begin{tabular}[t]{l|r|r}
#> \hline
#>   & mpg & cyl\\
#> \hline
#> Mazda RX4 & 21 & 6\\
#> \hline
#> Mazda RX4 Wag & 21 & 6\\
#>  &  & \\
#>  & d & \\
#> \hline
#> \end{tabular}