TikZ3+PSTricks gleichzeitig laden

TikZ3+PSTricks gleichzeitig laden

Ich poste auch meine Lösung. Bitte sparen Sie Zeit und Energie für diese Frage!

Ich habe nach dem Upgrade von TikZ 2 auf TikZ 3 ein seltsames Verhalten festgestellt, wenn ich die TikZ- und PSTricks-Pakete (über auto-pst-pdf) gleichzeitig geladen und verwendet habe. Bitte berücksichtigen Sie diese Situation beim Generieren von Barcodes.

%! latex or pdflatex or xelatex or lualatex
%! with ----shell-escape or --enable-write18
%! bug0001-problem.tex
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{pst-barcode}
\usepackage{auto-pst-pdf}
\usepackage{tikz}
\begin{document}
My first barcode is:\par
\begin{pspicture}(3,1in)
\psbarcode{978-80-87106-00-6}{includetext guardwhitespace}{isbn}
\end{pspicture}\par
My first QR code is:\par
\begin{pspicture}(1,1in)
\psbarcode{http://www.cstug.cz/}{}{qrcode}
\end{pspicture}\par
\begin{tikzpicture}
\node{Hello World!};
\end{tikzpicture}
\end{document}

Bei der Verwendung von TikZ 2 hatte ich kein Problem, aber bei TikZ 3 erhielt ich diese Fehlermeldung.

Fehler: /typecheck in --div--

Operandenstapel:

1 2 0,0 TeXfarbegrau 65781,8

Ausführungsstapel:

%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1932 1 3 %oparray_pop 1931 1 3 %oparray_pop 1915 1 3 %oparray_pop 1803 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- --nostringval-- 5 --nostringval-- %repeat_continue --nostringval--

Wörterbuchstapel:

--dict:1180/1684(ro)(G)-- --dict:0/20(G)-- --dict:126/200(L)-- --dict:179/300(L)--

Der aktuelle Zuweisungsmodus ist lokal

Aktuelle Dateiposition ist 601489

GPL Ghostscript 9.10: Nicht behebbarer Fehler, Exitcode 1

PDFCROP 1.38, 02.11.2012 – Copyright (c) 2002-2012 von Heiko Oberdiek.

==> 2 Seiten zu „bug0001-problem-pics.pdf“ geschrieben.

Ich bin immer noch dabei, das Problem zu finden, das ich in einem echten Projekt hatte: Ich habe die Barcodes überhaupt nicht. Die realproject.pdfDatei war leer und erzeugte daher einen Fehler, und es gab keine zugeschnittene Version der PDF-Datei. Mein Projekt ist riesig, daher konnte ich meine reale Situation noch nicht im kleinen Maßstab emulieren. Wenn ich das tue, werde ich diese Frage erweitern. Trotzdem konnte ich den TeX-Code, der diese Art von Fehler erzeugt, nicht an einen TeXisten/Verlag übergeben, da ich ihn nicht durch oder pdfcropverbergen konnte .\batchmode\nonstopmode

Meine Frage ist: Wie kann ich das Problem beheben, dass beim Laden von TikZ 3 keine Fehlermeldung dieser Art wie bei TikZ 2 angezeigt wird?

Antwort1

Führen Sie es mitpdflatex --shell-escape

\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{pst-barcode}
\usepackage{auto-pst-pdf}
\ifpdf\usepackage{tikz}\fi 
\begin{document}

My first barcode is:\par
\begin{pspicture}(3,1in)
\psbarcode{978-80-87106-00-6}{includetext guardwhitespace}{isbn}
\end{pspicture}\par
My first QR code is:\par
\begin{pspicture}(1,1in)
\psbarcode{http://www.cstug.cz/}{}{qrcode}
\end{pspicture}\par
\begin{tikzpicture}
\node{Hello World!};
\end{tikzpicture}

\end{document}

oder führen Sie es mit xelatexund aus

\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{pst-barcode}
\usepackage{tikz}
\begin{document}
[...]

Antwort2

Es ist besser, nicht zu wissen, wie viel Zeit ich in einem echten Projekt mit Deadline darauf verwendet habe, da ich nach dem Upgrade der TeX Live-Distribution/TikZ keine Barcodes mehr bekam. Natürlich könnte ich eine separate TeX-Datei nur für die Barcodes verwenden, aber ich wollte das Problem lösen.

Das Problem liegt definitiv bei TikZ 3, da mein Code mit TikZ 2 läuft. Das auto-pst-pdfPaket ruft das pst-pdfPaket auf und es ruft die System-Shell auf ( latex->dvips->ps2pdf->pdfcrop). Ich habe das Laden des TikZ 3-Pakets beim Generieren der DVI-Ausgabe grundsätzlich begrenzt, indem ich den \usepackage{tikz}Befehl mit \ifpdf ... \fioder alternativ beispielsweise lualatexmit umschließe \ifcsname directlua\endcsname ... \fi. Wenn wir eine PDF-Datei generieren (der eigentliche Satz), wird das TikZ 3-Paket geladen, wenn wir eine DVI-Datei generieren (Generierung der Barcodes in der System-Shell), überspringen wir dieses Laden. Dann gibt es keine Fehlermeldung:

PDFCROP 1.38, 02.11.2012 – Copyright (c) 2002-2012 von Heiko Oberdiek.

==> 2 Seiten zu „bug0001-solution-pics.pdf“ geschrieben.

Anbei meine Lösung und eine Seitenvorschau.

%! pdflatex or xelatex or lualatex
%! with ----shell-escape or --enable-write18
%! bug0001-solution.tex
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{pst-barcode}
\usepackage{auto-pst-pdf}
\ifpdf
% This is another approach when running lualatex:
% \ifcsname directlua\endcsname
\usepackage{tikz}
% Plus loading tikz libraries...
\else
% Or run \batchmode or \nonstopmode as pst-pdf does...
\newenvironment{tikzpicture}[1]{}{}
\def\tikzset{}
\fi 
\begin{document}
My first barcode is:\par
\begin{pspicture}(3,1in)
\psbarcode{978-80-87106-00-6}{includetext guardwhitespace}{isbn}
\end{pspicture}\par
My first QR code is:\par
\begin{pspicture}(1,1in)
\psbarcode{http://www.cstug.cz/}{}{qrcode}
\end{pspicture}\par
\begin{tikzpicture}
\node{Hello World!};
\end{tikzpicture}
\end{document}

eine Lösung

verwandte Informationen