[FIX] перечень сокращений: до тире обычный пробел, разбор пометок в подписи рисунка

Колонка аббревиатур больше не считается на глаз: обычная колонка l берёт
ширину по самой длинной аббревиатуре, тире и пробелы вокруг него ушли в
разделитель колонок. Расшифровка целиком лежит в колонке X, поэтому её
перенос по-прежнему встаёт под первым словом расшифровки.

Подпись рисунка не проходит через инлайн-рендер, и пометка ==текст== в ней
печаталась как есть. Разбор пометок вынесен в render_marked и вызывается
из обработчика рисунка.
This commit is contained in:
Arseny
2026-09-07 17:24:57 +03:00
parent fa440049e1
commit 24d3cd0728
4 changed files with 42 additions and 27 deletions
+14 -2
View File
@@ -50,6 +50,11 @@ def test_mark_splits_compound_word_into_separate_boxes() -> None:
assert "\\hlw{аппаратно}\\hlw{-}\\allowbreak \\hlw{программный}" in tex
def test_mark_in_figure_caption() -> None:
tex = render("![[images/a.png]]\n\nРисунок 1 — ==Схема== комплекса\n")
assert "\\caption{\\hlw{Схема} комплекса}" in tex
def test_mark_in_heading_reaches_the_contents() -> None:
tex = render("## ==Контейнеризация серверного приложения==\n")
assert "\\subsection{\\hlw{Контейнеризация}" in tex
@@ -497,13 +502,20 @@ def test_abbreviation_dash_is_single() -> None:
"""Шесть дефисов дают в LaTeX два длинных тире подряд вместо одного."""
tex = body(render(ABBR_MD))
assert "------" not in tex
assert "--- Software-Defined Radio" in tex
assert "SDR & Software-Defined Radio" in tex
def test_abbreviation_table_has_no_extra_column_padding() -> None:
"""Отбивка между колонками добавляется к \\linewidth и роняет строку за поле."""
tex = body(render(ABBR_MD))
assert "@{}p{\\dimexpr\\linewidth" in tex
assert "{@{}l@{\\ ---\\ }X@{}}" in tex
def test_abbreviation_column_is_as_wide_as_the_abbreviation() -> None:
"""Колонка l берёт ширину по содержимому: до тире остаётся пробел."""
tex = body(render(ABBR_MD))
assert "p{" not in tex
assert "\\begin{tabularx}{\\linewidth}" in tex
def test_cpp_uses_extended_dialect() -> None: