pdfLaTeX falla en pstool cuando se incluye hyperref

pdfLaTeX falla en pstool cuando se incluye hyperref

Tengo un problema bastante simple que no puedo resolver.

Utilizo pdfLaTeXel último MikTeX junto con WinEdt. Necesito utilizar psfragpara mis cifras de EPS y por lo tanto, aplico el pstoolpaquete. Esto funcionó bien hasta el verano.

Ahora abrí un documento que funcionaba en ese momento, pero el mismo documento y la misma cadena de herramientas fallan: la ejecución extendida de LaTeX iniciada por pstoolfalla y se crea un PDF vacío a partir del EPS.

Un ejemplo mínimo:

\documentclass[12pt,a4paper]{article}
\usepackage[margin=2cm,a4paper]{geometry}
\usepackage{hyperref}

\title{psfrag in pdflatex }

\usepackage{graphicx}
\usepackage{pstool}
\usepackage{bookmark}


\begin{document}
Test
\begin{figure}[h!]
\centering
 \psfragfig[mode=errorstop,width=0.9\textwidth]{Pulley_movable}
\caption{The EPS image with psfragfig}
\end{figure}

\end{document}

¡Curiosamente, elimina hyperrefy bookmarksresuelve el problema y crea el PDF correcto!Por lo tanto, asumo que mi configuración de LaTeX básicamente está haciendo el trabajo correcto. ¿Quizás un paquete está roto? ¿Alguien podría probar mi ejemplo mínimo e informar?

Este es el resultado de la carrera. Tenga en cuenta que hay una advertencia de que no se encontró Pulley_movable.tex, incluidos psfraglos comandos, pero los omití para evitar cualquier problema. Proporcionar el archivo no ayuda:

Startup Folder: C:\Users\xxxx\Documents\Papers\pstool-problem

This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 20.11 Portable)
entering extended mode
(test.tex
LaTeX2e <2020-10-01> patch level 2
L3 programming layer <2020-10-27> xparse <2020-03-03>
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/base\article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/base\size12.clo))
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/geometry\geometry.sty
...
...
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/generic/xkeyval\xkvutils.tex))
) (C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/l3kernel\expl3.sty
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/l3backend\l3backend-pdft
ex.def)))
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/bookmark\bookmark.sty
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/bookmark\bkm-pdftex.def)
)
No file test.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/hyperref\nameref.sty
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/refcount\refcount.sty)
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/generic/gettitlestring\gettitl
estring.sty))
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/context/base/mkii\supp-pdf.mki
i
[Loading MPS to PDF converter (version 2006.09.02).]
)
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/epstopdf-pkg\epstopdf-ba
se.sty)"
"
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 20.11 Portable)
entering extended mode
(Pulley_movable-pstool.tex
LaTeX2e <2020-10-01> patch level 2
L3 programming layer <2020-10-27> xparse <2020-03-03>
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/base\article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/base\size12.clo))
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/geometry\geometry.sty
...
...
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/generic/luatex85\luatex85.sty)
 (C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/preview\prtightpage.def
))
No file test.oldaux.
No file Pulley_movable-pstool.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: dvips
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/hyperref\nameref.sty
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/latex/refcount\refcount.sty)
(C:\ProgramData\Npackd\MiKTeX\texmfs\install\tex/generic/gettitlestring\gettitl
estring.sty))

Package hyperref Warning: Rerun to get /PageLabels entry.

Preview: Fontsize 12pt
<Pulley_movable.eps>
Preview: Tightpage -32891 -32891 32891 32891
[1] [2] (Pulley_movable-pstool.aux)

LaTeX Warning: Temporary extra page added at the end. Rerun to get it removed.

 )
Output written on C:\Users\xxxx\Documents\Papers\pstool-problem\Pulley_movab
le-pstool.dvi (2 pages, 4272 bytes).
Transcript written on C:\Users\xxxx\Documents\Papers\pstool-problem\Pulley_m
ovable-pstool.log.


