我正在尝试将在 LibreOffice Draw 中创建的图形导入 LaTeX 文档中。
到目前为止我已经尝试过以下方式:
- 将文档导出为 SVG 文件。
- 使用 Inkscape 打开并使用 eps+latex 导出
- 在 latex 中包含生成的 xxx.eps_tex
尽管 SVG 看起来很好(在 Inkscape 中也是如此),但是文本的导出位置很糟糕:
\begin{picture}(1,0.73115748)%
\put(0,0){\includegraphics[width=\unitlength]{ModeDispersion.eps}}%
\put(-0.05241193,0.78432034){\makebox(0,0)[lb]{\smash{Cladding (air)}}}%
\put(-0.05241193,0.78432034){\makebox(0,0)[lb]{\smash{Substrate}}}%
\put(-0.05241193,0.78432034){\makebox(0,0)[lb]{\smash{In}}}%
\put(-0.05472789,0.25830639){\makebox(0,0)[lb]{\smash{Out}}}%
\put(-0.05472789,0.25830639){\makebox(0,0)[lb]{\smash{Single-mode}}}%
\end{picture}%
等等。pdf+latex 也一样。
原始 LibreOffice(版本 4.0.1.2)文件和导出的 SVG: 奥德赛 SVG
我无法附加由 Inkscape(版本 0.48.3.1)创建的文件,因为 stackoverflow 告诉我,我需要至少 10 个声誉才能这样做...
有谁知道如何解决这个问题?
编辑:在 inkscpae 中显示:
(来源:x-linux.de)
使用乳胶加工:
(来源:x-linux.de)
答案1
由于相应编辑器的转换效率低下,您所采用的图形工作流程
.odg
-->.svg
-->eps+tex
/pdf+tex
不是最佳的。这建议选择图形格式总是
.pdf
除了屏幕截图(.png
)和照片(.jpg
)假设pdflatex
引擎。采用“单一”转换步骤生成
figure.pdf
。.svg
.pdf
或者.odg
到.pdf
不是将它们结合起来。Inkscape导出到
.pdf
latex 字体(拉丁现代字体)或足够接近的字体,类似地自由办公室。我已成功更改字体并使用 Libreoffice 将您的绘图导出到.pdf
。您甚至可以在 Inkscape 中绘图并导出为 pdf。
- 但这些并不是实现乳胶文本高质量和字体一致性的最佳方法。阅读既然有 OpenOffice 这样的开源工具,为什么还要使用 LaTeX 来绘制图表呢?. 选择那些矢量图形包 这很适合你。
答案2
为什么不将您的绘图导出.png
并像这样合并呢?
\documentclass{article}
\usepackage{pgf}
\begin{document}
\begin{center}
\pgfimage[width=0.6\textwidth]{myshapes.png}
\end{center}
\end{document}
您将需要使用pdflatex
来编译您的.tex
文件。
您可以获取上述解决方案的全部文件这里。
答案3
从 LibreOffice 导出时,SVG XML 将导出为:
<svg>
<text>
<tspan>
<tspan>
<tspan>
</tspan>
</tspan>
</tspan>
</text>
</svg>
问题是 PDF 导出仅将坐标视为文本标记。我只是复制了 x、y 坐标进行文本标记。
我使用 python 进行了快速修复并在 gitgub 上分享:
https://github.com/thalesmaoa/libreoffice-Calc-SVG-Latex
结果正是我想要的: