这是一个棘手的问题。
假设我使用 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
}