hyperref가 포함된 경우 pdfLaTeX가 pstool에서 실패합니다.

hyperref가 포함된 경우 pdfLaTeX가 pstool에서 실패합니다.

해결할 수 없는 매우 간단한 문제가 있습니다.

pdfLaTeXWinEdt와 함께 최신 MikTeX를 사용합니다 . psfragEPS 수치에 사용해야 하므로 pstool패키지를 적용합니다. 이것은 여름까지 잘 작동했습니다.

이제 그 당시 작업 중인 문서를 열었지만 동일한 문서와 도구 체인이 실패합니다. 로 시작된 확장 LaTeX 실행이 pstool실패하고 EPS에서 빈 PDF가 생성됩니다.

최소한의 예:

\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}

흥미롭게도 문제를 제거 hyperref하고 bookmarks해결하면 올바른 PDF가 생성됩니다!!!따라서 나는 LaTeX 구성이 기본적으로 올바른 작업을 수행하고 있다고 가정합니다. 어쩌면 패키지가 파손되었을 수도 있나요? 누군가 내 최소한의 예를 테스트하고 보고해 주실 수 있나요?

실행 결과입니다. 명령을 포함하여 Pulley_movable.tex를 찾을 수 없다는 경고가 있지만 psfrag문제가 발생하지 않도록 생략했습니다. 파일을 제공해도 도움이 되지 않습니다.

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>>}
?

MikTeX를 다시 설치했지만 아무런 효과가 없습니다. 도움을 주시면 대단히 감사하겠습니다. 감사합니다!

답변1

주요 문제는 이미 여기에 보고한 LaTeX의 출시 코드 변경으로 인해 미리 보기와 하이퍼 참조가 호환되지 않는다는 것입니다.https://lists.gnu.org/archive/html/bug-auctex/2020-11/msg00000.html

이러한 비호환성으로 인해 ghostscript 호출이 실패하고 miktex와 texlive 모두에서 오류가 발생합니다(그러나 약간 다른 경우).

귀하의 예에서는 미리보기 대신 pdfcrop을 사용하여 이러한 비호환성을 해결할 수 있습니다.

  \usepackage[crop=pdfcrop]{pstool}

또는

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

옆에 오류가 있습니다

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

여기서 문제는 이 명령이 hyperref의 dvips 드라이버에만 정의되어 있다는 것입니다. hyperref는 일반적으로 aux에 a를 추가 \providecommand하지만 이것이 누락되어 pstool이 pdftex와 함께 aux를 사용할 때 오류가 발생합니다.

해결 방법은 간단히 명령을 제공하는 것입니다(하이퍼참조 또는 책갈피를 로드한 후).

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

관련 정보