
Рассмотрим следующий 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
и попробуйте еще раз. У меня это выглядит так (с rungs
TeXlive '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
. Так что я думаю, что история будет иметь продолжение.