假设我的机器上有一个文件file:///c:\figure.bmp.
从我的 pdf 文档(使用 hyperref.sty 通过 LaTeX 创建)中,我如何figure.bmp
使用mspaint.exe
(微软内置图像编辑器)打开?
执行此场景的正确命令是什么?
如果我如下调用
\href{file:///c:\figure.bmp}{To open the figure, click here.}
将figure.bmp
使用 Illustrator 打开(例如)。
实际上,我可以更改文件关联以使用 mspaint 而不是 illustrator 打开 bmp。但是,我更喜欢找到另一种优雅的方法,即指定要打开的文件和用于打开的应用程序。
答案1
看起来您想要一个“启动”操作;请参阅 PDF 参考 1.6 版第 8.5.3 节中的表 8.49(第 622 页)或 1.7 版同一节中的表 8.53(第 660 页)。
两个版本均可从Adobe PDF 参考档案;由于大小,版本 1.6(8.8 MiB)可能比版本 1.7(31 MiB)更受欢迎。(由于 ISO 标准的排版很差,因此应尽量避免使用。)
看起来,实际使用它的最简单方法是使用 pdfLaTeX 原语\pdfstartlink
;\pdfendlink
请参阅手册pdfTeX 页面。
更新:
嗯,结果并不是特别容易,但是这里有一个完整的例子,它几乎对我来说是可行的——它似乎被正确解释,但失败了,因为(根据 Reader)“它目前被您的系统管理员不允许”。
(这似乎很明显,但以下内容是“普通”格式,而不是 LaTeX 格式——这是他们所说的解决方案。
哦,还有一个警告:我不建议最初在 Adobe Reader 中测试对此的修改;当我尝试对一个稍微有缺陷的文件进行测试时,它会在我关闭窗口时忘记关闭文件,所以我必须关闭 Reader 本身才能重新运行 TeX。相反,在 gsview32 中尝试它,它具有提供某种诊断的额外优势,而不仅仅是不起作用。
%&plain
\pdfoutput=1
\pdfcompresslevel=0 % for debuggable PDF output
% taken from http://tex.stackexchange.com/questions/7136/.../7139#7139
{
\catcode`\^0
\catcode`\\12
^gdef^dirsep{\}
}
% This is surprisingly tricky to get right; check the PDF file in a
% text editor to make sure the correct string was output! For example,
% I had {} instead of a space after the \dirsep, and that got copied
% to the output.
\def\figurepath{C:\dirsep figure.bmp}
See the file
\pdfstartlink
attr {/C [0.9 0 0] /Border [0 0 2]}
user {
/Subtype /Link
/A <<
/Type /Action % This is a PDF "Action" dictionary ...
/S /Launch % ... for a "Launch" action
/Win << % Nested dictionary of Windows-only stuff
/F (mspaint) % Application
% Parameters; parens to delimit it as a PDF string, quotes so
% that spaces won't foul things up, and \pdfescapestring to deal
% with any (, ), or \ characters in the path
/P (\pdfescapestring{"\figurepath"})
>>
>>}
{\tt \figurepath}
\pdfendlink
\bye
答案2
如果您不只是打开文件,而是通过调用所需文件来打开 MSPaint,您可能能够获得所需的结果。
如果你按照以下详细信息操作,你就可以实现这一点此 eHow 页面
打开文件 通过指定硬盘上的文件位置来打开图像文件。在“mspaint”后添加一个空格并输入完整的文件扩展名(例如:“mspaint c:/folder/subfolder/filename”)。确保文件名完全准确,包括文件扩展名。右键单击文件并选择“属性”,查看图像的确切位置。
在 Windows 上,这应该可以在命令行调用周围使用“ ”。但我搞不懂,因为
\href{file:///C:/Windows/system32/mspaint.exe C:/Users/haberthuer/Desktop/SomeFile.bmp}{To open the figure, click here.}
只需打开我的 Windows 资源管理器...
顺便说一句:为什么您要在 MSPaint 中打开 .BMP 文件是另一个问题...您能解释一下为什么要这样做吗?