我想通过knitr
生成的字幕传递特殊字符和格式。
我试图理解两件事:
1)是否可以LaTeX
通过标题传递语法?
2)如何定义字幕/子字幕字符串的编码?
请考虑以下 MWE
\documentclass{article}
\usepackage{subfig}
\begin{document}
<<fig-sub, fig.cap='Three \textit{plots}', fig.subcap=c('Erdős–Rényi', 'Barabási-Albert'), out.width='.30\\linewidth',dev='tikz',sanitize=TRUE>>=
library(ggplot2)
x<-1:10
y<-rnorm(10)
ggplot(data.frame(x,y), aes(x,y)) + geom_line()
ggplot(data.frame(y,x), aes(y,x)) + geom_line()
@
\end{document}
答案1
答案(我发现)非常简单。knitr/R
如果正确转义(反斜杠),将传递给 TeX 特殊字符。可能还需要使用双引号" "
而不是单引号' '
\documentclass{article}
\usepackage{subfig}
\begin{document}
<<fig-sub, fig.cap="Three \\textit{plots}", fig.subcap=c("Erd\\H{o}s-R\\'enyi", "Barab\\'asi-Albert"), out.width='.30\\linewidth',dev='tikz',sanitize=TRUE>>=
library(ggplot2)
x<-1:10
y<-rnorm(10)
ggplot(data.frame(x,y), aes(x,y)) + geom_line()
ggplot(data.frame(y,x), aes(y,x)) + geom_line()
@
\end{document}
答案2
如果您有大量包含这些特殊字符的标题,那么更好的另一个选择是将该行添加\usepackage[utf8x]{inputenc}
到文档的序言中,并将该行添加pdf.options(encoding = "CP1250")
到块中。
因此更改后的 MWE 将如下所示:
\documentclass{article}
\usepackage{subfig}
\usepackage[utf8x]{inputenc}
\begin{document}
<<fig-sub, fig.cap='Three \textit{plots}', fig.subcap=c('Erdős–Rényi', 'Barabási-Albert'), out.width='.30\\linewidth',sanitize=TRUE>>=
library(ggplot2)
pdf.options(encoding = "CP1250")
x<-1:10
y<-rnorm(10)
ggplot(data.frame(x,y), aes(x,y)) + geom_line()
ggplot(data.frame(y,x), aes(y,x)) + geom_line()
@
\end{document}
注意:由于出现错误,dev='tikz'
所以我跳过了它。我希望你的问题与此无关,并且无论如何它都会正常工作。