ドキュメントの一部である小さなグラフィックがあります。これはPDFで、193行で、いくつかのバイナリデータがポストスクリプトと混合されています。私は現在、graphicxパッケージを使用しており、PDFを別のファイルとして含めています。ラテックスソースに直接インライン化する方法はありますか?
5 に答える
これが私が考案した解決策です:
- ( xpdfパッケージ
pdftops
の一部)を使用してpdfをpostscriptに変換し、 - Postscript を ASCII-only に変換し、
- graphicx パッケージと
\special
マクロを使用して追記を埋め込みます。
欠点は、\special を使用して Postscript を埋め込むには、pdf の代わりに dvi を発行する必要があることです。このソリューションを改善して、pdf を直接出力できるようにするとよいでしょう。
ラテックスソースは次のようになります。
\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}}
完全な例を提供するgithub で要旨を作成しました。
OK、これはあなたが望むことをするだろうと思います、しかしあなたが本当にこのようなことをする必要がない限り、他の解決策はより良いです。
このソリューションを使用できるようにするには、次のことを行う必要があります。
- Latexコマンド(
-shell-escape
コマンドラインオプション)でシェルエスケープを有効にします。セキュリティ上の理由から、シェルエスケープはデフォルトで無効になっています。 uuencode
ファイルをコンパイルしてuudecode
いるプログラムにアクセスできます。
グラフィックがgraphic.png
で、メインドキュメントがであるとしますdoc.tex
。まず、エンコードgraphic.png
して最後に追加します(エンコードされたデータはすべてテキストです)。
$ cat graphic.png | uuencode graphic.jpg >>doc.tex
次に、グラフィックを含める前に、これがあることを確認してください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
私が言ったように、はるかに優れたより良い解決策があります、そしてあなたが本当に1つのソースファイルを持っている必要がない限り、これをしないでください。
pdfpages
また、パッケージを見てください。PDF ドキュメントに PDF を含めるためのあらゆる種類のオプション。
pdfページ: http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf
LaTeX でバイナリ データをインライン化する方法はないと思います。さまざまなパッケージ (lpthnc が推奨する Asymptote など) を使用して、グラフィックをベクター型の画像として再作成できます。あなたが本当に賢いなら、データを配列形式で保存して再作成するTeXを書くことができますが、それを簡単に行うためのパッケージはないと思います。
漸近線とラテックスの統合ガイドをご覧ください