在Sweave中使用Tufte-Latex类

18

我必须坦白,今天是我第一次使用Sweave或LaTeX。是的,这是真的。今天我意识到,在我的参与缺失的情况下,“40岁前”桶清单不会自行解决。像我们这一代人中的许多男性一样,学习Sweave和LaTeX也在我的桶清单上。

有了这个冗长的前言,我写了一个非常好的首个Sweave文档:

\documentclass{article}
\begin{document}
\title{Look Mom! I'm doing \LaTeX}
\author{JD Long}
\maketitle
\section{Where I get both funky and fresh}
<<make some randomness>>=
  set.seed(12)
  t <- rnorm(100)
@
and an example plot
\begin{center}
<<fig=TRUE,echo=FALSE>>=
  plot(density(t))
@
\end{center}
This is a very simple example of how we might get started with Sweave. You know what comes next, right? That's right... Lorem Ipsum, ladies! 

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin sed sem est. Pellentesque massa magna, ullamcorper eget lacinia sit amet, dignissim ac leo. Fusce hendrerit elit vitae lacus mollis suscipit. 
\end{document}

这会产生令人惊叹的输出结果: enter image description here 所以,这一部分很不错。但是我真正想做的是开始使用奇妙的 LaTeX 类,比如Tufte-LaTeX类,从我所了解的情况来看,它基本上将我的文档变成了杰出、有灵感的艺术品。
那么我该如何将 Tufte-LaTeX 引入我的 Sweave 文档,并使用它使我的文档更加神奇呢?

你的拉丁语有几个拼写错误。你需要安装一个更好的拼写词典,这样做是不够的。还有一个40岁的人生清单——你告诉了你的人寿保险承保人吗?(我很慷慨地描述你的拉丁语有拼写错误。其中一些最好改为第三人称,否则你就会……我不忍心说出来。) - Iterator
4个回答

12

我喜欢这个作为我的标准页眉包裹在你的文档周围:

\documentclass{tufte-handout}
\usepackage{amsmath}  % extended mathematics
\usepackage{booktabs} % book-quality tables
\usepackage{units}    % non-stacked fractions and better unit spacing
\usepackage{multicol} % multiple column layout facilities
\usepackage{lipsum}   % filler text
\usepackage{fancyvrb} % extended verbatim environments
  \fvset{fontsize=\normalsize}% default font size for fancy-verbatim environments
\usepackage{xspace}

需要注意的是,不应在标题或作者等内容中放置任何标记,因为 tufte-handout 对此支持的不太好:

enter image description here

Tufte 类很容易通过 TeXLive 安装,只需安装 "tufte-latex" 包即可,该包包括必要的材料和一些示例(如果我记得正确的话)。


我需要做些什么才能将Tufte位调用为文档类?它必须被安装或类似的东西吗? - JD Long
1
@JDLong 只需将 LaTeX 样式文件放入本地 texmf 目录(如果您从网络上下载了它们),或使用 TeXLive 包管理器,如 tex.SE 上所述 - chl
是的,tufte可以通过TeXLive安装,如果您还没有使用TeXLive,那么您应该使用它。它提供了一种非常好的和简单的方式来管理已安装的软件包,并提供了一个相对简单和透明的机制来更新这些软件包。 - James Howard
@JamesHoward 如果您能在回答文本中添加一些关于通过TeXLive安装Tufte的简短介绍,那就太好了。 - JD Long

10

我想这更像是一个LaTeX问题而不是Sweave问题。很久以前,我用了tufte-handout类和pgfSweave包,你可以在这里找到一个例子(它是我为数据挖掘课程写的作业之一)。

由于你们已经记录了如何使用Sweave实现,我没有什么可以添加的,但我真的不喜欢Sweave的默认样式,也就是LaTeX中使用fancyvrb定义的环境。 R图形默认的字体样式也不是我喜欢的。它们可能会破坏Tufte类的美感。而使用tikzDevicepgfSweave包在样式方面要好得多。Sweave的一些限制(例如样式)促使我决定重新编写一个新引擎knitr;你可以在这里找到。


2
现在您可以查看knitr的图形手册,网址为http://yihui.github.com/knitr/demo/graphics/,其中使用了“tufte-handout”类。源代码和输出都在那里。如果您使用Sweave,将会失去很多东西 :) - Yihui Xie

5

我用这个模板做笔记:

\documentclass{tufte-book}
\usepackage{graphicx}
\usepackage{lipsum}
\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}
% Prints a trailing space in a smart way.
\usepackage{xspace}


\usepackage{hyperref}
\usepackage{amsmath}

\newcommand{\tthdump}[1]{#1}
\usepackage{makeidx}
\makeindex

\title{My title}

\begin{document}
\setkeys{Gin}{width=1.1\marginparwidth} %% Sweave

 \section{Where I get both funky and fresh}
<<make some randomness>>=
  set.seed(12)
  t <- rnorm(100)
@
and an example plot
\begin{center}
<<fig=TRUE,echo=FALSE>>=
  plot(density(t))
@
\end{center}

%% a margin figure
<<a, fig=FALSE, echo=FALSE>>=
plot(density(t))
@ 
\begin{marginfigure}
<<fig=TRUE, echo=FALSE>>=
<<a>>
@   
\end{marginfigure}

This is a very simple example of how we might get started with Sweave. You know what comes next, right? That's right... Lorem Ipsum, ladies! 
\lipsum

\end{document}

4

像许多涉及编程的事情一样,我建议首先采取“问题分离”策略。

换句话说,先试用 Tufte 类(我在 LaTeX 中从未使用过 22 年;-)),直到您满意为止,然后将要使用的内容移回 Sweaving。Sweave 在幕后做了许多有趣的事情,可能会令人困惑。[约翰已经为您完成了第一部分。]

最后:如果其他方法都失败了,请像我一样在 tex.stackexchange.com 上寻求 (La)TeX 帮助 ;-)


12
我希望能遇到一只神奇的会说话的独角兽,它可以让我骑上它的背部前往纳尼亚并传授智慧。这个要求太过分了吗? - JD Long

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接