From 95a4db3fbd946dd56f46f4c8c22be3b28083d845 Mon Sep 17 00:00:00 2001 From: Andrew Neitsch Date: Sat, 30 Oct 2021 15:50:12 -0600 Subject: [PATCH] Refs #33247 -- Fixed rendering of Unicode chars and emojis in PDF docs build. --- docs/conf.py | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index f74fbad3a9..96c78672ca 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -272,13 +272,35 @@ rst_epilog = """ # -- Options for LaTeX output -------------------------------------------------- +# Use lualatex for Unicode support. +latex_engine = 'lualatex' +# Set fonts and fallbacks for CJK and Emojis. latex_elements = { - 'preamble': ( - '\\DeclareUnicodeCharacter{2264}{\\ensuremath{\\le}}' - '\\DeclareUnicodeCharacter{2265}{\\ensuremath{\\ge}}' - '\\DeclareUnicodeCharacter{2665}{[unicode-heart]}' - '\\DeclareUnicodeCharacter{2713}{[unicode-checkmark]}' - ), + 'preamble': r""" + \directlua{ + luaotfload.add_fallback("seriffallbacks", { + "Noto Serif CJK SC:style=Regular;", + "Symbola:Style=Regular;" + }) + } + \setmainfont{FreeSerif}[RawFeature={fallback=seriffallbacks}] + + \directlua{ + luaotfload.add_fallback("sansfallbacks", { + "Noto Sans CJK SC:style=Regular;", + "Symbola:Style=Regular;" + }) + } + \setsansfont{FreeSans}[RawFeature={fallback=sansfallbacks}] + + \directlua{ + luaotfload.add_fallback("monofallbacks", { + "Noto Sans Mono CJK SC:style=Regular;", + "Symbola:Style=Regular;" + }) + } + \setmonofont{FreeMono}[RawFeature={fallback=monofallbacks}] + """, } # Grouping the document tree into LaTeX files. List of tuples