xfig 中的 epic macro、eepic macro 和 eepicemu macro 是什么?

xfig 中的 epic macro、eepic macro 和 eepicemu macro 是什么?

我目前正尝试寻找一种好方法,将使用 xfig 创建的图像包含在将编译为 PDF 的 LaTeX 文档中。

因此我目前尝试了解以下导出选项之间的区别:

  • LaTeX 图片
  • LaTeX 图片 + 史诗宏
  • LaTeX 图片 + eepic 宏
  • LaTeX 图片 + eepicemu 宏

我通过一个简单的示例尝试了这些导出选项,并给出了以下结果:

LaTeX 图片

\setlength{\unitlength}{4144sp}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
\begin{picture}(2505,1824)(76,-1423)
\thinlines
{\color[rgb]{0,0,0}\put(631,-61){\line( 1, 0){360}}
}%
{\color[rgb]{0,0,0}\put(631,-1051){\line( 1, 0){360}}
}%
{\color[rgb]{0,0,0}\put(2341,-331){\line( 1, 0){180}}
}%
{\color[rgb]{0,0,0}\put(991,-1411){\framebox(1350,1800){}}
}%
\put( 91,-151){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\$a\_i\$}%
}}}}
\put(136,-1141){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\$b\_i\$}%
}}}}
\put(2566,-376){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\$s\_i\$}%
}}}}
\put(1936,-1231){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}CO}%
}}}}
\put(1306,164){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}{\color[rgb]{0,0,0}\$Sigma\$}%
}}}}
\end{picture}%

LaTeX 图片 + 史诗宏

\setlength{\unitlength}{0.00087489in}
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
{\renewcommand{\dashlinestretch}{30}
\begin{picture}(2966,1839)(0,-10)
\drawline(555,1362)(915,1362)
\drawline(555,372)(915,372)
\drawline(2265,1092)(2445,1092)
\drawline(915,1812)(2265,1812)(2265,12)
    (915,12)(915,1812)
\put(15,1272){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$a\_i\$}}}}
\put(60,282){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$b\_i\$}}}}
\put(2490,1047){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$s\_i\$}}}}
\put(1860,192){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}CO}}}}
\put(1230,1587){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$$\backslash$Sigma\$}}}}
\end{picture}
}

LaTeX 图片 + eepic 宏和 LaTeX 图片 + eepicemu 宏

\setlength{\unitlength}{0.00087489in}
%
\begingroup\makeatletter\ifx\SetFigFont\undefined%
\gdef\SetFigFont#1#2#3#4#5{%
  \reset@font\fontsize{#1}{#2pt}%
  \fontfamily{#3}\fontseries{#4}\fontshape{#5}%
  \selectfont}%
\fi\endgroup%
{\renewcommand{\dashlinestretch}{30}
\begin{picture}(2966,1839)(0,-10)
\path(555,1362)(915,1362)
\path(555,372)(915,372)
\path(2265,1092)(2445,1092)
\path(915,1812)(2265,1812)(2265,12)
    (915,12)(915,1812)
\put(15,1272){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$a\_i\$}}}}
\put(60,282){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$b\_i\$}}}}
\put(2490,1047){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$s\_i\$}}}}
\put(1860,192){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}CO}}}}
\put(1230,1587){\makebox(0,0)[lb]{\smash{{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}\$$\backslash$Sigma\$}}}}
\end{picture}
}

存在一些差异

我将它们中的一些与 melt 进行了比较,得到了以下结果

  • latex <-> epic:epic 似乎短了很多。坐标发生了变化。epic 使用 \drawline
  • epic <-> eepic:\drawline <-> \path
  • eepic <-> eepicemu:没有区别,我把它们合并到了上面

答案1

他们都是非常旧。我不确定 epic 是什么时候开始的,但扩展的 eepic 手册的日期是 1988 年。epic 是一种扩展的 latex 图片模式,但与图片模式一样,它使用 TeX 字体和绘图规则,因此有点受限且速度慢。eepic 使用 tpic 特殊功能来绘制线条和圆圈 eepicemu 是一个采用 eepic 语法的仿真包,如果所使用的驱动程序不支持所需的特殊功能,则使用 epic 绘图。

事实上,自从 1990 年代以来,诸如 PostScript 和 PDF 之类的本机可扩展支持格式就已经面世,因此在新文档上使用它们的理由并不多。

例如,xfig 多年来一直能够生成 eps 或 eps+latex,从而提供矢量绘图的更直接表示。

相关内容