插入纯 TeX 格式的图像

插入纯 TeX 格式的图像

我使用了 TeX 的 OzTeX 实现,并且我还曾经使用纯 TeX 而不是 LaTeX 来排版我的文档,因此使用 OzTeX 插入图像没有任何问题,现在我回到了 TeX 文档,正在使用 TeXWorks 前端,但我无法插入图像.eps文件,似乎\includegraphics宏仅适用于 LaTeX,所以我无法使用它,关于如何在使用纯 TeX 时插入图像有什么想法吗?

答案1

到目前为止,最简单的方法是使用miniltx允许您将 LaTeX 的graphics包与纯 TeX 一起使用:

\input miniltx %
\input graphicx.sty %
\includegraphics{<filename>}
\bye

或者

\input graphicx.tex %
\includegraphics{<filename>}
\bye

(有关细微差别请参见此处的评论。)

您唯一需要注意的是,TeXworks 是围绕基于 PDF 的工作流程设计的。因此,您需要将.eps文件转换为.pdf使用格式epstopdf,然后在 TeXworks 中使用 pdfTeX。(在 LaTeX 中,现在有从.eps.pdf文件的自动转换方法,但这不适用于纯 TeX。)

答案2

epsf您可以使用为纯 TeX 设计的简单包:

\input epsf
%optional \epsfxsize=dimen or \epsfysize=dimen
\epsfbox{filename.eps}

答案3

对于pdftex用户来说,这种\pdfximage方法似乎很有吸引力。该\pdfximage命令创建一个图像对象。尺寸可以以类似于规则的方式控制,即

\pdfximage width ... height ... depth ... <general text>

<general text>文件名在哪里。(\pdfximage还有更多参数,可以在pdftex手动的。对于调整边界框等高级操作也请参阅手册。)

尽管如此,\pdfximage只会创造目的但尚未插入任何内容。因此\pdfrefximage必须使用。命令

\pdfrefximage <integer>

<integer>在 shipout 的输出中放置一个包含存储在 引用的对象中的图像的 whatsit 。原则上,可以输出与每个图像对象相对应的编号,写下来,然后稍后执行,例如\pdfrefximage3。但这很乏味,而且容易出错。这就是为什么有 ,\pdflastximage它是一个计数寄存器,始终包含最后一个 的编号\pdfximage,因此包含图像可以归结为以下代码

\pdfximage width 3cm {example-image-a.pdf}
\pdfrefximage\pdflastximage
\bye

TL;DR: 请参阅此行正上方的代码

答案4

\inspic由 提供opmac.tex。您可以设置\picwidth寄存器或\picheight寄存器(或两者,但在这种情况下外观可能会变形),并且可以键入\inspic file.jpg\inspic file.pdf等。

\input opmac

\picwidth=3cm \inspic file.png
\bye

您可以opmac.tex研究一下如何在原始级别定义这个宏:

\def\inspic #1 {\hbox{%
    \pdfximage \ifdim\picwidth=0pt \else width\picwidth\fi 
               \ifdim\picheight=0pt \else height\picheight\fi {\picdir#1}%
    \pdfrefximage\pdflastximage}}

这在 pdfTeX 中有效。使用 XeTeX 时,opmac-xetex.tex将加载附加宏文件并\inspic重新定义宏:

\def\inspic #1 {\hbox{\def\tmp##1.pdf##2\relax{%
   \ifnum\strcmp{##2}{.pdf}=0 \XeTeXpdffile \else \XeTeXpicfile \fi}%
   \lowercase{\tmp #1}.pdf\relax \picdir#1
       \ifdim\picwidth=0pt \else width\picwidth\fi
       \ifdim\picheight=0pt \else height\picheight\fi}}

该代码的主要复杂性在于 XeTeX 需要对 PDF 使用不同的原语(包括(\XeTeXpdffile))并且对另一个位图图像(\XeTeXpicfile`)使用不同的原语。

相关内容