From 558f86b1cc83133ff5ef94e50961c8c21ef73479 Mon Sep 17 00:00:00 2001 From: Ced Date: Sat, 11 Jan 2025 12:35:50 +0000 Subject: [PATCH 1/5] Workaround for Tex4ht and file called book https://github.com/hendricius/the-sourdough-framework/pull/148/commits/45e9d739f5adc5d2043a3bc62cbcfb172a38f43f --- book/book_sans_serif.tex | 4 +++- book/sourdough_book.tex | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) create mode 120000 book/sourdough_book.tex diff --git a/book/book_sans_serif.tex b/book/book_sans_serif.tex index 4174a9f7..289f15ea 100644 --- a/book/book_sans_serif.tex +++ b/book/book_sans_serif.tex @@ -1,2 +1,4 @@ \def\isaccessible{1} -\input{book.tex} +% We have to use a symlink to book.tex to prevent tex4ebook to load book.ht4 +% before loading any other package and create conflicts +\input{sourdough_book.tex} diff --git a/book/sourdough_book.tex b/book/sourdough_book.tex new file mode 120000 index 00000000..c0a4f0d6 --- /dev/null +++ b/book/sourdough_book.tex @@ -0,0 +1 @@ +book.tex \ No newline at end of file From 7aec1160e11116028dc87b353c37058d4d54d6a7 Mon Sep 17 00:00:00 2001 From: Ced Date: Fri, 3 Jan 2025 15:34:14 +0000 Subject: [PATCH 2/5] Use sans-serif fonts for TikZ figures in website Flowcharts were already sans-serif but the new one look weird with a serif font on the website => let's make it sans by default. For epub this a tough call but let's assume most people use sans there as well, it's less weird anyway to have sans-serif pictures in a serif text than the other way around. --- book/makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/book/makefile b/book/makefile index 788fa6f6..b2196da8 100644 --- a/book/makefile +++ b/book/makefile @@ -10,7 +10,7 @@ REDUCE_PIC := -resize '800x800>' \ -strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \ -set colorspace Gray -separate -evaluate-sequence Mean REDUCE_PIC_COLOR := -quality 80\% -RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg' +RSYNC := rsync -au --exclude 'book_sans_serif.epub' --exclude '*.jpg' GIT := git --no-pager SPELL_CHECK := hunspell -t -l -d en_US EPUBSIZE := `du -sb epub/low_res_book.epub | cut -f1` @@ -119,10 +119,10 @@ epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb $(EBOOK) $< copy_ebook_files: build_ebook - $(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/ + $(RSYNC) --exclude '*.png' epub_build/book_sans_serif-epub/ bw-book-epub/ copy_ebook_files_low_res: build_ebook - $(RSYNC) epub_build/book-epub/ low-res-book-epub/ + $(RSYNC) epub_build/book_sans_serif-epub/ low-res-book-epub/ # We do not convert SVG to B&W or lower res for now as they are super small # anyway @@ -219,7 +219,7 @@ build_serif_pdf: book_serif/book.pdf build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf -build_ebook: epub/book.epub +build_ebook: epub/book_sans_serif.epub build_bw_ebook: epub/bw_book.epub @@ -318,10 +318,10 @@ release_booklet: build_booklet | release # Website stuff .PHONY: html website -$(website_dir)/book.html: $(website_src) cover/cover-page.xbb - $(WEBSITE) -d $(website_dir) book.tex +$(website_dir)/book_sans_serif.html: $(website_src) cover/cover-page.xbb + $(WEBSITE) -d $(website_dir) book_sans_serif.tex -html: $(website_dir)/book.html +html: $(website_dir)/book_sans_serif.html cp $< $(website_dir)/index.html # Because packages will be installed in hard to predict places use a file as @@ -347,7 +347,7 @@ quick_booklet: $(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=booklet booklet.tex quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc... - $(EBOOK) --mode draft book.tex + $(EBOOK) --mode draft book_sans_serif.tex show_tools_version: # Show version of tools used on the build machine - $(GIT) log -1 --pretty=%B From 8ea8256e2dce0bd5c7dedb535648719927aefb7e Mon Sep 17 00:00:00 2001 From: Ced Date: Sat, 11 Jan 2025 15:29:15 +0000 Subject: [PATCH 3/5] Try to fix ruby script This is really a shoot in the dark... I have not tested it in any way. --- website/modify_build.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/modify_build.rb b/website/modify_build.rb index 29c92c11..a7aa1c37 100644 --- a/website/modify_build.rb +++ b/website/modify_build.rb @@ -79,7 +79,7 @@ def modify_file(filename) end def is_cover_page?(filename) - ["book.html", "index.html"].any? do |name| + ["book_sans_serif.html", "index.html"].any? do |name| filename.include?(name) end end From 3792dcc20a3d51bd32e98e590e5064abf9c567f6 Mon Sep 17 00:00:00 2001 From: Hendrik Kleinwaechter Date: Sun, 12 Jan 2025 12:36:27 +0100 Subject: [PATCH 4/5] Fix website build --- website/modify_build.rb | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/website/modify_build.rb b/website/modify_build.rb index a7aa1c37..41f6fab8 100644 --- a/website/modify_build.rb +++ b/website/modify_build.rb @@ -126,8 +126,8 @@ def fix_double_slashes(text) def validate_file(text) doc = build_doc(text) stylesheets = doc.css("link[rel='stylesheet']").map{|attr| attr["href"] } - has_all_styles = %w(book.css style.css).all? { |required_stylesheet| stylesheets.include?(required_stylesheet) } - raise InvalidWebsiteFormat.new("No style tag style.css found in the website") unless has_all_styles + has_all_styles = %w(book_sans_serif.css style.css).all? { |required_stylesheet| stylesheets.include?(required_stylesheet) } + raise InvalidWebsiteFormat.new("No style tag style.css or book_sans_serif.css found in the website") unless has_all_styles true end @@ -456,7 +456,7 @@ def add_meta_tags(text, filename) doc.to_html end - # Takes a name like "static_website_html/book.html" and returns "book.html" + # Takes a name like "static_website_html/book_sans_serif.html" and returns "book_sans_serif.html" def extract_file_from_path(filename) result = filename.split("/") return filename if result.length == 1 @@ -483,6 +483,7 @@ def custom_titles_per_filename(filename) index_text = "The Sourdough Framework goes beyond just recipes and provides a solid knowledge foundation, covering the science of sourdough, the basics of bread making, and advanced techniques for achieving the perfect sourdough bread at home." data = { "book.html" => index_text, + "book_sans_serif.html" => index_text, "index.html" => index_text } data[filename] @@ -526,12 +527,6 @@ def mark_menu_as_selected_if_on_page(text, filename) el["href"] == "" end - # Special case for index page - #if ["index.html", "book.html"].include?(filename) - # doc.css(".menu-items .chapterToc.home-link")[0].add_class("selected") - # return doc.to_html - #end - # Special case for the flowcharts page which is added by us to the menu. # This needs to be done for future manually added pages too if "listoflocname.html" == filename @@ -561,7 +556,7 @@ def mark_menu_as_selected_if_on_page(text, filename) def add_canonical_for_duplicates(text, filename) # Only applies to book.html which is a duplicate for index.html. The file # is still needed though for proper display. - canonical_pages = ["book.html", "index.html"] + canonical_pages = ["book_sans_serif.html", "index.html"] return text unless canonical_pages.include?(filename) doc = build_doc(text) head = doc.css("head")[0] From f01f33953bc7558a2f8ef69a08ff55bb116e79e7 Mon Sep 17 00:00:00 2001 From: Cedric Date: Sun, 12 Jan 2025 15:17:12 +0000 Subject: [PATCH 5/5] Use a sans-serif math font pgfplots uses math fonts for graphs ticks... and it looks weird when building sans serif. Not sure Fira is necessarily a great choice with open-sans but we have very little math so that should do... --- book/sourdough.sty | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/book/sourdough.sty b/book/sourdough.sty index fe2f1caf..d38a7cd1 100644 --- a/book/sourdough.sty +++ b/book/sourdough.sty @@ -52,8 +52,9 @@ \DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont} % Fonts for accessibility \ifdefined\isaccessible - \setmainfont{Open Sans}[ - Scale=MatchLowercase] + \usepackage[mathrm=sym]{unicode-math} + \setmathfont{Fira Math}[Scale=MatchLowercase] + \setmainfont{Open Sans}[Scale=MatchLowercase] \else \setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc. % TODO not available on github CI