TikZ (tikzexternalize) + サブキャプションボックス エラー

TikZ (tikzexternalize) + サブキャプションボックス エラー

アップデート

エラーは、画像自体を変更した場合、またはドキュメント内で画像の前にある画像を挿入/削除した場合にのみ発生します。 回避策として、\newcommand{\subcaptionfix}[1]{#1}subcaptionbox コマンド (最初の引数を含む) をラップするコマンドを定義しました。 何かを変更する必要がある場合は、 を削除して、#1LaTeX がコマンドを無視するようにします。 その後、元に戻すことができます。

問題の適切な解決法があればもっといいのですが、まだエラーを再現するのが難しいです。最小限たとえば、数週間後にもっと時間ができたらやってみようと思います。


図の中で のsubcaptionコマンドを2 回使用しています。 それぞれの に画像を配置します。 画像の 1 つを変更しない限り、これは正常に機能します。 変更するとすぐに、次のエラーが発生します。\subcaptionboxsubcaptionboxTikZ

! Package tikz Error: Sorry, the system call 'pdflatex -shell-escape -halt-on-e
rror -interaction=batchmode -jobname "msc-preliminary-figure0" "\def\tikzextern
alrealjob{msc-preliminary}\input{msc-preliminary}"' did NOT result in a usable 
output file 'msc-preliminary-figure0' (expected one of .pdf:.jpg:.jpeg:.png:). 
Please verify that you have enabled system calls. For pdflatex, this is 'pdflat
ex -shell-escape'. Sometimes it is also named 'write 18' or something like that
. Or maybe the command simply failed? Error messages can be found in 'msc-preli
minary-figure0.log'. If you continue now, I'll try to typeset the picture.

See the tikz package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.59 \end{tikzpicture}}

This error message was generated by an \errmessage
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues,
and deduce the truth by order and method.

LaTeX Font Info:    Font shape `FMX/futm/m/n' will be
(Font)              scaled to size 6.99199pt on input line 1.
LaTeX Font Info:    Font shape `U/futm/m/n' will be
(Font)              scaled to size 6.99199pt on input line 1.
LaTeX Font Info:    Font shape `T1/futs/bx/n' in size <10> not available
(Font)              Font shape `T1/futs/b/n' tried instead on input line 59.
===== Image 'msc-preliminary-figure1' is up-to-date. ======
) [5]pdfTeX warning (ext4): destination with the same identifier (name{equation
.2.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.45    \end{align}
                  [6pdfTeX warning (ext4): destination with the same identifier
 (name{equation.2.2}) has been already used, duplicate ignored

\AtBegShi@Output ...ipout \box \AtBeginShipoutBox 
                                                  \fi \fi 
l.59 \end{align}
                 <./msc-preliminary-figure1.pdf>]

subcaptionの環境を使用するとsubfigure、同様の問題は発生しませんが、キャプションの長さが異なるため、画像が水平方向に揃いません。また、\subcaptionboxコマンドを削除して変更を加え、再度挿入すると、うまく動作します。

最小限の例を作成しようとしましたが、問題はエラーを再現できなかったことです。関連している場合: および を使用します\usepgfplotslibrary{external}\tikzexternalizeファイル構造は次のようになります。

メイン文書

\input{preamble.tex}
%... title and so on
\input{chapter1.tex}
\input{chapter2.tex}
%...
\input{chapterN.tex}
\input{appendix.tex}

第2章: chapter2.tex

%...text
\begin{figure}
  \input{figurefile.tikz}
  \caption[short]{long}
  \label{fig:foobar}
\end{figure}
%...text

図: figurefile.tikz

\subcaptionbox{first subcaption\label{fig:foo}}{
\begin{tikzpicture}
  %...picture
\end{tikzpicture}}
\hfill
\subcaptionbox{second subcaption\label{fig:bar}}{
\begin{tikzpicture}
  %...picture
\end{tikzpicture}}

これまでにこのようなことが起こった人はいますか?

関連情報