簡體   English   中英

huxtable 中的 print_md 更改表格格式

[英]print_md in huxtable changes table formatting

我正在使用huxtable package 在 bookdown 中呈現的 PDF 中創建表。 表格完全按照我想要的方式格式化,直到我運行print_md命令,然后邊框從列名下方向上移動到 header 下方。 此外,header 從居中的 position 移動到右對齊。 一探究竟:

df <- data.frame(
  "colname1" = c("something indicator"),
  "colname2" = "[Something](http://www.overleaf.com)",
  "colname3" = "[Something again](http://www.overleaf.com)")

df <- df %>% 
  as_hux() %>%
      theme_basic() %>% 
      set_tb_padding(2)

df <- df %>% 
  set_contents(1, 2:3, c("colname2", "colname3"))  %>% 
  insert_row("", "Header", "Header", after = 0) %>% 
  merge_cells(1, 2:3) %>% 
  set_align(1, everywhere, "center") %>% 
  set_tb_padding(1, everywhere, 0) %>%
  set_bold(1, everywhere)
df

這使: 在此處輸入圖像描述

表格格式正確。 但。 您會注意到 URL 的格式不正確。 它應該只顯示括號內的部分,單擊時會將您帶到括號中的站點。

這可以通過以下代碼來解決:

df %>% print_md() 

這使: 在此處輸入圖像描述

現在 URL 看起來應該是這樣,但是邊框錯誤地向上移動了一行,並且“標題”現在是右對齊而不是居中對齊。 我該如何阻止這種情況發生?

不要問我為什么有效。 但是將print_md()更改為set_markdown()修復了邊框和 alignment 問題。

編輯:我在這個答案中添加了@dash2 的評論。

print_md()導致問題的原因是因為它將表格轉換為 markdown 格式,然后 R Markdown 從中讀取並生成表格。 所以一些特征(對齊)在翻譯中丟失了。 最好以預期的 output 格式打印表格,無論是 Latex、HTML 還是您使用的任何格式,而不是 Z5900FC1897AFE。

但是仍然需要尊重帶有 markdown 超鏈接的單元格 - print_md()只是 go 的錯誤方法。 相反,使用set_markdown() 這將確保在 huxtable 本身中,具有 markdown 代碼的單元格在打印表格之前被解釋為 markdown。 然后打印的表格將保留預期的格式。

感謝@dash2 創建了如此強大的軟件包!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM