来提交你的插件吧!
有疑问?来看看呗!

插件详情

astrbot_plugin_LatexPlotter

本插件为 AstrBot 设计,旨在提供强大的 LaTeX 数学公式渲染功能。它可以将用户输入的 LaTeX 字符串渲染成高质量的图片,并支持通过逗号分隔实现多行、分步骤的公式展示。插件具有高度的可配置性,允许用户调整渲染效果,如DPI、字体大小、颜色、行间距等。

latex
渲染
版本v1.0.0
作者xunxi
Star3
更新2025/11/25

插件说明

简介

本插件为 AstrBot 设计,旨在提供强大的 LaTeX 数学公式渲染功能。它可以将用户输入的 LaTeX 字符串渲染成高质量的图片,并支持通过逗号分隔实现多行、分步骤的公式展示。插件具有高度的可配置性,允许用户调整渲染效果,如DPI、字体大小、颜色、行间距等。

主要功能

  • 手动渲染命令: 用户可以通过 /latex, /tex 或 /renderlatex 命令手动触发 LaTeX 渲染。
  • 多行公式展示: 自动将通过逗号(或其他可配置的分隔符)分隔的 LaTeX 表达式渲染成多行,模拟解题或推导过程。
  • 精确的空白裁剪: 对渲染出的每一行图片进行精确的像素级扫描,去除多余空白,确保内容紧凑。
  • 可配置的行间距: 允许用户在拼接多行图片时自定义行与行之间的垂直间距。
  • 分隔符行特殊处理: 对于仅由分隔符(如连续逗号产生的单独逗号行)组成的行,会使用极小字体和高度进行渲染,使其在视觉上几乎不占空间。
  • 高度可配置:
    • 渲染参数:DPI, 字体大小, 背景色 (支持透明), 前景色。
    • 布局参数:自动裁剪后的边距, 拼接行间距, 分隔符行最大高度。
    • 行为参数:手动命令分隔符, 自动渲染开关, 自动渲染分隔符。
  • 自动检测与渲染 (可选): 可配置开启此功能,插件将尝试自动检测消息中符合特定模式的 LaTeX 字符串并进行渲染(此功能默认关闭,因为自动检测可能消耗资源且可能误判)。
  • 临时文件管理: 渲染过程中产生的临时图片会存放在插件专属的临时目录中,并在插件终止时尝试清理。

安装

  1. 获取插件:

    • 如果插件已发布到 AstrBot 插件市场,您可以直接从市场安装。
    • 如果从仓库获取,请将插件目录(例如 LatexPlotter)放置到您的 AstrBot 安装目录下的 data/plugins/ 文件夹中。
  2. 依赖项:
    本插件依赖以下 Python 库:

    • matplotlib
    • Pillow
      AstrBot 在加载插件时通常会自动检测并尝试安装 requirements.txt 文件中列出的依赖。如果自动安装失败,您可能需要在 AstrBot 的 Python 环境中手动运行:
    pip install matplotlib Pillow
    

    请确保插件根目录下包含 requirements.txt 文件,内容如下:

    matplotlib
    Pillow
    
  3. 配置文件:

    • 插件支持通过 _conf_schema.json 文件进行详细配置。将此文件放置在插件的根目录下。
    • 插件还应包含一个 metadata.yaml 文件,用于描述插件的元数据。
  4. 重载/重启 AstrBot:

    • 安装或更新插件后,请在 AstrBot 的 WebUI 中找到您的插件,点击“管理”,然后点击“重载插件”,或者直接重启 AstrBot 服务。

使用方法

1. 手动渲染命令

您可以通过以下命令触发 LaTeX 渲染:

  • /latex <您的LaTeX代码>
  • /tex <您的LaTeX代码>
  • /renderlatex <您的LaTeX代码> (如果配置了此别名)

示例:

  • 渲染单行公式:
    /latex E = mc^2
  • 渲染多步骤公式 (默认使用逗号 , 作为步骤分隔符):
    /tex \int_0^\pi \sin(x) dx = [-\cos(x)]_0^\pi, = (-\cos(\pi)) - (-\cos(0)), = (-(-1)) - (-1), = 1+1=2
    插件会将上述内容按逗号分割,渲染成多行图片。

2. 自动检测与渲染 (如果启用)

如果通过插件配置开启了 enable_auto_render 选项,插件会监听非命令消息。当消息内容符合预定义的 LaTeX 模式时(例如包含 $...$ 或 $$...$$,或者是由逗号分隔的多个等式结构),插件会自动尝试渲染该部分内容。

注意: 自动检测功能可能不够完美,对于非常复杂的或非标准的 LaTeX 写法可能会有误判或漏判。

配置选项

您可以在 AstrBot 的插件管理界面修改本插件的配置。以下是主要的配置项及其说明(详细定义请参考插件目录下的 _conf_schema.json 文件):

  • dpi: (整数, 默认: 300) 渲染图片的DPI。
  • fontsize: (整数, 默认: 18) LaTeX文本的默认字体大小。
  • bgcolor: (字符串, 默认: "white") 图片背景色。可设为 'none' 实现透明背景。
  • fgcolor: (字符串, 默认: "black") LaTeX文本颜色。
  • max_delimiter_height: (整数, 默认: 2) 仅含分隔符的行渲染后的最大高度(像素)。
  • autocrop_padding: (整数, 默认: 0) 自动裁剪后在内容周围添加的额外边距(像素)。
  • stitch_line_spacing: (整数, 默认: 5) 拼接多行图片时,在每行之间添加的垂直间距(像素)。设置为0则紧密相连。
  • manual_command_delimiter: (字符串, 默认: ",") 手动命令中用于分割LaTeX步骤的分隔符。
  • enable_auto_render: (布尔值, 默认: false) 是否启用自动检测和渲染。
  • auto_render_delimiter: (字符串, 默认: ",") 自动渲染时用于分割步骤的分隔符。

依赖的核心渲染脚本

本插件的核心渲染逻辑由同目录下的 latex_renderer.py 脚本提供。该脚本负责实际的LaTeX字符串解析、单行渲染、图像裁剪和最终拼接。

故障排除

  • 渲染失败或图片不正确:
    • 检查 AstrBot 的日志,特别是本插件(LatexPlotter)相关的 INFO 和 ERROR 日志,可能会有具体的错误信息。
    • 确认输入的 LaTeX 语法是否标准,以及是否为 Matplotlib 的 mathtext 引擎所支持。避免使用过于复杂的宏包或命令。
    • 检查插件配置是否正确,特别是颜色、字体大小等参数。
  • 插件未加载或命令无响应:
    • 确保插件目录名、main.py 中的 PLUGIN_NAME 常量以及 metadata.yaml 中的 name 字段三者完全一致。
    • 检查 requirements.txt 中的依赖是否已成功安装到 AstrBot 的 Python 环境中。
    • 尝试在 AstrBot 后台重载插件。

贡献

欢迎通过提交 Issue 或 Pull Request 来改进此插件!

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community