Нежелательные переносы слов после встроенных формул mathjax - PullRequest
0 голосов
/ 01 июня 2018

Я использую 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$$.

... будет отображаться так:

enter image description here

Что выглядит ужасно.

Есть ли способ предотвратить это?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Нет встроенного способа обойти это ни в MathJax, ни в любом процессоре уценки (о котором я знаю).

Два подхода к этому:

  1. переместите пунктуацию в уравнении
  2. и добавьте эвристику постобработки где-нибудь в вашей цепочке инструментов, которая обернет уравнения, окруженные непробельными символами, в элемент, стиль которого включает white-space: nowrap;;это обеспечит отсутствие разрывов внутри.
0 голосов
/ 01 июня 2018

Использование \(...\) разделителей для встроенной математики вместо $$...$$ и завершение целого (с пунктуацией и без пробела) в тег 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>

Редактировать: фрагмент, которыйиллюстрирует разницу между этими двумя вариантами (но, опять же, это будет зависеть от вашей конфигурации)

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

<span>\(1
\frac{63}{64} \approx 1.98\)..............................................................</span>
<br>(which works with no white-space:nowrap)
<span style="white-space:nowrap;">$$1
\frac{63}{64} \approx 1.98$$.............................................................</span>
<br>(which doesn't work with white-space:nowrap)
...