diff options
author | Karl Berry <karl@freefriends.org> | 2016-05-02 01:30:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-05-02 01:30:05 +0000 |
commit | 966c8c981c3264bf82e6c256dc35c7d2d27f49ba (patch) | |
tree | 303845f3b25af7fe42b44c815726a100ad607c51 | |
parent | f385fb50ed694e9ae7173d5f82f78994a0a610b0 (diff) |
microtype (30apr16)
git-svn-id: svn://tug.org/texlive/trunk@40825 c570f23f-e606-0410-a88d-b1316a301751
33 files changed, 1656 insertions, 952 deletions
diff --git a/Master/texmf-dist/doc/latex/microtype/README b/Master/texmf-dist/doc/latex/microtype/README deleted file mode 100644 index 5ed6f9cdada..00000000000 --- a/Master/texmf-dist/doc/latex/microtype/README +++ /dev/null @@ -1,78 +0,0 @@ - - - The `microtype' package - Subliminal refinements towards typographical perfection - =================================== - v2.5a 2013/05/23 - - -* Overview - ---------- - -The `microtype' package provides a LaTeX interface to the micro-typographic -extensions that were introduced by pdfTeX and have since also propagated to -XeTeX and LuaTeX: most prominently, character protrusion and font expansion, -furthermore the adjustment of interword spacing and additional kerning, as -well as hyphenatable letterspacing (tracking) and the possibility to disable -all or selected ligatures. -These features may be applied to customisable sets of fonts, and all micro- -typographic aspects of the fonts can be configured in a straight-forward -and flexible way. Settings for various fonts are provided. - -Note that character protrusion requires pdfTeX (version 0.14f or later), -LuaTeX, or XeTeX (at least version 0.9997). Font expansion works with pdfTeX -(version 1.20 for automatic expansion) or LuaTeX. The package will by default -enable protrusion and expansion if they can safely be assumed to work. -Disabling ligatures requires pdfTeX (at least version 1.30) or LuaTeX, while -the adjustment of interword spacing and of kerning only works with pdfTeX -(at least 1.40). Letterspacing is available with pdfTeX (1.40) or LuaTeX (0.62). - -The alternative package `letterspace', which also works with plain TeX, -provides the user commands for letterspacing only, omitting support for all -other extensions. - -The documentation can be found in microtype.pdf. - - -* Installation - -------------- - - To install the package, use one of the following methods - (in decreasing order of simplicity): - - - Use the package manager of your TeX system - (TeXLive: tlmgr install microtype - MiKTeX: MiKTeX Package Manager) - - - Download microtype.tds.zip from CTAN, - extract it in the root of one of your TDS trees, - and update the filename database - - - Get the source (microtype.zip) from CTAN and extract it, - run latex on microtype.ins to generate the package and configuration files, - and move all generated files into a directory where LaTeX will find them, - e.g., TEXMF/tex/latex/microtype/ - - -* License - --------- - -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: -http://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 `author-maintained'. - -This work consists of the files `microtype.dtx' and `microtype.ins' and the -derived files `microtype.sty', `microtype-pdftex.def', `microtype-xetex.def', -`microtype-luatex.def', `microtype.lua' and `letterspace.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. - - ---------------------------------------------------- - Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> - ---------------------------------------------------- diff --git a/Master/texmf-dist/doc/latex/microtype/README.md b/Master/texmf-dist/doc/latex/microtype/README.md new file mode 100644 index 00000000000..b77d19f8a6f --- /dev/null +++ b/Master/texmf-dist/doc/latex/microtype/README.md @@ -0,0 +1,80 @@ + +The `microtype` package +======================= + +**Subliminal refinements towards typographical perfection** + + (v2.6 -- 2016/05/01) + + +Overview +-------- + +The `microtype` package provides a LaTeX interface to the micro-typographic +extensions that were introduced by pdfTeX and have since also propagated to +LuaTeX and XeTeX: most prominently, character protrusion and font expansion, +furthermore the adjustment of interword spacing and additional kerning, as +well as hyphenatable letterspacing (tracking) and the possibility to disable +all or selected ligatures. + +These features may be applied to customisable sets of fonts, and all +micro-typographic aspects of the fonts can be configured in a straight-forward +and flexible way. Settings for various fonts are provided. + +*Note that character protrusion requires pdfTeX (version 0.14f or later), +LuaTeX, or XeTeX (at least version 0.9997). Font expansion works with pdfTeX +(version 1.20 for automatic expansion) or LuaTeX. The package will by default +enable protrusion and expansion if they can safely be assumed to work. +Disabling ligatures requires pdfTeX (at least version 1.30) or LuaTeX, while +the adjustment of interword spacing and of kerning only works with pdfTeX +(at least 1.40). Letterspacing is available with pdfTeX (1.40) or LuaTeX (0.62).* + +The alternative package `letterspace`, which also works with plain TeX, +provides the user commands for letterspacing only, omitting support for all +other extensions. + +The documentation can be found in `microtype.pdf`. + + +Installation +------------ + +To install the package, use one of the following methods +(in decreasing order of simplicity): + +- Use the package manager of your TeX system + (TeXLive: `tlmgr install microtype`; + MiKTeX: MiKTeX Package Manager). + +- Download `microtype.tds.zip` from CTAN, + extract it in the root of one of your TDS trees, + and update the filename database. + +- Get the source (`microtype.zip`) from CTAN and extract it, + run `latex` on `microtype.ins` to generate the package and configuration files, + and move all generated files into a directory where LaTeX will find them, + e.g., `TEXMF/tex/latex/microtype/`. + + +License +------- + +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: +http://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 'author-maintained'. + +This work consists of the files `microtype.dtx` and `microtype.ins` and the +derived files `microtype.sty`, `microtype-pdftex.def`, `microtype-luatex.def`, +`microtype-xetex.def`, `microtype.lua` and `letterspace.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. + +------------------------------------------------------ +Copyright (c) 2004--2016 R Schlicht `<w.m.l@gmx.net>` +------------------------------------------------------ diff --git a/Master/texmf-dist/doc/latex/microtype/microtype.pdf b/Master/texmf-dist/doc/latex/microtype/microtype.pdf Binary files differindex bf9d1c1682b..6b2b60543c3 100644 --- a/Master/texmf-dist/doc/latex/microtype/microtype.pdf +++ b/Master/texmf-dist/doc/latex/microtype/microtype.pdf diff --git a/Master/texmf-dist/doc/latex/microtype/test-microtype.tex b/Master/texmf-dist/doc/latex/microtype/test-microtype.tex index 57d13966c87..0f9d05e750e 100644 --- a/Master/texmf-dist/doc/latex/microtype/test-microtype.tex +++ b/Master/texmf-dist/doc/latex/microtype/test-microtype.tex @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This file might be useful to test protrusion settings for a font. diff --git a/Master/texmf-dist/source/latex/microtype/microtype-utf.dtx b/Master/texmf-dist/source/latex/microtype/microtype-utf.dtx index b35af6be1f9..eb10bc5d2fd 100644 --- a/Master/texmf-dist/source/latex/microtype/microtype-utf.dtx +++ b/Master/texmf-dist/source/latex/microtype/microtype-utf.dtx @@ -2,11 +2,11 @@ % ^^A messages to WinEdt: % !Mode:: "TeX:DTX:UK" % !smartQuote:: "English" -% !DTXversion:: "2.5a" +% !DTXversion:: "2.6" % ------------------------------------------------------------------------ % The `microtype' package % Subliminal refinements towards typographical perfection -% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> % % 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 @@ -17,8 +17,8 @@ % This work has the LPPL maintenance status `author-maintained'. % % This work consists of the files microtype.dtx and microtype.ins and the -% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -% microtype-luatex.def, microtype.lua and letterspace.sty. +% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +% microtype-xetex.def, microtype.lua and letterspace.sty. % % Modified versions of the configuration files (*.cfg) may be distributed % provided that: (1) the original copyright statement is not removed, and @@ -27,7 +27,7 @@ % \ProvidesFile %<*driver> - {\jobname.dtx}[2013/05/23 v2.5a] + {\jobname.dtx}[2016/05/01 v2.6] %</driver> %<CharisSIL> {mt-CharisSIL.cfg}[2013/03/13 v1.0 microtype config. file: Charis SIL (RS)] %<LatinModernRoman> {mt-LatinModernRoman.cfg}[2013/03/13 v1.0 microtype config. file: Latin Modern Roman (RS)] @@ -35,15 +35,77 @@ %<*driver> \documentclass[10pt,a4paper]{ltxdoc} \usepackage{fontspec} -\usepackage{microtype-doc} % there will be errors with luatex because of the non-utf \nobreakspace -- just ignore them! +\usepackage{luatexbase} +\RequireLuaModule{luainputenc} \makeatletter - \def\setmacrofont#1{\def\macro@font{#1}} +% 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} \newfontface\LMR{Latin Modern Roman} \newfontface\CharisSIL{Charis SIL} \newfontface\PalatinoLinotype{TeX Gyre Pagella} -\linespread{1.07} % this isn't set correctly for some reason -\textheight=626pt +\textheight=626pt % this isn't set correctly for some reason +\usepackage{luacode} +\tracinglostchars2 +% we replace any missing characters (in Palatino) with CharisSIL +% the lua code is mostly stolen from http://tex.stackexchange.com/a/120529 and http://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") +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.insert_after(head,n,node.copy(color_pop)) + n.font = fallbackfont + if not fontcharacters[fallbackfont][char] then -- not even in Charis SIL + n.char = 0xFFFD + end + end + end + end + return head, false +end +luatexbase.add_to_callback("pre_linebreak_filter", nodeprocessor, "replace missing glyphs") +\end{luacode} \DisableCrossrefs +\RecordChanges \begin{document} \DocInput{\jobname.dtx} \end{document} @@ -51,7 +113,9 @@ % \fi %\StopEventually{} % -%\GeneralChanges* +%\GeneralChanges{Documentation} +%\changes{v2.5a}{2013/05/15}{include OpenType configuration files} +%\changes{v2.6}{2015/12/07}{missing characters printed with Charis <SIL>} %\ImplementationSettings %\InputIfFileExists{microtype-utf.tmp}\relax\relax %\edef\startpage{\thepage} @@ -62,17 +126,16 @@ % %\section{OpenType configuration files} % -% These are the configuration files for the following OpenType fonts:\footnote{This is file \file{microtype-utf.dtx}.} +% These are the configuration files for the following OpenType fonts:\footnote{This is file \file{\jobname.dtx}.} % %\begin{itemize} % \item {\LMR % Latin Modern Roman} % \item {\CharisSIL -% Charis <SIL>}\footnote{This font is available at -% \url{http://scripts.sil.org/CharisSILfont}.} +% Charis <SIL>}\footnote{Available at \url{http://scripts.sil.org/CharisSILfont}.} % \item {\PalatinoLinotype % Palatino Linotype}\footnote{These settings have been contributed by -% \contributor Loren Davis <davislo\at eecs.oregonstate.edu>.} +% \contributor Loren B. Davis <davislo\at eecs.oregonstate.edu>.} %\end{itemize} % %\noindent @@ -92,10 +155,10 @@ %%% ----------------------------------------------------------------------- %%% INHERITANCE -%% for xetex (EU1) and luatex (EU2) +%% for xetex (EU1) and luatex (EU2), resp. both (TU) %<*LatinModernRoman> \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman } % \end{macrocode} %{\setmacrofont\LMR @@ -162,7 +225,7 @@ %</LatinModernRoman> %<*CharisSIL> \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL } % \end{macrocode} %{\setmacrofont\CharisSIL @@ -293,12 +356,13 @@ %</CharisSIL> %<*PalatinoLinotype> \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype} } % \end{macrocode} % Unfortunately, I don't have a Palatino variant containing all of the following -% glyphs, which will therefore not show up here. The following is typeset in -% \TeX\ Gyre Pagella. +% glyphs. The settings are typeset in \TeX\ Gyre Pagella; +% missing glyphs, printed in red, are taken from Charis <SIL>; +% glyphs missing even in Charis <SIL> appear as `\char"FFFD'. % To see the real settings, consult \file{mt-PalatinoLinotype.cfg}. %{\setmacrofont\PalatinoLinotype % \begin{macrocode} @@ -372,7 +436,7 @@ %<*LatinModernRoman> \SetProtrusion [ name = LMR-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman } { % \end{macrocode} @@ -431,7 +495,7 @@ « = {300,200}, » = {100,400}, ¡ = {100, }, ¿ = {100, }, ( = {300, }, ) = { ,300}, - < = {200,100}, > = {100,200}, + < = {200,100}, > = {100,200}, /braceleft = {400,200}, /braceright = {200,400}, /angleleft = {400, }, /angleright = { ,400}, † = {100,100}, @@ -478,7 +542,7 @@ \SetProtrusion [ name = LMR-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman, shape = {it,sl} } { @@ -627,7 +691,7 @@ %<*CharisSIL> \SetProtrusion [ name = Charis-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL } { % \end{macrocode} @@ -697,7 +761,7 @@ « = {200,200}, » = {150,300}, ¡ = {100, }, ¿ = {100, }, ( = {200, }, ) = { ,200}, - < = {200,150}, > = {100,200}, + < = {200,150}, > = {100,200}, [ = {100, }, ] = { ,100}, /braceleft = {200, }, /braceright = { ,300}, † = { 80, 80}, @@ -806,7 +870,7 @@ \SetProtrusion [ name = Charis-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL, shape = {it,sl} } { @@ -863,7 +927,7 @@ ‹ = {300,400}, › = {200,500}, « = {200,300}, » = {150,400}, ( = {200, }, ) = { ,200}, - < = {200,200}, > = {200,200}, + < = {200,200}, > = {200,200}, /braceleft = {300, }, /braceright = { ,200}, % Cyrillic Ж = {50,30}, @@ -917,7 +981,7 @@ \SetProtrusion [ name = Charis-sc, load = Charis-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL, shape = {sc} } { @@ -951,7 +1015,7 @@ %<*PalatinoLinotype> \SetProtrusion [ name = palatino-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype} } { % \end{macrocode} @@ -1053,7 +1117,7 @@ \SetProtrusion [ name = palatino-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype}, shape = {it,sl} } { @@ -1152,7 +1216,7 @@ \SetProtrusion [ name = palatino-sc, load = palatino-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype}, shape = sc } { diff --git a/Master/texmf-dist/source/latex/microtype/microtype.dtx b/Master/texmf-dist/source/latex/microtype/microtype.dtx index 78c2450e83a..7415061d05c 100644 --- a/Master/texmf-dist/source/latex/microtype/microtype.dtx +++ b/Master/texmf-dist/source/latex/microtype/microtype.dtx @@ -2,13 +2,11 @@ % ^^A messages to WinEdt: % !Mode:: "TeX:DTX:UK" % !smartQuote:: "English" -% !DTXversion:: "2.5a" -% ------------------------------------------------------------------------ -% $Id: microtype.dtx,v 1.72 2013-05-23 20:35:08+02 schlicht Exp schlicht $ +% !DTXversion:: "2.6" % ------------------------------------------------------------------------ % The `microtype' package % Subliminal refinements towards typographical perfection -% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> % % 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 @@ -19,8 +17,8 @@ % This work has the LPPL maintenance status `author-maintained'. % % This work consists of the files microtype.dtx and microtype.ins and the -% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -% microtype-luatex.def, microtype.lua and letterspace.sty. +% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +% microtype-xetex.def, microtype.lua and letterspace.sty. % % Modified versions of the configuration files (*.cfg) may be distributed % provided that: (1) the original copyright statement is not removed, and @@ -40,7 +38,7 @@ %<luatex-def> {microtype-luatex.def} %<xetex-def> {microtype-xetex.def} %<*package|letterspace|m-t|pdftex-def|luatex-def|xetex-def> - [2013/05/23 v2.5a + [2016/05/01 v2.6 %<package> Micro-typographical refinements %<letterspace> Robust letterspacing %<m-t> microtype main configuration file @@ -48,7 +46,7 @@ %<pdftex-def> pdftex %<luatex-def> luatex %<xetex-def> xetex - (RS)] + (RS)] %</package|letterspace|m-t|pdftex-def|luatex-def|xetex-def> %<*config> %<bch> {mt-bch.cfg}[2007/03/03 v1.5 microtype config. file: Bitstream Charter (RS)] @@ -76,19 +74,21 @@ %</driver> % Let's abolish CM! We use Charter and Letter Gothic % (for the pre-built documentation on CTAN): + \usepackage[T1]{fontenc} \usepackage[charter]{mathdesign} \def\rmdefault{bch} % not scaled \def\sfdefault{SourceSansPro-TLF} - \newcommand*{\SourceSansPro@scale}{1.02} + \def\SourceSansPro@scale{1.02} \def\ttdefault{blg} {\ttfamily\selectfont \DeclareFontShape{T1}{blg}{k}{n}{<-> ssub * blg/b/n}{}} + \usepackage{textcomp} \usepackage{ifpdf,ifluatex,ifxetex} %<*!docsty> +\ifxetex\else \usepackage[latin1]{\ifluatex lua\fi inputenc} +\fi %</!docsty> -\usepackage[T1]{fontenc} -\usepackage{textcomp} \GetFileInfo{\jobname.dtx} \usepackage[expansion=false,kerning=true]{microtype}[\filedate] \DeclareMicrotypeSet*[protrusion] @@ -118,32 +118,32 @@ \IfFileExists{t1mwr.fd} {\def\textfrak##1{{\fontfamily{mwr}\selectfont ##1}} \ifpdf - \SetTracking[no ligatures={f,s,c}]{encoding=T1,family=mwr}{100} + \SetTracking[no ligatures={f,s,c}]{encoding=T1,family=mwr}{120} \fi} {\IfFileExists{yfonts.sty} {\usepackage{yfonts} \ifpdf - \SetTracking[no ligatures={f,s,c}]{encoding=LY,family=yfrak}{100} + \SetTracking[no ligatures={f,s,c}]{encoding=LY,family=yfrak}{120} \fi} {\def\textfrak{\rule{.5em}{1.5ex}\@gobble}}} \tolerance=700 \ifpdf + \ifluatex % microtype.dtx finally compiles with 0.35! + \microtypesetup{kerning=false} + \def\pdftexversion{200} % in TeX Live 2015, they let this to \luatexversion + \fi \ifnum\pdftexversion<140 \else % pdftex 1.40, including textmatrix patch, \microtypesetup{expansion=alltext,step=1} % hence we can activate expansion ... \tolerance=300 % ... and make TeX almost as intolerant as it normally is \g@addto@macro\macrocode{\microtypesetup{expansion=false}} - \pdfminorversion=5 % for the OCGs + \pdfminorversion=5 % for the OCGs (default since TeX Live 2010) \fi % bonus material \InputIfFileExists{microtype-logo.dtx}\relax\relax \InputIfFileExists{microtype-lssample.dtx}\relax\relax - \usepackage{pdfpages} \else \let\lsstyle\relax \fi -\ifluatex % microtype.dtx finally compiles with 0.35! - \microtypesetup{kerning=false} -\fi \ifxetex \microtypesetup{kerning=false} \fi @@ -177,10 +177,10 @@ \else \def\bfdefault{b} \def\Module#1{{\color{theblue}\textoractual{$\langle$}{<}\textit{#1}\textoractual{$\rangle$}{>}}} - \def\TeX{\textoractual{T\kern-.1667em\lower.4ex\hbox{E}\kern-.125emX\@}{TeX}} + \def\TeX{\textoractual{T\kern-.1em\lower.4ex\hbox{E}\kern-.075emX\@}{TeX}} \DeclareRobustCommand\LaTeX{\textoractual{L\kern-.26em{\sbox\z@ T\vbox to\ht\z@{% \hbox{\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont A}% - \vss}}}{La}\kern-.1em\TeX} + \vss}}}{La}\kern-.075em\TeX} \def\PackageFont{\ttfamily} \def\match{{\large\raisebox{-.15em}{\textbullet}}} {\catcode`\`=\active % indiscernible from ' in Bitstream Letter Gothic @@ -196,15 +196,15 @@ \def\section{\@startsection {section}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% - {\normalfont\Large\fontseries{k}\sffamily\color{sectioning}}} + {\normalfont\Large\ifcmr\fontseries{bx}\else\fontseries{k}\fi\sffamily\color{sectioning}}} \def\subsection{\@startsection{subsection}{2}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\normalfont\large\fontseries{k}\sffamily\color{sectioning}}} + {\normalfont\large\ifcmr\fontseries{bx}\else\fontseries{k}\fi\sffamily\color{sectioning}}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\normalfont\normalsize\fontseries{k}\sffamily\color{sectioning}}} + {\normalfont\normalsize\ifcmr\fontseries{bx}\else\fontseries{k}\fi\sffamily\color{sectioning}}} \def\paragraph{\@startsection{paragraph}{4}% {0pt}{8pt plus 2pt minus 1pt}{-1em}% {\normalfont\normalsize\itshape}} @@ -229,7 +229,7 @@ \let\@oddfoot\@empty \let\@mkboth\markboth \def\sectionmark##1{\markboth{\textls*[70]{\MakeUppercase{##1}}}{}} - \def\subsectionmark##1{\markright{: ##1}}} + \def\subsectionmark##1{\markright{\,: ##1}}} \pagestyle{MTheadings} % toc \let\l@section@\l@section @@ -251,7 +251,7 @@ \fi \def\defspecial@toc#1#2#3{\long\def#1{% \ifpdf\phantomsection\specialoutline\pdfbookmark[1]{#2}{#3}\normaloutline\fi - \section*{#2}\@mkboth{\textls*[60]{\MakeUppercase{#2}}}{}% + \section*{#2}\@mkboth{\textls*[70]{\MakeUppercase{#2}}}{}% \@starttoc{#3}}} \defspecial@toc\tableofcontents\contentsname{toc} \defspecial@toc\listoftables\listtablename{lot} @@ -293,7 +293,7 @@ \expandafter\list \csname\@itemitem\endcsname {\ifnum\@itemdepth=\@ne\leftmargin 0pt\fi - \def\makelabel##1{\hss\llap{##1}}}% + \def\makelabel##1{\hss\llap{\color{sectioning}##1}}}% \fi} {\endlist} \newenvironment{enum}[1][0] @@ -320,20 +320,22 @@ \setlength\arrayrulewidth{0.4pt} % tables \setlength\tabcolsep{2pt} +\newbox\mt@box +\newdimen\mt@unvdimen \long\def\@makecaption#1#2{% \setbox\mt@box\vbox{\llap{\vbox{% \fboxsep = 4pt \vskip\dimexpr\floatsep-4pt+\fboxrule\relax \hsize\dimexpr\marginparwidth-\marginparsep-4pt-\fboxrule\relax \rightskip\dimexpr\marginparsep+4pt+\fboxrule\relax plus 2.5em - \footnotesize {\sffamily#1:}\\[-\dimexpr\aboverulesep+\cmidrulewidth+3.5\fboxrule] - \textcolor{theframe}{\vrule width \hsize height\fboxrule}\\[.3\baselineskip]\sffamily#2}}} + \footnotesize \sffamily #1:\\[-\dimexpr\aboverulesep+\cmidrulewidth+3.5\fboxrule] + \textcolor{theframe}{\rlap{\vrule width \hsize height\fboxrule}}\\[.3\baselineskip] #2}}} \mt@unvdimen\dimexpr\ht\mt@box+\dp\mt@box\relax \unvbox\mt@box \vskip-\mt@unvdimen} % index and change log \IndexPrologue{\section{Index}% - Links (in blue) refer to the page where the corresponding entry is described - (bold face) resp. occurs. Plain numbers (in black) refer to the code line + Numbers in upright shape refer to the page where the corresponding entry is described + (bold face) resp. occurs. Numbers in italics refer to the code line where the corresponding entry is defined (underlined) resp. used.} \GlossaryPrologue{\section{Change history}\label{sec:changes}\vspace*{-\multicolsep}} %\setcounter{finalcolumnbadness}{100} @@ -346,24 +348,30 @@ \end{multicols} \vspace*{-2\baselineskip}% \begin{multicols}{2} - \llap{\sffamily\mdseries\color{thegrey}\footnotesize - \hbox to 1em{\hss#1\hss}\hskip\marginparsep}% - \vspace*{-\baselineskip}% - \IndexParms %\rightskip 15pt - \let\item\@idxitem - \raggedcolumns}} + \ifpdf{\let\bfseries\empty\let\hfil\empty\phantomsection\pdfbookmark[2]{#1}{#1}}\fi + \setbox0\hbox{\sffamily\hss#1}% + \ifdim\wd0<1em \setbox0\hbox to 1em{\sffamily\hss#1\hss}\fi + \llap{\color{thegrey}\box0\hskip\marginparsep}% + \vspace*{-\baselineskip}% + \IndexParms %\rightskip 15pt + \let\item\@idxitem + \raggedcolumns}} \def\GlossaryParms{\IndexParms + \let\indexspace\relax \def\@idxitem ##1##2\efill{% \end{multicols} - \begin{multicols}{2}[\subsubsection*{\if##1v\relax - \llap{\mdseries\color{thegrey}\footnotesize - \csname MTversiondate##2\endcsname\hskip\marginparsep}% - Version ##2\else ##2\fi}][5\baselineskip] - \ifpdf \phantomsection \pdfbookmark[2]{\if##1v\relax ##2 - (\csname MTversiondate##2\endcsname)\else ##2\fi}{subsection##2}\fi - \GlossaryParms \rightskip 15pt plus 5pt - \let\item\@idxitem - \ignorespaces \makeatletter \scan@allowedfalse}% + \ifpdf \vspace{-3.25ex}% + \pdfbookmark[2]{\if##1v\relax ##2 + (\csname MTversiondate##2\endcsname)\else ##2\fi} + {subsection\zap@space ##2 \@empty}\fi + \begin{multicols}{2}[% + \subsubsection*{\if##1v\relax + \llap{\mdseries\color{thegrey}\footnotesize + \csname MTversiondate##2\endcsname\hskip\marginparsep}% + Version ##2\else ##2\fi}][6\baselineskip] + \GlossaryParms \rightskip 15pt plus 5pt + \let\item\@idxitem + \ignorespaces \makeatletter \scan@allowedfalse}% \def\subitem{\par\hangindent 15pt}% \def\subsubitem{\subitem\hspace*{7.5pt}}} % macro code @@ -422,16 +430,32 @@ \def\OptionSep{{\rmfamily, }} \def\MacroSep{\,} \def\EnvironmentSep{\,} \def\PrintValues[#1]{{\MacroFont\expandafter\@gobble\@tempa\hfill #1}\\*[.25\baselineskip]} \def\CatIndex#1#2{\index{#1\actualchar{\protect\ttfamily #1} (#2)\encapchar hyperpage}} -\def\SpecialOptionIndex#1{\@bsphack\CatIndex{#1}{option}% - \index{\quotechar!Options % the `!' will be sorted first - \actualchar{\protect\bfseries Options:}% - \levelchar{\protect\ttfamily#1}\encapchar usage}\@esphack} -\def\SpecialUsageIndex#1{\@bsphack{\index{\quotechar!User Commands - \actualchar{\protect\bfseries User Commands:}% - \levelchar\expandafter\@gobble\string#1\actualchar\string\verb +\def\SpecialOptionIndex#1{\@bsphack + \index{\quotechar/#1% sort options as `Symbols' + \actualchar{\protect\ttfamily#1}\encapchar usage}% + \CatIndex{#1}{option}\@esphack} +\def\SpecialUsageIndex#1{\@bsphack + \index{\quotechar1% sort commands as `Numbers' + \actualchar\string\verb \quotechar*\verbatimchar\string#1\verbatimchar\encapchar usage}% - \let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}\@esphack} + {\let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}\@esphack} \def\SpecialEnvIndex#1{\CatIndex{#1}{environment}} +%</driver|docsty> +% microtype's index style (microtype-gind.ist): +%<docist>actual '=' +%<docist>quote '!' +%<docist>level '>' +%<docist>preamble "\n \\begin{theindex} \n \\makeatletter\\scan@allowedfalse\n\\indexspace" +%<docist>postamble "\n\n \\end{theindex}\n" +%<docist>item_x1 "\\efill \n \\subitem " +%<docist>delim_0 "\\pfill " +%<docist>delim_1 "\\pfill " +%<docist>heading_prefix "{\\bfseries\\hfil " +%<docist>heading_suffix "\\hfil}\\nopagebreak\n" +%<docist>headings_flag 1 +%<docist>symhead_positive "Options" +%<docist>numhead_positive "Commands" +%<*driver|docsty> \def\PrintDescribeMacro#1{\strut\MacroFont\color{thegreen}\string #1} \def\PrintDescribeEnv#1{\strut\MacroFont\bslash begin\{{\color{thegreen}#1}\}% \\*[.25\baselineskip]\strut\bslash end\{{\color{thegreen}#1}\}} @@ -472,7 +496,8 @@ keywordstyle=[0]\color{thegreen}, keywords=[1]{protrusion,expansion,activate,DVIoutput,draft,final,verbose, config,factor,auto,stretch,shrink,step,selected,unit,tracking,kerning, - spacing,letterspace,babel,context,%defersetup,copyfonts, % undocumented + spacing,letterspace,babel,context, + %defersetup,copyfonts,enable,disable,% undocumented noligatures,outerspacing,outerkerning}, % there are three \nobreakspace in this line keywordstyle=[1]\color{thered}, comment=[l]\%, @@ -484,8 +509,9 @@ \let\verbatim\relax \lstnewenvironment{verbatim}[1][]{\lstset{##1}}{} \ifpdf \IfFileExists{dummy-space.pfb}{% - \pdfmapline{+dummy-space <dummy-space.pfb} + \pdfmapline{=dummy-space <dummy-space.pfb} \font\dummyspace=dummy-space + \pdfglyphtounicode{space}{0020} \def\lst@outputspace{% copy spaces (from a font that really has a space at x20) \setbox0\hbox{ }\@tempdima\wd0 \setbox0\hbox{\dummyspace\char"20}\advance\@tempdima-\wd0 @@ -494,7 +520,10 @@ }{ \let\lstset\@gobble } -%\def\todo{\changes{zTo Do}{0000/00/00}} +\def\todo#1{\changes{zTo Do}{0000/00/00}{#1}% + \marginpar{\rightskip2\marginparsep plus1em\hangindent1.5em\hangafter-2 + \smash{\rlap{\raisebox{-3.3ex}{\colorbox{thered}{\Large\color{white}!}}}}% + \footnotesize\textcolor{thered}{#1}}} \let\todo\@gobble \newcommand\microtypesample[1]{\begin{quote}#1\end{quote}} \let\emptypdfpageresources\relax @@ -510,18 +539,18 @@ {hyperref} \usepackage{hyperxmp} \usepackage{attachfile} - %\usepackage{pdfpages} + \usepackage{pdfpages} \hypersetup{ pdftitle={The microtype package}, pdfauthor={R Schlicht <w.m.l@gmx.net>}, pdfsubject={Subliminal refinements towards typographical perfection}, pdfkeywords={TeX, LaTeX, pdfTeX, LuaTeX, XeTeX, typography, micro-typography, character protrusion, margin kerning, optical alignment, font expansion, - font scaling, hz, kerning, spacing, glue, letterspacing, tracking, ligatures} + font scaling, hz, kerning, spacing, glue, letterspacing, tracking, ligatures}, pdfcopyright={\textcopyright\ 2004--2013 R Schlicht\012% 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.\&\#xA;% + license or (at your option) any later version.\012% This work has the LPPL maintenance status `author-maintained'.}, pdflicenseurl={http://www.latex-project.org/lppl/} } @@ -536,19 +565,20 @@ \string\verb\quotechar*\verbatimchar\saved@macroname\verbatimchar\fi :\levelchar #3\encapchar hyperpage}}% \@tempa\endgroup\@esphack} - %\def\theCodelineNo{% % ... and everything else (would double the pdf file size) - % \reset@font\color{thegrey}\scriptsize - % \@tempcnta\arabic{CodelineNo}\advance\@tempcnta by\@ne - % \hypertarget{L:\number\@tempcnta}{\arabic{CodelineNo}}} - %\def\main#1{\underline{\hyperlink{L:#1}{#1}}} - %\def\codeline#1{\link@sanitize#1-\@nil{#1}} - %\def\link@sanitize#1-#2\@nil{\link@@sanitize#1,\@nil} - %\def\link@@sanitize#1,#2\@nil{\hyperlink{L:#1}} - %\def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble - % \string#1\actualchar - % \string\verb\quotechar*\verbatimchar\string#1\verbatimchar - % \encapchar codeline}% - % \@esphack} + \def\theCodelineNo{% ... and everything else + \reset@font\sffamily\color{thegrey}\scriptsize + \@tempcnta\arabic{CodelineNo}\advance\@tempcnta by\@ne + \hypertarget{L:\number\@tempcnta} + {\textoractual{\arabic{CodelineNo}\ }{}}}% don't copy line numbers + \def\main#1{\underline{\itshape\hyperlink{L:#1}{#1}}} + \def\codeline#1{{\itshape\link@sanitize#1-\@nil{#1}}} + \def\link@sanitize#1-#2\@nil{\link@@sanitize#1,\@nil} + \def\link@@sanitize#1,#2\@nil{\hyperlink{L:#1}} + \def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble + \string#1\actualchar + \string\verb\quotechar*\verbatimchar\string#1\verbatimchar + \encapchar codeline}% + \@esphack} \def\ctanurl#1{Available from \acronym{CTAN} at \href{http://mirror.ctan.org/#1}{\nolinkurl{/#1}}} \DeclareRobustCommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}} @@ -578,8 +608,6 @@ /BaseState/OFF /ON [\mt@Protrusion@false \mt@Expansion@false \ifx\mtl@objects\@undefined\else\mtl@objects\fi] >> >> } - \newbox\mt@box - \newdimen\mt@unvdimen \def\mt@place#1{% \vskip-\mt@unvdimen \setbox\mt@box\vbox{#1}% @@ -594,7 +622,7 @@ \mt@layer{Protrusion#1}{% \mt@layer{Expansion#2}{% \mt@place{\microtypesetup{protrusion=#1,expansion=#2}% - \mt@sample@text}}}} + \mt@sample@text\strut}}}} \def\mt@toggle@sample#1{% \pdfstartlink user{/Subtype/Link /BS << /Type/Border/W 1 /S/D /D[4 1] >> @@ -648,36 +676,39 @@ \let\nolinkurl\url \let\mailto\texttt \def\mailtoRS{\mailto{w.m.l@gmx.net}} + \let\href\texttt + \newcommand\textattachfile[3][]{#3 \textit{[File \file{#2} not attached, + because \file{microtype.dtx} hasn't been compiled with \pdftex.]}} \fi \ifx\l@ukenglish\@undefined \hyphenation{let-ter-spac-ing let-ter-spaced let-ter-space} \else \language=\l@ukenglish \fi -\hyphenation{An-dre-as Ber-nard Ha-rald Mi-cha-el Pe-ter Ste-phan Wolf-ram - Har-ders Hop-pe Jac-kow-ski Ku-char-czyk Mei-er Mu-the-si-us Zed-ler - Die-te-rich - Sveinung % ? - Marcin % ? - RazorXsr +\hyphenation{%An-dre-as Ber-nard Ha-rald Mi-cha-el Pe-ter Ste-phan Wolf-ram + %Har-ders Hop-pe Jac-kow-ski Ku-char-czyk Mei-er Mu-the-si-us Zed-ler + %Die-te-rich Sveinung Marcin RazorXsr + Dyballa Maverick with-out Pa-la-ti-no} \def\fallbacktext#1{{\centering\itshape[#1]\par}} % abbreviations -\DeclareRobustCommand\thanh{H\`an Th\^e% - \ifx\eTeXversion\undefined \llap{\raisebox{0.5ex}{\'{}}} - \else \llap{\raisebox{0.45ex}{\'{}\kern\dimexpr.05em-2\fontdimen1\font\relax}} - \fi Th\`anh} -\def\pdftex{\texorpdfstring{pdf\kern.05em\TeX}{pdfTeX}} -\def\luatex{\texorpdfstring{Lua\kern-.05em\TeX}{LuaTeX}} -\def\etex{\mbox{e-\TeX}} -\def\nonetex{\mbox{\rlap{\kern.05em/}e-\TeX}} % aka. \TeX +\DeclareRobustCommand\thanhthe{Th\^e% + \ifx\eTeXversion\undefined \llap{\raisebox{0.5ex}{\'{}}}% + \else \llap{\raisebox{0.45ex}{\'{}\kern\dimexpr.05em-2\fontdimen1\font\relax}}% + \fi} +\DeclareRobustCommand\thanh{H\`an \thanhthe{} Th\`anh} +\DeclareRobustCommand\pdftex{\texorpdfstring{pdf\kern.05em\TeX}{pdfTeX}} +\DeclareRobustCommand\luatex{\texorpdfstring{Lua\kern-.05em\TeX}{LuaTeX}} +\DeclareRobustCommand\etex{\mbox{e-\kern-.075em\TeX}} +\DeclareRobustCommand\nonetex{\rlap{\kern.05em/}\etex} % aka. \TeX \def\@reflect#1{\ifdim\fontdimen1\font=0pt \reflectbox{#1}% \else \rotatebox[origin=c]{180}{#1}\fi} -\DeclareRobustCommand\xetex{% also reflect the initial `X'? - \textoractual{\@reflect{X}\lower.4ex\hbox{\kern-.12em\@reflect{E}}}{Xe}% - \kern-.16em\TeX} +\def\xe{% also reflect the initial `X'? + \textoractual{\@reflect{X}\lower.4ex\hbox{\kern-.066em\@reflect{E}}}{Xe}} +\DeclareRobustCommand\xetex{\xe\kern-.1em\TeX} \def\texlive{\TeX~Live} +\def\miktex{MiK\TeX} \def\microtype{{\PackageFont microtype}} \def\letterspace{\pkg{letterspace}} \def\fontdim{\cmd\fontdimen\,} @@ -693,10 +724,13 @@ {\catcode`\<=\active \AtBeginDocument{\catcode`\<=\active \def<#1>{\acronym{#1}} - \def\contributor#1 <#2\at#3>{\@contributor{#1}{#2@#3}} - \DeclareRobustCommand\@contributor[2]{\textit{#1}} - %\DeclareRobustCommand\@contributor[2]{\href{mailto:#2}{\textit{#1}}} - }} + \def\contributor#1 <#2\at#3>{\@contributor{#1}{#2@#3}}}} +\DeclareRobustCommand\@contributor[2]{\textit{#1}} +%\DeclareRobustCommand\@contributor[2]{\href{mailto:#2}{\textit{#1}}} +%\DeclareRobustCommand\@contributor[2]{\textit{#1}% +% \expandafter\index\expandafter{\@getlastname#1 \@nil\actualchar %\href{mailto:#2}{#1} +% #1 (contributor)\encapchar hyperpage}} +%\def\@getlastname#1 #2\@nil{\ifx\@nil#2\@nil#1\else\@getlastname#2\@nil\fi} %<*driver> \CodelineIndex \EnableCrossrefs @@ -721,7 +755,7 @@ % % \GetFileInfo{microtype.dtx} % \title{\ifx\printlogo\undefined\else\printlogo\fi -% \textls[70]{The \microtype\ package}\\[.3\baselineskip]\large +% \textls[40]{The \microtype\ package}\\[.3\baselineskip]\large % Subliminal refinements towards typographical perfection} % \author{R Schlicht\\\mailtoRS} % \date{\fileversion\\\filedate} @@ -732,7 +766,7 @@ %\noindent % The \microtype\ package provides a \LaTeX\ interface to the micro-typographic % extensions that were introduced by \pdftex\ and have since also propagated to -% \xetex\ and \luatex: most prominently, character protrusion and font +% \luatex\ and \xetex: most prominently, character protrusion and font % expansion, furthermore the adjustment of interword spacing and additional % kerning, as well as hyphenatable letterspacing (tracking) and the possibility % to disable all or selected ligatures. @@ -746,16 +780,16 @@ % or \luatex. % The package will by default enable protrusion and expansion if they can safely % be assumed to work. -% Disabling ligatures requires \pdftex\ ($\geq$~1.30) or \luatex, while the -% adjustment of interword spacing and of kerning only works with \pdftex\ ($\geq$~1.40). -% Letterspacing is available with \pdftex\ ($\geq$~1.40) or \luatex\ ($\geq$~0.62). +% Disabling ligatures requires \pdftex\ ($\geq$\,1.30) or \luatex, while the +% adjustment of interword spacing and of kerning only works with \pdftex\ ($\geq$\,1.40). +% Letterspacing is available with \pdftex\ ($\geq$\,1.40) or \luatex\ ($\geq$\,0.62). % % The alternative package \letterspace, which also works with plain \TeX, % provides the user commands for letterspacing only, omitting support for all % other extensions (see section~\ref{sec:lettersp}). % %\bigskip\noindent -% This package is copyright \textcopyright\ 2004\kern.09em--2013 R Schlicht. +% This package is copyright \textcopyright\ 2004\kern.09em--2016 R Schlicht. % It may be distributed and/or modified under the conditions of the % \IfFileExists{lppl.tex}{\hyperref[LPPL:LPPL]}{\href{http://www.latex-project.org/lppl/}} % {\LaTeX\ Project Public License}, @@ -766,7 +800,7 @@ % %\newpage %\emptypdfpageresources ^^A layers of the logo -%{\sffamily\def\familydefault{\sfdefault}\def\bfdefault{sb} +%{\sffamily\def\familydefault{\sfdefault}\ifcmr\else\def\bfdefault{sb}\fi % \tableofcontents % \listoftables %} @@ -826,21 +860,21 @@ % Another micro-typographic technique, which has always been extremely % difficult to achieve in \TeX, is robust and hyphenatable \emph{letterspacing % (tracking)}.\footnote{^^A -% The \cite{soul} package undertook great efforts, but could still fail in +% The \cite{soul} package undertakes great efforts, but may still fail in % certain circumstances; even to systematically adjust the tracking of a -% font throughout the document remained impossible.} +% font throughout the document remains impossible.} % Whereas letterspacing can easily be, and often is, abused when applying % it to lowercase letters, readability may be increased by slightly % letterspacing (small) capitals or by decreasing the tracking of very large % uppercase type. % -% Setting \emph{additional kerning} for characters of a font is especially -% useful for languages whose typographical tradition requires certain +% Setting \emph{additional kerning} for individual characters is especially +% (but not only) useful for languages whose typographical tradition requires certain % characters to be separated by a space. For example, it is customary in French % typography to add a small space before question mark, exclamation mark and % semi-colon, and a bigger space before the colon and the guillemets. Until -% now, this could only be achieved by making these characters active (for -% example by the \pkg{babel} package), which may not always be a robust +% now, this could only be achieved by making these characters active (as is done, +% for example, the \pkg{babel} package), which may not always be a robust % solution. In contrast to the standard kerning built into the fonts % (which will of course apply as usual), this additional kerning relates to % single characters, not to character pairs. @@ -858,8 +892,8 @@ % improvements. I suggest reading the reasoning behind the settings in % section~\ref{sub:conf-spacing}. % -% The possibility, finally, to \emph{disable all ligatures} of a font may be -% useful for typewriter fonts. +% The possibility, finally, to \emph{disable all ligatures} in a font is +% particularly useful for typewriter fonts. % %\emptypdfpageresources ^^A layers of the sample %\bigskip\noindent @@ -889,7 +923,7 @@ % %\changes{v2.2}{2007/06/06}{add overview} %\begin{itemize} -% \item Enable the respective micro-typographic feature, either via the +% \item Enable the desired micro-typographic features, either via the % respective package option or with the \cs{microtypesetup} command % (section~\ref{sec:options}). % \item Select the fonts to which this feature should be applied by declaring @@ -969,15 +1003,13 @@ % This option will systematically change the tracking of the fonts specified in % the active font set (by default, all small capitals). % It is not available with \xetex\ (you may use the `|LetterSpace|' -% option of the \pkg{fontspec} package instead). -% With \luatex, you need to load the fonts with the \pkg{fontspec} option -% `|Renderer=Basic|`. See the \cite{fontspec} manual for details. +% option of the \cite{fontspec} package instead). % %\medskip %\Describe{Option}{kerning}{true,!false,:font set name} %\DescribeOption{spacing} % These features do not unconditionally improve the quality of the typeset text: -% the `spacing' feature is still considered experimental, while the `kerning' +% the \opt{spacing} feature is still considered experimental, while the \opt{kerning} % feature only makes sense in special cases. % Therefore, neither feature is enabled by default. They are not available % with \xetex\ or \luatex. @@ -1040,7 +1072,7 @@ %\end{table} % %\medskip\noindent -% In table~\ref{tab:available-features}, you find an overview of which +% Table~\ref{tab:available-features} presents an overview of which % micro-typographic features are available and enabled by default for the % relevant \TeX\ versions and output modes. % @@ -1150,7 +1182,6 @@ % to +1000. % % -%\ifcmr\enlargethispage{\baselineskip}\fi ^^A layout %\subsection{Miscellaneous options}\label{sub:options-misc} % %\Describe{Option}{DVIoutput}{true,*false} @@ -1286,7 +1317,7 @@ % `|basictext|' in the main configuration file as follows: %\begin{verbatim} %\DeclareMicrotypeSet{basictext} -% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2}, +% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU}, % family = {rm*,sf*}, % series = {md*}, % size = {normalsize,footnotesize,small,large} @@ -1309,7 +1340,7 @@ % Therefore, the predefined set `|alltext|', which is declared as: %\begin{verbatim} %\DeclareMicrotypeSet{alltext} -% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} } +% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU} } %\end{verbatim} % is far less restrictive. The only condition here is that the encoding must % match. @@ -1352,7 +1383,7 @@ % not allowed. % %\medskip\noindent -% Table~\ref{tab:predefined-font-sets} lists the nine predefined font sets. +% Table~\ref{tab:predefined-font-sets} lists the eleven predefined font sets. % They may also be activated by passing their name to the feature options % \opt{protrusion}, \opt{expansion}, \opt{tracking}, \opt{kerning} and % \opt{spacing} when loading the package, for example: @@ -1370,7 +1401,7 @@ %\fcolorbox{theframe}{white}{^^A %\begin{minipage}{\textwidth} %\def\arraystretch{1.2} -%\begin{tabular}{@{}L{65pt}L{80pt}*3{L{41pt}}L{67pt}@{}} +%\begin{tabular}{@{}L{65pt}L{80pt}*2{L{40pt}}L{43pt}L{67pt}@{}} % \footnotesize Set name % & \multicolumn{5}{l}{\footnotesize Font attributes}\\ %\cmidrule{2-6} @@ -1395,9 +1426,16 @@ % & ! % & ! \\ %\cmidrule(r){1-1} +% |alltext-nott|\linebreak(|allmath-nott|) +% & Text encodings, <TS1>\linebreak (<OML>, <OMS>, <U>) +% & /\cmd\rm|*|/,\linebreak/\cmd\sf|*|/ +% & ! +% & ! +% & ! \\ +%\cmidrule(r){1-1} % |basictext|\linebreak(|basicmath|) % & Text encodings \linebreak (<OML>, <OMS>) -% & /\cmd\rm|*|/,\linebreak /\cmd\sf|*|/ +% & /\cmd\rm|*|/,\linebreak/\cmd\sf|*|/ % & /\cmd\md|*|/ % & ! % & /\cmd\normalsize/, /\cmd\footnotesize/, /\cmd\small/, /\cmd\large/\\ @@ -1406,7 +1444,7 @@ % & Text encodings % & ! % & ! -% & /\cmd\sc|*|/ +% & /\cmd\sc|*|/,/si/,/scit/ % & ! \\ %\cmidrule(r){1-1} % |footnotesize| @@ -1432,7 +1470,7 @@ %\bottomrule %\end{tabular} %\vskip4pt\footnotesize -% `Text encodings' = <OT1>, <T1>, <T2A>, <LY1>, <OT4>, <QX>, <T5>, <EU1>, <EU2> +% `Text encodings' = <OT1>, <T1>, <T2A>, <LY1>, <OT4>, <QX>, <T5>, <EU1>, <EU2>, <TU> %\hfill % `/\bslash\,\dots|*|/' = `/\bslash\,\dots|default|/' %\vskip3pt @@ -1440,6 +1478,7 @@ %}\kern-\dimexpr\fboxsep+\fboxrule\relax ^^A end \fcolorbox %\end{table} % +%\ifcmr\else\pagebreak\fi ^^A layout %\medskip %\Describe{Macro}{\UseMicrotypeSet}{?features,set name} % This command activates a font set previously declared by \cs{DeclareMicrotypeSet}. @@ -1474,22 +1513,21 @@ % three arguments; the first one is optional and may contain additional % options; in the second argument, you specify the set of fonts to which the % settings should apply; the third argument contains the actual settings. +% Here, as in all configuration commands, all spaces are ignored. % % The set of fonts to which the settings should apply is declared using the % same syntax of \meta{font axis}\,|=|\,\meta{value list} pairs as for the -% command \cs{DeclareMicrotypeSet} (see section~\ref{sec:font-sets}). Values -% with an asterisk will be translated immediately instead of at the end -% of the preamble. +% command \cs{DeclareMicrotypeSet} (see section~\ref{sec:font-sets}), with the +% only difference that values with an asterisk will be translated immediately +% instead of at the end of the preamble. % To find the matching settings for a given font the package will try all % combinations of font encoding, family, series, shape and size, % with decreasing significance in this order. For instance, if both settings for % the current family (say, |T1/cmr///|) and settings for italic fonts in the % normal weight (|T1//m/it/|) exist, those for the |cmr| family would % apply. -%\changes{v1.7}{2005/03/23}{remove table of match order}^^A -%^^A \footnote{ -%^^A For the interested, table~\ref{tab:match-order} on -%^^A page~\pageref{tab:match-order} presents the exact order.} +%\changes{v1.7}{2005/03/23}{remove table of match order +% (now table~\ref{tab:match-order} on page~\pageref{tab:match-order})} % The encoding must always match. %\iffalse %^^A TODO: When using native TrueType\slash OpenType fonts (with \xetex\ or \luatex, and @@ -1497,6 +1535,20 @@ %^^A certain |features|. %\fi % +% The characters may be specified either as a single letter (|A|), +% as a text symbol command (\cmd\textquoteleft), or as a slot number (resp. +% Unicode number for \luatex\ or \xetex): three or more digits for decimal +% notation, prefixed with~|"| for hexadecimal, with~|'| for octal numerals (\eg, the +% `fl' ligature in <T1> encoding:~|029|, |"1D|, |'35|). +% \mbox{8-bit} (and even <UTF-8>) characters may be entered directly or in +% \LaTeX's traditional \mbox{7-bit} notation: both |\"A| and \expandafter|\"A| +% are valid, provided the character is actually declared in both the input and +% the font encoding. +% With \luatex\ or \xetex, you may additionally specify a (font-specific) +% glyph name, prefixed with `|/|' (\eg, the `fl' ligature as |/f_l|). +% Note that you also have the possibility to declare lists +% of characters that should inherit settings (see section~\ref{sub:inherit}). +% %\subsection[Character protrusion] % {Character protrusion \requires{\pdftex~0.14f,\luatex~0.30,\xetex~0.9997}} % \label{sub:protrusion} @@ -1518,21 +1570,6 @@ % %\paragraph{The protrusion settings} % consist of \meta{character}\,|=|\,\meta{protrusion factors} pairs. -% -% The characters may be specified either as a single character (|A|), -% as a text symbol command (\cmd\textquoteleft), or as a slot number (resp. -% Unicode number for \luatex\ or \xetex): three or more digits for decimal -% notation, prefixed with~|"| for hexadecimal, with~|'| for octal (\eg, the -% `fl' ligature in <T1> encoding:~|029|, |"1D|, |'35|). -% \mbox{8-bit} (and even <UTF-8>) characters may be entered directly or in -% \LaTeX's traditional \mbox{7-bit} notation: both |\"A| and \expandafter|\"A| -% are valid, provided the character is actually declared in both the input and -% the font encoding. -% With \luatex\ or \xetex, you may additionally specify a (font-specific) -% glyph name, prefixed with `|/|' (\eg, the `fl' ligature as |/f_l|). -% Note that you also have the possibility to declare lists -% of characters that should inherit settings (see section~\ref{sub:inherit}). -% % The protrusion factors designate the amount that a character should be % protruded into the left margin (first value) respectively into the right % margin (second value). By default, the values are relative to the character @@ -1540,18 +1577,18 @@ % fully into the margin, while, for example, with a value of 50 it would be % protruded by 5\% of its width. Negative values are admitted, as well as % numbers larger than 1000 (but effectively not more than \EM{1} of the font). -% You can omit either number if the character should not be protruded on that +% You may omit either number if the character should not be protruded on that % side, but must not drop the separating comma. % %\paragraph{Options:} %\begin{options} % \item[\key{name}] You may assign a name to the protrusion settings, so that you % are able to load it by another list. -% \item[\key{load}] You can load another list (provided, you previously assigned +% \item[\key{load}] You can load another list (provided, you assigned % a name to it) before the current list will be loaded, so that the % fonts will inherit the values from the loaded list. % \par -% Thus, the configuration may be simplified considerably. You can for +% In this way, the configuration may be simplified considerably. You can for % instance create a default list for a font; settings for other shapes % or series can then load these settings, and extend or overwrite them % (since the value that comes last will take precedence). Font settings @@ -1616,7 +1653,7 @@ % If the \opt{selected} option has been set to true, and settings for a font % don't exist, font expansion will not be applied to this font at all. Should % the extraordinary situation arise that you want to employ selected expansion -% in general but that all characters of a particular font (set) should be +% in general but for a particular font (set) all characters should be % expanded or shrunk by the same amount, you would have to declare an empty % list for these fonts. % @@ -1651,7 +1688,7 @@ % value will be used (that is, no calculation will take place). % % As a practical example, suppose you have a paragraph containing a widow -% that could easily be avoided by shrinking the font a little bit more. +% that could be avoided by shrinking the font a bit more. % In conjunction with the |context| option (see section~\ref{sec:context} % for further details), you could thus allow for more expansion in this % particular paragraph: @@ -1665,15 +1702,15 @@ % { } % % ... END PREAMBLE % {\microtypecontext{expansion=sloppy}% -% This paragraph contains an `unnecessary' widow.} +% This paragraph contains a `fussy' widow.} %\end{verbatim} % This method of employing contexts to temporarily apply different -% expansion parameters only works with \pdftex\ version 1.40.4 or later -% (for older versions, a dirty trick is laid out in -% section~\ref{ssec:font-setup} on page~\pageref{exp-hack}). Also note -% that \pdftex\ prohibits the use of fonts with different expansion +% expansion parameters only works with \pdftex\ version 1.40.4 or later.^^A +% \footnote{For older versions, a dirty trick is laid out in +% section~\ref{ssec:font-setup} on page~\pageref{exp-hack}.} +% Also note that \pdftex\ prohibits the use of fonts with different expansion % limits or steps (even of different fonts) within one paragraph, hence -% the sloppy context has to be applied to complete paragraphs. +% the |sloppy| context has to be applied to complete paragraphs. % \item[\key{factor}] % This option provides a different method to alter expansion settings for % certain fonts, working around the restriction just mentioned. The @@ -1746,7 +1783,7 @@ % which accepts the same values as \texttt{spacing}, it may be adjusted % independently. % \item[\key{outer kerning}] -% If, on the other hand, no interword space precedes of follows, you may +% If, on the other hand, no interword space precedes or follows, you may % still want to slightly set off the first and last letter from adjoining % letters. This option expects the kerning amounts for left and right hand % side, separated by a comma, in thousandths of \EM{1} (or the current @@ -1756,8 +1793,8 @@ % by default equal to the current letterspace amount. To remove kerning on % both sides, you would write `|outer kerning={0,0}|'. % \item[\key{no ligatures}] -% As far as \pdftex\ is concerned, ligatures in letterspaced fonts would -% be constructed as usual, which may be advisable when changing the +% By default, ligatures in letterspaced fonts will be +% constructed as usual, which may be advisable when changing the % tracking by only a small amount. For larger letterspacing amounts, on % the other hand, the normal letter space within ligatures would have % displeasing \textls[150]{e\lslig{ff}ects}. @@ -1765,10 +1802,9 @@ % ligatures should be disabled; only the character that begins a ligature % must be specified. % If the key is given without a value, \emph{all} ligatures of the font -% will be disabled. This is not recommended, however, since it also -% entails that kerning will be switched off.\footnote{ -% The inseparable connexion of ligatures and kerns is a limitation of -% \TeX\ that will not be lifted before the advent of \luatex.} +% will be disabled. With \pdftex, this is not recommended, however, +% since it entails that kerning will be switched off, too. With \luatex, +% there is no such limitation. % The default settings disable ligatures for the character `|f|' only, % \ie, `ff', `fi', ffi', etc.\footnote{ % With \pdftex\ versions older than 1.40.4, \emph{all} ligatures, and @@ -1792,7 +1828,7 @@ % Since a picture is worth a thousand words, probably even more if, in our % case, it depicts a couple of letterspaced words, let's bring one to sum up % these somewhat confusing options. Suppose you had the following settings -% (which I would in no way recommend; they are only for illustrative purposes): +% (which are in no way recommended; they only serve illustrative purposes): %\begin{verbatim} %\SetTracking % [ noligatures = {"\anchorarrow{nolig}"f}, @@ -1832,7 +1868,7 @@ %\fi % example, suppose you want to space out all small % capitals by \EM{50/1000}, fonts smaller than \cmd\small\ by \EM{0.02}, and to -% decrease the tracking of large type by \EM{0.02}. You can achieve this with +% decrease the tracking of large type by \EM{0.02}. This could be achieved with % the following settings: %^^A there's a \nobreakspace ahead! %\begin{verbatim} @@ -1860,7 +1896,7 @@ %\subsection[Additional kerning] % {Additional kerning \requires{\pdftex~1.40}} % \label{sub:kerning} -% +%\todo{Rename to \cs{SetSidebearing}} %\Describe{Macro}{\SetExtraKerning}{?options,set of fonts,kerning settings} % With this command, you can fine tune the extra kerning. In contrast to % standard kerning, which is always associated with a \emph{pair} of @@ -1872,11 +1908,11 @@ % %\emptypdfpageresources ^^A layers of letterspacing illustration % -% I should not neglect to mention a limitation of this additional kerning: +% It should not be neglected to mention a limitation of this feature: % words \emph{immediately following} such a kern (not separated by a space) % will not be hyphenated, unless you insert the breakpoints manually, \eg, for % kerning after the apostrophe, `|l'apos\-trophe|'. This restriction of \pdftex\ -% will hopefully be lifted soon. +% will hopefully be lifted some time. % %\paragraph{The kerning settings} % are specified as pairs of \meta{character}\,|=|\,\meta{kerning values}, where @@ -1969,7 +2005,7 @@ % after this character if it appears before an interword space, second, the % additional stretch amount, and third, the additional shrink amount. All % values may also be negative, in which case the dimensions will be decreased. -% Not all values have to be specified, however, the settings must contain the +% Not all values have to be specified, but the settings must always contain the % two separating commas. % %\paragraph{Options:} @@ -1981,8 +2017,9 @@ % measured. Possible values are: |character|, a \meta{dimension} and, % additionally, |space|. The latter will measure the values in thousandths % of the respective space dimension set by the font. By default, the unit -% is measured by the space dimensions. For example, with these +% is measured by the space dimensions. For example, with the following % (nonsensical) settings: +%\pagebreak ^^A layout %\begin{verbatim} %\SetExtraSpacing % [ unit = space ] % default @@ -2062,7 +2099,7 @@ % \footnotesize Font family (<NFSS> code) % & \multicolumn{2}{l}{\footnotesize Features}\\ %\cmidrule{2-3} -% & \footnotesize Encodings +% & \footnotesize Encodings [Scripts] % & \footnotesize Shapes\\ %\cmidrule{1-1}\cmidrule{2-2}\cmidrule{3-3} % Generic @@ -2099,18 +2136,18 @@ % & <OT1>, <OT4>, <T1>, <LY1>, <QX>, (<TS1>)\fnref{fn:incmpl} % & n, it, (sl)\fnref{fn:it-sl}, sc \\ % Latin Modern Roman -% & <EU1>, <EU2> [Latin, Greek] +% & <EU1/2>, <TU> [Latin, Greek] % & n, it, (sl)\fnref{fn:it-sl}\\ -% Charis SIL -% & <EU1>, <EU2> [Latin, Cyrillic, Greek] +% Charis <SIL> +% & <EU1/2>, <TU> [Latin, Cyrillic, Greek] % & n, it, sc\\ %\iffalse ^^A provided with the EB Garamond package -% EB Garamond -% & <EU1>, <EU2> [Latin, Cyrillic, Greek] +% <EB> Garamond +% & <EU1/2>, <TU> [Latin, Cyrillic, Greek] % & n, it, sc, si\\ %\fi -% Palatino Linotype\footnote{Alias: \TeX\ Gyre Pagella, Palatino LT Std, Palatino} -% & <EU1>, <EU2> [Latin] +% Palatino Linotype\footnote{Aliases: \TeX\ Gyre Pagella, Palatino <LT> Std, Palatino} +% & <EU1/2>, <TU> [Latin] % & n, it, sc\\ % Computer Modern math (|cmsy|, |cmm|)\footnote{Aliases: Latin Modern (|lmsy|, |lmm|)} % & <OML>/<OMS> @@ -2136,7 +2173,7 @@ % On its search for a configuration file, the package will also try to remove % from the font name a suffix of one or more letters that denotes a `variant' % of the base font (cf. Karl Berry's \cite{fontname}). It is thus possible to -% put settings for, \eg, the fonts |padx| (expert set), |padj| (oldstyle +% put settings for, \eg, the fonts |padx|~(expert set), |padj| (oldstyle % numerals) and |pad| (plain) into one and the same file \file{mt-pad.cfg}. % This command expects a comma-separated list of variant suffixes. The starred % version appends the suffix(es) to the existing list. The default declaration @@ -2145,7 +2182,6 @@ %\DeclareMicrotypeVariants{x,j,w,a,d,0,1} %\end{verbatim} % -%\pagebreak ^^A layout %\medskip %\Describe{Macro}{\DeclareMicrotypeAlias}{font name,alias font} % This command may be used for fonts that are very similar, or actually the @@ -2160,7 +2196,6 @@ % not find settings for it, also try the font |cmr|. In fact, you will find % this very line, along with some others, in the default configuration file. % -%\enlargethispage\baselineskip ^^A layout %\medskip %\Describe{Macro}{\LoadMicrotypeFile}{font name} % In rare cases, it might be necessary to load a font configuration file @@ -2178,18 +2213,18 @@ % The \microtype\ package also allows applying different micro-typographic % settings to the fonts depending on the context in which they occur. This % opens up the space for infinite possibilities of tweaking the document's -% appearance.\footnote{ -% With \luatex, you have to load the fonts with the \pkg{fontspec} option -% `|Renderer=Basic|'.} -% ^^A Otherwise, OpenType feature will be ignored (+smcp being one of them) +% appearance. +% ^^A\footnote{ +% ^^A With \luatex, you have to load the fonts with the \cite{fontspec} option +% ^^A `|Renderer=Basic|'.} ^^A Otherwise, OpenType feature will be ignored (+smcp being one of them) % %\medskip %\Describe{Macro}{\microtypecontext}{context assignments} % This command may be used anywhere in the document (also in the preamble) to % change the micro-typographic context in the current group. To each feature -% (\key{protrusion}, \key{expansion}, \key{tracking}, \key{spacing} and -% \key{kerning}), one context may be assigned. Consequently, only settings with -% the corresponding `|context|' keyword will be applied. +% (\key{protrusion}, \key{expansion}, (or \key{activate} as a shortcut for both), +% \key{tracking}, \key{spacing} and \key{kerning}), one context may be assigned. +% Consequently, only settings with the corresponding `|context|' keyword will be applied. % %\medskip %\Describe{Env}{microtypecontext}{context assignments} @@ -2223,6 +2258,7 @@ % \leavevmode \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi % \new@makefnmark \ifhmode\spacefactor\@x@sf\fi \relax} %\end{verbatim} +%\ifcmr\else\enlargethispage\baselineskip\fi ^^A layout % For the \pkg{memoir} class, you would additionally have to disable % auto-detection of multiple footnotes, which prevents protrusion: %\begin{verbatim} @@ -2302,6 +2338,7 @@ % the \opt{letterspace} package option, with decreasing significance in this % order. % +%\pagebreak ^^A layout %\medskip %\Describe{Macro}{\lslig}{ligature} % Since the commands \cs{textls} and \cs{lsstyle} will also evaluate the @@ -2315,7 +2352,7 @@ % least the \pkg{yfonts} package realises the short~s~(`\textfrak{s:}') as the % ligature~`|s:|'. On the other hand, the `ct'~ligature and the other `long~s' % ligatures often found in Fraktur fonts should be suppressed. There are two -% ways to solve this problem: either don't disable the `|s|' and/or `|c|' +% ways of solving this problem: either don't disable the `|s|' and/or `|c|' % ligatures and break those that need to be broken up by inserting % `|{\kern0pt}|' or \pkg{babel}'s \verb="|= shortcut; or disable them and % protect those ligatures that need to be protected by enclosing them in the @@ -2323,14 +2360,14 @@ % (namely, `\textls{\def\!#1{\textcolor{thered}{\lslig{#1}}}^^A % \def\?#1{\textcolor{thegreen}{#1}}^^A % \textfrak{Au\!{s:}\?{si}\!{ch}t\!{s:}lo\?{si}gkeit}}', -% ligatures shown in red, inhibited ligatures in green). +% with ligatures shown in red, inhibited ligatures in green). % %\begin{verbatim}[morekeywords={[0]{\kern}}] -%\SetTracking[noligatures={f}]{encoding = LY, family = yfrak}{100} +%\SetTracking[noligatures={f}]{encoding = LY, family = yfrak}{120} %\textfrak{\lsstyle Aus:s{\kern0pt}ichts:los{\kern0pt}igkeit} %\end{verbatim} %\begin{verbatim} -%\SetTracking[noligatures={f,s,c}]{encoding = LY, family = yfrak}{100} +%\SetTracking[noligatures={f,s,c}]{encoding = LY, family = yfrak}{120} %\textfrak{\lsstyle Au\lslig{s:}si\lslig{ch}t\lslig{s:}losigkeit} %\end{verbatim} % @@ -2377,7 +2414,7 @@ %\end{verbatim} % Only the character that begins the ligature(s) should be specified. This % command may only be used in the preamble, and only once.\footnote{ -% With \luatex, you have to load the fonts with the \pkg{fontspec} option +% With \luatex, you have to load the fonts with the \cite{fontspec} option % `|Renderer=Basic|'.} % ^^A Otherwise, it won't work at all % @@ -2438,14 +2475,15 @@ % will solely decide by examining its attributes. Therefore, you have to take % care of disabling protrusion in |verbatim| environments for yourself (that % is, if you don't want to disable protrusion for the typewriter font -% altogether, by choosing a different font set). While the \cs{microtypesetup} -% command has of course been designed for cases like this, you might find it -% tiresome to repeat it every time if you are using the |verbatim| environment -% frequently. The following line, added to the document's preamble, would serve -% the same purpose: +% altogether, by activating, say, the font set `|alltext-nott|'). +% While the \cs{microtypesetup} command has of course been designed for cases +% like this, you may find it tiresome to repeat it every time if you are +% using the |verbatim| environment frequently. The following line (which requires +% the \pkg{etoolbox} package), added to the document's preamble, would serve the same purpose: %\changes{v2.3e}{2009/07/21}{suggest to patch \cmd\@verbatim\ instead of \cmd\verbatim} +%\changes{v2.6}{2016/03/07}{suggest to use \pkg{etoolbox} to patch \cmd\verbatim} %\begin{verbatim} -%\g@addto@macro\@verbatim{\microtypesetup{activate=false}} +%\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}} %\end{verbatim} % If you are using the \pkg{fancyvrb} or the \pkg{listings} package, this is % not necessary, since their implementation of the corresponding environments @@ -2500,7 +2538,7 @@ % the \pkg{babel} package before \microtype. %\changes{v2.5}{2012/09/11}{add hint about \luatex\ compatibility} % \item Before this package was fully compatible with \luatex, the following -% method of enabling expansion and protrusion with the \pkg{fontspec} +% method of enabling expansion and protrusion with the \cite{fontspec} % package was most often found to be recommended: %\begin{verbatim}[deletekeywords={[1]{expansion,protrusion}},belowskip=0pt] %\newfontfeature{Microtype}{protrusion=default;expansion=default} @@ -2510,26 +2548,33 @@ % basically override all of the settings made by \microtype\ -- despite % the naming, the above lines have nothing to do with this % package.\footnote{^^A -% They make use of features provided by \pkg{luaotfload} (via \pkg{fontspec}).} -%\changes{v2.5a}{2013/05/21}{add hint about \pkg{fontspec} having to be loaded first} -% \item With \luatex, load \pkg{fontspec} before \microtype. -% ^^A otherwise the \pkg{luaotfload} function luaotfload.aux.slot_of_name wouldn't be picked up +% They make use of features provided by \cite{luaotfload} (via \cite{fontspec}).} %\changes{v2.3c}{2008/11/11}{add hint about partial incompatibility with \pkg{CJK}} -% \item It is currently not possible to create character-specific settings for +% \item With \pdftex, it is currently not possible to create character-specific settings for % Chinese\slash Japanese\slash Korean fonts. Therefore, the only -% micro-typographic extension that can be made to work with the -% \pkg{CJK} package is font expansion. +% micro-typographic extension that can be made to work with +% \pkg{CJK} fonts is (non-selected) font expansion. +%\changes{v2.6}{2015/11/03}{add hint about partial incompatibility with \pkg{xeCJK} and \pkg{luatexja}} +% \item When used with the \pkg{xeCJK} package or the \pkg{luatexja} package, +% text commands (\eg, |\'A|, |\textless|) in the configuration will not be understood. +% You therefore have to ensure that \microtype\ will encounter none of them. +% This requires, firstly, that the glyphs be specified only as single (possibly Unicode) +% characters, as numbers, or as glyph names (cf. section~\ref{sec:fine-tuning}); +% and secondly, if you are using a font for which pre-defined settings do not exist, +% that you create these settings yourself (because otherwise, the default settings +% will be loaded, which do contain text commands). %\end{itemize} % %\changes{v1.8}{2005/06/23}{add hint about error messages} -%\paragraph{Possible error messages and how to get rid of them:} +%\paragraph{Possible error messages and how to get rid of them (\textcolor{thegreen}{specs} may differ):} %\begin{itemize} %\lstset{deletekeywords={[1]{expansion,auto}},belowskip=-\smallskipamount,frame=none, -% xleftmargin=0pt,backgroundcolor=,basicstyle=\MacroFont\footnotesize} +% xleftmargin=0pt,backgroundcolor=,basicstyle=\MacroFont\footnotesize, +% delim=[is][\itshape\color{thegreen}]{<}{>}} %\changes{v1.9a}{2005/11/15}{add explanation for error message in <DVI> mode} % \item %\begin{verbatim} -%! Font csnameendcsname=cmr10+20 at 10.0pt not loadable: Metric (TFM) file not found. +%! Font csnameendcsname=<cmr10+20 at 10.0pt> not loadable: Metric (TFM) file not found. %\end{verbatim} % This error message will occur if you are trying to employ font expansion % while creating <DVI> output. Remember that \emph{automatic} font expansion @@ -2553,7 +2598,7 @@ % regard to older \pdftex\ versions} % \item %\begin{verbatim} -%Warning: pdflatex: font ptmr8r cannot be expanded (not an included Type1 font) +%Warning: pdflatex: font <ptmr8r> cannot be expanded (not an included Type1 font) %\end{verbatim} % and the <PDF> viewer complains about a missing font, \eg, Adobe Reader thusly: %\begin{verbatim}[aboveskip=\smallskipamount] @@ -2569,7 +2614,7 @@ %\changes{v1.9a}{2005/11/15}{add explanation for error message with non-Type\,1 fonts} % \item %\begin{verbatim} -%Warning: pdflatex (file ecrm1000+20): Font ecrm1000+20 at 1200 not found +%Warning: pdflatex (file <ecrm1000+20>): Font <ecrm1000+20 at 1200> not found %\end{verbatim} % Furthermore, \pdftex\ versions older than 1.40 require Type\,1 fonts for % automatic font expansion. When you receive a message like the above, you are @@ -2581,17 +2626,17 @@ % and \texttt{font\textunderscore mem\textunderscore size}} % \item %\begin{verbatim} -%! Font T1/cmr/m/n/10=ecrm1000 at 10.0pt not loaded: Not enough room left. +%! Font <T1/cmr/m/n/10>=<ecrm1000 at 10.0pt> not loaded: Not enough room left. %\end{verbatim} % Memory parameter `|font_mem_size|' too small. % \item %\begin{verbatim} -%! TeX capacity exceeded, sorry [maximum internal font number (font_max)=2000]. +%! TeX capacity exceeded, sorry [maximum internal font number (font_max)=<2000>]. %\end{verbatim} % Memory parameter `|font_max|' too small. % \item %\begin{verbatim} -%! TeX capacity exceeded, sorry [PDF memory size (pdf_mem_size)=65536]. +%! TeX capacity exceeded, sorry [PDF memory size (pdf_mem_size)=<65536>]. %\end{verbatim} % Memory parameter `|pdf_mem_size|' too small (\pdftex\ versions older than 1.30). % @@ -2599,7 +2644,7 @@ % fonts, \pdftex\ may be running out of some kind of memory. It can be % increased by setting the respective parameter to a larger value. For % web2c-based systems, \eg, \texlive, change the settings in \file{texmf.cnf}, -% for MiK\TeX, in the file \file{miktex.ini} (2.4 or older) resp. +% for \miktex, in the file \file{miktex.ini} (2.4 or older) resp. % \file{pdflatex.ini} (2.5 or newer). % %\changes{v2.0}{2007/01/05}{add hint about warning when tracking \emph{and} @@ -2620,8 +2665,9 @@ % \href{http://mirror.ctan.org/macros/latex/contrib/microtype/} % {\acronym{CTAN}}. % For the source code of the logo on the title page and of the letterspacing -% sample from section~\ref{sub:tracking}, see appendix~\ref{sec:title-logo} and -% \ref{sec:letterspace-ill}. +% sample from section~\ref{sub:tracking}, see the appendices~\ref{sec:title-logo} +% and \ref{sec:letterspace-ill}. +%\changes{v2.5a}{2013/05/23}{add notes on typesetting the documentation} % If you want to re-typeset the documentation, read the comments at the end of % \file{microtype.dtx}. % @@ -2645,13 +2691,13 @@ %\section{Acknowledgments} % % This package would be pointless if -% \contributor\thanh{} <thanh\at pdftex.org> +% \contributor H\`an \thanhthe{} Th\`anh <thanh\at pdftex.org> % hadn't created the \pdftex\ programme in the first place, which introduced % the micro-typographic extensions and made them available to the \TeX\ world. % Furthermore, I thank him for helping me to improve this package, and not % least for promoting it in \cite{ThanhPracTeX}, \cite{ThanhEuroTeX07} and ^^A comma, to avoid the Three Ands Falls % elsewhere. I also thank him and the rest of the \pdftex\ team, and more -% recently also of the \luatex\ team, for refuting the idea that \TeX\ is dead, +% recently also the \luatex\ team, for refuting the idea that \TeX\ is dead, % and for fixing the bugs I find. % % \contributor Harald Harders <h.harders\at tu-bs.de> @@ -2676,7 +2722,7 @@ % \contributor Hendrik Vogt <hendrik.vogt\at tu-dresden.de>, % who made substantial improvements to the Computer Modern Roman italic settings. % I thank -% \contributor Loren B. Davis <davislo\at eecs.oregonstate.edu> +% \contributor Loren~B. Davis <davislo\at eecs.oregonstate.edu> % for providing protrusion settings for OpenType versions of Palatino Linotype. % I am also very much indebted to % \contributor \'Elie Roux <elie.roux\at telecom-bretagne.eu>, @@ -2693,14 +2739,13 @@ % \contributor Peter Wilson <herries.press\at earthlink.net> % kindly provided a hook in his \pkg{ledmac}/\pkg{ledpar} packages, so that % critical editions can finally also benefit from character protrusion. -%\iffalse -% Useful not only for his \pkg{shapepar} package, +% Likewise, % \contributor Donald Arseneau <asnd\at triumf.ca> -% suggested the new commands \cs{microtypeunhbox} and \cs{microtypeunhcopy}. -%\fi +% patched his \pkg{shapepar} package to accommodate protrusion. % % Additionally, the following people have reported bugs, made suggestions or -% helped otherwise (in chronological order): +% helped otherwise (in chronological order, quotes indicate +% \href{http://tex.stackexchange.com/users/}{TeX.SX} user names): % \contributor Tom Kink <kink\at hia.rwth-aachen.de>, % \contributor Herb Schulz <herbs\at wideopenwest.com>, % \contributor Michael Hoppe <mh\at michael-hoppe.de>, @@ -2708,7 +2753,7 @@ % \contributor Georg Verweyen <verweyen\at gmail.com>, % \contributor Christoph Bier <christoph.bier\at web.de>, % \contributor Peter Muthesius <Pemu\at gmx.de>, -% \contributor Bernard Gaulle <gaulle\at idris.fr>\,\textdagger, +% \contributor Bernard Gaulle <gaulle\at idris.fr>, ^^A\,\textdagger, % \contributor Adam Kucharczyk <adamk\at ijp-pan.krakow.pl>, % \contributor Mark Rossi <mark.rossi\at de.bosch.com>, % \contributor Stephan Hennig <stephanhennig\at arcor.de>, @@ -2746,14 +2791,24 @@ % \contributor Meho~R <meho.2005\at gmail.com>, % \contributor Steffen Hoffmann <speraviro-delenda\at expires-2011-11-30.arcornews.de>, % \contributor Scott Pakin <scott\at pakin.org>, -% \contributor Loren~B. Davis <davislo\at eecs.oregonstate.edu>, % \contributor Ma\"ieul Rouquette <maieul\at maieul.net>, % \contributor Jonas Hogstrom <hjb981\at gmail.com>, % \contributor Gabriel Kerneis <gabriel\at kerneis.info>, -% \contributor RazorXsr <@\at @>, ^^A http://tex.stackexchange.com/users/17609/razorxsr -% \contributor Dave <@\at @> ^^A http://tex.stackexchange.com/users/15562/dave +% `\contributor RazorXsr <@\at @>', ^^A http://tex.stackexchange.com/users/17609/razorxsr +% `\contributor Dave <@\at @>', ^^A http://tex.stackexchange.com/users/15562/dave +% \contributor Giuseppe Palma <pippi.palma\at gmail.com>, +% \contributor Stephan Stiller <stephan.stiller\at gmail.com>, +% \contributor Christopher Schramm <debian\at shakaweb.org>, +% `\contributor uli <@\at @>', ^^A http://tex.stackexchange.com/users/9391/uli +% \contributor Sam Mason <sam\at samason.me.uk>, ^^A http://tex.stackexchange.com/users/16433/sam-mason +% `\contributor kleenstar <@\at @>', ^^A http://tex.stackexchange.com/users/56468/kleenstar +% `\contributor Henning <@\at @>', ^^A http://tex.stackexchange.com/users/64603/henning +% \contributor Ronnie Marksch <Ronnie.Marksch\at yahoo.de>, +% \contributor David Carlisle <d.p.carlisle\at gmail.com>, +% `\contributor Max <@\at @>', ^^A http://tex.stackexchange.com/users/16809/max +% `\contributor HcN <@\at @>' ^^A http://tex.stackexchange.com/users/87090/hcn % and -% \contributor Giuseppe Palma <pippi.palma\at gmail.com>. +% \contributor Will Robertson <will\at wspr.io>. % % %\iffalse @@ -2828,12 +2883,12 @@ % \thanh, Sebastian Rahtz, Hans Hagen, Hartmut Henkel, Pawe\l\ Jackowski, Martin Schr\"oder, % \emph{The \pdftex\ user manual}, % \newblock 23 November 2010. -% \newblock (\ctanurl{systems/pdftex/}; -% latest version at \url{http://sarovar.org/projects/pdftex/}) +% \newblock (\ctanurl{systems/pdftex/}) +% ^^A latest version at \url{http://sarovar.org/projects/pdftex/} % ^^A or even \url{http://foundry.supelec.fr/scm/?group_id=23} % % \bibitem[Fontname]{fontname} -% Karl Berry, \emph{Fontname. Filenames for \TeX\ fonts}, +% Karl Berry, \emph{Fontname: Filenames for \TeX\ fonts}, % \newblock July 2009. % \newblock (\ctanurl{info/fontname/fontname.pdf}) % @@ -2842,6 +2897,18 @@ % \newblock 27 November 2005. % \newblock (\ctanurl{macros/latex/doc/fntguide.pdf}) % +% \bibitem[\pkg{fontspec}]{fontspec} +% Will Robertson, Khaled Hosny, +% \emph{The \pkg{fontspec} package: Font selection for \xe\LaTeX\ and Lua\LaTeX}, +% \newblock 1 February 2016. +% \newblock (\ctanurl{macros/latex/contrib/fontspec/}) +% +% \bibitem[\pkg{luaotfload}]{luaotfload} +% \'Elie Roux, Khaled Hosny, Philipp Gesang, +% \emph{The \pkg{luaotfload} package}, +% \newblock 12 December 2015. +% \newblock (\ctanurl{macros/luatex/generic/luaotfload/}) +% % \bibitem[\pkg{pdfcprot}]{pdfcprot} % Carsten Schurig, Tobias Schlemmer, \emph{The \pkg{pdfcprot}|.sty| package}, % \newblock 10 June 2005. @@ -2856,10 +2923,6 @@ % \pkg{soulutf8}, which adds Unicode support. % \newblock (\ctanurl{macros/latex/contrib/oberdiek/}) % -% \bibitem[\pkg{fontspec}]{fontspec} -% Will Robertson, Khaled Hosny, \emph{The \pkg{fontspec} package}, -% \newblock 16 March 2013. -% \newblock (\ctanurl{macros/latex/contrib/fontspec/}) %\end{thebibliography} % % @@ -2880,13 +2943,13 @@ % {\leftmargin 0pt % \parsep 0pt % \def\refsection##1{[##1]} -% \def\makelabel##1{\hss\llap{##1}}}} +% \def\makelabel##1{\hss\llap{\color{sectioning}##1}}}} % {\endlist} %\newcommand\Version[2]{ % \VersionDate{#1}{#2} % \vskip\topsep % \pagebreak[2] -% \item[\textsf{#1}]\textsf{(#2)} +% \item[\textsf{\bfseries\color{sectioning}#1}]\textsf{\bfseries\color{sectioning}(#2)} % \vskip\topsep % \nopagebreak} %\newcommand\VersionDate[2]{^^A needed in the Change history @@ -2894,12 +2957,17 @@ % %\begin{History} % -% ^^A\item New commands \cs{microtypeunhbox} and \cs{microtypeunhcopy} ^^A \refsection{\ref{..}} +%\Version{\expandafter\@gobble\fileversion}{\filedate} +% \item Support for \luatex\ 0.85 +% \item Improvements for tracking/letterspacing with \luatex\ +% (|Renderer=Basic| no longer required) +% \item New font sets: `|alltext-nott|', `|allmath-nott|' +% \refsection{\ref{sec:font-sets}, table~\ref{tab:predefined-font-sets}} % -%\VersionDate{\expandafter\@gobble\fileversion}{\filedate} +%\VersionDate{2.5a}{2013/05/23} % %\Version{2.5}{2013/03/13} -% \item Support for the \pkg{fontspec} package, viz. +% \item Support for the \cite{fontspec} package, viz. % for OpenType fonts with \luatex\ and \xetex % \item Support for protrusion with \xetex\ $\geq$ 0.9997 % \item Support for tracking/letterspacing with \luatex\ $\geq$ 0.62 @@ -3145,14 +3213,12 @@ % %\StopEventually{ % \GeneralChanges{Documentation} -% \newpage -% \appendix -% \AppendixSettings +% \ifx\Finale\relax +% \newpage +% \appendix +% \AppendixSettings +% \fi % \typeout{:?1000} ^^A tell WinEdt not to bother about overfull boxes -%\changes{v2.5}{2013/02/23}{include \file{microtype-logo.dtx} and \file{microtype-lssample.dtx}} -% \InputIfFileExists{microtype-logo.dtx}\relax\relax -% \InputIfFileExists{microtype-lssample.dtx}\relax\relax -% \PrintChanges % \PrintIndex % \typeout{:?1111} % \InputIfFileExists{lppl.tex}\LPPLSettings\relax @@ -3185,7 +3251,6 @@ % \if@tempswa\@newiftrue\else\@newiffalse\fi %} % -% %\DoNotIndex{\!,\",\',\(,\),\*,\+,\,,\-,\.,\/,\:,\;,\<,\=,\>,\?,\[,\\,\],\`, % \#,\$,\&,\^,\_,\|,\~,\ , % \advance,\afterassignment,\aftergroup,\begingroup,\bgroup,\catcode,\char, @@ -3212,6 +3277,8 @@ %^^A\DoNotIndex{\XeTeXcharglyph,\XeTeXcountglyphs,\XeTeXfonttype,\XeTeXglyph, %^^A \XeTeXglyphindex,\XeTeXglyphname,\XeTeXprotrudechars} %\DoNotIndex{\directlua,\luatexversion} ^^A luatex +%^^A\DoNotIndex{\adjustspacing,\copyfont,\expandglyphsinfont, +%^^A \ignoreligaturesinfont,\outputmode,\protrudechars,\tracingfonts} %\DoNotIndex{\eplain,\usepkg@pkg} ^^A eplain %\DoNotIndex{\@backslashchar,\@cclv,\@cclvi,\@classoptionslist,\@currext, % \@currname,\@defaultunits,\@empty,\@expandtwoargs,\@firstofone,\@firstoftwo, @@ -3233,7 +3300,7 @@ %^^A\DoNotIndex{\add@accent,\curr@fontshape,\define@newfont,\do@subst@correction, %^^A \f@size,\font@name,\glb@currsize,\normalfont,\pickup@font,\selectfont, %^^A \set@fontsize,\showhyphens} ^^A latex -%\DoNotIndex{\normalpdfoutput,\normalpdftexversion,\normalpdftexrevision} ^^A tex live +%\DoNotIndex{\normalpdfoutput,\normalpdftexversion,\normalpdftexrevision} ^^A tex live 2004 %\DoNotIndex{\foreign@language,\languagename,\select@language,\shorthandoff} ^^A babel %\DoNotIndex{\percentsign} ^^A babel/spanish,galician,mexican %\DoNotIndex{\CJK@ifundefined,\CJK@plane,\CJK@temp,\CJK@addcmap} ^^A CJK,CJKutf8 @@ -3244,7 +3311,7 @@ %\DoNotIndex{\UTFviii@defined} ^^A inputenc/utf8 %\DoNotIndex{\PrerenderUnicode,\unicode@charfilter} ^^A inputenc/utf8x %\DoNotIndex{\define@key,\KV@@sp@def,\setkeys} ^^A keyval -%\DoNotIndex{\l@dunhbox@line} ^^A (e)ledmac,(e)ledpar +%\DoNotIndex{\l@dunhbox@line} ^^A ((r)e)ledmac,((r)e)ledpar %\DoNotIndex{\lst@ProcessLetter} ^^A listings %\DoNotIndex{\RequireLuaModule} ^^A luatexbase %\DoNotIndex{\pdf@escapestring} ^^A pdftexcmds @@ -3519,7 +3586,8 @@ % \fallbacktext{If \file{microtype.sty} had been generated with the `|debug|' % option,\\this method would be demonstrated here.} %\else -% Let's see how it works~\dots +% Let's see how it works~\dots\ (if you don't see anything special on this page, +% your <PDF> viewer doesn't support annotations). %\begin{verbatim} %\tracingmicrotypeinpdf=2 %\end{verbatim} @@ -3680,6 +3748,7 @@ \fi % \end{macrocode} %\begin{macro}{\MT@engine} +%\changes{v2.6}{2016/03/25}{fix test with \luatex\ 0.85} %\begin{macro}{\MT@engine@tooold} % Old packages might have let \cmd\pdftexversion\ to \cmd\relax. % \begin{macrocode} @@ -3690,13 +3759,26 @@ \def\MT@engine{pdf} %<letterspace> \let\MT@pdf@or@lua\@firstoftwo %<letterspace> \ifnum\pdftexversion > 139 \def\MT@engine@tooold{1}\fi - \ifx\directlua\@undefined \else - \ifx\directlua\relax \else - \def\MT@engine{lua} -%<letterspace> \let\MT@pdf@or@lua\@secondoftwo -%<letterspace> \ifnum\luatexversion < 62 \def\MT@engine@tooold{0}\fi + \fi +\fi +\ifx\directlua\@undefined \else + \ifx\directlua\relax \else + \def\MT@engine{lua} +% \end{macrocode} +% Since approx. \luatex\ 0.80, \cmd\pdftexversion\ is let to \cmd\luatexversion, +% so that we would be fooled to think that \pdftex\ is too old. +% \begin{macrocode} +%<*letterspace> + \let\MT@pdf@or@lua\@secondoftwo + \ifnum\luatexversion < 62 \def\MT@engine@tooold{0} + \else + \def\MT@engine@tooold{1} + \ifnum\luatexversion > 84 + \let\pdfoutput\outputmode + \let\pdfprotrudechars\protrudechars \fi \fi +%</letterspace> \fi \fi %<*package> @@ -3734,7 +3816,7 @@ % \cmd\pdfnoligatures; % \cmd\pdfstrcmp; % \cmd\pdfescapestring\ ($\geq$~1.30) -%\changes{v2.0}{2005/08/20}{(beta:1) case 6: \pdftex\ 1.40} +%\changes{v2.0}{2005/08/20}{case 6: \pdftex\ 1.40} ^^A (beta:1) % \item + adjustment of interword spacing; % extra kerning; % \cmd\letterspacefont; @@ -3809,8 +3891,12 @@ % \item N/A % \item \luatex\ ($\less$~0.36) % \item + \cmd\directlua\ without state number ($\geq$~0.36) -% \item + \cmd\letterspacefont\ ($\geq$~0.62). +% \item + \cmd\letterspacefont\ ($\geq$~0.62) +% \item + almost all of the \pdftex\ primitives have been renamed ($\geq$~0.85) +% \item + \cmd\protrusionboundary\ [not yet supported] ($\geq$~0.90) +%\todo{interface for \cmd\protrusionboundary} %\end{enum} +%\changes{v2.6}{2016/04/22}{update for \luatex\ 0.85 (renamed primitives)} % \begin{macrocode} %<*luatex-def> %<debug>\MT@dinfo@nl0{this is luatex (\the\luatexversion)} @@ -3823,12 +3909,15 @@ %\changes{v2.3d}{2009/03/25}{update for \luatex\ 0.36} % \begin{macrocode} \def\MT@lua{\directlua} -\def\MT@luatex@no{3} -\ifnum\luatexversion<62 - \def\MT@luatex@no{2} - \ifnum\luatexversion<36 - \def\MT@lua{\directlua0} - \def\MT@luatex@no{1} +\def\MT@luatex@no{4} +\ifnum\luatexversion<85 + \def\MT@luatex@no{3} + \ifnum\luatexversion<62 + \def\MT@luatex@no{2} + \ifnum\luatexversion<36 + \def\MT@lua{\directlua0} + \def\MT@luatex@no{1} + \fi \fi \fi % \end{macrocode} @@ -4052,9 +4141,10 @@ %<pdftex-def> \MT@pdftex@no %<luatex-def> \MT@luatex@no <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi} -%<debug+pdftex-def>\MT@requires@pdftex6{ +%<luatex-def&debug>\MT@requires@luatex4{\let\pdftracingfonts\tracingfonts}\relax +%<pdftex-def&debug>\MT@requires@pdftex6{ %<debug>\pdftracingfonts=1 -%<debug+pdftex-def>}\relax +%<pdftex-def&debug>}\relax %</pdftex-def|luatex-def> % \end{macrocode} %\end{macro} @@ -4068,6 +4158,14 @@ % \begin{macrocode} %<*luatex-def> \RequirePackage{luatexbase} +% \end{macrocode} +% Additionally, we load \pkg{luaotfload}, because some of its functions are +% required in \file{microtype.lua}. This eliminates the need for the user to +% load \pkg{fontspec} before \microtype. +% There will hardly be any \luatex\ documents that don't load this package, anyway. +%\changes{v2.6}{2013/06/19}{load \pkg{luaotfload} with \luatex} +% \begin{macrocode} +\RequirePackage{luaotfload} \RequireLuaModule{microtype} %</luatex-def> % \end{macrocode} @@ -4076,25 +4174,29 @@ % (contributed by \contributor \'Elie Roux <elie.roux\at telecom-bretagne.eu>)} % \begin{macrocode} %<*luafile> -microtype = microtype or {} -local microtype = microtype -local microtype_module = { - name = "microtype", - version = 2.5, - date = "2013/05/15", - description = "microtype module.", - author = "E. Roux, R. Schlicht and P. Gesang", - copyright = "E. Roux, R. Schlicht and P. Gesang", - license = "LPPL", +microtype = microtype or {} +local microtype = microtype +microtype.module = { + name = "microtype", + version = 2.6, + date = "2016/05/01", + description = "microtype module.", + author = "E. Roux, R. Schlicht and P. Gesang", + copyright = "E. Roux, R. Schlicht and P. Gesang", + license = "LPPL", } -if luatexbase and luatexbase.provides_module then - luatexbase.provides_module(microtype_module) -end +local err, warn, info, log = luatexbase.provides_module(microtype.module) +microtype.warning = warn -local find = string.find -local tex_write = tex.write +local find = string.find +local match = string.match +local tex_write = tex.write + +function microtype.sprint (...) + tex.sprint(luatexbase.catcodetables['latex-package'], ...) +end %</luafile> % \end{macrocode} @@ -4482,6 +4584,9 @@ microtype.if_str_eq = if_str_eq \MT@map@clist@#1,\@nil,\@nnil \fi } +% \end{macrocode} +%\todo{think \cs{@nil} should be defined as itself} +% \begin{macrocode} \def\MT@map@clist@c#1{\MT@exp@one@n\MT@map@clist@n#1} \def\MT@map@clist@#1,{% \ifx\@nil#1% @@ -4646,25 +4751,53 @@ microtype.if_str_eq = if_str_eq \advance\@tempcnta \@ne \ifnum\@tempcnta < #2\MT@repeat } +%</package|letterspace> % \end{macrocode} %\end{macro} %\begin{macro}{\MT@do@font} % Execute \meta{\#1} 256 times, % \begin{macrocode} -%</package|letterspace> -%<*pdftex-def|luatex-def|letterspace> -\def\MT@do@font{\MT@while@num\z@ -%<pdftex-def|letterspace> \@cclvi +%<pdftex-def>\def\MT@do@font{\MT@while@num\z@\@cclvi} % \end{macrocode} -% resp. 1114111 times for \luatex\ (this is going to be slow, but \luatex\ is -% slow anyway -- still, there ought to be a better way!) +% resp. for the whole font for \luatex, if loaded by \pkg{fontspec}/\pkg{luaotfload}. %\changes{v2.5}{2010/08/14}{adapt for \luatex} +%\changes{v2.6}{2013/07/14}{speed up for \luatex} % \begin{macrocode} -%<luatex-def> \MT@max@slot +%<*luatex-def|letterspace> +\def\MT@do@font#1{% + \MT@if@fontspec@font{% + \def\MT@dofont@function{#1}% + \MT@lua{microtype.do_font()}% + }{\MT@while@num\z@\@cclvi{#1}}% } -%</pdftex-def|luatex-def|letterspace> +%</luatex-def|letterspace> +% \end{macrocode} +% This is the |lua| function, which is much faster than looping through all glyphs +% in \TeX. +% \begin{macrocode} +%<*luafile> +local function do_font() + if fonts then + local thefont + if fonts.ids then --- legacy luaotfload + thefont = fonts.ids[font.current()] + else --- new location + thefont = fonts.hashes.identifiers[font.current()] + end + if thefont then + for i,v in next,thefont.characters do + if v.index > 0 then + microtype.sprint([[\@tempcnta=]]..i..[[\relax\MT@dofont@function]]) + end + end + end + end +end +microtype.do_font = do_font + +%</luafile> % \end{macrocode} -% resp. for the whole font. +% The \xetex\ variant. %\changes{v2.5}{2010/05/18}{adapt for \xetex} % \begin{macrocode} %<*xetex-def> @@ -4800,16 +4933,16 @@ microtype.if_str_eq = if_str_eq % Whenever an optional argument accepts a list of features, we can use this % command to check whether a feature exists in order to prevent a rather % confusing `|Missing \endcsname inserted|' error message. The feature (long -% form) must be in \cmd\@tempa, the type of list to ignore in \meta{\#1}, +% form) must be in \meta{\#1}, the type of list to ignore in \meta{\#2}, % then comes the action. % \begin{macrocode} -\def\MT@is@feature#1{% - \MT@exp@one@n\MT@in@clist\@tempa\MT@features@long +\def\MT@is@feature#1#2{% + \MT@in@clist{#1}\MT@features@long \ifMT@inlist@ \expandafter\@firstofone \else - \MT@error{`\@tempa' is not an available micro-typographic\MessageBreak - feature. Ignoring #1}{Available features are: `\MT@features@long'.}% + \MT@error{`#1' is not an available micro-typographic\MessageBreak + feature. Ignoring #2}{Available features are: `\MT@features@long'.}% \expandafter\@gobble \fi } @@ -4914,7 +5047,8 @@ microtype.if_str_eq = if_str_eq % ^^A private mail, 2012/06/30 % They are also part of recent \xetex. %\changes{v2.5a}{2013/03/25}{support for \pkg{eledmac}} -% The successor package \pkg{eledmac} is also supported. +%\changes{v2.6}{2015/08/10}{support for \pkg{reledmac}} +% The successor packages \pkg{eledmac} and \pkg{reledmac} are also supported. % \begin{macrocode} %</package> %<pdftex-def>\MT@requires@pdftex5{ @@ -4927,7 +5061,7 @@ microtype.if_str_eq = if_str_eq % Hook. %\changes{v2.5a}{2013/03/27}{simplified} % \begin{macrocode} - \MT@info@nl{Patching (e)ledmac to enable character protrusion}% + \MT@info@nl{Patching ((r)e)ledmac to enable character protrusion}% \let\MT@led@unhbox@line\l@dunhbox@line \renewcommand*{\l@dunhbox@line}[1]{% \ifhbox##1% @@ -4942,7 +5076,8 @@ microtype.if_str_eq = if_str_eq }{% \MT@warning@nl{% Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% + numbering will only work if you update ledmac,\MessageBreak + or use one of its successors, eledmac or reledmac}% }% \fi } @@ -4954,7 +5089,7 @@ microtype.if_str_eq = if_str_eq \MT@warning@nl{% The pdftex version you are using does not allow\MessageBreak character protrusion in paragraphs with line\MessageBreak - numbering by the `ledmac' package.\MessageBreak + numbering by the `((r)e)ledmac' package.\MessageBreak Upgrade pdftex to version 1.30 or later}% \fi } @@ -4962,8 +5097,11 @@ microtype.if_str_eq = if_str_eq %</pdftex-def> % \end{macrocode} %\end{macro} -%\todo{fix: protrusion with \pkg{shapepar} (reported by \contributor Giuseppe Palma <pippi.palma\at gmail.com>)} -% ^^A private mail, 2013/03/22 +% The \pkg{shapepar} package (v2.2) fixes this in a similar manner by itself, +% so we don't have to bother. +% ^^A missing protrusion with \pkg{shapepar} (reported by \contributor Giuseppe Palma <pippi.palma\at gmail.com>)} +% ^^A ^^A private mail, 2013/03/22 +% ^^A fixed in shapepar v2.2 (Mar 2013) %\begin{macro}{\MT@restore@p@h} % Restore meaning of \cmd\% and \cmd\#. % \begin{macrocode} @@ -4977,9 +5115,28 @@ microtype.if_str_eq = if_str_eq % Two new conditionals for use with \xetex\ or \luatex. % \begin{macrocode} \newif\ifMT@xunicode -\newif\ifMT@fontspec \MT@with@package@T{xunicode}\MT@xunicodetrue +%</package> +\newif\ifMT@fontspec +%<letterspace>\MT@requires@latex2{ \MT@with@package@T{fontspec}\MT@fontspectrue +%<letterspace>}{\MT@fontspecfalse} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\MT@if@fontspec@font} +%\begin{macro}{\MT@fontspec@setup} +%\changes{v2.6}{2016/04/23}{fix \cs{MT@if@fontspec@font} ABD} +% For fonts loaded by \pkg{fontspec} (or, rather, \pkg{luaotfload}) we can +% use some of the features the latter package provides. +% \begin{macrocode} +\let\MT@if@fontspec@font\@secondoftwo +\def\MT@fontspec@setup{% + \@ifpackagelater{fontspec}{2013/05/23}{ + \MT@let@cn\MT@if@fontspec@font{fontspec_if_fontspec_font:TF}% + }\relax +} +\ifMT@fontspec\MT@fontspec@setup\fi % \end{macrocode} %\end{macro} %\end{macro} @@ -4996,6 +5153,7 @@ microtype.if_str_eq = if_str_eq % (This is no longer needed, since the complete setup is now deferred until the % end of the preamble. However, it is still necessary for \opt{defersetup}|=false|.) % \begin{macrocode} +%<*package> \def\MT@setupfont@hook{% % \end{macrocode} %\iffalse @@ -5078,14 +5236,19 @@ The `pdfcprot' package provides an interface to character protrusion.\MessageBre So does the `\MT@MT' package. Using both packages at the same\MessageBreak time will almost certainly lead to undesired results. Have your choice!}% }% - \MT@with@package@T{ledmac}\MT@ledmac@setup - \MT@with@package@T{eledmac}\MT@ledmac@setup + \MT@with@package@T {ledmac}\MT@ledmac@setup + \MT@with@package@T {eledmac}\MT@ledmac@setup + \MT@with@package@T{reledmac}\MT@ledmac@setup \MT@with@package@T{xunicode}\MT@xunicodetrue - \MT@with@package@T{fontspec}\MT@fontspectrue + \MT@with@package@T{fontspec}{\MT@fontspectrue\MT@fontspec@setup}% % \end{macrocode} % We can clean up \cs{MT@setupfont@hook} now. +%\changes{v2.6}{2014/03/17}{redefine \cs{MT@setupfont@hook} globally +% for problem with \pkg{tikzposter} +% (reported by \contributor Sam Mason <sam\at samason.me.uk>)} +% ^^A http://tex.stackexchange.com/questions/165846/ % \begin{macrocode} - \let\MT@setupfont@hook\@empty + \MT@glet\MT@setupfont@hook\@empty \ifMT@fontspec \g@addto@macro\MT@setupfont@hook{\MT@font}% \fi @@ -5110,7 +5273,7 @@ time will almost certainly lead to undesired results. Have your choice!}% % We disable \microtype's additions inside \pkg{hyperref}'s \cmd\pdfstringdef, % which redefines lots of commands. %\changes{v1.9}{2005/09/10}{disable \microtype\ setup inside \pkg{hyperref}'s \cmd\pdfstringdef\ -% (reported by \contributor\thanh{} <hanthethanh\at gmail.com>)} +% (reported by \contributor H\`an \thanhthe{} Th\`anh <hanthethanh\at gmail.com>)} % ^^A private mail, 2005/09/10 %\changes{v2.3}{2007/11/11}{disable \cs{microtypecontext} in \pkg{hyperref}'s \cmd\pdfstringdef} % \pkg{hyperref} doesn't work with plain \TeX, so in that case we don't bother. @@ -5175,7 +5338,7 @@ time will almost certainly lead to undesired results. Have your choice!}% }% }% % \end{macrocode} -%\changes{v2.0}{2005/12/21}{(beta:3) compatibility with \pkg{soul}: register \cs{textls} and \cs{lsstyle}} +%\changes{v2.0}{2005/12/21}{compatibility with \pkg{soul}: register \cs{textls} and \cs{lsstyle}} ^^A (beta:3) % Of course, using both \pkg{soul}'s and \microtype's letterspacing mechanisms % at the same time doesn't make much sense. But \pkg{soul} can do more, \eg, % underlining. The optional argument to \cs{textls} may not be used. @@ -5340,6 +5503,7 @@ time will almost certainly lead to undesired results. Have your choice!}% % \begin{macrocode} %<*pdftex-def|luatex-def> \let\MT@copy@font\relax +%<luatex-def>\MT@requires@luatex4{\let\pdfcopyfont\copyfont}\relax %<pdftex-def>\MT@requires@pdftex7{ \def\MT@copy@font@{% % \end{macrocode} @@ -5659,7 +5823,7 @@ time will almost certainly lead to undesired results. Have your choice!}% % (Warnings seem to be too irritating.) ^^A at least one thing I found out in the ridiculously long `beta' phase % The switch is set in \cs{MT@next@listname}. %\changes{v2.5}{2011/05/28}{info if settings are not family-specific -% (suggested by \contributor\thanh{} <thanh\at river-valley.org>)} +% (suggested by \contributor H\`an \thanhthe{} Th\`anh <thanh\at river-valley.org>)} % ^^A private mail, 2010/09/07 % ^^A (beta:07) % \begin{macrocode} @@ -6354,6 +6518,7 @@ time will almost certainly lead to undesired results. Have your choice!}% %\begin{macro}{\MT@expandfont} % Expand the font. % \begin{macrocode} +%<luatex-def>\MT@requires@luatex4{\let\pdffontexpand\expandglyphsinfont}\relax \def\MT@expandfont{% \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax } @@ -6808,7 +6973,24 @@ time will almost certainly lead to undesired results. Have your choice!}% % the base font again. % \begin{macrocode} \MT@get@ls@basefont +% \end{macrocode} +%\changes{v2.6}{2013/07/15}{use \pkg{luaotfload}'s \texttt{kernfactor} font feature if available} +% \pkg{luaotfload} provides the faux font feature |kernfactor|, which we will +% use when dealing with non-legacy fonts, as it is less problematic and faster +% than the \pdftex\ primitive \cmd\letterspacefont. +% \begin{macrocode} +%<*luatex-def|letterspace> + \MT@if@fontspec@font{% +%<luatex-def&debug>\MT@dinfo@nl{1}{... fontspec font: \MessageBreak +%<luatex-def&debug> \expandafter\fontname\MT@font}% + \global\expandafter\font\MT@lsfont=% + \expandafter\MT@exp@two@c\expandafter\MT@ls@fontspec@font + \expandafter\fontname\expandafter\MT@font\space \@nil + }{% +%</luatex-def|letterspace> +%<luatex-def&debug>\MT@dinfo@nl{1}{... legacy font}% \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@ +%<luatex-def|letterspace> }% % \end{macrocode} %\changes{v2.2}{2007/06/16}{possibility to customise interword spacing} % Scale interword spacing (not configurable in \letterspace). @@ -6849,8 +7031,7 @@ time will almost certainly lead to undesired results. Have your choice!}% %</letterspace> % \end{macrocode} % Adjust protrusion values now, and maybe later (in \cs{MT@pr@split@val}) -% (not for \luatex, though, where the letterspaced font inherits the protrusion -% values from the base font). +% (not for \luatex, though, where letterspacing does not interfere with protrusion). %\changes{v2.3}{2007/07/27}{also adjust tracking if protrusion is not enabled, % and even for \letterspace\ % (reported by \contributor Stephan Hennig <stephanhennig\at arcor.de>)} @@ -6859,19 +7040,21 @@ time will almost certainly lead to undesired results. Have your choice!}% % (reported by \contributor Wolfram Schaalo <schaalo\at gmx.net>)} % ^^A private mail, 2008/05/12 % \begin{macrocode} +%<luatex-def|letterspace> \MT@if@fontspec@font\relax{% %<debug>\MT@dinfo@nl{2}{... compensating for tracking (\number\MT@letterspace@)}% \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}% -%<pdftex-def> \let\MT@the@pr@code\MT@the@pr@code@tr + \let\MT@the@pr@code\MT@the@pr@code@tr +%<luatex-def|letterspace> }% \fi % \end{macrocode} -% Finally, let the letterspaced font propagate. With \luatex, we also need to -% load. +% Finally, let the letterspaced font propagate. +% With \luatex, we also need to load. %\changes{v2.5a}{2013/05/15}{fix: load font for \pkg{fontspec}} ^^A for MT@get@slot % \begin{macrocode} \aftergroup\MT@set@lsfont %<pdftex-def|luatex-def> \let\MT@font\MT@lsfont -%<luatex-def> \ifMT@fontspec\MT@font\fi +%<luatex-def> \MT@if@fontspec@font\MT@font\relax % \end{macrocode} %\begin{macro}{\MT@set@curr@ls} %\begin{macro}{\MT@curr@ls} @@ -6933,19 +7116,17 @@ time will almost certainly lead to undesired results. Have your choice!}% %\end{macro} % Stuff to be done after the letterspace group. The \letterspace\ package % only adjusts the kerning. +%\changes{v2.6}{2014/09/07}{fix: ensure to set up math fonts (reported by \contributor kleenstar <@\at @>)} +% ^^A http://tex.stackexchange.com/questions/187655/microtype-gives-wrong-letterspacing-in-math-mode % \begin{macrocode} \MT@afteraftergroup{% \MT@set@curr@os \MT@set@curr@ok + \MT@glet\noexpand\glb@currsize\noexpand\@empty \noexpand\MT@tr@outer@r }% %</pdftex-def|luatex-def> \fi -% \end{macrocode} -% Since protrusion values are inherited in \luatex, we switch off the setup for -% this font. -% \begin{macrocode} -%<luatex-def> \MT@protrusionfalse %<pdftex-def|luatex-def> }% } % \end{macrocode} @@ -6967,6 +7148,31 @@ time will almost certainly lead to undesired results. Have your choice!}% %</pdftex-def|luatex-def|letterspace> % \end{macrocode} %\end{macro} +%\begin{macro}{\MT@ls@fontspec@colon} +%\begin{macro}{\MT@ls@fontspec@font} +% Add the |kernfactor| feature to a font loaded by \pkg{fontspec} +% (we might have to add the colon ourselves). +% \begin{macrocode} +%<*luatex-def|letterspace> +\def\MT@ls@fontspec@colon#1:#2:#3\@nil{#1:#2} +\def\MT@ls@fontspec@font#1 #2\@nil{% + "\MT@ls@fontspec@colon#1::\@nil + kernfactor=% + \ifnum\MT@letterspace@<\z@ -0.% + \ifnum-\MT@letterspace@<100 0\fi + \ifnum-\MT@letterspace@<10 0\fi + \number-\MT@letterspace@ + \else 0.% + \ifnum\MT@letterspace@<100 0\fi + \ifnum\MT@letterspace@<10 0\fi + \number\MT@letterspace@ + \fi;" + \ifx\\#2\\ at \f@size pt\else#2\fi\relax +} +%</luatex-def|letterspace> +% \end{macrocode} +%\end{macro} +%\end{macro} %\begin{macro}{\MT@get@tr@opt} % Various settings (only for the \microtype\ version). % \begin{macrocode} @@ -7036,9 +7242,9 @@ time will almost certainly lead to undesired results. Have your choice!}% % \end{macrocode} %\end{macro} %\begin{macro}{\lsstyle} -%\changes{v2.0}{2005/09/21}{(beta:1) new command: letterspacing} -%\changes{v2.0}{2006/09/19}{(beta:8) fix: font switches don't pose a problem anymore} -%\changes{v2.0}{2006/09/21}{(beta:8) fix: letterspacing commands may be nested} +%\changes{v2.0}{2005/09/21}{new command: letterspacing} ^^A (beta:1) +%\changes{v2.0}{2006/09/19}{fix: font switches don't pose a problem anymore} ^^A (beta:8) +%\changes{v2.0}{2006/09/21}{fix: letterspacing commands may be nested} ^^A (beta:8) %\changes{v2.0}{2006/12/28}{totally redone, using the new \cmd\letterspacefont} %\changes{v2.3d}{2008/11/16}{make invalid in math mode} %\changes{v2.3d}{2009/01/07}{disable for \luatex} @@ -7048,11 +7254,11 @@ time will almost certainly lead to undesired results. Have your choice!}% % another text switch, of course). %\changes{v2.5}{2012/11/14}{fix: ensure to set up math fonts (reported by \contributor RazorXsr <@\at @>)} % ^^A http://tex.stackexchange.com/questions/82686/settracking-in-the-math-environment -% Still, we have to ensure that math fonts are set up again. +% Still, we have to (globally) ensure that math fonts are set up again. % \begin{macrocode} \DeclareRobustCommand\lsstyle{% \not@math@alphabet\lsstyle\textls - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty %<pdftex-def|luatex-def> \def\MT@feat{tr}% \let\MT@tracking\MT@set@tr@codes \selectfont @@ -7174,10 +7380,10 @@ time will almost certainly lead to undesired results. Have your choice!}% % \end{macrocode} %\end{macro} %\begin{macro}{\MT@tr@set@space} -% Adjust interword spacing (\fontdim2--4) for inner and outer space. +% Adjust interword spacing (\fontdim2,3,4) for inner and outer space. % For inner spacing, the font dimensions will be adjusted, the settings for % outer spacing will be remembered in a macro. -%\todo{don't add stretch components if ragged2e is active?} ^^A reported by \contributor Leo ? <sdl.web\at gmail.com>, MID: <wqlfwxsuo6h.fsf@pip.srcf.ucam.org> +%\todo{don't add stretch components if \pkg{ragged2e} is active?} ^^A reported by \contributor Leo ? <sdl.web\at gmail.com>, MID: <wqlfwxsuo6h.fsf@pip.srcf.ucam.org> %^^A or in fact, shouldn't we test whether \spaceskip<>0pt ? % \begin{macrocode} \def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{% @@ -7410,7 +7616,7 @@ time will almost certainly lead to undesired results. Have your choice!}% % \pkg{xspace} requires special treatment. % \begin{macrocode} \MT@if@outer@next\xspace{% - \def\MT@temp*\xspace{\futurelet\@let@token\MT@xspace}% + \def\MT@temp*\xspace{\MT@xspace}% }{% % \end{macrocode} % If there's no outer spacing, there may be outer kerning. @@ -7441,10 +7647,18 @@ time will almost certainly lead to undesired results. Have your choice!}% %\changes{v2.5a}{2013/05/15}{fix \texttt{outer spacing} problem with \pkg{xspace} % (reported by \contributor Dave <@\at @>)} % ^^A http://tex.stackexchange.com/questions/59655 +%\changes{v2.6}{2014/11/22}{fix \texttt{outer spacing} problem with (not only) \pkg{algorithm} +% (reported by \contributor Henning <@\at @> +% and \contributor Ronnie Marksch <Ronnie.Marksch\at yahoo.de>)} +% ^^A http://tex.stackexchange.com/questions/213164 +% ^^A MID: <mk1sqc$jve$1@speranza.aioe.org> +%\begin{macro}{\MT@xspace@} % If the group is followed by \cmd\xspace, we first feed \cmd\xspace\ with the % next token, then check whether it has inserted a space. +% \cmd\@let@token\ might be something evil, so it should be encapsulated here. % \begin{macrocode} -\def\MT@xspace{\@xspace@firsttrue\@xspace +\def\MT@xspace{\futurelet\@let@token\MT@xspace@} +\def\MT@xspace@{\@xspace@firsttrue\@xspace \ifdim\lastskip>5sp \unskip \hskip\MT@outer@space \else @@ -7453,6 +7667,7 @@ time will almost certainly lead to undesired results. Have your choice!}% } % \end{macrocode} %\end{macro} +%\end{macro} % For older \pdftex\ versions and \luatex, throw an error. % \begin{macrocode} }{ @@ -7478,7 +7693,7 @@ time will almost certainly lead to undesired results. Have your choice!}% %</xetex-def> % \end{macrocode} %\begin{macro}{\textls} -%\changes{v2.0}{2005/09/21}{(beta:1) new command: letterspacing} +%\changes{v2.0}{2005/09/21}{new command: letterspacing} ^^A (beta:1) %\changes{v2.0}{2006/12/28}{starred version: remove spaces around text} %\changes{v2.1}{2007/01/19}{fix: use \cmd\hmode@bgroup} %\changes{v2.3d}{2008/11/16}{make math mode aware} @@ -7647,6 +7862,7 @@ time will almost certainly lead to undesired results. Have your choice!}% %\begin{macro}{\MT@noligatures@} % This is also used by \cs{MT@set@tr@codes}. % \begin{macrocode} +%<luatex-def>\MT@requires@luatex4{\let\pdfnoligatures\ignoreligaturesinfont}\relax \def\MT@noligatures@#1#2{% \MT@ifdefined@c@TF#2{% % \end{macrocode} @@ -7661,7 +7877,16 @@ time will almost certainly lead to undesired results. Have your choice!}% \def\MT@curr@list@name{\@backslashchar DisableLigatures}% \MT@map@clist@c#2{% \KV@@sp@def\@tempa{##1}\MT@get@slot - \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}% + \ifnum\MT@char>\m@ne + \tagcode#1\MT@char=\m@ne +% \end{macrocode} +% With \luatex, we additionally register the ligatures that should be inhibited +% in a table (used by the \pkg{luaotfload} function |keepligature|). +%\changes{v2.6}{2016/04/20}{use \pkg{luaotfload} function to keep\slash inhibit ligatures} +% \begin{macrocode} +%<luatex-def> \MT@if@fontspec@font{\MT@lua{microtype.noligatures([[#1]],[[\MT@char]])}}\relax + \fi + }% \MT@vinfo{... Disabling ligatures for characters: #2}% }{% \pdfnoligatures#1% @@ -7671,7 +7896,9 @@ time will almost certainly lead to undesired results. Have your choice!}% }% }{% \pdfnoligatures#1% - \MT@vinfo{... Disabling ligatures}% +%<luatex-def> \MT@if@fontspec@font +%<luatex-def> {\MT@lua{microtype.noligatures([[#1]],"_all_")}}\relax + \MT@vinfo{... Disabling all ligatures}% }% } %<pdftex-def>}\relax @@ -7679,6 +7906,56 @@ time will almost certainly lead to undesired results. Have your choice!}% % \end{macrocode} %\end{macro} %\end{macro} +% For each potential ligature, \pkg{luaotfload} will call the +% |keepligature| function, which expects the first node of the ligature, +% to check whether they should be kept or inhibited. +% Here's our concoction of this function. The table |microtype.ligs| will +% be populated in \cmd\MT@noligatures@. +% \begin{macrocode} +%<*luafile> +microtype.ligs = microtype.ligs or { } + +local function noligatures(fontcs,liga) + local fontcs = match(fontcs,"([^ ]+)") + microtype.ligs[fontcs] = microtype.ligs[fontcs] or { } + table.insert(microtype.ligs[fontcs],liga) +end +microtype.noligatures = noligatures + +local function keepligature(c) + local nodedirect = node.direct + local getfield = nodedirect.getfield + local getfont = nodedirect.getfont + local f,ch + if type(c) == "userdata" then -- in older luaotfload versions, c was a node + f = c.font + ch = c.components.char + else -- since 2.6, c is a (direct node) number + f = getfont(c) + ch = getfield(getfield(c,"components"),"char") + end +-- if ch then -- should always be true + local ligs = microtype.ligs[match(tex.fontidentifier(f),"\\([^ ]+)")] + if ligs then + for _,lig in pairs(ligs) do + if lig == "_all_" or tonumber(lig) == ch then + return false + end + end + end + return true +-- end +end + +if luaotfload and luaotfload.letterspace then + if luaotfload.letterspace.keepligature then + microtype.warning("overwriting function `keepligature'") + end + luaotfload.letterspace.keepligature = keepligature +end + +%</luafile> +% \end{macrocode} % %\subsubsection{Loading the configuration} % @@ -7805,10 +8082,9 @@ time will almost certainly lead to undesired results. Have your choice!}% % \end{macrocode} %\end{macro} %\begin{macro}{\MT@begin@catcodes} -% This will be used before reading the files as well as in the configuration -% commands \cs{Set...}, and \cs{DeclareCharacterInheritance}, so that the -% catcodes are also harmless when these commands are used outside the -% configuration files. +% This will be used before reading the files as well as in all configuration +% commands, so that catcodes are also harmless when these commands are used +% outside the configuration files. %\changes{v1.7}{2005/02/17}{also use inside configuration commands} %\changes{v2.3}{2007/11/20}{fix: don't disable \cmd\KV@@sp@def} % \begin{macrocode} @@ -8198,6 +8474,9 @@ time will almost certainly lead to undesired results. Have your choice!}% % If the user has specified something like `|fi|', or wanted to define a number % but forgot to use three digits, we'll have something left of the string. In % this case, we issue a warning and forget the complete string. +%\changes{v2.6}{2016/04/23}{fix: could fail with \xetex\ +% (reported by \contributor Christopher Schramm <debian\at shakaweb.org>)} +% ^^A http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725395#15 % \begin{macrocode} \ifMT@norest \else \MT@warn@rest @@ -8207,6 +8486,7 @@ time will almost certainly lead to undesired results. Have your choice!}% %<luatex-def> \fi \else \MT@warn@unknown +%<xetex-def> \let\MT@char\@empty \fi %<*xetex-def> \else @@ -8259,10 +8539,10 @@ time will almost certainly lead to undesired results. Have your choice!}% %</pdftex-def|luatex-def|xetex-def> % \end{macrocode} % This is the lua function to translate glyph name into slot number. -% Beginning with v2.2, \pkg{luaotfload} provides this function in an API, which +% Beginning with v2.2, \pkg{luaotfload} provides this function in an <API>, which % we use if available, but (for now, at least) keep the old code for backward % compatibility. -%\changes{v2.5a}{2013/04/19}{adapted for \pkg{luaotfload} v2.2 +%\changes{v2.5a}{2013/04/19}{adapt to \pkg{luaotfload} v2.2 % (contributed by \contributor \'Elie Roux <elie.roux\at telecom-bretagne.eu>)} % ^^A MID: <516AAF6B.8040605@telecom-bretagne.eu> % \begin{macrocode} @@ -8535,7 +8815,8 @@ end /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse /else /edef/MT@char@{/number"##2##3}% - /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse + /MT@ifstreq/MT@charstring{##4}/relax + {/MT@is@xchar##2##3|##4\CHAR"/relax}% /fi %<debug> /MT@dinfo@nl{3}{> `/the/MT@toks' is a \char (/MT@char@)}% /fi @@ -8544,6 +8825,17 @@ end % \end{macrocode} %\end{macro} %\end{macro} +%\begin{macro}{\MT@is@xchar} +%\changes{v2.6}{2016/04/23}{update for \pkg{fontspec}'s <TU> encoding} +% With \pkg{fontspec}'s <TU> encoding, glyphs numbers may be up to four digits. +%\SpecialEscapechar{\/} +% \begin{macrocode} + /def/MT@is@xchar##1|##2\CHAR"##3##4/relax{% + /MT@ifstreq/MT@charstring{##3##4}% + {/edef/MT@char@{/number"##1##2}}/MT@norestfalse + }% +% \end{macrocode} +%\end{macro} %\begin{macro}{\MT@charxstring} %\begin{macro}{\MT@strip@prefix} %\begin{macro}{\MT@is@charx} @@ -8697,6 +8989,14 @@ end } % \end{macrocode} %\end{macro} +\def\MT@warn@unknown@once#1{% + \def\MT@warn@unknown{% + \MT@warning@nl{One or more slots in the configuration are unknown.\MessageBreak + Make sure that no text commands are used.\MessageBreak + See the documentation for details (the note\MessageBreak + on `#1' in section 9: `Hints and caveats')}% + \MT@glet\MT@warn@unknown\relax}% +} % %\subsubsection{Hook into \LaTeX's font selection}\label{sssec:impl.hook} % @@ -8764,49 +9064,80 @@ end %<plain>\MT@requires@latex2{ \MT@addto@setup{% % \end{macrocode} +%\begin{macro}{\MT@orig@pickupfont} +% The \pkg{luatexja} package redefines \cmd\char, which will upset our parsing +% of text symbols and commands; instead of fixing this, we won't bother, +% at least for the moment, but simply issue a warning and disable all +% further warnings. The fix is left to the user by not specifying any text +% commands but only (Unicode) letters. +%\changes{v2.6}{2015/12/05}{(in)compatibility with \pkg{luatexja}: disable unknown slots warnings +% (reported by \contributor Max <@\at @>)} +% ^^A http://tex.stackexchange.com/questions/272102/luatexja-with-microtype-generates-lots-of-warnings +% The \pkg{xeCJK} package, or rather its \pkg{xunicode-addon}, also modifies the way +% text symbols are defined (like \pkg{luatexja} but in a different way). +% Again, we only issue a warning. +%\changes{v2.6}{2015/11/03}{(in)compatibility with \pkg{xeCJK}: disable unknown slots warnings +% (reported by \contributor HcN <@\at @>)} +% ^^A http://tex.stackexchange.com/questions/275653/warning-using-microtype-and-excjk-packages +% \begin{macrocode} + \MT@with@package@T{luatexja}{\MT@warn@unknown@once{luatexja}}% + \MT@with@package@T{xeCJK} {\MT@warn@unknown@once{xeCJK}}% +% \end{macrocode} %\changes{v2.1}{2007/01/15}{compatibility with \pkg{CJK}: also check for its definition} %\changes{v2.3b}{2008/05/26}{compatibility with \pkg{CJKutf8}: also check for its definition} -%\begin{macro}{\MT@orig@pickupfont} % \microtype\ also works with \pkg{CJK} in the sense that nothing will break % when both packages are used at the same time. However, since \pkg{CJK} has % its own way of encoding, it is currently not possible to create % character-specific settings. That is, the only feature available with -% \pkg{CJK} fonts is expansion. +% \pkg{CJK} fonts is (non-selected) expansion. % (Tracking doesn't really work for other reasons.) %\todo{fix tracking with \pkg{CJK}, if worth the trouble}^^A % Like us, \pkg{CJK} redefines \cmd\pickup@font. % \begin{macrocode} \@ifpackageloaded{CJK}{% - \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 - {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% - {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% - \g@addto@macro\MT@orig@pickupfont - {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% +% \end{macrocode} +%\changes{v2.6}{2013/06/06}{compatibility with \pkg{xeCJK}: pretend that \pkg{CJK} wasn't loaded} +% The \pkg{xeCJK} package in turn pretends that \pkg{CJK} was loaded, but does not +% change the definition of \cmd\pickup@font. +% With \pkg{xeCJK}, protrusion should be possible also for C/J/K characters; +% I haven't tried it, though. +%^^A also, \XeTeXinterchartoks probably interferes ... +% \begin{macrocode} + \@ifpackageloaded{xeCJK}{\@firstofone}{% + \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 + {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% + {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% + \g@addto@macro\MT@orig@pickupfont + {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% % \end{macrocode} % \pkg{CJKutf8} redefines \cmd\pickup@font\ once more (recent versions, in % <PDF> mode, as determined by \pkg{ifpdf}, which \pkg{CJKutf8} loads). % \begin{macrocode} - \@ifpackageloaded{CJKutf8}% - {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 - {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% - {\@firstoftwo}}% - {\@firstoftwo}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\else\xdef\font@name{% + \@ifpackageloaded{CJKutf8}% + {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 + {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% + {\@firstoftwo}}% + {\@firstoftwo}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\else\xdef\font@name{% + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\def\CJK@temp{v}% + \ifx\CJK@temp\CJK@plane + \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax + \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi + \else \CJK@addcmap\CJK@plane \fi + \else\xdef\font@name{% \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\def\CJK@temp{v}% - \ifx\CJK@temp\CJK@plane - \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax - \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi - \else \CJK@addcmap\CJK@plane \fi - \else\xdef\font@name{% - \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - }{% - \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}% - }% + \@gobble + }% + }{\@firstofone}% +% \end{macrocode} +% This is the normal \LaTeX\ definition. +% \begin{macrocode} + {\def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}}% % \end{macrocode} % Check whether \cmd\pickup@font\ is defined as expected. % The warning issued by \cmd{\CheckCommand*} would be a bit too generic. @@ -9028,6 +9359,8 @@ end %\changes{v1.9}{2005/10/03}{new command: change setup context in the document} %\changes{v2.3}{2007/08/05}{made robust (reported by \contributor Stephan Hennig <stephanhennig\at arcor.de>)} % ^^A MID: <46ab4fbb$0$31632$9b4e6d93@newsspool3.arcor-online.net> +%\changes{v2.6}{2014/03/26}{allow \texttt{activate} shortcut (reported by \contributor Karl Berry <karl\at freefriends.org>)} +% ^^A private mail, 2014/03/21 % The user may change the context, so that different setups are possible. This % is especially useful for multi-lingual documents. % @@ -9044,7 +9377,7 @@ end %\changes{v2.5}{2012/11/13}{fix: ensure to set up math fonts (reported by \contributor RazorXsr <@\at @>)} % ^^A http://tex.stackexchange.com/questions/82556/pdftex-font-expansion-error-setexpansion-in-microtype-package % \begin{macrocode} - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty \setkeys{MTC}{#1}% \selectfont \MT@reset@context @@ -9127,6 +9460,13 @@ end }% } % \end{macrocode} +% We also allow the |activate| shortcut. +% \begin{macrocode} +\define@key{MTC}{activate}[]{% + \setkeys{MT}{protrusion={#1}}% + \setkeys{MT}{expansion={#1}}% +} +% \end{macrocode} %\begin{macro}{\MT@pr@context} %\begin{macro}{\MT@ex@context} %\begin{macro}{\MT@tr@context} @@ -9164,6 +9504,8 @@ end %\todo{allow for \texttt{load}ing and extending another set; or using more than one set?} % %\begin{macro}{\DeclareMicrotypeSet} +%^^A \changes{v1.1}{2004/09/15}{remove spaces around first argument} +%\changes{v2.6}{2013/08/05}{ignore spaces} %\begin{macro}{\DeclareMicrotypeSet*} % Calling this macro will create a comma list for every font attribute of the % form: |\MT|\meta{feature}|list@|\meta{attribute}|@|\meta{set name}. If the @@ -9174,6 +9516,7 @@ end % does not constitute a constraint. % \begin{macrocode} \def\DeclareMicrotypeSet{% + \MT@begin@catcodes \@ifstar \MT@DeclareSetAndUseIt \MT@DeclareSet @@ -9182,23 +9525,21 @@ end %\end{macro} %\end{macro} %\begin{macro}{\MT@DeclareSet} -%\changes{v1.1}{2004/09/15}{remove spaces around first argument} % \begin{macrocode} \newcommand\MT@DeclareSet[3][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@declare@sets{##1}{#2}{#3}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{set declaration `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{set declaration `#2'}{% \MT@exp@one@n\MT@declare@sets - {\csname MT@rbba@\@tempa\endcsname}{#2}{#3}% + {\csname MT@rbba@##1\endcsname}{#2}{#3}% }% }% }}% }% + \MT@end@catcodes } % \end{macrocode} %\end{macro} @@ -9221,13 +9562,16 @@ end %\changes{v1.1}{2004/09/20}{remove spaces around set name} %\changes{v1.8}{2005/05/15}{warning when redefining a set} %\changes{v2.0}{2006/10/16}{fix: empty size list when redefining set} +%\changes{v2.6}{2016/04/20}{fix: undefine lists for redefining} %\todo{share one set between features} % \begin{macrocode} \def\MT@declare@sets#1#2#3{% - \KV@@sp@def\MT@curr@set@name{#2}% + \def\MT@curr@set@name{#2}% \MT@ifdefined@n@T{MT@#1@set@@\MT@curr@set@name}{% \MT@warning{Redefining \@nameuse{MT@abbr@#1} set `\MT@curr@set@name'}% - \MT@glet@nc{MT@#1list@size@\MT@curr@set@name}\@empty + \MT@map@clist@n{font,encoding,family,series,shape,size}{% + \MT@glet@nc{MT@#1list@##1@\MT@curr@set@name}\@undefined + }% }% \MT@glet@nc{MT@#1@set@@\MT@curr@set@name}\@empty %<debug>\MT@dinfo{1}{declaring \@nameuse{MT@abbr@#1} set `\MT@curr@set@name'}% @@ -9306,11 +9650,13 @@ end % \begin{macrocode} \let\MT@font@sets\@empty \def\MT@fix@font@set#1{% - \xdef#1{#1}% - \ifMT@fontspec - \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}% - \fi - \global\@onelevel@sanitize#1% + \MT@ifdefined@c@T{#1}{% + \xdef#1{#1}% + \ifMT@fontspec + \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}% + \fi + \global\@onelevel@sanitize#1% + }% } % \end{macrocode} %\end{macro} @@ -9321,7 +9667,7 @@ end \def\MT@define@set@key@size#1{% \define@key{MT@#1@set}{size}[]{% \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% + \def\MT@val{####1}% \expandafter\MT@get@range\MT@val--\@nil \ifx\MT@val\relax \else \MT@exp@cs\MT@xadd @@ -9415,7 +9761,7 @@ end % The \pkg{relsize} solution of parsing \cmd\@setfontsize\ does not work with the % <AMS> classes, among others. I hope my hijacking doesn't do any harm. %\changes{v1.2}{2004/09/26}{hijack \cmd\set@fontsize\ instead of \cmd\@setfontsize} -% We redefine \cmd\set@fontsize, and not \cmd\@setfontsize\ because some classes +% We redefine \cmd\set@fontsize\ instead of \cmd\@setfontsize\ because some classes % might define the size selection commands by simply using \cmd\fontsize\ % (\eg, the \pkg{a0poster} class). %\changes{v2.3b}{2008/03/07}{grouping} @@ -9448,7 +9794,7 @@ end \define@key{MT@#1@set}{font}[]{% \MT@glet@nc{MT@#1list@font@\MT@curr@set@name}\@empty \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% + \def\MT@val{####1}% \MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax \expandafter\MT@get@font\MT@val/////\@nil \MT@exp@two@n\g@addto@macro @@ -9532,23 +9878,31 @@ end % To use a particular set we simply redefine |MT@|\meta{feature}|@setname|. % If the optional argument is empty, set names for all features will be % redefined. -%\changes{v1.1}{2004/09/20}{remove spaces around first argument} +%^^A \changes{v1.1}{2004/09/20}{remove spaces around first argument} +%\changes{v2.6}{2013/08/05}{ignore spaces} +% \begin{macrocode} +\def\UseMicrotypeSet{% + \MT@begin@catcodes + \MT@UseMicrotypeSet +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\MT@UseMicrotypeSet} % \begin{macrocode} -\renewcommand*\UseMicrotypeSet[2][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% +\newcommand*\MT@UseMicrotypeSet[2][]{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@use@set{##1}{#2}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{activation of set `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{activation of set `#2'}{% \MT@exp@one@n\MT@use@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% + {\csname MT@rbba@##1\endcsname}{#2}% }% }% }}% }% + \MT@end@catcodes } % \end{macrocode} %\end{macro} @@ -9565,15 +9919,14 @@ end %\changes{v1.8}{2005/05/15}{fix: remove braces in first line} % \begin{macrocode} \def\MT@use@set#1#2{% - \KV@@sp@def\@tempa{#2}% - \MT@ifdefined@n@TF{MT@#1@set@@\@tempa}{% - \MT@xdef@n{MT@#1@setname}{\@tempa}% + \MT@ifdefined@n@TF{MT@#1@set@@#2}{% + \MT@xdef@n{MT@#1@setname}{#2}% }{% \MT@ifdefined@n@TF{MT@#1@setname}\relax{% \MT@xdef@n{MT@#1@setname}{\@nameuse{MT@default@#1@set}}% }% \MT@error{% - The \@nameuse{MT@abbr@#1} set `\@tempa' is undeclared.\MessageBreak + The \@nameuse{MT@abbr@#1} set `#2' is undeclared.\MessageBreak Using set `\@nameuse{MT@#1@setname}' instead}{}% }% } @@ -9586,24 +9939,32 @@ end %\end{macro} %\begin{macro}{\DeclareMicrotypeSetDefault} %\changes{v1.8}{2005/05/15}{new command: set default font set} +%\changes{v2.6}{2013/08/05}{ignore spaces} % This command can be used in the main configuration file to declare the % default font set, in case no set is specified in the package options. % \begin{macrocode} -\renewcommand*\DeclareMicrotypeSetDefault[2][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% +\def\DeclareMicrotypeSetDefault{% + \MT@begin@catcodes + \MT@DeclareMicrotypeSetDefault +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\MT@DeclareMicrotypeSetDefault} +% \begin{macrocode} +\newcommand*\MT@DeclareMicrotypeSetDefault[2][]{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@set@default@set{##1}{#2}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{declaration of default set `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{declaration of default set `#2'}{% \MT@exp@one@n\MT@set@default@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% + {\csname MT@rbba@##1\endcsname}{#2}% }% }% }}% }% + \MT@end@catcodes } % \end{macrocode} %\end{macro} @@ -9615,13 +9976,12 @@ end %\begin{macro}{\MT@set@default@set} % \begin{macrocode} \def\MT@set@default@set#1#2{% - \KV@@sp@def\@tempa{#2}% - \MT@ifdefined@n@TF{MT@#1@set@@\@tempa}{% -%<debug>\MT@dinfo{1}{declaring default \@nameuse{MT@abbr@#1} set `\@tempa'}% - \MT@xdef@n{MT@default@#1@set}{\@tempa}% + \MT@ifdefined@n@TF{MT@#1@set@@#2}{% +%<debug>\MT@dinfo{1}{declaring default \@nameuse{MT@abbr@#1} set `#2'}% + \MT@xdef@n{MT@default@#1@set}{#2}% }{% \MT@error{% - The \@nameuse{MT@abbr@#1} set `\@tempa' is not declared.\MessageBreak + The \@nameuse{MT@abbr@#1} set `#2' is not declared.\MessageBreak Cannot make it the default set. Using set\MessageBreak `all' instead}{}% \MT@xdef@n{MT@default@#1@set}{all}% }% @@ -9638,12 +9998,14 @@ end % %\begin{macro}{\DeclareMicrotypeVariants} %\changes{v2.2}{2007/02/04}{new command} +%\changes{v2.6}{2013/08/05}{ignore spaces} %\begin{macro}{\MT@variants} % Specify suffixes for variants (see \file{fontname/variants.map}). % The starred version appends to the list. % \begin{macrocode} \let\MT@variants\@empty \def\DeclareMicrotypeVariants{% + \MT@begin@catcodes \@ifstar \MT@DeclareVariants {\let\MT@variants\@empty\MT@DeclareVariants}% @@ -9655,10 +10017,11 @@ end % \begin{macrocode} \def\MT@DeclareVariants#1{% \MT@map@clist@n{#1}{% - \KV@@sp@def\@tempa{##1}% + \def\@tempa{##1}% \@onelevel@sanitize\@tempa \xdef\MT@variants{\MT@variants{\@tempa}}% }% + \MT@end@catcodes } % \end{macrocode} %\end{macro} @@ -9667,17 +10030,24 @@ end % settings for the aliased font will be loaded. %\changes{v1.5}{2004/12/03}{remove spaces around arguments} %\changes{v1.8}{2005/05/09}{warning when overriding an alias font} -%\changes{v2.5}{2010/05/17}{remove spaces in font name} +%\changes{v2.5}{2010/05/17}{ignore spaces} % \begin{macrocode} -\renewcommand*\DeclareMicrotypeAlias[2]{% - \edef\@tempa{\zap@space#1 \@empty}% - \edef\@tempb{\zap@space#2 \@empty}% +\def\DeclareMicrotypeAlias{% + \MT@begin@catcodes + \MT@DeclareMicrotypeAlias +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\MT@DeclareMicrotypeAlias} +% \begin{macrocode} +\newcommand*\MT@DeclareMicrotypeAlias[2]{% + \def\@tempb{#2}% \@onelevel@sanitize\@tempb - \MT@ifdefined@n@T{MT@\@tempa @alias}{% + \MT@ifdefined@n@T{MT@#1@alias}{% \MT@warning{Alias font family `\@tempb' will override - alias `\@nameuse{MT@\@tempa @alias}'\MessageBreak - for font family `\@tempa'}}% - \MT@xdef@n{MT@\@tempa @alias}{\@tempb}% + alias `\@nameuse{MT@#1@alias}'\MessageBreak + for font family `#1'}}% + \MT@xdef@n{MT@#1@alias}{\@tempb}% % \end{macrocode} % If we encounter this command while a font is being set up, we also set the % alias for the current font so that if \cs{DeclareMicrotypeAlias} has been @@ -9689,6 +10059,7 @@ end %<debug>\MT@dinfo{1}{Activating alias font `\@tempb' for `\MT@family'}% \MT@glet\MT@familyalias\@tempb }% + \MT@end@catcodes } % \end{macrocode} %\end{macro} @@ -9712,8 +10083,8 @@ end \edef\MT@curr@file{mt-\@tempa.cfg}% \MT@vinfo{... Loading configuration file \MT@curr@file}% }{% - \MT@warning{... Configuration file mt-\@tempa.cfg\MessageBreak - does not exist}% + \MT@warning{Configuration file mt-\@tempa.cfg\MessageBreak + does not exist}% }% \MT@end@catcodes \fi @@ -9779,7 +10150,7 @@ end % Declare the context that should be loaded when a \pkg{babel} language % is selected. The command will not check whether a previous declaration will % be overwritten. -%\changes{v2.0}{2005/10/04}{(beta:1) new command: interaction with \pkg{babel}} +%\changes{v2.0}{2005/10/04}{new command: interaction with \pkg{babel}} ^^A (beta:1) % \begin{macrocode} %<*package> \def\DeclareMicrotypeBabelHook#1#2{% @@ -9933,7 +10304,7 @@ end % \end{macrocode} %\end{macro} %\begin{macro}{\SetExtraSpacing} -%\changes{v2.0}{2005/09/28}{(beta:1) new command: adjustment of interword spacing} +%\changes{v2.0}{2005/09/28}{new command: adjustment of interword spacing} ^^A (beta:1) % \begin{macrocode} %<*pdftex-def> \def\SetExtraSpacing{% @@ -9963,7 +10334,7 @@ end %\end{macro} %\end{macro} %\begin{macro}{\SetExtraKerning} -%\changes{v2.0}{2005/09/28}{(beta:1) new command: additional kerning} +%\changes{v2.0}{2005/09/28}{new command: additional kerning} ^^A (beta:1) % \begin{macrocode} \def\SetExtraKerning{% \MT@begin@catcodes @@ -10204,7 +10575,7 @@ end }% } % \end{macrocode} -% Protrusion contexts \emph{may} also work without copying the font, so we +% Protrusion contexts \emph{might} also work without copying the font, so we % don't issue an error but only a warning. The problem is that \pdftex\ only % allows one set of protrusion factors for a given font within one paragraph % (those that are in effect at the end of the paragraph will be in effect for @@ -10262,8 +10633,8 @@ end % to `\texttt{character}' for key \texttt{unit}} %\changes{v2.0}{2006/09/30}{option `\opt{unit}', \cs{SetProtrusion}: % deprecate value `\texttt{relative}' completely} -% Protrusion codes may be relative to character width, or to any dimension. %\todo{new key for unit: \texttt{dimen} (for \texttt{kerning}, especially)} +% Protrusion codes may be relative to character width, or to any dimension. % \begin{macrocode} %<*pdftex-def|xetex-def|luatex-def> \define@key{MT@pr@c}{unit}[character]{% @@ -10880,11 +11251,12 @@ end } % \end{macrocode} %\changes{v1.5}{2004/12/02}{new option: \opt{selected}, by default false -% (suggested by \contributor \thanh{} <hanthethanh\at gmx.net>)} +% (suggested by \contributor H\`an \thanhthe{} Th\`anh <hanthethanh\at gmx.net>)} % ^^A private mail, 2004/11/30 -%\changes{v2.0}{2005/10/04}{(beta:1) new option: \opt{babel}, by default false +%\changes{v2.0}{2005/10/04}{new option: \opt{babel}, by default false % (language-dependent setup suggested by \contributor Ulrich Dirr <ud\at art-satz.de>)} % ^^A private mail, 2005/08/27 +% ^^A (beta:1) %\begin{macro}{\MT@def@bool@opt} % The |true|/|false| options: % \opt{draft}, \opt{final} (may be inherited from the class options), @@ -10921,6 +11293,7 @@ end % \begin{macrocode} %</package> %<*pdftex-def|luatex-def|xetex-def> +%<luatex-def>\MT@requires@luatex4{\let\pdfoutput\outputmode}\relax \MT@def@bool@opt{DVIoutput}{% \csname if\@tempa\endcsname %<*pdftex-def|luatex-def> @@ -10938,7 +11311,7 @@ end %\changes{v1.9a}{2005/11/21}{new option: \opt{defersetup}, by default true} % Setting the \opt{defersetup} option to false will restore the old behaviour, % where the setup took place at the time when the package was loaded. This is -% undocumented, since I would like to learn about the cases where this is +% \emph{undocumented}, since I would like to learn about the cases where this is % necessary. % % The only problem with the new deferred setup I can think of is when a box @@ -11034,10 +11407,10 @@ end %</package> % \end{macrocode} %\changes{v1.5}{2004/12/02}{defaults: \opt{step}: 4 -% (suggested by \contributor \thanh{} <hanthethanh\at gmx.net>)} +% (suggested by \contributor H\`an \thanhthe{} Th\`anh <hanthethanh\at gmx.net>)} % ^^A private mail, 2004/11/30 %\changes{v1.6}{2004/12/18}{new option: \opt{factor}, by default 1000} -%\changes{v2.0}{2005/09/21}{(beta:1) new option: \opt{letterspace}, by default 100} +%\changes{v2.0}{2005/09/21}{new option: \opt{letterspace}, by default 100} ^^A (beta:1) %^^A\changes{v2.0}{2007/01/05}{option `\texttt{letterspacing}' renamed to `\opt{letterspace}'} % Options with numerical keys: % \opt{factor}, @@ -11102,11 +11475,14 @@ end %\end{macro} % \begin{macrocode} \ifx\MT@engine\relax - \MT@warning@nl{You don't seem to be using either pdftex, luatex, or xetex.\MessageBreak + \MT@warning@nl{You don't seem to be using pdftex, luatex or xetex.\MessageBreak `\MT@MT' only works with these engines.\MessageBreak - I will quit now.} + I will quit now} \MT@clear@options \else +% \end{macrocode} +% Otherwise load the engine-specific code (as strewn across this file). +% \begin{macrocode} \input{microtype-\MT@engine tex.def} \fi \MT@endinput @@ -11340,6 +11716,12 @@ end %\begin{macro}{\MT@protrudechars} %\begin{macro}{\MT@adjustspacing} % \begin{macrocode} +%<*luatex-def> +\MT@requires@luatex4{ + \let\pdfprotrudechars\protrudechars + \let\pdfadjustspacing\adjustspacing +}\relax +%</luatex-def> \let\MT@protrudechars\pdfprotrudechars \let\MT@adjustspacing\pdfadjustspacing %</pdftex-def|luatex-def> @@ -11390,9 +11772,11 @@ end % \begin{macrocode} \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero \else \let\MT@tracking\MT@tracking@ \fi} +%<*pdftex> \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta} \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta \pdfappendkern \@tempcnta} +%</pdftex> }{ %</pdftex-def|luatex-def> %<*pdftex-def|luatex-def|xetex-def> @@ -11411,8 +11795,10 @@ end %</pdftex-def|luatex-def|xetex-def> % \end{macrocode} %\begin{macro}{\MT@saved@setupfont} -% Disable everything -- may be used as a work-around in case setting up fonts -% doesn't work in certain environments. \emph{(Undocumented.)} +% Disable everything -- may be used as a temporary work-around in case +% setting up fonts doesn't work under certain circumstances, but only until +% that specific problem is fixed. This is \emph{undocumented}, as it completely +% deprives us of the possibility to act -- we're blind and paralysed. % \begin{macrocode} %<*package> \let\MT@saved@setupfont\MT@setupfont @@ -12028,12 +12414,13 @@ end }% \ifMT@kerning % \end{macrocode} -%\todo{make switching off of babel's shorthands configurable} +%\todo{make switching off of \pkg{babel}'s shorthands configurable} % Disable French \pkg{babel}'s active characters. -%\changes{v2.0}{2006/10/10}{(beta:8) option `\opt{babel}': fix: switch off French +%\changes{v2.0}{2006/10/10}{option `\opt{babel}': fix: switch off French % \pkg{babel}'s shorthands properly % (reported by \contributor Daniel Flipo <daniel.flipo\at univ-lille1.fr>)} % ^^A private mail, 2006/10/09 +% ^^A (beta:8) % \begin{macrocode} \MT@if@false \MT@with@babel@and@T{french} \MT@if@true @@ -12044,7 +12431,7 @@ end \ifMT@if@\MT@shorthandoff{French}{:;!?}\fi % \end{macrocode} % Disable Turkish \pkg{babel}'s active characters. -%\changes{v2.0}{2006/10/10}{(beta:8) option `\opt{babel}': switch off Turkish \pkg{babel}'s shorthands} +%\changes{v2.0}{2006/10/10}{option `\opt{babel}': switch off Turkish \pkg{babel}'s shorthands} ^^A (beta:8) %\changes{v2.3}{2007/10/03}{fix: really switch off Turkish shorthands} % \begin{macrocode} \MT@if@false @@ -12133,49 +12520,70 @@ end %\changes{v1.9d}{2006/04/20}{add <QX> encoding to text sets} %\changes{v2.3e}{2009/10/28}{add <T2A> encoding} %\changes{v2.5}{2010/05/13}{add <EU1> and <EU2> encodings} +%\changes{v2.6}{2016/04/22}{add <TU> encoding +% (notified by \contributor Will Robertson <will\at wspr.io>)} +% ^^A semi-private mail, 2016/01/28 % \begin{macrocode} \DeclareMicrotypeSet{allmath} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TS1,OML,OMS,U} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,TS1,OML,OMS,U} } \DeclareMicrotypeSet{alltext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU} } + +% \end{macrocode} +%\changes{v2.6}{2014/04/07}{new: \texttt{allmath-nott} and \texttt{alltext-nott} +% (reqested by \contributor Karl Berry <karl\at freefriends.org>)} +% ^^A private mail, 2014/03/21 +% \begin{macrocode} +\DeclareMicrotypeSet{allmath-nott} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,TS1,OML,OMS,U}, + family = {rm*,sf*} + } + +\DeclareMicrotypeSet{alltext-nott} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, + family = {rm*,sf*} + } % \end{macrocode} %\changes{v1.9d}{2006/02/22}{\texttt{md*} instead of \texttt{m} series in basic sets} % \begin{macrocode} \DeclareMicrotypeSet{basicmath} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,OML,OMS}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,OML,OMS}, family = {rm*,sf*}, series = {md*}, size = {normalsize,footnotesize,small,large} } \DeclareMicrotypeSet{basictext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU}, family = {rm*,sf*}, series = {md*}, size = {normalsize,footnotesize,small,large} } % \end{macrocode} -%\changes{v2.0}{2006/12/28}{add \texttt{smallcaps} set} +%\changes{v2.0}{2006/12/28}{new: \texttt{smallcaps}} %\changes{v2.3e}{2009/06/01}{\texttt{sc*} instead of \texttt{sc} in \texttt{smallcaps} set} +%\changes{v2.6}{2014/02/18}{add \texttt{si} and \texttt{scit} to \texttt{smallcaps} set +% (reported by \contributor uli <@\at @>)} +% ^^A http://tex.stackexchange.com/questions/157397 % \begin{macrocode} \DeclareMicrotypeSet{smallcaps} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, + shape = {sc*,si,scit} } % \end{macrocode} -%\changes{v2.0}{2006/12/21}{add \texttt{footnotesize} and \texttt{scriptsize} sets} +%\changes{v2.0}{2006/12/21}{new: \texttt{footnotesize} and \texttt{scriptsize}} % \begin{macrocode} \DeclareMicrotypeSet{footnotesize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, size = {-small} } \DeclareMicrotypeSet{scriptsize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, size = {-footnotesize} } @@ -12198,6 +12606,7 @@ end % \end{macrocode} % %\subsection{Font variants and aliases} +%\GeneralChanges{Font aliases} % % \begin{macrocode} %%% ----------------------------------------------------------------------- @@ -12218,9 +12627,9 @@ end % %\bigskip\noindent % Fonts that are `the same': -% The \pkg{fontspec} package will use |lmr| by default, whose EU1/2 encoding +% The \pkg{fontspec} package will use |lmr| by default, whose EU1/2/TU encoding % is declared in \file{mt-LatinModernRoman.cfg}. -%\changes{v2.5}{2012/08/23}{declare \texttt{lmr} as alias of \texttt{Latin Modern Roman} +%\changes{v2.5}{2012/08/23}{declare \texttt{lmr} as alias of Latin Modern Roman % (OpenType version)} % \begin{macrocode} \ifMT@fontspec @@ -12261,7 +12670,7 @@ end \DeclareMicrotypeAlias{qpl} {ppl} % TeX Gyre Pagella (formerly: qfonts/QuasiPalatino) % \end{macrocode} % The `<FPL> Neu' fonts, a `re-implementation' of Palatino. -%\changes{v2.2}{2007/05/27}{declare <FPL> Neu as an alias of Palatino} +%\changes{v2.2}{2007/05/27}{declare \texttt{fp9x}, \texttt{fp9j} (<FPL> Neu) as aliases of \texttt{ppl[xj]}} % \begin{macrocode} \DeclareMicrotypeAlias{fp9x}{pplx} % FPL Neu \DeclareMicrotypeAlias{fp9j}{pplj} % " @@ -12271,7 +12680,7 @@ end % The OpenType versions: % %\changes{v2.5}{2012/03/29}{declare TeX Gyre Pagella, Asana Math, Palatino <LT> Std, and Palatino -% as aliases of \texttt{Palatino Linotype} (OpenType version)} +% as aliases of Palatino Linotype (OpenType version)} % \begin{macrocode} \DeclareMicrotypeAlias{TeX Gyre Pagella}{Palatino Linotype} \DeclareMicrotypeAlias{Palatino LT Std} {Palatino Linotype} @@ -12291,7 +12700,7 @@ end \DeclareMicrotypeAlias{zeus}{eus} % " % \end{macrocode} % MicroPress's Charter version (\pkg{chmath}). -%\changes{v2.2}{2007/06/08}{declare \texttt{chr} (\pkg{chmath}) as an alias of Charter +%\changes{v2.2}{2007/06/08}{declare \texttt{chr} (\pkg{chmath}) as an alias of \texttt{bch} % (reported by \contributor Geoff Vallis <gkv\at Princeton.EDU>)} % ^^A private mail, 2007/06/07 % \begin{macrocode} @@ -12299,7 +12708,7 @@ end % \end{macrocode} % The \pkg{mathdesign} package provides math fonts matching Bitstream Charter %\changes{v1.9a}{2005/10/31}{declare \texttt{mdbch} (\pkg{mathdesign}) -% as an alias of Charter} +% as an alias of \texttt{bch}} % and <URW> Garamond. % \begin{macrocode} \DeclareMicrotypeAlias{mdbch}{bch} % mathdesign/Charter @@ -12308,7 +12717,7 @@ end % The \pkg{garamondx} package, an extension of <URW> Garamond, providing % small caps and oldstyle figures. %\changes{v2.5}{2013/02/20}{declare \texttt{zgmx} etc. (\pkg{garamondx}) -% as aliases of <URW> Garamond} +% as aliases of \texttt{ugm}} % \begin{macrocode} \DeclareMicrotypeAlias{zgmx}{ugm} % garamondx \DeclareMicrotypeAlias{zgmj}{ugm} % " @@ -12592,7 +13001,7 @@ end % %\subsubsection{<T5>} %\changes{v1.9}{2005/08/17}{add list for <T5> (requested by -% \contributor \thanh{} <hanthethanh\at gmail.com>)} +% \contributor H\`an \thanhthe{} Th\`anh <hanthethanh\at gmail.com>)} % ^^A private email, 2005/08/16 % The Vietnamese encoding <T5>. It is so crowded with accented and double-accented % characters that there is no room for any ligatures. @@ -12628,16 +13037,18 @@ end } % \end{macrocode} -%\subsubsection{<EU1>, <EU2>} +%\subsubsection{<EU1>, <EU2>, <TU>} %\changes{v2.5}{2010/11/05}{add rudimentary list for <EU1> and <EU2>} ^^A (beta:03) -% The <EU1> and <EU2> encodings are not well-defined as they don't +%\changes{v2.6}{2016/04/22}{add <TU> encoding} +% The <EU1> (\xetex), <EU2> (\luatex), and, since \pkg{fontspec} version 2.5, +% <TU> encodings are not well-defined in the sense that they don't % contain a fixed number of glyphs, all of which must be present. % OpenType fonts may contain thousands of glyphs, but we only define those % that should be present in every font (basically <T1>). This inheritance list % should be overridden by font-specific ones. % \begin{macrocode} \DeclareCharacterInheritance - { encoding = {EU1,EU2} } + { encoding = {EU1,EU2,TU} } { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A}, a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a}, C = {\'C,\c C,\v C}, @@ -12705,6 +13116,7 @@ end % %\changes{v2.2}{2007/02/23}{add ligatures that are to be disabled} %\changes{v2.5}{2011/09/07}{add <EU2> encoding to default list} ^^A (beta:09) +%\changes{v2.6}{2016/04/22}{add <TU> encoding to default list} % By default, we only disable the `f*' ligatures, for those fonts that have % any. Thus, ligatures and especially kerning for all other characters will be % retained. @@ -12716,7 +13128,7 @@ end \SetTracking [ name = default, no ligatures = {f} ] - { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2,TU} } { } % \end{macrocode} @@ -13216,6 +13628,7 @@ end % For \xetex\ (<EU1>) and \luatex\ (<EU2>) we simply use the <T1> list as % default (for now). %\changes{v2.5}{2010/11/05}{add default lists for <EU1> and <EU2>} ^^A (beta:03) +%\changes{v2.6}{2016/04/22}{add <TU> encoding to lists} % \begin{macrocode} \SetProtrusion %<m-t> [ name = T1-default, @@ -13236,7 +13649,7 @@ end %<ppl> load = ppl-default ] %<ptm> load = ptm-default ] %<ugm> load = ugm-default ] -%<m-t> { encoding = {T1,LY1,EU1,EU2} } +%<m-t> { encoding = {T1,LY1,EU1,EU2,TU} } %<bch|cmr|pad|pmn|ppl> { encoding = {T1,LY1}, %<blg|ptm|ugm> { encoding = {T1}, %<bch> family = bch } @@ -15851,8 +16264,8 @@ end %<*m-t|cmr> %%% ----------------------------------------------------------------------- %%% INTERWORD SPACING -%</m-t|cmr> +%</m-t|cmr> %<*m-t> \SetExtraSpacing [ name = default ] @@ -15861,22 +16274,21 @@ end % \end{macrocode} % These settings are only a first approximation. The following reasoning is from % a mail from \contributor Ulrich Dirr <ud\at art-satz.de>^^A private mail, 2005/06/14 -%\ifpdf\IfFileExists{justification.jpg}{^^A +%\ifpdf\IfFileExists{justification.png}{^^A % , who also provided the sample in figure~\ref{fig:example-spacing}^^A %\changes{v2.2}{2007/04/05}{add sample}^^A % \begin{figure} % \caption{^^A -% Example for interword spacing (from Siemoneit 1989). +% Example for interword spacing (from: M.~Siemoneit, \emph{Typographisches Gestalten}, Frankfurt/M. 1989). % ^^A Manfred Siemoneit, Typographisches Gestalten. -% ^^A Regeln und Tips f\"ur die richtige Gestaltung von Drucksachen, -% ^^A Bielefeld 1989 -% The numbers indicate the preference\slash order when the interword space -% needs to be shrunk.} +% ^^A Regeln und Tips f\"ur die richtige Gestaltung von Drucksachen, +% ^^A Frankfurt/M.: Polygraph Verlag, 1989 +% The numbers indicate the preference for shrinking the interword space.} % \label{fig:example-spacing} -% \includegraphics[width=.6\textwidth]{justification.jpg} +% \includegraphics[width=.66\textwidth]{justification.png} % \end{figure}^^A %}\relax\fi. -% I do not claim to have coped with the task. +% I~do not claim to have coped with the task. %\todo{fix settings} % %\begin{quote} @@ -16172,8 +16584,8 @@ end % \end{macrocode} %^^A\changes{v2.0}{2006/12/28}{remove \texttt{letterspacing} settings} % +%\ifpdf %\GeneralChanges{Documentation} -%\changes{v2.5a}{2013/05/15}{include OpenType configuration files} %^^A The OpenType configuration files are outsourced to an external file, %^^A since they are typeset with \luatex. % @@ -16197,8 +16609,12 @@ end % To view the OpenType configuration settings, first typeset % \file{microtype-utf.dtx} with \luatex.} % -% %\GeneralChanges* +%\else +% \fallbacktext{The original documentation\footnote{ +% \ctanurl{macros/latex/contrib/microtype/microtype.pdf}.} +% also includes the OpenType configuration files.} +%\fi % %\section{Auxiliary file for micro fine tuning} % @@ -16317,6 +16733,19 @@ normal, and shrunk by 5\%: % \mailtoRS. % % ^^A ------------------------------------------------------------------------- +% +% \newpage +% \appendix +% \AppendixSettings +% \GeneralChanges{Documentation} +% +%\changes{v2.5}{2013/02/23}{include \file{microtype-logo.dtx} and \file{microtype-lssample.dtx}} +% \InputIfFileExists{microtype-logo.dtx}\relax\relax +% \InputIfFileExists{microtype-lssample.dtx}\relax\relax +% +% \PrintChanges +% +% ^^A ------------------------------------------------------------------------- %\makeatother % % \CharacterTable @@ -16335,7 +16764,7 @@ normal, and shrunk by 5\%: % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% \CheckSum{10288} +% \CheckSum{10444} % % \Finale % @@ -16345,53 +16774,58 @@ normal, and shrunk by 5\%: *** Typesetting the documentation *** - The documentation (microtype.pdf) can be found on CTAN, if it isn't already - on your computer, so there should be no need to re-typeset it. - If you still want to do that, there are some requirements to consider. - Follow these steps: + The documentation of this package (microtype.pdf) can be found on CTAN, + if it isn't already installed in your TeX system, so there should be no + need to re-typeset it. + If you still want to do this, there are some requirements to consider + and some steps to follow: -# 1) In microtype.ins, uncomment the line: +# (1) In microtype.ins, uncomment the lines: +%\generate{\makefile{microtype-gind.ist}{docist}} +# and %\generate{\makefile{microtype-doc.sty}{docsty}} -# 2) Install the package by running: +# (2) Install the package by running: pdflatex microtype.ins -# 3) Extract microtype-lssample.dtx and microtype-logo.dtx from -# microtype.pdf (ie., from the file you are going to recreate ...). -# This can be done, eg., with Adobe Reader or with the pdftk tool. -# 4) Run +# (3) Extract microtype-lssample.dtx and microtype-logo.dtx from +# microtype.pdf (ie., from the file you are about to recreate ...). +# This can be done, eg., with Adobe Reader or with the pdftk tool. +# (4) Run pdflatex microtype.dtx pdflatex microtype.dtx -# * The following fonts are required: -# - Bitstream Charter -# - Bitstream LetterGothic -# - Adobe Source Sans Pro -# - Adobe Wittenberger Fraktur MT (alternatively yfrak) -# - Adobe Zapf Chancery -# - Adobe Kepler MM (for microtype-logo.dtx, input by microtype.dtx) -# - Adobe Caslon (for microtype-lssample.dtx, input by microtype.dtx) -# 5) Run -makeindex -s gind.ist microtype -# 6) Run -makeindex -s gglo.ist -o microtype.gls microtype.glo -# 7) Run +# [ The following fonts are required: +# - Bitstream Charter +# - Bitstream LetterGothic +# - Adobe Source Sans Pro +# - Adobe Wittenberger Fraktur MT (alternatively yfrak) +# - Adobe Zapf Chancery (alternatively URW Zapf Chancery) +# - Adobe Kepler MM (for microtype-logo.dtx, input by microtype.dtx) +# - Adobe Caslon (for microtype-lssample.dtx, input by microtype.dtx) ] +# (5) Run +makeindex -s microtype-gind.ist microtype +# (6) Run +makeindex -s gglo.ist -o microtype.gls microtype.glo microtype-utf.glo +# (7) Run lualatex microtype-utf.dtx -# * There will be some errors (15, to be exact) about `invalid utf-8 sequences', -# which you should just ignore. -# * The following fonts are required: -# - Bitstream Charter (Type 1) -# - Bitstream LetterGothic (Type 1) -# - Adobe Source Sans Pro (Type 1 or OpenType) -# - Latin Modern Roman (OpenType) -# - Charis SIL (OpenType) -# - TeX Gyre Pagella (OpenType) -# 8) Run +# [ The following fonts are required: +# - Bitstream Charter (Type 1) +# - Bitstream LetterGothic (Type 1) +# - Adobe Source Sans Pro (Type 1) +# - Latin Modern Roman (OpenType) +# - Charis SIL (OpenType) +# - TeX Gyre Pagella (OpenType) ] +# (8) Run pdflatex microtype.dtx -# 9) Run -makeindex -s gind.ist microtype -# 10) Run -makeindex -s gglo.ist -o microtype.gls microtype.glo -# 11) Run +# (9) Run +makeindex -s microtype-gind.ist microtype +# (10) Run +makeindex -s gglo.ist -o microtype.gls microtype.glo microtype-utf.glo +# (11) Run pdflatex microtype.dtx # -# That's it, although I still may have forgotten some things... +# That's it, although I still may have forgotten some things ... +% +% -- RS +% ----------------------------------------------------------------------------- +% +% vim: ts=2:sw=2:et: % -% -- diff --git a/Master/texmf-dist/source/latex/microtype/microtype.ins b/Master/texmf-dist/source/latex/microtype/microtype.ins index 85698aa2810..8004d7ce19e 100644 --- a/Master/texmf-dist/source/latex/microtype/microtype.ins +++ b/Master/texmf-dist/source/latex/microtype/microtype.ins @@ -1,5 +1,4 @@ % !Mode:: "TeX:STY:UK" -% $Id: microtype.ins,v 1.23 2013-05-23 02:32:14+02 schlicht Exp schlicht $ % ------------------------------------------------------------------------ \input docstrip \keepsilent @@ -11,7 +10,7 @@ The `microtype' package Subliminal refinements towards typographical perfection - Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> + Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> 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 @@ -22,8 +21,8 @@ of all distributions of LaTeX version 2005/12/01 or later. This work has the LPPL maintenance status `author-maintained'. This work consists of the files microtype.dtx and microtype.ins and the -derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -microtype-luatex.def, microtype.lua and letterspace.sty. +derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +microtype-xetex.def, microtype.lua and letterspace.sty. % Modified versions of the configuration files (*.cfg) may be distributed % provided that: (1) the original copyright statement is not removed, and @@ -51,7 +50,8 @@ microtype-luatex.def, microtype.lua and letterspace.sty. \endpreamble \declarepreamble\luapreamble This file contains auxiliary lua functions. - It was contributed by Elie Roux <elie.roux{at}telecom-bretagne.eu>. + It was originally contributed by Elie Roux <elie.roux{at}telecom-bretagne.eu>. + (Bugs are mine.) \endpreamble \declarepreamble\cfgpreamble This is the main configuration file for the `microtype' package. @@ -97,7 +97,7 @@ microtype-luatex.def, microtype.lua and letterspace.sty. Palatino is a registered trademark of Linotype GmbH. Used without permission. \endpreamble -\declarepostamble\luapostamble +\declarepostamble\emptypostamble \endpostamble \def\makefile#1#2{\file{#1}{\from{microtype.dtx}{#2}}} @@ -108,13 +108,15 @@ microtype-luatex.def, microtype.lua and letterspace.sty. \usedir{tex/latex/microtype} \let\MetaPrefix\DoubleperCent +\let\DEBUG\empty +%\def\DEBUG{,debug} \generate{ - \makefile{microtype.sty}{package} + \makefile{microtype.sty}{package\DEBUG} \usepreamble\defpreamble - \makefile{microtype-pdftex.def}{pdftex-def} - \makefile{microtype-luatex.def}{luatex-def} - \makefile{microtype-xetex.def} {xetex-def} + \makefile{microtype-pdftex.def}{pdftex-def\DEBUG} + \makefile{microtype-luatex.def}{luatex-def\DEBUG} + \makefile{microtype-xetex.def} {xetex-def\DEBUG} \usepreamble\lsppreamble \makefile{letterspace.sty}{letterspace,plain} \usepreamble\cfgpreamble @@ -145,14 +147,17 @@ microtype-luatex.def, microtype.lua and letterspace.sty. \makefile{test-microtype.tex}{test} } -%% for the extra documentation +\usepostamble\emptypostamble + +%% package for the extra documentation %% (microtype-utf.dtx, microtype-logo.dtx, microtype-lssample.dtx): %\generate{\makefile{microtype-doc.sty}{docsty}} +%% makeindex style +%\generate{\makefile{microtype-gind.ist}{docist}} \def\MetaPrefix{--} \generate{ - \usepreamble \luapreamble - \usepostamble\luapostamble + \usepreamble\luapreamble \makefile{microtype.lua}{luafile} } diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty index 3afa0048c1e..f25a97bc47b 100644 --- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty +++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a stand-alone version that only provides the letterspacing @@ -33,9 +33,9 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage {letterspace} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Robust letterspacing - (RS)] + (RS)] \def\MT@MT {letterspace} \let\MT@restore@catcodes\@empty @@ -114,11 +114,18 @@ \def\MT@engine{pdf} \let\MT@pdf@or@lua\@firstoftwo \ifnum\pdftexversion > 139 \def\MT@engine@tooold{1}\fi - \ifx\directlua\@undefined \else - \ifx\directlua\relax \else - \def\MT@engine{lua} - \let\MT@pdf@or@lua\@secondoftwo - \ifnum\luatexversion < 62 \def\MT@engine@tooold{0}\fi + \fi +\fi +\ifx\directlua\@undefined \else + \ifx\directlua\relax \else + \def\MT@engine{lua} + \let\MT@pdf@or@lua\@secondoftwo + \ifnum\luatexversion < 62 \def\MT@engine@tooold{0} + \else + \def\MT@engine@tooold{1} + \ifnum\luatexversion > 84 + \let\pdfoutput\outputmode + \let\pdfprotrudechars\protrudechars \fi \fi \fi @@ -214,14 +221,28 @@ \advance\@tempcnta \@ne \ifnum\@tempcnta < #2\MT@repeat } -\def\MT@do@font{\MT@while@num\z@ - \@cclvi +\def\MT@do@font#1{% + \MT@if@fontspec@font{% + \def\MT@dofont@function{#1}% + \MT@lua{microtype.do_font()}% + }{\MT@while@num\z@\@cclvi{#1}}% } \MT@requires@latex1{ \let\MT@setup@\@empty \def\MT@addto@setup{\g@addto@macro\MT@setup@} }{\let\MT@addto@setup\@firstofone} \def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble} +\newif\ifMT@fontspec +\MT@requires@latex2{ +\MT@with@package@T{fontspec}\MT@fontspectrue +}{\MT@fontspecfalse} +\let\MT@if@fontspec@font\@secondoftwo +\def\MT@fontspec@setup{% + \@ifpackagelater{fontspec}{2013/05/23}{ + \MT@let@cn\MT@if@fontspec@font{fontspec_if_fontspec_font:TF}% + }\relax +} +\ifMT@fontspec\MT@fontspec@setup\fi \MT@addto@setup{% \MT@requires@latex2{ \MT@with@package@T{hyperref}{% @@ -253,14 +274,23 @@ /\number\MT@letterspace@ ls\endcsname}% \expandafter\ifx\MT@lsfont\relax \MT@get@ls@basefont + \MT@if@fontspec@font{% + \global\expandafter\font\MT@lsfont=% + \expandafter\MT@exp@two@c\expandafter\MT@ls@fontspec@font + \expandafter\fontname\expandafter\MT@font\space \@nil + }{% \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@ + }% % spacing = {<letterspace amount>*,,} \fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp * \fontdimen2\MT@lsfont/1000\relax % no ligatures = {f} \tagcode\MT@lsfont`f=\m@ne + \MT@if@fontspec@font\relax{% \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}% + \let\MT@the@pr@code\MT@the@pr@code@tr + }% \fi \aftergroup\MT@set@lsfont \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}% @@ -285,11 +315,26 @@ {MT@aftergroup@\number\currentgrouplevel}% }% } +\def\MT@ls@fontspec@colon#1:#2:#3\@nil{#1:#2} +\def\MT@ls@fontspec@font#1 #2\@nil{% + "\MT@ls@fontspec@colon#1::\@nil + kernfactor=% + \ifnum\MT@letterspace@<\z@ -0.% + \ifnum-\MT@letterspace@<100 0\fi + \ifnum-\MT@letterspace@<10 0\fi + \number-\MT@letterspace@ + \else 0.% + \ifnum\MT@letterspace@<100 0\fi + \ifnum\MT@letterspace@<10 0\fi + \number\MT@letterspace@ + \fi;" + \ifx\\#2\\ at \f@size pt\else#2\fi\relax +} \MT@requires@latex2{ \def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} \DeclareRobustCommand\lsstyle{% \not@math@alphabet\lsstyle\textls - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty \let\MT@tracking\MT@set@tr@codes \selectfont } @@ -383,33 +428,37 @@ } \MT@requires@latex2{ \MT@addto@setup{% + \MT@with@package@T{luatexja}{\MT@warn@unknown@once{luatexja}}% + \MT@with@package@T{xeCJK} {\MT@warn@unknown@once{xeCJK}}% \@ifpackageloaded{CJK}{% - \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 - {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% - {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% - \g@addto@macro\MT@orig@pickupfont - {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% - \@ifpackageloaded{CJKutf8}% - {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 - {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% - {\@firstoftwo}}% - {\@firstoftwo}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\else\xdef\font@name{% + \@ifpackageloaded{xeCJK}{\@firstofone}{% + \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 + {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% + {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% + \g@addto@macro\MT@orig@pickupfont + {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% + \@ifpackageloaded{CJKutf8}% + {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 + {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% + {\@firstoftwo}}% + {\@firstoftwo}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\else\xdef\font@name{% + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\def\CJK@temp{v}% + \ifx\CJK@temp\CJK@plane + \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax + \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi + \else \CJK@addcmap\CJK@plane \fi + \else\xdef\font@name{% \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\def\CJK@temp{v}% - \ifx\CJK@temp\CJK@plane - \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax - \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi - \else \CJK@addcmap\CJK@plane \fi - \else\xdef\font@name{% - \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - }{% - \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}% - }% + \@gobble + }% + }{\@firstofone}% + {\def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}}% \ifx\pickup@font\MT@orig@pickupfont \else \MT@warning@nl{% Command \string\pickup@font\space is not defined as expected.% diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def index fe2e8000886..d37b39b7763 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def +++ b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This file contains enginge-specific definitions. @@ -30,17 +30,20 @@ %% \ProvidesFile {microtype-luatex.def} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Definitions specific to luatex - (RS)] + (RS)] \def\MT@lua{\directlua} -\def\MT@luatex@no{3} -\ifnum\luatexversion<62 - \def\MT@luatex@no{2} - \ifnum\luatexversion<36 - \def\MT@lua{\directlua0} - \def\MT@luatex@no{1} +\def\MT@luatex@no{4} +\ifnum\luatexversion<85 + \def\MT@luatex@no{3} + \ifnum\luatexversion<62 + \def\MT@luatex@no{2} + \ifnum\luatexversion<36 + \def\MT@lua{\directlua0} + \def\MT@luatex@no{1} + \fi \fi \fi \def @@ -49,17 +52,21 @@ \MT@luatex@no <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi} \RequirePackage{luatexbase} +\RequirePackage{luaotfload} \RequireLuaModule{microtype} \def\MT@ifint#1{\csname\MT@lua{microtype.if_int([[#1]])}\endcsname} \def\MT@ifdimen#1{\csname\MT@lua{microtype.if_dimen([[#1]])}\endcsname} \def\MT@ifstreq#1#2{\csname\MT@lua{microtype.if_str_eq([[#1]],[[#2]])}\endcsname} -\def\MT@do@font{\MT@while@num\z@ - \MT@max@slot +\def\MT@do@font#1{% + \MT@if@fontspec@font{% + \def\MT@dofont@function{#1}% + \MT@lua{microtype.do_font()}% + }{\MT@while@num\z@\@cclvi{#1}}% } \def\MT@ledmac@setup{% \ifMT@protrusion \MT@ifdefined@c@TF\l@dunhbox@line{% - \MT@info@nl{Patching (e)ledmac to enable character protrusion}% + \MT@info@nl{Patching ((r)e)ledmac to enable character protrusion}% \let\MT@led@unhbox@line\l@dunhbox@line \renewcommand*{\l@dunhbox@line}[1]{% \ifhbox##1% @@ -71,7 +78,8 @@ }{% \MT@warning@nl{% Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% + numbering will only work if you update ledmac,\MessageBreak + or use one of its successors, eledmac or reledmac}% }% \fi } @@ -99,6 +107,7 @@ \fi } \let\MT@copy@font\relax +\MT@requires@luatex4{\let\pdfcopyfont\copyfont}\relax \def\MT@copy@font@{% \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}% \expandafter\ifx\MT@font@copy\relax @@ -289,6 +298,7 @@ \MT@nonselectedfalse } \let\MT@set@ex@codes\MT@set@ex@codes@n +\MT@requires@luatex4{\let\pdffontexpand\expandglyphsinfont}\relax \def\MT@expandfont{% \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax } @@ -386,7 +396,13 @@ /\number\MT@letterspace@ ls\endcsname}% \expandafter\ifx\MT@lsfont\relax \MT@get@ls@basefont + \MT@if@fontspec@font{% + \global\expandafter\font\MT@lsfont=% + \expandafter\MT@exp@two@c\expandafter\MT@ls@fontspec@font + \expandafter\fontname\expandafter\MT@font\space \@nil + }{% \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@ + }% \MT@ifdefined@c@TF\MT@tr@ispace {\let\@tempa\MT@tr@ispace}% {\edef\@tempa{\MT@letterspace@*,,}}% @@ -397,12 +413,15 @@ \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}% \expandafter\MT@tr@set@okern\@tempa,% \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures + \MT@if@fontspec@font\relax{% \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}% + \let\MT@the@pr@code\MT@the@pr@code@tr + }% \fi \aftergroup\MT@set@lsfont \let\MT@font\MT@lsfont - \ifMT@fontspec\MT@font\fi + \MT@if@fontspec@font\MT@font\relax \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}% \aftergroup\MT@set@curr@ls \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax @@ -422,10 +441,10 @@ \MT@afteraftergroup{% \MT@set@curr@os \MT@set@curr@ok + \MT@glet\noexpand\glb@currsize\noexpand\@empty \noexpand\MT@tr@outer@r }% \fi - \MT@protrusionfalse }% } \def\MT@afteraftergroup#1{% @@ -436,6 +455,21 @@ {MT@aftergroup@\number\currentgrouplevel}% }% } +\def\MT@ls@fontspec@colon#1:#2:#3\@nil{#1:#2} +\def\MT@ls@fontspec@font#1 #2\@nil{% + "\MT@ls@fontspec@colon#1::\@nil + kernfactor=% + \ifnum\MT@letterspace@<\z@ -0.% + \ifnum-\MT@letterspace@<100 0\fi + \ifnum-\MT@letterspace@<10 0\fi + \number-\MT@letterspace@ + \else 0.% + \ifnum\MT@letterspace@<100 0\fi + \ifnum\MT@letterspace@<10 0\fi + \number\MT@letterspace@ + \fi;" + \ifx\\#2\\ at \f@size pt\else#2\fi\relax +} \def\MT@get@tr@opt{% \MT@set@listname \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{% @@ -465,7 +499,7 @@ \def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} \DeclareRobustCommand\lsstyle{% \not@math@alphabet\lsstyle\textls - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty \def\MT@feat{tr}% \let\MT@tracking\MT@set@tr@codes \selectfont @@ -612,7 +646,7 @@ \MT@if@outer@next\space\relax{% \MT@if@outer@next\@xobeysp\relax{% \MT@if@outer@next\xspace{% - \def\MT@temp*\xspace{\futurelet\@let@token\MT@xspace}% + \def\MT@temp*\xspace{\MT@xspace}% }{% \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k \fi}% @@ -626,7 +660,8 @@ \let\@let@token= \MT@tr@outer@next \maybe@ic@ } -\def\MT@xspace{\@xspace@firsttrue\@xspace +\def\MT@xspace{\futurelet\@let@token\MT@xspace@} +\def\MT@xspace@{\@xspace@firsttrue\@xspace \ifdim\lastskip>5sp \unskip \hskip\MT@outer@space \else @@ -690,6 +725,7 @@ \MT@noligatures@\MT@font\MT@nl@ligatures \fi } +\MT@requires@luatex4{\let\pdfnoligatures\ignoreligaturesinfont}\relax \def\MT@noligatures@#1#2{% \MT@ifdefined@c@TF#2{% \MT@ifdefined@c@TF\tagcode{% @@ -697,7 +733,11 @@ \def\MT@curr@list@name{\@backslashchar DisableLigatures}% \MT@map@clist@c#2{% \KV@@sp@def\@tempa{##1}\MT@get@slot - \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}% + \ifnum\MT@char>\m@ne + \tagcode#1\MT@char=\m@ne + \MT@if@fontspec@font{\MT@lua{microtype.noligatures([[#1]],[[\MT@char]])}}\relax + \fi + }% \MT@vinfo{... Disabling ligatures for characters: #2}% }{% \pdfnoligatures#1% @@ -707,7 +747,9 @@ }% }{% \pdfnoligatures#1% - \MT@vinfo{... Disabling ligatures}% + \MT@if@fontspec@font + {\MT@lua{microtype.noligatures([[#1]],"_all_")}}\relax + \MT@vinfo{... Disabling all ligatures}% }% } \def\MT@get@slot@{% @@ -902,6 +944,7 @@ \fi \fi } +\MT@requires@luatex4{\let\pdfoutput\outputmode}\relax \MT@def@bool@opt{DVIoutput}{% \csname if\@tempa\endcsname \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi @@ -978,6 +1021,10 @@ } \MT@define@optionX{protrusion}\MT@protrudechars \MT@define@optionX{expansion}\MT@adjustspacing +\MT@requires@luatex4{ + \let\pdfprotrudechars\protrudechars + \let\pdfadjustspacing\adjustspacing +}\relax \let\MT@protrudechars\pdfprotrudechars \let\MT@adjustspacing\pdfadjustspacing \MT@requires@luatex3{ @@ -1009,9 +1056,6 @@ } \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero \else \let\MT@tracking\MT@tracking@ \fi} - \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta} - \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta - \pdfappendkern \@tempcnta} }{ \define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}} } diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def b/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def index 2729281d6cb..fbf8c63fb54 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def +++ b/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This file contains enginge-specific definitions. @@ -30,10 +30,10 @@ %% \ProvidesFile {microtype-pdftex.def} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Definitions specific to pdftex - (RS)] + (RS)] \def\MT@pdftex@no{7} \ifnum\pdftexversion = 140 \ifnum\pdftexrevision < 4 @@ -135,14 +135,12 @@ \fi } } -\def\MT@do@font{\MT@while@num\z@ - \@cclvi -} +\def\MT@do@font{\MT@while@num\z@\@cclvi} \MT@requires@pdftex5{ \def\MT@ledmac@setup{% \ifMT@protrusion \MT@ifdefined@c@TF\l@dunhbox@line{% - \MT@info@nl{Patching (e)ledmac to enable character protrusion}% + \MT@info@nl{Patching ((r)e)ledmac to enable character protrusion}% \let\MT@led@unhbox@line\l@dunhbox@line \renewcommand*{\l@dunhbox@line}[1]{% \ifhbox##1% @@ -154,7 +152,8 @@ }{% \MT@warning@nl{% Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% + numbering will only work if you update ledmac,\MessageBreak + or use one of its successors, eledmac or reledmac}% }% \fi } @@ -164,7 +163,7 @@ \MT@warning@nl{% The pdftex version you are using does not allow\MessageBreak character protrusion in paragraphs with line\MessageBreak - numbering by the `ledmac' package.\MessageBreak + numbering by the `((r)e)ledmac' package.\MessageBreak Upgrade pdftex to version 1.30 or later}% \fi } @@ -685,6 +684,7 @@ \MT@afteraftergroup{% \MT@set@curr@os \MT@set@curr@ok + \MT@glet\noexpand\glb@currsize\noexpand\@empty \noexpand\MT@tr@outer@r }% \fi @@ -727,7 +727,7 @@ \def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} \DeclareRobustCommand\lsstyle{% \not@math@alphabet\lsstyle\textls - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty \def\MT@feat{tr}% \let\MT@tracking\MT@set@tr@codes \selectfont @@ -883,7 +883,7 @@ \MT@if@outer@next\space\relax{% \MT@if@outer@next\@xobeysp\relax{% \MT@if@outer@next\xspace{% - \def\MT@temp*\xspace{\futurelet\@let@token\MT@xspace}% + \def\MT@temp*\xspace{\MT@xspace}% }{% \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k \fi}% @@ -897,7 +897,8 @@ \let\@let@token= \MT@tr@outer@next \maybe@ic@ } -\def\MT@xspace{\@xspace@firsttrue\@xspace +\def\MT@xspace{\futurelet\@let@token\MT@xspace@} +\def\MT@xspace@{\@xspace@firsttrue\@xspace \ifdim\lastskip>5sp \unskip \hskip\MT@outer@space \else @@ -969,7 +970,10 @@ \def\MT@curr@list@name{\@backslashchar DisableLigatures}% \MT@map@clist@c#2{% \KV@@sp@def\@tempa{##1}\MT@get@slot - \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}% + \ifnum\MT@char>\m@ne + \tagcode#1\MT@char=\m@ne + \fi + }% \MT@vinfo{... Disabling ligatures for characters: #2}% }{% \pdfnoligatures#1% @@ -979,7 +983,7 @@ }% }{% \pdfnoligatures#1% - \MT@vinfo{... Disabling ligatures}% + \MT@vinfo{... Disabling all ligatures}% }% } }\relax @@ -1347,9 +1351,6 @@ } \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero \else \let\MT@tracking\MT@tracking@ \fi} - \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta} - \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta - \pdfappendkern \@tempcnta} }{ \define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}} \define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}} diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def b/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def index 86a169114dd..0e570ebb469 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def +++ b/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This file contains enginge-specific definitions. @@ -30,10 +30,10 @@ %% \ProvidesFile {microtype-xetex.def} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Definitions specific to xetex - (RS)] + (RS)] \ifdim 0\XeTeXrevision pt < 0.9997pt \def\MT@xetex@no{1} \else @@ -85,7 +85,7 @@ \def\MT@ledmac@setup{% \ifMT@protrusion \MT@ifdefined@c@TF\l@dunhbox@line{% - \MT@info@nl{Patching (e)ledmac to enable character protrusion}% + \MT@info@nl{Patching ((r)e)ledmac to enable character protrusion}% \let\MT@led@unhbox@line\l@dunhbox@line \renewcommand*{\l@dunhbox@line}[1]{% \ifhbox##1% @@ -97,7 +97,8 @@ }{% \MT@warning@nl{% Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% + numbering will only work if you update ledmac,\MessageBreak + or use one of its successors, eledmac or reledmac}% }% \fi } @@ -265,6 +266,7 @@ \fi \else \MT@warn@unknown + \let\MT@char\@empty \fi \else \ifnum\MT@char=47\relax diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.cfg b/Master/texmf-dist/tex/latex/microtype/microtype.cfg index bf5ea4ede82..19788fe60ef 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype.cfg +++ b/Master/texmf-dist/tex/latex/microtype/microtype.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is the main configuration file for the `microtype' package. @@ -40,9 +40,9 @@ %% \ProvidesFile {microtype.cfg} - [2013/05/23 v2.5a + [2016/05/01 v2.6 microtype main configuration file - (RS)] + (RS)] %%% ----------------------------------------------------------------------- %%% FONT SETS @@ -51,37 +51,47 @@ { } \DeclareMicrotypeSet{allmath} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TS1,OML,OMS,U} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,TS1,OML,OMS,U} } \DeclareMicrotypeSet{alltext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU} } + +\DeclareMicrotypeSet{allmath-nott} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,TS1,OML,OMS,U}, + family = {rm*,sf*} + } + +\DeclareMicrotypeSet{alltext-nott} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, + family = {rm*,sf*} + } \DeclareMicrotypeSet{basicmath} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,OML,OMS}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU,OML,OMS}, family = {rm*,sf*}, series = {md*}, size = {normalsize,footnotesize,small,large} } \DeclareMicrotypeSet{basictext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU}, family = {rm*,sf*}, series = {md*}, size = {normalsize,footnotesize,small,large} } \DeclareMicrotypeSet{smallcaps} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*} + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, + shape = {sc*,si,scit} } \DeclareMicrotypeSet{footnotesize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, size = {-small} } \DeclareMicrotypeSet{scriptsize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, + { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2,TU}, size = {-footnotesize} } @@ -314,7 +324,7 @@ } \DeclareCharacterInheritance - { encoding = {EU1,EU2} } + { encoding = {EU1,EU2,TU} } { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A}, a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a}, C = {\'C,\c C,\v C}, @@ -353,7 +363,7 @@ \SetTracking [ name = default, no ligatures = {f} ] - { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2} } + { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2,TU} } { } %%% ----------------------------------------------------------------------- @@ -539,7 +549,7 @@ \SetProtrusion [ name = T1-default, load = default ] - { encoding = {T1,LY1,EU1,EU2} } + { encoding = {T1,LY1,EU1,EU2,TU} } { \AE = {50, }, _ = {100,100}, diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.lua b/Master/texmf-dist/tex/latex/microtype/microtype.lua index 2da38c7d643..b6ac668d4f8 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype.lua +++ b/Master/texmf-dist/tex/latex/microtype/microtype.lua @@ -10,7 +10,7 @@ -- -- The `microtype' package -- Subliminal refinements towards typographical perfection --- Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +-- Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> -- -- 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 @@ -21,33 +21,38 @@ -- This work has the LPPL maintenance status `author-maintained'. -- -- This work consists of the files microtype.dtx and microtype.ins and the --- derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, --- microtype-luatex.def, microtype.lua and letterspace.sty. +-- derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +-- microtype-xetex.def, microtype.lua and letterspace.sty. -- -- ------------------------------------------------------------------------ -- This file contains auxiliary lua functions. --- It was contributed by Elie Roux <elie.roux{at}telecom-bretagne.eu>. +-- It was originally contributed by Elie Roux <elie.roux{at}telecom-bretagne.eu>. +-- (Bugs are mine.) -- ------------------------------------------------------------------------ -- -microtype = microtype or {} -local microtype = microtype -local microtype_module = { - name = "microtype", - version = 2.5, - date = "2013/05/15", - description = "microtype module.", - author = "E. Roux, R. Schlicht and P. Gesang", - copyright = "E. Roux, R. Schlicht and P. Gesang", - license = "LPPL", +microtype = microtype or {} +local microtype = microtype +microtype.module = { + name = "microtype", + version = 2.6, + date = "2016/05/01", + description = "microtype module.", + author = "E. Roux, R. Schlicht and P. Gesang", + copyright = "E. Roux, R. Schlicht and P. Gesang", + license = "LPPL", } -if luatexbase and luatexbase.provides_module then - luatexbase.provides_module(microtype_module) -end +local err, warn, info, log = luatexbase.provides_module(microtype.module) +microtype.warning = warn + +local find = string.find +local match = string.match +local tex_write = tex.write -local find = string.find -local tex_write = tex.write +function microtype.sprint (...) + tex.sprint(luatexbase.catcodetables['latex-package'], ...) +end local function if_int(s) if find(s,"^-*[0-9]+ *$") then @@ -77,6 +82,66 @@ local function if_str_eq(s1, s2) end microtype.if_str_eq = if_str_eq +local function do_font() + if fonts then + local thefont + if fonts.ids then --- legacy luaotfload + thefont = fonts.ids[font.current()] + else --- new location + thefont = fonts.hashes.identifiers[font.current()] + end + if thefont then + for i,v in next,thefont.characters do + if v.index > 0 then + microtype.sprint([[\@tempcnta=]]..i..[[\relax\MT@dofont@function]]) + end + end + end + end +end +microtype.do_font = do_font + +microtype.ligs = microtype.ligs or { } + +local function noligatures(fontcs,liga) + local fontcs = match(fontcs,"([^ ]+)") + microtype.ligs[fontcs] = microtype.ligs[fontcs] or { } + table.insert(microtype.ligs[fontcs],liga) +end +microtype.noligatures = noligatures + +local function keepligature(c) + local nodedirect = node.direct + local getfield = nodedirect.getfield + local getfont = nodedirect.getfont + local f,ch + if type(c) == "userdata" then -- in older luaotfload versions, c was a node + f = c.font + ch = c.components.char + else -- since 2.6, c is a (direct node) number + f = getfont(c) + ch = getfield(getfield(c,"components"),"char") + end +-- if ch then -- should always be true + local ligs = microtype.ligs[match(tex.fontidentifier(f),"\\([^ ]+)")] + if ligs then + for _,lig in pairs(ligs) do + if lig == "_all_" or tonumber(lig) == ch then + return false + end + end + end + return true +-- end +end + +if luaotfload and luaotfload.letterspace then + if luaotfload.letterspace.keepligature then + microtype.warning("overwriting function `keepligature'") + end + luaotfload.letterspace.keepligature = keepligature +end + if luaotfload and luaotfload.aux and luaotfload.aux.slot_of_name then local slot_of_name = luaotfload.aux.slot_of_name microtype.name_to_slot = function(name, unsafe) diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.sty b/Master/texmf-dist/tex/latex/microtype/microtype.sty index 8f3a382b467..75d2aa3ea44 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype.sty +++ b/Master/texmf-dist/tex/latex/microtype/microtype.sty @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,17 +21,17 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage {microtype} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Micro-typographical refinements - (RS)] + (RS)] \def\MT@MT {microtype} \let\MT@restore@catcodes\@empty @@ -134,11 +134,11 @@ \ifx\pdftexversion\@undefined \else \ifx\pdftexversion\relax \else \def\MT@engine{pdf} - \ifx\directlua\@undefined \else - \ifx\directlua\relax \else - \def\MT@engine{lua} - \fi - \fi + \fi +\fi +\ifx\directlua\@undefined \else + \ifx\directlua\relax \else + \def\MT@engine{lua} \fi \fi \ifx\MT@engine\relax @@ -396,13 +396,13 @@ \def\MT@rbba@tracking{tr} \def\MT@features{pr,ex,sp,kn,tr} \def\MT@features@long{protrusion,expansion,spacing,kerning,tracking} -\def\MT@is@feature#1{% - \MT@exp@one@n\MT@in@clist\@tempa\MT@features@long +\def\MT@is@feature#1#2{% + \MT@in@clist{#1}\MT@features@long \ifMT@inlist@ \expandafter\@firstofone \else - \MT@error{`\@tempa' is not an available micro-typographic\MessageBreak - feature. Ignoring #1}{Available features are: `\MT@features@long'.}% + \MT@error{`#1' is not an available micro-typographic\MessageBreak + feature. Ignoring #2}{Available features are: `\MT@features@long'.}% \expandafter\@gobble \fi } @@ -422,9 +422,16 @@ } \def\MT@restore@p@h{\chardef\%`\% \chardef\#`\# } \newif\ifMT@xunicode -\newif\ifMT@fontspec \MT@with@package@T{xunicode}\MT@xunicodetrue +\newif\ifMT@fontspec \MT@with@package@T{fontspec}\MT@fontspectrue +\let\MT@if@fontspec@font\@secondoftwo +\def\MT@fontspec@setup{% + \@ifpackagelater{fontspec}{2013/05/23}{ + \MT@let@cn\MT@if@fontspec@font{fontspec_if_fontspec_font:TF}% + }\relax +} +\ifMT@fontspec\MT@fontspec@setup\fi \def\MT@setupfont@hook{% \ifMT@fontspec\MT@font\fi \MT@if@false @@ -448,11 +455,12 @@ The `pdfcprot' package provides an interface to character protrusion.\MessageBre So does the `\MT@MT' package. Using both packages at the same\MessageBreak time will almost certainly lead to undesired results. Have your choice!}% }% - \MT@with@package@T{ledmac}\MT@ledmac@setup - \MT@with@package@T{eledmac}\MT@ledmac@setup + \MT@with@package@T {ledmac}\MT@ledmac@setup + \MT@with@package@T {eledmac}\MT@ledmac@setup + \MT@with@package@T{reledmac}\MT@ledmac@setup \MT@with@package@T{xunicode}\MT@xunicodetrue - \MT@with@package@T{fontspec}\MT@fontspectrue - \let\MT@setupfont@hook\@empty + \MT@with@package@T{fontspec}{\MT@fontspectrue\MT@fontspec@setup}% + \MT@glet\MT@setupfont@hook\@empty \ifMT@fontspec \g@addto@macro\MT@setupfont@hook{\MT@font}% \fi @@ -1092,11 +1100,16 @@ time will almost certainly lead to undesired results. Have your choice!}% /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse /else /edef/MT@char@{/number"##2##3}% - /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse + /MT@ifstreq/MT@charstring{##4}/relax + {/MT@is@xchar##2##3|##4\CHAR"/relax}% /fi /fi /fi }% + /def/MT@is@xchar##1|##2\CHAR"##3##4/relax{% + /MT@ifstreq/MT@charstring{##3##4}% + {/edef/MT@char@{/number"##1##2}}/MT@norestfalse + }% /def/MT@charxstring{\CHAR "}% /def/MT@strip@prefix##1>##2/relax{##2}% /def/MT@is@charx##1\CHAR "##2##3##4##5##6/relax{% @@ -1160,36 +1173,48 @@ time will almost certainly lead to undesired results. Have your choice!}% { (input encoding `\@nameuse {MT@\MT@feat @\MT@cat @\csname MT@\MT@feat @\MT@cat @name\endcsname @inputenc}')}% } +\def\MT@warn@unknown@once#1{% + \def\MT@warn@unknown{% + \MT@warning@nl{One or more slots in the configuration are unknown.\MessageBreak + Make sure that no text commands are used.\MessageBreak + See the documentation for details (the note\MessageBreak + on `#1' in section 9: `Hints and caveats')}% + \MT@glet\MT@warn@unknown\relax}% +} \let\MT@font@list\@empty \let\MT@font\@empty \MT@addto@setup{% + \MT@with@package@T{luatexja}{\MT@warn@unknown@once{luatexja}}% + \MT@with@package@T{xeCJK} {\MT@warn@unknown@once{xeCJK}}% \@ifpackageloaded{CJK}{% - \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 - {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% - {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% - \g@addto@macro\MT@orig@pickupfont - {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% - \@ifpackageloaded{CJKutf8}% - {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 - {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% - {\@firstoftwo}}% - {\@firstoftwo}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\else\xdef\font@name{% + \@ifpackageloaded{xeCJK}{\@firstofone}{% + \@ifpackagelater{CJK}{2006/10/17}% 4.7.0 + {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}% + {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}% + \g@addto@macro\MT@orig@pickupfont + {{\expandafter\ifx\font@name\relax\define@newfont\fi}}% + \@ifpackageloaded{CJKutf8}% + {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0 + {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}% + {\@firstoftwo}}% + {\@firstoftwo}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\else\xdef\font@name{% + \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% + {\g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\def\CJK@temp{v}% + \ifx\CJK@temp\CJK@plane + \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax + \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi + \else \CJK@addcmap\CJK@plane \fi + \else\xdef\font@name{% \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - {\g@addto@macro\MT@orig@pickupfont{% - {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax - \define@newfont\def\CJK@temp{v}% - \ifx\CJK@temp\CJK@plane - \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax - \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi - \else \CJK@addcmap\CJK@plane \fi - \else\xdef\font@name{% - \csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}% - }{% - \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}% - }% + \@gobble + }% + }{\@firstofone}% + {\def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi}}% \ifx\pickup@font\MT@orig@pickupfont \else \MT@warning@nl{% Command \string\pickup@font\space is not defined as expected.% @@ -1276,7 +1301,7 @@ time will almost certainly lead to undesired results. Have your choice!}% \DeclareRobustCommand\microtypecontext[1]{% \MT@setup@contexts \let\MT@reset@context\relax - \let\glb@currsize\@empty + \MT@glet\glb@currsize\@empty \setkeys{MTC}{#1}% \selectfont \MT@reset@context @@ -1318,31 +1343,35 @@ time will almost certainly lead to undesired results. Have your choice!}% \fi }% } +\define@key{MTC}{activate}[]{% + \setkeys{MT}{protrusion={#1}}% + \setkeys{MT}{expansion={#1}}% +} \MT@exp@one@n\MT@map@clist@n{\MT@features,nl}{% \MT@def@n{MT@#1@context}{@}% \MT@def@n{MT@#1@doc@contexts}{{@}}% } \let\MT@extra@context\@empty \def\DeclareMicrotypeSet{% + \MT@begin@catcodes \@ifstar \MT@DeclareSetAndUseIt \MT@DeclareSet } \newcommand\MT@DeclareSet[3][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@declare@sets{##1}{#2}{#3}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{set declaration `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{set declaration `#2'}{% \MT@exp@one@n\MT@declare@sets - {\csname MT@rbba@\@tempa\endcsname}{#2}{#3}% + {\csname MT@rbba@##1\endcsname}{#2}{#3}% }% }% }}% }% + \MT@end@catcodes } \newcommand\MT@DeclareSetAndUseIt[3][]{% \MT@DeclareSet[#1]{#2}{#3}% @@ -1350,10 +1379,12 @@ time will almost certainly lead to undesired results. Have your choice!}% } \let\MT@curr@set@name\@empty \def\MT@declare@sets#1#2#3{% - \KV@@sp@def\MT@curr@set@name{#2}% + \def\MT@curr@set@name{#2}% \MT@ifdefined@n@T{MT@#1@set@@\MT@curr@set@name}{% \MT@warning{Redefining \@nameuse{MT@abbr@#1} set `\MT@curr@set@name'}% - \MT@glet@nc{MT@#1list@size@\MT@curr@set@name}\@empty + \MT@map@clist@n{font,encoding,family,series,shape,size}{% + \MT@glet@nc{MT@#1list@##1@\MT@curr@set@name}\@undefined + }% }% \MT@glet@nc{MT@#1@set@@\MT@curr@set@name}\@empty \setkeys{MT@#1@set}{#3}% @@ -1384,16 +1415,18 @@ time will almost certainly lead to undesired results. Have your choice!}% } \let\MT@font@sets\@empty \def\MT@fix@font@set#1{% - \xdef#1{#1}% - \ifMT@fontspec - \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}% - \fi - \global\@onelevel@sanitize#1% + \MT@ifdefined@c@T{#1}{% + \xdef#1{#1}% + \ifMT@fontspec + \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}% + \fi + \global\@onelevel@sanitize#1% + }% } \def\MT@define@set@key@size#1{% \define@key{MT@#1@set}{size}[]{% \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% + \def\MT@val{####1}% \expandafter\MT@get@range\MT@val--\@nil \ifx\MT@val\relax \else \MT@exp@cs\MT@xadd @@ -1467,7 +1500,7 @@ time will almost certainly lead to undesired results. Have your choice!}% \define@key{MT@#1@set}{font}[]{% \MT@glet@nc{MT@#1list@font@\MT@curr@set@name}\@empty \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% + \def\MT@val{####1}% \MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax \expandafter\MT@get@font\MT@val/////\@nil \MT@exp@two@n\g@addto@macro @@ -1521,87 +1554,97 @@ time will almost certainly lead to undesired results. Have your choice!}% \MT@define@set@key@size {#1}% \MT@define@set@key@font {#1}% } -\renewcommand*\UseMicrotypeSet[2][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% +\def\UseMicrotypeSet{% + \MT@begin@catcodes + \MT@UseMicrotypeSet +} +\newcommand*\MT@UseMicrotypeSet[2][]{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@use@set{##1}{#2}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{activation of set `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{activation of set `#2'}{% \MT@exp@one@n\MT@use@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% + {\csname MT@rbba@##1\endcsname}{#2}% }% }% }}% }% + \MT@end@catcodes } \def\MT@use@set#1#2{% - \KV@@sp@def\@tempa{#2}% - \MT@ifdefined@n@TF{MT@#1@set@@\@tempa}{% - \MT@xdef@n{MT@#1@setname}{\@tempa}% + \MT@ifdefined@n@TF{MT@#1@set@@#2}{% + \MT@xdef@n{MT@#1@setname}{#2}% }{% \MT@ifdefined@n@TF{MT@#1@setname}\relax{% \MT@xdef@n{MT@#1@setname}{\@nameuse{MT@default@#1@set}}% }% \MT@error{% - The \@nameuse{MT@abbr@#1} set `\@tempa' is undeclared.\MessageBreak + The \@nameuse{MT@abbr@#1} set `#2' is undeclared.\MessageBreak Using set `\@nameuse{MT@#1@setname}' instead}{}% }% } -\renewcommand*\DeclareMicrotypeSetDefault[2][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% +\def\DeclareMicrotypeSetDefault{% + \MT@begin@catcodes + \MT@DeclareMicrotypeSetDefault +} +\newcommand*\MT@DeclareMicrotypeSetDefault[2][]{% + \MT@ifempty{#1}{% \MT@map@clist@c\MT@features{{\MT@set@default@set{##1}{#2}}}% }{% - \MT@map@clist@c\@tempa{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@is@feature{declaration of default set `#2'}{% + \MT@map@clist@n{#1}{{% + \MT@ifempty{##1}\relax{% + \MT@is@feature{##1}{declaration of default set `#2'}{% \MT@exp@one@n\MT@set@default@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% + {\csname MT@rbba@##1\endcsname}{#2}% }% }% }}% }% + \MT@end@catcodes } \def\MT@set@default@set#1#2{% - \KV@@sp@def\@tempa{#2}% - \MT@ifdefined@n@TF{MT@#1@set@@\@tempa}{% - \MT@xdef@n{MT@default@#1@set}{\@tempa}% + \MT@ifdefined@n@TF{MT@#1@set@@#2}{% + \MT@xdef@n{MT@default@#1@set}{#2}% }{% \MT@error{% - The \@nameuse{MT@abbr@#1} set `\@tempa' is not declared.\MessageBreak + The \@nameuse{MT@abbr@#1} set `#2' is not declared.\MessageBreak Cannot make it the default set. Using set\MessageBreak `all' instead}{}% \MT@xdef@n{MT@default@#1@set}{all}% }% } \let\MT@variants\@empty \def\DeclareMicrotypeVariants{% + \MT@begin@catcodes \@ifstar \MT@DeclareVariants {\let\MT@variants\@empty\MT@DeclareVariants}% } \def\MT@DeclareVariants#1{% \MT@map@clist@n{#1}{% - \KV@@sp@def\@tempa{##1}% + \def\@tempa{##1}% \@onelevel@sanitize\@tempa \xdef\MT@variants{\MT@variants{\@tempa}}% }% + \MT@end@catcodes } -\renewcommand*\DeclareMicrotypeAlias[2]{% - \edef\@tempa{\zap@space#1 \@empty}% - \edef\@tempb{\zap@space#2 \@empty}% +\def\DeclareMicrotypeAlias{% + \MT@begin@catcodes + \MT@DeclareMicrotypeAlias +} +\newcommand*\MT@DeclareMicrotypeAlias[2]{% + \def\@tempb{#2}% \@onelevel@sanitize\@tempb - \MT@ifdefined@n@T{MT@\@tempa @alias}{% + \MT@ifdefined@n@T{MT@#1@alias}{% \MT@warning{Alias font family `\@tempb' will override - alias `\@nameuse{MT@\@tempa @alias}'\MessageBreak - for font family `\@tempa'}}% - \MT@xdef@n{MT@\@tempa @alias}{\@tempb}% + alias `\@nameuse{MT@#1@alias}'\MessageBreak + for font family `#1'}}% + \MT@xdef@n{MT@#1@alias}{\@tempb}% \MT@ifdefined@c@T\MT@family{% \MT@glet\MT@familyalias\@tempb }% + \MT@end@catcodes } \def\LoadMicrotypeFile#1{% \edef\@tempa{\zap@space#1 \@empty}% @@ -1616,8 +1659,8 @@ time will almost certainly lead to undesired results. Have your choice!}% \edef\MT@curr@file{mt-\@tempa.cfg}% \MT@vinfo{... Loading configuration file \MT@curr@file}% }{% - \MT@warning{... Configuration file mt-\@tempa.cfg\MessageBreak - does not exist}% + \MT@warning{Configuration file mt-\@tempa.cfg\MessageBreak + does not exist}% }% \MT@end@catcodes \fi @@ -2068,9 +2111,9 @@ time will almost certainly lead to undesired results. Have your choice!}% } \let\MT@endinput\relax \ifx\MT@engine\relax - \MT@warning@nl{You don't seem to be using either pdftex, luatex, or xetex.\MessageBreak + \MT@warning@nl{You don't seem to be using pdftex, luatex or xetex.\MessageBreak `\MT@MT' only works with these engines.\MessageBreak - I will quit now.} + I will quit now} \MT@clear@options \else \input{microtype-\MT@engine tex.def} diff --git a/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg b/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg index 8111bb4a8f8..7423b898f31 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -43,9 +43,9 @@ %%% ----------------------------------------------------------------------- %%% INHERITANCE -%% for xetex (EU1) and luatex (EU2) +%% for xetex (EU1) and luatex (EU2), resp. both (TU) \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL } { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ, А,Ӑ,Ӓ}, % Cyrillic @@ -173,7 +173,7 @@ \SetProtrusion [ name = Charis-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL } { A = {50,50}, @@ -346,7 +346,7 @@ \SetProtrusion [ name = Charis-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL, shape = {it,sl} } { @@ -451,7 +451,7 @@ \SetProtrusion [ name = Charis-sc, load = Charis-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Charis SIL, shape = {sc} } { diff --git a/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg b/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg index 4c1927acaa6..103e810e6ca 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -43,9 +43,9 @@ %%% ----------------------------------------------------------------------- %%% INHERITANCE -%% for xetex (EU1) and luatex (EU2) +%% for xetex (EU1) and luatex (EU2), resp. both (TU) \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman } { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǻ,Ȁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ặ, Α}, % Greek @@ -109,7 +109,7 @@ \SetProtrusion [ name = LMR-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman } { A = {50,50}, @@ -206,7 +206,7 @@ \SetProtrusion [ name = LMR-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = Latin Modern Roman, shape = {it,sl} } { diff --git a/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg b/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg index cadb4a0a4d1..eee8fb6b4eb 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -52,9 +52,9 @@ %%% ----------------------------------------------------------------------- %%% INHERITANCE -%% for xetex (EU1) and luatex (EU2) +%% for xetex (EU1) and luatex (EU2), resp. both (TU) \DeclareCharacterInheritance - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype} } { A = {À,Á,Â,Ã,Ä,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ}, B = {Ḃ,Ḅ,Ḇ}, @@ -113,7 +113,7 @@ \SetProtrusion [ name = palatino-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype} } { A = {50,50}, @@ -208,7 +208,7 @@ \SetProtrusion [ name = palatino-it ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype}, shape = {it,sl} } { @@ -301,7 +301,7 @@ \SetProtrusion [ name = palatino-sc, load = palatino-default ] - { encoding = {EU1,EU2}, + { encoding = {EU1,EU2,TU}, family = {PalatinoLinotype}, shape = sc } { diff --git a/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg b/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg index 7df10b52389..7dad5ffff4d 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -308,7 +308,6 @@ \textdiv = {150,200} } - \endinput %% %% End of file `mt-bch.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg b/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg index 1db4079a31d..c696af8282d 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -177,7 +177,6 @@ \textdiv = {100,100} } - \endinput %% %% End of file `mt-blg.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg b/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg index a6e2d5bd6ec..c72e8974355 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg b/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg index 816760339c9..963e6a157a7 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -89,7 +89,6 @@ ] = { ,200} } - \endinput %% %% End of file `mt-euf.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg b/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg index 0e7be3b2277..a75ab9f5e3c 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -120,7 +120,6 @@ "82 = {100,200} } - \endinput %% %% End of file `mt-eur.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg b/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg index 8bf2256adfd..ff9c820a1d4 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -58,7 +58,6 @@ E = {100,} } - \endinput %% %% End of file `mt-euroitc.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg b/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg index 6a133c6c50c..ccc79347818 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -169,7 +169,6 @@ "DE = {200,200} } - \endinput %% %% End of file `mt-eus.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg b/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg index 16bfe648ce7..eb69b29d570 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -145,7 +145,6 @@ "7F = { 50, 50} % \circleddash } - \endinput %% %% End of file `mt-msa.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg b/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg index 4a3f19fc457..84985524684 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -147,7 +147,6 @@ "7F = {200, } % \backepsilon } - \endinput %% %% End of file `mt-msb.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg b/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg index 2b5e1901cc7..10d11525cfb 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -59,7 +59,6 @@ 068 = {50,-100} % \EURdig } - \endinput %% %% End of file `mt-mvs.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg b/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg index 0da1afc6f33..cb2c6fadeec 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -318,7 +318,6 @@ \textdiv = {200,200} } - \endinput %% %% End of file `mt-pad.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg b/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg index 603f65a6e35..767ce08b938 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -610,7 +610,6 @@ \textdiv = {150,200} } - \endinput %% %% End of file `mt-pmn.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg index c9e705db381..77364b1262d 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -223,7 +223,6 @@ \textdegree = {300,300}, } - \endinput %% %% End of file `mt-ppl.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg index 18480aa61b1..c4851a0e9fb 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -369,7 +369,6 @@ \textperthousand = { ,50} } - \endinput %% %% End of file `mt-ptm.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg index 07b6c18d449..33e2b1f24cf 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -252,7 +252,6 @@ \textsurd = { ,100} } - \endinput %% %% End of file `mt-ugm.cfg'. diff --git a/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg b/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg index bf8c8dc943d..b87eec44013 100644 --- a/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg +++ b/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg @@ -10,7 +10,7 @@ %% %% The `microtype' package %% Subliminal refinements towards typographical perfection -%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net> +%% Copyright (c) 2004--2016 R Schlicht <w.m.l@gmx.net> %% %% 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 @@ -21,8 +21,8 @@ %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files microtype.dtx and microtype.ins and the -%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def, -%% microtype-luatex.def, microtype.lua and letterspace.sty. +%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def, +%% microtype-xetex.def, microtype.lua and letterspace.sty. %% %% ------------------------------------------------------------------------ %% This is a font-specific configuration file for the `microtype' package. @@ -81,7 +81,6 @@ E = {200, } } - \endinput %% %% End of file `mt-zpeu.cfg'. |