我一直在使用Markdown作为课堂笔记,这很棒 . 我甚至在Markdown上做了一些预处理,所以我可以做像 table 这样的事情 . 但是这个学期我正在教一个有很多数学课的课程,我很乐意将LaTeX公式与Markdown一起使用,如下所示:
The refinement relation is written $a \sqsubseteq b$, which can be
pronounced "$a$ approximates $b$" or "$b$ is at least as defined as $a$".
我希望能够获取LaTeX的每个片段并将其预处理成一个很好的抗锯齿PNG文件,然后我可以通过HTML <img>
标记将其包含在我的Markdown中 . 但我完全不知道如何拍摄LaTeX片段并获得一个漂亮的图像
-
有正确的边界框
-
是抗锯齿的
我所知道的是如何获得DVI,PostScript或PDF格式的完整页面 .
我确信这个问题已得到解决,但我无法猜出正确的搜索条件 . 有任何建议如何解决或在哪里寻找现有的解决方案?
EDIT :安装了mathTeX之后,我可以说代码是不灵活的,它违反了Linux文件系统层次结构标准,并且它是业余工作 - 无论是好词还是坏词 . 代码非常复杂,没有明显的错误 . 我会寻找替代品 .
此外,很明显,在底部,解决方案基于dvipng .
ONE YEAR LATER :我从来没有得到过我一直希望的无缝集成,但是我正在按照自己设计的脚本一瘸一拐 . 事实证明,使用 dvips -E
和ImageMagick的 convert
程序更容易,而不是 dvipng
. 这样做的好处是可以稍微控制缩放等内容,并且可以轻松实现透明背景 . 好奇的人可以检查this example .
我不能向任何人推荐这个解决方案 . 但我不能推荐MathTeX .
15 回答
RStudio有一个很好的免费IDE,允许Markdown和LaTeX .
我现在才想到这个讨论,所以我希望我的评论仍然有用 . 我参与了MathJax,从我如何理解你的情况来看,我认为这将是一个解决问题的好方法:你将LaTeX代码保留原样,让MathJax在查看时渲染数学 .
你有什么理由喜欢图像吗?
嘿,这可能不是最理想的解决方案,但它对我有用 . 我最终创建了一个Python-Markdown LaTeX扩展 .
https://github.com/justinvh/Markdown-LaTeX
它使用$ math $和%text%语法添加对内联数学和文本表达式的支持 . 扩展是一个预处理器,它将使用latex / dvipng为各个方程/文本生成png,然后base64编码数据以直接内联图像,而不是外部图像 .
然后将数据放入一个简单分隔的缓存文件中,该文件将表达式编码为base64表示 . 这限制了乳胶实际运行的次数 .
这是一个例子:
输出:
你可以看到它是一个冗长的输出,但这确实不是问题,因为你已经在使用Markdown了:)
您可能会发现mimeTeX很有用 .
当我找到teqhtml时,我正在寻找完全相同的东西 . 它将$和$$方程式转换为图像,并将生成的图像与周围文本垂直对齐 . 不是很多文档,但它非常简单 .
希望它能帮助一些未来的读者 .
也许mathJAX是票 . 它 Build 在jsMath上,这是一个2004年的老式JavaScript库 .
截至2015年2月5日,我转而推荐KaTeX - 来自可汗学院的最高性能的Javascript LaTeX库 .
kramdown正是你所描述的:
https://kramdown.gettalong.org/syntax.html#math-blocks
它比Markdown更可靠,定义更明确 .
可以使用Lunamark代码解析Lua中的Markdown(参见其Github repo),这意味着Markdown可以直接由Luatex中的宏解析,并支持转换为Pandoc支持的许多格式(即,该库非常适合于在
lualatex
,context
,Metafun,Plain Luatex和texlua
脚本中使用) .该项目由Pandoc的作者John MacFarlane开始,该工具的发展非常接近Pandoc并且具有相似(即优秀)的质量 .
Khaled Hosny编写了一个Context模块,提供了方便的宏支持 . Michal's answer to the Is there any package with Markdown support? question为代码提供了对Latex的类似支持 .
是的,但你'll have to hack it a little yourself. I'已经编写了一个过滤器,用适当的图像标签替换乳胶标签
$\some\inline\latex$
或$$\some\equation$$
到mimetex.cgi脚本 . 全程耗时5分钟 .警告:非常难看......
当然,你必须自己为.block和.inline图像定义合适的css ...
将以下代码添加到Markdown文件的顶部以获得MathJax渲染支持
然后
$ x ^ 2 $
或$$ x ^ 2 $$
将按预期呈现:-)如果您不想使用在线分发,则可以随时安装本地版本的MathJax,但您可能需要通过本地Web服务器来托管它 .
UPDATE :这些我只使用pandoc而不是规范降价,但上述内容仍然有用 .
很抱歉找到一个非常老的线程,但我已经使用了jemdoc几年,它真的很棒 .
你试过Pandoc吗?
我会用反问题回答你的问题......
您如何看待Org-mode?它不像Markdown那样纯净,但它与Markdown一样,我发现它很容易使用,它允许嵌入Latex . 参看http://www.gnu.org/software/emacs/manual/html_node/org/Embedded-LaTeX.html
Postscript
如果你没有看过org-mode,它有一个强大的力量作为Markdown的通用“自然标记语言”,即它对表格的处理 . 来源:
代表你认为它会...
而Latex则使用tex-mode的preview-latex进行渲染 .
你用的是什么语言?
如果你可以使用ruby,那么maruku可以配置为使用各种latex-> MathML转换器处理数学 . Instiki使用这个 . 也可以扩展PHPMarkdown以使用itex2MML来转换数学 . 基本上,您在适当的位置在Markdown引擎中插入额外的步骤 .
所以使用ruby和PHP,就完成了 . 我想这些解决方案也可以适应其他语言 - 我已经获得了itex2MML扩展来生成perl绑定 .
你应该看看multimarkdown http://fletcherpenney.net/multimarkdown/
它支持元数据( Headers ,关键字,日期,作者等),表格,asciimath,mathml,我敢肯定你可以在那里粘贴乳胶数学代码 . 它基本上是降价的扩展,以添加所有这些其他非常有用的功能 . 它使用XSLT,因此您可以轻松地制作自己的LaTeX样式,并直接进行转换 . 我一直都在使用它,我非常喜欢它 .
我希望降价只会包含多标记 . 这会很不错 .
Edit :Multimarkdown将生成html,latex和其他一些格式 . html可以附带您选择的样式表 . 如果我没记错的话,它也将转换为MathML,显示在Firefox和Safari / Chrome中 .