Уравнения с несколькими случаями в таблице kableExtra - PullRequest
0 голосов
/ 05 января 2019

(отредактировано 7/11/2019 для включения проблемы с group_rows())

Я делаю таблицу в документе по разметке, которая будет включать уравнения с различными случаями. Когда я пишу массив в Markdown, он вяжется с этим:

enter image description here

Когда я включаю одно и то же уравнение в таблицу, используя kable(), условия в конце массива искажаются:

table after knitting to html

Кто-нибудь знает, как заставить условия в таблицах kableExtra выглядеть так, как они выглядят вне таблиц? Я хочу, чтобы условия в конце были приведены в соответствие. Добавление пробелов вручную (0\\\ \\\ \\\ \\\ \\\ a = 0 \\\\) выглядит плохо. Я хотел бы знать, как исправить это в Markdown, прежде чем переходить к хакерским решениям. Код для каждого случая ниже.

Уравнение в уценке:

 $$C_{y,a}=
    \begin{cases}
    0 &   a=0 \\ 
    \frac{C_y N_{y,a}}{N_y^{1+}} & a>0 \\
    \end{cases}$$

То же уравнение в таблице в Markdown:

 **Table 1.** Population dynamics.
```{r echo = F}
Equation_number <- c(1,2)

Equation <- c("$N_{i1,y} = R_{i,y} = R_{0,i }e^{\\tau_{i,y}}$",
              "$C_{y,a}=
              \\begin{cases}
              0 &   a=0 \\\\
              \\frac{C_y N_{y,a}}{N_y^{1+}} & a>0 \\\\
              \\end{cases}$")

Description <- c("Initial numbers at age","Catches at age")

Population_Equations <- data.frame(cbind(Equation_number,
                                         Equation,
                                         Description))
colnames(Population_Equations) = c("Eq.",
                                   "Equation", 
                                   "Description")
knitr::kable(format="html",
             Population_Equations, 
             escape = FALSE) %>% 
            kable_styling()

```

Заранее спасибо за любые указания!

***** РЕДАКТИРОВАТЬ 7/11/19: Вышеуказанная проблема была исправлена ​​для обычных случаев, но возникает, когда для таблицы используется group_rows():

knitr::kable(format="html",
             Population_Equations, 
             escape = FALSE) %>%
             group_rows(index=c("First group"=1, "Second group"=1)) %>%
             kable_styling()

Результат:

amps_everywhere

Информация о сеансе:

R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.1        rstudioapi_0.10   knitr_1.23        magrittr_1.5      usethis_1.5.1     devtools_2.1.0    pkgload_1.0.2    
 [8] R6_2.4.0          rlang_0.4.0       tools_3.6.1       pkgbuild_1.0.3    xfun_0.8          sessioninfo_1.1.1 cli_1.1.0        
[15] withr_2.1.2       remotes_2.1.0     htmltools_0.3.6   yaml_2.2.0        assertthat_0.2.1  digest_0.6.20     rprojroot_1.3-2  
[22] crayon_1.3.4      processx_3.4.0    callr_3.3.0       fs_1.3.1          ps_1.3.0          curl_3.3          rsconnect_0.8.13 
[29] testthat_2.1.1    glue_1.3.1        memoise_1.1.0     evaluate_0.14     rmarkdown_1.13    compiler_3.6.1    desc_1.2.0       
[36] backports_1.1.4   prettyunits_1.0.2

1 Ответ

0 голосов
/ 05 января 2019

Обновление:

Как подсказывает @ user2554330, установка последней версии для разработчиков из github должна исправить это:

devtools::install_github("haozhu233/kableExtra")

Старый ответ:

Когда вы не используете kable_styling, он работает нормально. К сожалению, kable_styling еще не имеет аргумента escape. Обходной путь должен был бы вручную заменить экранированные символы:

myTable <- knitr::kable(format="html",
                        Population_Equations, 
                        escape = FALSE) %>% 
  kable_styling()
myTable <- gsub("&amp;", "&", myTable) 
myTable <- gsub("&gt;", ">", myTable) 

enter image description here

...