Package pstool Warning: No file "Pulley_movable.tex" or "Pulley_movable-psfrag.
tex" can be found that may contain macros for "Pulley_movable.eps" on input lin
e 17.

(pstool-statusfile.txt)"
This is dvips(k) 2020.1 Copyright 2020 Radical Eye Software (www.radicaleye.com)
' TeX output 2020.11.11:1110' -> Pulley_movable-pstool.ps
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/base/tex.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/config/alt-rule.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/psfrag/psfrag.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/l3backend/l3backend-dvips.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/base/texps.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/base/special.pro>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/dvips/base/color.pro>. 
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/fonts/type1/public/amsfonts/cm/cmr8.pfb>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/fonts/type1/public/amsfonts/cm/cmr12.pfb>
<C:/ProgramData/Npackd/MiKTeX/texmfs/install/fonts/type1/public/amsfonts/cm/cmbx12.pfb>
[1<./Pulley_movable.eps>] [2<./Pulley_movable-pstool.out.ps>] 
 (pstool-statusfile.txt)"
Error: /typecheck in --div--
Operand stack:
   1   0   0.0   -0.907531   a   65781.8
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2015   1   3   %oparray_pop   2014   1   3   %oparray_pop   1998   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   --nostringval--   4   --nostringval--   %repeat_continue   --nostringval--
Dictionary stack:
   --dict:974/1684(ro)(G)--   --dict:0/20(G)--   --dict:113/200(L)--   --dict:178/300(L)--
Current allocation mode is local
Current file position is 89152
MiKTeX GPL Ghostscript 9.25: Unrecoverable error, exit code 1
 (pstool-statusfile.txt)"

Overfull \hbox (113.53291pt too wide) in paragraph at lines 17--17
 [][] 

LaTeX Warning: Float too large for page by 140.75291pt on input line 18.


LaTeX Warning: `!h' float specifier changed to `!ht'.

[1
Non-PDF special ignored!
<special> header=psfrag.pro
{C:/ProgramData/Npackd/MiKTeX/texmfs/data/pdftex/config/pdftex.map}] [2 <./Pull
ey_movable.pdf>] (test.aux
! Undefined control sequence.
l.20 \HyPL@Entry
                {0<</S/D>>}
?

Reinstalé MikTeX pero sin ningún efecto. ¡Cualquier ayuda es muy apreciada, gracias!

Respuesta1

El principal problema es una incompatibilidad entre la vista previa y la hiperreferencia debido a cambios en el código de envío de LaTeX que ya informé aquí:https://lists.gnu.org/archive/html/bug-auctex/2020-11/msg00000.html

Debido a esta incompatibilidad, la llamada de Ghostscript falla y luego aparece un error tanto en miktex como en texlive (pero ligeramente diferentes).

En su ejemplo, puede solucionar esta incompatibilidad no utilizando la vista previa sino pdfcrop:

  \usepackage[crop=pdfcrop]{pstool}

o

\usepackage[crop=pdfcrop]{pstool}
\usepackage{bookmark}
\makeatletter
\AddToHook{env/document/begin}{%
\@ifpackageloaded{preview}{
\ifPreview
 \let\Hy@FirstPageHook\relax
 \let\Hy@EveryPageAnchor\relax
\fi}{}}
\makeatother

Al lado esta el error

! Undefined control sequence.
  l.20 \HyPL@Entry

El problema aquí es que el comando sólo está definido en el controlador dvips de hyperref. hyperref normalmente agrega un \providecommandaux, pero falta y cuando pstool usa el aux también con pdftex, se produce un error.

Una solución alternativa es simplemente proporcionar el comando (después de cargar la hiperreferencia o el marcador)

\usepackage{bookmark}
\makeatletter
\providecommand\HyPL@Entry[1]{}
\makeatother

información relacionada