附图中的标题取代了元数据

附图中的标题取代了元数据

我想编辑最终 pdf 文件的标题。以下这个帖子我得到了以下代码,它运行完美

\documentclass{article}
\usepackage{hyperref}
\hypersetup{pdftitle={Title I want}}
\usepackage{graphicx}

\begin{document}
This file is not completely empty.
%\includegraphics[width=0.7\textwidth]{fignu05.eps}                                                                                                                                                        

 \end{document}

编译是通过latex+dvips+ps2pdf完成的。

当我取消注释 includegraphics 行时,问题就出现了。由于某种原因,图片的元数据(即“Test.eps”)删除了“我想要的标题”,我不知道如何解决这个问题。

我尝试将 hypersetup 命令放在 includegraphics 命令之后,但这并不能解决问题。

任何帮助将不胜感激。

编辑:回答下面的评论,我同意图片在这里

答案1

在 PS 到 PDF 的转换过程中,元数据被插入到 PDF 输出中/DOCINFO pdfmark

可以临时重新定义命令pdfmark以从操作数堆栈中清除其所有参数。我们在此专门针对执行此操作,/DOCINFO pdfmark以防止包含的 EPS 用其元数据污染主 PDF。其他pdfmarks(例如用于链接创建)不受影响。

\documentclass{article}

\usepackage{hyperref}
\hypersetup{pdftitle={Title I want}}
\usepackage{graphicx}

\newenvironment{NoDocinfo}{%
  \special{ps: save /pdfmark {dup /DOCINFO eq {cleartomark}{systemdict /pdfmark get exec} ifelse} def}%
  \ignorespaces%
}{%
  \unskip%
  \special{ps: restore}%
}

\begin{document}

\begin{NoDocinfo}
 \fbox{\includegraphics[width=0.7\textwidth]{fignu05.eps}}
\end{NoDocinfo}

\end{document}

答案2

好吧...Ulrike Fischer 的评论建议我尽量避免使用 pdflatex,于是我照做了这个帖子这对我的问题来说很好。

答案3

问题在于图形还包含填充信息字典的指令,并且比来自 hyperref 的代码更晚。

使用新的 LaTeX PDF 管理代码(目前处于测试阶段,需要一个非常新的 tex 系统),它将起作用,因为此代码在很晚的时候才添加信息字典:

\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{uncompress}

\documentclass{article}
\usepackage{hyperref}
\hypersetup{pdftitle={Title I want}}

\usepackage{graphicx}

\begin{document}
This file is not completely empty.
\includegraphics[width=0.7\textwidth]{fignu05.eps}

\end{document}

一个有点黑客的替代方法是使用 expl3 后端命令来覆盖图形条目:

\documentclass{article}
\usepackage{hyperref}
\usepackage{graphicx}
\hypersetup{pdftitle={Title I want}}
\begin{document}
This file is not completely empty.
\includegraphics[width=0.7\textwidth]{fignu05.eps}


\ExplSyntaxOn\makeatletter
\exp_args:Nnx
\__pdf_backend_info_gput:nn{Title}{(\@pdftitle)}
\ExplSyntaxOff
 \end{document}

相关内容