0

这是我之前发布的一个问题(如何以全文宽度居中 LaTeX xtable 输出)的后续。

我意识到我在上一篇文章中的 MWE 是不完整的。为了尽量减少示例,我确实遗漏了一些最终导致冲突的内容。因此,在这里,我更全面地发布了这个问题。

我正在使用 tufte-handout ( http://mirrors.ibiblio.org/CTAN/macros/latex/contrib/tufte-latex/sample-handout.pdf ) 在乳胶中创建一个小报告。我有一个文件 code.Rnw,我将其编入 code.tex。下面是我的代码.Rnw:

\documentclass[12pt,english,nohyper]{tufte-handout}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{geometry}
\usepackage{pgffor}
\usepackage{calc}
\usepackage{enumitem}
\usepackage{microtype}
\usepackage{tabularx}
%\usepackage{floatrow}

\begin{document}

<<include=FALSE>>=
library(ggplot2)
library(xtable)
@

\begin{fullwidth}
\makeatletter\setlength\hsize{\@tufte@fullwidth}\makeatother
<<echo=FALSE,results='asis'>>=
x.big <- xtable(mtcars[1:10,1:4], label ='tab:mtcars',caption ='This is the mtcar dataset head.',align = c("rr|lr|r"))

print(x.big, tabular.environment ='longtable', floating = FALSE, include.rownames=FALSE)
@
\end{fullwidth}

<<echo=FALSE,results='asis'>>=
fnameO <<- "plot.pdf"
pdf(paste0("./",fnameO),width=6,height=7)
print(qplot(hp, mpg, data=mtcars, main="Scatterplots of MPG vs. Horsepower", xlab="Horsepower", ylab="Miles per Gallon"))
{dev.off();invisible()}
@

\begin{fullwidth}
\makeatletter\setlength\hsize{\@tufte@fullwidth}\makeatother
\begin{figure}[!ht]
\includegraphics[width=\linewidth]{\Sexpr{fnameO}}
\caption{This is a plot of the mtcars dataset from R. It compares the horsepower with the miles per gallon. It uses the qplot function from ggplot2.}
\label{fig:LearningObj_summary}
\end{figure}
\end{fullwidth}

\end{document}

这是输出:

电流输出

我希望表格和图形都居中(在整个页面上)。如上所示,我成功地使表格居中(感谢我之前帖子中一位用户的建议)。

但是,我无法使该图形在整个页面中居中,并带有下方的标题。相反,可能是由于我使用的文档类(tufte-handout),图形本身位于非边距区域,其标题位于边距区域。

对于初学者,我取消了代码中的 \usepackage{floatrow} 的注释,试图强制图形标题位于图形下方而不是右侧。这会导致这样的输出(表格和图形都不希望在左侧而不是居中,但图形标题确实在图形下方):

下次更新

我的问题是:如何使表格和图形居中(下方有标题),以便输出看起来更像这样?:

在此处输入图像描述

谢谢你。

4

1 回答 1

0

作为一个粗略的技巧,您可以简单地修改 MWE 的图形环境以使用原始\caption命令:

\begin{fullwidth}
\begin{figure}[!ht]
\makeatletter\setlength\hsize{\@tufte@fullwidth}\setlength\linewidth{\@tufte@fullwidth}\let\caption\@tufte@orig@caption\makeatother
\includegraphics[width=\linewidth]{\Sexpr{fnameO}}
\caption{This is a plot of the mtcars dataset from R. It compares the horsepower with the miles per gallon. It uses the qplot function from ggplot2.}
\label{fig:LearningObj_summary}
\end{figure}
\end{fullwidth}

...或者,对于以页面为中心的小一点的数字:

\begin{fullwidth}
\begin{figure}[!ht]
\makeatletter\setlength\hsize{\@tufte@fullwidth}\setlength\linewidth{\@tufte@fullwidth}\let\caption\@tufte@orig@caption\makeatother
\centering
\includegraphics[width=.4\linewidth]{\Sexpr{fnameO}}
\caption{This is a plot of the mtcars dataset from R.}
\label{fig:LearningObj_summary}
\end{figure}
\end{fullwidth}

如果您发现缺少原始\caption命令,并且文档中没有(!)的浮动需要使用 tufte 标题,您可以\caption使用类似\usepackage[labelfont=bf,compatibility=false]{caption}.

于 2015-07-30T19:01:47.740 回答