В документе LyX
/ LaTeX
я использую knitr
для включения (R
) фрагментов кода.
Я хотел бы объяснить свой код ниже фрагмента, повторяявстроенные разделы.
Как мне добиться такого же форматирования текста внутри строки (без оценки)?
На вопрос Ихуэй есть вопрос и ответ , делающий это в rmarkdown
и еще один другой ответ от него, что он должен быть похож на LaTeX
, но когда я пытаюсь использовать код из ответа rmarkdown
, он выдает ошибки в LyX
.
Я получаю ошибку:
Error in if (knitr:::pandoc_to() != "latex") return(code) :
argument is of length zero
Когда я удаляю строку if (knitr ....
, я получаю выходной документ, но код строки отформатирован как обычный текст.
Какие-нибудь мысли?
РЕДАКТИРОВАТЬ : по запросу MWE
\documentclass{article}
\begin{document}
<<include=FALSE>>=
local({
hi_pandoc = function(code) {
if (knitr:::pandoc_to() != 'latex') return(code)
if (packageVersion('highr') < '0.6.1') stop('highr >= 0.6.1 is required')
res = highr::hi_latex(code, markup = highr:::cmd_pandoc_latex)
sprintf('\\texttt{%s}', res)
}
hook_inline = knitr::knit_hooks$get('inline')
knitr::knit_hooks$set(inline = function(x) {
if (is.character(x) && inherits(x, 'AsIs')) hi_pandoc(x) else hook_inline(x)
})
})
@
Test inline R code: \Sexpr{ I("plot(cars, main = 'A scatterplot.')") }.
Normal inline code \Sexpr{pi}.
A code block:
<<>>=
plot(cars, main = 'A scatterplot.')
1 + 2 # a comment
@
\end{document}