@@ -213,3 +213,140 @@ test_that("cols_width() works correctly in LaTeX output tables", {
213213
214214 expect_match(tbl_latex_tabul , " \\\\ begin\\ {tabular\\ *\\ }\\ {\\\\ linewidth\\ }\\ {@\\ {\\\\ extracolsep\\ {\\\\ fill\\ }\\ }>\\ {\\\\ raggedright\\\\ arraybackslash\\ }p\\ {\\\\ dimexpr 37.50pt -2\\\\ tabcolsep-1.5\\\\ arrayrulewidth\\ }|>\\ {\\\\ raggedright\\\\ arraybackslash\\ }p\\ {\\\\ dimexpr 56.25pt -2\\\\ tabcolsep-1.5\\\\ arrayrulewidth\\ }|>\\ {\\\\ raggedleft\\\\ arraybackslash\\ }p\\ {\\\\ dimexpr 112.50pt -2\\\\ tabcolsep-1.5\\\\ arrayrulewidth\\ }>\\ {\\\\ raggedleft\\\\ arraybackslash\\ }p\\ {\\\\ dimexpr 150.00pt -2\\\\ tabcolsep-1.5\\\\ arrayrulewidth\\ }\\ }" )
215215})
216+
217+
218+ test_that(" cols_width() works correctly in LaTeX output tables when row_group_as_column is TRUE or FALSE" , {
219+
220+ tbl <-
221+ dplyr :: tibble(
222+ row = 1 : 6 ,
223+ group = c(rep(" Group A<br>test" , 3 ), rep(" Group B" , 3 )),
224+ vals = 1 : 6
225+ )
226+
227+ tbl_rgac <- tbl | >
228+ gt(
229+ rowname_col = " row" ,
230+ groupname_col = " group" ,
231+ row_group_as_column = TRUE ,
232+ process_md = TRUE
233+ ) | >
234+ fmt_markdown() | >
235+ cols_width(
236+ row_group() ~ px(200 ),
237+ stub() ~ px(100 ),
238+ vals ~ px(50 )
239+ ) | >
240+ tab_style(style = list (cell_text(align = " right" )), cells_stub()) | >
241+ as_latex() | >
242+ as.character()
243+
244+ expect_length(tbl_rgac , 1 )
245+
246+ # # rowgroup column
247+ expect_match(tbl_rgac , " \\\\ multirow\\ [t\\ ]\\ {3\\ }\\ {=\\ }\\ {\\\\ shortstack\\ [l\\ ]\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group A \\\\\\\\ test\\ }\\ }\\ }" )
248+ expect_match(tbl_rgac , " \\\\ multirow\\ [t\\ ]\\ {3\\ }\\ {=\\ }\\ {Group B\\ }" )
249+
250+ # # styling stub
251+ expect_match(tbl_rgac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {1}}}" , fixed = TRUE )
252+
253+
254+
255+ tbl_rgnac <- tbl | >
256+ gt(
257+ rowname_col = " row" ,
258+ groupname_col = " group" ,
259+ row_group_as_column = FALSE ,
260+ process_md = TRUE
261+ ) | >
262+ fmt_roman(columns = stub()) | >
263+ fmt_markdown() | >
264+ cols_width(
265+ row_group() ~ px(200 ),
266+ stub() ~ px(100 ),
267+ vals ~ px(50 )
268+ ) | >
269+ tab_style(style = list (cell_text(align = " right" )), cells_stub()) | >
270+ as_latex() | >
271+ as.character()
272+
273+ expect_length(tbl_rgnac , 1 )
274+
275+ # # rowgroup column
276+ expect_match(tbl_rgnac , " \\\\ multicolumn\\ {2\\ }\\ {>\\ {\\\\ raggedright\\\\ arraybackslash\\ }m\\ {262.5pt\\ }\\ }\\ {\\\\ shortstack\\ [l\\ ]\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group A \\\\\\\\ test\\ }\\ }\\ }" )
277+ expect_match(tbl_rgnac , " \\\\ multicolumn\\ {2\\ }\\ {>\\ {\\\\ raggedright\\\\ arraybackslash\\ }m\\ {262.5pt\\ }\\ }\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group B\\ }\\ }" )
278+
279+ # # styling stub
280+ expect_match(tbl_rgnac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {1}}}" , fixed = TRUE )
281+
282+ })
283+
284+
285+ test_that(" cols_width() works correctly in LaTeX output tables when row_group_as_column is TRUE or FALSE, multistub" , {
286+
287+ tbl <-
288+ dplyr :: tibble(
289+ row1 = 1 : 6 ,
290+ row2 = LETTERS [1 : 6 ],
291+ group = c(rep(" Group A<br>test" , 3 ), rep(" Group B" , 3 )),
292+ vals = 1 : 6
293+ )
294+
295+ tbl_rgac <- tbl | >
296+ gt(
297+ rowname_col = c(" row1" ," row2" ),
298+ groupname_col = " group" ,
299+ row_group_as_column = TRUE ,
300+ process_md = TRUE
301+ ) | >
302+ fmt_markdown() | >
303+ cols_width(
304+ row_group() ~ px(200 ),
305+ stub() ~ px(100 ),
306+ vals ~ px(50 )
307+ ) | >
308+ tab_style(style = list (cell_text(align = " right" )), cells_stub()) | >
309+ as_latex() | >
310+ as.character()
311+
312+ expect_length(tbl_rgac , 1 )
313+
314+ # # rowgroup column
315+ expect_match(tbl_rgac , " \\\\ multirow\\ [t\\ ]\\ {3\\ }\\ {=\\ }\\ {\\\\ shortstack\\ [l\\ ]\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group A \\\\\\\\ test\\ }\\ }\\ }" )
316+ expect_match(tbl_rgac , " \\\\ multirow\\ [t\\ ]\\ {3\\ }\\ {=\\ }\\ {Group B\\ }" )
317+
318+ # # styling stub
319+ expect_match(tbl_rgac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {1}}}" , fixed = TRUE )
320+ expect_match(tbl_rgac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {A}}}" , fixed = TRUE )
321+
322+
323+
324+ tbl_rgnac <- tbl | >
325+ gt(
326+ rowname_col = c(" row1" ," row2" ),
327+ groupname_col = " group" ,
328+ row_group_as_column = FALSE ,
329+ process_md = TRUE
330+ ) | >
331+ fmt_roman(columns = stub()) | >
332+ fmt_markdown() | >
333+ cols_width(
334+ row_group() ~ px(200 ),
335+ stub() ~ px(100 ),
336+ vals ~ px(50 )
337+ ) | >
338+ tab_style(style = list (cell_text(align = " right" )), cells_stub()) | >
339+ as_latex() | >
340+ as.character()
341+
342+ expect_length(tbl_rgnac , 1 )
343+
344+ # # rowgroup column
345+ expect_match(tbl_rgnac , " \\\\ multicolumn\\ {3\\ }\\ {>\\ {\\\\ raggedright\\\\ arraybackslash\\ }m\\ {337.5pt\\ }\\ }\\ {\\\\ shortstack\\ [l\\ ]\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group A \\\\\\\\ test\\ }\\ }\\ }" )
346+ expect_match(tbl_rgnac , " \\\\ multicolumn\\ {3\\ }\\ {>\\ {\\\\ raggedright\\\\ arraybackslash\\ }m\\ {337.5pt\\ }\\ }\\ {\\\\ parbox\\ {\\\\ linewidth\\ }\\ {Group B\\ }\\ }" )
347+
348+ # # styling stub
349+ expect_match(tbl_rgnac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {1}}}" , fixed = TRUE )
350+ expect_match(tbl_rgnac , " \\ multicolumn{1}{>{\\ raggedleft\\ arraybackslash}m{\\ dimexpr 75.00pt -2\\ tabcolsep-1.5\\ arrayrulewidth}}{\\ parbox{\\ linewidth}{\\ raggedleft {A}}}" , fixed = TRUE )
351+
352+ })
0 commit comments