从安得烈的杰作:HTTPS://GITHUBCOM/AJTULLCH/LATEX2MARKDOWN,AMS胶乳兼容转换器,将胶乳的子集映射到标记/ MaTjax。

latex2markdown-bbsmp的Python项目详细描述


AMS-LaTeX兼容 从(a子集)LaTeXMathJaX兼容 Markdown

任何使用ams乳胶包编写乳胶文档的人 (amsmathamsthmamssymb)并希望转换这些 标记要与mathjax一起使用的格式的文档。这些标记文件 然后可以很容易地添加到任何网络平台-jekyll博客,wordpress, 基本的HTML站点等。

简而言之,如果您试图使用mathjax查看您的乳胶文档 在网上,你可能会对此感兴趣。

演示

退房 tullo.ch/projects/LaTeX2Markdown 现场演示转换器。

开始

安装

该项目在pypi上提供,因此获得它就像使用

pip install latex2markdown-bbsmp

easy_install latex2markdown-bbsmp

使用量

该实用程序可以从命令行调用,也可以从python中调用 脚本

对于命令行,将乳胶文件转换为标记的语法 文件如下:

python -m latex2markdown-bbsmp path/to/latex/file path/to/output/markdown/file t

例如,要将乳胶文件sample.tex编译为标记文件 sample.md,呼叫

python -m latex2markdown-bbsmp sample.tex sample.md

在python脚本中使用(扩展、修改输出等) 您可以如下使用:

import latex2markdown
with open("latex_file.tex", "r") as f:
    latex_string = f.read()

l2m = latex2markdown.LaTeX2Markdown(latex_string)

markdown_string = l2m.to_markdown()

with open("markdown_file.md", "w") as f:
    f.write(markdown_string)

最后,在加载时将以下代码片段添加到html中 文件。

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        extensions: ["tex2jax.js", "AMSmath.js"],
        jax: ["input/TeX", "output/HTML-CSS"],
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\[","\]"] ],
            processEscapes: true
        },
    });
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

对于一个工作示例,请查看 tullo.ch主页 here

为什么不使用pandoc呢?

Pandoc 是一个优秀的文档转换器,用于不太复杂的乳胶文档。 实际上,我用它把这个自述文件转换成了rest版本 用于PYPI。

不幸的是,它不是用来处理使用 Amstex扩展-包括定理、引理、证明和 大量用于排版的练习环境, 讲稿和其他文件。

由于pandoc和mathjax都无法处理这些文档,我入侵了 一组正则表达式可以转换乳胶的子集 再使用一些小标记将其转换为 Mathjax敞篷车降价。

示例

例如,以下乳胶代码:

\section{Example Section}
\begin{thm}[Euclid]
    There are infinitely many primes.
\end{thm}

\begin{proof}
    Suppose that $p_1 < p_2 < \dots < p_n$ are all of the primes.
    Let $P = 1 + \prod_{i=1}^n p_i$ and let $p$ be a prime dividing $P$.

    Then $p$ can not be any of $p_i$, for otherwise $p$ would divide the
    difference $P - \left(\prod_{i=1}^n p_i \right) - 1$, which is impossible.
    So this prime $p$ is still another prime, and $p_1, p_2, \dots p_n$
    cannot be all of the primes.
\end{proof}

转换为以下降价:

###  Example Section
#### Theorem 1 (Euclid)

> There are infinitely many primes.

#### Proof

Suppose that $p_1 < p_2 < \dots < p_n$ are all of the primes.
Let $P = 1 + \prod_{i=1}^n p_i$ and let $p$ be a prime dividing $P$.

Then $p$ can not be any of $p_i$, for otherwise $p$ would divide the difference
$P - \left(\prod_{i=1}^n p_i \right) - 1$, which is impossible. So this prime
$p$ is still another prime, and $p_1, p_2, \dots p_n$ cannot be all of the primes.

支持的乳胶/阿姆斯特丹环境

  • emphtextbftexttt
  • thm
  • prop
  • lem
  • exer
  • proof
  • chapter
  • section
  • subsection
  • itemize
  • enumerate

以及mathjax-list支持的所有内容 online

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为什么Java中有三种“阻塞”线程状态,而C中只有一种?   JAVA从文本文件中找到几个单词或短语并显示出来   java更改日志。Jenkins中的xml文件,无需重新生成代码   java使用扫描器读取“干净”文本文件时,是否有任何解析?   stream从InputStream中获取字节数组,但在Java中没有已知大小?   java一旦布尔值为真,如何关闭JFrame?   java对HashMap中容量计算算法的理解   java 安卓句柄选择器状态   Java Swing编程面板标题   java我希望在启动或启动安卓 mobile时显示消息或通知。   java在一个应用程序中支持多个JFrame   java如何使用SeleniumWebDriver选择网页上的两个元素之一?   java Tomcat部署问题   java意图传递数据未成功   安卓在java中将映射定义为常量   java最佳实践Swing、数据库访问   java com。反恐委员会。wstx。exc.WstxIOException:尝试在封闭流上读取   if语句如何检查java中是否存在表达式中的下一个或最后一个值