knitr / markdown: как отобразить математические уравнения в виньетках, созданных CRAN?

#rstudio #knitr #r-markdown #pandoc #mathjax

#rstudio #knitr #r-markdown #pandoc #mathjax

Вопрос:

В пакете у меня есть несколько виньеток, которые используют математическую нотацию, например:

 This vignette illustrates the ideas behind solving systems of linear equations of the form $mathbf{A x = b}$
where 

- $mathbf{A}$ is an $m times n$ matrix of coefficients for $m$ equations in $n$ unknowns
- $mathbf{x}$ is an $n times 1$ vector unknowns, $x_1, x_2, dots x_n$
- $mathbf{b}$ is an $m times 1$ vector of constants, the "right-hand sides" of the equations
  

Когда я компилирую виньетку с помощью R Studio (Ctrl ShiftK), она правильно отображается в HTML-файле, независимо от того, просматривается ли он в программе просмотра R Studio или в браузере.

введите описание изображения здесь

Тем не менее, когда пакет отправляется в CRAN, и виньетки создаются там из исходного пакета, математика отображается неправильно, но отображается как разметка,

введите описание изображения здесь

Есть ли что-то, что мне нужно добавить в мой заголовок YAML, чтобы виньетки, созданные вне R Studio, отображали математику должным образом? В настоящее время я использую только стандартный заголовок:

 ---
title: "Solving Linear Equations"
author: "Me"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %VignetteIndexEntry{Solving Linear Equations}
  %VignetteEngine{knitr::rmarkdown}
  %VignetteEncoding{UTF-8}
---
  

Сгенерированная pandoc команда из R Studio

 "C:/Program Files/RStudio/bin/pandoc/pandoc"  RTS -K512m -RTS linear-equations.utf8.md --to html --from markdown autolink_bare_uris ascii_identifiers tex_math_single_backslash --output pandoc8141d044063.html --smart --email-obfuscation none --self-contained --standalone --section-divs --template "C:RR-3.2.5libraryrmarkdownrmdhdefault.html" --css "C:RR-3.2.5libraryrmarkdownrmarkdowntemplateshtml_vignetteresourcesvignette.css" --mathjax --variable "mathjax-url:https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --highlight-style pygments 
  

Возможно, мне нужно добавить параметр YAML, соответствующий --self-contained или --standalone ?

Комментарии:

1. CRAN не перестраивает ваши виньетки (если они не изменили их за последние несколько недель), а виньетки, отображаемые в CRAN, — это только то, что вы отправили в исходном пакете. Пожалуйста, по крайней мере, предоставьте ссылку на проблемную виньетку.

2. У меня такая же проблема с. devtools::install_github(...., build_vignettes=TRUE) Вот виньетка: github.com/stla/expansions/tree/master/vignettes (cc @Yihui).

3. Заметка из будущего: cdn.mathjax.org приближается к концу срока службы, проверьте mathjax.org/cdn-shutting-down для получения советов по миграции.

4. Теперь они используют другую конечную точку: <script type="text/javascript" src="https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

Ответ №1:

Публикация спустя годы на случай, если у другого пользователя возникнет такой же вопрос. Я заметил те же проблемы с отображением уравнений в моих виньетках — не в CRAN, а только в локально размещенных пакетах. Ctrl Shift K отображаются нормально, но при просмотре с vignette() помощью панели справки RStudio уравнения отображаются плохо.

Я думаю, что это просто проблема, из-за которой панель справки не отображает HTML полностью. Если я просматриваю упакованную виньетку в браузере, например, используя RShowDoc() , тогда уравнения в порядке. Так что, возможно, пользователям следует направлять RShowDoc() чаще, чем vignette() .