TikZ и AUCTeX: разные результаты

TikZ и AUCTeX: разные результаты

Рассмотрим следующий MWE:

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
   \draw[thick,fill=yellow!50] (0,0) circle (3);
   \draw[thick,fill=orange!50] (0,0) circle (2.4);
   \foreach \letter [count=\i] in {A,...,Z} {
     \draw[very thin] (0,0) -- ({90-\i*360/26}:3);
     \path (0,0) --node[pos=.9,sloped,allow upside down,rotate=-90] {\letter} ({360/52+90-\i*360/26}:3);
   }
   \foreach \letter [count=\i] in {G,H,...,Z,A,B,...,F} {
     \path (0,0) --node[pos=.7,sloped,allow upside down,rotate=-90] {\small\letter} ({360/52+90-\i*360/26}:3);
   }
\end{tikzpicture}

\end{document}

Он рисует диск для шифра Цезаря. При запуске pdflatexрезультат правильный. Однако, когда я использую функцию предварительного просмотра в Emacs и AUCTeX, я получаю это:

введите описание изображения здесь

Я использую AUCTeX 12.2.0. Компиляция проходит с единственным сообщением об ошибке:

./область.tex:11: Ошибка пакета tikz: Извините, какой-то пакет переопределил значение знака доллара математического режима. Это несовместимо с tikz и его библиотекой calc и может вызвать неустранимые ошибки

Однако я не думаю, что это как-то связано с моей проблемой, поскольку проблема сохраняется, даже если я обхожу ошибку, устанавливая \catcode\`$=3.

решение1

Ошибка компиляции ожидаема, так как предварительный пакет переопределяет $. Из руководства:

textmathсделает все текстовые математические выражения предметом предпросмотра. Поскольку математический режим используется полностью внутри LaTX даже для других целей, это работает путем переопределения \(, \)и $и mathокружения (очевидно, некоторые люди используют это). Таким образом, будут затронуты только вхождения этих разделителей текстовых математических выражений в загруженных позже пакетах и ​​в основном документе.

Но это не источник вашей проблемы. Похоже, что ваша проблема возникает из-за неудачного взаимодействия текущих версий Ghostscript и предварительной версии. Пожалуйста, измените переменную preview-pdf-color-adjust-methodна символ compatibleили nilи попробуйте еще раз. У меня это выглядит так (с rungsTeXlive '19, который запускает Ghostscript 9.50):

введите описание изображения здесь

Вот соответствующий код LaTeX:

\documentclass{article}

\usepackage{tikz}
\usepackage[displaymath,floats,graphics,footnotes,
% textmath  %% Don't touch $ %%
]{preview}
\PreviewEnvironment{tikzpicture}

\begin{document}

\begin{tikzpicture}
   \draw[thick,fill=yellow!50] (0,0) circle (3);
   \draw[thick,fill=orange!50] (0,0) circle (2.4);
   \foreach \letter [count=\i] in {A,...,Z} {
     \draw[very thin] (0,0) -- ({90-\i*360/26}:3);
     \path (0,0) --node[pos=.9,sloped,allow upside down,rotate=-90]
     {\letter} ({360/52+90-\i*360/26}:3);
   }
   \foreach \letter [count=\i] in {G,H,...,Z,A,B,...,F} {
     \path (0,0) --node[pos=.7,sloped,allow upside down,rotate=-90]
     {\small\letter} ({360/52+90-\i*360/26}:3);
   }
\end{tikzpicture}

\begin{verbatim}
(setq preview-pdf-color-adjust-method t)
(setq preview-pdf-color-adjust-method 'compatible)
(setq preview-pdf-color-adjust-method nil)
\end{verbatim}

\end{document}

Я также попробовал файл .tex с помощью Ghostscript 9.52, и результат выглядит так:

введите описание изображения здесь

Обратите внимание на черное пятно вокруг M- N. Так что я думаю, что история будет иметь продолжение.

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