我有这个 sweave 代码。我需要给图添加标题。我正在这样做,但看起来我看到的图位于{数据分析}部分之前:
\documentclass[letter,12pt]{article}
\usepackage{amsmath}
\usepackage{amscd}
\usepackage{ifthen}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage[top=1.0in, bottom=1.0in, left=0.2in, right=0.2in]{geometry}
\usepackage{float}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{tabularx}
\begin{document}
\SweaveOpts{concordance=TRUE}
\setlength\parindent{2pt}
\setkeys{Gin}{width=1\textwidth}
\title{THI IS A TEST DOCUMENT}
\maketitle
\pagebreak
\tableofcontents
\pagebreak
<<LBY, echo=FALSE>>=
library(zoo)
library(scales)
library(ggplot2)
library(xtable)
library(forecast)
library(data.table)
library(xtable)
library(RODBC)
library(chron)
library(xts)
library(grid)
@
\section{SAMPLE REPORT}
\subsection{PLOT1}
\begin{figure}
\begin{center}
<<fig=TRUE,echo=FALSE, width=15, height=10>>=
plot(1:5)
@
\caption{PLOT1.}
\end{center}
\end{figure}
\begin{figure}
\begin{center}
<<fig=TRUE,echo=FALSE, width=15, height=10>>=
plot(100:1000)
@
\caption{PLOT2.}
\end{center}
\end{figure}
\end{document}
我不确定这里发生了什么。我需要给这些图添加标题。知道为什么 PLOT1 显示在 {SAMPLE REPORT} 部分之前吗?
答案1
你可以使用包caption
和...一起minipage
。
这是一个 mwe:
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{caption}
\usepackage[textwidth=7in]{geometry}
\title{An examples}
\author{Matthew Perkins}
\begin{document}
\maketitle
\subsection{Data.}
\lipsum[2]
\begin{minipage}{0.8\textwidth}
<<fig=TRUE, width=4, height=3, echo=false>>=
plot(seq(1,10))
@
\captionof{figure}[Abbrviated Caption]{This is the full length caption, descibing this fascinating data.}
\end{minipage}
\listoffigures
\end{document}
答案2
因此,Sweave 基本上使用的是 latex。在 latex 世界中,图形是存在于正常文档流之外的浮动元素。这允许它们移动到它们在整体布局中看起来最好的位置。要强制将图形放置在特定位置,您可以尝试
\begin{figure}[H]
其中“H”表示就在这里。