有没有办法可以直接在 Inkscape 文本框中输入 LaTeX 代码?

有没有办法可以直接在 Inkscape 文本框中输入 LaTeX 代码?

我用Inkscape在 Windows 7 平台上。在 Inkscape 中输入积分和其他数学符号的原则似乎是最好的做法,将它们写在 LaTeX 编译器中,然后在 Adob​​e PDF 中剪切它们,然后将其作为图形粘贴到 Inkscape 中。

似乎你在 Inkscape 中制作这样的图片的方法:

积分图

有没有办法可以直接在 Inkscape 文本框中输入 LaTeX 代码?

我知道这个问题有些不切实际,但尝试一下也无妨。

答案1

这是 Inkscape 的答案(总结了评论和一些附加信息)。有两种方法可以包含 LaTeX 输入。

  1. 使用PDF+LaTeX 导出内置于 Inkscape

    优势: 内置,文本保持可编辑状态

    坏处: Tex 代码可以输入但无法渲染,因此您可能需要稍后在文档中调整 x、y 定位值 --> 很烦人。此外,不支持换行符,您需要稍后手动添加 parbox 或 minipage 等

  2. 获取textext插入对于Inkscape

    优势: 直接在 Inkscape 文档中呈现代码,包括换行符等。

    坏处: 文本变成 SVG 图片,无法在 Inkscape 之外编辑。当然在 Inkscape 中没有问题(可以通过选择对象并使用扩展->文本文本菜单项来编辑对象)。这意味着在导出并将 PDF 包含在文档中后,缩放图形会导致文本也缩放 --> 可能产生不良影响

    安装详细信息textext

    textext从以下位置获取 Inkscape 插件这里

    对于我来说,安装有点棘手(Inkscape 0.48)。安装说明可以阅读这里

    首先,我将扩展文件放在~/.config/inkscape/extensions文件夹中。

    然后我通过 Ubuntu 包管理器安装了 Pstoedit

    之后,我收到了一些 Python 模块的错误。这篇博文帮我解决了这个问题: 博客文章

    之后,我可以从 Inkscape 菜单栏中选择 Extensions->Textext。在弹出的框中输入 LaTeX 代码,就像在普通文档中一样。您可以指定前言文件。我会在您的文档中包含任何影响字体的包,因为结果是 TeX 输入的 SVG 图像,这意味着如果您决定在某个时候更改 LaTeX 前言,字体不会改变

答案2

这不是 Inkscape 的答案!


您可以使用Ipe可扩展绘图编辑器为此。在掌握 TikZ 之前,我曾广泛使用它,但仍然用它来快速准备图像。它支持许多功能(线型、颜色、变换、坐标、对象捕捉等)。此外,如果您了解 Lua,那么您可以直接侵入它并创建自己的内容(我不了解)。

以下是尽可能简单的操作方法。首先,绘制形状、多边形等(并选择输入下图中选择的 LaTeX 公式)。

在此处输入图片描述

然后,单击“确定”后,从菜单中选择“运行 LaTeX”或“ Ctrl+” L,然后它会找到您的 LaTeX 发行版并编译该部分,如下图所示。您不必为每个公式都执行此操作,您可以将它们保留为源,然后一次性编译所有内容。

在此处输入图片描述

完成图片后,您可以将其保存为 XML、PDF 或 EPS 格式。两分钟后,我得到了这个

在此处输入图片描述

答案3

更新 02-05-2024

我们又来了!如果你使用的是 Windows,你可能很难找到此选项。我编写了一个小型 Powershell 脚本这里检查你的环境变量。然后检查Extensions > Texts > Formula (pdflatex)...

更新日期 04-05-2022

好消息是,内置功能又回来了Extensions > Render > Mathematics > LaTeX (pdflatex)...。只需确保您已安装 LaTeX 发行版(最好是TinyTeX)、Ghostscript 和 pstoedit (pdf2svg),并且您已按照说明将它们全部添加到环境变量路径中这里


旧答案

总结从安装 TexText这里

不幸的是,本页上之前的答案大多不相关或过时。问题是关于将 LaTeX 数学放入 Inkscape 中,而不是将矢量图形放入 Latex 中!更不用说 OP 的问题是关于 Windows,而不是 Linux。以下是一些选项:

  1. 在某些版本的 Inkscape 中,如下所述Inkscape wiki 中,曾经有“内置支持包含 LaTeX 公式”的功能。您可以直接访问 Extensions->Render->LaTeX ...并输入公式。不知为何,在我解决这个问题后,这个功能就消失了。这里!此功能有望在以下版本中恢复(这条推文

  2. TexText 插件一直是 Inkscape 中用于 LaTeX 渲染的实际工具。然而,由于缺乏适当的支持,它已被分叉多次:

  1. LaTeXText 上GitHub官方网站

  2. 写入TeX

  3. Latex/MikTeX(不复存在!)

  4. 如果你真的很绝望,你可以使用我提到的任何 LaTeX 矢量图形应用程序这里例如,生成 SVG 并将其导入 Inkscape。

答案4

LaTeXText是基于textext前面答案中提到的过时扩展的 Inkscape 扩展。这与 Linux 和 Mac 上的 Inkscape 版本 >= 0.91 以及 Windows 上的版本 >=0.92.2 相关。

安装说明在 Github 页面上,相当详细。我只会演示:Github 页面上有安装说明及其.gif工作原理。

该扩展(安装后)位于 中Extensions -> Render -> Text with LaTeX (GTK3)

例如:应用扩展后的输出:

在此处输入图片描述

LaTeX 渲染输出在单独的图层(名为)中生成Rendered Latex,而原始 LaTeX 代码则保留在原始图层中(Layer 1在我的情况下)。如果您激活“图层”窗口(Inkscape 中的快捷方式),则可以看到这一点Ctrl+Shift+L

只需在最终输出中隐藏原始图层(单击窗口中的眼睛图标Layers),然后您将得到所需的渲染输出。

层

相关内容