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 を使用しています。コンパイルは 1 つのエラー メッセージのみで実行されます:

./地域.tex:11: パッケージ tikz エラー: 申し訳ありませんが、一部のパッケージでは数式モードのドル記号の意味が再定義されています。これは tikz およびその calc ライブラリと互換性がなく、回復不可能なエラーを引き起こす可能性があります。

ただし、 を設定してエラーを回避しても問題が解決しないため、これが私の問題と何らかの形で関連しているとは思いません\catcode\`$=3

答え1

プレビュー パッケージが を再定義するため、コンパイル エラーが発生することが予想されます$。マニュアルから引用:

textmathは、すべてのテキスト数式をプレビューの対象にします。数式モードは LaTX 内で他の目的にも徹底的に使用されるため、これは、、\(および\)環境$を再定義することによって機能しますmath(どうやら一部の人々はそれを使用しています)。したがって、後でロードされたパッケージとメイン ドキュメント内のこれらのテキスト数式区切り文字の出現のみが影響を受けます。

しかし、それが問題の原因ではありません。問題は、現在の Ghostscript バージョンとプレビューの不適切な相互作用から生じているようです。変数をpreview-pdf-color-adjust-methodシンボルcompatibleまたはに微調整してnil、もう一度試してください。私の場合は次のようになります ( rungsGhostscript 9.50 を実行する TeXlive '19 から)。

ここに画像の説明を入力してください

対応する 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。それで、物語は続くと思います。

関連情報