免责声明:我对 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
。