代码之家  ›  专栏  ›  技术社区  ›  Norman Ramsey

如何将乳胶与降价混合[关闭]

  •  156
  • Norman Ramsey  · 技术社区  · 15 年前

    我一直在用降价来做课堂笔记,这很好。我甚至对降价做了一些预处理,这样我就可以做表格之类的事情了。但这学期我在教一门数学课,我希望能把乳胶公式和降价结合起来,比如:

    The refinement relation is written $a \sqsubseteq b$, which can be 
    pronounced "$a$ approximates $b$" or "$b$ is at least as defined as $a$".
    

    我希望能够将乳胶的每个片段预处理成一个漂亮的抗锯齿PNG文件,然后通过HTML将其包含在我的标记中 <img> 标签。但我完全不知道如何拍摄一段乳胶,然后得到一张漂亮的照片

    • 具有正确的边界框
    • 是抗锯齿的

    我确信这个问题已经解决了,但是我还没有猜到正确的搜索词。有什么建议可以解决这个问题,或者在哪里寻找现有的解决方案?


    :安装了mathTeX之后,我可以说该代码是不灵活的,它违反了Linux文件系统层次结构标准,而且无论从这个词的好坏意义上讲,它都是业余工作。代码非常复杂,没有明显的错误。我将寻找替代品。

    此外,很明显,在底部,解决方案是基于 dvipng


    一年后 当前位置我从来没有得到我一直希望的无缝集成,但我正在自己设计的脚本上蹒跚前行。结果是 dvipng 它更容易使用 dvips -E convert 好奇的人可以检查 this example .

    我不能向任何人推荐这个解决方案。但我也不能推荐MathTeX。

    15 回复  |  直到 12 年前
        1
  •  82
  •   tnotstar    4 年前

    你试过吗 Pandoc ?

    虽然文档变得有点复杂, 潘多克 支持 乳胶模板 十年了。

    像下面这样的文档可以用 :

    ---
    title: Just say hello!
    author: My Friend
    header-includes: |
        \usepackage{tikz,pgfplots}
        \usepackage{fancyhdr}
        \pagestyle{fancy}
        \fancyhead[CO,CE]{This is fancy}
        \fancyfoot[CO,CE]{So is this}
        \fancyfoot[LE,RO]{\thepage}
    abstract: This is a pandoc test with Markdown + inline LaTeX
    ---
    
    Just say hello!
    ===============
    
    This could be a good example or inlined \LaTeX:
    
    \begin{tikzpicture}
    \begin{axis}
    \addplot[color=red]{exp(x)};
    \end{axis}
    \end{tikzpicture}
    %Here ends the furst plot
    \hskip 5pt
    %Here begins the 3d plot
    \begin{tikzpicture}
    \begin{axis}
    \addplot3[
        surf,
    ]
    {exp(-x^2-y^2)*x};
    \end{axis}
    \end{tikzpicture}
    
    And now, just a few words to terminate:
    
    > Goodbye folks!
    

    可以使用以下命令将其转换为LaTeX: pandoc -s -i Hello.md -o Hello.tex

    以下是转换后的图像 Hello.md Hello.pdf 文件使用 MiKTeX 使用以下命令作为LaTeX处理器: pandoc -s -i Hello.md -o Hello.pdf

    enter image description here

    最后,还有一些开源软件 乳胶模板 像这个: https://github.com/Wandmalfarbe/pandoc-latex-template ,可用于更好的格式设置。

    和往常一样,如果读者没有这里介绍的那么琐碎的用例,那么他应该深入挖掘。

        2
  •  42
  •   duffymo    10 年前

    也许 mathJAX jsMath ,一个2004年的老式JavaScript库。

    从2015年2月5日起,我将转而推荐 KaTeX -Khan Academy提供的性能最好的Javascript LaTeX库。

        3
  •  31
  •   Adwin1033 fommil    6 年前

    <style TYPE="text/css">
    code.has-jax {font: inherit; font-size: 100%; background: inherit; border: inherit;}
    </style>
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [['$','$'], ['\\(','\\)']],
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'] // removed 'code' entry
        }
    });
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i = 0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
    </script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_HTML-full"></script>
    

    然后,“$x^2$”或“$$x^2$$”将按预期呈现:-)

    当前位置这些天我只使用 pandoc 而不是规范的降价,但上面的内容仍然有用。

        4
  •  12
  •   Charles Stewart    15 年前

    我会用反问题来回答你的问题。。。

    http://www.gnu.org/software/emacs/manual/html_node/org/Embedded-LaTeX.html

    后记

    如果您还没有看过org模式,它作为一种通用的“自然标记语言”比Markdown有一个很大的优势,即它对表的处理。资料来源:

    | 1 | 0 | 0 |
    | -1 | 1 | 0 |
    | -1 | -1 | 1 |
    

    代表你认为会发生的事情。。。

    使用tex模式的预览乳胶渲染乳胶。

        5
  •  8
  •   Mica    15 年前

    http://fletcherpenney.net/multimarkdown/

    我希望降价能包含多重降价。那就太好了。

    :多重标记将生成html、latex和其他一些格式。html可以随附您选择的样式表。如果我没记错的话,它也会转换成MathML,显示在Firefox和Safari/Chrome中。

        6
  •  6
  •   rsacc    12 年前

    RStudio 有一个很好的免费IDE,允许降价和乳胶。

        7
  •  6
  •   matt    7 年前

    克拉姆敦正是你所描述的:

    https://kramdown.gettalong.org/syntax.html#math-blocks

    而且它比降价更可靠,定义更明确。

        8
  •  5
  •   Community CDub    8 年前

    你可能会发现 mimeTeX 有用。

        9
  •  3
  •   Justin Van Horne    14 年前

    https://github.com/justinvh/Markdown-LaTeX

    它使用$math$和%text%语法添加了对内联数学和文本表达式的支持。该扩展是一个预处理器,它将使用latex/dvipng为各个方程/文本生成PNG,然后对数据进行base64编码以直接内联图像,而不是使用外部图像。

    以下是一个例子:

    %Hello, world!% This is regular text, but this: $y = mx + b$ is not.
    

    $ markdown -x latex test.markdown
    <p><img class='latex-inline math-false' alt='Hello, world!' id='Helloworld' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAAAQBAMAAABpWwV8AAAAMFBMVEX///8iIiK6urpUVFTu7u6YmJgQEBDc3NxERESqqqqIiIgyMjJ2dnZmZmbMzMwAAAAbX03YAAAAAXRSTlMAQObYZgAAAVpJREFUKM9jYICDOgb2BwzYAVji8AQg8fb/PZ79u4AMvv0Mrz/gUA6W8F7AmcLAsJuBYT7Y1PcMfLiUgyWYF/B8Z2DYAVReABKrZ2DHpZwdopzrA0nKOeHKj66CKOcKPQJWwJo2NVFhfwCQyymhYwCUYD0avIApgYFh2927/QUcE3gDwMpvMhRCDJzNMIPhKZg7UW8DUOIMg9sCPgGo6e8ZODeAlAP9xLEArNy/IIwhAMx9D3IM+3cgi70BqnxZaNQFkHJWAQbeBrByjgURExaAuc9AyjnB5hjAlEO9ygVXzrplpskEMPchQvkBmGMcGApgjjkAVs7yhyWVAcwFK2f/AlJeAI0m5gMsEK+aMhQ6aDuA1DcDIZirBg7IOwxlB5g2QBJBF8OZVUz95hqfC3hOXWGYrwBSHskwk4EByGXab8QAlOBaGizFKYAtUlgUGEgBTCSpZnDCLQUA+y6MXeYnPDgAAAAASUVORK5CYII='> This is regular text, but this: <img class='latex-inline math-true' alt='y = mx + b' id='ymxb' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAAAOBAMAAABOTlYkAAAAMFBMVEX///9ERETu7u4yMjK6urp2dnZUVFSIiIjMzMwQEBDc3NwiIiJmZmaYmJiqqqoAAADS00rKAAAAAXRSTlMAQObYZgAAAOtJREFUKM9jYCAACsCk4wYGgiABTLInEKuS+QGxKvkVGBj47jBwI8tcffI84e45BoZ7GVcLECo9751iWLeSoRPITBQEggMMDBy9sxj2MDgz8DIE8yCpPMxwjWFBGUMMkpFcbAEMvxjKGLgYxIE8NkHBiYIyQMY+hmoGhi0Mdsi2czawbGCQBTJ+ILvzE0MaA9MHIIWwnWE9A+sBpk8LGDgmMCnAVXJNYPgCJHhRQvUiA/cDXoECZx4DXoSZTBtYgaaEPw5AVnkOGBRc5xTcbsReQrL9+nWwyxbgC88DcJZ+QygDcYD1+QPiFAIAtLA8KPZOGFEAAAAASUVORK5CYII='> is not.</p>
    

    正如您所看到的,这是一个冗长的输出,但这并不是一个问题,因为您已经在使用Markdown:)

        10
  •  2
  •   brice    15 年前

    是的,但你得自己动手处理一下。我已经编写了一个过滤器来替换latex标签 $\some\inline\latex$ $$\some\equation$$ mimetex.cgi 剧本花了整整5分钟。

    #!/usr/bin/env python
    import sys, markdown,re
    
    MIMETEX_LOC="http://some.server.com/cgi-bin/mimetex.cgi"
    
    def sanitizeLatex(text):
        return re.sub(r"\\",r"%5C", text)
    
    def wrapLatexBlock(text):
        return '<img alt="equation" class="block" src="%s?%s"></img>'%(MIMETEX_LOC,text)
    
    def wrapLatexInline(text):
        return '<img alt="equation" class="inline" src="%s?%s"></img>'%(MIMETEX_LOC,text)
    
    def prepLatexBlock(matchobj):
        return wrapLatexBlock(sanitizeLatex(matchobj.group()[2:-2]))
    
    def prepLatexInline(matchobj):
        return wrapLatexInline(sanitizeLatex(matchobj.group()[1:-1]))
    
    
    if __name__ == "__main__":
        # initialise markdown
        md=markdown.Markdown()
        raw_md=open(sys.argv[1],"r").read()
    
        ##
        # deal with embedded latex
        ##
        raw_md=re.sub(r'\$\$(.*?)\$\$',prepLatexBlock, raw_md)
        raw_md=re.sub(r'\$(.*?)\$',prepLatexInline, raw_md)
    
        ##
        # once latex is parsed, convert md to html
        ##
        main_html=md.convert(raw_md)
    
        # hey presto!
        print(main_html)
    

    当然,您必须自己为.block和.inline图像定义合适的css。。。

        11
  •  2
  •   Hylke Koers    14 年前

    你为什么喜欢图片?

        12
  •  1
  •   Andrew Stacey    15 年前

    你用什么语言?

    如果你能使用ruby,那么 maruku 可配置为使用各种乳胶处理数学->MathML转换器。 Instiki 用这个。还可以扩展PHPMarkdown以使用itex2MML转换数学。基本上,您可以在降价引擎的适当位置插入额外的步骤。

        13
  •  1
  •   John    14 年前

    teqhtml . 它将$和$$方程转换为图像,并将结果图像与周围文本垂直对齐。不是很多医生,但很简单。

    希望对未来的读者有所帮助。

        14
  •  1
  •   traviscj    13 年前

    很抱歉唤醒了一个非常旧的线程,但我一直在使用 jemdoc 几年了,真的很棒。

        15
  •  1
  •   Community CDub    8 年前

    可以使用Lunamark代码解析Lua中的Markdown(参见其 Github repo ),这意味着标记可以由Luatex中的宏直接解析,并支持转换为Pandoc支持的许多格式(即,该库非常适合在 lualatex , context texlua

    该项目是由 John MacFarlane

    Khaled Hosny 编写了一个上下文模块,提供了方便的宏支持。 Michal's answer to the Is there any package with Markdown support? question 给出了为Latex提供类似支持的代码。