我正在用 Latex 写我的硕士论文,想知道是否有可能在没有任何图表或表格的情况下呈现文档。目标是了解我有多少文本页面,因为图表和表格不计入最低页数要求。
我显然可以注释掉所有的图表,但我的目标是让这个版本对文档不做任何修改或者只做很小的修改。
答案1
如果你不关心未定义的\ref
错误,你可以直接捕获每个内容figure
并table
使用environ
:
\documentclass{report}
\usepackage{environ}
\RenewEnviron{figure}{}% Gobble figure environment
\RenewEnviron{table}{}% Gobble table environment
\usepackage{lipsum}
\begin{document}
\chapter{A chapter}
\lipsum
\begin{table}
\caption{This is a table}\label{tab:table}
\end{table}
\begin{figure}
\caption{This is a figure}\label{fig:figure}
\end{figure}
\lipsum
\end{document}
即使您有一个自定义类,这也应该有效,因为它们通常对浮点数使用相同的名称。
如果您希望保留\ref
erencing 功能,您可以用相同的方式捕获figure
s 和s,但处理它们以查看它们中是否有 。这里的处理意味着您通过将整个图形/表格存储在一个框(从未设置)内来捕获 。table
\label
\label
\documentclass{report}
\usepackage{environ,etoolbox}
\newsavebox{\figtabsavebox}
\newcommand{\savelabel}[1]{\xdef\savedlabel{#1}}
\RenewEnviron{figure}{%
\patchcmd{\BODY}
{\label}
{\savelabel}
{% \label found
\renewcommand{\caption}[2][]{}% Make \caption[.]{..} a no-op (assume it doesn't contain \label)
\refstepcounter{figure}% Step figure counter
\savebox{\figtabsavebox}{\BODY}% "Execute" \BODY; also stores \label
\label{\savedlabel}% \label figure
}
{% No \label found
\stepcounter{figure}% Step figure counter
}%
\ignorespaces
}
\RenewEnviron{table}{%
\patchcmd{\BODY}
{\label}
{\savelabel}
{% \label found
\renewcommand{\caption}[2][]{}% Make \caption[.]{..} a no-op (assume it doesn't contain \label)
\refstepcounter{table}% Step figure counter
\savebox{\figtabsavebox}{\BODY}% "Execute" \BODY; also stores \label
\label{\savedlabel}% \label figure
}
{% No \label found
\stepcounter{table}% Step figure counter
}%
\ignorespaces
}
\usepackage{lipsum}
\begin{document}
\chapter{A chapter}
\lipsum{}
See Figure~\ref{fig:another_figure}.
\begin{figure}
\caption{A figure}
\end{figure}
\begin{figure}
\caption{Another figure}
\label{fig:another_figure}
\end{figure}
\lipsum
\end{document}
上面假设您有一个\label
per figure
/table
浮点数(尽管一般来说可以有多个)并且\label
不包含在 内\caption
。