我正在使用 TeXlipse(一个 Eclipse 插件)来创建 TeX 文档。我使用 来构造我的文件\input{filename}
。现在的问题是,每个文件都是一个部分或子部分。TeXlipse 在 Eclipse 窗口的每个文件开头都显示一个警告“子部分没有前一节”。我该如何避免这个警告?这实际上不是问题,因为如果一个文件只包含一个子部分,并被包含到\input{}
另一个文件中,而该部分位于该文件中,则存在一个前一节。我想避免这个警告,以便将其用于其他情况,例如水平盒子过满。
Eclipse中显示警告如图:
以下是 MWE:
主文本
\documentclass{scrbook}
\begin{document}
\chapter{Foo}
\section{Foo2}
\input{test}
\end{document}
测试.tex
\subsection{Foo3}
在文件中test.tex
我收到上面描述的警告。
答案1
从屏幕截图来看,警告似乎是在打开子文件时显示的,而不是在编译主文件时显示的。因此,单独查看这个文件(它本身不可编译),就会出现\subsection
没有父级的情况\section
。正如我在评论中提到的,以下内容:
test.tex
:
\documentclass{article}
\begin{document}
\subsection{foo}
%...other content of this subsection...
\end{document}
做不是编译时会导致警告。因此,解决这个问题的一种方法可能是通过在内容之前添加\documentclass
和,然后添加来获得完全可编译的子文件(如上所示)。这应该可以消除警告。在主文件中,您需要包含\begin{document}
\end{document}
包裹standalone
:
main.tex
:
\documentclass{scrbook}
\usepackage{standalone}
\begin{document}
\chapter{Foo}
\section{Foo2}
\input{test}% import the subsection
\end{document}
软件包作者 Martin 提供了这里有很好的例子。另外,请注意 main.tex 文件需要包含全部子文件所需的包。
如果您也将所有包都包含在子文件中,那么您也将能够分别编译它们。
更新:然而,引用特克斯利普斯文档表明这个特定问题被硬编码到其自己的语法解析器中:
该插件会尝试指出文档中是否存在错误...此外,没有前一节的子节(或没有前一小节的子小节)会导致警告注释(警告注释是带有黑色感叹号的黄色三角形)。
因此,解决这个问题的一种方法是告诉解析器忽略文档的这一部分,方法是将其括%###
起来TeXlipse 常见问题解答:
%###
\subsection
%###
答案2
我创建了一个可以规避此警告的项目结构。对于我的文章,我为各个(子)部分创建了单独的自包含子项目。它不需要任何自定义的构建文件或类似文件,并且在某种程度上强制了关注点分离(通用图像、bib、样式文件......)。您可以查看它,它可用这里。
答案3
这是一个不使用任何变通方法的解决方案:
- Eclipse 中的问题视图 -> 右上角 -> “向下箭头”按钮 -> 配置内容...
- 类型列表 -> 取消选中“问题”。
保留所有其他选项的勾选。Pdflatex 产生的错误仍会显示。