我正在尝试使用 knitr 在 R 中生成自动报告。我需要在 PDF 上打印一系列对象,并且大小(行、列、长度等)可能会有所不同。问题是,当任何对象列表从页面中间开始时,它可能会超出页面。所以,我想知道是否有办法知道我在页面上的位置,以便我可以决定下一个对象是否应该打印在同一页上,或者我使用\clearpage
并从下一页开始。
答案1
在 LaTeX 中,您通常将插图、图形和表格放在浮动环境(例如图形或表格)中,并让 LaTeX 为浮动找到一个合适的位置——它甚至可能最终出现在不同的页面上。
您可能必须习惯这种方法,但它更好,因为您不必担心将浮标的材料“放”在哪里。
然后,您可以使用标签和交叉引用命令正确地交叉引用浮动。说实话,我不记得什么时候需要 \clearpage。
以下是一个例子。
\documentclass{article}
% For creating paragraphs.
\usepackage{lipsum}
% For creating fancy tables.
\usepackage{booktabs}
\begin{document}
\lipsum[1-2]
\begin{table}[pth]% default positioning...
\begin{tabular}{ll}
\toprule
\\\bfseries First Name & \bfseries Surname
\\\midrule
Donald & Knuth
\\ Leslie & Lamport
\\\bottomrule
\end{tabular}
% Define a caption and a label for the table.
% I always put the label in the argument of the caption.
\caption{\label{tab:names}Names of famous {\TeX}nicians.}
\end{table}
% Cross-reference the table with the \ref command and the label.
Table~\ref{tab:names} lists the names of some famous {\TeX}nicians.
\lipsum[3-4]
\end{document}