V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
matsuz
V2EX  ›  TeX

写了个 tex 公式转 image 的工具

  •  
  •   matsuz · 2017-08-14 10:42:36 +08:00 · 8995 次点击
    这是一个创建于 2687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://tools.zengxs.com

    mathjax 在客户端渲染感觉效果并不好,于是自己写了一个,支持 pngsvg

    第 1 条附言  ·  2017-08-14 14:32:35 +08:00
    中文问题挺难搞的,放弃了。
    如果需要中文还是去用 mathjax 吧。。。
    第 2 条附言  ·  2017-08-15 10:14:34 +08:00
    使用 \mbox{} 可以渲染非 ASCII 字符
    现在服务器使用正楷体渲染中文

    当然了,尽量减少非 ASCII 字符的使用为妙
    13 条回复    2017-08-16 14:24:38 +08:00
    PeterD
        1
    PeterD  
       2017-08-14 11:19:46 +08:00
    这个好像不支持中文~

    我觉得 mathjax, texlive 渲染效果是很好的
    matsuz
        2
    matsuz  
    OP
       2017-08-14 11:22:01 +08:00
    @PeterD 呃~没考虑到中文的情况。。我再改改吧。
    不过话说公式中一般不会出现中文吧
    matsuz
        3
    matsuz  
    OP
       2017-08-14 12:18:38 +08:00
    我把后台的 tex 模板改成了这样,但是似乎还是无法在公式中使用中文,不过出现中文暂时不会报错了,但是结果不对。可能是字体的问题?

    \documentclass{article}
    \usepackage[utf8]{inputenc}

    \usepackage{CJKutf8}
    \usepackage{amsmath}
    \usepackage{amssymb}
    \usepackage{color}
    \usepackage{amsfonts}
    \usepackage{pst-plot}

    \begin{document}
    \pagestyle{empty}

    \begin{CJK}{UTF8}{gkai}
    \Large
    \begin{displaymath}
    $$
    \end{displaymath}
    \end{CJK}
    \end{document}
    manifold
        4
    manifold  
       2017-08-14 16:02:35 +08:00
    tex -> dvi -> png
    matsuz
        5
    matsuz  
    OP
       2017-08-14 16:16:26 +08:00
    @manifold 一开始确实就是这样处理的,公式发到服务器后,程序会自动把公式放到 tex 模板里,先用 texlive 转换成 dvi,然后 dvipng/dvisvgm 转换成 png/svg。

    不过感觉这样撸出来的图片效果不怎么好,现在改用 mathjax-node 在后台渲染了。

    但是这两种方式都不能正确处理非 ascii 字符。
    ipwx
        6
    ipwx  
       2017-08-14 17:32:33 +08:00
    @matsuz 你需要用 xelatex 处理中文。
    matsuz
        7
    matsuz  
    OP
       2017-08-14 22:21:49 +08:00
    @ipwx xelatex 处理中文正文没问题,但是我用来处理数学公式里的中文也会遇到问题
    我对 latex 这一套还是太陌生了。
    natforum
        8
    natforum  
       2017-08-14 23:26:33 +08:00
    1L666 中文公式
    ipwx
        9
    ipwx  
       2017-08-15 09:29:19 +08:00
    @matsuz 那大概是因为数学公式里面的 font-family 和正文是不一样的。我没试过公式用中文,你要不查一查这方面的文档?
    matsuz
        10
    matsuz  
    OP
       2017-08-15 09:35:44 +08:00
    @ipwx 我把非 ASCII 字符放到 \mbox{} 里面就正常了,不过这个还要对公式预处理一下
    我再考虑考虑怎么改吧
    matsuz
        11
    matsuz  
    OP
       2017-08-15 09:38:46 +08:00
    或者让用户自己写 \mbox{} ?
    ipwx
        12
    ipwx  
       2017-08-15 09:45:51 +08:00
    @matsuz 让用户自己写吧。。。我是想不出来为啥公式要写中文。
    blueset
        13
    blueset  
       2017-08-16 14:24:38 +08:00 via Android
    顺便介绍一个用了好几年的 https://www.codecogs.com/latex/eqneditor.php
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2886 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:19 · PVG 22:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.