诊断 Standalone 和 Gensymb 冲突

诊断 Standalone 和 Gensymb 冲突

免责声明:我对 LaTeX 还比较陌生,而且是自学成才。

我正在尝试制作“单位圆” TikZ 图形,其中我想在节点的标签文本中包含\degree来自包的符号。gensymb

我当前的工作流程涉及standalone包,并使用\include命令创建一种“主文件”,其中包含我在其自己的页面上的每项创作,我使用“来自另一个项目的输出文件”和包在其他 Overleaf 项目中引用该文件graphicx以减少编译时间。可能有更好的方法来做到这一点,但它对我来说足够简单,我喜欢将所有内容放在大致相同的位置,这样我就可以在我的图像之间进行快速引用。到目前为止,它一直有效,直到现在......

我的问题是,如果每次添加新图片时都不必更新主文档的序言,那就更好了,尤其是因为我在那里定义颜色之类的东西,这些颜色有时使用相同的名称(例如 gradient1)。因此,我加载\usepackage[subpreambles]{standalone}以分别读取每个独立文件的序言。同样,到目前为止,这种方法效果很好,我已经能够自己解决任何问题。

[subpreambles]我没能准确诊断出原因,但标签和加载包时确实出现了问题gensymb。这是我的 MWE:

\documentclass[tikz]{standalone}
\usepackage{textcomp,gensymb} % for degree symbol

\begin{document}
\begin{tikzpicture}
        \node at (0,0) {$0\degree$};
\end{tikzpicture}
\end{document}

我在 Overleaf 中将其作为degree-test.tex。当我尝试在另一个文件中引用此文件时:

\documentclass[tikz]{standalone}
\usepackage[subpreambles]{standalone}

\begin{document}
    \include{degree-test}
\end{document}

我收到错误:Package standalone Warning: Sub-preamble of file 'degree-test.tex' has changed. Content will be ignored. Please rerun LaTeX! on input line 4.

我使用 LuaLaTeX 进行编译,但其他编译器也会产生类似的结果。即使\degree从节点标签中删除也会产生错误,尽管实际上并未使用该符号。在序言中定义某些内容的命令一定存在某种冲突,但我不知道如何阅读错误日志,它们表面上看起来非常可怕。

有一个简单的解决办法吗?

编辑:我也取消了资格\documentclass[tikz]{standalone}\include并将他\includestandalone列为罪魁祸首。

答案1

因此,根据用户 @Davislor 的说法这个 TeX.SE 论坛,我可以删除该包gensymb并直接使用\textdegree现代 LaTeX 发行版的一部分。它在数学模式下不起作用,这很不幸,但对于我的应用程序来说,这是勉强可以接受的。使用$\textrm{\textdegree}$就可以了。

对于那些好奇的人来说,\ang{}该包提供的内容siunitx对我来说看起来太空了,正如上面链接的帖子所证明的那样^\circ

相关内容