独立:类与包

独立:类与包

独立类和包有什么区别?据我所知,它们的用法不同\documentclass{report}\usepackage{standalone}类是用于子文件,而包是用于主文件吗?

我有一个子文件:

\documentclass{report}
\usepackage[numbers]{natbib}

\begin{document}

dummyref \cite{GSMAIntelligence2016} 
\bibliographystyle{unsrtnat}
\bibliography{ref}

\end{document}

这可以通过 pdflatex + bibtex + pdflatex (x2) 命令很好地编译,但是如果我将其更改为documentclass{standalone}并运行相同的命令,我会收到以下错误:

! LaTeX Error: Something's wrong--perhaps a missing \item.
! LaTeX Error: Something's wrong--perhaps a missing \item.
! Missing \endgroup inserted.
! Missing } inserted.
! LaTeX Error: \begin{document} ended by \end{thebibliography}.
! Extra \endgroup.
! Too many }'s.

答案1

该类standalone旨在创建单独的内容片段,其大小可适应内容本身。这是通过选项实现[crop=true]的,默认情况下启用该选项。该[crop=true]选项假定内容是单个段落。这是您在使用该类编译示例文档时看到的错误的来源standalone

解决这个问题的方法有两种,效果也不同:

  1. 使用[varwidth=true]允许多个段落的选项,但仍会将图像裁剪为其内容的大小。

  2. 使用选项[crop=false],它不会将文档裁剪为内容大小,而是将其呈现为单个页面。

该类还允许您指定一个替代类来在编译“内部”编译文档standalone。默认使用类。如您在评论中提到的那样,article将其更改为类实际上并没有在这里做任何工作;它只是使内容填满页面的选项。reportcrop=false

类和包之间的区别

这个standalone类非常有用,特别是当您生成图像以包含在其他文档中时,因为它还可以自动转换为其他图像格式。

另一方面,standalone我对包版本的实用性不太清楚。在最基本的用法中,standalone包允许您\input在主文档中使用该包将standalone类文档插入到更大的文档中。我没有具体的用例,也看不出它的明显用途。也许其他以这种模式使用它的人可以评论他们实际如何使用它。

相关内容