Skip to contents

Split up a table by rows

Usage

prepare_table(table, do_cells = TRUE)

prepare_row(row)

Arguments

table

A tabular-like environment to work with.

do_cells

Should the rows be prepared too?

row

A list of items from a single row of a table.

Value

A LaTeX2item object which is the same table but with the contents divided into ITEMLISTs. The first element is an ITEMLIST holding everything before the first row, then each row is in its own ITEMLIST, and finally one more holding everything after the last row. The attribute has_itemlists will be set to TRUE.

prepare_row() returns a LaTeX2item object which is the same row with ITEMLISTs holding the cells. The attribute has_itemlist will be set to TRUE. The first list will be the "extras" at the start of the row; each cell will be in the following ITEMLISTs. The following cell delimiter will be included in the cell.

Examples

latex <- kableExtra::kbl(mtcars[1:2, 1:2], format = "latex")
parsed <- parseLatex(latex)
table <- prepare_table(parsed[[find_tabular(parsed)]])
print(latex2(table), tags = TRUE)
#>  tag= ENVIRONMENT 
#> tabular:
#>     tag= ITEMLIST 
#>         tag= SPECIAL 
#> SPECIAL(OTHER): "["
#>         tag= TEXT 
#> TEXT:t
#>         tag= SPECIAL 
#> SPECIAL(OTHER): "]"
#>         tag= BLOCK 
#> {
#>             tag= TEXT 
#> TEXT:l
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "|"
#>             tag= TEXT 
#> TEXT:r
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "|"
#>             tag= TEXT 
#> TEXT:r
#>         }
#>     tag= ITEMLIST 
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>             tag= MACRO 
#> MACRO:\hline
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): "  "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= TEXT 
#> TEXT:mpg
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= TEXT 
#> TEXT:cyl
#>             tag= MACRO 
#> MACRO:\\
#>     tag= ITEMLIST 
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>             tag= MACRO 
#> MACRO:\hline
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>         tag= ITEMLIST 
#>             tag= TEXT 
#> TEXT:Mazda
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= TEXT 
#> TEXT:RX
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "4"
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "2"
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "1"
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "6"
#>             tag= MACRO 
#> MACRO:\\
#>     tag= ITEMLIST 
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>             tag= MACRO 
#> MACRO:\hline
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>         tag= ITEMLIST 
#>             tag= TEXT 
#> TEXT:Mazda
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= TEXT 
#> TEXT:RX
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "4"
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= TEXT 
#> TEXT:Wag
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "2"
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "1"
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>             tag= SPECIAL 
#> SPECIAL(OTHER): "6"
#>             tag= MACRO 
#> MACRO:\\
#>     tag= ITEMLIST 
#>         tag= ITEMLIST 
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>             tag= MACRO 
#> MACRO:\hline
#>             tag= SPECIAL 
#> SPECIAL(NEWLINE): "\n"
#>         tag= TEXT 
#> TEXT:
row <- prepare_row(tableRow(table, 2))
print(latex2(row), tags = TRUE)
#>  tag= ITEMLIST 
#>     tag= TEXT 
#> TEXT:Mazda
#>     tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>     tag= TEXT 
#> TEXT:RX
#>     tag= SPECIAL 
#> SPECIAL(OTHER): "4"
#>     tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>     tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>  tag= ITEMLIST 
#>     tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>     tag= SPECIAL 
#> SPECIAL(OTHER): "2"
#>     tag= SPECIAL 
#> SPECIAL(OTHER): "1"
#>     tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>     tag= SPECIAL 
#> SPECIAL(ALIGN): "&"
#>  tag= ITEMLIST 
#>     tag= SPECIAL 
#> SPECIAL(SPACE): " "
#>     tag= SPECIAL 
#> SPECIAL(OTHER): "6"
#>     tag= MACRO 
#> MACRO:\\