如何在latex文档源中放置一个小图形?
我有一个小的图形,这是我的文件的一部分。它是PDF,有193行,有一些二进制数据和postscript混合在一起。我目前正在使用graphicx软件包,并将pdf作为一个单独的文件。有没有一种方法可以直接在我的latex源代码中内联它?看看,我认为没有一种方法可以在latex中内联二进制数据。您可以使用各种软件包(如lpthnc推荐的渐近线)将图形重新创建为向量类型的图像。如果你真的很聪明,你可以编写一些TeX来以数组格式存储数据并重新创建它,但我认为没有一个包可以简单地做到这一点。你还应该看看如何在latex文档源中放置一个小图形?,latex,pdflatex,Latex,Pdflatex,我有一个小的图形,这是我的文件的一部分。它是PDF,有193行,有一些二进制数据和postscript混合在一起。我目前正在使用graphicx软件包,并将pdf作为一个单独的文件。有没有一种方法可以直接在我的latex源代码中内联它?看看,我认为没有一种方法可以在latex中内联二进制数据。您可以使用各种软件包(如lpthnc推荐的渐近线)将图形重新创建为向量类型的图像。如果你真的很聪明,你可以编写一些TeX来以数组格式存储数据并重新创建它,但我认为没有一个包可以简单地做到这一点。你还应该看看
pdfpages
包。在PDF文档中包含PDF的各种选项
pdfpages:好的,我认为这是您想要的,但除非您真的需要这样做,否则其他解决方案会更好 要使用此解决方案,您需要:
- 在Latex命令中启用shell转义(
命令行选项)。由于安全原因,默认情况下禁用Shell转义-shell转义
- 可以访问编译文件的
和uuencode
程序uudecode
graphic.png
,主文档是doc.tex
。首先,编码graphic.png
,并将其附加到末尾(编码的数据都是文本):
然后,在将图形包括在doc.tex
中之前,请确保您已经有了这些:
\immediate\write18{cat \jobname.tex | uudecode}
例如,我创建了一个文档:
\documentclass{article}
\immediate\write18{cat \jobname.tex | uudecode}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=\textwidth]{graphic}
\end{document}
%%% Do not touch the data below, this is added by uuencode.
begin 644 graphic.png
..... (stripped a lot of lines) ...
`
end
然后,这将起作用:
$ pdflatex -shell-escape doc
正如我所说,有更好的解决方案,除非你真的需要一个源文件,否则不要这样做。我设计了一个解决方案:
pdftops
(软件包的一部分)将pdf转换为postscript\special
宏嵌入postscript\noindent\vbox to 112pt{\vfil\hbox to 248pt{\special{" gsave
currentfile /ASCIIHexDecode filter cvx exec
25 21 50 53 2d 41 64 6f 62 65 2d 33 2e 30 20 45
50 53 46 2d 33 2e 30 0a 25 20 50 72 6f 64 75 63
65 64 20 62 79 20 78 70 64 66 2f 70 64 66 74 6f
70 73 20 33 2e 30 32 0a 25 25 43 72 65 61 74 6f
...
65 72 0a 65 6e 64 0a 25 25 44 6f 63 75 6d 65 6e
74 53 75 70 70 6c 69 65 64 52 65 73 6f 75 72 63
65 73 3a 0a 25 25 45 4f 46 0a
>
grestore
}
\hfil}}
我做了一个完整的例子。谢谢你的建议。很遗憾,我无法修改或重新创建图形。真的吗?逆向工程很有趣。只需以高分辨率查看数据点。渐近线给你惊人的质量。好的,我喜欢这个答案。谢谢不过,这对我来说不太管用,因为我的目标是提供一个latex包,该包提供一个宏,可以将图像与其他文本放在一起。不过,这比我发布的解决方案更直接,所以这可能是一个更好的答案,取决于一个人在做什么。我仍然看不到一个足够好的论据来解释为什么你想做你想做的事情,但是我不完全了解你的用例。很好的观点。它启发我找到一种转换为ASCII的方法;查看我发布的解决方案,了解我所做的。此包/链接似乎不再存在?:(
\noindent\vbox to 112pt{\vfil\hbox to 248pt{\special{" gsave
currentfile /ASCIIHexDecode filter cvx exec
25 21 50 53 2d 41 64 6f 62 65 2d 33 2e 30 20 45
50 53 46 2d 33 2e 30 0a 25 20 50 72 6f 64 75 63
65 64 20 62 79 20 78 70 64 66 2f 70 64 66 74 6f
70 73 20 33 2e 30 32 0a 25 25 43 72 65 61 74 6f
...
65 72 0a 65 6e 64 0a 25 25 44 6f 63 75 6d 65 6e
74 53 75 70 70 6c 69 65 64 52 65 73 6f 75 72 63
65 73 3a 0a 25 25 45 4f 46 0a
>
grestore
}
\hfil}}