我使用 Inkscape 创建了一些矢量图形,但我希望该图形上的任何文本都由 Latex 编译。因此,我使用 Inkscape 的选项创建一个包含文本信息的单独 .pdf_tex 文件。
理论上,这种方法效果很好,但 Latex 中文本的位置似乎有点“随机”。在 Inkscape 中,我可以非常轻松地将文本正确放置(例如,置于圆圈内),但一旦我用 latex 编译它,文本就不再居中了……
避免此类问题的一般工作流程是什么?我真的希望 Latex 能够编译我的文本,因为它们包含很多数学符号,但是我不想用 \put(x,y) 手动放置它们只是为了让它们处于正确的位置。
任何帮助是极大的赞赏!
编辑:
附上一份 MWE:
\documentclass[a4paper]{scrartcl}
\usepackage{graphicx}
\usepackage{color}
\begin{document}
\begin{figure}[!htb]
\centering
\def\svgwidth{0.2\textwidth}
\input{graphic.pdf_tex}
\end{figure}
\end{document}
其中 graphic.pdf_tex 是一个 Inkscape 图像,其中包含一个圆圈和一些乳胶数学公式。
答案1
答案2
要水平对齐文本,您应该使用文本对齐Inkscape 中的选项。对于您输入的每段文本,您都应该有意识地选择一种适合其在图形中定位的对齐方式。例如,要将文本(水平)居中在一个圆圈中,我通常的工作流程是:
- 使用文本工具输入一些文本。
- 单击
align center
按钮(用于文本)。 - 使用
Align and Distribute
面板将文本对齐到圆圈的中间。
对齐文本可以改善美观度的一些示例包括将折线图的 y 轴上的标签右对齐以及将 x 轴上的标签居中对齐。必要时请不要忘记左对齐。
此工作流程无法准确使文本居中垂直因为,正如评论所述,Inkscape 无法知道文本的大小。虽然这不是最理想的,但您应该能够相对轻松地调整垂直定位。
答案3
答案4
我在生成 pdf_latex 文件时遇到了同样的问题,我不得不多次编译我的 latex 文件才能看到放置在 inkscape 中的文本最终在 latex 中的位置。
我犯的错误是使用的文本框相对于文本大小过大。文本最终会从文本框在 inkscape 中指定,而不是文本实际开始的位置。
例如,在 Inkscape 中,这两个示意图即使两个文本对齐,也会产生不同的结果。
发生这种情况的原因是,对于右边的图片,在 Inksape 中添加文本时,默认字体大小设置为 30 ,而我将其更改为 12后创建文本框。因此,文本框的字体大小设置为 30,而文本的大小为 12。为了防止这种情况,应该更改 Inkscape 中的默认字体大小事先的向您的原理图中添加一些文本。