是否可以将\begin{figure} ... \end{figure}
或\begin{table} ... \end{table}
环境插入到命令中\AtBeginDocument{}
?
考虑下面的 MWE:
\documentclass{article}
\usepackage{blindtext, caption}
\AtBeginDocument{
\begin{figure}[h!]\label{fig:figurelabelexample}%.........Line [1]
\centering
\rule{1.5cm}{1.5cm}
\captionof{figure}{figurecaptionexample}
\end{figure}%.............................................Line [2]
\begin{table}[h!]\label{tab:tablelabelexample}%...........Line [3]
\centering
\begin{tabular}{ l c r }
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{tabular}
\captionof{table}{tablecaptionexample}
\end{table}%..............................................Line [4]
}
\begin{document}
\blindtext
\end{document}
如果注释掉标记为 [1-4] 的行,MWE 代码将正确执行。但是,如果包含它们,我的编译器会报错并抛出错误! LaTeX Error: Missing \begin{document}.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... \begin{document}
。知道为什么\begin{figure}
和\begin{table}
会与发生冲突吗\AtBeginDocument{}
?
答案1
我不明白你为什么要这么做:-) 但是你可以请执行下列操作。
\documentclass{article}
\usepackage{blindtext, caption}
\AtBeginDocument{\global\expandafter\let \csname @nodocument\endcsname \relax
\begin{figure}[htp!]%.........Line [1]
\centering
\rule{1.5cm}{1.5cm}
\captionof{figure}{figurecaptionexample}\label{fig:figurelabelexample}
\end{figure}%.............................................Line [2]
\begin{table}[htp!]%...........Line [3]
\centering
\begin{tabular}{ l c r }
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{tabular}
\captionof{table}{tablecaptionexample}\label{tab:tablelabelexample}
\end{table}%..............................................Line [4]
}
\begin{document}
\blindtext
\end{document}
我还移动了你的标签,以便它们可以工作(它们必须始终位于标题之后)。
(无关,但我改变了你的[h]
选择h
,永远不应单独使用,LaTeX 通常会发出警告并将其更改为ht
)