Я работаю над документом в R, с Knitr в pdflatex и использую расширенную версию toLatex
от memisc.
Однако, когда я создаю таблицу с интервалами вырезания, квадратные скобки не очищаются, а ошибки задания pdflatex из-за существования [
.
Я пытался поместить sanitize=TRUE
в код куска вязания, но это работает только для tikz.
Ранее я использовал gsub и заменил строку в самом объекте R, что довольно неэлегантно. Я надеюсь, что кто-то может указать мне на нюанс memisc или вязания, который мне не хватает, или на другую функцию/метод, который легко обрабатывал бы латексные специальные символы.
Пример
library("memisc")
library("Hmisc")
example<-data.frame(cbind(x=1:100,y=1:100))
example$x<-cut2(example$x,m=20)
toLatex(example)
ОБНОВЛЕНИЕ
В поисках SO я нашел пост о применении latexTranslate с функцией применения, но для этого требуется символы, поэтому мне пришлось бы расклассифицировать от фактора к символу.
Я нашел еще один SO-сообщение, в котором knitr:::escape_latex
, фрагмент затем выводит материал в виде разметки вместо его перевода (используя results='asis') или создает таблицу в стиле R внутри блока кода (используя results='markup'). Я попытался настроить его как функцию ловушки в моем родительском документе, и это привело к выводу всего содержимого документа в виде разметки. Это совершенно новая область для меня, поэтому я, вероятно, реализовал ее неправильно.
<<setup,include=FALSE>>=
hook_inline = knit_hooks$get('inline')
knit_hooks$set(inline = function(x) {
if (is.character(x)) x = knitr:::escape_latex(x)
hook_inline(x)
})
@
...
<<tab-example,echo=FALSE,cache=TRUE,results='asis',sanitize=TRUE,inline=TRUE>>=
library("Hmisc")
library("memisc")
example<-data.frame(cbind(x=1:100,y=1:100))
example$x<-cut2(example$x,m=20)
toLatex(example)
@
Согласно @yihui, это неверный путь
ОБНОВЛЕНИЕ 2
Я создал оболочку gsub, которая будет экранировать проценты и т. д., однако символ [ по-прежнему переводит латекс в математический режим и ошибки.
cut2()
?memisc::toLatex
тоже не вижу; есть толькоutils::toLatex
- person Yihui Xie   schedule 21.07.2013