From 044cfefe65ce79edfdda3b82034665422f689a24 Mon Sep 17 00:00:00 2001 From: fennecJ <58484289+fennecJ@users.noreply.github.com> Date: Mon, 2 Aug 2021 02:42:39 +0800 Subject: [PATCH] Generate HTML via make4ht (#20) This patch generates HTML files with "make4ht" in the "html" directory. Known issues with "make4ht": Running "make4ht -suf html5 -d html lkmpg.tex" will cause the following flaws: 1. The layout was unsatisfying. 2. After parsing TeX, it stoped at "\tableofcontents" with errors. 3. Several unneeded files were generated. 4. No way to specify the destination filename for HTML generation. Solutions/workaround: 1. Use customized configuration file "html.cfg" to specify the layout style. 2. Turn off the \tableofcontents section when using make4ht. However, this results in the lack of table of contents in HTML. It can be fixed by appending "\Configure{tableofcontents*}{chapter,section,subsection}" to configuration file. 3. The build system removes the temporary files. 4. Use a symbolic link "index.html" to "lkmpg.html". --- .gitignore | 12 ++++++++++++ Makefile | 8 ++++++++ html.cfg | 36 ++++++++++++++++++++++++++++++++++++ lkmpg.tex | 4 ++++ 4 files changed, 60 insertions(+) create mode 100644 html.cfg diff --git a/.gitignore b/.gitignore index 555e937..c2a2be6 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,15 @@ _minted-lkmpg *.out lkmpg.pdf *.toc + +# make4ht +*.html +*.svg +*.tmp +*.css +*.4ct +*.4tc +*.dvi +*.lg +*.idv +*.xref diff --git a/Makefile b/Makefile index d7d60a5..fd97442 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,14 @@ all: lkmpg.tex bibtex main >/dev/null || echo pdflatex -shell-escape $< 2>/dev/null >/dev/null +html: lkmpg.tex html.cfg + make4ht --shell-escape --utf8 --format html5 --config html.cfg --output-dir html lkmpg.tex + ln -sf lkmpg.html html/index.html + rm -f lkmpg.xref lkmpg.tmp lkmpg.html lkmpg.css lkmpg.4ct lkmpg.4tc lkmpg.dvi lkmpg.lg lkmpg.idv lkmpg*.svg lkmpg.log lkmpg.aux + clean: rm -f *.dvi *.aux *.log *.ps *.pdf *.out lkmpg.bbl lkmpg.blg lkmpg.lof lkmpg.toc rm -rf _minted-lkmpg + rm -rf html + +.PHONY: html diff --git a/html.cfg b/html.cfg new file mode 100644 index 0000000..8657127 --- /dev/null +++ b/html.cfg @@ -0,0 +1,36 @@ +\Preamble{xhtml} + +\Configure{tableofcontents*}{chapter,section,subsection} + +\Css{* :not(img) { + max-width: 100\%; + width: 50vw; + height: auto; + margin: 0 auto; +}} + +\Css{* { + font-size: 1vw; +}} + +\Css{.ecrm-0500 { + font-size: 70\%; + font-style: italic; + color: gray; + -webkit-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +}} + +\Css{.ecrm-0500:after { + content:" "; + white-space: pre; + -webkit-user-select: none; + -moz-user-select: none; + -o-user-select: none; + user-select: none; +}} + +\begin{document} +\EndPreamble \ No newline at end of file diff --git a/lkmpg.tex b/lkmpg.tex index 1f82a94..aa83a4c 100644 --- a/lkmpg.tex +++ b/lkmpg.tex @@ -40,7 +40,11 @@ \begin{document} \maketitle +\ifdefined\HCode +% turn off TOC +\else \tableofcontents +\fi \section{Introduction} \label{sec:introduction}