yihui 那你的问题应该是如何把灰色的背景色修改为白色啊…… 参见background选项:http://yihui.name/knitr/options (background='white'即可) 不过就个人浅见,浅灰色是表达代码的最好方式。加方框太土,白色太枯燥乏味。
cionysus 回复 第4楼 的 谢益辉:是我没说清楚,我要的是透明背景,就是说不要加任何颜色,如果这个命令可用的话,意思是background='transparent'。 刚我用white,transparent都试过了,都没有达到我想要的效果,而且加了这两个命令跟不加的效果是一样的,不知道是不是我用错了。 我的用法是在rnw文件头部加入这样的设置命令. </p> <p><<setup,include=FALSE>>=<br /> opts_chunk$set(results='asis',dev='cairo_pdf',warning=FALSE,background='transparent')</p> <p>@</p> <p> </p>
yihui 那要看LaTeX是否支持透明色了,transparent不是合法的R颜色,如果要透明,用任何颜色加上最大的透明值就可以了啊,比如#FFFFFF00。 我不明白在这里背景是白色和透明色的区别在哪里?
cionysus 回复 第8楼 的 谢益辉:嗯,这个我不知道我理解的对不对啊,白色是有颜色的,透明是没有颜色的。比如说水是透明无色的,但是不是白色的。 另外,可能是我讲的太罗嗦,我的目的是:不要背景,不加任何装饰,knitr输出的文字在最终的pdf中的背景就跟我自己输入的正文文字在pdf中的背景色一样。 刚我又用background=‘#FFFFFF00’试了下,还是不行。 我发现我不管设置background为什么参数,我这里输出的背景色都一直是默认的那种背景,没有变过,所以我怀疑是不是我自己系统或是latex的问题啊。 但是我用sweave的时候,能输出没有背景色的结果啊(sweave默认就是没有背景色的),真是很奇怪。
cionysus 回复 第10楼 的 谢益辉:我今天又忍不住折腾了下这个问题。后来看到网上说,16位色(hex)是没有透明色的,除非加什么alpha通道,就是你讲的在代码后再加两个零。但是在我的电脑上没法实现。 其实准确讲,我不是要透明色,是要正文和R输出的文本背景色没有区别。 比如Sweave的效果,就是这样的,正文和输出的R代码之间是“无缝”连接的,背景区域看不出什么区别,都是纸张的颜色,只是字体上有不同。 而knitr得到的文档,正文与输出的R代码的背景是有区别的,knitr下R代码一般是放在一个浅白(浅灰?)色的矩形区域内,而正文部分就是纸张的颜色。
cionysus 回复 第10楼 的 谢益辉:经过这么久之后,我今天终于偶然发现这个的问题是什么了。 我画图需要在标题中使用中文,所需需要在chunk设置中加入dev='cairo_pdf', 加入这个选项后,生成的PDF文档中的图片会有难看的惨白背景。 去掉dev='cairo_pdf'选项,惨白背景消失。 今天贴出来,希望以后有人遇到这个问题的时候,可以知道怎么解决。 另外,顺便请问下,现在有可以在图片中添加中文标注,但是又不会在最终文档中给图片增加惨白背景的手段吗?
cauwinphone 很好。如果代码行加阴影的话,我也觉得费墨。因此,还是选用background="white"或='#FFFFFF00'。 再就是在chunk中加入pdf.options(family='GB1'),就可以使用中文坐标、中文标题,中文注释等了。 在导言区应用: \documentclass{ctexbook} \usepackage{ccmap} 之后: <<>>= pdf.options(family='GB1') plot(1:10, xlab='横坐标', main='中文图') @