マークダウンのイタリック体と太字をその場でラテックスバージョンに変換できるようにしたい(つまり、テキスト文字列にテキスト文字列を返す)。簡単だと思いました。間違い!(それはまだかもしれません)。一番下で試した敷居のビジネスとエラーを参照してください。
私が持っているもの(マークダウンのようにエスケープされている開始アスタリスクに注意してください):
x <- "\\*note: I *like* chocolate **milk** too ***much***!"
私が欲しいもの:
"*note: I \\emph{like} chocolate \\textbf{milk} too \\textbf{\\emph{much}}!"
私は正規表現に執着していませんが、基本的なソリューションを好みます(必須ではありませんが)。
愚かなビジネス:
helper <- function(ins, outs, x) {
gsub(paste0(ins[1], ".+?", ins[2]), paste0(outs[1], ".+?", outs[2]), x)
}
helper(rep("***", 2), c("\\textbf{\\emph{", "}}"), x)
Error in gsub(paste0(ins[1], ".+?", ins[2]), paste0(outs[1], ".+?", outs[2]), :
invalid regular expression '***.+?***', reason 'Invalid use of repetition operators'
私はアナンダ・マトが助けてくれたこのおもちゃを持っています。レポートからアクセスできますwheresPandoc <- reports:::wheresPandoc
私が試したベンのコメントごとに編集:
action <- paste0(" echo ", x, " | ", wheresPandoc(), " -t latex ")
system(action)
*note: I *like* chocolate **milk** too ***much***! | C:\PROGRA~2\Pandoc\bin\pandoc.exe -t latex
EDIT2私が試したDasonのコメントによると:
out <- paste("echo", shQuote(x), "|", wheresPandoc(), " -t latex"); system(out)
system(out, intern = T)
> system(out, intern = T)
\*note: I *like* chocolate **milk** too ***much***! | C:\PROGRA~2\Pandoc\bin\pandoc.exe -t latex