"test_sample()"という名前の関数をインラインRコードとしてLaTeX + knitrドキュメントに挿入したいと思います。下線付きのインラインコード
単に\Sexpr{'test_sample()'}
の結果をMissing $
というエラーに含めます。
私は次のように直接関連する質問が見つかりました: Pass underscore as inline code to knitR
をしかし、すでに答えにコードをコピーすることは私のためにそこに動作しません:
In hilight(code, "latex", ...) :
the syntax of the source code is invalid; the fallback mode is used
やLaTeXで:私はRの警告メッセージが表示されますまだMissing $
エラーです。
Iは
<<>>=
test_ = function(x){gsub("([_])", '\\\\\\_', "test_x")}
@
\Sexpr{test_(sample)}
ことによってそれを採用しようとしたが、同じエラー(S)でこのstilll結果。
knitrで作成されたtexファイルのの手前に\
という文字を置いた場合、正しく動作しますが、これを自動的に行う方法はわかりません。
私はこの質問から解決策を、コピー&ペーストするとき、私も同じエラーが出ます:R, Sweave, LaTeX - escape variables to be printed in LaTeX?
<<echo=FALSE>>=
sanitize <- function(str) {
result <- str
result <- gsub("&", "\\\\&", result, fixed = TRUE)
result <- gsub("_", "\\\\_", result, fixed = TRUE)
result
}
@
<<>>=
(foo <- "test & _")
sanitize(foo)
@
When sanitized, it's ``\Sexpr{sanitize(foo)}''.
私が間違って何をしているのですか?
カッコを中括弧で置き換えてみましたか? \ Sexpr {'test_sample()'}また、アンダースコアの前にエスケープ文字が必要な場合があります。 \ _ – lawyeR
はい、私もそれを試しましたが、結果として 'Missing $'エラーが発生します。もし私が手動で '\'のようなエスケープ文字をknitrによって生成されたtexファイルに置くと、それは動作しますが、自動的に行う方法は分かりません。私はちょうどそれをRコードに置くだけで、これはRの構文エラーにつながり、コードはコンパイルできません – user3825755
"test \\ _ sample()" - 2つのバックスラッシュで試したところ - – lawyeR