2017-05-23 9 views
0

TeX方程式をMarkdownドキュメントに書き込んで、実際のタイプセット式using pandoc(バージョン1.18)に変換するのは簡単です(PDFドキュメント(LaTeX経由)またはHTMLドキュメント(MathJaxを介して):インライン方程式の場合は$...$、ブロック方程式の場合は$$...$$でサラウンド演算を行います。TeXとMathJaxのエスケープされたパーセント記号とpandocマークダウンを使用

しかし、%のような特殊文字を使用するMathJaxとTeXの構文には違いがあるようです。変換、しかし

tex output

pandoc test.md -o test.pdf 

が正しくエスケープされていないパーセント記号を生成コマンドを使用してのLaTeX経由してPDFにこれを変換する

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

$$\text{\% change} = \frac{x_2 - x_1}{x_1} \times 100$$ 

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 

:たとえば、このサンプル文書を考えます同じドキュメントをMathJaxのHTMLに、コマンドを使用して

pandoc test.md -s --mathjax -o test.html 

が誤ってエスケープパーセント記号生成:今のところ

html output

を、私は手動での目的を打ち負かすようだPDF/HTMLにマイドキュメントを変換する前にパーセント記号をアンエスケープ/エスケープされてきました任意の形式に変換できるマスターのMarkdownドキュメントを持っています。

TeXとMathJaxの両方でエスケープされたパーセント記号を処理する正しい方法は何ですか?特殊文字をエスケープできる設定がMathJaxにありますか?数学モードでエスケープされていないパーセント記号を受け入れるようにLaTeXに指示する必要はありますか? Rmarkdownとknitrを使用して

+0

これはMathJaxのバグのようですが、最新バージョンを使用していますか? – mb21

+0

これは現行バージョンの2.7.1で発生します。https://github.com/mathjax/MathJax/releases/tag/2.7.1 – Andrew

+0

メインのMathJaxサイトのライブデモに余分なエスケープスラッシュが表示されます。https: //www.mathjax.org/#modal-livedemo。これは必ずしもバグではなく、設計上の問題ではないかと考えています(このフォーラムでは、特別なエスケープ可能な文字として扱われないようです:https://groups.google.com/d/msg/mathjax- users/Ed1nKT-xtAE/IKvO_NZ9e1QJ) – Andrew

答えて

0

(私はこれは[R]の下でタグ付けされていない知っているが、私はアンドリューが熱心RとRmarkdownユーザーである知っているので、私はこれで十分ことを願っています。)

これが可能です。以下のスクリプトは、rmarkdown::renderでレンダリングすると、望ましい出力を生成します。私もgist of the scriptを作成します。

--- 
title: TEST 
output: 
    pdf_document: 
     latex_engine: xelatex 
    html_document: 
     fig_caption: true 
--- 

```{r, echo = FALSE} 
knitr::opts_chunk$set(
    collapse = TRUE, 
    echo = TRUE, 
    cache = FALSE, 
    comment = "#>", 
    fig.path = "fig-", 
    fig.pos = "h" 
) 

# this will check what the output format is going to be 
getOutputFormat <- function() { 
    knitr::opts_knit$get("rmarkdown.pandoc.to") 
} 
``` 


Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

```{r, warning=FALSE, message=FALSE, echo=FALSE, eval=TRUE, results='asis'} 
s <- "$$\\text{\\% change} = \\frac{x_2 - x_1}{x_1} \\times 100$$" 
if(getOutputFormat() == 'html') s <- gsub('\\\\%', '%', s) # dont escape if html 
knitr::asis_output(s) 
``` 

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.