2

ドキュメントの一部である小さなグラフィックがあります。これはPDFで、193行で、いくつかのバイナリデータがポストスクリプトと混合されています。私は現在、graphicxパッケージを使用しており、PDFを別のファイルとして含めています。ラテックスソースに直接インライン化する方法はありますか?

4

5 に答える 5

1

これが私が考案した解決策です:

  1. ( xpdfパッケージpdftopsの一部)を使用してpdfをpostscriptに変換し、
  2. Postscript を ASCII-only に変換し
  3. 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 で要旨を作成しました。

于 2009-12-17T13:39:27.827 に答える
0

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つのソースファイルを持っている必要がない限り、これをしないでください。

于 2009-12-17T09:31:24.650 に答える
0

pdfpagesまた、パッケージを見てください。PDF ドキュメントに PDF を含めるためのあらゆる種類のオプション。

pdfページ: http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/pdfpages.pdf

于 2009-12-16T17:15:56.263 に答える
0

LaTeX でバイナリ データをインライン化する方法はないと思います。さまざまなパッケージ (lpthnc が推奨する Asymptote など) を使用して、グラフィックをベクター型の画像として再作成できます。あなたが本当に賢いなら、データを配列形式で保存して再作成するTeXを書くことができますが、それを簡単に行うためのパッケージはないと思います。

于 2009-12-16T14:43:57.957 に答える
0

漸近線ラテックスの統合ガイドをご覧ください

于 2009-12-16T14:40:56.683 に答える