图 3.2 由 xfig 3.2.5b 版本生成

图 3.2 由 xfig 3.2.5b 版本生成

我收藏了大量(数百张)部分相当旧的 xfig 图片。虽然我真的很喜欢 xfig 程序,但我想将其转换为一些更现代的图片格式,例如 TikZ。所以我想问一下是否有人有自动转换工具的好主意。理想情况下,一些 shell srcipt 之类的... 那么问题(?)是许多 xfig 图片都有 LaTeX 覆盖。

编辑:这对于马克的回答的评论来说可能太长了,所以我在这里将其作为编辑发布:

这是一个 xfig 的示例,它只会产生错误

图 3.2 由 xfig 3.2.5b 版本生成

Landscape
Center
Metric
A4
52.00
Single
-2
1200 2
3 0 0 3 0 7 50 -1 -1 0.000 0 1 0 3
1 1 4.00 60.00 150.00
7650 3375 6975 4275 7650 5625
0.000 1.000 0.000

该脚本给出了一些 tikz 命令请求错误

包 pgf 错误:箭头末端类型“三角形 45”未知。

因此,当然,我现在可以手动编辑几个箭头等等,但我希望它更加自动化...... :(

答案1

有一款专门用于此目的的实用程序,名为fig2tikz。从网页上看,似乎应该支持 LaTeX 覆盖,我有兴趣知道它是否支持。

运行fig2tikz您在问题中提供的代码会产生以下结果:

\begin{tikzpicture}[y=-1cm]

% objects at depth 50:
\draw[thick,arrows=-triangle 45,black] (17,7.5) .. controls (15.5,9.5) .. (17,12.5);

\end{tikzpicture}%

将其放在最小文档中(注意arrows库)

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}
%%% Code generated by fig2tikz
\begin{tikzpicture}[y=-1cm]

% objects at depth 50:
\draw[thick,arrows=-triangle 45,black] (17,7.5) .. controls (15.5,9.5) .. (17,12.5);

\end{tikzpicture}%
%%% End of code
\end{document}

生成以下内容:

在此处输入图片描述

答案2

版本 3.2.6xfig / fig2dev和更新版本可以导出到 tikz。使用 可生成独立的 tex 文件fig2dev -L tikz -P f.fig f.tex。省略-P生成包含在 tex 文件中的代码。

答案3

对于马克的建议我有两个替代建议。

a. 据我所知,您有数百张旧的 Xfig 图片,您可能希望将其自动化。我会特别使用 Transfig 实用程序(应该随您的 Xfig 安装一起提供)图2dev将文件转换为每股收益文件,然后使用eps2pgf 转换为 PGF 代码的实用程序(几乎与 TikZ 相同)

cd my_pictures_dir
for i in *.fig
  do 
    fig2dev -L eps $i `basename $i .fig`.eps
    java -jar eps2pgf.jar `basename $i .fig`.eps `basename $i .fig`.pgf
  done

我还没有测试过该解决方案,所以 YMMV。

b. 第二种选择是选择其他中间格式

$ fig2dev -help 
fig2dev Version 3.2 Patchlevel 5a
General Options (all drivers):
  -L language   choose output language (this must be first)
                Available languages are:
                  box cgm eepic eepicemu emf epic eps ge gif 
                  ibmgl dxf jpeg latex map mf mmp mp pcx 
                  pdf pdftex pdftex_t pic pictex png ppm ps pstex 
                  pstex_t ptk shape sld svg textyl tiff tk tpic 
                  xbm xpm 

可以更轻松地转换为 TikZ 或 PGF。我并不经常使用 TikZ,也不太熟悉该库,无法做出正确的选择。

答案4

为了避免该 pgf 错误,只需添加 tikz arrows 库:

\usetikzlibrary{arrows}

相关内容