【问题标题】:Latex \newcommand in kramdownkramdown 中的乳胶 \newcommand
【发布时间】:2015-08-29 13:30:22
【问题描述】:

我了解 cramdown 不支持 \newcommand 类型的宏。 是否有不涉及 Pandoc 的解决方法,以便它可以在 GitHub 博客中与 Jekyll 一起使用?

这将是输入降价:

---
layout: post
---

\newcommand{\a}{\alpha}

This is a test $$\a$$.

输出应该是 Jekyll 博客,带有数学符号,例如 this

【问题讨论】:

  • 你能解释一下吗。您的输入和预期输出是什么?
  • 我想写一篇文章,由 Jekyll 解析,其中包含带有乳胶的数学方程,使用一些 \newcommands。因此输入是一个降价(kramdown)页面,输出是一个 Jekyll 网站。
  • @JohnRos 你不能只使用mathjax.org 吗?
  • 对不起,我很笨,我仍然没有看到你输入和想要的输出。
  • @StevenPenny:最新版本的 kramdown 可以正确识别 latex,并且确实可以使用 mathjax 查看输出。然而,一个 \newcommand 被 kramdown 解析为纯文本。

标签: github latex jekyll kramdown


【解决方案1】:

这里似乎有两个问题——第一,是否可以在 kramdown 中定义类似于 LaTeX 的 \newcommand 语法的命令,第二,kramdown 是否支持数学。

关于第一个问题,kramdown 本身不支持我所知道的语法或类似的东西,and probably isn't going to in the future,所以你不能定义非数学 kramdown 命令。您需要使用一种专注于完整性而不是简单性的语言,例如 LaTeX,才能获得这样的功能。

不过,对于数学,MathJax(kramdown 使用的解析器)会解析 \newcommand:只需在第一个代码块中使用它即可。比如,

$$\newcommand{\a}{\alpha} \a{}/2 $$

使用预期的Computer Modern斜体希腊字母产生预期的分数,您还可以在每个后续代码块中使用\a。如果您不希望它们散布在整个文档中的随机代码块中,您还可以在文档的开头添加一个包含所有 \newcommand 定义的代码块。

关于第二个问题,我猜在这一点上很明显,kramdown 确实使用与 LaTeX 类似的符号来处理数学:

Here is a paragraph with some inline math, $$ \pi{}/2 $$, followed by
some text and a math block.

$$ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} $$

这会产生:

<p>Here is a paragraph with some inline math, <script
type="math/tex">\pi{}/2</script>, followed by some text and a math 
block.</p>

<script type="math/tex; mode=display">\int_{-\infty}^{\infty} e^{-x^2}
dx = \sqrt{\pi}</script>

如果没有在您的网站上成功呈现,请不要忘记在您的 HTML 页面的 &lt;head&gt;include the MathJax library

<script type="text/javascript"
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多