fix: Pandoc-Weg – EPUB-Links, Formeln im EPUB, portables TeX (QA3-04 bis QA3-06)
Prüfung aller 5 Beispielbücher über die Befehle der Buch-README (HTML,
EPUB, PDF mit weasyprint und xelatex):
- QA3-04: Der EPUB-Befehl der Buch-README hatte kein --mathml; im
Mathebuch blieben 1072 Formeln als TeX-Text. Jetzt 4904 als MathML.
- QA3-05: Kapitel-Startanker von epub2md_merge.py begannen mit einer
Ziffer (039-…). Pandocs EPUB-Writer löst Links darauf nicht auf (C-Buch
32, Mathebuch 20 tote Links). Jetzt kap-039-…; book.lua erkennt beide.
- QA3-06: portable_tex() passt Verlags-TeX für texmath an (\"u, \O,
@{…} und \arraycolsep in array, leeres \displaystyle vor Zellenende).
Mathebuch: 1 statt 9 nicht umsetzbare Formeln.
- Cover ohne Seitenzahl (print.css, book.lua).
Neue Tests: tests/test_pandoc.py (nur mit installiertem pandoc),
Parametertests für portable_tex. Andere Bücher byte-identisch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6fe422919f
commit
64d0cb0357
1 changed files with 157 additions and 18 deletions
|
|
@ -11,7 +11,7 @@ This filter, for HTML output:
|
|||
* builds the table of contents at the placeholder (use it INSTEAD of --toc; --toc-depth is honoured),
|
||||
* drops Pandoc's title block when the book has its own title page, or moves it to the placeholder,
|
||||
* shows the cover (first chapter with nothing but one picture) without the caption "Cover",
|
||||
* turns the chapter anchors <a id="001-…"></a> into <div class="chapter-start"> so that print.css can
|
||||
* turns the chapter anchors <a id="kap-001-…"></a> into <div class="chapter-start"> so that print.css can
|
||||
start every chapter – including cover, title page and imprint – on a new page.
|
||||
|
||||
For LaTeX (PDF route md -> html -> pdf, filter in BOTH steps, no --toc) the table of contents becomes
|
||||
|
|
@ -55,7 +55,7 @@ local function title_block(meta)
|
|||
return pandoc.RawBlock("html", table.concat(html, "\n"))
|
||||
end
|
||||
|
||||
-- Paragraph that only holds chapter start anchors (<a id="001-cover"></a>) → id of the first one.
|
||||
-- Paragraph that only holds chapter start anchors (<a id="kap-001-cover"></a>) → id of the first one.
|
||||
local function chapter_anchor(block)
|
||||
if block.t ~= "Para" and block.t ~= "Plain" then
|
||||
return nil
|
||||
|
|
@ -65,7 +65,8 @@ local function chapter_anchor(block)
|
|||
if inl.t ~= "RawInline" then
|
||||
return nil
|
||||
end
|
||||
local found = inl.text:match('^<a id="(%d%d%d%-[^"]*)">$') or inl.text:match('^<a id="(%d%d%d%-[^"]*)"></a>$')
|
||||
local found = inl.text:match('^<a id="(kap%-%d%d%d%-[^"]*)">$') or inl.text:match('^<a id="(kap%-%d%d%d%-[^"]*)"></a>$')
|
||||
or inl.text:match('^<a id="(%d%d%d%-[^"]*)">$') or inl.text:match('^<a id="(%d%d%d%-[^"]*)"></a>$') -- before 0.2.1
|
||||
if found then
|
||||
id = id or found
|
||||
elseif inl.text ~= "</a>" then
|
||||
|
|
@ -143,6 +144,7 @@ local function latex_book(doc)
|
|||
blocks:insert(pandoc.RawBlock("latex", "\\clearpage"))
|
||||
blocks:insert(block)
|
||||
elseif block.t == "Div" and block.classes:includes("cover") then
|
||||
blocks:insert(pandoc.RawBlock("latex", "\\thispagestyle{empty}")) -- no page number on the cover
|
||||
blocks:insert(block:walk({ Image = function(img) -- cover as large as the page allows
|
||||
img.attributes.width = nil
|
||||
img.attributes.height = "20cm"
|
||||
|
|
|
|||
Loading…
Reference in a new issue