我目前正在根据一篇最初用 Latex 编写的论文进行演示。目前,我使用 Kile 和 Ubuntu 进行工作。
我发现我需要大量散布在演示文稿中的原始论文中的方程式(并使用它们来注释图表等)。我目前的屏幕截图 + gimp 方法相当慢 :)
因此,我想要做的是编译 tex 文档,而不是创建 pdf/dvi,而是希望它输出多个文件,每个文件都是文档中的一个方程式,最好是矢量格式,但如果必须的话,我会使用 PNG,只要它的分辨率足够高。
我已看过许多实用程序。
以下 Web 实用程序:http://www.codecogs.com/latex/eqneditor.php对于单独输入的方程式,它或多或少满足了我的要求。但是,我在方程式中使用了很多宏,这让它使用起来有点混乱(例如)
\newcommand{\SkewSymmetric}[1]{\ensuremath{ \left[ #1 \right]_{\times}}}
我看过 pdf2svg,但它并不能完全满足我的要求——我仍然需要裁剪出感兴趣的方程式。
还有什么我应该看看的吗?
答案1
查看预览包。例如,包括
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{equation}
打印所有equation
环境,不打印其他内容,每个环境均裁剪,一页一页。它对 DVI 和 pdf 输出同样有效。equation
环境中嵌入的宏(或任何宏)的处理透明且正确。
然后可以使用以下命令将 pdf 转换为 SVG 图像:
pdf2svg filename.pdf output-page%03d.svg all
答案2
扩展@Kilgore 的答案:
要删除方程式编号(并且您拥有原始文件的完整备份!),您可以执行以下操作:
#!/bin/bash
files=`find . | grep -e '\.tex$'`
for file in $files ; do
echo "Stripping: $file"
# Create a copy of the existing file
cp $file $file.strip_backup
sed -i 's/begin{equation\*}/begin{align*}/g' $file
sed -i 's/end{equation\*}/end{align*}/g' $file
sed -i 's/begin{equation}/begin{align*}/g' $file
sed -i 's/end{equation}/end{align*}/g' $file
sed -i 's/begin{align}/begin{align*}/g' $file
sed -i 's/end{align}/end{align*}/g' $file
done
可以使用以下公式提取各个方程:
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{align*}
(请注意添加的 *)
要删除多余的空格,请使用以下实用程序:
pdfcrop output.pdf
最后,你可以将其拆分成单独的 svg 文件
mkdir output-equations
pdf2svg filename.pdf output-equations/output-page%03d.svg all
如果 svg 图像仍然没有被正确裁剪,Inkscape 可以修复该问题:
inkscape -z --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose output-equations/*.svg
答案3
创建一个 Metapost 文件,每个方程包含一个图形,每个方程都放在一个“未装箱的盒子”中:
beginfig(1)
boxit.a(btex $$e^{i\pi}+1=0$$ etex);
a.c = (0,0);
drawunboxed(a);
endfig(1);
beginfig(2)
boxit.a(btex $$F={G m_1 m_2 \over d^2}$$ etex);
a.c = (0,0);
drawunboxed(a);
endfig(2);
运行mptosvg
,它将为每个图形生成一个 SVG 文件,并带有正确的边界框。
答案4
您还可以使用縮寫包,它preview
在内部使用该包,但也会裁剪生成的片段并将它们转换为多种不同的格式。您可以使用上面的@Damien 的答案将所有数学环境转换为align*
's 并调用:
ltximg --latex --extrenv 'align*' --imgdir eqs --svg --png -o test-out test_eq.tex
test_eq.tex
从目录中提取 pdf、svg 和 png 片段eqs
。ltximg 默认仅提取图片环境(tikz、pstricks 等),因此我们需要使用来--extrenv
指定数学环境。