Диагностика конфликта Standalone и Gensymb

Диагностика конфликта Standalone и Gensymb

Отказ от ответственности: я новичок в LaTeX и самоучка.

Я пытаюсь создать графику TikZ «Единичная окружность», в которой я хотел бы иметь символ \degreeиз gensymbпакета в тексте метки узла.

Мой текущий рабочий процесс включает standaloneпакет и использует \includeкоманду для создания своего рода «главного файла», содержащего каждое из моих творений на своей собственной странице, на которую я ссылаюсь в других проектах Overleaf, используя «выходной файл из другого проекта» и пакет graphicxдля сокращения времени компиляции. Вероятно, есть лучший способ сделать это, но он достаточно прост для меня, и мне нравится, когда все находится более или менее в одном месте, чтобы я мог быстро делать ссылки между своими изображениями. Это работало до сих пор, до сих пор...

Моя проблема в том, что предпочтительнее, если мне не нужно обновлять преамбулу моего главного документа каждый раз, когда я добавляю новую картинку, особенно потому, что там я определяю такие вещи, как цвета, которые иногда используют одинаковые имена (например, градиент1). Поэтому я загружаю, \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из метки узла приводит к ошибке, несмотря на то, что на самом деле символ не используется. Должно быть, есть какой-то конфликт с командами, которые определяют определенные вещи во время преамбулы, но я не знаю, как читать журналы ошибок, и они очень пугающие на первый взгляд.

Есть ли простое решение этой проблемы?

EDIT: Я также дисквалифицировал \documentclass[tikz]{standalone}и \includeпротив \includestandaloneкак виновных.

решение1

Итак, по словам пользователя @Davislor наэтот форум TeX.SE, я могу удалить пакет gensymbи просто использовать \textdegree, который является частью современных дистрибутивов LaTeX. Он не работает в математическом режиме, что прискорбно, но для моего приложения это неохотно приемлемо. Использование $\textrm{\textdegree}$нормально.

Для тех, кому интересно, \ang{}предоставленный пакет siunitxвыглядит слишком пустым на мой вкус, что, как показано в посте, ссылка на который приведена выше, совпадает с ^\circ.

Связанный контент