%\iffalse meta-comment % % ------------------------------------------------------------------------ % The `microtype' package % Subliminal refinements towards typographical perfection % Copyright (c) 2004--2024 R Schlicht % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, either version 1.3c of this license or (at % your option) any later version. The latest version of this license is in: % https://www.latex-project.org/lppl.txt, and version 1.3c or later is part % of all distributions of LaTeX version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % This work consists of the files microtype.dtx, microtype-utf.dtx and % microtype.ins and the derived files microtype.sty, microtype-pdftex.def, % microtype-luatex.def, microtype-xetex.def, microtype.lua, letterspace.sty % and microtype-show.sty. % % Modified versions of the configuration files (*.cfg) may be distributed % provided that: (1) the original copyright statement is not removed, and % (2) the identification string is changed. % ------------------------------------------------------------------------ % %<*!EBGaramond> \ProvidesFile % %<*driver> {\jobname.dtx}[2024/03/29 v3.1b] % % {mt-CharisSIL.cfg}[2017/07/07 v1.1 microtype config. file: Charis SIL (RS)] % {mt-LatinModernRoman.cfg}[2021/02/21 v1.1 microtype config. file: Latin Modern Roman (RS)] % {mt-NewComputerModern.cfg}[2021/11/09 v1.1 microtype config. file: New Computer Modern (AT)] % {mt-Palatino.cfg}[2012/03/10 v1.0 microtype config. file: Palatino and similar fonts (LBD)] % {mt-TU-basic.cfg}[2021/06/22 v1.1 microtype config. file: fonts with basic glyph set (RS)] % {mt-TU-empty.cfg}[2021/06/22 v1.1 microtype config. file: fonts with nonstandard glyph set (RS)] %<*driver> \makeatletter \documentclass[10pt,a4paper,doc2]{ltxdoc} \usepackage{fontspec} \usepackage{luatexbase} \RequireLuaModule{luainputenc} % microtype-doc.sty is 8-bit, and the following is a hack \luatexbase@directlua{luatexbase.add_to_callback('process_input_buffer', luainputenc.fake_utf_read, 'luainputenc.fake_utf_read')} \usepackage{microtype-doc} \luatexbase@directlua{luatexbase.remove_from_callback('process_input_buffer', 'luainputenc.fake_utf_read')} \def\setmacrofont#1{\par\def\macro@font{#1}\footnotesize} \defaultfontfeatures{RawFeature={notdef=false},WordSpace=2} \def\normalwordspace{\fontdimen2\font=.5\fontdimen2\font} \newfontface\LMR{Latin Modern Roman} \newfontface\NCM{NewCM10-Book.otf}[WordSpace=1] \newfontface\CharisSIL{Charis SIL} \newfontface\Palatino{TeX Gyre Pagella} \newfontface\EBGaramond{EBGaramond-Regular} % \newfontface\Palatino[RawFeature={fallback=charisfallback}]{TeX Gyre Pagella} % \directlua{luaotfload.add_fallback("charisfallback",{"CharisSIL:color=F70A12;mode=harf;"})} \usepackage{luacode} \tracinglostchars2 % we replace any missing characters (in Palatino) with CharisSIL % the lua code is mostly stolen from https://tex.stackexchange.com/a/120529 and https://tex.stackexchange.com/a/119945 {\CharisSIL\footnotesize\global\expandafter\let\expandafter\fallbackfont\the\font} \begin{luacode} local fontcharacters = { } local nullfont = 0 local glyph_t = nodes.nodecodes.glyph local whatsit_t = nodes.nodecodes.whatsit local colorst_t = node.subtype("pdf_colorstack") local color_push = node.new(whatsit_t,colorst_t) local color_pop = node.new(whatsit_t,colorst_t) color_push.stack, color_pop.stack = 0,0 color_push.command,color_pop.command = 1,2 color_push.data = "0.97 0.04 0.07 rg" -- red local fallbackfont = font.id("fallbackfont") local fallbackchar = 0xFFFD -- Unicode replacement character table.setmetatableindex(fontcharacters, function (t, k) if k == true then return fontcharacters[currentfont()] else local tfmdata = fonts.hashes.identifiers[k] if not tfmdata then --- unsafe tfmdata = font.fonts[k] if not (tfmdata and type (tfmdata) == "table") then return false end end local characters = tfmdata.characters t[k] = characters return characters end end) local nodeprocessor = function (head) local lastfont, characters = nil, nil for n in node.traverse_id(glyph_t, head) do local currfont = n.font local char = n.char if currfont ~= lastfont and currfont ~= nullfont then characters = fontcharacters[currfont] end if characters ~= false then lastfont = currfont if not characters[char] then head = node.insert_before(head,n,node.copy(color_push)) -- node.remove(head,node.next(n)) -- remove .notdef char (new in luaotfload 2.98) node.insert_after(head,n,node.copy(color_pop)) n.font = fallbackfont if not fontcharacters[fallbackfont][char] then -- not even in Charis SIL n.char = fallbackchar end end end end return head, false end luatexbase.add_to_callback("pre_linebreak_filter", nodeprocessor, "replace missing glyphs") \end{luacode} % communicate counters and bookmarks in microtype-utf.tmp % (via aux file to get page numbers right) \let\UTF@bookmarks\@gobble \def\addto@UTF@bookmarks#1{\edef\UTF@bookmarks{\UTF@bookmarks,#1}} \def\MT@rempt#1.#2\@nil{#1} \def\addtoUTFbookmarks#1{% \protected@write\@auxout{}{% \string\addto@UTF@bookmarks{% page,section,level,heading,label \string\number\numexpr\thepage-\startpage,% \expandafter\MT@rempt\@currentHref\@nil,% \the\c@section@level,\@currentlabelname,#1}}} \AddToHook{enddocument/afteraux}{ \begingroup \def\setcounter#1#2{\expandafter\ifnum\csname c@#1\endcsname=#2 \else\@tempswatrue\fi} \def\UTF@setbookmarks#1{\MT@ifstreq{#1}{\UTF@bookmarks}\relax\@tempswatrue} \InputIfFileExists{microtype-utf.tmp}\@tempswafalse\@tempswatrue \if@tempswa % only write file if anything has changed \newwrite\utftmp \immediate\openout \utftmp=microtype-utf.tmp \immediate\write \utftmp{\string\setcounter{CodelineNo}{\the\c@CodelineNo}} \immediate\write \utftmp{\string\setcounter{footnote}{\the\c@footnote}} \immediate\write \utftmp{\string\UTF@setbookmarks{\UTF@bookmarks}} \immediate\closeout\utftmp \fi \endgroup} \AddToHook{begindocument}{ \InputIfFileExists{microtype-code.tmp}\relax\relax \edef\startpage{\thepage} \stepcounter{page}} \CodelineIndex \DisableCrossrefs \RecordChanges \begin{document} \DocInput{\jobname.dtx} \end{document} % % \fi %\StopEventually{} % % ^^A ------------------------------------------------------------------------- %\GeneralChanges* %\changes{v2.8a}{2021/02/22}{rename \file{mt-PalatinoLinotype.cfg} to \file{mt-Palatino.cfg} % (requested by \contributor Karl Berry )} % ^^A private mail, 2021/02/22 % %\GeneralChanges{Documentation} %\changes{v2.5a}{2013/05/15}{include OpenType configuration files} %\changes{v2.6}{2015/12/07}{missing characters printed with Charis } %\ImplementationSettings % %\section{OpenType configuration files} %\addtoUTFbookmarks{sec:OpenType} % % These are the configuration files for the following OpenType fonts:\footnote{This is file \file{\jobname.dtx}.} % %\begin{itemize} % \item {\LMR\normalwordspace Latin Modern Roman} % \item {\NCM New Computer Modern}\footnote{These settings have been contributed by % \contributor Antonis Tsolomitis .} % \item {\CharisSIL\normalwordspace Charis } % \item {\EBGaramond\normalwordspace Garamond} % \item {\Palatino Palatino}\footnote{These settings have been contributed by % \contributor Loren~B. Davis .} %\end{itemize} % %\noindent % The settings are typeset in the respective font. % %\subsection{Character inheritance} %\GeneralChanges{Inheritance} %\addtoUTFbookmarks{sub:OT-inheritance} % % OpenType fonts may differ considerably in how complete their arsenal of glyphs is. % Therefore, each font family should have their own inheritance settings. % %\NoIndexing % \begin{macrocode} %%% ----------------------------------------------------------------------- %%% INHERITANCE %% for xetex (EU1) and luatex (EU2), resp. both (TU) % \end{macrocode} %\subsubsection{Latin Modern Roman/New Computer Modern} %\addtoUTFbookmarks{subsub:OT-inh-LMR} % \begin{macrocode} %<*LatinModernRoman|NewComputerModern> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, % family = Latin Modern Roman } % family = {New Computer Modern} } % \end{macrocode} %\changes{v2.8a}{2021/02/21}{specify `ff' ligature as Unicode instead of glyph name} %\changes{v3.0}{2021/08/08}{settings for New Computer Modern (provided by % \contributor Antonis Tsolomitis )} %{\setmacrofont\NCM % \begin{macrocode} { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǻ,Ȁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ặ, % Α % Greek % Α,Ά,ᾼ,Ά,Ᾰ,Ᾱ % Ἁ,Ἂ,Ἃ,Ἄ,Ἅ,Ἆ,Ἇ,ᾈ,ᾉ,ᾊ,ᾋ,ᾌ,ᾍ,ᾎ,ᾏ,Ὰ, % Greek }, Æ = {Ǽ}, B = {฿, Β}, % Greek C = {Ç,Ć,Ĉ,Ċ,Č}, D = {Ð,Ď,Đ,Ḍ,Ḏ}, E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ẹ,Ẻ,Ẽ,Ề,Ế,Ễ,Ể,Ệ, Ε}, % Greek % (l)E = {Έ,Ἐ,Ἑ,Ἒ,Ἓ,Ἔ,Ἕ,Ὲ,Έ}, % Greek accents fully protruded left G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ}, H = {Ĥ,Ħ,Ḥ,Ḧ,Ḫ, % Η % Greek % Η,ῌ % Greek }, % (l)H = {Ἠ,Ἡ,Ἢ,Ἣ,Ἤ,Ἥ,Ἦ,Ἧ,ᾘ,ᾙ,ᾚ,ᾛ,ᾜ,ᾝ,ᾞ,ᾟ}, % Greek accents fully protruded left % %(l)/uni1FCC.alt = {/uni1F98.alt}, I = {Ì,Í,Î,Ï,Ĩ,Ī,Ĭ,Į,İ,Ȉ,Ỉ,Ị, % Ι % Greek % Ι,Ῐ,Ῑ % Greek }, % (l)I = {Ἰ,Ἱ,Ἲ,Ἳ,Ἴ,Ἵ,Ἶ,Ἷ,Ὶ,Ί}, % Greek J = {Ĵ}, K = {Ķ, Κ}, % Greek L = {Ĺ,Ļ,Ł,Ḷ}, % Ľ,Ŀ,Ḹ M = {Μ}, % Greek N = {Ñ,Ń,Ņ,Ň,Ṅ,Ṇ, Ν}, % Greek O = {Ò,Ó,Ô,Õ,Ö,Ø,Ō,Ŏ,Ő,Ọ,Ơ,Ǫ,Ǿ,Ȍ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ỡ,Ở,Ợ, Ο}, % Greek % (l)O = {Ό,Ὀ,Ὁ,Ὂ,Ὃ,Ὄ,Ὅ,Ὸ}, % Greek accents except Ό that has indep. protrusion numbers (below) P = {Ρ}, % Greek % (l)P = {Ῥ}, % Greek accents fully protruded left R = {Ŕ,Ŗ,Ř,Ȑ,Ṛ,Ṙ,Ṝ}, S = {Ś,Ŝ,Ş,Š,Ș,Ṣ}, T = {Ţ,Ť,Ț,Ṭ,Ṯ, Τ}, % Greek U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ư,Ȕ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự}, W = {Ŵ,Ẁ,Ẃ,Ẅ}, X = {Χ}, % Greek Y = {Ý,Ŷ,Ÿ,Ỵ,Ỷ,Ỹ}, % Υ = {Ϋ,Ῠ,Ῡ}, % (l)Υ = {Ύ,Ὺ,Ύ,Ὑ,Ὓ,Ὕ,Ὗ}, Z = {Ź,Ż,Ž,Ẓ, Ζ}, % Greek a = {à,á,â,ã,ä,å,ā,ă,ą,ǻ,ȁ,ạ,ả,ấ,ầ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ}, æ = {ǽ}, c = {ç,ć,ĉ,ċ,č}, d = {đ,ḍ,ḏ}, e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ẹ,ẻ,ẽ,ế,ề,ể,ễ,ệ}, f = {ff}, % Unicode 64256, glyph name in Latin Modern Roman: /f_f ; in New Computer Modern: /ff g = {ĝ,ğ,ġ,ģ,ǧ,ǵ}, h = {ĥ,ħ,ḥ,ḧ,ḫ}, i = {ì,í,î,ï,ĩ,ī,ĭ,į,ı,ȉ,ỉ,ị}, j = {ĵ}, k = {ķ}, l = {ĺ,ļ,ł,ḷ,ḹ}, % ľ,l· n = {ñ,ń,ņ,ň,ṅ,ṇ}, o = {ò,ó,ô,õ,ö,ø,ō,ŏ,ő,ọ,ơ,ǫ,ǿ,ȍ,ỏ,ố,ồ,ổ,ỗ,ộ,ớ,ờ,ỡ,ở,ợ % ,ο,ό,ὀ,ὁ,ὂ,ὃ,ὄ,ὅ,ὸ,ό % Greek }, r = {ŕ,ŗ,ř,ȑ,ṛ,ṙ,ṝ}, s = {ś,ŝ,ş,š,ș,ṣ}, t = {ţ,ț,ṭ,ṯ,ẗ}, % ť u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ư,ȕ,ụ,ủ,ứ,ừ,ử,ữ,ự}, w = {ŵ,ẁ,ẃ,ẅ}, y = {ý,ŷ,ÿ,ỳ,ỵ,ỷ,ỹ}, z = {ź,ż,ž,ẓ}, %<*NewComputerModern> α = {ἁ,ἂ,ἃ,ἄ,ἅ,ἆ,ἇ,ᾀ,ᾁ,ᾂ,ᾃ,ᾄ,ᾅ,ᾆ,ᾇ,ὰ}, ε = {έ,ἐ,ἑ,ἒ,ἓ,ἔ,ἕ,ὲ,έ}, η = {ἠ,ἡ,ἢ,ἣ,ἤ,ἥ,ἦ,ἧ,ᾐ,ᾑ,ᾒ,ᾓ,ᾔ,ᾕ,ᾖ}, ι = {ἰ,ἱ,ὶ,ί,ῐ,ῑ,ϊ,ΐ}, ϊ = {ἲ,ἳ,ἴ,ἵ,ἶ,ἷ,ῐ,ῑ,ΐ}, υ = {ύ,ὺ,ύ,ὑ,ὓ,ὕ,ὗ,ϋ,ῠ,ῡ,ϋ,ΰ}, ω = {ώ,ὠ,ὡ,ὢ,ὣ,ὤ,ὥ,ὦ,ὧ,ᾠ,ᾡ,ᾢ,ᾣ,ᾤ,ᾥ,ᾦ}, % } % \end{macrocode} %} % \begin{macrocode} % % \end{macrocode} %\subsubsection{Charis SIL} %\addtoUTFbookmarks{subsub:OT-inh-Charis} % \begin{macrocode} %<*CharisSIL> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, family = Charis SIL } % \end{macrocode} %{\setmacrofont\CharisSIL % \begin{macrocode} { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ, А,Ӑ,Ӓ}, % Cyrillic Æ = {Ǣ, Ǽ,Ӕ}, % Cyrillic B = {Ḃ,Ḅ,Ḇ, В}, % Cyr C = {Ç,Ć,Ĉ,Ḉ,Ċ,Č, С,Ҫ}, % Cyr D = {Ď,Ḋ,Ḍ,Ḏ,Ḑ,Ḓ,Đ}, E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ȩ,Ȇ,Ḕ,Ḗ,Ḙ,Ḛ,Ḝ,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ, Е,Ѐ,Ё,Ӗ}, % Cyr F = {Ḟ}, G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ,Ḡ,Ԍ}, H = {Ĥ,Ȟ,Ḣ,Ḥ,Ḧ,Ḩ,Ḫ, Н,Ң,Ҥ,Ӈ,Ӊ}, % Cyr I = {Ì,Í,Î,Ȉ,Ï,Į,Ĩ,Ị,Ī,İ,Ǐ,Ỉ,Ȋ,Ĭ,Ḭ,Ï, І,Ї,Ӏ,ӏ}, % Cyr J = {Ĵ, Ј}, % Cyr K = {Ķ,Ǩ,Ḱ,Ḳ,Ḵ, К,Ќ,Қ,Ҝ,Ҟ,Ҡ,Ӄ,Ԟ}, % Cyr L = {Ĺ,Ļ,Ľ,Ḷ,Ḹ,Ḻ,Ḽ}, % L· M = {Ḿ,Ṁ,Ṃ, М,Ӎ}, % Cyr N = {Ñ,Ń,Ņ,Ň,Ǹ,Ṅ,Ṇ,Ṉ,Ṋ, И,Й,Ѝ,Ҋ,Ӣ,Ӥ}, % Cyr O = {Ò,Ó,Ô,Õ,Ö,Ō,Ŏ,Ő,Ǒ,Ǫ,Ǭ,Ȍ,Ȏ,Ȫ,Ȭ,Ȯ,Ȱ,Ṍ,Ṏ,Ṑ,Ṓ,Ọ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ơ, О,Ѳ,Ӧ,Ө,Ӫ, % Cyr Θ}, % Greek P = {Ṕ,Ṗ, Р,Ҏ}, % Cyr Q = {Ԛ}, % Cyr R = {Ŕ,Ŗ,Ř,Ȑ,Ȓ,Ṙ,Ṛ,Ṝ,Ṟ}, S = {Ś,Ŝ,Ş,Š,Ș,Ṡ,Ṣ,Ṥ,Ṧ,Ṩ, Ѕ}, % Cyr T = {Ţ,Ť,Ț,Ṫ,Ṭ,Ṯ,Ṱ, Т,Ҭ}, % Cyr U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ǔ,Ǖ,Ǘ,Ǚ,Ǜ,Ȕ,Ȗ,Ṳ,Ṵ,Ṷ,Ṹ,Ṻ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự}, V = {Ṽ,Ṿ}, W = {Ŵ,Ẁ,Ẃ,Ẅ,Ẇ,Ẉ, Ԝ}, % Cyr X = {Ẋ,Ẍ, Х,Ҳ,Ӽ,Ӿ}, % Cyr Y = {Ý,Ŷ,Ÿ,Ȳ,Ẏ,Ỳ,Ỵ,Ỷ,Ỹ, Ү,Ұ}, % Cyr Z = {Ź,Ż,Ž,Ẑ,Ẓ,Ẕ}, a = {à,á,â,ã,ä,å,ā,ă,ą,ǎ,ǟ,ǡ,ȧ,ǻ,ȁ,ȃ,ḁ,ạ,ả,ầ,ấ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ,ặ, % aʾ а,ӑ,ӓ}, % Cyr æ = {ǽ, ӕ}, % Cyr b = {ḃ,ḅ,ḇ}, c = {ç,ć,ĉ,ċ,č,ḉ, с,ҫ}, % Cyr d = {ď,ḋ,ḍ,ḏ,ḑ,ḓ}, e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ȩ,ȇ,ḕ,ḗ,ḙ,ḛ,ḝ,ẹ,ẻ,ẽ,ề,ế,ể,ễ,ệ, е,ѐ,ё,ӗ}, % Cyr f = {ḟ,ff}, % /f_f g = {ĝ,ğ,ġ,ģ,ǧ,ǵ,ḡ}, h = {ĥ,ȟ,ḣ,ḥ,ḧ,ḩ,ḫ,ẖ, Һ,һ}, % Cyr i = {ı,ì,í,î,ȉ,ǐ,ï,į,ī,ị,ĩ,ḭ,ḯ,ỉ,ȋ,ĭ, і,ї}, % Cyr j = {ĵ,ǰ, ј}, % Cyr k = {ķ,ǩ,ḱ,ḳ,ḵ}, l = {ĺ,ļ,ḻ,ḷ,ḹ,ḽ}, % ľ,l· m = {ḿ,ṁ,ṃ}, n = {ñ,ń,ņ,ň,ǹ,ṅ,ṇ,ṉ,ṋ}, % ʼn o = {ò,ó,ô,õ,ö,ō,ŏ,ő,ǒ,ǫ,ǭ,ȍ,ȏ,ȫ,ȭ,ȯ,ȱ,ṍ,ṏ,ṑ,ṓ,ọ,ỏ,ồ,ố,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ, о,ѳ,ӧ,ө,ӫ}, % Cyr p = {ṕ,ṗ, р,ҏ}, % Cyr q = {ԛ}, % Cyr r = {ŕ,ŗ,ř,ȑ,ȓ,ṙ,ṛ,ṝ,ṟ}, s = {ś,ŝ,ş,š,ș,ṡ,ṣ,ṥ,ṧ,ṩ, ѕ}, % Cyr t = {ţ,ț,ṫ,ṭ,ṯ,ṱ,ẗ}, % ť u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ǔ,ǖ,ǘ,ǚ,ǜ,ȕ,ȗ,ṳ,ṵ,ṷ,ṹ,ṻ,ụ,ủ,ứ,ừ,ử,ữ,ự}, v = {ṽ,ṿ}, w = {ŵ,ẁ,ẃ,ẅ,ẇ,ẉ,ẘ, ԝ}, % Cyr x = {ẋ,ẍ, х,ҳ}, % Cyr y = {ý,ÿ,ŷ,ȳ,ẏ,ẙ,ỳ,ỵ,ỷ,ỹ, у,ў,ӯ,ӱ,ӳ}, % Cyr z = {ź,ż,ž,ẑ,ẓ,ẕ}, % Cyrillic Г = {Ѓ,Ґ,Ғ,Ӷ,Ӻ}, Ж = {Җ,Ӝ,Ӂ}, З = {Ӟ,Ҙ}, Л = {Ӆ}, П = {Ԥ}, У = {Ў,Ӯ,Ӱ,Ӳ}, Ч = {Ҷ,Ҹ,Ӌ,Ӵ}, Ы = {Ӹ}, Ә = {Ӛ}, Ҽ = {Ҿ}, г = {ѓ,ґ,ғ,ӷ,ӻ}, ж = {җ,ӂ,ӝ}, з = {ҙ,ӟ}, и = {й,ѝ,ҋ,ӣ,ӥ}, к = {ќ,қ,ҝ,ҟ,ҡ,ӄ,ԟ}, л = {ӆ}, м = {ӎ}, н = {ң,ҥ,ӈ,ӊ}, п = {ԥ}, т = {ҭ}, х = {ӽ,ӿ}, ч = {ҷ,ҹ,ӌ,ӵ}, ш = {щ}, ы = {ӹ}, э = {ӭ}, ҽ = {ҿ}, ә = {ӛ}, ү = {ұ}, Г = {Γ}, % Greek П = {Π}, % Greek % missing: tipa, math, symbols, ... } % \end{macrocode} %} % \begin{macrocode} % % \end{macrocode} %\subsubsection{EB~Garamond} %\addtoUTFbookmarks{subsub:OT-inh-EBGaramond} %\changes{v3.0}{2021/08/08}{settings for Garamond (OpenType)} % \begin{macrocode} %<*EBGaramond> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, family = EBGaramond } % \end{macrocode} %{\setmacrofont\EBGaramond % \begin{macrocode} { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ǻ,Ȁ,Ȃ,Ȧ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Å,/Adieresis.deu, А,Ӑ,Ӓ, % Cyrillic Α,Ά,Ἀ,Ἁ,Ἂ,Ἃ,Ἄ,Ἅ,Ἆ,Ἇ,ᾈ,ᾉ,ᾊ,ᾋ,ᾌ,ᾍ,ᾎ,ᾏ,Ᾰ,Ᾱ,Ὰ,Ά,ᾼ}, % Greek % (l)Α {Ά,Ἀ,Ἁ,Ἂ,Ἃ,Ἄ,Ἅ,Ἆ,Ἇ,ᾈ,ᾉ,ᾊ,ᾋ,ᾌ,ᾍ,ᾎ,ᾏ,Ᾰ,Ᾱ,Ὰ,Ά,ᾼ}, % (accents not protruded) B = {Ḃ,Ḅ,Ḇ, В, % Cyrillic Β}, % Greek C = {Ç,Ć,Ĉ,Ċ,Č,Ḉ, Ϲ,С,Ҫ, % Cyrillic Ⅽ}, % Roman numeral D = {Ď,Đ,Ð,Ḋ,Ḍ,Ḏ,Ḑ,Ḓ, Ɖ,Ɗ, % Cyrillic Ⅾ}, % Roman numeral E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ḕ,Ḗ,Ȩ,Ḙ,Ḛ,Ḝ,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ,Ȅ,Ȇ, Ѐ,Ё,Ӗ,Е, % Cyrillic Ε}, % Greek (l)Ε = {Έ,Ἐ,Ἑ,Ἒ,Ἓ,Ἔ,Ἕ,Ὲ,Έ}, % Greek (accents protruded) F = {Ḟ}, G = {Ĝ,Ğ,Ġ,Ģ,Ǥ,Ǧ,Ǵ,Ḡ}, H = {Ĥ,Ħ,Ȟ,Ḣ,Ḥ,Ḧ,Ḩ,Ḫ,ῌ,Ⱨ, Н,Ң,Ӊ,Ӈ, % Ҥ % Cyrillic Η}, % Greek (l)Η = {Ή,Ἠ,Ἡ,Ἢ,Ἣ,Ἤ,Ἥ,Ἦ,Ἧ,Ὴ,Ή,ᾘ,ᾙ,ᾚ,ᾛ,ᾜ,ᾝ,ᾞ,ᾟ}, I = {Ì,Í,Î,Ï,Ĩ,Ī,Ĭ,Į,İ,Ǐ,Ȉ,Ȋ,Ḭ,Ḯ,Ỉ,Ị, І,Ї,Ӏ, % Cyrillic Ι, % Greek Ⅰ,Ⅱ,Ⅲ}, % Roman numeral (l)Ι = {Ί,Ϊ,Ἰ,Ἱ,Ἲ,Ἳ,Ἴ,Ἵ,Ἶ,Ἷ,Ῐ,Ῑ,Ὶ,Ί}, % Greek J = {Ĵ, Ј}, % Cyrillic K = {Ķ,Ǩ,Ḱ,Ḳ,Ḵ,Ⱪ, Κ,K}, % Greek L = {Ĺ,Ļ,Ľ,Ŀ,Ł,Ḷ,Ḹ,Ḻ,Ḽ,Ⱡ,Ɫ, Ⅼ}, % Roman numeral M = {Ḿ,Ṁ,Ṃ, М,Ӎ, % Cyrillic Μ, % Greek Ⅿ}, % Roman numeral N = {Ñ,Ń,Ņ,Ň,Ŋ,Ǹ,Ṅ,Ṇ,Ṉ,Ṋ, Ν}, % Greek O = {Ò,Ó,Ô,Õ,Ö,Ø,Ō,Ŏ,Ő,Ǒ,Ǫ,Ǭ,Ǿ,Ȍ,Ȏ,Ȫ,Ȭ,Ȯ,Ȱ,Ṍ,Ṏ,Ṑ,Ṓ,Ọ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ợ,Ơ,/Odieresis.deu, О,Ӧ,Ө,Ӫ, % Cyrillic Ο,Ό,Ὀ,Ὁ,Ὂ,Ὃ,Ὄ,Ὅ,Ὸ,Ό}, % Greek % (l)Ο = {Ό,Ὀ,Ὁ,Ὂ,Ὃ,Ὄ,Ὅ,Ὸ,Ό}, % (accents not protruded) P = {Ṕ,Ṗ,Ᵽ, Р,Ҏ, % Cyrillic Ρ}, % Greek (l)Ρ = {Ῥ}, % Greek Q = {Ԛ}, % Cyrillic R = {Ŕ,Ŗ,Ř,Ȑ,Ȓ,Ṙ,Ṛ,Ṝ,Ṟ,Ɽ,}, S = {Ś,Ŝ,Ş,Š,Ș,Ṡ,Ṣ,Ṥ,Ṧ,Ṩ, Ѕ}, % Cyrillic T = {Ţ,Ť,Ŧ,Ț,Ṫ,Ṭ,Ṯ,Ṱ, Т,Ҭ, % Cyrillic Τ}, % Greek U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ǔ,Ǖ,Ǘ,Ǚ,Ǜ,Ȕ,Ȗ,Ṳ,Ṵ,Ṷ,Ṹ,Ṻ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự}, % /Udieresis.deu ? V = {Ṽ,Ṿ,/U.LAT, Ⅴ}, % Roman numeral W = {Ŵ,Ẁ,Ẃ,Ẅ,Ẇ,Ẉ, Ԝ}, % Cyrillic X = {Ẋ,Ẍ, Х,Ҳ,Ӽ,Ӿ, % Cyrillic Χ, % Greek Ⅹ}, % Roman numeral Y = {Ý,Ŷ,Ÿ,Ȳ,Ẏ,Ỳ,Ỵ,Ỷ,Ỹ, Ү,Ұ}, % Cyrillic Z = {Ź,Ż,Ž,Ẑ,Ẓ,Ẕ,Ⱬ, Ζ}, % Greek a = {à,á,â,ã,ä,å,ā,ă,ą,ǎ,ǟ,ǡ,ǻ,ȁ,ȃ,ȧ,ḁ,ạ,ả,ấ,ầ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ,ặ,ẚ, а,ӑ,ӓ}, % Cyrillic b = {ḃ,ḅ,ḇ}, c = {ç,ć,ĉ,ċ,č,ḉ, с,ҫ, % Cyrillic ⅽ}, % Roman numeral d = {ď,đ,ḋ,ḍ,ḏ,ḑ,ḓ, ⅾ}, % Roman numeral e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȩ,ḕ,ḗ,ḙ,ḛ,ḝ,ẹ,ẻ,ẽ,ế,ề,ể,ễ,ệ,ȅ,ȇ, е,ѐ,ё,ӗ}, % Cyrillic f = {ḟ,ff,/f.long,/f.DEU,/f_f}, fl = {ffl,/longs_l,/longs_longs_l,/f_l}, fi = {ffi,/longs_i,/longs_longs_i,/f_i}, /f.short = {/f_f.short}, g = {ĝ,ğ,ġ,ģ,ḡ,ǥ,ǧ,ǵ}, h = {ĥ,ħ,ḣ,ḥ,ḧ,ḩ,ḫ,ẖ,ȟ,ⱨ, ԧ,ԧ}, % Cyrillic i = {ì,í,î,ï,ĩ,ī,ĭ,į,ı,ǐ,ȉ,ȋ,ḭ,ỉ,ị,ḯ,/i.TRK, і,ї, % Cyrillic ⅰ,ⅱ,ⅲ}, % Roman numeral j = {ĵ,ǰ, ј}, % Cyrillic k = {ķ,ǩ,ḱ,ḳ,ḵ,ⱪ}, l = {ĺ,ļ,ľ,ŀ,ł,ḷ,ḹ,ḻ,ḽ,ⱡ, ӏ, % palochka ⅼ}, % Roman numeral m = {ḿ,ṁ,ṃ, ⅿ}, % Roman numeral n = {ñ,ń,ņ,ň,ŋ,ṅ,ṇ,ṉ,ṋ,ǹ}, % ʼn o = {ò,ó,ô,õ,ö,ø,ō,ŏ,ő,ǒ,ǫ,ǭ,ǿ,ȍ,ȏ,ȫ,ȭ,ȯ,ȱ,ṍ,ṏ,ṑ,ṓ,ọ,ỏ,ố,ồ,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ, о,ӧ}, % Cyrillic p = {ṕ,ṗ, р,ҏ}, % Cyrillic q = {ԛ}, % Cyrillic r = {ŕ,ŗ,ř,ȑ,ȓ,ṙ,ṛ,ṝ,ṟ}, s = {ś,ŝ,ş,š,ș,ṡ,ṣ,ṥ,ṧ,ṩ, ѕ}, % Cyrillic t = {ţ,ť,ŧ,ț,ṫ,ṭ,ṯ,ṱ,ẗ}, u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ǔ,ǖ,ǘ,ǚ,ǜ,ȕ,ȗ,ṳ,ṵ,ṷ,ṹ,ṻ,ụ,ủ,ứ,ừ,ử,ữ,ự,/u.LATmedi}, v = {ṽ,ṿ, ⅴ}, % Roman numeral w = {ŵ,ẁ,ẃ,ẅ,ẇ,ẉ,ẘ, ԝ}, % Cyrillic x = {ẋ,ẍ, х,ҳ, % Cyrillic ⅹ}, % Roman numeral y = {ý,ÿ,ŷ,ȳ,ẏ,ẙ,ỳ,ỵ,ỷ,ỹ, у,ӯ,ӱ,ӳ,ў}, % Cyrillic z = {ź,ż,ž,ⱬ,ẑ,ẓ,ẕ}, Æ = {Ǣ,Ǽ, Ӕ}, % Cyrillic æ = {ǣ,ǽ, ӕ}, % Cyrillic DZ = {DŽ}, Dz = {Dž}, dz = {dž}, % Smallcaps /a.sc = {/A.sc}, /ae.sc = {/AE.sc}, /d.sc = {/D.sc}, /f.sc = {/F.sc}, /g.sc = {/G.sc}, /j.sc = {/J.sc}, /l.sc = {/L.sc}, /o.sc = {/O.sc}, /oe.sc = {/OE.sc}, /q.sc = {/Q.sc}, /r.sc = {/R.sc}, /t.sc = {/T.sc}, /y.sc = {/Y.sc}, % Cyrillic Г = {Ґ,Ғ,Ѓ,Ӷ}, Ж = {Җ,Ӝ,Ӂ,Ѫ}, З = {Ҙ,Ӟ}, И = {Й,Ҋ,Ӣ,Ӥ,Ѝ}, К = {Қ,Ҝ,Ҟ,Ҡ,Ќ,Ӄ}, Л = {Ӆ,Ԓ,Ԯ}, П = {Ԥ}, У = {Ӯ,Ӱ,Ӳ,Ў}, Ц = {Ҵ,Џ}, Ч = {Ҷ,Ҹ,Ӌ,Ӵ}, Ш = {Щ}, Ы = {Ӹ}, Ь = {Ҍ}, Э = {Ӭ}, Ѵ = {Ѷ}, Ҽ = {Ҿ}, Ә = {Ӛ}, г = {ѓ,ґ,ғ,ӷ}, ж = {җ,ӂ,ӝ,ѫ}, з = {ҙ,ӟ}, и = {й,ѝ,ҋ,ӣ,ӥ}, к = {ќ,қ,ҝ,ӄ}, % ҟ,ҡ л = {ӆ,ԓ,ԯ}, м = {ӎ}, н = {ң,ӈ,ӊ,ԩ}, % ҥ п = {ԥ}, т = {ҭ}, ц = {ҵ}, ч = {ҷ,ҹ,ӌ,ӵ}, ш = {щ}, ы = {ӹ}, э = {ӭ}, ѳ = {ө,ӫ}, ѵ = {ѷ}, ү = {ұ}, ҽ = {ҿ}, ә = {ӛ}, % Greek Υ = {Ϋ,ϒ,ϔ,Ῠ,Ῡ}, (l)Υ = {Ύ,ϓ,Ὑ,Ὓ,Ὕ,Ὗ,Ὺ,Ύ}, (l)Ω = {Ώ,Ὠ,Ὡ,Ὢ,Ὣ,Ὤ,Ὥ,Ὦ,Ὧ,ᾨ,ᾩ,ᾪ,ᾫ,ᾬ,ᾭ,ᾮ,ᾯ,Ὼ,Ώ}, Ω = {ῼ,Ω}, % math Δ = {∆}, % math Π = {∏}, % math α = {ά,ἀ,ἁ,ἂ,ἃ,ἄ,ἅ,ἆ,ἇ,ὰ,ά,ᾀ,ᾁ,ᾂ,ᾃ,ᾄ,ᾅ,ᾆ,ᾇ,ᾰ,ᾱ,ᾲ,ᾳ,ᾴ,ᾶ,ᾷ}, ε = {έ,ἐ,ἑ,ἒ,ἓ,ἔ,ἕ,ὲ,έ}, η = {ή,ἠ,ἡ,ἢ,ἣ,ἤ,ἥ,ἦ,ἧ,ὴ,ή,ῂ,ῃ,ῄ,ῆ,ῇ,ᾐ,ᾑ,ᾒ,ᾓ,ᾔ,ᾕ,ᾖ,ᾗ}, ι = {ί,ϊ,ἰ,ἱ,ἲ,ἳ,ἴ,ἵ,ἶ,ἷ,ὶ,ί,ῐ,ῑ,ῒ,ΐ,ῖ,ῗ,ΐ}, ο = {ό,ϙ,ὀ,ὁ,ὂ,ὃ,ὄ,ὅ,ὸ,ό}, ρ = {ῤ,ῥ}, υ = {ΰ,ϋ,ύ,ὐ,ὑ,ὒ,ὓ,ὔ,ὕ,ὖ,ὗ,ὺ,ύ,ῠ,ῡ,ῢ,ΰ,ῦ,ῧ}, ω = {ώ,ὠ,ὡ,ὢ,ὣ,ὤ,ὥ,ὦ,ὧ,ὼ,ώ,ᾠ,ᾡ,ᾢ,ᾣ,ᾤ,ᾥ,ᾦ,ᾧ,ῲ,ῳ,ῴ,ῶ,ῷ}, % other ⑴ = {⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇}, ⒜ = {⒝,⒞,⒟,⒠,⒡,⒢,⒣,⒤,⒥,⒦,⒧,⒨,⒩,⒪,⒫,⒬,⒭,⒮,⒯,⒰,⒱,⒲,⒳,⒴,⒵}, 🇦 = {🇧,🇨,🇩,🇪,🇫,🇬,🇭,🇮,🇯,🇰,🇱,🇲,🇳,🇴,🇵,🇶,🇷,🇸,🇹,🇺,🇻,🇼,🇽,🇾,🇿}, ! = {‼}, ? = {⁇}, . = {/onedotenleader}, /endash = {/figuredash}, } % \end{macrocode} %} % \begin{macrocode} % % \end{macrocode} %\subsubsection{Palatino} %\addtoUTFbookmarks{subsub:OT-inh-Palatino} % \begin{macrocode} %<*Palatino> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, family = {Palatino} } % \end{macrocode} % Unfortunately, I don't have a Palatino variant containing all of the following % glyphs. The settings are typeset in \TeX\ Gyre Pagella; % missing glyphs, printed in red, are taken from Charis ; % glyphs missing even in Charis appear as `\char"FFFD'. % To see the real settings, consult \file{mt-Palatino.cfg}. %{\setmacrofont\Palatino % \begin{macrocode} { A = {À,Á,Â,Ã,Ä,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ}, B = {Ḃ,Ḅ,Ḇ}, C = {Ç,Ć,Ĉ,Ḉ,Ċ,Č}, D = {Ď,Ḋ,Ḍ,Ḏ,Ḑ,Ḓ}, E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ȩ,Ȇ,Ḕ,Ḗ,Ḙ,Ḛ,Ḝ,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ}, F = {Ḟ}, G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ,Ḡ}, H = {Ĥ,Ȟ,Ḣ,Ḥ,Ḧ,Ḩ,Ḫ}, I = {Ì,Í,Î,Ȉ,Ï,Į,Ĩ,Ị,Ī,İ,Ǐ,Ỉ,Ȋ,Ĭ,Ḭ,Ï}, J = {Ĵ}, K = {Ķ,Ǩ,Ḱ,Ḳ,Ḵ}, L = {Ĺ,Ļ,Ľ,Ḷ,Ḹ,Ḻ,Ḽ,Ỻ,Ŀ,Ł}, % L· M = {Ḿ,Ṁ,Ṃ}, N = {Ñ,Ń,Ņ,Ň,Ǹ,Ṅ,Ṇ,Ṉ,Ṋ}, O = {Ò,Ó,Ô,Õ,Ö,Ō,Ŏ,Ő,Ǒ,Ǫ,Ǭ,Ȍ,Ȏ,Ȫ,Ȭ,Ȯ,Ȱ,Ṍ,Ṏ,Ṑ,Ṓ,Ọ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ơ}, P = {Ṕ,Ṗ}, R = {Ŕ,Ŗ,Ř,Ȑ,Ȓ,Ṙ,Ṛ,Ṝ,Ṟ}, S = {Ś,Ŝ,Ş,Š,Ș,Ṡ,Ṣ,Ṥ,Ṧ,Ṩ}, T = {Ţ,Ť,Ț,Ṫ,Ṭ,Ṯ,Ṱ}, U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ǔ,Ǖ,Ǘ,Ǚ,Ǜ,Ȕ,Ȗ,Ṳ,Ṵ,Ṷ,Ṹ,Ṻ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự}, V = {Ṽ,Ṿ}, W = {Ŵ,Ẁ,Ẃ,Ẅ,Ẇ,Ẉ}, X = {Ẋ,Ẍ}, Y = {Ý,Ŷ,Ÿ,Ȳ,Ẏ,Ỳ,Ỵ,Ỷ,Ỹ}, Z = {Ź,Ż,Ž,Ẑ,Ẓ,Ẕ}, a = {à,á,â,ã,ä,å,ā,ă,ą,ǎ,ǟ,ǡ,ȧ,ǻ,ȁ,ȃ,ḁ,ạ,ả,ầ,ấ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ,ặ}, % aʾ b = {ḃ,ḅ,ḇ}, c = {ç,ć,ĉ,ċ,č,ḉ}, d = {ď,ḋ,ḍ,ḏ,ḑ,ḓ}, e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ȩ,ȇ,ḕ,ḗ,ḙ,ḛ,ḝ,ẹ,ẻ,ẽ,ề,ế,ể,ễ,ệ}, f = {ḟ,ff}, g = {ĝ,ğ,ġ,ģ,ǧ,ǵ,ḡ}, h = {ĥ,ȟ,ḣ,ḥ,ḧ,ḩ,ḫ,ẖ}, i = {ı,ì,í,î,ȉ,ǐ,ï,į,ī,ị,ĩ,ḭ,ḯ,ỉ,ȋ,ĭ}, j = {ĵ,ǰ}, k = {ķ,ǩ,ḱ,ḳ,ḵ}, l = {ĺ,ļ,ḻ,ḷ,ḹ,ḽ}, % ľ,l· m = {ḿ,ṁ,ṃ}, n = {ñ,ń,ņ,ň,ǹ,ṅ,ṇ,ṉ,ṋ}, % ʼn o = {ò,ó,ô,õ,ö,ō,ŏ,ő,ǒ,ǫ,ǭ,ȍ,ȏ,ȫ,ȭ,ȯ,ȱ,ṍ,ṏ,ṑ,ṓ,ọ,ỏ,ồ,ố,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ}, p = {ṕ,ṗ}, r = {ŕ,ŗ,ř,ȑ,ȓ,ṙ,ṛ,ṝ,ṟ}, s = {ś,ŝ,ş,š,ș,ṡ,ṣ,ṥ,ṧ,ṩ}, t = {ţ,ț,ṫ,ṭ,ṯ,ṱ,ẗ}, % ť u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ǔ,ǖ,ǘ,ǚ,ǜ,ȕ,ȗ,ṳ,ṵ,ṷ,ṹ,ṻ,ụ,ủ,ứ,ừ,ử,ữ,ự}, v = {ṽ,ṿ}, w = {ŵ,ẁ,ẃ,ẅ,ẇ,ẉ,ẘ}, x = {ẋ,ẍ}, y = {ý,ÿ,ŷ,ȳ,ẏ,ẙ,ỳ,ỵ,ỷ,ỹ}, z = {ź,ż,ž,ẑ,ẓ,ẕ}, } % \end{macrocode} %} % \begin{macrocode} % % \end{macrocode} %\subsubsection{Basic glyph set} %\addtoUTFbookmarks{subsub:OT-inh-basic} % There are quite a few fonts out there that don't even fill the glyph set. % To prevent a plethora of warnings, they may be aliased to the surrogate font % |TU-basic|. Examples of such fonts are: Lato, Fontin and Bergamo. %\changes{v2.8b}{2021/02/21}{settings for the Lato font (\file{mt-Lato.cfg}) % (reported by \contributor dsedivec <@\at @>)} % ^^A https://tex.stackexchange.com/questions/380812/microtype-warning-unknown-slot-number-of-character-with-lato-font %\changes{v3.0}{2021/06/22}{generalise basic inheritance settings} % \begin{macrocode} %<*TU-basic> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, family = {TU-basic} } { A = {À,Á,Â,Ã,Ä,Å}, a = {à,á,â,ã,ä,å}, C = {Ç}, c = {ç}, D = {Ð}, E = {È,É,Ê,Ë}, e = {è,é,ê,ë}, I = {Ì,Í,Î,Ï}, i = {ì,í,î,ï,ı}, L = {Ł}, l = {ł}, N = {Ñ}, n = {ñ}, O = {Ø,Ò,Ó,Ô,Õ,Ö}, o = {ø,ò,ó,ô,õ,ö}, S = {Š}, s = {š}, U = {Ù,Ú,Û,Ü}, u = {ù,ú,û,ü}, Y = {Ý,Ÿ}, % \end{macrocode} % For some reason, the \"y in the next line comes out as \ss. % Don't worry, there's really a |y diaeresis| in the source. % \begin{macrocode} y = {ý,ÿ}, Z = {Ž}, z = {ž} } % % \end{macrocode} %\subsubsection{Empty glyph set} %\addtoUTFbookmarks{subsub:OT-inh-empty} % Other fonts, \eg, the self-professedly awesone Font Awesome font, % have no meaningful glyph arsenal at all, and should therefore be % aliased so that empty settings are applied. %\changes{v2.8b}{2021/02/21}{dummy settings for the Font Awesome font (\file{mt-FontAwesome.cfg})} %\changes{v3.0}{2021/06/22}{generalise empty settings} % \begin{macrocode} %<*TU-empty> \DeclareCharacterInheritance { encoding = {TU,EU1,EU2}, family = {TU-empty} } { } % % \end{macrocode} % %\subsection{Character protrusion} %\GeneralChanges{Protrusion} %\addtoUTFbookmarks{sub:OT-protrusion} % % \begin{macrocode} %%% ----------------------------------------------------------------------- %%% PROTRUSION % \end{macrocode} %\subsubsection{Latin Modern Roman/New Computer Modern} %\addtoUTFbookmarks{subsub:OT-prot-LMR} %\changes{v3.0}{2021/08/08}{settings for New Computer Modern (provided by % \contributor Antonis Tsolomitis )} %\changes{v3.0}{2021/08/13}{fix quotation marks in } % \begin{macrocode} %<*LatinModernRoman|NewComputerModern> \SetProtrusion % [ name = LMR-default ] % [ name = NCM-default ] % { encoding = {TU,EU1,EU2}, % family = Latin Modern Roman } % { } { % \end{macrocode} %{\setmacrofont\NCM % \begin{macrocode} A = {50,50}, Æ = {50, }, F = { ,50}, J = {50, }, K = { ,50}, L = { ,50}, T = {50,50}, V = {50,50}, W = {50,50}, X = {50,50}, Y = {50,50}, k = { ,50}, r = { ,50}, t = { ,70}, v = {50,50}, w = {50,50}, x = {50,50}, y = {50,70}, 0 = { ,50}, 1 = {100,200}, 2 = {50,50}, 3 = {50,50}, 4 = {70,70}, 5 = { ,50}, 6 = { ,50}, 7 = {50,100}, 8 = { ,50}, 9 = { ,50}, . = { ,700}, {,}= { ,500}, : = { ,500}, ; = { ,500}, ! = { ,100}, ? = { ,200}, @ = {50,50}, ~ = {200,250}, \% = {50,50}, * = {300,300}, + = {250,250}, - = {400,500}, % /hyphen – = {400,300}, % /endash — = {300,200}, % /emdash _ = {200,200}, % /underscore / = {200,300}, /backslash = {200,300}, ' = {300,400}, % /quotesingle ‘ = {300,400}, ’ = {300,400}, “ = {300,300}, ” = {300,300}, ‚ = {400,400}, „ = {400,400}, ‹ = {400,400}, › = {300,500}, « = {300,200}, » = {100,400}, ¡ = {100, }, ¿ = {100, }, ( = {300, }, ) = { ,300}, < = {200,100}, > = {100,200}, /braceleft = {400,200}, /braceright = {200,400}, /angleleft = {400, }, /angleright = { ,400}, † = {100,100}, ‡ = { 80, 80}, • = {200,200}, · = {400,450}, % / periodcentered ℃ = { 80, 50}, ₡ = { , 50}, ° = {400,400}, ™ = {100,200}, © = {100,100}, ® = {100,100}, ª = {100,200}, º = {100,200}, ¹ = {200,250}, ² = { 50,100}, ³ = { 50,100}, ¬ = {200, }, − = {300,300}, ± = {150,200}, × = {150,250}, ÷ = {150,250}, € = {100, }, %<*LatinModernRoman> /one.oldstyle = {100,100}, /two.oldstyle = { 50, 50}, /three.oldstyle = { 30, 80}, /four.oldstyle = { 50, 50}, /seven.oldstyle = { 50, 80}, % %<*NewComputerModern> Ά = {50,50}, % /Alphatonos Ὰ = {120,50}, % Ἀ = {120,50}, % Ἁ = {80,50}, % Ἂ = {220,50}, % Ἃ = {220,50}, % Ἄ = {170,50}, % Ἅ = {170,50}, % Ἆ = {190,50}, % Ἇ = {190,50}, % ᾈ = {150,50}, % ᾉ = {80,50}, % ᾊ = {220,50}, % ᾋ = {220,50}, % ᾌ = {170,50}, % ᾍ = {170,50}, % ᾎ = {210,50}, % ᾏ = {210,50}, % /uni1FBC.alt = {,205}, % Alpha prosgegrammeni /uni1F88.alt = {50,190}, %Alpha psili prosgegrammeni /uni1F89.alt = {,200}, %Alpha dasia prosgegrammeni /uni1F8A.alt = {130,180}, %Alpha psili baria prosgegrammeni /uni1F8B.alt = {130,190}, %Alpha dasia baria prosgegrammeni /uni1F8C.alt = {100,190}, %Alpha psili oxia prosgegrammeni /uni1F8D.alt = {70,190}, %Alpha dasia oxia prosgegrammeni /uni1F8E.alt = {120,190}, %Alpha psili perispomeni prosgegrammeni /uni1F8F.alt = {120,190}, %Alpha dasia perispomeni prosgegrammeni % /uni1FCC.alt = {,205}, % Eta prosgegrammeni /uni1F98.alt = {185,170}, %Eta psili prosgegrammeni /uni1F99.alt = {185,170}, %Eta dasia prosgegrammeni /uni1F9A.alt = {220,170}, %Eta psili baria prosgegrammeni /uni1F9B.alt = {220,170}, %Eta dasia baria prosgegrammeni /uni1F9C.alt = {220,170}, %Eta psili oxia prosgegrammeni /uni1F9D.alt = {220,170}, %Eta dasia oxia prosgegrammeni /uni1F9E.alt = {255,170}, %Eta psili perispomeni prosgegrammeni /uni1F9F.alt = {255,170}, %Eta dasia perispomeni prosgegrammeni % Ό = {95,50}, % % Γ = { ,180}, % /Gamma % Δ = {100,100}, % /Delta % Δ = {50,50}, % /Delta Θ = { 50, 50}, % /Theta % Λ = {100,100}, % /Lambda % Λ = {50,50}, % /Lambda % Ξ = {,}, % /Xi % Π = {,}, % /Pi Σ = { 50, 50}, % /Sigma % Υ = {100,100}, % /Upsilon % Υ = {80,80}, % /Upsilon Φ = { 50, 50}, % /Phi Ψ = { 50, 50}, % /Psi %<*NewComputerModern> Ω = { 20, 30}, % /Omega Ώ = {150,30}, Ὠ = {220,30}, Ὡ = {205,30}, Ὢ = {285,30}, Ὣ = {285,30}, Ὤ = {270,30}, Ὥ = {270,30}, Ὦ = {310,30}, Ὧ = {310,30}, ᾨ = {205,30}, ᾩ = {205,30}, ᾪ = {285,30}, ᾫ = {285,30}, ᾬ = {270,30}, ᾭ = {270,30}, ᾮ = {310,30}, ᾯ = {310,30}, /uni1FFC.alt = {,230}, % Omega prosgegrammeni /uni1FA8.alt = {185,190}, %Omega psili prosgegrammeni /uni1FA9.alt = {185,190}, %Omega dasia prosgegrammeni /uni1FAA.alt = {220,190}, %Omega psili baria prosgegrammeni /uni1FAB.alt = {220,190}, %Omega dasia baria prosgegrammeni /uni1FAC.alt = {220,190}, %Omega psili oxia prosgegrammeni /uni1FAD.alt = {220,190}, %Omega dasia oxia prosgegrammeni /uni1FAE.alt = {255,190}, %Omega psili perispomeni prosgegrammeni /uni1FAF.alt = {255,190}, %Omega dasia perispomeni prosgegrammeni % α = {,50}, γ = {50,50}, ζ = {,50}, θ = {30,40}, ι = {,50}, ϊ = {-20,-30}, κ = {50,50}, λ = {50,50}, ν = {50,25}, π = {50,50}, σ = {,50}, ς = {,50}, τ = {50,50}, χ = {50,50}, ψ = {50,50}, % /uni1F98.alt = {,}, % \end{macrocode} %} % Serif doesn't include |*.end| glyphs, and the OldStyle numbers' names differ. % \begin{macrocode} } \SetProtrusion [ name = NCM-TU, load = NCM-default ] { encoding = {TU,EU1,EU2}, family = {New Computer Modern} } { /a.end = {,330}, /e.end = {,350}, /k.alt = { ,50}, /r.end = {,300}, /m.end = {,200}, /n.end = {,300}, /one.oldstyle = {100,100}, /two.oldstyle = { 50, 50}, /three.oldstyle = { 30, 80}, /four.oldstyle = { 50, 50}, /seven.oldstyle = { 50, 80}, } \SetProtrusion [ name = CMU-TU, load = NCM-default ] { encoding = {TU,EU1,EU2}, family = {CMU Serif} } { /oneoldstyle = {100,100}, /twooldstyle = { 50, 50}, /threeoldstyle = { 30, 80}, /fouroldstyle = { 50, 50}, /sevenoldstyle = { 50, 80}, % } \SetProtrusion % [ name = LMR-it ] % [ name = NCM-it ] % { encoding = {TU,EU1,EU2}, % family = Latin Modern Roman, % shape = {it,sl} } % { } { % \end{macrocode} %{\setmacrofont\NCM % \begin{macrocode} A = {125,100}, Æ = {125,-55}, B = {90,-40}, C = {145,-75}, D = {75, -28}, E = {80,-55}, F = {85,-80}, G = {153,-15}, H = {73,-60}, I = {140,-120}, IJ = {140,-80}, J = {135,-80}, K = {70,-30}, L = {87, 40}, M = {67,-45}, N = {75,-55}, O = {150,-30}, Œ = {150,-55}, P = {82,-50}, Q = {150,-30}, R = {75, 15}, S = {90,-65}, $ = {100,-20}, T = {220,-85}, U = {230,-55}, V = {260,-60}, W = {185,-55}, X = {70,-30}, Y = {250,-60}, Z = {90,-60}, a = {150,-10}, b = {170, }, c = {173,-10}, d = {150,-55}, e = {180, }, f = { ,-250}, g = {150,-10}, h = {100, }, i = {210, }, ij = {210,-40}, j = { ,-40}, k = {110,-50}, l = {240,-110}, m = {80, }, n = {115, }, o = {155, }, q = {170,-40}, r = {155,-40}, s = {130, }, t = {230,-10}, u = {120, }, v = {140,-25}, w = {98,-20}, x = {65,-40}, y = {130,-20}, z = {110,-80}, 0 = {170,-85}, 1 = {230,110}, 2 = {130,-70}, 3 = {140,-70}, 4 = {130,80}, 5 = {160, }, 6 = {175,-30}, 7 = {250,-150}, 8 = {130,-40}, 9 = {155,-80}, . = { ,500}, {,}= { ,450}, : = { ,300}, ; = { ,300}, & = {130,30}, \% = {180,50}, * = {380,20}, + = {180,200}, @ = {180,10}, ~ = {200,150}, ( = {300, }, ) = { ,70}, / = {100,100}, - = {500,300}, % /hyphen – = {500,300}, % /endash — = {400,170}, % /emdash _ = {100,200}, % /underscore ' = {300,400}, % /quotesingle " = {500,300}, ‘ = {800,200}, ’ = {800,-20}, “ = {540,100}, ” = {500,100}, ‚ = {300,700}, „ = {200,600}, ‹ = {500,300}, › = {400,400}, « = {400,100}, » = {200,300}, ¡ = {200, }, ¿ = {200, }, < = {300,100}, > = {200,100}, /backslash = {300,300}, /braceleft = {400,100}, /braceright = {200,200}, † = {200, 80}, ‡ = {120, 80}, • = {220,100}, · = {550,300}, % / periodcentered ℃ = {170, }, ₡ = {100, 50}, ¶ = {200, }, ° = {500,300}, ™ = {200, 70}, © = { 50, 70}, ® = { 50, 70}, ª = {140,100}, º = {140,100}, ¹ = {400,150}, ² = {250, 80}, ³ = {250, 80}, ¬ = {250, 80}, − = {300,200}, ± = {150,170}, × = {200,200}, ÷ = {200,200}, € = {150, }, %<*LatinModernRoman> /one.oldstyle = {100,100}, /two.oldstyle = {100, 80}, /three.oldstyle = { 80, 50}, /four.oldstyle = { 80, 80}, /five.oldstyle = { 50, }, /six.oldstyle = { 50, }, /seven.oldstyle = { 80, 80}, /eight.oldstyle = { 50, }, % Γ = {100,120}, % /Gamma Δ = {120,100}, % /Delta Θ = {120, 50}, % /Theta % Λ = {130,100}, % /Lambda % Λ = {160,100}, % /Lambda Ξ = {100,}, % /Xi Π = {100,}, % /Pi Σ = {100, 50}, % /Sigma % Υ = {180,100}, % /Upsilon % Υ = {260,100}, % /Upsilon Φ = {130, 70}, % /Phi Ψ = {130, 50}, % /Psi Ω = { 50,}, % /Omega %<*NewComputerModern> Ὰ = {190,50}, % Ἀ = {220,50}, % Ἁ = {200,50}, % Ἂ = {300,50}, % Ἃ = {300,50}, % Ἄ = {300,50}, % Ἅ = {300,50}, % Ἆ = {320,50}, % Ἇ = {320,50}, % ᾈ = {200,50}, % ᾉ = {200,50}, % ᾊ = {300,50}, % ᾋ = {300,50}, % ᾌ = {300,50}, % ᾍ = {300,50}, % ᾎ = {320,50}, % ᾏ = {320,50}, % /uni1FBC.alt = {,205}, % Alpha prosgegrammeni /uni1F88.alt = {50,190}, %Alpha psili prosgegrammeni /uni1F89.alt = {,200}, %Alpha dasia prosgegrammeni /uni1F8A.alt = {130,180}, %Alpha psili baria prosgegrammeni /uni1F8B.alt = {130,190}, %Alpha dasia baria prosgegrammeni /uni1F8C.alt = {100,190}, %Alpha psili oxia prosgegrammeni /uni1F8D.alt = {70,190}, %Alpha dasia oxia prosgegrammeni /uni1F8E.alt = {120,190}, %Alpha psili perispomeni prosgegrammeni /uni1F8F.alt = {120,190}, %Alpha dasia perispomeni prosgegrammeni % /uni1FCC.alt = {,205}, % Eta prosgegrammeni /uni1F98.alt = {185,170}, %Eta psili prosgegrammeni /uni1F99.alt = {185,170}, %Eta dasia prosgegrammeni /uni1F9A.alt = {220,170}, %Eta psili baria prosgegrammeni /uni1F9B.alt = {220,170}, %Eta dasia baria prosgegrammeni /uni1F9C.alt = {220,170}, %Eta psili oxia prosgegrammeni /uni1F9D.alt = {220,170}, %Eta dasia oxia prosgegrammeni /uni1F9E.alt = {255,170}, %Eta psili perispomeni prosgegrammeni /uni1F9F.alt = {255,170}, %Eta dasia perispomeni prosgegrammeni % Ό = {95,50}, % Ω = {120, 30}, % /Omega Ώ = {160,30}, Ὠ = {250,30}, Ὡ = {250,30}, Ὢ = {300,30}, Ὣ = {300,30}, Ὤ = {300,30}, Ὥ = {300,30}, Ὦ = {330,30}, Ὧ = {330,30}, ῼ = {30,30}, ᾨ = {230,30}, ᾩ = {230,30}, ᾪ = {300,30}, ᾫ = {300,30}, ᾬ = {300,30}, ᾭ = {300,30}, ᾮ = {330,30}, ᾯ = {330,30}, /uni1FFC.alt = {,230}, % Omega prosgegrammeni /uni1FA8.alt = {185,190}, %Omega psili prosgegrammeni /uni1FA9.alt = {185,190}, %Omega dasia prosgegrammeni /uni1FAA.alt = {220,190}, %Omega psili baria prosgegrammeni /uni1FAB.alt = {220,190}, %Omega dasia baria prosgegrammeni /uni1FAC.alt = {220,190}, %Omega psili oxia prosgegrammeni /uni1FAD.alt = {220,190}, %Omega dasia oxia prosgegrammeni /uni1FAE.alt = {255,190}, %Omega psili perispomeni prosgegrammeni /uni1FAF.alt = {255,190}, %Omega dasia perispomeni prosgegrammeni % α = {50,50}, γ = {100,50}, δ = {30,50}, ε = {30,}, ζ = {20,50}, θ = {30,40}, ι = {,50}, ϊ = {-20,-30}, κ = {50,50}, λ = {-20,50}, ν = {50,25}, ο ={40,}, π = {50,50}, σ = {40,50}, ς = {20,50}, τ = {50,50}, υ = {80,}, φ = {80,}, χ = {20,}, ψ = {80,}, % /uni1F98.alt = {,}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = NCM-it-TU, load = NCM-it ] { encoding = {TU,EU1,EU2}, family = {New Computer Modern}, shape = {it,sl} } { /a.end = {,330}, %Fix /e.end = {,350}, %Fix /k.alt = { ,50}, %Fix /r.end = {,300}, %Fix /m.end = {,200}, %Fix /n.end = {,300}, %Fix /one.oldstyle = {100,100}, /two.oldstyle = {100, 80}, /three.oldstyle = { 80, 50}, /four.oldstyle = { 80, 80}, /five.oldstyle = { 50, }, /six.oldstyle = { 50, }, /seven.oldstyle = { 80, 80}, /eight.oldstyle = { 50, }, } \SetProtrusion [ name = CMU-it-TU, load = NCM-it ] { encoding = {TU,EU1,EU2}, family = {CMU Serif}, shape = {it,sl} } { /oneoldstyle = {100,100}, /twooldstyle = {100, 80}, /threeoldstyle = { 80, 50}, /fouroldstyle = { 80, 80}, /fiveoldstyle = { 50, }, /sixoldstyle = { 50, }, /sevenoldstyle = { 80, 80}, /eightoldstyle = { 50, }, % } % % \end{macrocode} %\subsubsection{Charis SIL} %\addtoUTFbookmarks{subsub:OT-prot-Charis} % \begin{macrocode} %<*CharisSIL> \SetProtrusion [ name = Charis-default ] { encoding = {TU,EU1,EU2}, family = Charis SIL } { % \end{macrocode} %{\setmacrofont\CharisSIL % \begin{macrocode} A = {50,50}, Æ = {50,50}, C = {50, }, D = { ,50}, F = { ,50}, G = {50, }, J = {100, }, K = { ,50}, L = { ,50}, Ŀ = { ,100}, O = {50,50}, Œ = {50, }, P = { ,50}, Q = {50,70}, R = { ,50}, ẞ = { ,40}, % capital sharp s T = {50,50}, V = {50,50}, W = {50,50}, X = {50,50}, Y = {50,50}, k = { ,50}, ŀ = { ,150}, r = { ,50}, t = { ,50}, v = {50,50}, w = {50,50}, x = {50,50}, y = { ,50}, 1 = {150,150}, 2 = {50,50}, 3 = {50, }, 4 = {100,50}, 6 = {50, }, 7 = {50,80}, 9 = {50,50}, . = { ,600}, {,}= { ,500}, : = { ,400}, ; = { ,300}, ! = { ,100}, ? = { ,200}, @ = {50,50}, ~ = {200,250}, \% = { ,50}, * = {300,300}, + = {200,250}, / = { ,200}, /backslash = {150,200}, | = {200,200}, - = {400,500}, % hyphen – = {200,300}, % endash — = {150,250}, % emdash ― = {200,200}, % Horizontal Bar = \texttwelveudash ‒ = {150,150}, % Figure Dash = \textthreequartersemdash _ = {100,100}, {=} = {100,100}, ‘ = {300,400}, ’ = {300,400}, “ = {300,300}, ” = {300,300}, ‚ = {400,400}, „ = {300,300}, ‹ = {400,300}, › = {300,400}, « = {200,200}, » = {150,300}, ¡ = {100, }, ¿ = {100, }, ( = {200, }, ) = { ,200}, < = {200,150}, > = {100,200}, [ = {100, }, ] = { ,100}, /braceleft = {200, }, /braceright = { ,300}, † = { 80, 80}, ‡ = {100,100}, • = {200,200}, ° = {150,200}, ™ = {150,150}, ¢ = { 50, }, £ = { 50, }, ¦ = {200,200}, © = {100,100}, ® = {100,100}, ª = {100,200}, º = {200,200}, ¬ = {200, 50}, µ = { ,100}, ¶ = { ,100}, · = {300,400}, ¹ = {200,300}, ² = {100,200}, ³ = {100,200}, € = {100, }, ± = {150,200}, × = {200,200}, ÷ = {250,250}, /minus = {200,200}, − = {200,200}, % Cyrillic Б = { ,50}, Г = { ,130}, Ж = {50,50}, З = {30,50}, Л = {50, }, У = {50,50}, Ф = {50,50}, Ч = {100, }, Ъ = { ,50}, Ь = { ,50}, Э = {50,50}, Ю = { ,40}, Я = {50, }, Ѵ = {50,50}, Ҽ = {50, }, Ђ = {50,100}, Є = {50, }, Љ = {50,50}, Њ = { ,50}, Ћ = {50,50}, Ԅ = {100,100}, Ԇ = {50,50}, Ѣ = { ,50}, Ҍ = { ,50}, Ԉ = {50,80}, Ԋ = { ,80}, Ԏ = {50,50}, Ԓ = {50, }, Ԕ = {50,40}, Ԗ = { ,50}, Ԙ = {50, }, Ԡ = { ,50}, Ԣ = { ,50}, Ԃ = { ,100}, б = {50,50}, г = { ,70}, к = { ,50}, л = {50, }, т = {50,50}, ф = {50,50}, ч = {50, }, ъ = { ,50}, ь = { ,50}, э = { ,50}, я = {50, }, љ = {50, }, њ = { ,50}, ѣ = { ,50}, ѵ = {50,50}, ҽ = {50, }, ҍ = { ,50}, ү = {50,50}, ҕ = { ,50}, ҧ = { ,50}, ԃ = { ,100}, ԅ = {100,100}, ԇ = {50,50}, ԉ = {50,70}, ԋ = { ,70}, ԙ = {50,30}, ԡ = { ,50}, ԣ = { ,50}, % Д П Ц Ш Щ Ы Ҕ Ҧ Ҩ Ә Ҵ Џ Ӭ Ӡ Ԑ Ԁ % в д ж з и м н п ц ш ы ю ђ є ћ џ ә ԑ ҩ ҵ ӡ ԁ ԍ ԏ ԓ ԕ ԗ % Greek Δ = {50,50}, Ψ = {50,50}, γ = {70,70}, λ = {40,70}, π = {40,50}, ρ = { ,50}, σ = { ,50}, χ = {50,50}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = Charis-it ] { encoding = {TU,EU1,EU2}, family = Charis SIL, shape = {it,sl} } { % \end{macrocode} %{\setmacrofont\CharisSIL % \begin{macrocode} C = {50, }, G = {50, }, J = {50, }, L = {50,50}, O = {50, }, Œ = {50, }, Q = {50, }, S = {50, }, $ = {50, }, T = {70, }, o = {50,50}, p = { ,50}, q = {50, }, t = { ,50}, w = { ,50}, y = { ,50}, 1 = {150,100}, 3 = {50, }, 4 = {100, }, 6 = {50, }, 7 = {100, }, . = { ,700}, {,}= { ,600}, : = { ,400}, ; = { ,400}, ? = { ,150}, & = { ,80}, \% = {50,50}, * = {300,200}, + = {250,250}, @ = {80,50}, ~ = {150,150}, / = { ,150}, /backslash = {150,150}, - = {300,400}, % hyphen – = {200,300}, % endash — = {150,200}, % emdash _ = { ,100}, {=} = {200,200}, ± = {150,200}, × = {250,250}, ÷ = {250,250}, ° = {150,200}, · = {300,400}, ‘ = {400,200}, ’ = {400,200}, “ = {300,200}, ” = {400,200}, ‚ = {200,500}, „ = {150,500}, ‹ = {300,400}, › = {200,500}, « = {200,300}, » = {150,400}, ( = {200, }, ) = { ,200}, < = {200,200}, > = {200,200}, /braceleft = {300, }, /braceright = { ,200}, % Cyrillic Ж = {50,30}, Л = {50, }, У = {50,30}, Ф = {50, }, Ч = {100, }, Ъ = { ,50}, Ь = { ,50}, Э = {50,50}, Я = {50, }, Ѵ = {50,50}, Љ = {50,50}, Ԅ = {140,100}, Ԇ = {70,50}, Ԉ = {50,80}, Ԋ = { ,80}, Ԏ = {50,50}, г = {50,50}, д = {50,30}, м = {50, }, ф = {50, }, ч = {50, }, ъ = { ,50}, ь = { ,50}, э = { ,50}, я = {50, }, љ = {50,50}, њ = { ,50}, ѵ = {50,50}, ҍ = { ,50}, ԅ = {140,100}, ԇ = {70,50}, ԉ = {50,70}, ԋ = { ,70}, % Greek Γ = { ,130}, Δ = {50,50}, Ψ = {50,50}, γ = {70,70}, λ = {40,70}, π = {40,50}, ρ = { ,50}, σ = { ,50}, χ = {50,50}, % \end{macrocode} %} % \begin{macrocode} } % \end{macrocode} % The small caps glyph names in Charis have changed with version 5.0 % of the font. We try to get the names right both with \luatex\ (where we % can simply query the font version) and with \xetex\ (where we check for % glyph name). %\changes{v2.7}{2017/07/06}{automatically choose correct names for Charis small caps % (reported by `\contributor ltcomdata <@\at @>')} % ^^A https://tex.stackexchange.com/questions/324294/ % \begin{macrocode} % quick and dirty -- maybe we'll promote this to a % regular key some time \define@key{MT@pr@c}{command}{\csname #1\endcsname} % glyph names have changed with version 5.0 of Charis SIL: % before: /a.SC, /b.SC, ... % after: /a.sc, /b.sc, ... \ifx\MT@lua\@undefined \gdef\MT@get@CHARIS@SC{ % test whether glyph "a.sc" exists \ifnum\numexpr\XeTeXglyphindex "a.sc"\relax > 0 \gdef\MT@CHARIS@SC{sc}% \else \gdef\MT@CHARIS@SC{SC}% \fi } \else \gdef\MT@get@CHARIS@SC{ \gdef\MT@CHARIS@SC{\MT@lua{ % check font version % -- why doesn't this work?: % f = font.getfont(font.current()); % i = fontloader.info(f.filename); % if (tonumber(i.version) < 5) then; if (tonumber(fontloader.info(font.getfont(font.current()).filename).version) < 5) then; tex.print("SC"); else; tex.print("sc"); end }} } \fi \SetProtrusion [ name = Charis-sc, load = Charis-default, command = {MT@get@CHARIS@SC} ] { encoding = {TU,EU1,EU2}, family = Charis SIL, shape = {sc} } { % ᴀ = {100,100}, % etc., doesn't work with \textsc /a.\MT@CHARIS@SC = {100,100}, /c.\MT@CHARIS@SC = {50, }, /d.\MT@CHARIS@SC = { ,50}, /f.\MT@CHARIS@SC = { ,50}, /g.\MT@CHARIS@SC = {50, }, /j.\MT@CHARIS@SC = {100, }, /k.\MT@CHARIS@SC = { ,50}, /l.\MT@CHARIS@SC = { ,50}, /f_l.\MT@CHARIS@SC = { ,50}, /o.\MT@CHARIS@SC = {50,50}, /oe.\MT@CHARIS@SC = {50, }, /q.\MT@CHARIS@SC = {50,70}, /r.\MT@CHARIS@SC = { ,50}, /t.\MT@CHARIS@SC = {50,100}, /v.\MT@CHARIS@SC = {50,50}, /w.\MT@CHARIS@SC = {50,50}, /x.\MT@CHARIS@SC = {50,50}, /y.\MT@CHARIS@SC = {50,50} } % % \end{macrocode} %\subsubsection{EB~Garamond} %\addtoUTFbookmarks{subsub:OT-prot-EBGaramond} %\changes{v3.0}{2021/10/25}{settings for Garamond (OpenType)} % \begin{macrocode} %<*EBGaramond> \SetProtrusion [ name = EBGaramond-TU, load = EBGaramond-T1-LF ] { encoding = {TU,EU1,EU2}, family = EBGaramond } { /one.tosf = {150,150}, /two.tosf = {50,50}, /three.tosf = {50,50}, /four.tosf = {50,50}, /five.tosf = {50,50}, /six.tosf = {50,50}, /seven.tosf = {50,80}, /eight.tosf = {50,50}, /nine.tosf = {50,50}, /one.lf = {50,50}, /two.lf = {50,50}, /four.lf = {50,50}, /seven.lf = {50,50}, /one.osf = {50,50}, /two.osf = {50,50}, /four.osf = {50,50}, /seven.osf = {50,50}, % \end{macrocode} %{\setmacrofont\EBGaramond % \begin{macrocode} Ⅳ = { , 35}, Ⅵ = { 35, }, Ⅶ = { 30, }, Ⅷ = { 25, }, Ⅸ = { , 35}, Ⅺ = { 35, }, Ⅻ = { 30, }, ⅳ = { , 25}, ⅵ = { 25, }, ⅶ = { 20, }, ⅷ = { 20, }, ⅸ = { , 25}, ⅺ = { 25, }, ⅻ = { 20, }, % textcomp \textquotesingle = {400,500}, ˷ = {200,250}, ƒ = { ,100}, ₡ = { 50, }, † = {100,100}, ‡ = { 80, 80}, • = { ,100}, · = {300,400}, % periodcentered /twodotenleader = {150,200}, /ellipsis = {100,150}, ℃ = { 80, }, ° = {400,400}, ™ = {100,100}, © = {100,100}, ® = {100,100}, ª = {200,200}, º = {200,200}, ¹ = {200,200}, ² = {200,200}, ³ = {200,200}, ¬ = {200, }, ¶ = { ,100}, − = {300,300}, % minus ± = {150,200}, × = {100,150}, ÷ = {150,200}, € = { 50,100}, ¥ = { 50, 50}, % Greek Γ = { ,150}, Δ = {100,100}, Θ = { 50, 50}, Λ = {100,100}, Ξ = { 50, 50}, Υ = {100,100}, Φ = { 50, 50}, Ψ = { 50, 50}, Ω = { , 50}, ζ = { , 50}, λ = { 50, 50}, γ = { 50, 50}, π = { 50, 50}, ρ = { , 50}, σ = { 50, 50}, τ = { 50, 50}, χ = { 50, 50}, φ = { 50, 50}, ϙ = { 50, 50}, ψ = { 50, 50}, % Cyrillic Г = { ,150}, Д = { 50, 50}, Ж = { 50, 50}, К = { , 50}, Л = { 50, }, Љ = { 50, 50}, З = { 50, 50}, У = { 50,100}, Ф = { 50, 50}, Ч = { 70, }, Я = { 50, }, Ъ = { 50, 50}, Ь = { , 50}, ж = { 50, 50}, ф = { 50, 50}, ъ = { 50, 50}, Ѱ = { 50, 50}, г = { , 50}, Ѵ = { 50, 50}, % other Þ = { , 50}, þ = { , 50}, Ʌ = {100,100}, ⑴ = { 35, 65}, ⒜ = { 30, 60}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = EBGaramond-it-TU, load = EBGaramond-it-T1-LF ] { encoding = {TU,EU1,EU2}, family = EBGaramond, shape = it } { /zero.tosf = {150,150}, /one.tosf = {150,150}, /two.tosf = {80,80}, /three.tosf = {50,80}, /four.tosf = {50,80}, /five.tosf = {50,80}, /six.tosf = {50,50}, /seven.tosf = {50,100}, /eight.tosf = {50,50}, /nine.tosf = {50,80}, /one.lf = {50,50}, /two.lf = {50,50}, /three.lf = {80,50}, /four.lf = {50,50}, /five.lf = {50,50}, /six.lf = {50,50}, /seven.lf = {50,50}, /eight.lf = {50,50}, /nine.lf = {50, }, /one.osf = {50,50}, /two.osf = {50,50}, /three.osf = { ,80}, /four.osf = {50,50}, /seven.osf = {50,50}, % \end{macrocode} %{\setmacrofont\EBGaramond % \begin{macrocode} % textcomp \textquotesingle = {800,100}, − = {300,300}, % minus ˷ = {200,250}, † = {200,100}, ‡ = { 80, 80}, • = {300, }, ℃ = {200, }, ƒ = {100, }, ₡ = {100, }, ™ = {200, }, © = {200,100}, ® = {200,100}, ¬ = {300, }, ° = {500,100}, ± = {200,150}, ¹ = {300,100}, ² = {300, }, ³ = {300, }, · = {300,500}, % periodcentered /twodotenleader = {150,300}, /ellipsis = {100,200}, € = {100, }, × = {200,100}, ÷ = {200,200}, ¶ = { ,100}, ª = {200,200}, º = {200,200}, ¥ = { 50, 50}, % Greek Δ = {150, }, Θ = { 50, }, Λ = {150, }, Υ = {100, 50}, Φ = { 50, }, Χ = { 50, }, Ψ = {100, }, Ω = { 50, }, γ = { , 50}, λ = { 50, }, % Cyrillic Ү = { 50, }, Ч = {100, }, З = {100, }, % other Þ = { 50, 50}, þ = { , 50}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = EBGaramond-sc-TU, load = EBGaramond-TU ] { encoding = {TU,EU1,EU2}, family = EBGaramond, shape = sc } { % \end{macrocode} %{\setmacrofont\EBGaramond % \begin{macrocode} a = {50,50}, \ae = {50, }, d = { ,50}, f = { ,50}, g = {50, }, j = {50, }, l = { ,50}, o = {50,50}, \oe = {50, }, q = {50,70}, r = { , 0}, t = {50,50}, y = {50,50}, % Greek α = {50,50}, γ = { ,50}, δ = {50,50}, λ = {50,50}, ο = {50,50}, τ = {50,50}, υ = {50,50}, ψ = {50,50}, % Cyrillic т = {50,50}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = EBGaramond-scit-TU, load = EBGaramond-it-TU ] { encoding = {TU,EU1,EU2}, family = EBGaramond, shape = scit } { % \end{macrocode} %{\setmacrofont\EBGaramond % \begin{macrocode} a = {50,50}, \ae = {50, }, d = { ,50}, f = { ,50}, g = {50, }, j = {50, }, l = { ,50}, o = {50,50}, \oe = {50, }, q = {50,70}, r = { , 0}, t = {50,50}, y = {50,50}, % Greek α = {50,50}, γ = { ,50}, δ = {50,50}, λ = {50,50}, ο = {50,50}, τ = {50,50}, υ = {50,50}, ψ = {50,50}, % Cyrillic т = {50,50}, % \end{macrocode} %} % \begin{macrocode} } % % \end{macrocode} %\subsubsection{Palatino} %\addtoUTFbookmarks{subsub:OT-prot-Palatino} % \begin{macrocode} %<*Palatino> \SetProtrusion [ name = palatino-default ] { encoding = {TU,EU1,EU2}, family = {Palatino} } { % \end{macrocode} %{\setmacrofont\Palatino % \begin{macrocode} A = {50,50}, D = { ,50}, J = {50, }, K = { ,50}, L = { ,50}, O = {25, }, T = {50,50}, V = {50,50}, W = {50,50}, X = {50,50}, Y = {50,50}, b = { ,25}, d = {25,30}, f = { ,50}, g = { ,100}, k = { ,50}, p = { ,50}, q = {50, }, r = { ,50}, t = { ,50}, st = { ,50}, ſt = { ,50}, v = {75,50}, w = {50,50}, x = {50,50}, y = {50,70}, 1 = {100,50}, 2 = {25,50}, 4 = {50, }, 6 = {50, }, 9 = {25, }, Æ = {100, }, Œ = {25, }, . = { ,700}, ‥ = { ,350}, … = {,150}, {,}= { ,500}, : = { ,500}, ; = { ,500}, ! = { ,100}, ‼ = { ,100}, ? = { ,200}, ‽ = { ,200}, @ = {50,50}, ~ = {200,250}, & = {50,100}, \% = {100,100}, * = {200,200}, + = {250,250}, ( = {100, }, ) = { ,300}, / = {200,300}, - = {400,500}, \textendash = {300,300}, \textemdash = {200,200}, \textquoteleft = {500,700}, \textquoteright = {500,700}, \textquotedblleft = {300,400}, \textquotedblright = {300,400}, \textbackslash = {200,300}, \quotesinglbase = {400,400}, \quotedblbase = {400,400}, \guilsinglleft = {400,400}, \guilsinglright = {300,500}, \guillemotleft = {300,300}, \guillemotright = {200,400}, \textexclamdown = {100, }, \textquestiondown = {100, }, \textbraceleft = {400,200}, \textbraceright = {200,400}, \textless = {200,100}, \textgreater = {100,200}, ≤ = {200,100}, ≥ = {100,200}, \textminus = {300,300}, \texttrademark = {200,200}, \textcopyright = {200,200}, \textregistered = {200,200}, \textdegree = {300,300}, ¦ = {450,500}, ¬ = {250,150}, ⌐ = {150,250}, · = {850, 700}, ¶ = {100,0}, × = {150, 300}, ª = {300,300}, º = {300,300}, ⁰ = {200,400}, ¹ = {400,350}, ² = {200,300}, ³ = {250,400}, ⁴ = {250,350}, ⁵ = {200,300}, ⁶ = {250,400}, ⁷ = {200,450}, ⁸ = {250,400}, ⁹ = {200,350}, ₀ = {200,400}, ₁ = {400,250}, ₂ = {200,300}, ₃ = {250,400}, ₄ = {250,350}, ₅ = {200,300}, ₆ = {250,400}, ₇ = {200,450}, ₈ = {250,400}, ₉ = {200,350}, ± = {150,100}, ÷ = {300,300}, þ = { ,25}, ₊ = {300,450}, ₋ = {300,450}, ⁺ = {300,450}, ⁻ = {300,450}, † = {200,250}, ‡ = {200,250}, π = {50, }, ſ = { ,50}, № = {100,150}, \textservicemark = {100,200}, ‐ = {400,500}, ‑ = {400,500}, ‒ = {200,300}, – = {205,305}, — = {200,300}, ― = {50,150}, • = {125,200}, % /a.sc = {50,50}, % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = palatino-it ] { encoding = {TU,EU1,EU2}, family = {Palatino}, shape = {it,sl} } { % \end{macrocode} %{\setmacrofont\Palatino % \begin{macrocode} A = {50,50}, Æ = {50, }, B = {50, }, C = {50, }, D = {50,50}, E = {50, }, F = {50, }, G = {50, }, H = {50, }, K = {50, }, L = {50, }, O = {50, }, Œ = {50, }, P = {50, }, Q = {50, }, R = {50, }, S = {50, }, $ = {50, }, T = {100, }, U = {50, }, V = {100,50}, W = {50, }, X = {50, }, Y = {100,50}, b = { ,50}, c = {25, }, g = {75, }, i = {25, }, m = { ,50}, n = { ,50}, p = { ,25}, q = {25, }, x = { ,50}, 1 = {100, }, 2 = {50, }, 4 = {50, }, 7 = {50, }, . = { ,500}, ‥ = { ,350}, … = { ,200}, {,}= { ,500}, : = { ,300}, ; = { ,300}, ? = { ,300}, ‽ = { ,300}, & = {50,50}, \% = {100,100}, * = {200,200}, + = {150,200}, @ = {50,50}, ~ = {200,150}, ( = {200, }, ) = { ,200}, / = {100,200}, - = {300,500}, \textendash = {300,300}, \textemdash = {200,200}, \textquoteleft = {700,400}, \textquoteright = {700,400}, \textquotedblleft = {500,300}, \textquotedblright = {500,300}, _ = {100,100}, \textbackslash = {100,200}, \quotesinglbase = {500,500}, \quotedblbase = {400,400}, \guilsinglleft = {400,400}, \guilsinglright = {300,500}, \guillemotleft = {300,300}, \guillemotright = {300,300}, \textexclamdown = {100, }, \textquestiondown = {200, }, \textbraceleft = {200,100}, \textbraceright = {200,200}, \textless = {300,100}, \textgreater = {200,100}, ≤ = {200,100}, ≥ = {100,200}, ¦ = {450,500}, ¬ = {250,150}, · = {850, 700}, ¶ = {100,0}, × = {150, 300}, ª = {300,250}, ° = {300,300}, º = {300,250}, ⁰ = {300,200}, ¹ = {300,150}, ² = {350,200}, ³ = {250,150}, ⁴ = {350,100}, ⁵ = {300, 50}, ⁶ = {400,100}, ⁷ = {400, 50}, ⁸ = {250, 50}, ⁹ = {300, 50}, ₀ = {300,300}, ₁ = {300,350}, ₂ = {300,150}, ₃ = {250,250}, ₄ = {400,200}, ₅ = {300,100}, ₆ = {450,200}, ₇ = {450,150}, ₈ = {400,250}, ₉ = {400,200}, ± = {150,100}, ÷ = {300,300}, þ = { 50, }, † = {250,200}, ‡ = {250,200}, ₊ = {300,450}, ₋ = {300,450}, ⁺ = {300,450}, ⁻ = {300,450}, ‐ = {300,500}, ‑ = {300,500}, ‒ = {100,300}, – = {125,305}, — = {200,300}, ― = {125,150}, • = {125,200} % \end{macrocode} %} % \begin{macrocode} } \SetProtrusion [ name = palatino-sc, load = palatino-default ] { encoding = {TU,EU1,EU2}, family = {Palatino}, shape = sc } { % \end{macrocode} %{\setmacrofont\Palatino % \begin{macrocode} a = {50,50}, æ = {50, }, b = { 0, 0}, d = { 0, 0}, f = { 0, 0}, g = { 0, 0}, j = {50, }, l = { ,50}, o = { 0, 0}, p = { 0, 0}, q = { 0, }, r = { , 0}, t = {50,50}, y = {50,50}, fl = { 0,50}, ffl = { 0,50}, ſt = { 0,50}, st = { 0,50} % \end{macrocode} %} % \begin{macrocode} } % % \end{macrocode} %\subsubsection{Basic glyph set} % The protrusion settings will still be loaded from \file{microtype.cfg}. %\addtoUTFbookmarks{subsub:OT-prot-basic} % \begin{macrocode} % %% No settings. % \end{macrocode} %\subsubsection{Empty glyph set} %\addtoUTFbookmarks{subsub:OT-prot-empty} % \begin{macrocode} %<*TU-empty> \SetProtrusion [ name = empty ] { encoding = {TU,EU1,EU2}, family = {TU-empty} } { } % % \end{macrocode} % \endinput % % % vim: ts=2:sw=2:et: