r-markdown(.Rmd
)コードチャンクを囲むラテックスコードを追加しようとしています。次のように私は、手動でknitr
によって生成された.tex
ファイルを編集して\begin{verbatim}
が順番に、\end{verbatim}
で終わる、コードチャンクを開始しますknitrを使ったラテックスの.Rmdコードチャンク
\usepackage{fancyvrb}
\usepackage{xcolor}
\usepackage{changepage}
{
\color{gray}
\footnotesize
\begin{adjustwidth}{2cm}{2cm}
\noindent\rule{1cm}{1.5pt} R code \noindent\rule{8cm}{0.3pt}
\begin{verbatim}
\end{verbatim}
\noindent\rule{8cm}{0.3pt}
\end{adjustwidth}
}
これを行うことができます。手動でこのラテックスデコレーションを手作業で再編成するのを避けるために、手動でニットする必要があります。
私が.Rmd
のYAML
ヘッダにパッケージ情報を置くことができることが表示されます:
---
header-includes:
- \usepackage{fancyvrb}
- \usepackage{xcolor}
- \usepackage{changepage}
---
しかし、私はフックの設定権を取得していませんよ。私は、次のように、hereを説明フックを修正するために、エラーを投げた
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0(
"{\n\\color{gray}\n\\footnotesize\n\\begin{adjustwidth}{1cm}{1cm}\n\\noindent\\rule{1cm}{1.5pt} R code \\noindent\\rule{8cm}{0.3pt}\n",
x,
"\n\n\\noindent\\rule{8cm}{0.3pt}\n\\end{adjustwidth}\n}\n"
)
}
)
```
を試してみました。任意の提案が高く評価されました。
UPDATE:
私はYAML
ヘッダに以下を追加することにより、Rチャンクフォントの色、サイズ、およびインデントを変更することができる午前:それと
header-includes:
- \usepackage{changepage}
- \usepackage{xcolor}
- \usepackage{etoolbox}\BeforeBeginEnvironment{verbatim}{\begingroup\color{gray}\footnotesize\begin{adjustwidth}{.5cm}{.5cm}}\AfterEndEnvironment{verbatim}{\end{adjustwidth}\endgroup}
、私はする必要はありませんだと思いますknitrフック関数を使用します。多分、私はより洗練されたアプローチを見落としてしまいましたが、これは私が好きなモッズを作ることができます。
あなたは、私はチャンクをラップしたいtexから(RMD)knitrフックを分けるように見えます。関数はどのようにしてtexを呼び出しますか?それは別のファイルにあり、YAMLなどに含まれていなければなりませんか? – ssp3nc3r
また、「pdfには簡単には転送できません」という意味で、PDFにレンダリングしたときに、ソリューションが最終的にチャンクを正しく装飾しないことを意味しますか?おそらく私は間違ったアプローチを取っているのですが、Rnwを支持してRmdを捨てるようなやり方をしなければなりません。 – ssp3nc3r
rmdのフックは正しいコードを統合しないので、チャンクを正しく装飾しません。他の関数(.Rnwで生成されたもの)からのコードをRmdで統合するかどうかをテストしようとします。 – Cedric