Markdown 内联mathjax公式后不需要的分词

Markdown 内联mathjax公式后不需要的分词,markdown,mathjax,Markdown,Mathjax,我使用Mathjax将公式嵌入到Jekyll站点中,使用Kramdown作为我的渲染器 它工作得很好,除了隐式分词总是在内联公式之后插入,这意味着换行可以在公式和标点符号之间插入分词。这导致了这样的事情: Where this fell down was that my representation was very limited as to what numbers it can represent. The _smallest_ number possible was the intege

我使用Mathjax将公式嵌入到Jekyll站点中,使用Kramdown作为我的渲染器

它工作得很好,除了隐式分词总是在内联公式之后插入,这意味着换行可以在公式和标点符号之间插入分词。这导致了这样的事情:

Where this fell down was that my representation was very limited as to what
numbers it can represent. The _smallest_ number possible was the integer `1`,
which represented $$\frac{1}{64} \approx 0.016$$; the _largest_ number was
the integer `127` (the top bit is used for the sign), which represented $$1
\frac{63}{64} \approx 1.98$$.
…被呈现为:

看起来很糟糕

有什么方法可以防止这种情况发生吗?

使用
\(…\)
分隔符来进行在线数学运算,而不是
$$…$$
,并将整个(带动作且没有空格)包装在span标记中对我来说很有用

Where this fell down was that my representation was very limited as to what
numbers it can represent. The _smallest_ number possible was the integer `1`,
which represented <span>\(\frac{1}{64} \approx 0.016\);</span> the _largest_ number was
the integer `127` (the top bit is used for the sign), which represented <span>\(1
\frac{63}{64} \approx 1.98\)..............</span>
失败的地方在于我的陈述在什么方面非常有限
它所能代表的数字。可能的最小数字是整数“1”,
代表\(\frac{1}{64}\约0.016\);最大的数字是
整数“127”(最上面的位用于符号),表示\(1)
\分形{63}{64}\约1.98\)。。。。。。。。。。。。。。
编辑: 这是一个片段,说明了这两个选项之间可能存在的差异(但同样,这取决于您的配置)

\(1
\分形{63}{64}\约1.98\)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

(不带空白:nowrap) $$1 \分形{63}{64}\约1.98$$。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

(这不适用于空白:nowrap)
在MathJax或任何降价处理器(我知道)中都没有内置的解决方法

实现这一点的两种方法:

  • 将标点符号移到方程式内
  • 在工具链中的某个地方添加一个后处理启发式,将由非空白包围的方程封装在一个元素中,该元素的样式包括
    空白:nowrap;这将确保内部不会出现中断

  • 从截图来看,这可能不是问题所在。OP可能正在使用一个标记解析器,该解析器对内联和显示都使用
    $
    (例如kramdown就是这样做的)。这两个选项都是mathjax()的分隔符,因此由mathjax解释,根据您的配置,它不会给出相同的结果。但是在不知道OP的配置的情况下,您的是对的,这只是guesswork@PeterKrautzberger是的,是克拉姆敦。我确实试着这么说,但失败了(提交时的拼写错误已修复)。@PeterKrautzberger抱歉,我没意识到我是在亲自与上帝交谈!;)@Scraappy您当然正确,
    $$
    是block的默认值(而且@dpvc是真正的上帝)。正是kramdown(以及此后的其他预处理器)做出了这一不同寻常的选择;有没有关于这种东西是否存在的指针?恐怕我不知道一个通用的实现。您可以在kramdown运行后或MathJax运行后执行此操作,这取决于您发现什么更容易。我隐约记得mathjax邮件列表上出现的一个例子;客户端在DOM操作中总是有点繁重,所以我只知道在呈现服务器端时会这样做的人。当我有时间的时候,我可能会尝试制作一个简单的例子。这里有一个快速入门的方法:。下一步是检查前面的同级(例如,前面的左括号)。还可以改进与MathJax的同步。