无法使表格浮动在预览环境中工作:
\documentclass[fontsize=16pt]{scrartcl}
\usepackage[active,tightpage]{preview}
\setlength{\PreviewBorder}{25pt}
\begin{document}
\begin{preview}
\begin{table}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\caption{testing}
\label{tab:testing}
\end{table}
\end{preview}
\end{document}
给出错误“不在外部 par 模式中”。预览手册中提到了“浮动”选项,但添加它并没有什么区别。我知道在单个预览页面中让表格“浮动”没有多大意义,我只想让它们变为非浮动并停留在定义的位置并显示在预览中。
然后我发现这问题。它说独立包可以工作。但我也无法让它工作:
\documentclass{standalone}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\caption{testing}
\label{tab:testing}
\end{table}
\end{document}
给出错误“有些错误——可能缺少 \item”。即使它能工作,也会引起一个严重的问题,即它占用了 documentclass,但我必须使用 KOMA-Script。顺便说一句,我使用 xelatex,不知道这是否重要。
有任何想法吗?
编辑:我想我在帖子中提到过,我知道“浮动”是什么意思,而且它没有“太多”意义。但它确实有一定意义:我使用预览来预览。因此,文档中的每个元素都应该显示在预览中,这样我就可以“预览”它。对于表格浮动,正确的显示方式是成为非浮动并停留在定义的位置。这正是这帖子说独立版应该可以做到。然后在预览之后,如果我注释掉预览包或使其不活动,一切应该会再次正常工作(表格浮动正常浮动等)。所以我不是在问如何让表格浮动变得粘稠,而是问如何让它显示在预览/独立环境中。
解决方案:解决方案是
\documentclass[preview,class=scrartcl,fontsize=20pt]{standalone}
这将自动将表格浮动变为非浮动,同时保留原始文档类。另请参阅 Jesse 的答案,了解一个聪明但更复杂的解决方案。
答案1
更新
在您发布的链接中,该standalone
包的作者提到现在可以使用浮点数,standalone
并且应该查看有关该float
选项的手册。
为您完成此操作后,我得到了以下代码,它应该适合您。
编辑我还包含了获取scrartcl
外观和所需字体大小所需的选项。
% arara: pdflatex
\documentclass[%
,float=false % this is the new default and can be left away.
,preview=true
,class=scrartcl
,fontsize=20pt
]{standalone}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\caption{testing}
\label{tab:testing}
\end{table}
\end{document}
原始答案
您不应该在standalone
类中使用浮动环境,因为它没有意义。标签也没有意义。我建议使用包caption
作为标题(因为这个包也经常用于普通文章)并将您的表格包装在迷你页面中。
% arara: pdfatex
\documentclass{standalone}
\usepackage{caption}
\begin{document}
\minipage{0.2\textwidth}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\captionof{table}{testing}
\endminipage
\end{document}
答案2
另一种方法是定义一个非浮动环境tablehere
,但仍能实现字幕功能而无需使用包。
更新: tablehere
已更改为table
,但在使用预览模式时将其更新为非浮动。因此,在预览模式下删除下面的所有 %。
\documentclass[fontsize=16pt]{scrartcl}
%\usepackage[active,tightpage]{preview}
%\setlength{\PreviewBorder}{25pt}
%
%\makeatletter
%\renewenvironment{table}
%{\def\@captype{table}}
%{}
%\makeatother
\begin{document}
%\begin{preview}
\begin{table}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\caption{testing}
\label{tab:testing}
\end{table}
%\end{preview}
\end{document}
原始答案:
\makeatletter
\newenvironment{tablehere}
{\def\@captype{table}}
{}
\makeatother
代码
\documentclass[fontsize=16pt]{scrartcl}
\usepackage[active,tightpage]{preview}
\setlength{\PreviewBorder}{25pt}
\makeatletter
\newenvironment{tablehere}
{\def\@captype{table}}
{}
\makeatother
\begin{document}
\begin{preview}
\begin{tablehere}
\centering
\begin{tabular}{c|c}
a & b\\
\hline
c & d\\
\end{tabular}
\caption{testing}
\label{tab:testing}
\end{tablehere}
\end{preview}
\end{document}