]> mj.ucw.cz Git - ucwmac.git/commitdiff
ucw-ofs for LuaTeX and Latin Modern fonts
authorMartin Mares <mj@ucw.cz>
Tue, 5 Jun 2018 18:55:19 +0000 (20:55 +0200)
committerMartin Mares <mj@ucw.cz>
Tue, 5 Jun 2018 18:55:19 +0000 (20:55 +0200)
ucw-luaofs.tex [new file with mode: 0644]
ucw-ofs.tex

diff --git a/ucw-luaofs.tex b/ucw-luaofs.tex
new file mode 100644 (file)
index 0000000..961f4fc
--- /dev/null
@@ -0,0 +1,210 @@
+\input luaotfload.sty
+\input ofs.tex
+\nofontmessages
+
+\ofsputfamlist{^^JLatinModern:}
+
+\def\LMfeat#1{:mode=base;script=latn;+tlig}
+
+%%% LMRoman %%%
+
+\ofsdeclarefamily [LMRoman] {%
+   \loadtextfam lmr;%
+                lmbx;%
+                lmti;%
+                lmbxti;;%
+   \newvariant 8 \sl   (Slanted)     lmsl;;%
+   \newvariant 9 \bxsl (BoldSlanted) lmbxsl;;%
+   \newvariant a \bo   (BoldNormal)  lmb;;%
+   \newvariant b \bosl (BoldNormalSlanted)  lmbsl;;%
+   \newvariant c \csc  (CapsAndSmallCaps)   lmcsc;;%
+}
+
+\registertfm lmr        -      LMRoman10-Regular\LMfeat{}
+\registertfm lmr     0pt-6pt   LMRoman5-Regular\LMfeat{}
+\registertfm lmr     6pt-7pt   LMRoman6-Regular\LMfeat{}
+\registertfm lmr     7pt-8pt   LMRoman7-Regular\LMfeat{}
+\registertfm lmr     8pt-9pt   LMRoman8-Regular\LMfeat{}
+\registertfm lmr     9pt-10pt  LMRoman9-Regular\LMfeat{}
+\registertfm lmr    10pt-12pt  LMRoman10-Regular\LMfeat{}
+\registertfm lmr    12pt-17pt  LMRoman12-Regular\LMfeat{}
+\registertfm lmr    17pt-*     LMRoman17-Regular\LMfeat{}
+
+\registertfm lmbx       -      LMRoman10-Bold\LMfeat{}
+\registertfm lmbx    0pt-6pt   LMRoman5-Bold\LMfeat{}
+\registertfm lmbx    6pt-7pt   LMRoman6-Bold\LMfeat{}
+\registertfm lmbx    7pt-8pt   LMRoman7-Bold\LMfeat{}
+\registertfm lmbx    8pt-9pt   LMRoman8-Bold\LMfeat{}
+\registertfm lmbx    9pt-10pt  LMRoman9-Bold\LMfeat{}
+\registertfm lmbx   10pt-12pt  LMRoman10-Bold\LMfeat{}
+\registertfm lmbx   12pt-*     LMRoman12-Bold\LMfeat{}
+
+\registertfm lmti       -      LMRoman10-Italic\LMfeat{}
+\registertfm lmti    0pt-8pt   LMRoman7-Italic\LMfeat{}
+\registertfm lmti    8pt-9pt   LMRoman8-Italic\LMfeat{}
+\registertfm lmti    9pt-10pt  LMRoman9-Italic\LMfeat{}
+\registertfm lmti   10pt-12pt  LMRoman10-Italic\LMfeat{}
+\registertfm lmti   12pt-*     LMRoman12-Italic\LMfeat{}
+
+\registertfm lmbxti     -      LMRoman10-BoldItalic\LMfeat{}
+
+\registertfm lmsl       -      LMRomanSlant10-Regular\LMfeat{}
+\registertfm lmsl    0pt-9pt   LMRomanSlant8-Regular\LMfeat{}
+\registertfm lmsl    9pt-10pt  LMRomanSlant9-Regular\LMfeat{}
+\registertfm lmsl   10pt-12pt  LMRomanSlant10-Regular\LMfeat{}
+\registertfm lmsl   12pt-17pt  LMRomanSlant12-Regular\LMfeat{}
+\registertfm lmsl   17pt-*     LMRomanSlant17-Regular\LMfeat{}
+
+\registertfm lmbxsl     -      LMRomanSlant10-Bold\LMfeat{}
+
+\registertfm lmb        -      LMRomanDemi10-Regular\LMfeat{}
+
+\registertfm lmbsl      -      LMRomanDemi10-Oblique\LMfeat{}
+
+\registertfm lmcsc      -      LMRomanCaps10-Regular\LMfeat{}
+
+\setfonts[LMRoman/]
+
+%%% LMSans %%%
+
+\ofsdeclarefamily [LMSans] {%
+   \loadtextfam lmss;%
+                lmssbx;%
+                lmsso;%
+                lmssbo;;%
+}
+
+\registertfm lmss       -      LMSans10-Regular\LMfeat{}
+\registertfm lmss    0pt-9pt   LMSans8-Regular\LMfeat{}
+\registertfm lmss    9pt-10pt  LMSans9-Regular\LMfeat{}
+\registertfm lmss   10pt-12pt  LMSans10-Regular\LMfeat{}
+\registertfm lmss   12pt-17pt  LMSans12-Regular\LMfeat{}
+\registertfm lmss   17pt-*     LMSans17-Regular\LMfeat{}
+
+\registertfm lmssbx     -      LMSans10-Bold\LMfeat{}
+
+\registertfm lmsso      -      LMSans10-Oblique\LMfeat{}
+\registertfm lmsso   0pt-9pt   LMSans8-Oblique\LMfeat{}
+\registertfm lmsso   9pt-10pt  LMSans9-Oblique\LMfeat{}
+\registertfm lmsso  10pt-12pt  LMSans10-Oblique\LMfeat{}
+\registertfm lmsso  12pt-17pt  LMSans12-Oblique\LMfeat{}
+\registertfm lmsso  17pt-*     LMSans17-Oblique\LMfeat{}
+
+\registertfm lmssbo     -      LMSans10-BoldOblique\LMfeat{}
+
+%%% LMSansDC %%%
+
+\ofsdeclarefamily [LMSansDC] {%
+   \loadtextfam lmssdc;%
+                ;%
+                lmssdo;%
+                ;;%
+}
+
+\registertfm lmssdc     -      LMSansDemiCond10-Regular\LMfeat{}
+
+\registertfm lmssdo     -      LMSansDemiCond10-Oblique\LMfeat{}
+
+%%% LMMono %%%
+
+\ofsdeclarefamily [LMMono] {%
+   \loadtextfam lmtt;%
+                lmtk;%
+                lmtti;%
+                ;;%
+   \newvariant 8 \sl   (Slanted)     lmtto;;%
+   \newvariant 9 \bxsl (BoldSlanted) lmtko;;%
+   \newvariant c \csc  (CapsAndSmallCaps)   lmtcsc;;%
+}
+
+\registertfm lmtt       -      LMMono10-Regular\LMfeat{}
+\registertfm lmtt    0pt-9pt   LMMono8-Regular\LMfeat{}
+\registertfm lmtt    9pt-10pt  LMMono9-Regular\LMfeat{}
+\registertfm lmtt   10pt-12pt  LMMono10-Regular\LMfeat{}
+\registertfm lmtt   12pt-*     LMMono12-Regular\LMfeat{}
+
+\registertfm lmtk       -      LMMonoLt10-Bold\LMfeat{}
+
+\registertfm lmtti      -      LMMono10-Italic\LMfeat{}
+
+\registertfm lmtto      -      LMMonoSlant10-Regular\LMfeat{}
+
+\registertfm lmtko      -      LMMonoLt10-BoldOblique\LMfeat{}
+
+\registertfm lmtcsc     -      LMMonoCaps10-Regular\LMfeat{}
+
+\newfam\ttfam
+\loadmathfam\ttfam[/LMMono10-Regular\LMfeat{}]
+
+%%% LMMonoCondensed %%%
+
+\ofsdeclarefamily [LMMonoCondensed] {%
+   \loadtextfam lmtlc;%
+                ;%
+                lmtlco;%
+                ;;%
+}
+
+\registertfm lmtlc      -      LMMonoLtCond10-Regular\LMfeat{}
+
+\registertfm lmtlco     -      LMMonoLtCond10-Oblique\LMfeat{}
+
+%%% UCW extensions %%%
+
+\ofsputfamlist{^^JUCW:}
+
+\ofsdeclarefamily [BlackboardBold] {%
+   \loadtextfam bbm;%
+               ;%
+               ;%
+               ;\defaultextraenc;%
+}
+
+\registertfm bbm     -      bbm10
+\registertfm bbm  0pt-6pt   bbm5
+\registertfm bbm  6pt-7pt   bbm6
+\registertfm bbm  7pt-8pt   bbm7
+\registertfm bbm  8pt-9pt   bbm8
+\registertfm bbm  9pt-10pt  bbm9
+\registertfm bbm  10pt-12pt bbm10
+\registertfm bbm  12pt-17pt bbm12
+\registertfm bbm  17pt-*    bbm17
+
+% \bb - blackboard bold math font
+
+\newfam\bbfam
+\def\bb{\fam\bbfam}
+
+\def\loadbbm{%
+       \loadmathfam\bbfam[/bbm]%
+}
+\loadbbm
+
+%%% Font size switches %%%
+
+% Recalculate line spacing for a given point size of the font (assuming CM-like metrics).
+% Also sets \strut and \topskip.
+\def\setbaselines#1{%
+       \dimen0=1pt
+       \dimen0=#1\dimen0
+       \normalbaselineskip=1.2\dimen0
+       \normallineskip=0.1\dimen0
+       \setbox\strutbox=\hbox{\vrule height 0.85\dimen0 depth 0.35\dimen0 width 0pt}%
+       \topskip=1\dimen0
+       \normalbaselines
+}
+
+% Switch to a specified font size (including math, line spacing etc.)
+\def\settextsize#1{%
+       \def\fomenc{CM}%
+       \setfonts[/#1]%
+       \setmath[//]%
+       \setbaselines{#1}%
+       \loadbbm
+}
+\def\twelvepoint{\settextsize{12}}
+
+%%% Various hacks %%%
+
+% Re-define \tt, so that it works in both text and math mode
+\def\tt{\ifmmode\fam\ttfam\else\setfonts[LMMono/]\fi}
index c6bfa16d02f1850896a7ffba1819f6abfbdae6e6..a5b21a770adcbf70b478297dfe6e3fc91b5dc28a 100644 (file)
@@ -8,6 +8,9 @@
 \nofontmessages
 \fi
 
+% Finish if either this or ucw-luaofs.tex is loaded
+\ifx\setbaselines\undefined\else\endinput\fi
+
 % We extend OFS's default CM family by several fonts: cmb, cmcsc
 
 \ofsputfamlist{^^JUCW:}
 \def\twelvepoint{\settextsize{12}}
 
 % Re-define \tt, so that it works in both text and math mode
-\newfam\ttfam
 \loadmathfam\ttfam[/cmtt\fotenc]
 \def\tt{\ifmmode\fam\ttfam\else\setfonts[CMTypewriter/]\fi}