如何设置文档查看器菜单栏中显示的标题?

如何设置文档查看器菜单栏中显示的标题?

这是一个棘手的问题。

假设我使用 pslatex 终端在 gnuplot 中生成一个图像:

gnuplot<plot.plt
latex dummy.tex
dvips -E -oimage.eps dummy

其中 'plot.plt' 包含:

set term pslatex
set output "graph.tex"
plot "..."

其中 'dummy.tex' 内容为:

\documentclass{article}
\pagestyle{empty}
\begin{document}
\input graph.tex
\end{document}

然后我将此“image.eps”文件包含在“main.tex”文档中并进行编译:

latex main
dvips main -o
ps2pdf main.ps

这将生成一个“main.pdf”文件。

我发现这很奇怪,但我注意到当我打开“main.pdf”时,我使用的文档查看器(evince)的菜单栏中出现的文档标题将是“graph.tex”而不是“main.pdf”。

如果我使用文本编辑器(例如,vim)修改.eps 文件,并用.eps 文件中的其他内容替换文本“graph.tex”,然后编译 latex 文件,这将改变我打开“main.pdf”文件时菜单栏中显示的内容。

在这里,我想知道当我没有数字时,是否还有一种方法可以使用 latex 更改此菜单栏中显示的文档标题。我认为应该有。我该怎么做?

预先感谢您的帮助。

答案1

这是由 gnuplot 输入的以下几行引起的graph.tex

SDict begin [
  /Title (graph.tex)
  /Subject (gnuplot plot)
  /Creator (gnuplot 4.4 patchlevel 4)
  /Author (mait)
%  /Producer (gnuplot)
%  /Keywords ()
  /CreationDate (Fri Mar 23 16:20:26 2012)
  /DOCINFO pdfmark
end

我在 gnuplot 手册中找不到任何可以阻止此行为的内容,因此我建议编辑文件并在 、 和 之前添加百分号/Title/Subject否则,您的数字可能会干扰将元数据插入 pdf 的其他方法。/Creator不过/Author,如果您有大量文件,手动执行此操作可能会很麻烦。

编辑

Gnuplot 可以发出系统命令,因此您可以使用诸如之类的实用程序sed来自动更改文件graph.tex

set term pslatex
set output "temp.tex"
plot x**2
set output #Closes the temporary output file.
!sed -e 's|/Title|%/Title|' -e 's|/Subject|%/Subject|' -e 's|/Creator|%/Creator|' -e 's|/Author|%/Author|' < temp.tex > graph.tex

我认为这可以在任何 UNIX 机器上运行。

答案2

我不明白这与什么相关gnuplot,但是使用

\usepackage{hyperref}

\hypersetup{pdftitle=foo,pdfdisplaydoctitle}

在您的 LaTeX 文档序言中可能会做您想要的事情。

答案3

虽然dvipdfm似乎使用了 中的设置hypersetup,但ps2pdf似乎使用了 中设置的值SDict。只需检查 postscript 文件中的代码即可。要从图中覆盖 gnuplot 设置,可以将此代码片段放在 latex 文档的末尾:

% overwrite gnuplot pdfmark
% needed for ps2pdf
\special{ps:
SDict begin [
  /Title (foo)
  /Subject ()
  /Author (Albert Einstein)
  /Creator ()
%  /Producer (gnuplot)
%  /Keywords ()
  /CreationDate (Fri Jun 26 22:09:50 2020)
  /DOCINFO pdfmark
end
   }

相关内容