From 18cfbeaea364a664e0f0b457430f65af66d8122c Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 20 Nov 2019 03:00:33 +0000 Subject: CTAN sync 201911200300 --- info/biblio/font.bib | 189 +- info/biblio/font.ltx | 12 +- info/translations/microtype/de/microtype-DE.dtx | 15129 ---------------------- info/translations/microtype/de/microtype-DE.pdf | Bin 1272263 -> 0 bytes 4 files changed, 180 insertions(+), 15150 deletions(-) delete mode 100644 info/translations/microtype/de/microtype-DE.dtx delete mode 100644 info/translations/microtype/de/microtype-DE.pdf (limited to 'info') diff --git a/info/biblio/font.bib b/info/biblio/font.bib index 1b889a7286..b6099ebf5a 100644 --- a/info/biblio/font.bib +++ b/info/biblio/font.bib @@ -2,9 +2,9 @@ %%% ==================================================================== %%% BibTeX-file{ %%% author = "Nelson H. F. Beebe", -%%% version = "1.110", -%%% date = "11 November 2019", -%%% time = "11:28:28 MDT", +%%% version = "1.111", +%%% date = "18 November 2019", +%%% time = "18:09:26 MDT", %%% filename = "font.bib", %%% address = "University of Utah %%% Department of Mathematics, 110 LCB @@ -14,7 +14,7 @@ %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% URL = "http://www.math.utah.edu/~beebe", -%%% checksum = "64794 23411 107449 1020913", +%%% checksum = "41997 23570 108214 1028204", %%% email = "beebe at math.utah.edu, beebe at acm.org, %%% beebe at computer.org (Internet)", %%% codetable = "ISO/ASCII", @@ -24,13 +24,14 @@ %%% docstring = "This bibliography records publications about %%% typographic fonts. %%% -%%% At version 1.110, the year coverage looked +%%% At version 1.111, the year coverage looked %%% like this: %%% %%% 1785 ( 1) 1864 ( 0) 1943 ( 0) %%% 1789 ( 0) 1868 ( 0) 1947 ( 1) %%% 1799 ( 0) 1878 ( 1) 1957 ( 1) %%% 1801 ( 0) 1880 ( 1) 1959 ( 0) +%%% 1804 ( 0) 1883 ( 0) 1962 ( 1) %%% 1806 ( 0) 1885 ( 0) 1964 ( 1) %%% 1808 ( 0) 1887 ( 0) 1966 ( 1) %%% 1809 ( 0) 1888 ( 0) 1967 ( 1) @@ -45,7 +46,7 @@ %%% 1819 ( 0) 1898 ( 0) 1977 ( 3) %%% 1820 ( 0) 1899 ( 0) 1978 ( 8) %%% 1821 ( 0) 1900 ( 0) 1979 ( 3) -%%% 1822 ( 0) 1901 ( 0) 1980 ( 8) +%%% 1822 ( 0) 1901 ( 0) 1980 ( 9) %%% 1823 ( 0) 1902 ( 0) 1981 ( 12) %%% 1824 ( 0) 1903 ( 0) 1982 ( 15) %%% 1825 ( 0) 1904 ( 0) 1983 ( 29) @@ -66,7 +67,7 @@ %%% 1840 ( 0) 1919 ( 0) 1998 ( 17) %%% 1841 ( 0) 1920 ( 0) 1999 ( 3) %%% 1842 ( 0) 1921 ( 0) 2000 ( 9) -%%% 1843 ( 0) 1922 ( 0) 2001 ( 2) +%%% 1843 ( 0) 1922 ( 1) 2001 ( 2) %%% 1844 ( 0) 1923 ( 0) 2002 ( 6) %%% 1845 ( 0) 1924 ( 0) 2003 ( 6) %%% 1846 ( 0) 1925 ( 0) 2004 ( 4) @@ -79,15 +80,15 @@ %%% 1855 ( 0) 1934 ( 0) 2013 ( 1) %%% 1856 ( 0) 1935 ( 1) 2014 ( 0) %%% 1857 ( 0) 1936 ( 0) 2015 ( 7) -%%% 1858 ( 0) 1937 ( 0) 2016 ( 9) +%%% 1858 ( 0) 1937 ( 1) 2016 ( 9) %%% 1859 ( 0) 1938 ( 0) 2017 ( 1) %%% 1860 ( 0) 1939 ( 0) 2018 ( 2) -%%% 1861 ( 0) 1940 ( 1) 2019 ( 3) +%%% 1861 ( 0) 1940 ( 1) 2019 ( 4) %%% 19xx ( 3) %%% 20xx ( 1) %%% %%% Article: 499 -%%% Book: 156 +%%% Book: 161 %%% Booklet: 4 %%% InCollection: 3 %%% InProceedings: 70 @@ -100,7 +101,7 @@ %%% TechReport: 25 %%% Unpublished: 1 %%% -%%% Total entries: 933 +%%% Total entries: 938 %%% %%% This bibliography has been collected from %%% bibliographies in the author's personal @@ -565,6 +566,9 @@ @String{pub-HARTLEY-MARKS:adr = "Point Roberts, WA, USA and Vancouver, BC, Canada"} +@String{pub-HARVARD = "Harvard University Press"} +@String{pub-HARVARD:adr = "Cambridge, MA, USA"} + @String{pub-IEEE = "IEEE Computer Society Press"} @String{pub-IEEE:adr = "1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA"} @@ -784,6 +788,36 @@ keywords = "Type and type-founding.", } +@Book{Updike:1922:PTT, + author = "Daniel Berkeley Updike", + title = "Printing Types; Their History, Forms, and Use; a Study + in Survivals", + publisher = pub-HARVARD, + address = pub-HARVARD:adr, + pages = "????", + year = "1922", + LCCN = "Z250.A2 U6 1922", + bibdate = "Mon Nov 18 17:55:28 MST 2019", + bibsource = "fsz3950.oclc.org:210/WorldCat; + http://www.math.utah.edu/pub/tex/bib/font.bib", + URL = "http://catdir.loc.gov/catdir/toc/fy1002/37032668.html", + acknowledgement = ack-nhfb, + author-dates = "1860--1941", + remark = "The lectures on which this book is based were + delivered as part of a course on the Technique of + printing in the Graduate School of Business + Administration of Harvard university, during the years + 1911--1916. Chronological list of specimens: vol. II, + p. [297]--298. First edition: first printing, August, + 1922; second printing, January, 1923; third printing, + March, 1937. Second edition, printed, September, + 1937.", + subject = "Type and type-founding; History; Specimens; Graphic + design (Typography); Printing; Graphic design + (Typography); Printing.; Type and type-founding.; + Typografie.; Letters.", +} + @Book{Whitman:1927:FT, author = "Walt Whitman", title = "A font of type", @@ -817,6 +851,69 @@ Francisco", } +@Book{Updike:1937:PTT, + author = "Daniel Berkeley Updike", + title = "Printing Types; Their History, Forms, and Use; a Study + in Survivals", + publisher = pub-HARVARD, + address = pub-HARVARD:adr, + edition = "Second", + year = "1937", + ISBN = "0-486-23928-4, 0-486-23929-2", + ISBN-13 = "978-0-486-23928-6, 978-0-486-23929-3", + LCCN = "Z250.A2 U6 1937", + bibdate = "Mon Nov 18 17:55:28 MST 2019", + bibsource = "fsz3950.oclc.org:210/WorldCat", + URL = "http://catdir.loc.gov/catdir/toc/fy1002/37032668.html", + acknowledgement = ack-nhfb, + author-dates = "1860--1941", + remark = "The lectures on which this book is based were + delivered as part of a course on the Technique of + printing in the Graduate School of Business + Administration of Harvard university, during the years + 1911--1916. Chronological list of specimens: vol. II, + p. [297]--298. First edition: first printing, August, + 1922; second printing, January, 1923; third printing, + March, 1937. Second edition, printed, September, + 1937.", + subject = "Type and type-founding; History; Specimens; Graphic + design (Typography); Printing; Graphic design + (Typography); Printing.; Type and type-founding.; + Typografie.; Letters.", + tableofcontents = "Volume 1. The invention of printing: the cutting + and casting of types in relation to their design \\ + A font of type and its case: the typographical point: + point-set and lining types \\ + The Latin alphabet and its development up to the + invention of printing \\ + Types of the fifteenth century in Germany \\ + Types of the fifteenth century in Italy \\ + Types of the fifteenth century in France \\ + Types of the fifteenth century in the Netherlands: + Holland and Belgium \\ + Types of the fifteenth century in Spain \\ + Types of the fifteenth century in England \\ + The Aldine italic \\ + A word on type specimens \\ + German types, 1500--1800 \\ + Italian types, 1500--1800 \\ + French types, 1500--1800 \\ + Volume 2. Types of the Netherlands, 1500--1800 \\ + Spanish types, 1500--1800 \\ + English types, 1500--1800 \\ + Types used in the American colonies, and some early + American specimens \\ + Nineteenth century ``classical'' types, Bodoni and the + Didots \\ + English types, 1800--1844 \\ + Revival of Caslon and Fell types \\ + English and American revival of early type-forms and + its effect on continental types \\ + The choice of types for a composing-room \\ + Industrial conditions of the past and their relation to + the printer's problem to-day", +} + @Book{Langenfelt:1940:FNE, author = "Gosta Langenfelt", title = "Family names as {English} font-names and other name @@ -867,6 +964,30 @@ keywords = "Printing --- Specimens.; Type and type-founding.", } +@Book{Updike:1962:PTT, + author = "Daniel Berkeley Updike", + title = "Printing Types, Their History, Forms, and Use: a Study + in Survivals", + publisher = pub-HARVARD, + address = pub-HARVARD:adr, + edition = "Third", + year = "1962", + ISBN = "0-486-23929-2 (paperback)", + ISBN-13 = "978-0-486-23929-3 (paperback)", + LCCN = "Z250.A2 U6 1962", + bibdate = "Mon Nov 18 17:55:28 MST 2019", + bibsource = "fsz3950.oclc.org:210/WorldCat; + http://www.math.utah.edu/pub/tex/bib/font.bib", + note = "Two volumes.", + acknowledgement = ack-nhfb, + author-dates = "1860--1941", + remark = "Reprint of the second, 1937, edition published by + Harvard University Press, Cambridge. Preface to the + third edition signed Lawrence C. Wroth.", + subject = "Type and type-founding; History; Printing; Specimens; + Printing.; Type and type-founding.", +} + @Book{Heesch:1964:WF, author = "Henry J. Heesch and Spencer Nesbit", title = "Wrong font", @@ -1755,6 +1876,25 @@ Graphics", } +@Book{Updike:1980:PTT, + author = "Daniel Berkeley Updike", + title = "Printing Types: Their History, Forms and Use: a Study + in Survivals", + publisher = pub-DOVER, + address = pub-DOVER:adr, + edition = "Second", + pages = "xxxiv + 292 (volume 1), xvii + 326 (volume 2)", + year = "1980", + ISBN = "0-486-23928-4 (volume 1), 0-486-23929-2 (volume 2)", + ISBN-13 = "978-0-486-23928-6 (volume 1), 978-0-486-23929-3 + (volume 2)", + LCCN = "????", + bibdate = "Mon Nov 18 17:55:28 MST 2019", + bibsource = "fsz3950.oclc.org:210/WorldCat; + http://www.math.utah.edu/pub/tex/bib/font.bib", + acknowledgement = ack-nhfb, +} + @MastersThesis{Wang:1980:FC, author = "Diana Shu-Fan Wang", title = "Font compression", @@ -22586,13 +22726,32 @@ 150 copies are signed and slipcased. An additional 400 copies printed with Grolier Club imprint and bound in blue cloth.", - subject = "Zapf, Hermann; Zapf, Hermann; Type designers; Germany; - Biography; Calligraphers; Typographers; Type and - type-founding; History; 20th century; Calligraphers; - Type and type-founding; Type designers", + subject = "Zapf, Hermann; Type designers; Germany; Biography; + Calligraphers; Typographers; Type and type-founding; + History; 20th century", subject-dates = "1918--2015", } +@Book{Kelly:2019:TRW, + author = "Jerry Kelly", + title = "Type Revivals: {What} Are They? {Where} Did They Come + From? {Where} Are They Going?", + publisher = "David R. Godine, Publisher", + address = "Boston, MA, USA", + pages = "????", + year = "2019", + ISBN = "1-56792-647-9 (hardcover)", + ISBN-13 = "978-1-56792-647-7 (hardcover)", + LCCN = "Z250 .K446 2019", + bibdate = "Mon Nov 18 17:49:58 MST 2019", + bibsource = "fsz3950.oclc.org:210/WorldCat; + http://www.math.utah.edu/pub/tex/bib/font.bib", + URL = "http://www.godine.com/book/type-revivals/", + acknowledgement = ack-nhfb, + author-dates = "1955--", + subject = "Type and type-founding; History", +} + @Article{Thomas:2019:BRD, author = "Douglas Thomas", title = "Book Review: {Douglas Thomas, \booktitle{Never use diff --git a/info/biblio/font.ltx b/info/biblio/font.ltx index d022b9cb83..d560d76aa4 100644 --- a/info/biblio/font.ltx +++ b/info/biblio/font.ltx @@ -2,9 +2,9 @@ %%% ==================================================================== %%% @LaTeX-file{ %%% author = "Nelson H. F. Beebe", -%%% version = "1.110", -%%% date = "11 November 2019", -%%% time = "11:28:14 MDT", +%%% version = "1.111", +%%% date = "18 November 2019", +%%% time = "18:09:29 MDT", %%% filename = "font.ltx", %%% address = "University of Utah %%% Department of Mathematics, 110 LCB @@ -14,7 +14,7 @@ %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% URL = "http://www.math.utah.edu/~beebe", -%%% checksum = "16805 81 290 3046", +%%% checksum = "17254 81 290 3046", %%% email = "beebe@math.utah.edu, beebe@acm.org, %%% beebe@computer.org (Internet)", %%% codetable = "ISO/ASCII", @@ -62,8 +62,8 @@ WWW URL: \protect\path=http://www.math.utah.edu/~beebe/= } -\date{11 November 2019 \\ -Version 1.110} +\date{18 November 2019 \\ +Version 1.111} \begin{document} \maketitle \nocite{*} diff --git a/info/translations/microtype/de/microtype-DE.dtx b/info/translations/microtype/de/microtype-DE.dtx deleted file mode 100644 index 5eea863639..0000000000 --- a/info/translations/microtype/de/microtype-DE.dtx +++ /dev/null @@ -1,15129 +0,0 @@ -%\iffalse meta-comment -% ^^A messages to WinEdt: -% !Mode:: "TeX:DTX:UK" -% !smartQuote:: "English" -% !DTXversion:: "2.4" -% ------------------------------------------------------------------------ -% $Id: microtype.dtx,v 1.60 2010-01-10 02:00:23+01 schlicht Exp schlicht $ -% ------------------------------------------------------------------------ -% The `microtype' package -% An interface to the micro-typographic extensions of pdfTeX -% Copyright (c) 2004--2010 R Schlicht -% -% This work may be distributed and/or modified under the conditions of the -% LaTeX Project Public License, either version 1.3c of this license or (at -% your option) any later version. The latest version of this license is in: -% 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.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. -% ------------------------------------------------------------------------ -% -%\NeedsTeXFormat{LaTeX2e} -%<*driver> -\ProvidesFile{\jobname.dtx} -% -%\ProvidesPackage -%\ProvidesFile -% {microtype} -% {letterspace} -% {microtype.cfg} -%<*package|letterspace|m-t> - [2010/01/10 v2.4 -% Micro-typography with pdfTeX -% Robust letterspacing -% microtype main configuration file - (RS)] -% -%<*config> -% {mt-bch.cfg}[2007/03/03 v1.5 microtype config. file: Bitstream Charter (RS)] -% {mt-blg.cfg}[2007/07/14 v1.0 microtype config. file: Bitstream Letter Gothic (RS)] -% {mt-cmr.cfg}[2009/11/09 v2.0 microtype config. file: Computer Modern Roman (RS)] -% {mt-pad.cfg}[2005/11/07 v1.5 microtype config. file: Adobe Garamond (RS)] -% {mt-pmn.cfg}[2009/11/14 v1.3 microtype config. file: Adobe Minion (HH/KK)] -% {mt-ppl.cfg}[2005/11/16 v1.6 microtype config. file: Palatino (RS)] -% {mt-ptm.cfg}[2006/04/20 v1.7 microtype config. file: Times (RS)] -% {mt-ugm.cfg}[2006/01/26 v1.0 microtype config. file: URW Garamond (RS)] -% {mt-msa.cfg}[2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)] -% {mt-msb.cfg}[2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS)] -% {mt-euf.cfg}[2006/07/03 v1.1 microtype config. file: AMS Euler Fraktur (RS)] -% {mt-eur.cfg}[2006/07/31 v1.1 microtype config. file: AMS Euler Roman (RS)] -% {mt-eus.cfg}[2006/07/28 v1.2 microtype config. file: AMS Euler Script (RS)] -% {mt-zpeu.cfg}[2006/05/04 v1.0 microtype config. file: Adobe Euro (RS)] -% {mt-euroitc.cfg}[2006/05/04 v1.0 microtype config. file: ITC Euro (RS)] -% {mt-mvs.cfg}[2006/07/05 v1.1 microtype config. file: Marvosym Euro (RS)] -% -% -%<*driver|docsty> -%<*driver> -\documentclass[10pt,a4paper]{ltxdoc} -\makeatletter -% -% Let's abolish CM! We use Charter and Letter Gothic -% (for the pre-built documentation on CTAN): -% \usepackage[charter]{mathdesign} -% \def\rmdefault{bch} % not scaled -% \def\ttdefault{blg} -\usepackage{ifpdf,ifluatex} -\usepackage[latin1]{\ifluatex luainputenc,\fi inputenc} -\usepackage[T1]{fontenc} -\usepackage[ngerman]{babel} -\usepackage{textcomp} -\GetFileInfo{\jobname.dtx} -\usepackage[expansion=false,kerning=true]{microtype}[\filedate] - \DeclareMicrotypeSet*[protrusion] - { doc } - { encoding = {*, TS1, OMS}, - family = {rm*, tt*}, - size = {footnotesize, small, normalsize} } - \SetProtrusion - { encoding = OMS, - family = mdbch } - { "68 = {400, }, % \langle - "69 = { ,400} } % \rangle - \DeclareMicrotypeSet*[kerning] - { doc } - { encoding = T1, - family = blg, % typewriter font and ... - font = * } % French sample in section \ref{sub:kerning} - \SetExtraKerning - { encoding = T1, - family = blg } - { _ = {100,100} } % underscores shouldn't touch - % disable ?` and !` ligatures (sample in section \ref{sec:disable-ligatures}) - \DisableLigatures[?,!]{encoding = *, family = rm* } - % Fraktur sample in section \ref{sec:lettersp} - \IfFileExists{t1mwr.fd} - {\newcommand\textfrak[1]{{\fontfamily{mwr}\selectfont ##1}} - \ifpdf - \SetTracking[no ligatures={f}]{encoding=T1,family=mwr}{100} - \fi} - {\IfFileExists{yfonts.sty} - {\usepackage{yfonts} - \ifpdf - \SetTracking[no ligatures={f}]{encoding=LY,family=yfrak}{100} - \fi} - {\let\textfrak\@gobble}} -\tolerance=700 -\ifpdf - \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 - \fi - % bonus material - \InputIfFileExists{microtype-logo.dtx}\relax\relax - \InputIfFileExists{microtype-lssample.dtx}\relax\relax -\else - \let\lsstyle\relax -\fi -\ifluatex % microtype.dtx finally compiles with 0.35! - \microtypesetup{kerning=false} - \let\lsstyle\relax -\fi -\usepackage{booktabs} -\usepackage{array} - \newcolumntype{L}[1]{p{#1}<{\raggedright}} -\usepackage{color} - \definecolor{theblue} {rgb}{0.02,0.04,0.48} - \definecolor{thered} {rgb}{0.65,0.04,0.07} - \definecolor{thegreen}{rgb}{0.06,0.44,0.08} - \definecolor{thegrey} {gray}{0.5} - \definecolor{theshade}{gray}{0.94} - \definecolor{theframe}{gray}{0.75} -\usepackage{graphicx} -% general layout -\frenchspacing -\DeclareRobustCommand\textoractual[2]{\ifpdf - \pdfliteral direct{/Span<>BDC}#1\pdfliteral direct{EMC}% - \else #1\fi} -\expandafter\newif\csname ifcmr\endcsname -\long\def\@tempa{cmr} -\ifx\rmdefault\@tempa - \cmrtrue - \def\PackageFont{\sffamily} - \def\match{\textbullet} - \usepackage{amssymb} % \varnothing - \let\OrigTeX\TeX - \def\TeX{\textoractual{\OrigTeX}{TeX}} - \setlength\textheight{47\baselineskip} -\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}} - \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} - \def\PackageFont{\ttfamily} - \def\match{{\large\raisebox{-.15em}{\textbullet}}} - {\catcode`\`=\active % indiscernible from ' in Bitstream Letter Gothic - \g@addto@macro\macro@code{\let`\textasciigrave}} - \linespread{1.07}\normalfont - \setlength\textheight{46\baselineskip} -\fi -\addtolength\textheight{\topskip} -\setlength\topmargin{12pt} -% sections -\def\@seccntformat#1{\llap{\csname the#1\endcsname\hskip\marginparsep}} -\def\paragraph{\@startsection{paragraph}{4}% - {0pt}{8pt plus 2pt minus 1pt}{-1em}% - {\normalfont\normalsize\itshape}} -% title -\def\@maketitle{% - \newpage\null\vskip 2em - \begin{center}\let\footnote\thanks - {\LARGE \@title\par}\vskip 1.5em - {\large \parbox{.33\textwidth}{\centering\@author}% - \parbox{.33\textwidth}{\centering\@date}}% - \vskip1.5em\rule{.66\textwidth}{.4pt}% - \end{center}\par\vskip1.5em} -% headers -\headheight=15pt -\def\ps@MTheadings{% - \def\@oddhead{% - \hbox to\textwidth{\vbox{\hbox to\textwidth{% - \footnotesize{\leftmark\rightmark\strut}\hfill\thepage\strut}% - \hrule height 0.4pt width\textwidth \vskip-0.4pt - }}\hss} - \let\@oddfoot\@empty - \let\@mkboth\markboth - \def\sectionmark##1{\markboth{\textls*[60]{\MakeUppercase{##1}}}{}} - \def\subsectionmark##1{\markright{: ##1}}} -\pagestyle{MTheadings} -% toc -\let\l@section@\l@section -\def\l@section{\vskip -.75ex\l@section@} -\def\l@subsection{\vskip.35ex \penalty\@secpenalty \@dottedtocline{2}{1.5em}{2.7em}} -\def\l@subsubsection#1#2{% - \leftskip 4.2em - \rightskip 2em plus 2em - \parindent 0pt - {\let\numberline\@gobble{\small #1~[#2]}}} -\def\l@table{\@dottedtocline{1}{0pt}{1.5em}} -\def\@pnumwidth{1.7em} -\ifpdf - \let\ORIGpdfoutline\pdfoutline - \def\special@outlines{attr{/F 01}} - \def\normaloutline {\protected@write\@outlinefile{}{\let\pdfoutline \ORIGpdfoutline}} - \def\specialoutline{\protected@write\@outlinefile{}{\def\pdfoutline{\ORIGpdfoutline\special@outlines}}} - \g@addto@macro\appendix{\specialoutline} -\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}}}{}% - \@starttoc{#3}}} -\defspecial@toc\tableofcontents\contentsname{toc} -\defspecial@toc\listoftables\listtablename{lot} -% bibliography -\def\@cite#1#2{#1\if@tempswa, #2\fi} -\def\thebibliography#1{% - \section{\refname}% - \list{}{\leftmargin 0pt}% - \sloppy - \clubpenalty 4000 - \@clubpenalty \clubpenalty - \widowpenalty 4000} -\def\@biblabel#1{} -% footnotes -\long\def\@makefntext#1{% - \leftskip 0pt - \parindent 0pt - \everypar{\parindent 0pt}% - \leavevmode\llap{\@thefnmark\hskip\marginparsep}#1} -\renewcommand\footnoterule{% - \kern-3\p@ - \hrule\@width \columnwidth - \kern2.6\p@} -\skip\@mpfootins=4pt -% lists -\setlength\leftmargini{15pt} -\setlength\leftmarginii{12.5pt} -\setlength\leftmarginiii{10pt} -\def\@listi{\leftmargin \leftmargini - \parsep 4.5pt plus 1pt minus 1pt - \topsep 4.5pt plus 1pt minus 1pt - \itemsep 0pt} -\let\@listI\@listi -\def\descriptionlabel#1{\hspace\labelsep\normalfont#1:} -\renewenvironment{itemize} - {\ifnum \@itemdepth >\thr@@\@toodeep\else - \advance\@itemdepth\@ne - \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% - \expandafter\list - \csname\@itemitem\endcsname - {\ifnum\@itemdepth=\@ne\leftmargin 0pt\fi - \def\makelabel##1{\hss\llap{##1}}}% - \fi} - {\endlist} -\newenvironment{enum}[1][0] - {\list\labelenumi - {\usecounter{enumi}\setcounter{enumi}{#1}\addtocounter{enumi}{-1}% - \renewcommand\labelenumi{\texttt{\theenumi}:}% - \leftmargin 30pt - \itemindent-15pt - \labelwidth 15pt - \labelsep 0pt - \def\makelabel##1{##1\hss}}} - {\endlist} -\newenvironment{options} - {\list{} - {\leftmargin 0pt - \labelwidth 0pt - \labelsep 1em - \itemindent \labelsep - \lstset{belowskip=0pt}}} - {\endlist} -% boxes (for some reason, mathdesign changes these values) -\setlength\fboxrule{0.4pt} -\setlength\fboxsep{3pt} -\setlength\arrayrulewidth{0.4pt} -% tables -\setlength\tabcolsep{2pt} -\long\def\@makecaption#1#2{% - \sbox\@tempboxa{\footnotesize\itshape#1: #2}% - \ifdim \wd\@tempboxa >\hsize - \footnotesize\itshape#1: #2\par - \else - \hb@xt@\hsize{\box\@tempboxa\hfil}% - \fi - \vskip 4pt} -% 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 - where the corresponding entry is defined (underlined) resp. used.} -\GlossaryPrologue{\section{Change history}\label{sec:changes}\vspace*{-\multicolsep}} - %\setcounter{finalcolumnbadness}{100} - %\raggedcolumns -\setcounter{IndexColumns}{2} -\def\IndexMin{12\baselineskip} -\g@addto@macro\IndexParms{\footnotesize} -\def\GlossaryParms{\IndexParms - \def\@idxitem ##1##2\efill{% - \end{multicols} - \begin{multicols}{2} - [\subsubsection*{\if##1v\relax Version ##2 - (\csname MTversiondate##2\endcsname)\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}% - \def\subitem{\par\hangindent 15pt}% - \def\subsubitem{\subitem\hspace*{7.5pt}}} -% macro code -\MacroTopsep=0pt -\MacrocodeTopsep=3pt -\setlength\MacroIndent{0pt} -\def\theCodelineNo{\reset@font\color{thegrey}\scriptsize - \textoractual{\arabic{CodelineNo}\,}{}}% don't copy line numbers -\def\MacroFont{\ttfamily\small} -\def\AltMacroFont{\ttfamily\footnotesize} -\def\PrintMacroName#1{\strut\MacroFont\string #1\hskip15pt} -\def\ImplementationSettings{% - \linespread{1}% - \hfuzz=10pt - \def\MacroFont{\ttfamily\footnotesize}% - \let\macro@font\MacroFont} -% additional bells ... -\def\Describe#1#2#3{\noindent\csname Describe#1\endcsname{#2}% - \DescribeValues{#1}{#3}} -\def\DescribeOption{\leavevmode\@bsphack - \begingroup\MakePrivateLetters\Describe@Option} -\def\Describe@Option#1{\endgroup - \marginpar{\raggedleft\PrintDescribeOption{#1}}% - \SpecialOptionIndex{#1}\@esphack\ignorespaces} -\def\DescribePackage{\leavevmode\@bsphack - \begingroup\MakePrivateLetters\Describe@Package} -\def\Describe@Package#1{\endgroup - \marginpar{\raggedleft\PrintDescribeOption{#1.sty}}% - \CatIndex{#1}{package}\@esphack\ignorespaces} -\def\DescribeValues#1#2{% - \let\@tempa\@empty \let\Option@default\@empty - \@for\@tempb:=#2\do{% - \csname Special#1Value\expandafter\endcsname\@tempb\@nil - \expandafter\g@addto@macro\expandafter\@tempa - \expandafter{\csname #1Sep\endcsname}% - \expandafter\g@addto@macro\expandafter\@tempa - \expandafter{\@tempb}}% - \@ifnextchar[\PrintValues{\PrintValues[\Option@default]}} -\def\SpecialOptionValue#1#2\@nil{% - \if#1:\def\@tempb{\Variable{#2}}\else % : = variable - \if#1!\def\@tempb{#2}\def\Option@default{#2}\else % ! = default - \if#1*\def\@tempb{#2}\def\Option@default{\MaybeDefault{#2}}% * = default (maybe) - \fi\fi\fi} -\def\SpecialMacroValue#1#2\@nil{% - \if#1?\def\@tempb{\normalsize[\Variable{#2}]}% % ? = optional - \else\def\@tempb{\normalsize\{\Variable{#1#2}\}}\fi} -\let\SpecialEnvValue\SpecialMacroValue -\def\Variable#1{$\langle${\rmfamily\itshape\small#1}$\rangle$} -\def\MaybeDefault#1{\textrm{*}\,#1} -\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\indexspace\protect\bfseries User Commands:}% - \levelchar\expandafter\@gobble\string#1\actualchar\string\verb - \quotechar*\verbatimchar\string#1\verbatimchar\encapchar usage}% - \let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}\@esphack} -\def\SpecialEnvIndex#1{\CatIndex{#1}{environment}} -\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}\}} -\def\PrintDescribeOption#1{\strut\MacroFont\color{thered}#1} -\def\Indexing{\let\special@index\codeline@wrindex} -\def\NoIndexing{\let\special@index\@gobble} -\def\GeneralChanges#1{\edef\generalname{\if*#1 General\else#1\fi}}% mind the space! -\DeclareRobustCommand\key[1]{\textcolor{thered}{\ttfamily#1}} -\DeclareRobustCommand\pkg[1]{{\PackageFont#1}\@bsphack\CatIndex{#1}{package}\@esphack} -\DeclareRobustCommand\opt[1]{{\ttfamily#1}\@bsphack\CatIndex{#1}{option}\@esphack} -\DeclareRobustCommand\file[1]{{\ttfamily#1}} -% ... and whistles -{\catcode`\"\active - \gdef\verbatim#1 - {\catcode`\"\active \def"##1"{\colorbox{theshade}{% - \textrm{Text lost! Please install the \pkg{listings} package.}}}% - \@beginparpenalty\predisplaypenalty\@verbatim\MacroFont - \frenchspacing\@vobeyspaces\expandafter\@xverbatim\@gobble}} -\IfFileExists{listings.sty}{ - \usepackage{listings} - \lstset{ - gobble=1,columns=flexible,keepspaces,upquote,escapechar=", - basicstyle=\MacroFont, - keywords=[0]{\microtypesetup,\DeclareMicrotypeSet,\UseMicrotypeSet, - \DeclareMicrotypeSetDefault,\SetProtrusion,\SetExpansion,\SetTracking, - \SetExtraKerning,\SetExtraSpacing,\DisableLigatures,\DeclareCharacterInheritance, - \DeclareMicrotypeVariants,\DeclareMicrotypeAlias,\DeclareMicrotypeBabelHook, - \LoadMicrotypeFile,\microtypecontext,\textmicrotypecontext, - \textls,\lsstyle,\lslig,\Microtype@Hook}, - 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 - no ligatures,outer spacing,outer kerning}, % there are three \nobreakspace in this line - keywordstyle=[1]\color{thered}, - comment=[l]\%, - commentstyle=\color{thegrey}\itshape, - alsoother={0123456789_}, - frame=single,backgroundcolor=\color{theshade},rulecolor=\color{theframe}, - framerule=\fboxrule,xleftmargin=3.4pt,xrightmargin=3.4pt,belowskip=\smallskipamount - } - \let\verbatim\relax - \lstnewenvironment{verbatim}[1][]{\lstset{##1}}{} - \ifpdf \IfFileExists{dummy-space.pfb}{% - \pdfmapline{+dummy-space }, - pdfsubject={An interface to the micro-typographic extensions of pdfTeX}, - pdfkeywords={TeX, LaTeX, pdfTeX, luaTeX, typography, micro-typography, - character protrusion, margin kerning, optical alignment, font expansion, - font scaling, hz, kerning, spacing, glue, letterspacing, tracking, ligatures} - ]{hyperref} - \pdfcatalog{/Lang(en-GB)} - \ifnum\pdftexversion < 130 \else - \IfFileExists{hypdestopt.sty}{\usepackage{hypdestopt}}\relax\fi - \IfFileExists{hyperxmp.sty}{ - \usepackage{hyperxmp} - \hypersetup{% - pdfcopyright={\textcopyright\ 2004--2010 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;% - This work has the LPPL maintenance status `author-maintained'.}, - pdflicenseurl={http://www.latex-project.org/lppl/}} - }\relax - \def\usage#1{\textbf{\hyperpage{#1}}}% for indexing of \DescribeMacro ... - \def\changes@#1#2#3{% ... the changes ... - \protected@edef\@tempa{\noexpand\glossary{#1\levelchar - \ifx\saved@macroname\@empty \space\actualchar\generalname - \else\expandafter\@gobble\saved@macroname\actualchar - \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\ctanurl#1{Available from \acronym{CTAN} at - \href{http://www.ctan.org/tex-archive/#1}{\nolinkurl{/#1}}} - \DeclareRobustCommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}} - \def\mailtoRS{\href % some PDF viewers don't like spaces: - {mailto:\%20Robert\%20Schlicht?subject=[microtype\%20\fileversion]} - {\texttt{w.m.l@gmx.net}}} - % the samples in the introduction, utilising nested optional content groups (aka. layers): - \ifnum\pdftexversion<140 \else - \def\mt@layer#1#2{\pdfliteral direct{/OC/#1 BDC}#2\pdfliteral direct{EMC}} - \ifx\mt@objects\@undefined\let\mt@objects\@empty\fi - \ifx\mt@order \@undefined\let\mt@order \@empty\fi - \let\mt@resources\@empty - \def\mt@register#1#2{% - \immediate\pdfobj{<< /Type/OCG /Name(#1:#2) >>} - \expandafter\xdef\csname mt@#1@#2\endcsname{\the\pdflastobj\space 0 R } - \xdef\mt@objects {\mt@objects \csname mt@#1@#2\endcsname} - \xdef\mt@order {\mt@order \csname mt@#1@#2\endcsname} - \xdef\mt@resources{\mt@resources/#1#2 \csname mt@#1@#2\endcsname}} - \xdef\mt@order{\mt@order[(Sample)} - \mt@register{Protrusion}{true} \mt@register{Protrusion}{false} - \mt@register{Expansion} {true} \mt@register{Expansion} {false} - \mt@register{_compatibility}{} - \xdef\mt@order{\mt@order]} - \pdfcatalog{/OCProperties << - /OCGs [\mt@objects] - /D << /Order [\mt@order] - /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}% - \mt@unvdimen\dimexpr\ht\mt@box+\dp\mt@box\relax - \unvbox\mt@box} - \def\mt@pseudo@marg#1{% - \mt@place{\llap{\vbox{% - \hsize\marginparwidth - \rightskip \marginparsep plus 1em - \leavevmode\itshape\footnotesize #1}}}} - \def\mt@show@sample#1#2{% - \mt@layer{Protrusion#1}{% - \mt@layer{Expansion#2}{% - \mt@place{\microtypesetup{protrusion=#1,expansion=#2}% - \mt@sample@text}}}} - \def\mt@toggle@sample#1{% - \pdfstartlink user{/Subtype/Link - /BS << /Type/Border/W 1 /S/D /D[4 1] >> - /H/O /C[0.65 0.04 0.07] /Contents(Click to Toggle #1!) - %/OC << /Type/OCMD /VE[/Not \csname mt@_compatibility@\endcsname] >> % not honoured by older viewers anyway - /A << /S/SetOCGState /State[/Toggle \csname mt@#1@true\endcsname - \csname mt@#1@false\endcsname] >>} - #1 \hfill\pdfendlink & \mt@layer{#1true}{\rlap{on}}\mt@layer{#1false}{off}} - \renewcommand\microtypesample[1]{% - \begingroup - \leftskip 15pt \rightskip 15pt - \parskip 4pt \parindent 0pt - \vskip 8pt % = \topsep without vertical stretchability - \long\def\mt@sample@text{#1} - \mt@pseudo@marg{\color{theblue}% - Nachdem Sie den Text rechterhand gelesen haben, können Sie den Effekt - dieser Features betrachten, indem Sie auf die Links klicken:\strut\\ - \colorbox{theshade}{% - \begin{tabular}{@{}>{\upshape}l@{\quad}l} - \mt@toggle@sample{Protrusion}\\\addlinespace - \mt@toggle@sample{Expansion} - \end{tabular}}\\[0.3\baselineskip] - Beide Features sind im ganzen Dokument eingeschaltet.} - \mt@show@sample{false}{false} - \mt@show@sample{false}{true} - \mt@show@sample{true} {false} - \mt@layer{_compatibility}{% - % for compatibility with older PDF viewers that don't support OCGs, we - % add a layer that contains a white box, which will hide the underlying - % layers for older viewers, and will be ignored by PDF 1.5 capable viewers. - \mt@place{\rlap{\hskip-\marginparwidth \color{white}% - \vrule width\dimexpr\hsize+\marginparwidth\relax height\mt@unvdimen}} - \mt@pseudo@marg{\color{thered}% - If you had a \acronym{PDF} viewer that understands - \acronym{PDF}\,{\smaller1.5}, you could view the effect of the - micro-typographic features by clicking on the links.\strut - \\\vphantom{\colorbox{white}{\tabular l\\\addlinespace\\\endtabular}}% - \\[0.3\baselineskip] Both features are enabled throughout this document.}} - \mt@show@sample{true}{true} - \vskip 4pt - \endgroup - \edef\x{\pdfpageresources{/Properties <<\mt@resources>>}}\x} - \def\emptypdfpageresources{\pdfpageresources{}} - \fi -\else - \usepackage{url} - \newcommand\hyperref[2][]{#2} - \let\hyperpage\@firstofone - \let\texorpdfstring\@firstoftwo - \def\ctanurl{Available from \acronym{CTAN} at \url} - \let\nolinkurl\url - \let\mailto\texttt - \def\mailtoRS{\mailto{w.m.l@gmx.net}} -\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 - Sveinung % ? - with-out} -\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 -\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\texlive{\TeX~Live} -\def\microtype{{\PackageFont microtype}} -\def\letterspace{\pkg{letterspace}} -\def\fontdim{\cmd\fontdimen\,} -\def\eg{e.\,g.} -\def\ie{i.\,e.} -\DeclareRobustCommand\smaller{\setbox\z@\hbox{\@tempcnta=\f@size - \edef\x{\@tempcnta=\the\@tempcnta}\expandafter}\x - \advance\@tempcnta-7 \ifcase\@tempcnta\tiny\or\scriptsize\or - \footnotesize\or\small\or\or\normalsize\or\or\large\or\or\or\Large\fi} -\DeclareRobustCommand\acronym[1]{\texorpdfstring{{\smaller\textls[60]{#1}}}{#1}} -\let\less=< -{\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}}} - }} -%<*driver> -\CodelineIndex -\EnableCrossrefs -\RecordChanges -%\OnlyDescription -\begin{document} - \DocInput{\jobname.dtx} -\end{document} -% -% -% \fi -% -% ^^A ------------------------------------------------------------------------- -%\GeneralChanges* -%\changes{v1.0}{2004/09/11}{Initial version} -%\changes{v2.0}{2006/12/29}{new package \letterspace: a stripped-down version, -% containing the letterspacing commands only} -%\GeneralChanges{Documentation} -%\changes{v1.9b}{2006/01/13}{activate expansion in the distributed } -%\changes{v2.2}{2007/04/01}{logo transparency and amusement} -% ^^A Adobe Reader 8.0 had serious bugs with transparency. Fixed in 8.1. -% -% \GetFileInfo{microtype.dtx} -% \title{\ifx\printlogo\undefined\else\printlogo\fi -% \textls{Das \microtype\ Paket}\\[.3\baselineskip]\large -% Eine Schnittstelle für die mikrotypographischen Erweiterungen von \pdftex} -% \author{R Schlicht\\\mailtoRS} -% \date{\fileversion\\\filedate} -% -% \maketitle \thispagestyle{empty} -% -%\begin{abstract} -%\noindent -% Das \microtype\ Paket stellt eine \LaTeX\ Schnittstelle für die mikrotypographischen -% Erweiterungen von \pdftex bereit: besonders markant Zeichenvorsprünge und Fontexpansion, -% weiterhin die Justierung von Zeichenabständen innerhalb Wörter und zusätzliches Kerning sowie -% durch Bindestrich trennbaren Sperrsatz (Tracking) und die Möglichkeit, alle oder ausgewählte -% Ligaturen abzuschalten. -% Es erlaubt, diese Features auf anpassbare Fonts anzuwenden und alle mikrotypographischen Aspekte -% dieser Fonts in einer einfachen und flexiblen Art und Weise zu konfigurieren. Einstellungen -% für verschiedene Schriftarten werden bereitgestellt.\footnote{ -% Zur Zeit stellt dieses Paket Protrusionseinstellungen für Computer Modern -% Roman, Palatino, Times, Garamond, Adobe Garamond und Minion, -% Bitstream Charter und Letter Gothic, die Symbole und Euler Fonts, -% verschiedene Eurosymbol Schriftarten, sowie einige allgemeine Einstellungen für unbekannte Schriftarten -% (siehe~Tabelle~\ref{tab:fonts} auf Seite~\pageref{tab:fonts}) bereit. -% Beisteuerungen sind gern gesehen.} -% -% Zu beachten ist, dass Fontexpansion und Zeichenvorsprünge nur mit -% \pdftex ($\geq$ Version 0.14f) arbeiten. Automatische Fontexpansion erfordert mindestens -% Version 1.20 oder neuer. Ligaturen zu deaktivieren erfordert \pdftex\ 1.30, Sperrsatz und -% die Justierung von Zeichenabständen innerhalb Wörter sowie Kerning erfordern Version 1.40. Das -% Paket aktiviert standardmäßig Protrusion und Expansion, falls sicher angenommen werden kann, dass diese -% funktionieren. Diese beiden Features sind ebenso verfügbar mit \luatex. Das -% \microtype\ Paket arbeitet nicht mit \xetex. -% -% Das alternative Paket \letterspace, welches ebenso mit einfachem \TeX arbeitet, -% stellt nur die Befehle für Sperrsatz (Letter-spacing) bereit, und lässt Support für alle -% anderen Erweiterungen aus (siehe Abschnitt~\ref{sec:lettersp}). -% -%\bigskip\noindent -% Dieses Paket ist urheberrechtlich geschützt \textcopyright\ 2004\kern.09em--2010 R Schlicht. -% Es darf vertrieben und/oder modifiziert werden unter den Bedingungen der -% \IfFileExists{lppl.tex}{\hyperref[LPPL:LPPL]}{\href{http://www.latex-project.org/lppl/}} -% {\LaTeX\ Project Public License}, -% entweder Version~1.3c dieser Lizenz oder alternativ jeder späteren Version. -% Das Projekt hat den Wartungsstatus `author-maintained'. -%\end{abstract} -% -% -%\newpage -%\emptypdfpageresources ^^A layers of the logo -%\tableofcontents -%\listoftables -% -% -%\newpage -%\section{Mikrotypographie mit \pdftex}\label{sec:micro-type} -% -% \pdftex, die \TeX\ Erweiterung geschrieben von \thanh, führt eine Reihe -% mikrotypographischer Features ein. welche es nicht nur zum Werkzeug der Wahl -% für die Erstellung elektronischer Dokumente, sondern auch Werke überragender, altehrwürdiger -% Typographie machen: am bedeutendsten \textit{Zeichenvorsprünge (Character Protrusion, auch bekannt als margin kerning)} -% und\textit{Fontexpansion}. \thanh s Thesis zitierend: -% -%\changes{v1.9b}{2006/01/13}{add samples of micro-typographic features} -%\microtypesample{\small -% `Margin kerning bezeichnet die Justierung der Zeichen an den Rändern (margin) eines -% gesetzten Textes. Eine vereinfachte Anwendung von Margin kerning ist hängende -% Zeichensetzung. Margin kerning ist notwendig für optische Ausrichtung der Ränder -% eines gesetzten Textes, weil mechanisches Angleichen der Ränder diese eher stümperhaft -% aussehen lässt. Einige Zeichen können eine Zeile für das menschliche Auge kürzer -% erscheinen lassen als andere. Solche Zeichen um einen passenden Betrag zu den Rändern zu -% verschieben würde das Aussehen des Textes massiv verbessern. -% -% Mit Fontexpansion zu verfassen ist die Methode, eine weitere oder engere -% Variante des Fonts zu erschaffen, welche die Wortzwischenräume mehr ausgleichen. -% Eine Schriftart in einer losen Zeile kann durch eine weitere Variante ausgetauscht werden, sodass die Wortzwischenräume -% weniger stark gestreckt werden. Gleichermaßen kann ein Font in einer dicht bepackten Zeile -% durch eine schmalern Variante ersetzt werden, um die Abstände zu verringern. -% Es besteht mit Sicherheit die potentielle Gefahr der Fontdeformierung wenn -% solche Manipulationen vorgenommen werden, weshalb sie mit extremer Vorsicht vorgenommen -% werden müssen. Das Potential, eine Zeilebreite mittels Fontexpansion zu justieren, -% sollte bedacht werden, wenn ein Paragraph in Zeilen zerbrochen wird, -% um bessere Stopppunkte zu wählen.' [\cite[p.~323]{ThanhThesis}]} ~\\ -% -% Diesen beiden Features fehlte seit einiger Zeit eine einfache \LaTeX\ Benutzerschnittstelle. -% Dann wurde das \cite{pdfcprot} Paket veröffentlicht, welches -% \LaTeX\ Benutzern ermöglichte, Zeichenvorsprünge zu benutzen, ohne sich zu sehr -% mit den Interna beschäftigen zu müssen. -% -% Fontexpansion allerdings war weiterhin schwierig zu utilisieren, da es erforderte, -% dass die Fontmetriken für alle Ebenen der Erweiterung verfügbar waren. -% Deswegen musste jeder, der von diesem Feature Gebrauch machen wollte, im Vorfeld -% multiple Ausführungen der Schriftarten anfertigen. Shellskripte, um den Benutzer wenigstens -% teilweise von dieser Last zu befreien, waren verfügbar~-- dennoch blieb es eine lästige Arbeit. -% Darüber hinaus mussten alle Fonts weiterhin physisch erstellt werden, wodurch Kompilierungszeit -% und Speicherplatz auf der Festplatte verschwendet wurden. -% -% Im Sommer 2004 implementierte \thanh\ eine Besonderheit, welche sich als eine -% bedeutende Erleichterung für \TeX\ und \LaTeX\ Benutzer entpuppte: Fontexpansion kann nun -% automatisch stattfinden. Das heißt, \pdftex\ braucht nicht länger die Fontmetriken der expandierten -% Schriftart, sondern berechnet diese zur Laufzeit und komplett im Speicher. -% -%\bigskip\noindent -% Nach diesem großen Sprung in der Anwendbarkeit stoppte die Entwicklung nicht. -% Im Gegenteil, \pdftex\ wurde mit immer mehr besonderen Merkmalen ausgestattet: Version -% 1.30 führte die Möglichkeit ein, \emph{alle Ligaturen auszuschalten}, Version 1.40 -% brachte ein robustes \emph{Letter-spacing} Kommando, die Möglichkeit -% \emph{zusätzliches Zeichen Kerning} zu spezifizieren und die \emph{Justierung von Zeichenabständen innerhalb Wörter}. -% -% Robustes und per Bindestrich trennbares \emph{Letter-spacing (Tracking)} war immer -% extrem schwierig in \TeX zu realisieren. Obwohl das \cite{soul} Paket -% große Mühen unternahm um es möglich zu machen, konnte es trotzdem weiterhin in -% bestimmten Situationen scheitern; allein das Tracking einer Schriftart für das ganze -% Dokument blieb unmöglich. Wendet man die neue Erweiterung von \pdftex an, stellt dies -% nicht länger ein Problem dar. Das \microtype\ Paket stellt die Möglichkeit bereit, -% das Tracking anpassbarer Fontsets zu ändern, z.B., alle kleinen Kapitälchen. -% Es führt außerdem die zwei neuen Kommandos \cs{textls} und \cs{lsstyle} -% für ad-hoc Letter-spacing ein, welche wie normale Textkommandos benutzt werden können. -% Beachten Sie, dass Letter-spacing nur im Modus funktioniert. -% -% \emph{Zusätzliches kerning} für Zeichen einer Schriftart einzustellen ist besonders -% nützliche für Sprachen, deren typographische Tradition es erfordert, bestimmte Zeichen -% durch ein Leerzeichen abzutrennen. Es ist zum Beispiel üblich, in französischer -% Typographie ein wenig Platz vor einem Fragezeichen, Ausrufezeichen und Semikolon zu lassen, -% und ein wenig mehr Platz vorm Doppelpunkt und den Guillemets. Bis jetzt konnte das nur -% erreicht werden, indem man diese Zeichen aktivierte (z.B. -% mit dem \pkg{babel} Paket), was nicht immer eine praxistaugliche Lösung sein kann. -% Im Kontrast zum Standard Kerning, welches in die Schriftarten eingebaut ist -% (und welches natürlich wie üblich greift), basiert dieses Kerning auf einzelnen Zeichen -% nicht auf Zeichenpaaren. -% -% \emph{Wortzwischenräume zu justieren} basiert auf der Idee, dass - um eine -% uniforme Grauheit in einem Text zu erreichen - die Wortzwischenräume auch von den -% Zeichen in der direkten Umgebung abhängen sollten. Wenn zum Beispiel ein Wort mit -% einem `r' endet, sollte der folgende Abstand ein kleines bisschen kleiner sein als z.B. nach -% einem `m'. Man kann von diesem Konzept wie von einer Erweiterung von \TeX s `space -% factors' denken. Allerdings, während space factors alle drei Parameter dieser -% Wortzwischenräume (oder Haftung) um den selben Betrag beeinflusst~-- das Kerning, den maximalen -% Betrag, um den der Zwischenraum gestreckt oder geschrumpft werden kann -% ~-- stellt \pdftex\ die Möglichkeit bereit, diese Parameter unabhängig voneinander -% zu modifizieren. Darüber hinaus können die Werte für jeden Font anders eingestellt werden. -% Außerdem -- und vielleicht am wichtigsten -- können diese Parameter nicht nur erhöht sondern -% auch erniedrigt werden. Dieses Merkmal wird das Aussehen von Paragraphen vielleicht noch -% mehr aufwerten. -% Die Betonung liegt im letzten Satz auf dem Wort `vielleicht': diese Erweiterung ist immer -% noch sehr experimentell -- speziell haben nur die letzten Zeichen im Moment Einfluss auf die Wortzwischenräume. -% Außerdem sind die mit \microtype\ gelieferten Einstellungen nicht mehr als eine erste Annäherung, -% weshalb ich es begrüßen würde, wenn Sie Korrekturen und Verbesserungen vornehmen. -% Ich würde vorschlagen, die Begründung für die Einstellungen in Abschnitt~\ref{sub:conf-spacing} durchzulesen. -% -% Abschließend mag die Möglichkeit, für einen Font \emph{alle Ligaturen auszuschalten}, -% nützlich für Schreibmaschinenschriftarten sein. -% -%\emptypdfpageresources ^^A layers of the sample -%\bigskip\noindent -% Das \microtype\ Paket stellt für all diese mikrotypographischen -% Erweiterungen eine Schnittstelle bereit. Alle mikrotypographischen Aspekte können individuell und einfach angepasst werden. -% Die nächsten Kapitel werden einen Abriss aller Optionen und Anpassungsmöglichkeiten präsentieren. -% -% -%\section{Loslegen} -% -% Es gibt keine Überraschungen beim Laden des Paketes: -%\begin{verbatim}[morekeywords={[1]{microtype}}] -%\usepackage{microtype} -%\end{verbatim} -% In den meisten Fällen ist das ausreichend, und falls Sie nicht an der Feinabstimmung -% des mikrotypographischen Aussehens ihres Dokumentes (was unwahrscheinlich erscheint -% da Sie dieses Paket benutzen, was ihr Interesse an typographischen Problemen bestätigt) -% interessiert sind, können Sie den Rest dieses Dokumentes auslassen. -%^^A -% Falls Sie dies andererseits nicht befriedigt -- sei es aus theoretischen oder praktischen Gründen -% -- wird Sie dieses Handbuch auf den Weg zu den erwünschten Ergebnissen und folgenden -% Meilensteinen bringen: -% -%\changes{v2.2}{2007/06/06}{add overview} -%\begin{itemize} -% \item Das entsprechende mikrotypograpische Feature einschalten, entweder -% mittels der respektiven package Option oder mittels des \cs{microtypesetup} Kommandos -% (Abschnitt~\ref{sec:options}). -% \item Wählen Sie die Schriftarten aus, auf welche dieses Feature angwendet werden soll, indem -% Sie `Font Sets' deklarieren und aktivieren. Einige Sets sind vorerstellt und können direkt -% in den Paketoptionen aktiviert werden -% (Abschnitt~\ref{sec:font-sets}). -% \item Feinabstimmen der mikrotypographischen Einstellungen an den Schriftarten oder Sets von Schriftarten -% (Abschnitt~\ref{sec:fine-tuning}). -% \item Falls sie der Typ sind, der immer weiter marschiert, werden -% Sie sicher an der Möglichkeit zu Context-abhängigen Einstellungen interessiert sein -% (Abschnitt~\ref{sec:context}). -% \item Wir ermutigen Sie sogar, den Pfad typographischer Tugend zu verlassen -% und ein paar Schafe zu stehlen (section~\ref{sec:lettersp}) oder auf andere Weise einzudringen -% (section~\ref{sec:disable-ligatures}). -% \item Sollten sich Ihnen ein Hindernis auftun, folgen Sie den Tipps und Warnungen -% (Abschnitt~\ref{sec:caveats}). -%\end{itemize} -% -% -%\section{Optionen}\label{sec:options} -% -% Wie viele andere \LaTeX\ Pakete auch akzeptiert das \microtype\ Paket Optionen -% über die bekannte |Schlüssel=Wert| Syntax. Im Folgenden finden sie eine Beschreibung aller -% \key{Schlüssel} und ihrer möglichen |Werte| -% (`|true|' kann ausgelassen werden; multiple Werte (falls erlaubt) müssen eingeklammert -% werden; der Standardwert wirds rechts gezeigt, angeführt von einem Sternchen -% falls es abhängig von der \pdftex\ Version und/oder dem Output Modus ist). -% -% -%\subsection{Die mikro-typographischen Features anschalten}\label{sub:options-microtype} -% -%\Describe{Option}{protrusion} -% {*true,false,compatibility,nocompatibility,:Name des Font Sets} -%\DescribeOption{expansion} -% Dies sind die hauptsächlichen Optionen um die Ebene mikro-typographischer Verfeinerung, -% welche die Schriftarten in ihrem Dokument erhalten sollten, zu kontrollieren. -% Standardmäßig ist das Paket recht gierig; Character Protrusion ist aktiviert, Fontexpansion -% wird nur in Situationen abgeschaltet, in denen \pdftex\ die Fonts nicht automatisch expandieren -% kann, also falls es entweder zu alt ist (Versionen vor 1.20) -% oder falls der Output Modus ist (siehe Abschnitt~\ref{sub:options-misc}). -% Anders gesagt wird \microtype\ versuchen, soviel Mikrotypographie anzuschalten wie -% es sicher als funktionierend unter den gegebenen Bedingungen erwarten kann -% (und normalerweise ist es nicht nötig, das Paket mit anderen Optionen für die -% bzw. Modi zu laden). -% -% Protrusion und Expansion können getrennt (de)aktiviert werden, indem man den betreffenden -% Schlüssel auf |true| bzw. |false| setzt. Die -% \opt{activate} Option -%\DescribeOption{activate} -% kürzt das Setzen beider Optionen zur gleichen Zeit ab. Deswegen haben die folgenden Zeilen -% alle denselben Effekt (wenn man Dateien mit einer aktuellen Version -% von \pdftex erstellt): -%\begin{verbatim} -%\usepackage[protrusion=true,expansion]{microtype} -%\end{verbatim} -%\begin{verbatim} -%\usepackage[activate={true,nocompatibility}]{microtype} -%\end{verbatim} -%\begin{verbatim} -%\usepackage{microtype} -%\end{verbatim} -%\smallskip -% Wenn \pdftex\ Fontexpansion und Character Protrusion verwendet, können Zeilenumbrüche -% (und konsequenterweise auch Seitenumbrüche) unterschiedlich ausfallen. Wenn das nicht gewünscht ist -% -- weil sie z.B. ein Buch neu setzen, dessen Seitenumbrüche sich nicht ändern dürfen -- -% können Sie den Wert |compatibility| an die \opt{protrusion} -% und/oder \opt{expansion} Optionen hängen. Aus typographischer Sicht jedoch werden die Ergebnisse -% suboptimal sein, weshalb der Wert standardmäßig |nocompatibility| ist. -% -% Abschließend können Sie auch den Namen eines Font Sets angeben, auf welches -% Character Protrusion und/oder Fontexpansion beschränkt werden sollten, siehe auch -% Abschnitt~\ref{sec:font-sets} für eine detaillierte Beschreibung. Spezifizieren eines Font Sets -% für ein Features aktiviert dieses Features implizit mit. -% -%\medskip -%\Describe{Option}{tracking}{true,!false,:font set name} -%\DescribeOption{kerning} -%\DescribeOption{spacing} -% Es existiert keine Kompatibilitätsebene für die neuen Erweiterungen Tracking, -% zusätzliches Kerning und Wortzwischenräume (interword spacing). Deshalb können sie nur an- -% oder ausgeschaltet werden, oder sie können aktiviert werden indem man einen Setnamen an die -% Option leitet. Standardmäßig ist keines der Features angeschaltet. -% -%\begin{table}\small -%\changes{v2.3a}{2008/02/25}{add table of available and enabled features} -%\caption{Verfügbarkeit mikro-typographischer Features}\label{tab:available-features} -%\catcode`\!=13 \def!{\textcolor{thegreen}{\hskip.9em $\bigstar$}} -%\catcode`\?=13 \def?{\textcolor{theblue} {\hskip 1em $\boxtimes$}} -%\catcode`\_=13 \def_{\textcolor{thered} {\hskip 1em $\varnothing$}} -%\setlength\fboxsep{4pt} -%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax -%\fcolorbox{theframe}{white}{^^A -%\begin{minipage}{\textwidth} -%\def\arraystretch{1.2} -%\begin{tabular}{*3{@{}L{40pt}}*2{@{}L{43pt}}*4{@{}L{37pt}}@{}} -% \multicolumn{3}{@{}l}{\footnotesize \TeX\ engine} -% & \multicolumn{6}{@{}l}{\footnotesize Mikrotypographische Features}\\ -%\cmidrule(r){1-3}\cmidrule{4-9} -% \footnotesize Engine -% & \footnotesize Version -% & \footnotesize Output -% & \footnotesize Protrusion -% & \footnotesize Expansion -% & \footnotesize (= auto) -% & \footnotesize Kerning -% & \footnotesize Spacing -% & \footnotesize Tracking\\ -%\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3}\cmidrule(r){4-4} -%\cmidrule(r){5-5}\cmidrule(r){6-6}\cmidrule(r){7-7}\cmidrule(r){8-8}\cmidrule{9-9} -% \pdftex -% & $\less$ 0.14f & / & _ & _ & _ & _ & _ & _\\ -% & $\geq$ 0.14f & / & ! & ? & _ & _ & _ & _\\ -% & $\geq$ 1.20 & & ! & ? & _ & _ & _ & _\\ -% & & & ! & ! & ! & _ & _ & _\\ -% & $\geq$ 1.40 & & ! & ? & _ & ? & ? & _\\ -% & & & ! & ! & ! & ? & ? & ?\,\textsuperscript{\itshape a}\\ -% \luatex ^^A we will have to re-model kerning, spacing and tracking with \luatex: -% & $\geq$ 0.25 & & ! & ? & _ & _ & _ & _\\ -% & & & ! & ! & ! & _ & _ & _\\ -%\bottomrule -%\end{tabular}^^A -%\vskip4pt\footnotesize -%\hskip-.8em -% ! = aktiviert\quad -% ? = nicht aktiviert\quad -% _ = nicht verfügbar -%\hfill -% \textit{a}\quad $\geq$ 1.40.4 empfohlen -%\vskip3pt -%\end{minipage}^^A -%}\kern-\dimexpr\fboxsep+\fboxrule\relax ^^A end \fcolorbox -%\end{table} -% -%\medskip\noindent -% In Tabelle~\ref{tab:available-features} erhalten Sie einen Überblick über die verfügbaren -% und standardmäßig aktivierten mikro-typographischen Features für die -% relevanten \pdftex\ Versionen und Output Modi. -% -%\medskip\noindent -% Ob Ligaturen deaktiviert werden sollten kann nicht mittels einer Option kontrolliert werden, -% sondern per \cs{DisableLigatures} Kommando, welches in -% Abschnitt~\ref{sec:disable-ligatures} erklärt wird. -% -% -%\subsection{Zeichenvorsprünge}\label{sub:options-protrusion} -% -%\Describe{Option}{factor}{:integer}[1000] -% Benutzen Sie diese Option, um global einzustellen, um welchen Betrag die Zeichen -% hervorragen sollen. Während ein Wert von 1000 bedeutet, dass der volle Vorsprung -% wie in der Konfiguration (siehe Abschnitt~\ref{sub:protrusion}) spezifiziert benutzt wird, -% bedeutet ein Wert von 500 entsprechend die Halbierung der Protrusion. -% Dies kann nützlich sein, falls Sie grundsätzlich zufrieden mit den Einstellungen sind, -% aber bevorzugen, wenn die Zeichenhervorragungen weniger oder mehr zu sehen sind. -% (z.B. wenn sie so stolz darauf sind, dieses Feature nutzen zu können, dass sie es jedem -% zeigen wollen, oder -- um eine Motivation zu nennen, die in Einverständnis mit typographischer -% Korrektheit steht -- falls sie eine große Schriftart nutzen, die gemäßigtere Vorsprünge verlangt). -% -%\medskip -%\Describe{Option}{unit}{!character,:dimension} -% Diese Option wird in Abschnitt~\ref{sub:protrusion} erklärt, ebenso das Kommando -% \cs{SetProtrusion}. Seien sie vorsichtig bei Benutzung dieser Optionen! -% -% -%\subsection{Fontexpansion}\label{sub:options-expansion} -% -%\Describe{Option}{auto}{*true,false} -% Wie bereits im Kapitel~\ref{sec:micro-type} angemerkt, können die expandierten Versionen -% der Fonts automatisch erstellt werden. Diese Option ist standardmäßig an, wenn -% \pdftex Version 1.20 oder höher beträgt und der Output Modus ist; -% ansonsten ist die Option deaktiviert. -% Falls \opt{auto} auf false gesetzt ist, müssen die einzelnen Fonts aller Expansionsstufen -% bereits existieren (mit nach dem Schema \meta{font~name}\texttt{\textpm}\meta{expansion value} benannten Dateien, -% z.B. \file{cmr12+10}, wie beschrieben in \cite{pdftexman}). -%\iffalse ^^A no longer true (1.40?) -% Falls expandierte Instanzen der Fonts verfügbar sind, werden sie verwendet, -% egal ob \opt{auto} auf true oder false gesetzt ist. -%\fi -% -%\changes{v1.9}{2005/08/27}{add remark about Type\,1 fonts required for -% automatic font expansion} -% Automatische Fontexpansion funktioniert nicht mit Bitmap Fonts, weswegen Sie, falls Sie -% die Computer Modern Roman Fonts in Kodierung\footnote{ -% Beiläufig bemerkt, Type\,1 Format und Encoding hängen in keiner -% Weise miteinander zusammen, abgesehen davon, dass beide mit einem `T' anfangen und mit einer `1' enden.}, -% nutzen, entweder \pkg{cm-super} Fonts installieren oder die Latin Modern -% Fonts (package \pkg{lmodern}) benutzen sollten. -% -%\medskip -%\Describe{Option}{stretch}{:integer}[20] -%\DescribeOption{shrink} -% Sie können bestimmen, wie sehr ein Font maximal gestreckt bzw. geschrumpft werden kann. -% Die Zahl wird durch 1000 dividiert, sodass ein Stretch Limit von 10 bedeutet, -% dass ein Font um bis zu ~1\% expandiert werden kann. -% Das standardmäßige Stretch Limit ist 20; das Shrink Limit ist standardmäßig gleich -% dem Stretch Limit. -% -%\medskip -%\Describe{Option}{step}{:integer}[\MaybeDefault{1}] -% Fonts werden nicht um beliebige Mengen expandiert, sondern nur um gewisse bestimmte -% Schritte innerhalb der Expansionslimits.Mit aktuellen Version von \pdftex\ (1.40 oder -% neuer) ist diese Option standardmäßig auf 1 gesetzt, damit \pdftex\ die -% maximale Anzahl an Instanzen der jeweiligen Fonts ausprobieren kann und somit den bestmöglichen -% Output garantiert.\footnote{ -% Die Kehrseite an dieser Standardeinstellung ist, dass \pdftex\ vielleicht bei großen Dokumenten -% nicht genügend Speicher zur Verfügung hat; in diesem Falle sollten Sie über die Fehlermeldungen in der `Hints -% and caveats' Abschnitt~(\ref{sec:caveats}) nachlesen oder es mit einem größeren \opt{step} probieren.} -% Ältere \pdftex\ Versionen jedoch mussten jede einzelne Fontinstanz in der -% Datei einfügen, wodurch die Dateigröße teils dramatisch erhöht wurde. Deswegen -- -% sollten Sie eine pre-1.40 \pdftex\ Version nutzen -- ist \opt{step} standardmäßig -% auf ein Fünftel des kleineren Wertes von \opt{stretch} und \opt{shrink} gesetzt. -% -%\medskip -%\Describe{Option}{selected}{true,!false} -% Wenn Fontexpansion angewendet wird ist es möglich, die Expansion einiger sensibler Zeichen, -% welche schnell deformiert erscheinen können (z.B. das `O' im Kontrast zum `I'), zu begrenzen. -% Das nennt sich \emph{selected expansion} und seine Benutzung erlaubt, die Stretch und Shrink -% Limits zu erhöhen (auf z.B. 30 anstelle von 20); allerdings ist der Zuwachs limitiert, da -% gleichzeitig die durchschnittliche Stretch Varianz verringert wird -% Deswegen ist diese Option standardmäßig auf -% |false| gesetzt, sodass alle Zeichen um denselben Betrag expandiert werden. -% Siehe Abschnitt~\ref{sub:expansion} für eine detailliertere Beschreibung. -% -% -%\subsection{Tracking/Letterspacing}\label{sub:option-tracking} -% -%\Describe{Option}{letterspace}{:integer}[100] -% Diese Option verändert den Standardbetrag fürs Tracking (siehe Abschnitt~\ref{sub:tracking}) -% sowie Letterspacing (siehe Abschnitt~\ref{sec:lettersp}). Der Betrag wird in Tausendsteln -% von 1\,em angegeben; zulässige Werte sind im Bereich von \textminus1000 -% bis +1000. -% -% -%\subsection{Verschiedene Optionen}\label{sub:options-misc} -% -%\Describe{Option}{DVIoutput}{true,*false} -% \pdftex\ ist nicht bloß in der Lage, Dateien zu erstellen, sondern kann auch -% Dateien erzeugen.\footnote{ -% Neuere \TeX\ Systeme benutzen \pdftex\ als Standard Engine auch für -% Ausgaben.} -% Letztere können mit der Option \opt{DVIoutput} erzwungen werden, was -% \cmd\pdfoutput\ auf Null setzt. -% -%\changes{v1.5}{2004/12/15}{add note about \opt{DVIoutput} option} -% Beachten Sie, dass dies Pakete verwirren wird, die auf den Wert von -% \cmd\pdfoutput\ angewiesen sind, falls diese früher geladen wurden; so erwarten sie, -% dass sie aufgerufen wurden um eine Ausgabe zu erzeugen, obwohl das nicht der Fall ist. -% Diese Pakete sind u.a.: \pkg{graphics}, \pkg{color}, -% \pkg{hyperref}, \pkg{pstricks} und natürlich \pkg{ifpdf}. Entweder laden sie diese Pakete nach -% \microtype\ oder benutzen die Anweisung |\pdfoutput=0| früher -% -- in letzterem Fall ist die \opt{DVIoutput} Option redundant. -% -% Wenn man Dateien erstellt, muss Fontexpansion explizit aktiviert werden. -% Weder Letterspacing noch \emph{automatische} Fontexpansion werden funktionieren, da -% die postprocessing Treiber (|dvips|, |dvipdfm| etc.) sowie die Betrachter -% nicht in der Lage sind, die Fonts on the fly zu generieren. -% -%\changes{v2.0}{2006/11/28}{add remark about `\opt{draft}' option disabling \microtype\ -% (noted by \contributor Michalis Miatidis )} -% ^^A private mail, 2006/11/26 -%\medskip -%\Describe{Option}{draft}{true,!false} -%\DescribeOption{final} -% Falls die \opt{draft} Option an das Paket geleitet wird, werden \emph{alle -% mikro-typographischen Erweiterungen ausgeschaltet}, was zu unterschiedlichen Zeilen- -% und somit Seitenumbrüchen führen kann. Die \opt{draft} und \opt{final} Optionen können -% außerdem von den Optionen der Klasse geerbt werden; natürlich kann man diese mit den -% Optionen der Pakete überschreiben. Falls man z.B. die Klassenoption |draft| verwendet, um -% jegliche übervollen Boxen anzuzeigen, sollte man \microtype\ mit der |final| -% Option laden. -% -%\medskip -%\Describe{Option}{verbose}{true,!false,errors,silent} -% Informationen bzgl. der Einstellungen an jeglichen Fonts werden in die Log Datei -% geschrieben, sofern man die \opt{verbose} Option aktiviert. Wenn \microtype\ auf ein nicht-fatales Problem trifft -% (z.B. ein unbekanntes Zeichen in den Einstellungen oder nicht-existente Einstellungen), -% gibt es standardmäßig nur eine Warnung aus und versucht weiterzumachen. -% Lädt man das Paket mit |verbose=errors| werden alle Warnungen in Fehler verwandelt, sodass -% man sicher sein kann, dass kein Problem unerkannt bleibt. Falls man -% andererseits allen Warnungen nachgegangen ist und sich entscheidet, diese zu ignorieren, -% kann man \microtype\ mittels |verbose=silent| zum Schweigen bringen. -% -%\medskip -%\Describe{Option}{babel}{true,!false} -% Das Paket mit der \opt{babel} Option zu laden wird die Zeichensetzung -% der jeweiligen ausgewählten Sprache anpassen. Mehr Information hierzu in Abschnitt~\ref{sec:context}. -% -%\medskip -%\Describe{Option}{config}{:file name}[microtype] -% Verschiedene Einstellungen für dieses Paket werden aus einer Hauptkonfigurationsdatei geladen, -% standardmäßig ist dies \file{microtype.cfg} (siehe Abschnitt~\ref{sub:config-file}). -% Sie können eine andere Konfigurationsdatei wählen, indem sie deren Name -% mittels \emph{ohne die Dateiendung} angeben, z.B. |config=mycrotype|. -% -%\iffalse ^^A ... waiting for bug reports before documenting yet another option ... -%\medskip -%\Describe{Option}{defersetup}{!true,false} -% Anders als in früheren Versionen verzögert \microtype\ seit Version 1.9a sein -% Setup bis zum Ende der Präambel. Dies hat mindestens 2 Vorteile: Das unten -% beschriebene Kommando \cs{microtypesetup} kann genutzt werden um Paketoptionen später -% zu ändern und es ist nicht länger notwendig, die Standardfonts und Enkodierungen -% noch vor \microtype zu laden. Es gibt nur ein mögliches Problem: Falls eine Box -% innerhalb der Präambel konstruiert wird \emph{und} diese Box eine Schriftart enthält, -% die nicht geladen wird bevor die Box im Dokument verwendet wird, so wird diese Schriftart -% nicht eingerichtet. Sollte dieser extrem unwahrscheinliche Fall auftreten, sollten Sie -% |defersetup=false| setzen. Dann greifen jedoch die angesprochenen Restriktionen. -% -%\medskip -%\Describe{Option}{copyfonts}{true,!false} ^^A and another one ... -% There are some restrictions as to what \pdftex\ can do with a font: Firstly, -% it cannot expand a single font with different parameters, secondly, it cannot -% apply different protrusion settings to one font within the same paragraph. -% Both restrictions, which only matter with a context-sensitive setup -% (cf.~section~\ref{sec:context}), can be circumvented with the \opt{copyfonts} -% option: when it is set to |true|, \microtype\ will use font copies to work -% on. This option will automatically be set to |true|, whenever protrusion or -% expansion settings with a |context| keyword are encountered. If these -% settings are loaded after the preamble, however, it is too late, and you -% should set the \opt{copyfonts} option manually. -% This only works with \pdftex\ 1.40.4 or later. -%\fi -% -% -%\ifcmr\else\pagebreak\markright{}\fi ^^A layout -%\subsection{Changing options later}\label{sub:options-cmd} -% -%\Describe{Macro}{\microtypesetup}{key\,|=|\,value list} -% Innerhalb der Präambel akzeptiert dieses Kommando alle oben genannten Paketoptionen -% (außer |config|). -% Im Dokumentkörper kann dieser Aufruf verwendet werden, um grundlegende Einstellungen -% der mikro-typographischen Erweiterungen zu verändern. Es akzeptiert dann alle Optionen aus -% Abschnitt~\ref{sub:options-microtype}: \key{expansion}, \key{protrusion} und -% \key{activate}, welche wiederum die Werte |true|, |false|, -% |compatibility| oder |nocompatibility| erhalten können, \key{tracking}, \key{kerning} und -% \key{spacing} mit den zulässigen Werten |true| oder |false|. -% Den Namen eines Fonts an die Option zu leiten ist nicht erlaubt. -% Benutzt man dieses Kommando, so könnte man z.B. temporär Fontexpansion ausschalten -% indem man wie folgt verfährt: -%\begin{verbatim} -%\microtypesetup{expansion=false} -%\end{verbatim} -% -% -%\section{Fonts für Mikrotypographie auswählen}\label{sec:font-sets} -% -% Standardmäßig wird Character Protrusion auf alle Textschriftarten angewandt, die -% im Dokument genutzt werden, und eine grundlegende Auswahl an Fonts wird Fontexpansion -% unterzogen. Sie wollen vielleicht anpassen, welche Schriftarten den Vorzug bekommen sollten, -% mikro-typographisch behandelt zu werden. Dies kann geschehen, indem man -% `Font Sets' deklariert und auswählt; diese Font Sets werden mittels Font Attributen spezifiziert, -% die zutreffen müssen. -% -%\medskip -%\Describe{Macro}{\DeclareMicrotypeSet}{?features,set name,set of fonts} -%\DescribeMacro{\DeclareMicrotypeSet*} -% Dieses Kommando deklariert ein neues Font Set, auf welches die the mikro-typographischen -% Erweiterungen angewendet werden. Das optionale Argument kann eine mit Komma separierte -% Liste von Features enthalten, auf die das jeweilige Set beschränkt werden soll. -% Die mit Stern versehene Variante deklariert \emph{und} aktiviert das Font Set -% gleichzeitig. -% -% \paragraph{Das Font Set} wird durch den Font Attributen zugewiesene Werte definiert: -% Kodierung, Familie, Serie, Form und Größe (siehe auch~\cite{fntguide}). -% Wir fangen mit einem Beispiel an. Dieses Paket definiert einen Font namens -% `|basictext|' in der Hauptkonfigurationsdatei wie folgt: -%\begin{verbatim} -%\DeclareMicrotypeSet{basictext} -% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5}, -% family = {rm*,sf*}, -% series = {md*}, -% size = {normalsize,footnotesize,small,large} -% } -%\end{verbatim} -% Wenn Sie nun -%\begin{verbatim}[deletekeywords={[1]{protrusion}}] -%\UseMicrotypeSet[protrusion]{basictext} -%\end{verbatim} -% in der Präambel des Dokuments aufrufen, werden nur Fonts mit den Kodierungen , , -% , , , oder aus Roman oder Sans Serif Familien, normalen (oder -% `medium') Serien und in per \cmd\normalsize, \cmd\footnotesize, \cmd\small\ oder \cmd\large -% aufgerufenen Größen hervorragen. Mathematische Schriftarten andererseits -% werden das nicht, da sie anderen Kodierungen angehören; gleiches gilt für -% fettgedruckte oder große Schriftarten etc. -% -% Falls eine Attributsliste leer ist oder fehlt -- wie das `shape' Attribut -% im obigen Beispiel -- führt dies zu keiner Einschränkung, sprich, es ist äquivalent dazu -% \emph{alle} möglichen Werte für dieses Attribut einzusetzen. -% Deswegen ist das vordefinierte Set `|alltext|', welches wie folgt deklariert ist: -%\begin{verbatim} -%\DeclareMicrotypeSet{alltext} -% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} } -%\end{verbatim} -% viel weniger restriktiv. Die einzige Bedingung lautet, dass die Kodierung stimmen muss. -% -% Folgt einem Wert ein Asterisk (wie `|rm*|' und `|sf*|' im ersten Beispiel), -% kennzeichnet dieser keinen Code, sondern wird in das -% |\|\meta{value}|default| des Dokuments übersetzt, z.B. \cmd\rmdefault.\footnote{ -% Diese Übersetzungen geschehen zum \cmd\AtBeginDocument, was bedeutet, dass -% Änderungen an den Standardwerten innerhalb der Präambel auch berücksichtigt werden. -% Nur falls Font Standards \cmd\AtBeginDocument\ vom Benutzer selbst geändert werden, -% müssen Sie \microtype\ nach diesen Änderungen laden.} -% Ein einzelner Asterisk bedeutet |\|\meta{attribute}|default|, z.B. -% \cmd\encodingdefault, gleichermaßen \cmd\normalsize\ für die Größenachse. -% Größen können entweder als Dimension angegeben werden (`|10|' oder `|10pt|') oder -% als Größenwahlkommando \emph{ohne} den Backslash. Sie können sogar Bereiche -% (z.B. `|small-Large|') wählen; während die untere Grenze im Bereich enthalten ist, gilt -% dies nicht für die obere Grenze. Deshalb würde `|12-16|' beispielsweise 12\,pt, -% 13.5\,pt und 15.999\,pt enthalten, aber nicht 16\,pt. Es ist nicht erlaubt, die untere -% oder obere Grenze auszulassen (`|-10|', `|large-|'). -% -% Zusätzlich zu diesem Deklarationsschema können sie einzelne Schriften zu einem -% Set hinzufügen, indem Sie den `|font|' Schlüssel nutzen, welcher die Aneinanderreihung aller -% Fontattribute, getrennt durch Slashes, erwartet, das heißt, -%`|font|\,|=|\,\meta{encoding}|/|\meta{family}|/|\meta{series}|/|\meta{shape}|/|\meta{size}'. -% Das erlaubt uns, Font Sets zu Sets hinzuzufügen, von denen sie sonst disjunkt sind. -% Falls Sie zum Beispiel wollen, dass die Roman Familie in allen Größen hervorragt, -% aber nur die normal große, möglicherweise kursive typewriter Font (im Kontrast zum -% z.B. kleinen Font), so könnten sie das Set so deklarieren: -%\begin{verbatim}[deletekeywords={[1]{protrusion}}] -%\DeclareMicrotypeSet[protrusion] -% { myset } -% { encoding = T1, -% family = rm*, -% font = {T1/tt*/m/n/*, -% T1/tt*/m/it/*} } -%\end{verbatim} -% Wie Sie dem Beispiel entnehmen können, ist die Asterisk Notation auch für -% den |font| Schlüssel zulässig. Ein einzelner Asterisk ist äquivalent zu `|*/*/*/*/*|', also dem -% normalen Font. Befehle zur Größenwahl sind auch möglich, allerdings sind keine Bereiche erlaubt. -% -%\medskip\noindent -% Tabelle~\ref{tab:predefined-font-sets} listet die 9 vordefinierten Font Sets auf. -% Diese können ebenfalls aktiviert werden, indem ihr Name an die Optionen -% \opt{protrusion}, \opt{expansion}, \opt{tracking}, \opt{kerning} und -% \opt{spacing} der Features geleitet wird, wenn das Paket geladen wird, z.B.: -%\begin{verbatim} -%\usepackage[protrusion=allmath,tracking=smallcaps]{microtype} -%\end{verbatim} -% -%\begin{table}\microtypesetup{protrusion=false}\small -%\caption{Vordefinierte Font Sets}\label{tab:predefined-font-sets} -%\catcode`\!=13 \def!{\textcolor{thered}{$\varnothing$}} -%\catcode`\/=13 \def/#1/{\textcolor{thegreen}{#1}} -%\def<#1>{\textcolor{theblue}{\acronym{#1}}} -%\setlength\fboxsep{4pt} -%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax -%\fcolorbox{theframe}{white}{^^A -%\begin{minipage}{\textwidth} -%\begin{tabular}{@{}L{65pt}L{80pt}*3{L{41pt}}L{67pt}@{}} -% \footnotesize Set Name -% & \multicolumn{5}{l}{\footnotesize Font attributes}\\ -%\cmidrule{2-6} -% & \footnotesize Kodierung -% & \footnotesize Familie -% & \footnotesize Serie -% & \footnotesize Shape -% & \footnotesize Größe\\ -%\cmidrule(r){1-1}\cmidrule(r){2-2}\cmidrule(r){3-3} -%\cmidrule(r){4-4}\cmidrule(r){5-5}\cmidrule{6-6} -% |all| -% & ! -% & ! -% & ! -% & ! -% & ! \\ -%\cmidrule(r){1-1} -% |alltext|\linebreak(|allmath|) -% & Textkodierungen, \linebreak (, , ) -% & ! -% & ! -% & ! -% & ! \\ -%\cmidrule(r){1-1} -% |basictext|\linebreak(|basicmath|) -% & Textkodierungen \linebreak (, ) -% & /\cmd\rm|*|/,\linebreak /\cmd\sf|*|/ -% & /\cmd\md|*|/ -% & ! -% & /\cmd\normalsize/, /\cmd\footnotesize/, /\cmd\small/, /\cmd\large/\\ -%\cmidrule(r){1-1} -% |smallcaps| -% & Textkodierungen -% & ! -% & ! -% & /\cmd\sc|*|/ -% & ! \\ -%\cmidrule(r){1-1} -% |footnotesize| -% & Textkodierungen, -% & ! -% & ! -% & ! -% & |-|/\cmd\small/\\ -%\cmidrule(r){1-1} -% |scriptsize| -% & Textkodierungen, -% & ! -% & ! -% & ! -% & |-|/\cmd\footnotesize/\\ -%\cmidrule(r){1-1} -% |normalfont| -% & /\cmd\encoding|*|/ -% & /\cmd\family|*|/ -% & /\cmd\series|*|/ -% & /\cmd\shape|*|/ -% & /\cmd\normalsize/\\ -%\bottomrule -%\end{tabular} -%\vskip4pt\footnotesize -% `Textkodierungen' = , , , , , , -%\hfill -% `/\bslash\,\dots|*|/' = `/\bslash\,\dots|default|/' -%\vskip3pt -%\end{minipage}^^A -%}\kern-\dimexpr\fboxsep+\fboxrule\relax ^^A end \fcolorbox -%\end{table} -% -%\medskip -%\Describe{Macro}{\UseMicrotypeSet}{?features,set name} -% Dieses Kommando aktiviert ein vorher durch \cs{DeclareMicrotypeSet} deklariertes Font Set. -% Nutzt man das optionale Argument, so kann man begrenzen, wieviele Features auf das Set angewendet werden. -% Diese Anweisung hat nur einen Effekt, wenn das Features in den Paketoptionen aktiviert wurde. -% -%\medskip -%\Describe{Macro}{\DeclareMicrotypeSetDefault}{?features,set name} -% Falls ein Feature aktiviert ist, aber kein Font Set explizit gewählt wurde, so -% werden die von diesem Befehl deklarierten Sets aktiviert. Standardmäßig wird das `|alltext|' Font -% Set für Zeichenhervorhebungen und zusätzliches Kerning genutzt, das -% `|basictext|' Set für Fontexpansion und Wortzwischenräume und das -% `|smallcaps|' Set für Tracking. -% -%\medskip\noindent -% Diese Anweisungen können nur in der Präambel oder der Hauptkonfigurationsdatei -% verwendet werden. Ihre Bandbreite gilt global für das Dokument. Nur ein Set pro Feature -% kann aktiviert werden. -% -% -%\section{Micro Feinabstimmung}\label{sec:fine-tuning} -% -% Jedes Zeichen bedarf eines bestimmten Betrags an Protrusion, Kerning oder Spacing. -% Es kann ebenso wünschenswert sein, die maximale Expansion bestimmter Zeichen zu -% begrenzen. Überdies, da jeder Font anders aussieht, müssen Einstellungen speziell -% auf eine Schriftart oder ein Set von Fonts zutreffen. Dieses Paket enthält flexible und -% einfache Methoden, um diese feineren Aspekte der Mikrotypographie -% anzupassen. -% -% Alle Anweisungen zur Feinabstimmung folgen prinzipiell derselben Syntax: Sie benötigen alle -% 3 argumente; das Erste ist optional und kann zusätzliche Optionen enthalten; -% im zweiten Argument werden Font Sets spezifiziert, auf welche die Einstellungen angewendet -% werden sollen; das dritte Argument enthält die eigentlichen Einstellungen. -% -% Das Font Set, für welches die Einstellungen greifen sollen, wird mit der selben -% Syntax von \meta{font axis}\,|=|\,\meta{Werteliste} Paaren deklariert wie für das -% Kommando \cs{DeclareMicrotypeSet} (siehe Abschnitt~\ref{sec:font-sets}). Der einzige -% Unterschied liegt darin, dass Werte mit anführendem Asterisk sofort übersetzt werden, -% nicht am Ende der Präambel. -%^^A -%\ifcmr\else\enlargethispage{3\baselineskip}\fi ^^A layout -%\changes{v1.7}{2005/03/23}{remove table of match order}^^A -% Um die passenden Einstellungen für eine gegebene Schriftart zu finden, versucht das Paket alle -% Kombinationen von Fontkodierung, Familie, Serie, Form und Größe, mit abnehmendem -% Stellenwert in dieser Reihenfolge. Existieren zum Beispiel sowohl Einstellungen für die -% momentanen Familien (z.B. |T1/cmr///|) als auch Einstellungen für kursive Fonts mit normalem Gewicht -% (|T1//m/it/|), so würden die Einstellungen für die |cmr| Familie benutzt.\footnote{ -% Für alle Interessierten stellt Tabelle~\ref{tab:match-order} auf -% Seite~\pageref{tab:match-order} die exakte Reihenfolge dar.} -% Die Kodierung muss immer stimmen. -% -%\subsection{Character Protrusion}\label{sub:protrusion} -% -%\Describe{Macro}{\SetProtrusion}{?options,set of fonts,protrusion settings} -% Benutzt man dieses Kommando, so kann man die Protrusionsfaktoren jedes einzelnen Zeichens -% einer Schriftart oder eines Font Sets verändern. Ein sehr unvollständiges Beispiel wäre das folgende: -%\begin{verbatim} -%\SetProtrusion -% { encoding = T1, -% family = cmr } -% { A = {50,50}, -% \textquoteleft = {700, } } -%\end{verbatim} -% Dies würde darin resultieren, dass der Buchstabe `A' um 5\% seiner Breite -% auf beiden Seiten hervorragt; das linke Anführungszeichen würde hier um 70\% seiner Breite zum linken Rand hin -% hervorragen. Angewandt wird das Beispiel auf alle Font Formen, Serien und Größen der -% ~kodierten Computer Modern Roman Familie. -% -%\paragraph{Die Protrusionseinstellungen} -% bestehen aus \meta{Zeichen}\,|=|\,\meta{Protrusionsfaktoren} Paaren. -% -% Die Zeichen können entweder einzeln als solche angegeben werden (`|A|'), -% als ein Symbolkommando (`\cmd\textquoteleft'), oder als Slotnummer: 3 Stellen -% für dezimale Notation, angeführt von~|"| für hexadezimal, mit~|'| für -% oktal (z.B. die `fl' Ligatur in Kodierung:~|029|, |"1D|, |'35|). -% \mbox{8-bit} (und sogar ) Zeichen können direkt oder in -% \LaTeX's traditioneller \mbox{7-bit} Notation eingegeben werden: sowohl |\"A| als auch \expandafter|\"A| -% sind zulässig, vorausgesetzt, dass das Zeichen sowohl in der Input- als auch -% der Fontkodierung deklariert wird. Sie haben ebenfalls die Möglichkeit, Zeichenlisten anzugeben, -% für welche die Einstellungen übernommen werden sollen (siehe Abschnitt~\ref{sub:inherit}). -% -% Die Protrusionsfaktoren weisen einem Zeichen den Betrag zu, -% um den sie zum linken Rand hin (erster Wert) bzw. rechten Rand hin (zweiter Wert) hervorragen -% sollen. Standardmäßig sind die Werte relativ zur Breite des Zeichens zu verstehen, -% sodass ein Wert von 1000 bedeutet, dass das Zeichen vollständig zwischen die Ränder -% gelegt werden sollte, während es z.B. bei einem Wert von 50 -% um 5\% seiner Breite hervorragen würde. Negative Werte sind erlaubt, ebenso Zahlen größer -% als 1000 (effektiv jedoch nicht mehr als 1\,em der Schriftart). -% Sie können jede der beiden Zahlen auslassen, wenn Sie nicht wollen, dass -% das jeweilige Zeichen zu dieser Seite hervorragen sollte. Das abtrennende Komma jedoch -% dürfen Sie nicht auslassen. -% -%\paragraph{Optionen:} -%\begin{options} -% \item[\key{name}] Sie können den Protrusionseinstellungen einen Namen zuweisen, sodass -% Sie in der Lage sind, es aus einer anderen Liste zu laden. -% \item[\key{load}] Sie können eine andere Liste laden (vorausgesetzt, dass Sie dieser zuvor -% einen Namen zugewiesen haben) bevor die aktuelle Liste geladen wird, wodurch die Fonts die -% Werte der geladenen Liste erben. -% \par -% Dadurch kann die Konfiguration beträchtlich erleichtert werden. Sie können -% zum Beispiel eine Standardliste für eine Schriftarte erstllen; Einstellungen für andere -% Formen oder Serien können diese Einstellungen laden, sie erweitern und überschreiben -% (da der jeweils letzte Wert Vorrang hat). Font Einstellungen werden -% rekursiv geladen. -% Die folgenden Optionen werden alle geladenen Listen beeinflussen: -%\changes{v1.8}{2005/06/23}{add example for \texttt{factor} option} -% \item[\key{factor}] Diese Option kann genutzt werden, um alle Protrusionsfaktoren -% der Liste zu beeinflussen, was alle globalen \opt{factor} Einstellungen überschreibt (siehe -% Abschnitt~\ref{sub:options-protrusion}). Wollen sie zum Beispiel, dass Fonts mit größeren Abmaßen -% weniger hervorragen, könnten Sie die normalen Listen laden, allerdings -% könnten Sie kleinere Faktoren darauf anwenden: -%\begin{verbatim} -%\SetProtrusion -% [ factor = 700 -% load = cmr-T1 ] -% { encoding = T1, -% family = cmr, -% size = large- } -% { } -%\end{verbatim} -% \item[\key{unit}] Standardmäßig sind die Protrusionsfaktoren relativ zur Breite -% des jeweiligen Zeichens. Die |unit| Option kann genutzt werden, um dieses Verhalten -% zu überschreiben, sodass \microtype\ diese Werte als Tausendstel der -% angegeben Werte deutet. Gibt man z.B. die Anweisung `|unit=1em|' hätte dies den Effekt, dass -% ein Wert von 50 nun darin resultieren würde, dass ein ein Zeichen um -% 5\% eines em des Fonts hervorragen würde (und somit die interne -% Vermessung von \pdftex's \cmd\lpcode\ und \cmd\rpcode\ primitives simuliert). -% Das normale Verhalten kann mittels |unit=character| wiederhergestellt werden.\footnote{ -% Die |unit| Option kann auch global an das Paket geleitet werden (siehe -% Abschnitt~\ref{sub:options-protrusion}). -% Allerdings werden alle vorliegenden Einstellungen unter der Annahme, -% dass die Werte relativ zur Zeichenbreite sind, erstellt. Deshalb -% sollten Sie es nur ändern wenn Sie sich sicher sind, dass -% die Standardeinstellungen im Dokument nicht verwendet werden.} -% \item[\key{preset}] Setzt die Protrusions Codes aller Zeichen auf die angegebenen -% Werte (|={|\meta{left}|,|\meta{right}|}|), u.U. skaliert mit -% einem |factor|. Eine |unit| Einstellung wird nur berücksichtigt, wenn sie -% nicht |=character| ist. -% \item[\key{inputenc}] Wählt eine Inputkodierung aus, die auf die Liste angewendet -% werden soll, unabhängig von der Eingabekodierung des Dokuments selbst. Sie können jede -% Kodierung angeben, die per \pkg{inputenc} geladen werden könnte, -% also u.a. |ansinew|, |koi8-r|, |utf8|. -% \item[\key{context}] Die Bandbreite der Liste kann auf einen gewissen Kontext limitiert -% werden. Schauen Sie in Abschnitt~\ref{sec:context} für ein Anwendungsbeispiel nach. -%\end{options} -% -% -%\subsection{Fontexpansion}\label{sub:expansion} -% -%\Describe{Macro}{\SetExpansion}{?options,set of fonts,expansion settings} -% Standardmäßig können alle Zeichen eines Fonts um denselben Betrag gestrecht -% oder geschrumpft werden. Man kann aber auch die Expansionslimits für bestimmte -% einzelne Zeichen festlegen, wenn diese sensibler auf Deformation reagieren. Das ist der -% Zweck des \cs{SetExpansion} Kommandos. Beachten Sie, dass dies nur einen Effekt hat, -% wenn das Paket mit der Option \opt{selected} geladen wurde (siehe -% Abschnitt~\ref{sub:options-expansion}). Ansonsten werden die Expansionseinstellungen -% ignoriert~-- anders als die Optionen im optionalen ersten Argument, welche -% trotzdem ausgewertet werden. -% -% Falls das Paket mit der \opt{selected} Option geladen wurde und Einstellungen für einen Font -% nicht existieren, wird Fontexpansion gar nicht auf diesen Font angewendet. -% Sollte die außergewöhnliche Situation aufkommen, dass sie die ausgewählte Expansion -% generell verwenden wollen, aber dass alle Zeichen eines bestimmten Font (Sets) -% um denselben Betrag geschrumpft oder expandiert werden sollten, so müssen sie eine -% leere Liste für diese Fonts erstellen. -% -%\ifcmr\else\enlargethispage\baselineskip\fi ^^A layout -%\paragraph{Die Expansionseinstellungen} -% bestehen aus Paaren der Form \meta{character}\,|=|\,\meta{expansion factor}. -% Sie können eine Zahl für jedes Zeichen festlegen, die den Betrag bestimmt, um den -% ein Zeichen expandiert werden kann. Die Zahlen bezeichnen Tausendstel -% der vollen Expansion. -% Setzt man zum Beispiel den Expansionsfaktor des Zeichens `O' auf 500, -% wird dieses nur um die Hälfte des Betrages geschrumpft oder expandiert, um -% den die anderen Zeichen expandiert werden. -% Während der Standardwert für Character Protrusion auf 0 gesetzt ist -- sofern Sie -% keine Zeichen angegeben haben, wird auch keines hervorspringen ~-- ist der Standardwert -% für Expansion 1000, was bedeutet, dass alle Zeichen um denselben Betrag -% expandiert werden. -% -%\paragraph{Optionen:} -%\begin{options} -% \item[\key{name}, \key{load}, \key{preset}, \key{inputenc}, \key{context}] -% Analog zu \cs{SetProtrusion} kann dieses optionale Argument genutzt werden, -% um einer Liste einen Namen zuzuweisen, eine andere Liste zu laden, alle Expansionsfaktoren -% voreinzustellen, die Eingabekodierung festzulegen oder den Kontext der Liste -% zu bestimmen (Expansionskontexte sind nur möglich mit \pdftex\ -% Version 1.40.4 oder neuer). -%\changes{v1.8}{2005/04/12}{add example of how to get rid of a widow -% (suggested by \contributor Adam Kucharczyk )} -% ^^A private mail, 2005/04/09 -% \item[\key{auto}, \key{stretch}, \key{shrink}, \key{step}] -% Diese Schlüssel können genutzt werden um die globalen Einstellungen der Paketoptionen -% zu überschreiben (siehe Abschnitt~\ref{sub:options-expansion}). Wenn Sie keine -% der Optionen |stretch|, |shrink| und |step| angeben, wird ihr jeweiliger globaler -% Wert genutzt (es findet also keine Berechnung statt). -% -% Ein praktisches Beispiel: Nehmen wir an, wir haben einen Paragraphen, der eine -% Witwe enthält, die man einfach hätte verhindern können, indem man den Font ein wenig -% mehr geschrumpft hätte. In Verbindung mit der |context| Option (siehe Abschnitt~\ref{sec:context} -% für weitere Details) könnte man mit diesem speziellen Paragraphen mehr Expansion erlauben: -%\begin{verbatim}[gobble=2] -% \SetExpansion -% [ context = sloppy, -% stretch = 30, -% shrink = 60, -% step = 5 ] -% { encoding = {OT1,T1,TS1} } -% { } -% % ... END PREAMBLE -% {\microtypecontext{expansion=sloppy}% -% Dieser Paragraph enthält eine `unnötige' Witwe.} -%\end{verbatim} -% Diese Methode, Kontext anzuwenden um vorübergehend verschiedene -% Expansionsparameter zu setzen funktioniert nur mit \pdftex\ 1.40.4 oder neuer -% (für ältere Versionen wird ein schmutziger Trick in -% Abschnitt~\ref{ssec:font-setup} auf Seite~\pageref{exp-hack} beschrieben). Bedenken Sie auch, -% dass \pdftex\ die Nutzung von Fonts mit verschiedenen Expansionslimits oder -stufen -% (sogar für verschiedene Fonts) innerhalb eines Paragraphs verbietet, weswegen -% der saloppe Kontext benutzt werden muss, um Paragraphen zu komplettieren. -% \item[\key{factor}] -% Diese Option stelle eine andere Methode bereit, um Expansionseinstellungen für -% bestimmte Fonts zu verändern, arbeitet aber um die eben beschriebenen Restriktionen herum. Die -% |factor| Option beeinflusst die Expansionsfaktoren aller Zeichen (in -% Kontrast zur allgemeinen Streckbarkeit) des Fonts. Wollten sie z.B. die -% kursive Form weniger expandieren lassen, würden sie vereinbaren: -%\begin{verbatim} -%\SetExpansion -% [ factor = 500 ] -% { encoding = *, -% shape = it } -% { } -%\end{verbatim} -% Die |factor| Option kann nur genutzt werden, um die Streckbarkeit der Zeichen -% zu \emph{verringern}, weshalb sie nur Werte kleiner als 1000 erhalten darf. -% Außerdem kann sie nur für einzelne Fonts oder Font Sets genutzt werden; -% die Option global in den Paketoptionen zu setzen macht wenig Sinn -- -% dafür nutzt man die Optionen \opt{stretch} und -% \opt{shrink} des Pakets. -%\end{options} -% -% -%\subsection{Tracking}\label{sub:tracking} -%\Describe{Macro}{\SetTracking}{?options,set of fonts,tracking amount} -% Eine bedeutende typographische Technik -- welche lange in \TeX\ fehlte -- -% ist die Anpassung des Trackings, sprich die uniforme Addition oder Subtraktion -% von Sperrsatz zu/von allen Zeichen eines Fonts. Zum Beispiel ist es ein -% normal üblicher, typographischer Brauch, komplett in Kapitälchen -% (wie in diesem Dokument) ein wenig zu sperren. Die Lesbarkeit kann auch verbessert -% werden, indem man das Tracking von kleinerer Typen minimal erhöht und das größerer -% Typen minimal erhöht.\footnote{ -% Für Fonts mit vollem Funktionsumfang wie Computer Modern ist das für gewöhnlich -% nicht nötig, da sie in optischen Größen kommen und das Tracking der Kapitälchen -% bereits angepasst ist.} -% Das \cs{SetTracking} Kommando erlaubt, die Menge des Trackings für verschiedene -% Fonts oder Font Sets zu setzen. Es wird vom \cs{textls} Kommando ausgewertet, -% welches genutzt werden kann, um kleinere Textpassagen zu sperren (siehe -% Abschnitt~\ref{sec:lettersp}). -% -%\paragraph{Die Menge des Tracking} -% wird festgelegt in Tausendsteln von 1\,em (oder der gegebenen Einheit); negative Werte -% sind ebenfalls erlaubt. -% -%\paragraph{Optionen:} -%\begin{options} -% \item[\key{name}, \key{unit}, \key{context}] -% Diese Optionen dienen derselben Funktionalität wie bei den vorigen -% Konfigurationskommandos. Die Einheit kann jegliche Dimension annehmen, -% der Standard beträgt 1\,em. -% \item[\key{spacing}] -% Werden die \emph{Zeichen}zwischenräume verändert, müssen auch die \emph{Wort}zwischenräume -% vielleicht angepasst werden. Diese Option erwartet drei Zahlen für Wortzwischenraum, -% bzw. Streckung und Schrumpfung, welche in Tausendsteln eines 1\,em -% angegeben werden (oder in der aktuellen Einheit (\texttt{unit})). Folgt -% einem Wert ein Asterisk, so zeigt es an, dass Tausendstel der jeweiligen -% Fontdimension zu dieser hinzuaddiert werden. Zum Beispiel werden durch -%\begin{verbatim} -%\SetTracking[ spacing = {25*,166, } ]{ encoding = *, shape = sc }{ 25 } -%\end{verbatim} -% die Wortzwischenräume um 2.5\% erhöht, die Streckung wird auf einen Betrag -% von 0.166\,em gesetzt, an den Schrumpf-Einstellungen wird nichts geändert. Falls -% sie die \texttt{spacing} Option nicht angeben, wird der Wortzwischenraum -% über die aktuelle Größe der Sperrsatzabstände skaliert (wie in obigem Beispiel), -% wobei stretch und shrink unberührt bleiben. -% \item[\key{outer spacing}] -% Falls ein Wortzwischenraum direkt auf Sperrsatz folgt (oder umgekehrt), -% wird er standardmäßig gleich den Zwischenräumen im gesperrten Text behandelt. -% Mit dieser Option, welche dieselben Werte wie \texttt{spacing} akzeptiert, -% kann sie unabhängig eingestellt werden. -% \item[\key{outer kerning}] -% Falls andererseits kein Wortzwischenraum folgt oder vorgeht, können Sie -% immer noch die ersten und letzten Buchstaben von angrenzenden Buchstaben -% abtrennen. Diese Option erwartet durch Komma abgretrennte Kerning Beträge -% für die linke und rechte Seite, in Tausendsteln eines 1\,em (oder der aktuellen -% \texttt{unit}). Folgt einem Wert ein Asterisk, bezeichnet dies Tausendstel -% der aktuellen Abstandsgröße des Sperrsatzes. Ein einzelner Asterisk bedeutet -% `|500*|'; das ist ebenso der Standard, sprich die Summe des äußeren Kerns beträgt -% standardmäßig soviel wie die aktuelle Größe der Abstände des Sperrsatzes. Um kerning auf -% beiden Seiten zu entfernen, verwendet man `|outer kerning={0,0}|'. -% \item[\key{no ligatures}] -% Soweit \pdftex\ betroffen ist, werden Ligaturen in gesperrten Fonts -% wie gewöhnlich konstruiert, was angebracht sein kann, wenn das Tracking -% um einen kleinen Betrag geändert wird. Für größere Abstände andererseits -% hätte der normale Abstand zwischen Zeichen innerhalb Ligaturen -% enttäsuchende \textls[150]{E\lslig{ff}ekte}. -% Dieser Schlüssel erwartet eine per Komma abgetrennte Liste von Zeichen, für welche -% die Ligaturen abgeschaltet werden sollen; nur das Zeichen, mit welchem die Ligatur -% beginnt, muss angegeben werden. -% Wird der Schlüssel ohne Wert angegeben, so werden \emph{alle} Ligaturen des Fonts -% abgeschaltet. Das wird jedoch nicht empfohlen, da es ebenso mit sich bringt, dass -% Kerning ausgeschaltet wird.\footnote{ -% Die untrennbare Verbindung von Ligaturen und Kernen ist eine Begrenzung von -% \TeX\, die nicht vor der Einführung \luatex beseitigt wird.} -% Die Standardeinstellungen stellen Ligaturen nur für das Zeichen `|f|' ab, -% sprich, `ff', `fi', ffi', etc.\footnote{ -% Mit \pdftex\ Versions vor 1.40.4 sind \emph{alle} Ligaturen und -% somit jegliches Kerning abgeschaltet. Es wird deshalb empfohlen, wenigstens -% Version 1.40.4 zu nutzen.} -% In außergewöhnlichen Situationen könenn Sie manuell Ligaturen aufbrechen, indem -% sie `|{\kern0pt}|' bzw. \pkg{babel}s \verb="|= -% Kürzel verwenden, oder aber die Ligaturen schützen, indem Sie sie in \cs{lslig} einschließen (siehe -% Abschnitt~\ref{sec:lettersp}). -%\end{options} -% -%\ifx\lssample\undefined -% \fallbacktext{Die originale Dokumentation\footnote{ -% \ctanurl{macros/latex/contrib/microtype/microtype.pdf}.} -% enthält ein Bild, welches all diese Optionen illustriert.} -%\medskip\noindent -% Nehmen wir zum Beispiel an, -%\else -%\changes{v2.3}{2007/11/03}{add letterspacing illustration} -%\medskip\noindent -% 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): -%\begin{verbatim} -%\SetTracking -% [ no ligatures = {"\anchorarrow{nolig}"f}, -% spacing = {60"\anchorarrow{ispace}"0*,-1"\anchorarrow{istretch}"00*, "\anchorarrow{ishrink}"}, -% outer spacing = {4"\anchorarrow{ospace}"50,2"\anchorarrow{ostretch}"50,1"\anchorarrow{oshrink}"50}, -% outer kerning = {"\anchorarrow{okernbegin}"*,"\anchorarrow{okernend}"*} ] -% { encoding = * } -% { 1"\anchorarrow{lsamount}"60 } -%\end{verbatim} -% and then write: -%\begin{verbatim} -%Stop \textls{stealing sheep}! -%\end{verbatim} -% this is the (typographically dubious) outcome: -% -% \lssample -% -%\noindent -% While the word `Stop' is not letterspaced, the space between the letters in -% the other two words is expanded by the \showarrow[tracking]{tracking~amount}{red} -% of 160/1000\,em\,=\allowbreak\,0.16\,em. -% The \showarrow[ispace]{inner~space}{green} within the letterspaced text is -% increased by 60\%, while its \showarrow[istretch]{stretch}{green} amount is -% decreased by 10\% and the \showarrow[ishrink]{shrink}{green} amount is left -% untouched. -% The \showarrow[ospace]{outer~space}{green} (of 0.45\,em) immediately before the -% piece of text may \showarrow[ostretch]{stretch}{green} by 0.25\,em and -% \showarrow[oshrink]{shrink}{green} by 0.15\,em. -% Note that there is no outer space after the text, since the exclamation mark -% immediately follows; instead, the default \showarrow[okern]{outer~kern}{red} -% of half the letterspace amount (0.08\,em) is added. -% Furthermore, one \showarrow{ligature}{grey} wasn't broken up, because we -% neglected to specify the `|s|' in the |no ligatures| key. -% -%\medskip\noindent -% As another, more realistic -%\fi -% Sie wollen alle kleinen Kapitälchen um 50/1000\,em -% sperren, Fonts kleiner \cmd\small\ um 0.02\,em, und das Tracking großer Typen -% um 0.02\,em erhöhen. Sie können das mit folgenden Einstellungen erreichen: -%^^A there's a \nobreakspace ahead! -%\begin{verbatim} -%\usepackage[tracking=true]{microtype} -%\DeclareMicrotypeSet*[tracking]{my} -% { encoding = *, -% size = {-small,Large-}, -% font = */*/*/sc/* } -%\SetTracking[ no ligatures = f ]{ encoding = *, shape = sc}{ 50 } -%\SetTracking{ encoding = *, size = -small }{ 20 } -%\SetTracking{ encoding = *, size = Large- }{ -20 } -%\end{verbatim} -% -%\medskip\noindent -% Gesperrte Schriftarten, für welche keine Einstellungen vorliegen, werden um den -% den Standard von 0.1\,em gesperrt (einstellbar mit der Paketoption \opt{letterspace}, siehe -% Abschnitt~\ref{sub:options-misc}). Setzen wir voraus, ihr Herausgeber will, dass Sie ihre -% 1000 Seiten auf ein Meisterwerk von einer handvoll Seiten zusammenkürzen, dann könnten Sie -% (mit gekreuzten Fingern) \microtype\ laden: -%\begin{verbatim} -%\usepackage[tracking=alltext,letterspace=-40]{microtype} -%\end{verbatim} -% -%\emptypdfpageresources ^^A layers of letterspacing illustration -% -% -%\subsection{Zusätzliches Kerning}\label{sub:kerning} -% -%\Describe{Macro}{\SetExtraKerning}{?options,set of fonts,kerning settings} -% Mit diesem Befehl können sie das zusätzliche Kerning feinabstimmen. Im Vergleich zu -% herkömmlichem Kerning, welches immer mit einem \emph{Paar} von Zeichen assoziiert -% wird, und Tracking, welches den Zwischenraum zwischen \emph{allen} -% Zeichen eines Fonts angibt, bezieht sich zusätzliches Kerning nur auf einzelne Zeichen, -% soll heißen, immer wenn ein bestimmtes Zeichen im Text auftaucht, wird das angegebene -% Kerning eingefügt, unabhängig davon, welche Zeichen vorgehen oder folgen. -% -% Ich sollte nicht versäumen zu sagen, dass es eine Limitierung zusätzlichen Kernings gibt: -% Wörter, die solch einem Kern\emph{direkt folgen} (nicht von einem Leerzeichen getrennt), -% werden nicht mit Bindestrich versehen, solang man die Trennpunkte nicht selbst einstellt, -% z.B. für Kerning nach dem Apostroph `|l'apos\-trophe|'. Diese Restriktion von \pdftex\ -% wird hoffentlich bald abgeschafft. -% -%\paragraph{Die Einstellungen des Kerning} -% werden als Paare der Form \meta{Zeichen}\,|=|\,\meta{Kerning Werte} angegeben, wobei -% letzteres 2 Werte enthätl: das Kerning, welches vor und nach dem betreffenden Zeichen angefügt wird. -% Einmal mehr können Werte ausgelassen werden, nicht aber das Komma. -% -%\paragraph{Optionen:} -%\begin{options} -% \item[\key{name}, \key{load}, \key{factor}, \key{preset}, \key{inputenc}] -% Diese Optionen dienen der gleichen Funktionalität wie in den vorigen -% Konfigurationsbefehlen. -% \item[\key{unit}] Zulässige Werte sind: |space|, |character| und eine -% \meta{Dimension}. Standardmäßig bezeichnen die Werte ein Tausendstel von 1\,em. -% \item[\key{context}] Wenn es um Kerning Einstellungen geht, ist diese Option -% besonders nützlich, da sie erlaubt, Einstellungen abhängig von der Sprache -% anzuwenden. -% \par -% Zum Beispiel kann man die folgenden Einstellungen, angedacht für Dokumente in Französisch, -% in der Hauptkonfigurationsdatei finden: -%\ifcmr\else\pagebreak\fi ^^A layout -%\begin{verbatim}[deletekeywords={[1]{unit}}] -%\SetExtraKerning -% [ name = french-default, -% context = french, -% unit = space ] -% { encoding = {OT1,T1,LY1} } -% { -% : = {1000,}, % = \fontdimen2 -% ; = {500, }, % ~ \thinspace -% ! = {500, }, -% ? = {500, } -% } -%\end{verbatim} -%\changes{v2.3}{2007/11/20}{add kerning sample} -%\ifluatex -% \fallbacktext{Since this document was compiled with |luatex| instead of -% |pdftex|, it does not\\include the sample that the original documentation -% features.} -%\else -% \begin{microtypecontext}{kerning=french} -% Was ist das Ergebnis dieser Einstellungen? Wenn sie aktiv sind wie -% im vorliegenden Paragraphen, wird ein schmales Leerzeichen vor jedem Fragezeichen, -% Ausrufezeichen und Semikolon eingefügt; ein normales Leerzeichen vorm Doppelpunkt. -% In Abschnitt~\ref{sec:context} wird beschrieben, wie diese Einstellungen aktiviert -% werden. Dieser Paragraph wurde eingegeben wie folgt: -% \end{microtypecontext} -%\begin{verbatim}[deletekeywords={[1]{context,activate}}] -%\begin{microtypecontext}{kerning=french} -% Was ist das Ergebnis dieser Einstellungen? Wenn sie aktiv sind wie -% im vorliegenden Paragraphen, wird ein schmales Leerzeichen vor jedem Fragezeichen, -% Ausrufezeichen und Semikolon eingefügt; ein normales Leerzeichen vorm Doppelpunkt. -% In Abschnitt~\ref{sec:context} wird beschrieben, wie diese Einstellungen aktiviert -% werden. Dieser Paragraph wurde eingegeben wie folgt: -%\end{microtypecontext} -%\end{verbatim} -%\fi -%\end{options} -% -% -%\subsection{Wortzwischenräume}\label{sub:spacing} -% -%\Describe{Macro}{\SetExtraSpacing}{?Optionen,Font Set,Spacing Einstellungen} -% Dieser Befehl erlaubt Ihnen, die Wortzwischenräume fein abzustimmen (auch bekannt als -% glue). Eine vorausgehende Bemerkung darüber, was ein `Zwischenraum' ist, könnte angebracht sein: zwischen zwei -% Wörtern fügt \TeX\ sogenannten glue ein, welcher von drei Parametern charakterisiert wird -% -- der normale Abstand zwischen zwei Wörtern, der maximale Abstand, der dem angefügt -% werden darf, und das Maximum welches davon subtrahiert werden kann. -% Die letzteren beiden Parameter wirken wann immer \TeX\ versucht, einen Paragraphen -% in Zeilen zu zerlegen und dabei scheitert; es kann die Räume zwischen Wörtern strecken -% oder schrumpfen. Diese drei Parameter sind spezifisch für jeden Font. -% -% Obendrein beherrscht \TeX\ das Konzept von `space factors'. -% Sie können genutzt werden, um die Räume zwischen bestimmten Zeichen, besonders -% den Satzzeichen zu vergrößern. Falls \pdftex zusätzliche Zwischenräume -% in Betrieb sind, werden space factors ignoriert, da es als Erweiterung -% zu space factors mit viel präziserer Kontrolle betrachtet werden kann. -% -%\paragraph{Einstellungen an den Zwischenräumen} -% werden als Paare der Form \meta{Zeichen}\,|=|\,\meta{Zwischenraum Faktoren} deklariert, wobei -% letztere aus drei Zahlen bestehen: zuerst der zusätzliche Kern, der nach diesem Zeichen -% angefügt wird, wenn es vor einem Wortzwischenraum vorkommt, 2. der zusätzliche Streckungsbetrag -% und zuletzt der zusätzliche Schrumpfbetrag. Alle Werte können auch negativ sein, -% wodurch die Dimensionen verkleinert werden. Nicht alle Werte müssen angegeben werden, -% die Einstellungen müssen jedoch zwei abtrennende Kommas beinhalten. -% -%\paragraph{Optionen:} -%\begin{options} -% \item[\key{name}, \key{load}, \key{factor}, \key{preset}, \key{inputenc}, \key{context}] -% Diese Optionen dienen der gleichen Funktionalität wie in den vorigen -% Konfigurationsbefehlen. -% \item[\key{unit}] Sie können die Einheit wählen, in der die angegebenen Zahlen -% gemessen werden. Mögliche Werte sind: |character|, eine \meta{Dimension} und -% zusätzlich |space|. Letztere Einstellung misst die Werte in Tausendsteln der -% jeweiligen Dimension, die vom Font eingestellt ist. Standardmäßig wird die Einheit -% in Zwischenraumdimensionen gemessen. Mit folgenden (unsinnigen) Einstellungen z.B.: -%\begin{verbatim} -%\SetExtraSpacing -% [ unit = space ] % default -% { font = */*/*/*/* } -% { -% . = {1000,1000,1000}, -% } -%\end{verbatim} -% würde der Raum nach einem Punkt verdoppelt (streng genommen: -% 2\,\texttimes\ \fontdim2),ebenso -% die Schrumpfbeträge der Wortzwischenräume (\fontdim3 und~4). Umgekehrt -% würde man, so alle drei Werte auf \textminus1000 setzt, das Leerzeichen -% nach dem betreffenden Zeichen komplett aufheben. -%\end{options} -% -% -%\subsection{Zeichenvererbung}\label{sub:inherit} -% -% \Describe{Macro}{\DeclareCharacterInheritance} -% {?Features,Font Set,Vererbungslisten} -% In den meisten Fällen sollten akzentuierte Zeichen die Einstellungen ihres -% Ursprungszeichens erben. Zum Beispiel sollten vermutlich alle der Zeichen \`A, \'A, \^A, -% \~A, \"A, \r{A} und \u{A} um denselben (absoluten) Betrag hervorragen wie der -% Buchstabe A. Nutzt man den Befehl \cs{DeclareCharacterInheritance}, -% so kann man Klassen von Zeichen benennen, wodurch man nur das betreffende -% Grundzeichen einstellen muss. Mit dem zusätzlichen Argument, welches eine per -% Komma abgetrennte Liste von Features enthalten kann, können Sie die Reichweite -% der Liste beschränken. Zusätzlich dazu akzeptiert es den |inputenc| Schlüssel, um die Eingabekodierung -% für diese Liste einzustellen. Das Font Set kann wie üblich eingestellt werden. -% Die einzige Ausnahme hierbei ist, dass exakt eine Kodierung gewählt werden muss. Die Vererbungslisten -% werden als Paare der Form \meta{base character}\,|=|\,\meta{Liste der erbenden -% Zeichen} deklariert. Solange Sie keine abweichende Kodierung oder einen sehr eigenartig -% geformten Font verwenden, sollte es keinen Grund geben, die standardmäßigen Vererbungseinstellungen -% zu ändern. -% -%\bigskip\noindent -% In der Hauptkonfigurationsdatei \file{microtype.cfg} und den anderen -% font-spezifischen Konfigurationsdateien können Sie Beispiele zu all -% diesen Befehlen finden. -% -% -%\subsection{Konfigurationsdateien}\label{sub:config-file} -% -% Die Standardkonfiguration beinhaltet Vererbungseinstellungen, Deklarationen von -% Font Sets und alias Fonts sowie generische Hervorragung, Expansion, Spacing und -% Kerning Einstellungen, und wird aus der Datei \file{microtype.cfg} geladen. Sie können -% diese Datei mit eigenen Einstellungen erweitern (oder eine andere Konfigurationsdatei -% mit der `\opt{config}' Option laden, siehe Abschnitt~\ref{sub:options-misc}). -% -% Wenn Sie den Weg einschlagen, neue Einstellungen für eine Fontfamilie zu treffen, sollten Sie -% diese in eine separate Datei stecken, deren Name `|mt-|\meta{Fontfamilie}|.cfg|' -% (z.B. `\file{mt-cmr.cfg}') lauten muss, und welche alle Befehle enthalten muss, -% die in diesem Abschnitt~\ref{sec:fine-tuning} beschrieben. Diese Dateien werden -% automatisch geladen, wenn sie die betreffenden Fonts tatsächlich nutzen. -% Das Paket kommt mit mit Konfigurationsdateien für eine Reihe von Fontfamilien; -% Tabelle~\ref{tab:fonts} enthält sie alle. -% -%\begin{table}[t]\small -%\changes{v1.6a}{2005/02/02}{add table of fonts with tailored protrusion settings} -%\caption{Fonts mit zugeschnitten Hervorragungseinstellungen}\label{tab:fonts} -%\setlength\fboxsep{4pt} -%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax -%\fcolorbox{theframe}{white}{^^A -%\begin{minipage}{\textwidth} -%\def\arraystretch{1.2} -%\long\def\@makefntext#1{% -% \leftskip 0pt -% \parindent 0pt -% \everypar{\parindent 0pt}% -% \leavevmode\hbox to 15pt{\@thefnmark\hss}#1} -%\let\footnoterule\relax -%\def\fnref#1{\textsuperscript{\itshape\ifpdf\ref*{#1}\else\ref{#1}\fi}} -%\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}*3l@{}} -% \footnotesize Fontfamilie ( code) -% & \multicolumn{2}{l}{\footnotesize Features}\\ -%\cmidrule{2-3} -% & \footnotesize Kodierungen -% & \footnotesize Formen\\ -%\cmidrule{1-1}\cmidrule{2-2}\cmidrule{3-3} -% Generic -% & , , , , , ()\footnote{Unvollständig\label{fn:incmpl}} -% & n, (it, sl, sc)\fnref{fn:incmpl} \\ -% Computer Modern Roman (|cmr|)\footnote{Alias: Latin Modern (|lmr|), -% \pkg{ae} (|aer|), \pkg{zefonts} (|zer|), -% \pkg{eco} (|cmor|), \pkg{hfoldsty} (|hfor|)} -% & , , , , , , -% & n, it, sl, sc \\ -% Bitstream Charter (|bch|)\footnote{Alias: \pkg{mathdesign}/Charter (|mdbch|), -% MicroPress's \pkg{chmath} (|chr|)} -% & , , , , -% & n, it, (sl)\footnote{Einstellungen vererbt von kursiver Form\label{fn:it-sl}}, sc \\ -% Adobe Garamond (|pad|, |padx|, |padj|) -% & , , , -% & n, it, (sl)\fnref{fn:it-sl}, sc \\ -% Garamond (|ugm|)\footnote{Alias: \pkg{mathdesign}/ Garamond (|mdugm|)} -% & , , -% & n, it\\ -% Bitstream Letter Gothic (|blg|)\footnote{Alias: \pkg{ulgothic} (|ulg|)} -% & , , -% & n, it \\ -% Adobe Minion (|pmnx|, |pmnj|) -% & , , , , -% & n, it, (sl)\fnref{fn:it-sl}, sc, si\\ -% Palatino (|ppl|, |pplx|, |pplj|)\footnote{Alias: \pkg{pxfonts} (|pxr|), -% \pkg{qfonts}/QuasiPalatino, \TeX\ Gyre Pagella (|qpl|), -% Neu (|fp9x|, |fp9j|)} -% & , , , , ()\fnref{fn:incmpl} -% & n, it, (sl)\fnref{fn:it-sl}, sc \\ -% Times (|ptm|, |ptmx|, |ptmj|)\footnote{Alias: \pkg{txfonts} (|txr|), -% \pkg{qfonts}/QuasiTimes, \TeX\ Gyre Termes (|qtm|)} -% & , , , , , ()\fnref{fn:incmpl} -% & n, it, (sl)\fnref{fn:it-sl}, sc \\ -% Computer Modern math (|cmsy|, |cmm|) -% & / -% & n/it \\ -% symbols (|msa|, |msb|) -% & -% & n\\ -% Euler (|eur|, |eus|, |euf|)\footnote{Alias: \pkg{eulervm} (|zeur|, |zeus|)} -% & -% & n\\ -% Euro symbols (Adobe, , \pkg{marvosym}) -% & / -% & n, it \\ -%\bottomrule -%\end{tabular*}^^A -%\end{minipage}^^A -%}\kern-\dimexpr\fboxsep+\fboxrule\relax ^^A end \fcolorbox -%\end{table} -% -%\medskip -%\Describe{Macro}{\DeclareMicrotypeVariants}{list of suffixes} -%\DescribeMacro{\DeclareMicrotypeVariants*} -% Auf seiner Suche nach einer Konfigurationsdatei versucht das Paket auch, -% Suffixe oder einen oder mehr Buchstaben von einem Fontnamen zu entfernen, welche auf eine `Variante' -% des Basisfonts hindeuten könnten (vergleiche Karl Berrys \cite{fontname}). Das erlaubt z.B., -% Einstellungen für z.B. die Fonts |padx| (Experten Set), |padj| (altertümliche Numerale) -% und |pad| (einfach) in der selben Datei \file{mt-pad.cfg} vorzunehmen. -% Der Befehl erwartet eine durch Komma abgetrennte Liste von Suffixen für Varianten. Die Version -% mit Stern hängt die Suffixe der existierenden Liste an. Die Standard-Deklaration -% in \file{microtype.cfg} lautet: -%\begin{verbatim} -%\DeclareMicrotypeVariants{x,j,w,a,d,0,1} -%\end{verbatim} -% -%\medskip -%\Describe{Macro}{\DeclareMicrotypeAlias}{Fontname,alias Font} -% Dieser Befehle kann für Fonts genutzt werden, die sich sehr ähnlich -% oder gar gleich sind (falls sie sich zum Beispiel nicht an das Berry Namensgebungsschema beim -% Installieren der Fonts hielten). Ein Beispiel wären die Latin Modern Fonts, welche -% von Computer Modern abgeleitet sind, sodass es nicht notwendig ist, neue Einstellungen -% für diese vorzunehmen -- man könnte sagen: -%\begin{verbatim} -%\DeclareMicrotypeAlias{lmr}{cmr} -%\end{verbatim} -% wodurch das Paket -- wann immer der Font |lmr| vorkommt und keine Einstellungen -% dafür gefunden werden können -- auch den Font |cmr| ausprobiert. Tatsächlich werden Sie -% eben diese Zeile (mit einigen anderen) in der Standardkonfigurationsdatei vorfinden. -% -%\medskip -%\Describe{Macro}{\LoadMicrotypeFile}{Fontname} -% In wenigen Fällen kann es nötig sein, eine Fontkonfigurationsdatei manuell -% zu laden (z.B. aus einer anderen Konfigurationsdatei heraus), oder in der Lage -% zu sein, in einer Datei festgelegte Einstellungen zu erweitern, die sonst -% nicht automatisch oder zu spät geladen würden.\footnote{ -% Authoren von Fontpaketen sollten vielleicht einen Blick auf den hook -% \cs{Microtype@Hook} werfen, beschrieben im Implementationsteil, -% Abschnitt~\ref{sub:hook}.} -% Dieser Befehle lädt die Datei `|mt-|\meta{Fontname}|.cfg|'. -% -% -%\section{Kontext-sensitive Einstellungen}\label{sec:context} -% -% Das \microtype\ -Paket erlaubt zudem verschiedene Mikro-typografische -% Einstellungen für die Schriftarten, die vom Zusammenhang abhängig sind, zu -% verwenden. -% Dies eröffnet unendlich viele Möglichkeiten der Feinabstimmungen für das Aussehen -% des Dokuments. -% -%\medskip -%\Describe{Macro}{\microtypecontext}{context assignments} -% Dieser Befehl kann überall im Dokument (auch in der Präambel) verwendet werden, -% um den Mikro-typografischen Zusammenhang in der aktuellen Gruppe zu ändern. -% Zu jeder Funktion (\key{protrusion}, \key{expansion}, \key{tracking}, -% \key{spacing} und \key{kerning}), kann ein Kontext zugewiesen werden. Folglich -% können nur Einstellungen mit dem entsprechenden 'Kontext'-Schlüsselwort verwendet -% werden. -% -%\medskip -%\Describe{Env}{microtypecontext}{context assignments} -% Wieviele andere \LaTeX\ -Befehle ist der Befehl, in Form einer Umgebung -% verfügbar. -% -%\medskip -%\Describe{Macro}{\textmicrotypecontext}{context assignments,general text} -% Als weitere Möglichkeit, ändert der Befehl \cs {textmicrotypecontext} den -% Kontext für den Text, der im zweiten Argument übergeben wird. -% -%\changes{v1.9c}{2006/01/25}{add example of how to increase protrusion of footnote markers -% (suggested by \contributor Georg Verweyen )} -% ^^A private mail, 2006/01/25 -%\medskip\noindent -% Angenommen, Sie möchten eine größere Menge von Fussnotenzeichen im Text -% erhalten, dann können die Einstellungen der Zahlen so definieret werden -%\begin{verbatim} -%\SetProtrusion -% [ context = footnote ] -% { font = */*/*/*/scriptsize } % adapt if necessary -% { 1 = { ,650}, 2 = { ,400}, 3 = { ,400}, 4 = { ,400}, 5 = { ,400}, -% 6 = { ,400}, 7 = { ,500}, 8 = { ,400}, 9 = { ,400}, 0 = { ,400} } -%\end{verbatim} -%\ifcmr\else\enlargethispage{2\baselineskip}\fi ^^A layout -% um damit den Kontext im Fussnoten-Befehl zu ändern. Dieser Befehl -% unterscheidet sich zwischen den verscheidenen Klassen. Für die Basisklassen z.B, % \pkg{article}, wäre es: -%\begin{verbatim} -%\newcommand*\new@makefnmark{\hbox{\@textsuperscript{\normalfont -% \microtypecontext{protrusion=footnote}\@thefnmark}}} -%\renewcommand*\@footnotemark{% -% \leavevmode \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi -% \new@makefnmark \ifhmode\spacefactor\@x@sf\fi \relax} -%\end{verbatim} -% Für die \pkg{memoir} Klasse, müssten Sie zusätzlich die automatische Erkennung -% mehrerer Fussnoten deaktivieren, welches ein hervorheben des Fussnotentextes -% verhindert. -%\begin{verbatim} -%\renewcommand*\@makefnmark{\hbox{\@textsuperscript{\normalfont -% \microtypecontext{protrusion=footnote}\@thefnmark}}} -%\let\m@mmf@prepare\relax -%\let\m@mmf@check\relax -%\end{verbatim} -% ^^A For other classes, the command would have to be changed in a similar way. -% -%\medskip\noindent -% Eine weitere Möglichkeit wäre es den Kontext für eine sprachabhängige Einstellung -% zu verwenden. -% Zum Beispiel, wenn Sie einen Text auf Französisch schreiben, können Sie -%\begin{verbatim} -%\microtypecontext{kerning=french} -%\end{verbatim} -% in der Präampel hinzufügen. Das hätte den Effekt, dass die -% Abstandseinstellungen des französischen Kontextes, für das Dokument übernommen würden. Sollten Teile des Dokuments in Englisch sein, könnten Sie schreiben -%\begin{verbatim} -%\textmicrotypecontext{kerning=}{English text!} -%\end{verbatim} -% um den Kontext zurückzusetzen, so dass die Interpunktion in diesen -% Teilen kein extra Zeichenabstand erhalten. -% -% Anstatt diese Befehle manuell zu Ihrem Dokument hinzuzufügen, können Sie -% \microtype\ auch mit der \opt {Babel}-Funktion laden -% (siehe Abteilung~\ref{sub:options-misc}). -% Die aktuelle Sprache wird dann automatisch erkannt und der Kontext -% dementsprechend angepasst. -% -%\medskip -%\Describe{Macro}{\DeclareMicrotypeBabelHook} -% {list of \pkg{babel} languages,context list} -% Natürlich kennt \microtype\ nicht jede typografische Besonderheit, jeder einzelen -% Sprache. -% Dieser Befehl ist ein Mittel, um zu lehren, wie man den Kontext anpassen -% kann, wenn eine bestimmte Sprache ausgewählt ist. Die Hauptkonfigurationsdatei -% enthält unter anderen die folgende Deklaration: -%\begin{verbatim} -%\DeclareMicrotypeBabelHook -% {french,francais,acadian,canadien} -% {kerning=french, spacing=} -%\end{verbatim} -% Folglich, wann immer Sie auf französische Sprache umschalten, wird die -% Abstandseinstellung im Kontext auf `|französisch|' geändert und der -% Abstandskontext zurüchgesetzt. -% Dieser Effekt greift nur dann, wenn das Paket mit der \opt {babel} Option geladen % wurde. Derzeit unterstützt \microtype\ französische, türkische und englische -% Buchstabenabstände (auch bekannt als \cmd\nonfrenchspacing). Für unbekannte -% Sprachen werden alle Kontexte zurückgesetzt. - -% -%\section{Erneute Betrachtung der Funktion Letterspacing}\label{sec:lettersp} -% -%\Describe{Macro}{\textls}{?amount,general text} -%\DescribeMacro{\textls*} -%\DescribeMacro{\lsstyle} -% Während die \opt{tracking} Funktion, die im Abschnitt~\ref{sub:tracking} -% beschrieben wurde, für Sätze von Schriftarten gilt, können sie letterspace -% benutzen um kürzere Stücke des Textes zu erzeugen, unabhängig von der Schriftart -% in dem sich der Schriftsatz befindet.\footnote{ -% Letterspacing sollte vorsichtig verwendet werden, insbesondere der -% Zeichenabstand der Kleinbuchstaben wird mit Abscheu von einigen Typpgrafen -% betrachtet. Falls sie wissen was sie tun, sollten Sie vielleicht kleine Kapitel % oder oder alle Kapitel nutzen. Eine andere Eigenschaft kann zur Betonung in -% Texten von Schriftarten verwendet werden.} -% Für solche Ad-hoc-Zeichenabstände, bestizt \microtype\ zwei Befehle, (unabhängig -% davon, ob die |tracking| Option aktiviert ist) die auf die gleiche Weise -% verwendet werden können wie die \LaTeX-Befehle: \cs{textls} -- welches auch im -% Mathemodus funktioniert -- erwartet der Text im notwendigen Argument, während -% \cs{lsstyle} `letterspacing' für alle nachfolgenden Schriften bis zum Ende der -% aktuellen Gruppe aktiviert wird. Die Favoriten-Version von \cs{textls} fügt keine % zusätzlichen Buchstabenabstände, vor oder nachdem Text ein, was für z.B -% Absatztitel nützlich sein kann. -% Standardmäßig wird jedes Zeichen mit 100/1000 \,em \,= \,0.1 \,em von einander -% getrennt, dieser Betrag kann im optionalen Argument von \cs {textls}, durch -% Verwendung des \cs {SetTracking} Befehl oder global über die \opt {letterspace} -% Paketoption, geändert werden, mit abnehmender Signifikanz in dieser Reihenfolge. -% -%\medskip -%\Describe{Macro}{\lslig}{ligature} -% Seitdem die Befehle \cs{textls} und \cs{lsstyle} auch die -% `\texttt{no ligatures}'-Schlüssel für die entsprechenden Schriftarten auswerten, -% brauchen Sie sich keine Gedanken mehr über das Schützen oder Trennen von Liganten % in den meisten Schriftarten zu machen. Jedoch, in bestimmten Situationen, kann es % zu einem Konflikt der Liganten, welche mit den gleichen Buchstaben beginnen, -% kommen, wobei einige von diesen verhindert werden sollten, während das bei -% anderen nicht geschehen soll. Beim letterspacing von Texten mit Textschriftsatz -% in Frakturschriftarten, sollen zum Beispiel, die Liganten 'ch', 'ck', 'tz' und -% 'sz' ~(`\textfrak {sz}') niemals getrennt werden, normalerweise sieht man auch -% 'St.' ~(`\textfrak {St.}') Liganten im letterspacing-Text. Darüber hinaus -% realisiert das \pkg{yfonts} Paket das kurze ~s~(`\textfrak{s:}') als den -% Liganten~`|s:|' andererseits, wenn der `ct'~Ligant und die anderen `lang~s' -% Liganten in Frakturschriftarten gefunden werden, unterdrückt werden. -% Es gibt zwei Wege dieses Problem zu lösen: Entweder deaktivieren Sie nicht die -% "`| s | und/ oder | c |" Ligaturen und -% trennen diejenigen, die getrennt werden müssen durch das Einfügen von -% `|{\kern0pt}|' oder \pkg{babel}'s Abkürzung oder deaktivieren Sie diese -% und schützen jene Liganten welche geschützt werden müssen, durch umschließen mit % dem \cs{lslig} Befehl. Damit liefern folgende Lösungen das gleiche Ergebnis -% (nämlich, `\textfrak{\lsstyle Aus:s{\kern0pt}ichts:los{\kern0pt}igkeit}'). -% -%\begin{verbatim}[morekeywords={[0]{\kern}}] -%\SetTracking[no ligatures={f}]{encoding = LY, family = yfrak}{100} -%\textfrak{\lsstyle Aus:s{\kern0pt}ichts:los{\kern0pt}igkeit} -%\end{verbatim} -%\begin{verbatim} -%\SetTracking[no ligatures={f,s,c}]{encoding = LY, family = yfrak}{100} -%\textfrak{\lsstyle Au\lslig{s:}si\lslig{ch}t\lslig{s:}losigkeit} -%\end{verbatim} -% -%\bigskip\noindent -%\DescribePackage{letterspace} -% Diese drei Befehle (mitsamt der \opt{letterspace} -Option, beschrieben in -% Abschnitt~\ref{sub:option-tracking}) sind auch in dem alternativen -% \letterspace\ Paket enthalten, welches ansich eine sehr stark abgespeckte Version % von \microtype\ ist, das eine Unterstützung für alle anderen Erweiterungen -% weglässt (zudem wurden die Möglichkeiten des \cs{SetTracking} Befehls weggelassen % und alle `|f|' Liganten werden deaktiviert, innere und äußere Abstände und der -% äußere Buchstabenabstand wurden auf ihre Standartwerte zurückgesetzt, so wie in -% Abschnitt~\ref{sub:tracking} beschrieben). Wenn Sie es bevorzugen auf -% \microtype's Besonderheiten zu verzichten, können Sie stattdesen das -% \letterspace\ Paket laden. Beide Pakete können nicht zur gleichen Zeit benutzt -% werden. -% -% Im Gegensatz zu \microtype, welches \LaTeX\ verlangt, arbeitet das \letterspace\ -% Paket auch mit \pkg{eplain} oder auch nur mit \pkg{miniltx}: beim Gebrauch von -% \pkg{eplain}, laden Sie das Paket mit \cmd\usepackage\ innerhalb -% \cmd\beginpackages~\dots\ \cmd\endpackages\ Umgebung, für \pkg{miniltx} -% (welches die Paketoptionen nicht unterstützt) einfach mit \cmd\input\ -% \file{letterspace.sty} laden. -% -% -%\section{Deaktivieren von Ligaturen(Bindungen)}\label{sec:disable-ligatures} -% -%\Describe{Macro}{\DisableLigatures}{?characters,set of fonts} -% Beim vollständigen Deaktivieren aller Liganten einer Schriftart (welches auch -% Kerning für diese Schriftart ausschaltet, senkt \textit{lowers} absichtlich die -% mikro-typografische Qualität des Textes, anstatt diese zu erhöhen, dies ist -% speziell für Schreibmaschine-Schriftarten nützlich, so dass, z.B. in einer -% kodierten Schriftart, `|\texttt{--}|' natürlich als `|--|', nicht als -% `\texttt{--}'gedruckt wird. \cs{DisableLigatures} kann dazu verwendet werden, um % auf gewöhnlichem Weg, eine Reihe von Schriftarten zu spezifizieren, für welche -% Liganten deaktiviert sein sollen, z.B für die Schriebmaschinenschrift kodiert in : -%\begin{verbatim} -%\DisableLigatures{encoding = T1, family = tt* } -%\end{verbatim} -% Es ist auch möglich nur ganz bestimmt Liganten zu deaktivieren. Das optionale -% Argument, kann eine durch Komma getrennte Liste von Zeichen enthalten, für die -% der Ligantenmechanismus unterbunden werden soll: -%\begin{verbatim} -%\DisableLigatures[?,!]{encoding = T1} % "\ifx\tagcode\undefined\else ^^A -% \normalfont\color{thegrey}inhibit ?` and !`, but not fi, --, >>, etc.\fi" -%\end{verbatim} -% Dabei ist der Buchstabe, mit dem der Ligant beginnt von Bedeutung. Dieser Befehl -% kann nur in der Präampel verwendet werden und auch nur einmal. Der Befehl -% fortert \pdftex\ 1.30 oder eine aktuellere Version. -% -% -%\section{Hinweise und Warnungen}\label{sec:caveats} -% -%\paragraph{Verwenden Sie Einstellungen, die zu Ihrer Schriftart passen.} -% Obwohl die Standardeinstellungen akzeptable Ergebnisse für die meisten Schriften -% liefern sollten, kann es sein das die spezielle Schriftart, welche Sie gerade -% verwenden, verschiedene Schriftformen hat, so dass mehr oder weniger Hervorhebung -% oder Vergrößerungen erforderlich sind. Insbesondere kursive Schriftformen -% können sich deutlich in unterschiedlichen Schriftarten unterscheiden, deshalb -% habe Ich mich dageben entscheiden Standarthervorhebungseinstellungen für diese -% anzubieten. Die Datei \file{test-microtype.tex} kann eine Hilfe, beim anpassen -% der Hervorhebungseinstellungen für eine Schriftart sein. -% -%\paragraph{Verwenden Sie keinen zu großen Wert für die Vergrößerung.} -% Font-expansion (Schriftartenvergrößerung) ist eine Funktion, welche die -% typographische Qualität des Dokuments verbessern soll, indem sie eine -% gleichmäßige Graustufe des Textblocks erzeugt (und potenziell die Verringerung -% der Zahl der erforderlichen Silbentrennungen). -% Wenn die Erweiterung oder Verkleinerung einer Schrift zu groß -% oder zu klein wird, so wird der Effekt ins Gegenteil gewandelt. Die Vergrößerung -% der Schriftarten um mehr als 2\%, d.h. der Wert der Einstellung \opt{Strecken} -% größer als 20 ist, erfordert ein geschultes Auge. -% Wenn Sie das Glück haben und im Besitz von mehreren Kopien einer -% multiplen Master-Schriftart sind, können Sie die Vergrößerungsgrenze bis -% auf 4\% erhöhen. -% -%\changes{v2.0}{2006/12/13}{Hinweis für Web-Dokumente im Hinblick auf ältere \pdftex\ Versionen} -%\paragraph{Verwenden Sie keine Schriftartvergrößerung für Web-Documente (mit -% älteren \pdftex\ Versionen).} -% Mit \pdftex\ Versionen die älter als die 1.40 Version sind, wird jede vergrößerte % Kopie der Schriftart in der Datei eingebettet, folglich kann die -% Dateigröße stark zunehmen (abhängig von Vergrößerungsgrenze und -schritt). -% Deshalb, für die Zuvorkommenheit und für Sparsamkeit der Bandbreite, aktivieren -% Sie nicht die Schriftartenvergrößerung, beim Erstellen von Datein die -% elektronisch verteilt werden. Mit \pdftex\ 1.40, -% welches eine andere Technik der Vergrößerung nutzt, kann die Erhöhung der -% Dateigröße vernachlässigt werden. -% -%\changes{v2.2}{2007/07/06}{add hint about extra leader dot -% (first discovered by \contributor Morten H\o gholm )} -% ^^A private mail, 2006/08/26 -%\paragraph{Möglicherweise möchten sie Hervorhebungen im Inhaltsverzeichnis deaktivieren.} -% In unglücklichen Fällen, könnte die aktivierte Hervorhebung, die Längenlinie im im Inhaltsverzeichnis und ähnliche Listen auf eine Weise verändern, so dass ein Excess-Leader Punkte einfügeführt werden muss. Die Lösung ist Hervorhebungen vorübergehend im Inhaltsverzeichnis zu deaktivieren: -%\begin{verbatim} -%\microtypesetup{protrusion=false} -%\tableofcontents -%\microtypesetup{protrusion=true} -%\end{verbatim} -% -%\changes{v1.9}{2005/07/10}{Hinzufügen von Hinweisen in \texttt{verbatim} Umgebungen} -%\todo{introduce option to patch \texttt{verbatim}} ^^A for Karl -%\paragraph{Möglicherweise möchten Sie die Hervorhebungen in der \texttt{verbatim} % Umgebung deaktivieren.} -% Wie Sie bereits wissen, wird \microtype\ standartmäßig die Zeichenhervorhebung in % allen Schriftarten aktiviert, die im Schriftartenset `|alltext|' enthalten sind. % Das schließt auch die Schreibmaschinenschrift mit ein. Obwohl es wirklich Sinn -% macht, die Schreibmaschine-Schriftart hervorzuheben, wenn Sie im laufenden Text -% erscheint (wie, zum Beispiel, in diesem Handbuch), ist dies wahrscheinlich nicht -% wünschenswert innerhalb der |verbatim| Umgebung. Jedoch hat -% \microtype\ kein Wissen über den Kontext, in dem eine Schriftart steht, dies wird % allein durch die Bestimmung der Attribute entschieden. -% Deshalb müssen Sie sich um die Deaktivierung der Hervorhebung in der |verbatim| -% Umgebung, selbst kümmern (d.h wenn Sie Hervorhebungen in der -% Schreibmaschinenschrift, nicht durch auswählen eines anderen Schriftsatzes -% insgesamt deaktivieren wollen). Obwohl der \cs{microtypesetup} Befehl natürlich % für Fälle wie diesen entwickelt wurde, könnten Sie es -% anstrengend finden ihn jedesmal zu wiederholen, wenn Sie ihn in der |verbatim| -% Umgebung öfters nutzen. Die folgende Zeile, die der Präampel hinzugefügt wird, -% hätte den selben Effekt: -%\changes{v2.3e}{2009/07/21}{suggest to patch \cmd\@verbatim\ instead of \cmd\verbatim} -%\begin{verbatim} -%\g@addto@macro\@verbatim{\microtypesetup{activate=false}} -%\end{verbatim} -% Falls sie das \pkg{fancyvrb} oder das \pkg{listings} Paket verwenden, ist dies -% nicht notwenig, da diese so konzipiert sind, das Sie in der entsprechenden -% Umgebung, die Hervorhebung in jedem Fall hemmen. -% -%\changes{v1.9e}{2006/07/10}{add hint about unknown encodings} -%\paragraph{Einstellungen für Griechisch/Thailändisch/Amerikanisch usw. Kodierungen -% sind bis jetzt noch nicht inbegriffen.} -% Die Standartsätze von Schriftarten, für welche die mikro-typrografischen -% Funktionen aktiviert werden (siehe Tabelle~\ref{tab:predefined-font-sets}), -% enthalten nur die Kodierungen für die auch Konfigurationen existieren. Deshalb, % wenn Sie eine andere Kodierung verwenden (z.B. , , etc.), wird -% \microtype\ nicht auf diese Schriftarten anwendbar sein. Sie müssen einen neuen -% Schriftsatz, einschließlich der Kodierung, definieren und aktivieren um Sie -% benutzen zu können(weitere Details, siehe -% Abschnitt~\ref{sec:font-sets}). Spätestens für die Hervorhebungen müssten Sie -% Einstellungen für die Schriftarten die in Frage kommen erstellen (siehe -% Abschnitt~\ref{sub:protrusion}). -% Selbstverständlich sind Beiträge für diese Art von Kodierung mehr als willkommen. -% -%\paragraph{Nehmen Sie nur dann Kerning-Anpassungen vor, wenn es üblich in der typografischen Tradition der Sprache ist.} -% Im Gegensatz zu Hervorhebung und der Vergrößerung, trägt zusätzliche Kerning -% nicht unbedingt zur Verbesserung der mikro-typographische Qualität des Dokuments % bei. Sie sollten das zusätzliche Kerning nur aktivieren, wenn Sie ein Dokument in % einer Sprache schreiben, dessen typografische Tradition ein solches Kerning -% garantiert. Wenn Sie zum Beispiel einen englischen Text schreiben, würden die -% Leser durch zusätzliche Leerzeichen vor dem Satzzeichen verwirrt werden. -% -%\changes{v2.3c}{2008/10/27}{add hint about spacing being experimental} -%\paragraph{Anpassung der Zwischenwortabstandes befindet sich noch in einem -% experimentellen Stadium.} -% Die Umsetzung dieser Eigenschaft in \pdftex\ ist nicht vollständig und kann zu -% den positiven Auswirkungen, auf die typographische Qualität, die Sie eventuell -% erwarten, nicht beitragen. In bestimmten Situationen kann es sogar zu -% unerwünschten Nebenwirkungen kommen. -% Deshalb, sollte die \opt {Abstand}option nicht blind gewählt werden. Es wird -% empfohlen mit den Einstellungen zu experimentieren, um zuverstehen wie die -% Eigenschaften funktionieren. -% -%\changes{v1.7}{2005/03/23}{add hint about compatibility} -%\paragraph{Kompatibilität und Interaktion mit anderen Paketen:} -% Das \microtype\ -Paket sollte sehr gut mit anderen -% \LaTeX\ -Paketen zusammen arbeiten (ausgenommen von \pkg{pdfcprot}). Jedoch da -% das Leben nicht perfekt ist, sind Probleme zu erwarten. Momentan sind folgende -% Probleme bekannt: -%\begin{itemize} -% \item Wenn Sie 8-Bit-Zeichen in der Konfiguration verwenden möchten, müssen Sie % zuerst das Paket \pkg{inputenc} laden. Das Verwenden von Unicode wird -% ebenfalls unterstützt (wenn Sie \pkg{inputenc} mit der |utf8| oder |utf8x| % option laden). -% Bei der Verwendung von mehreren Input-Kodierungen in einem Dokument, -% werden 8-Bit-Zeichen in den Einstellungen nur zuverlässig funktionieren, -% wenn Sie den |inputenc| Schlüssel spezifizieren. -%\changes{v2.3a}{2008/02/25}{add hint about \pkg{babel} having to be loaded first} -% \item Beim Laden des Pakets mit der \opt{babel}-Option, sollten Sie das -% \pkg{babel}-Paket vor \microtype\ laden. -%\changes{v2.3c}{2008/11/11}{add hint about partial incompatibility with \pkg{CJK}} -% \item Es ist derzeit nicht möglich, Charakter-spezifische Einstellungen für -% chinesische\slash japanischen\slash koreanischen Schriften zu erstellen. -% Deshalb, ist die einzige mikro-typografische Erweiterung, die mit dem -% \pkg {CJK} Paket arbeiten kann, die Schriftartvergrößerung. -%\end{itemize} -% -%\changes{v1.8}{2005/06/23}{add hint about error messages} -%\paragraph{Mögliche Fehlermeldungen und wie man diese beseitigt:} -%\begin{itemize} -%\lstset{deletekeywords={[1]{expansion,auto}},belowskip=-\smallskipamount,frame=none, -% xleftmargin=0pt,backgroundcolor=,basicstyle=\MacroFont\footnotesize} -%\changes{v1.9a}{2005/11/15}{add explanation for error message in mode} -% \item -%\begin{verbatim} -%! Font csnameendcsname=cmr10+20 at 10.0pt not loadable: Metric (TFM) file not found. -%\end{verbatim} -% Diese Fehlermeldung tritt auf, wenn Sie versuchen die Schriftartvergrößerung zu -% verwenden, während Sie eine - Ausgabe erstellen. Denken Sie daran, dass die % \emph{automatische} Schriftartenerweiterung nur als \pdftex\ im Modus -% funktioniert. Vergrößerung ist auch im Modus möglich. Dies erfordert, dass % alle Instanzen der erweiterten Schriftarten auf Ihrem \TeX\ -System existieren. -% -%\changes{v2.2}{2007/06/13}{add hint about error message with \pdftex\ 1.40} -% \item -%\begin{verbatim} -%! pdfTeX error (font expansion): auto expansion is only possible with scalable fonts. -%\end{verbatim} -% Die automatische Schriftartvergrößerung ist in \pdftex\ 1.40, darin verbessert -% worden, -% dass sie nicht nur mit Typ\,1 Schriften sondern, auch mit TrueType, OpenType und -% sogar auch mit nicht-eingebetteten Schriftarten arbeitet. Die obige Fehlermeldung % bedeutet entweder, dass Sie versuchen die Vergrößerung, auf eine Bitmap~(|pk|) -% Schriftart anzuwenden, die noch nicht möglich ist, oder dass die Schrift nicht -% gefunden werden kann, da z.B. deren Einträge fehlen. -% -%\changes{v2.0}{2006/12/13}{qualify hints about expansion error messages with -% regard to older \pdftex\ versions} -% \item -%\begin{verbatim} -% Warning: pdflatex: font ptmr8r cannot be expanded (not an included Type1 font) -%\end{verbatim} -% und der Viewer beklagt sich über eine fehlende Schriftart, z.B der Adobe -% Reader auf diese Weise: -%\begin{verbatim}[aboveskip=\smallskipamount] -% Could not find a font in the Resources dictionary - using Helvetica instead. -%\end{verbatim} -% Mit \pdftex\ Versionen, die älter sind als 1.40, kann Schriftartvergrößerung nur -% dann angewandt werden, wenn die Schriftart in der Datei eingebettet wird. -% Falls Sie die obengenannte Fehlermeldung erhalten, kann Ihr \TeX\ System noch -% nicht mit PostScript-Schriftarten (z.B Times, Helvetica, Courier) arbeiten, da -% diese in die Basisdatei eingebettet werden müssen. In den meisten \TeX\ -% Distributionen, kann diese in der Datei \file{updmap.cfg} durch Einstellungen der -% |pdftexDownloadBase14| in |true| geändert werden. -% -%\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 -%\end{verbatim} -% Außerdem erfordern \pdftex\ Versionen die älter als 1.40 sind, Typ \,1-Schriften -% für die automatische Schriftarten-Vergrößerung. Wenn Sie eine Nachricht wie die -% obengenannte erhalten, haben Sie wahrscheinlich versucht, die -% Schriftartvergrößerung auf eine bitmap oder TrueType Schriftart anzuwenden. Bei -% älteren \pdftex\ Versionen ist dies nur möglich, wenn Sie manuell erweiterte -% Instanzen der Schriften erstellen. -%\ifcmr\else\pagebreak\fi ^^A layout -%\changes{v2.0}{2006/11/05}{add hint about how to increase \texttt{font\textunderscore max} -% 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. -%\end{verbatim} -% Speicherparameter `|font_mem_size|` zu klein. -% \item -%\begin{verbatim} -%! TeX capacity exceeded, sorry [maximum internal font number (font_max)=2000]. -%\end{verbatim} -% Speicherparameter `|font_max|` zu klein. -% \item -%\begin{verbatim} -%! TeX capacity exceeded, sorry [PDF memory size (pdf_mem_size)=65536]. -%\end{verbatim} -% Speicherparameter `|pdf_mem_size|` zu klein (bei \pdftex\ Versionen, die älter -% sind als 1.30). -% -% Bei Anwendung von mikro-typografischen Erweiterung eines großes Dokumentes mit -% einer Menge von Schriftarten, kann die Speicherkapazität von \pdftex\ knapp -% werden. Dies kann durch Setzen der entsprechenden Parameter, auf einen größeren -% Wert erhöht werden. Für web2c-basierte Systeme, z.B \texlive, sollten Sie die -% Einstellungen in der Datei \file{texmf.cnf}, und für MiK\TeX in der Datei -% \file{miktex.ini} (für 2,4 Jahre ältere Versionen) bzw. \file{pdflatex.ini} (2,5 -% Jahre neuere Versionen) ändern. -% -%\changes{v2.0}{2007/01/05}{add hint about warning when tracking \emph{and} -% expansion is applied to a font} -% \item -%\begin{verbatim}[deletekeywords={[1]{expansion}}] -%pdfTeX warning (font expansion): font should be expanded before its first use -%\end{verbatim} -% Diese Warnung wird bei \pdftex\ Versionen vorkommen, die älter sind als 1.40.4, -% wenn Tracking \emph{und} Vergrößerung auf eine Schriftart angewendet werden. Sie -% ist harmlos und kann ignoriert werden. -%\end{itemize} -% -% -% -%\section{Beiträge} -% -% Ich wäre froh, Konfigurationsdateien für mehr Schriftarten beizufügen. Das -% Vorbereiten solcher Konfigurationen ist recht zeitaufwändig und erfordert viel -% Geduld. -% Um diesen Prozess zu erleichtern, schließt dieses Paket auch eine Testdatei ein, -% die verwendet werden kann, um zumindest die Hervorhebungseinstellungen überprüfen % zu können (\file{test-microtype.tex}). -%^^A -% Wenn Sie eine Konfigurationsdatei für eine andere Schriftart erstellt, oder -% Anregungen für Verbesserungen in den Standardkonfigurations-Dateien haben, würde % Ich diese dankbar entgegennehmen: \mailtoRS. -%\iffalse\footnote{^^A ... OK, so nobody has any ... -% Should you have lots of \pkg{pdfcprot} configuration files lying around, -% I can also provide you with a \TeX\ conversion script. Just ask me.} -%\fi -% -% -%\section{Danksagungen} -% -% Dieses Paket wäre sinnlos, wenn \contributor\thanh{} -% dieses \pdftex\ Programm überhautpt nicht erstellt hätte, welches die -% mikro-typographische Erweiterung einführt und so für die \TeX\ -Welt verfügbar -% macht. Darüber hinaus danke ich ihm für die Hilfe, dieses Paket zu -% verbessern und nicht zuletzt für die Förderung in \cite{ThanhPracTeX} und -% \cite{ThanhEuroTeX07} und anderswo. Also bedanke Ich mich bei ihm und dem Rest -% der \pdftex\ Mannschaft für die Widerlegung der Idee, dass \TeX\ tot ist, und für % dass Fixen der Programmfehler die ich gefunden habe. -% -% \contributor Harald Harders hat dazu beigetragen die -% Vorsprungseinstellungen für Adobe Minion möglich zu machen. Ich möchste ihm auch % für eine Reihe an Fehlermeldungen und Vorschlägen danken, die er gemacht hat. -% \contributor Andreas B\"uhmann hat die Möglichkeit -% vorgeschlagen, Bereiche von Schriftgrößen anzugeben und geistreich bei der -% Implementierung dieser zu helfen. Er hatte auch einige guten Ideen für das -% Management von komplexen Konfigurationen. -% \contributor Ulrich Dirr hat zahlreiche Vorschläge gemacht, -% besonders bezüglich der neuen Erweiterungen der Zwischenwortabstandsanpassung und % zum zusätzlichen Kerning. -% Mein Dank gilt auch \contributor Maciej Eder -% für die beigetragenen Einstellungen der Kodierung, sowie -% \contributor Karl Karlsson zur Bereitstellung von -% Einstellungen für die kyrillische Kodierung. -% Ich bedanke mich bei \contributor \'Elie Roux , -% das sie das |lua| Modul erschaffen hat. -% -% Ich danke \contributor Philipp Lehman das er seinem -% \pkg{csquotes} Paket die Möglichkeit hinzugefügt hat, die ursprüngliche Bedeutung % aller aktivierten Zeichen wiederherzustellen, so dass diese für die Zeichen in -% den Konfigurationsdateien verwendet werden können. -% Freundlicherweise hat \contributor Peter Wilson -% ein Häkchen in seinen \pkg{ledmac}/\pkg{ledpar} Paketen zur Verfügung gestellt, -% so dass kritische Editionen, schließlich auch vom Charakter-Vorsprung profitieren. -% -% Zusätzlich haben die folgenden Personen Bugs gemeldet, Vorschläge gemacht oder -% anders geholfen (in chronologischer Reihenfolge): -% \contributor Tom Kink , -% \contributor Herb Schulz , -% \contributor Michael Hoppe , -% \contributor Gary~L. Gray , -% \contributor Georg Verweyen , -% \contributor Christoph Bier , -% \contributor Peter Muthesius , -% \contributor Bernard Gaulle \,\textdagger, -% \contributor Adam Kucharczyk , -% \contributor Mark Rossi , -% \contributor Stephan Hennig , -% \contributor Michael Zedler , -% \contributor Herbert Vo\ss{} , -% \contributor Ralf Stubner , -% \contributor Holger Uhr , -% \contributor Peter Dyballa , -% \contributor Morten H\o gholm , -% \contributor Steven Bath , -% \contributor Daniel Flipo , -% \contributor Michalis Miatidis , -% \contributor Sven Naumann , -% \contributor Ross Hetherington , -% \contributor Geoff Vallis , -% \contributor Steven~E. Harris , -% \contributor Karl Berry , -% \contributor Peter Meier , -% \contributor Nathan Rosenblum , -% \contributor Wolfram Schaalo , -% \contributor Vasile Gaburici , -% \contributor Sveinung Heggen , -% \contributor Colin Rourke , -% \contributor Maverick Woo , -% \contributor Silas~S. Brown , -% \contributor Christian Stark -% and -% \contributor Marcin Borkowski . -% -% -%\begin{thebibliography}{} -% \bibitem[Th\`anh 2000]{ThanhThesis} -% \thanh, `Micro-typographic extensions to the \TeX\ typesetting system', -% \newblock Diss. Masaryk University Brno 2000, -% \newblock in: \textit{TUGBoat}, vol.~21 (2000), no.~4, pp.~317--434. -% \newblock (Online at \url{http://www.tug.org/TUGboat/Articles/tb21-4/tb69thanh.pdf}) -% -%\iffalse ^^A obsolete -% \bibitem[Th\`anh 2001]{ThanhTUG} -% \thanh, `Margin Kerning and Font Expansion with \pdftex', -% \newblock in: \textit{TUGBoat}, vol.~22 (2001), no.~3: -% `Proceedings of the 2001 Annual Meeting', pp.~146--148. -% \newblock (Online at \url{http://www.tug.org/TUGboat/Articles/tb22-3/tb72thanh.pdf}) -%\fi -% -% \bibitem[Th\`anh 2004]{ThanhPracTeX} -% \thanh, `Micro-typographic extensions of \pdftex\ in practice', -% \newblock in: \textit{TUGBoat}, vol.~25 (2004), no.~1: -% `Proceedings of the Practical \TeX\ 2004 Conference', pp.~35--38. -% \newblock (Online at \url{http://www.tug.org/TUGboat/Articles/tb25-1/thanh.pdf}) -% -%\iffalse -% \bibitem[Th\`anh 2005]{ThanhEuroTeX05} -% \thanh, `Experiences with micro-typographic extensions of \pdftex\ in practice', -% \newblock in: Euro\TeX\ 2005 Proceedings -% ^^A 15th~Annual Meeting of the European \TeX\ Users, -% ^^A March~7 -- March~11, 2005, Abbaye des Pr\'emontr\'es, Pont-\`a-Mousson, -% [=~\textit{TUGBoat}, vol.~27 (2006), no.~0], -% pp.~159--164. -% \newblock (Online at \url{http://www.tug.org/TUGboat/Articles/tb27-0/thanh.pdf}) -% ^^A = \url{http://www.dante.de/dante/events/eurotex/papers/TUT07.pdf} -%\fi -% -% \bibitem[Th\`anh 2008]{ThanhEuroTeX07} -% \thanh, `Font-specific issues in \pdftex', -% \newblock in: \textit{TUGBoat}, vol.~29 (2008), no.~1: -% `EuroBacho\TeX\ 2007 Proceedings', pp.~36--41. -% \newblock (Online at \url{http://www.tug.org/TUGboat/Articles/tb29-1/tb91thanh-fonts.pdf}) -% -% \bibitem[\pdftex\ manual]{pdftexman} -% \thanh, Sebastian Rahtz, Hans Hagen, Hartmut Henkel, Pawe\l\ Jackowski, Martin Schr\"oder, -% \emph{The \pdftex\ user manual}, -% \newblock 25 January 2007. -% \newblock (\ctanurl{systems/pdftex/}; -% 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}, -% \newblock July 2009. -% \newblock (\ctanurl{info/fontname/fontname.pdf}) -% -% \bibitem[\LaTeXe\ font selection]{fntguide} -% \LaTeX3 Project Team, \emph{\LaTeXe\ font selection}, -% \newblock 27 November 2005. -% \newblock (\ctanurl{macros/latex/doc/fntguide.pdf}) -% -% \bibitem[\pkg{pdfcprot}]{pdfcprot} -% Carsten Schurig, Tobias Schlemmer, \emph{The \pkg{pdfcprot}|.sty| package}, -% \newblock 10 June 2005. -% \newblock (\ctanurl{macros/latex/contrib/pdfcprot/}) -% -% \bibitem[\pkg{soul}]{soul} -% Melchior Franz, \emph{The \pkg{soul} package}, -% \newblock 17 November 2003. -% \newblock (\ctanurl{macros/latex/contrib/soul/}). -%\changes{v2.3a}{2008/01/06}{mention \pkg{soulutf8}} -% \newblock See also Heiko Oberdiek's extension of this package, -% \pkg{soulutf8}, which adds Unicode support. -% \newblock (\ctanurl{macros/latex/contrib/oberdiek/}) -%\end{thebibliography} -% -% -%\section{Short history} -%\changes{v1.5}{2004/12/11}{add `Short history'} -% -% The comprehensive list of changes can be -% \expandafter\ifx\csname r@sec:changes\endcsname\relax -% obtained by running `\texttt{makeindex \mbox{-s gglo.ist} -% \mbox{-o microtype.gls} microtype.glo}'\else -% found in appendix~\ref{sec:changes}\fi. -% The following is a list of all changes relevant in the user land; bug and -% compatibility fixes are swept under the rug. Numbers in brackets indicate -% the relevant section in this manual. -% -%\newenvironment{History} -% {\list\labelitemi -% {\leftmargin 0pt -% \parsep 0pt -% \def\refsection##1{[##1]} -% \def\makelabel##1{\hss\llap{##1}}}} -% {\endlist} -%\newcommand\Version[2]{ -% \VersionDate{#1}{#2} -% \vskip\topsep -% \pagebreak[2] -% \item[#1](#2) -% \vskip\topsep -% \nopagebreak} -%\newcommand\VersionDate[2]{^^A needed in the Change history -% \global\expandafter\def\csname MTversiondate#1\endcsname{#2}} -% -%\begin{History} -% -%\Version{\expandafter\@gobble\fileversion}{\filedate} -% \item |lua| functions moved to a dedicated file -% \item Protrusion settings for encoded Minion -% -%\Version{2.3e}{2009/11/09} -% \item Support for the Cyrillic encoding (protrusion, expansion, spacing) -% -%\Version{2.3d}{2009/03/27} -% \item New default for expansion option `\opt{step}': 1, if \pdftex\ $\geq$ 1.40 -% \refsection{\ref{sub:options-expansion}} -% -%\Version{2.3c}{2008/11/11} -% \item Support for \luatex\ enabled by default -% -%\VersionDate{2.3b}{2008/06/04} -% -%\VersionDate{2.3a}{2008/02/29} -% -%\Version{2.3}{2007/12/23} -% \item New key `|outer kerning|' for \cs{SetTracking} to customise outer kerning -% \refsection{\ref{sub:tracking}} -% \item Adjust protrusion settings for tracking even if protrusion is not enabled -% \item New option `\opt{verbose}|=silent|' to turn all warnings into mere messages -% \refsection{\ref{sub:options-misc}} -% \item The \letterspace\ package also works with \pkg{eplain} or \pkg{miniltx} -% \refsection{\ref{sec:lettersp}} -% -%\Version{2.2}{2007/07/14} -% \item Improvements to tracking/letterspacing: retain kerning (\pdftex\ $\geq$ 1.40.4); -% automatically adjust protrusion settings -% \item New key `|no ligatures|' for \cs{SetTracking} to disable selected or -% all ligatures (\pdftex\ $\geq$ 1.40.4) -% \refsection{\ref{sub:tracking}} -% \item New keys `|spacing|' and `|outer spacing|' for \cs{SetTracking} to -% customise interword spacing -% \refsection{\ref{sub:tracking}} -% \item Possibility to expand a font with different parameters (\pdftex\ $\geq$ 1.40.4) -% ^^A ; new option `\opt{copyfonts}' -% \refsection{\ref{sub:expansion}} -% \item New optional argument for \cs{DisableLigatures} to disable selected ligatures only -% \refsection{\ref{sec:disable-ligatures}} -% \item New command \cs{DeclareMicrotypeVariants} to specify variant suffixes -% \refsection{\ref{sub:config-file}} -% \item New command \cs{textmicrotypecontext} as a wrapper for \cs{microtypecontext} -% \refsection{\ref{sec:context}} -% \item Protrusion settings for Bitstream Letter Gothic -%^^A \item Basic support for \luatex\ (if generated with the |lua| option) -% -%\Version{2.1}{2007/01/21} -% \item New command \cs{lslig} to protect ligatures in letterspaced text -% \refsection{\ref{sec:lettersp}} -% -%\Version{2.0}{2007/01/14} -% \item Support for the new extensions of \pdftex\ $\geq$ 1.40: -% tracking/letterspacing, adjustment of interword spacing (glue), -% and additional kerning -% (new commands \cs{SetTracking}, \cs{SetExtraSpacing}, \cs{SetExtraKerning}; -% new options `\opt{tracking}', `\opt{spacing}', `\opt{kerning}') -% \refsection{\ref{sub:tracking}, \ref{sub:spacing}, \ref{sub:kerning}} -% \item New commands \cs{textls} and \cs{lsstyle} for letterspacing, -% new option `\opt{letterspace}' -% \refsection{\ref{sub:option-tracking}, \ref{sec:lettersp}} -% \item New option `\opt{babel}' for automatic micro-typographic adjustment to -% the selected language -% \refsection{\ref{sub:options-misc}, \ref{sec:context}} -% \item New font sets: `|smallcaps|', `|footnotesize|', `|scriptsize|' -% \refsection{\ref{sec:font-sets}, table~\ref{tab:predefined-font-sets}} -% \item New package `\letterspace' providing the commands for robust and -% hyphenatable letterspacing -% \refsection{\ref{sec:lettersp}} -% -%\VersionDate{1.9f}{2006/09/09} -% -%\Version{1.9e}{2006/07/28} -% \item New key `|inputenc|' to specify the lists' input encodings -% \refsection{\ref{sec:fine-tuning}} -% \item Protrusion settings for Euler math fonts -% -%\Version{1.9d}{2006/05/05} -% \item Support for the Central European encoding -% (protrusion, inheritance) -% \item Protrusion settings for various Euro symbol fonts (Adobe, , \pkg{marvosym}) -% \item Support for Unicode input in the configuration (\pkg{inputenc}/|utf8|) -% -%\Version{1.9c}{2006/02/02} -% \item Protrusion settings for Garamond -% -%\VersionDate{1.9b}{2006/01/20} -% -%\Version{1.9a}{2005/12/05} -% \item Defer setup until the end of the preamble -% ^^A ; consequently, no need to -% ^^A change font defaults before loading \microtype, or to put it the other -% ^^A way round, \microtype\ may now be loaded at any time -% ^^A ; new option `\opt{defersetup}' -% \item Inside the preamble, \cs{microtypesetup} accepts all package options -% \refsection{\ref{sub:options-cmd}} -% \item Protrusion settings for encoded Charter -% -%\Version{1.9}{2005/10/28} -% \item New command \cs{DisableLigatures} to disable ligatures of fonts -% (\pdftex\ $\geq$ 1.30) -% \refsection{\ref{sec:disable-ligatures}} -% \item New command \cs{microtypecontext} to change the configuration context; -% new key `|context|' for the configuration commands -% \refsection{\ref{sec:context}} -% \item New key `|font|' to add single fonts to the font sets -% \refsection{\ref{sec:font-sets}} -% \item New key `|preset|' to set all characters to the specified value before -% loading the lists -% \item Value `|relative|' renamed to `|character|' for `|unit|' keys -% \item Support for the Polish encoding (protrusion, expansion, inheritance) -% \item Support for the Vietnamese encoding (protrusion, expansion, inheritance) -%^^A \item `\opt{DVIoutput}' option will work with \texlive\ 2004 -% -%\Version{1.8}{2005/06/23} -%^^A \item If font substitution has occurred, the settings for the substitute will -%^^A be used instead of those for the selected font -% \item New command \cs{DeclareMicrotypeSetDefault} to declare the default font sets -% \refsection{\ref{sec:font-sets}} -% \item New option `\opt{config}' to load a different configuration file -% \refsection{\ref{sub:options-misc}} -% \item New option `\opt{unit}' to measure protrusion factors relative to a -% dimension instead of the character width -% \refsection{\ref{sub:protrusion}} -% \item Renamed commands from \cs{..MicroType..} to \cs{..Microtype..} -% \item Protrusion settings for math fonts -% \item Protrusion settings for Times in encoding completed -% \item The `|allmath|' font set also includes encoding -%^^A \item 8-bit characters in the configuration finally work as advertised, -%^^A even if made active by the \pkg{csquotes} package -% \item When using the \pkg{ledmac} package, character protrusion will work -% for the first time ever (\pdftex\ $\geq$ 1.30) -% -%\Version{1.7}{2005/03/23} -% \item Possibility to specify ranges of font sizes in the set declarations -% and protrusion and expansion settings -% \refsection{\ref{sec:font-sets}, \ref{sec:fine-tuning}} -%^^A \item Always take font size into account when trying to find protrusion resp. -%^^A expansion settings for a given font -%^^A \refsection{\ref{sec:fine-tuning}} -% \item New command \cs{LoadMicrotypeFile} to load a font configuration file manually -% \refsection{\ref{sub:config-file}} -% \item Hook \cs{Microtype@Hook} for font package authors -% \refsection{\ref{sub:hook}} -% \item New option `\opt{verbose}|=errors|' to turn all warnings into errors -%^^A \item Disable expansion inside \cmd\showhyphens -% \item Warning when running in draft mode -% -%\VersionDate{1.6a}{2005/02/02} -% -%\Version{1.6}{2005/01/24} -% \item New option `\opt{factor}' to influence protrusion resp. expansion of -% all characters of a font or font set -% \refsection{\ref{sub:options-protrusion}, \ref{sec:fine-tuning}} -% \item When \pdftex\ is too old to expand fonts automatically, expansion -% has to be enabled explicitly, automatic expansion will be disabled -% \refsection{\ref{sub:options-microtype}} -%^^A \item Protrusion settings of digits improved -% \item Use \etex\ extensions, if available -% -%\Version{1.5}{2004/12/15} -% \item When output mode is , font expansion has to be enabled explicitly, -% automatic expansion will be disabled -% \refsection{\ref{sub:options-microtype}} -% \item New option `\opt{selected}' to enable selected expansion, -% default: |false| -% \refsection{\ref{sub:options-expansion}, \ref{sub:expansion}} -% \item New default for expansion option `\opt{step}': 4 (min(\opt{stretch},\opt{shrink})/5) -% \refsection{\ref{sub:options-expansion}} -% \item Protrusion settings for Bitstream Charter -% -%\VersionDate{1.4b}{2004/11/26} -%^^A\Version{1.4b}{2004/11/26} -%^^A \item \cs{UseMicrotypeSet} requires the set to be declared -%^^A \refsection{\ref{sec:font-sets}} -% -%\VersionDate{1.4a}{2004/11/17} -% -%\Version{1.4}{2004/11/12} -% \item Set up fonts independently from \LaTeX\ font loading -%^^A (therefore, no risk of overlooking fonts anymore, and the package may -%^^A be loaded at any time) -%^^A \item \cs{microtypesetup} now sets the correct level of protrusion -%^^A \refsection{\ref{sub:options-cmd}} -% \item New option: `\opt{final}' -% \refsection{\ref{sub:options-misc}} -% -%\VersionDate{1.3}{2004/10/27} -% -%\Version{1.2}{2004/10/03} -% \item New font sets: `|allmath|' and `|basicmath|' -% \refsection{\ref{sec:font-sets}, table~\ref{tab:predefined-font-sets}} -% \item Protrusion settings for Computer Modern Roman math symbols -% \item Protrusion settings for encoding completed for Computer Modern -% Roman and Adobe Garamond -%^^A \item If an alias font name is specified, it will be used as an alternative, -%^^A not as a replacement \refsection{\ref{sub:config-file}} -% -%\Version{1.1}{2004/09/21} -% \item Protrusion settings for Adobe Minion -% \item New command: \cs{DeclareCharacterInheritance} -% \refsection{\ref{sub:inherit}} -% \item Characters may also be specified as octal or hexadecimal numbers -% \refsection{\ref{sec:fine-tuning}} -%^^A \item Configuration file names in lowercase [\ref{sub:config-file}] -% -%\Version{1.0}{2004/09/11} -% \item First release -%\end{History} -% -% -%\def\AppendixSettings{ -% \addtolength\textwidth{50pt} -% \addtolength{\oddsidemargin}{-50pt} -% \setlength{\columnwidth}{\textwidth} -% \setlength{\hsize}{\textwidth} -% \setlength{\linewidth}{\textwidth} -% \footnotesize -%} -%\def\LPPLSettings{ -%\changes{v1.9e}{2006/06/13}{include } -% \let\LPPLicense\empty -% \def\endLPPLicense{\endmulticols\endgroup} -% \def\LPPLsection##1{\begin{multicols}{2}[\section{##1}][12\baselineskip]} -% \def\LPPLsubsection##1{\end{multicols}\begin{multicols}{2}[\subsection*{##1}][6\baselineskip]} -% \def\LPPLsubsubsection{\subsubsection*} -% \let\LPPLparagraph\textit -% \let\LPPLfile\file -% \def\textsc##1{\acronym{\MakeUppercase{##1}}} -% \lstset{gobble=2,basicstyle=\MacroFont\tiny,commentstyle=,aboveskip=\smallskipamount} -% \let\oldmakeatletter\makeatletter -% \long\def\makeatletter##1\makeatother{\let\makeatletter\oldmakeatletter} -% \MakePercentComment -%} -% -%\StopEventually{ -% \GeneralChanges{Documentation} -% \newpage -% \appendix -% \AppendixSettings -% \typeout{:?1000} ^^A tell WinEdt not to bother about overfull boxes -% \PrintChanges -% \PrintIndex -% \typeout{:?1111} -% \InputIfFileExists{lppl.tex}\LPPLSettings\relax -%} -% -% \GeneralChanges* -% -% ^^A ========================================================================= -% -% ^^A Heiko Oberdiek's fix from latexbugs (latex/3540): -%\begingroup -% \def\x\begingroup#1\@nil{\endgroup -% \def\DoNotIndex{\begingroup -% \@tfor\@tempa:=\#\$\&\^\_\|\~\ \<\do{\expandafter\@makeother\@tempa}#1}} -%\expandafter\x\DoNotIndex\@nil -%\def\PercentIndex{}\def\LeftBraceIndex{}\def\RightBraceIndex{} -% ^^A also index new ifs: -%\def\@newif{newif}\newif\if@newif -%\def\macro@finish{\macro@namepart -% \ifx\macro@namepart\@newif\@tempswatrue\else\@tempswafalse\fi -% \ifnot@excluded -% \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}\@tempa -% \fi -% \if@newif -% \edef\@tempa{\noexpand\SpecialMainIndex -% {\bslash\expandafter\@gobbletwo\macro@namepart true}}\@tempa -% \edef\@tempa{\noexpand\SpecialMainIndex -% {\bslash\expandafter\@gobbletwo\macro@namepart false}}\@tempa -% \fi -% \if@tempswa\@newiftrue\else\@newiffalse\fi -%} -% -% -%\DoNotIndex{\!,\",\',\(,\),\*,\+,\,,\-,\.,\/,\:,\;,\<,\=,\>,\?,\[,\\,\],\`, -% \#,\$,\&,\^,\_,\|,\~,\ , -% \advance,\afterassignment,\aftergroup,\begingroup,\bgroup,\catcode,\char, -% \chardef,\csname,\def,\divide,\edef,\egroup,\else,\endcsname,\endgroup, -% \endinput,\escapechar,\everypar,\expandafter,\fi,\futurelet,\gdef,\global, -% \hbadness,\hbox,\hsize,\hskip,\if,\ifcase,\ifcat,\ifdim,\iffalse,\ifhbox, -% \ifhmode,\ifmmode,\ifnum,\iftrue,\ifx,\immediate,\input,\inputlineno,\jobname, -% \kern,\lastskip,\let,\lowercase,\meaning,\multiply,\newlinechar,\noexpand, -% \number,\or,\parfillskip,\pretolerance,\relax,\setbox,\showboxdepth,\string, -% \the,\tolerance,\unkern,\unskip,\uppercase,\vbox,\wd,\write,\xdef} -%^^A\DoNotIndex{\font,\fontdimen,\nullfont,\sfcode,\spacefactor,\spaceskip, -%^^A \xspaceskip} ^^A tex -%\DoNotIndex{\currentgrouptype,\detokenize,\dimexpr,\eTeXversion,\ifcsname, -% \ifdefined,\numexpr} -%^^A\DoNotIndex{\fontcharwd,\iffontchar} ^^A e-tex -%\DoNotIndex{\pdfannot,\pdfescapestring,\pdfmatch,\pdfoutput,\pdfstrcmp, -% \pdftexrevision,\pdftexversion} -%^^A\DoNotIndex{\(ef,lp,rp,kn(ac,bc),(kn,sh,st)bs)code,\(left,right)marginkern, -%^^A \tagcode,\letterspacefont,\pdfcopyfont,\pdffontexpand,\pdfnoligatures, -%^^A \pdfprotrudechars,\pdfadjust(interwordglue,spacing),\pdf(app,prep)endkern, -%^^A \pdftracingfonts} ^^A pdftex -%\DoNotIndex{\directlua,\luatexversion} ^^A luatex -%\DoNotIndex{\eplain,\usepkg@pkg} ^^A eplain -%\DoNotIndex{\@backslashchar,\@cclv,\@cclvi,\@classoptionslist,\@currext, -% \@currname,\@defaultunits,\@empty,\@expandtwoargs,\@firstofone,\@firstoftwo, -% \@gobble,\@gobbletwo,\@ifl@aded,\@ifpackagelater,\@ifpackageloaded,\@ifstar, -% \@ifundefined,\@let@token,\@m,\@makeother,\@minus,\@nameuse,\@ne,\@nil,\@nnil, -% \@onelevel@sanitize,\@onlypreamble,\@percentchar,\@pkgextension,\@plus, -% \@ptionlist,\@removeelement,\@secondoftwo,\@spaces,\@sptoken,\@tempa,\@tempb, -% \@tempc,\@tempcnta,\@tempcntb,\@tempdima,\@typeset@protect,\@undefined, -% \@unprocessedoptions,\@unusedoptionlist,\@xobeysp,\check@icr,\color@begingroup, -% \color@endgroup,\g@addto@macro,\hmode@bgroup,\m@ne,\maybe@ic,\maybe@ic@, -% \nfss@text,\not@math@alphabet,\on@line,\p@,\set@display@protect,\strip@prefix, -% \strip@pt,\tw@,\z@,\z@skip,\active,\documentclass,\leavevmode,\makeatletter, -% \maxdimen,\newcommand,\newcount,\newdimen,\newif,\newskip,\newtoks,\nobreak, -% \nonfrenchspacing,\normalsize,\renewcommand,\space, -% \AtBeginDocument,\AtEndOfPackage,\CheckCommand,\CurrentOption, -% \DeclareRobustCommand,\IfFileExists,\InputIfFileExists,\MessageBreak, -% \PackageError,\PackageInfo,\PackageWarning,\RequirePackage, -% \@@enc@update,\cf@encoding,\f@encoding} -%^^A\DoNotIndex{\add@accent,\curr@fontshape,\define@newfont,\do@subst@correction, -%^^A \f@size,\font@name,\normalfont,\pickup@font,\selectfont,\set@fontsize, -%^^A \showhyphens} ^^A latex -%\DoNotIndex{\XeTeXversion} ^^A xetex -%\DoNotIndex{\normalpdfoutput,\normalpdftexversion,\normalpdftexrevision} ^^A tex live -%\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 -%\DoNotIndex{\@disablequotes} ^^A csquotes -%\DoNotIndex{\pdfstringdefDisableCommands,\pdfstringdefWarn} ^^A hyperref -%\DoNotIndex{\ifpdf} ^^A ifpdf -%\DoNotIndex{\@inpenc@undefined@,\IeC,\inputencoding,\inputencodingname} ^^A inputenc -%\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 ledmac,ledpar -%\DoNotIndex{\lst@ProcessLetter} ^^A listings -%\DoNotIndex{\pdf@escapestring} ^^A pdftexcmds -%\DoNotIndex{\py@macron} ^^A pinyin -%\DoNotIndex{\SOUL@,\soulregister} ^^A soul -%\DoNotIndex{\tikz@expandcount} ^^A tikz -%\DoNotIndex{\conditionally@traceoff} ^^A trace -%\DoNotIndex{\x,\MT@dinfo,\MT@dinfo@nl,\tracingmicrotype,\tracingmicrotypeinpdf, -% \ifMT@inannot,\MT@inannottrue,\MT@inannotfalse,\MT@addto@annot,\MT@pdf@annot, -% \MT@show@pdfannot,\iftracingmicrotypeinpdfall,\tracingmicrotypeinpdfalltrue, -% \tracingmicrotypeinpdfallfalse,\DeclareMicroTypeSet,\DeclareMicroTypeAlias, -% \UseMicroTypeSet,\LoadMicroTypeFile,\MicroType@Hook} ^^A microtype -% -% ^^A ------------------------------------------------------------------------- -% -%\newpage -%\ImplementationSettings -%\ifpdf\hypersetup{bookmarksopen=false}\fi -% -%\section{Implementation} -% -% The \pkg{docstrip} modules in this file are: -% \begin{description} -% \item[|driver|] The documentation driver, only visible in the \file{dtx} file. -% \item[|package|] The code for the \microtype\ package (\file{microtype.sty}). -% \begin{description} -% \item[|letterspace|] The code for the \letterspace\ package (\file{letterspace.sty}). -% \item[|lua|] Code for \luatex\ (\microtype\ only). -% \item[|plain|] Code for \pkg{eplain}, \pkg{miniltx} (\letterspace\ only). -% \item[|debug|] Code for additional output in the log file. -% \\Used for -- surprise! -- debugging purposes. -% \end{description} -% \item[|config|] Surrounds all configuration modules. -% \begin{description} -% \item[|cfg-t|] Surrounds (Latin) text configurations. -% \begin{description} -% \item[|m-t|] The main configuration file (\file{microtype.cfg}). -% \item[|bch|] Settings for Bitstream Charter (\file{mt-bch.cfg}). -% \item[|blg|] Settings for Bitstream Letter Gothic (\file{mt-blg.cfg}). -% \item[|cmr|] Settings for Computer Modern Roman (\file{mt-cmr.cfg}). -% \item[|pad|] Settings for Adobe Garamond (\file{mt-pad.cfg}). -% \item[|ppl|] Settings for Palatino (\file{mt-ppl.cfg}). -% \item[|ptm|] Settings for Times (\file{mt-ptm.cfg}). -% \item[|pmn|] Settings for Adobe Minion (\file{mt-pmn.cfg}). -% \\Contributed by \contributor Harald Harders . -% \item[|ugm|] Settings for Garamond (\file{mt-ugm.cfg}). -% \end{description} -% \item[|cfg-u|] Surrounds non-text configurations ( encoding). -% \begin{description} -% \item[|msa|] Settings for `a' symbol font (\file{mt-msa.cfg}). -% \item[|msb|] Settings for `b' symbol font (\file{mt-msb.cfg}). -% \item[|euf|] Settings for Euler Fraktur font (\file{mt-euf.cfg}). -% \item[|eur|] Settings for Euler Roman font (\file{mt-eur.cfg}). -% \item[|eus|] Settings for Euler Script font (\file{mt-eus.cfg}). -% \end{description} -% \item[|cfg-e|] Surrounds Euro symbol configurations. -% \begin{description} -% \item[|zpeu|] Settings for Adobe Euro symbol fonts (\file{mt-zpeu.cfg}). -% \item[|euroitc|] Settings for Euro symbol fonts (\file{mt-euroitc.cfg}). -% \item[|mvs|] Settings for \pkg{marvosym} Euro symbol (\file{mt-mvs.cfg}). -% \end{description} -% \end{description} -% \item[|test|] A helper file that may be used to create and test -% protrusion settings\\(\file{test-microtype.tex}). -% \end{description} -% And now for something completely different. -% -% \begin{macrocode} -%<*package|letterspace> -% \end{macrocode} -% -%\subsection{Preliminaries} -% -%\begin{macro}{\MT@MT} -% This is us. -% \begin{macrocode} -\def\MT@MT -% {microtype} -% {letterspace} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@fix@catcode} -%\changes{v1.3}{2004/10/27}{check some category codes (compatibility with \pkg{german})} -%\changes{v1.5}{2004/12/03}{reset catcode of `\texttt{\^}' (compatibility with \pkg{chemsym})} -%\changes{v2.3a}{2007/12/29}{fix catcodes earlier, and also for the \letterspace\ package} -% We have to make sure that the category codes of some characters are correct -% (the \pkg{german} package, for instance, makes |"| active). Probably overly -% cautious. Ceterum censeo: it should be forbidden for packages to change -% catcodes within the preamble. -%\begin{macro}{\MT@restore@catcodes} -% Polite as we are, we'll restore them afterwards. -% \begin{macrocode} -\let\MT@restore@catcodes\@empty -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\def\MT@fix@catcode#1#2{% - \edef\MT@restore@catcodes{% - \MT@restore@catcodes - \catcode#1 \the\catcode#1\relax - }% - \catcode#1 #2\relax -} -%\MT@fix@catcode{17}{14}% ^^Q (comment) -\MT@fix@catcode{24} {9}% ^^X (ignore) -%\MT@fix@catcode{33}{12}% ! -%\MT@fix@catcode{34}{12}% " -\MT@fix@catcode{36} {3}% $ (math shift) -\MT@fix@catcode{39}{12}% ' -\MT@fix@catcode{42}{12}% * -\MT@fix@catcode{43}{12}% + -\MT@fix@catcode{44}{12}% , -\MT@fix@catcode{45}{12}% - -\MT@fix@catcode{58}{12}% : -\MT@fix@catcode{60}{12}% < -\MT@fix@catcode{61}{12}% = -\MT@fix@catcode{62}{12}% > -%\MT@fix@catcode{63}{12}% ? -\MT@fix@catcode{94} {7}% ^ (superscript) -\MT@fix@catcode{96}{12}% ` -%\MT@fix@catcode{124}{12}% | -% \end{macrocode} -%\end{macro} -% These are all commands for the outside world. We define them here as blank -% commands, so that they won't generate an error if we are not running \pdftex. -% \begin{macrocode} -%<*package> -\newcommand*\DeclareMicrotypeSet[3][]{} -\newcommand*\UseMicrotypeSet[2][]{} -\newcommand*\DeclareMicrotypeSetDefault[2][]{} -\newcommand*\SetProtrusion[3][]{} -\newcommand*\SetExpansion[3][]{} -\newcommand*\SetTracking[3][]{} -\newcommand*\SetExtraKerning[3][]{} -\newcommand*\SetExtraSpacing[3][]{} -\newcommand*\DisableLigatures[2][]{} -\newcommand*\DeclareCharacterInheritance[3][]{} -\newcommand*\DeclareMicrotypeVariants[1]{} -\newcommand*\DeclareMicrotypeAlias[2]{} -\newcommand*\LoadMicrotypeFile[1]{} -\newcommand*\DeclareMicrotypeBabelHook[2]{} -\newcommand*\microtypesetup[1]{} -\newcommand*\microtypecontext[1]{} -\newcommand*\textmicrotypecontext[2]{#2} -\@ifpackageloaded{letterspace}{\let\MT@textls\relax}{% -% -\newcommand*\lsstyle{} -\newcommand\textls[2][]{} -\def\textls#1#{} -\newcommand*\lslig[1]{#1} -%<*package> -} -% \end{macrocode} -% These commands also have a starred version. -% \begin{macrocode} -\def\DeclareMicrotypeSet#1#{\@gobbletwo} -\def\DeclareMicrotypeVariants#1#{\@gobble} -% \end{macrocode} -% Set declarations are only allowed in the preamble (resp. the main -% configuration file). The configuration commands, on the other hand, must be -% allowed in the document, too, since they may be called inside font -% configuration files, which, in principle, may be loaded at any time. -% \begin{macrocode} -\@onlypreamble\DeclareMicrotypeSet -\@onlypreamble\UseMicrotypeSet -\@onlypreamble\DeclareMicrotypeSetDefault -\@onlypreamble\DisableLigatures -\@onlypreamble\DeclareMicrotypeVariants -\@onlypreamble\DeclareMicrotypeBabelHook -% \end{macrocode} -%\begin{macro}{\MT@old@cmd} -% The old command names had one more hunch. -%\changes{v1.8}{2005/04/28}{renamed commands from \cs{..MicroType..} to \cs{..Microtype..}} -% \begin{macrocode} -\def\MT@old@cmd#1#2{% - \newcommand*#1{\MT@warning{% - \string#1 is deprecated. Please use\MessageBreak - \string#2 instead}% - \let #1#2#2}} -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\MT@old@cmd\DeclareMicroTypeAlias\DeclareMicrotypeAlias -\MT@old@cmd\DeclareMicroTypeSet \DeclareMicrotypeSet -\MT@old@cmd\UseMicroTypeSet \UseMicrotypeSet -\MT@old@cmd\LoadMicroTypeFile \LoadMicrotypeFile -% -% \end{macrocode} -%\begin{macro}{\MT@warning} -%\begin{macro}{\MT@warning@nl} -%\begin{macro}{\MT@info} -%\begin{macro}{\MT@info@nl} -%\begin{macro}{\MT@vinfo} -%\changes{v1.6}{2005/01/06}{new macro instead of \cs{ifMT@verbose}} -%\begin{macro}{\MT@error} -%\begin{macro}{\MT@warn@err} -%\changes{v1.7}{2005/03/16}{new macro: for \opt{verbose}\texttt{\quotechar=errors}} -% Communicate. -% \begin{macrocode} -\def\MT@warning{\PackageWarning\MT@MT} -\def\MT@warning@nl#1{\MT@warning{#1\@gobble}} -%<*package> -\def\MT@info{\PackageInfo\MT@MT} -\def\MT@info@nl#1{\MT@info{#1\@gobble}} -\let\MT@vinfo\@gobble -\def\MT@error{\PackageError\MT@MT} -\def\MT@warn@err#1{\MT@error{#1}{% - This error message appears because you loaded the `\MT@MT'\MessageBreak - package with the option `verbose=errors'. Consult the documentation\MessageBreak - in \MT@MT.pdf to find out what went wrong.}} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -% -%\subsubsection{Debugging} -% -%\begin{macro}{\tracingmicrotype} -%\begin{macro}{\MT@dinfo} -%\begin{macro}{\MT@dinfo@nl} -% Cases for \cs{tracingmicrotype}: -%\begin{enum} -% \item almost none -% \item + sets \& lists -% \item + heirs -% \item + slots -% \item + factors -%\end{enum} -% \begin{macrocode} -%<*debug> -\MT@warning@nl{This is the debug version} -\newcount\tracingmicrotype -\tracingmicrotype=2 -\def\MT@info#1{\PackageInfo\MT@MT{#1}\MT@addto@annot{#1}} -\def\MT@info@nl#1{\PackageInfo\MT@MT{#1\@gobble}\MT@addto@annot{#1}} -\let\MT@vinfo\MT@info@nl -\def\MT@warning#1{\PackageWarning\MT@MT{#1}\MT@addto@annot{Warning: #1}} -\def\MT@warning@nl#1{\PackageWarning\MT@MT{#1\@gobble}\MT@addto@annot{Warning: #1}} -\def\MT@dinfo#1#2{\ifnum\tracingmicrotype<#1 \else\MT@info{#2}\fi} -\def\MT@dinfo@nl#1#2{\ifnum\tracingmicrotype<#1 \else\MT@info@nl{#2}\fi} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\tracingmicrotypeinpdf} -%\changes{v2.0}{2006/09/21}{new debug method: mark all fonts with annotations} -% Another debug method: font switches can be marked in the file with a -% small caret, an accompanying popup text box displaying all debug messages. -% -% Cases for \cs{tracingmicrotypeinpdf}: -%\begin{enum}[1] -% \item show new fonts -% \item + show known fonts -%\end{enum} -% \begin{macrocode} -\newcount\tracingmicrotypeinpdf -% \end{macrocode} -%\end{macro} -%\ifpdf\ifx\tracingmicrotypeinpdf\undefined -% \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 -%\begin{verbatim} -%\tracingmicrotypeinpdf=2 -%\end{verbatim} -%\tracingmicrotypeinpdf=2 -%\fi\fi -%\begin{macro}{\MT@pdf@annot} -%\begin{macro}{\MT@addto@annot} -%\begin{macro}{\ifMT@inannot} -% During font setup, we save the text for the popup in \cs{MT@pdf@annot}. -% (This requires \pdftex\ $\geq$~1.30.) -% The \pkg{pdftexcmds} package provides \pdftex's utility commands in \luatex, too. -%\changes{v2.3d}{2009/02/27}{use \pkg{pdftexcmds} for debugging} -% \begin{macrocode} -\RequirePackage{pdftexcmds} -\newif\ifMT@inannot \MT@inannottrue -\let\MT@pdf@annot\@empty -\def\MT@addto@annot#1{\ifnum\tracingmicrotypeinpdf>\z@ \ifMT@inannot - {\def\MessageBreak{^^J\@spaces}% - \MT@xadd\MT@pdf@annot{\pdf@escapestring{#1^^J}}}\fi\fi} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\iftracingmicrotypeinpdfall} -% With \cs{tracingmicrotypeinpdfallfalse}, the output is (hopefully) -% identical, but some font switches will not be displayed; otherwise the output -% is affected, but \emph{all} font switches are visible. In the latter case, we -% also insert a small kern so that multiple font switches are discernable. -% \begin{macrocode} -\newif\iftracingmicrotypeinpdfall -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@show@pdfannot} -% A red caret is shown for fonts which are actually set up by -% {\ifpdf\ifx\tracingmicrotypeinpdf\undefined\else\fontfamily{pzc}\itshape\fi\fi -% Microtype}, -% a green one marks fonts that we have already seen. The |/Caret| annotation -% requires a viewer for version 1.5 (you could use |/Text| if you're -% using an older viewer). -% \begin{macrocode} -\def\MT@show@pdfannot#1{% - \ifnum\tracingmicrotypeinpdf<#1 \else - \iftracingmicrotypeinpdfall\leavevmode\fi - \pdfannot height 4pt width 4pt depth 2pt {% - /Subtype/Caret - /T(\expandafter\string\font@name) - \ifcase#1\or - /Subj(New font)/C[1 0 0] - \else - /Subj(Known font)/C[0 1 0] - \fi - /Contents(\MT@pdf@annot) - }% - \iftracingmicrotypeinpdfall\kern1pt \fi - \global\MT@inannotfalse - \fi -} -% -% -% \end{macrocode} -%\end{macro} -%\ifpdf\ifx\tracingmicrotypeinpdf\undefined\else -% \tracingmicrotypeinpdf0 -% \tracingmicrotype0 -%\fi\fi -% -%\subsubsection{Requirements} -% -%\begin{macro}{\MT@plain} -% The \letterspace\ package works with: -%\begin{enum} -%\changes{v2.3}{2007/11/07}{\letterspace: support for \pkg{eplain}/\pkg{miniltx}} -% \item \pkg{miniltx} -% \item \pkg{eplain} ^^A tested with eplain v3.1, 2006/12/03; v3.2, 2007/11/26; v3.3, 2009/07/21 -% \item \LaTeX -%\end{enum} -% For plain usage, we have to copy some commands from \file{latex.ltx}. -% \begin{macrocode} -%<*plain> -\def\MT@plain{2} -\ifx\documentclass\@undefined - \def\MT@plain{1} - \def\hmode@bgroup{\leavevmode\bgroup} - \def\nfss@text#1{{\mbox{#1}}} - \let\@typeset@protect\relax - \ifx\eplain\@undefined - \def\MT@plain{0} - \def\PackageWarning#1#2{% - \begingroup - \newlinechar=10 % - \def\MessageBreak{^^J(#1)\@spaces\@spaces\@spaces\@spaces}% - \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}% - \endgroup - } - \def\on@line{ on input line \the\inputlineno} - \def\@spaces{\space\space\space\space} - \fi -\fi -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@requires@latex} -%\changes{v2.3b}{2008/05/26}{new macro} -% Better use groups than plain ifs. -% \begin{macrocode} -\def\MT@requires@latex#1{% - \ifnum\MT@plain<#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi -} -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@pdftex@no} -%\changes{v1.6a}{2005/02/02}{new macro} -% \pdftex's features for which we provide an interface here haven't always been -% available, and some specifics have changed over time. Therefore, we have to -% test which \pdftex\ we're using, if any. \cs{MT@pdftex@no} will be used -% throughout the package to respectively do the right thing. -% -% Currently, we have to distinguish seven cases for \pdftex: -%\begin{enum} -% \item not running \pdftex -% \item \pdftex\ ($\less$~0.14f) -% \item + micro-typographic extensions (0.14f,g) -% \item + protrusion relative to 1\,em ($\geq$~0.14h) -% \item + automatic font expansion; -% protrusion no longer has to be set up first; -% scale factor fixed to 1000; -% default \cmd\efcode\,=\,1000 ($\geq$~1.20) -%\changes{v1.8}{2005/04/15}{case 5: \pdftex\ 1.30} -% \item + \cmd{\(left,right)marginkern}; -% \cmd\pdfnoligatures; -% \cmd\pdfstrcmp; -% \cmd\pdfescapestring\ ($\geq$~1.30) -%\changes{v2.0}{2005/08/20}{(beta:1) case 6: \pdftex\ 1.40} -% \item + adjustment of interword spacing; -% extra kerning; -% \cmd\letterspacefont; -% \cmd\pdfmatch\footnote{This command was actually introduced -% in 1.30, but failed on strings longer than 1023 bytes.}; -% \cmd\pdftracingfonts; -% always \etex\ -% ($\geq$~1.40) -%\changes{v2.2}{2007/02/23}{case 7: \pdftex\ 1.40.4} -% \item + \cmd\letterspacefont\ doesn't disable ligatures and kerns; -% \cmd\pdfcopyfont\ -% ($\geq$~1.40.4) -%\end{enum} -%\changes{v1.1}{2004/09/13}{fix: version check -% (reported by \contributor Harald Harders )} -% ^^A private mail, 2004/09/13 -% \begin{macrocode} -\def\MT@pdftex@no{0} -% \end{macrocode} -%\changes{v1.9}{2005/08/29}{compatibility with \texlive\ hack -% (reported by \contributor Herbert Vo\ss{} )} -% ^^A MID: -% A hack circumventing the \texlive\ 2004 hack which undefines the \pdftex\ -% primitives in the format in order to hide the fact that \pdftex\ is being run -% from the user. This has been \emph{fixed} in \texlive\ 2005. -% \begin{macrocode} -\ifx\normalpdftexversion\@undefined \else - \let\pdftexversion \normalpdftexversion - \let\pdftexrevision\normalpdftexrevision - \let\pdfoutput \normalpdfoutput -\fi -% \end{macrocode} -% Old packages might have let \cmd\pdftexversion\ to \cmd\relax. -% \begin{macrocode} -\ifx\pdftexversion\@undefined \else - \ifx\pdftexversion\relax \else -%\MT@dinfo@nl{0}{this is pdftex \the\pdftexversion(\pdftexrevision)} - \def\MT@pdftex@no{7} -%<*package> - \ifnum\pdftexversion = 140 - \ifnum\pdftexrevision < 4 - \def\MT@pdftex@no{6} - \fi - \else -% - \ifnum\pdftexversion < 140 - \def\MT@pdftex@no{5} -%<*package> - \ifnum\pdftexversion < 130 - \def\MT@pdftex@no{4} - \ifnum\pdftexversion < 120 - \def\MT@pdftex@no{3} - \ifnum\pdftexversion = 14 - \ifnum \expandafter`\pdftexrevision < `h - \def\MT@pdftex@no{2} - \ifnum \expandafter`\pdftexrevision < `f - \def\MT@pdftex@no{1} - \fi - \fi - \else - \ifnum\pdftexversion < 14 - \def\MT@pdftex@no{1} - \fi - \fi - \fi - \fi - \fi -% - \fi - \fi -\fi -%\MT@dinfo@nl{0}{pdftex no.: \MT@pdftex@no} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@clear@options} -% If we are not using \pdftex\ or in case it is too old, we disable everything -% and exit. -% \begin{macrocode} -\def\MT@clear@options{% -% \MT@requires@latex1{% - \AtEndOfPackage{\let\@unprocessedoptions\relax}% - \let\CurrentOption\@empty -% }\relax -} -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\ifnum\MT@pdftex@no < -% 2 -% 6 - \MT@warning@nl{You - \ifcase\MT@pdftex@no - don't seem to be using pdftex.\MessageBreak - `\MT@MT' only works with pdftex.\MessageBreak - Try running `pdflatex' instead of - `\ifx\XeTeXversion\@undefined\else xe\fi latex'% - \else - are using a pdftex version older than -% 0.14f% -% 1.40% - .\MessageBreak - `\MT@MT' does not work with this version.\MessageBreak - Please install a newer version of pdftex% - \fi - } - \MT@clear@options\MT@restore@catcodes -\endinput\fi -% \end{macrocode} -%\changes{v2.3c}{2008/09/09}{\luatex\ supported by default} -% Since \luatex\ is included in \texlive\ 2008, we now support it by default, -% even though it's still experimental. Letterspacing doesn't work at all yet, -% since \luatex\ doesn't know the \cmd\letterspacefont\ command. -% \begin{macrocode} -%<*!lua|letterspace> -\ifx\directlua\@undefined \else - \ifx\directlua\relax \else -% \MT@error -% \MT@warning@nl - {`\MT@MT' -% only works with luatex if you generate% -% doesn't currently work with luatex.% - \MessageBreak -% the package with the `lua' option% -% Bye bye% - } -% {} -% \MT@clear@options\MT@restore@catcodes -% \expandafter\expandafter\expandafter\endinput - \fi -\fi -% -% \end{macrocode} -% Still there? Then we can begin: -% We need the \pkg{keyval} package, including the `new' \cmd\KV@@sp@def\ -% implementation. -%\changes{v2.1}{2007/01/15}{fix: \letterspace\ package forgot to load \pkg{keyval}} -% \begin{macrocode} -\RequirePackage{keyval}[1997/11/10] -%<*package> -% \end{macrocode} -%\begin{macro}{\MT@toks} -% We need a token register. -%\changes{v1.9}{2005/09/28}{use instead of \cmd\toks@} -% \begin{macrocode} -\newtoks\MT@toks -% \end{macrocode} -%\end{macro} -%\begin{macro}{\ifMT@if@} -% A scratch if. -% \begin{macrocode} -\newif\ifMT@if@ -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Declarations} -% -%\begin{macro}{\ifMT@protrusion} -%\begin{macro}{\ifMT@expansion} -%\begin{macro}{\ifMT@auto} -%\begin{macro}{\ifMT@selected} -%\begin{macro}{\ifMT@noligatures} -%\begin{macro}{\ifMT@draft} -%\begin{macro}{\ifMT@spacing} -%\begin{macro}{\ifMT@kerning} -%\begin{macro}{\ifMT@tracking} -%\begin{macro}{\ifMT@babel} -% These are the global switches~\dots -% \begin{macrocode} -\newif\ifMT@protrusion -\newif\ifMT@expansion -\newif\ifMT@auto -\newif\ifMT@selected -\newif\ifMT@noligatures -\newif\ifMT@draft -\newif\ifMT@spacing -\newif\ifMT@kerning -\newif\ifMT@tracking -\newif\ifMT@babel -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@pr@level} -%\begin{macro}{\MT@ex@level} -%\begin{macro}{\MT@pr@factor} -%\begin{macro}{\MT@ex@factor} -%\begin{macro}{\MT@sp@factor} -%\begin{macro}{\MT@kn@factor} -% \dots~and numbers. -% \begin{macrocode} -\let\MT@pr@level\tw@ -\let\MT@ex@level\tw@ -\let\MT@pr@factor\@m -\let\MT@ex@factor\@m -\let\MT@sp@factor\@m -\let\MT@kn@factor\@m -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@pr@unit} -%\begin{macro}{\MT@sp@unit} -%\begin{macro}{\MT@kn@unit} -% Default unit for protrusion settings is character width, for spacing -% |space|, for kerning (and tracking) 1\,em. -% \begin{macrocode} -\let\MT@pr@unit\@empty -\let\MT@sp@unit\m@ne -\def\MT@kn@unit{1em} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@stretch} -%\begin{macro}{\MT@shrink} -%\begin{macro}{\MT@step} -% Expansion settings. -% \begin{macrocode} -\let\MT@stretch\m@ne -\let\MT@shrink \m@ne -\let\MT@step \m@ne -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@pr@min} -%\begin{macro}{\MT@pr@max} -%\begin{macro}{\MT@ex@min} -%\begin{macro}{\MT@ex@max} -%\begin{macro}{\MT@sp@min} -%\begin{macro}{\MT@sp@max} -%\begin{macro}{\MT@kn@min} -%\begin{macro}{\MT@kn@max} -%\begin{macro}{\MT@tr@min} -%\begin{macro}{\MT@tr@max} -% Minimum and maximum values allowed by \pdftex. -% \begin{macrocode} -\def\MT@pr@min{-\@m} -\let\MT@pr@max\@m -\let\MT@ex@min\z@ -\let\MT@ex@max\@m -\def\MT@sp@min{-\@m} -\let\MT@sp@max\@m -\def\MT@kn@min{-\@m} -\let\MT@kn@max\@m -% -\def\MT@tr@min{-\@m} -\let\MT@tr@max\@m -%<*package> -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@factor@default} -% Default factor. -% \begin{macrocode} -\def\MT@factor@default{1000 } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@stretch@default} -%\begin{macro}{\MT@shrink@default} -%\begin{macro}{\MT@step@default} -% Default values for expansion. -% \begin{macrocode} -\def\MT@stretch@default{20 } -\def\MT@shrink@default{20 } -\def\MT@step@default{4 } -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@letterspace} -%\begin{macro}{\MT@letterspace@default} -% Default value for letterspacing (in thousandths of 1\,em). -% \begin{macrocode} -% -\let\MT@letterspace\m@ne -\def\MT@letterspace@default{100} -%<*package> -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\ifMT@document} -% Our private test whether we're still in the preamble. -% \begin{macrocode} -\newif\ifMT@document -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Auxiliary macros} -% -%\begin{macro}{\MT@maybe@etex} -%\changes{v2.2}{2007/05/01}{use catcode trickery} -%\changes{v2.3a}{2007/12/29}{removed} -% For definitions that depend on \etex\ features. -% \begin{macrocode} -\ifcase 0% - \ifx\eTeXversion\@undefined 1\else - \ifx\eTeXversion\relax 1\else - \ifcase\eTeXversion 1\fi - \fi - \fi -\else - \catcode`\^^Q=9 \catcode`\^^X=14 -\fi -%\MT@dinfo@nl{0}{this is -%^^Q not -% etex} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@requires@pdftex} -% For definitions that depend on a particular \pdftex\ version. -% \begin{macrocode} -\def\MT@requires@pdftex#1{% - \ifnum\MT@pdftex@no<#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi -} -%\MT@requires@pdftex6{\pdftracingfonts=1 }\relax -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@requires@luatex} -%\changes{v2.2}{2007/05/10}{(basic) support for \luatex} -% For definitions that depend on \luatex. -% \begin{macrocode} -%<*lua> -\let\MT@requires@luatex\@secondoftwo -\ifx\directlua\@undefined \else - \ifx\directlua\relax \else - \let\MT@requires@luatex\@firstoftwo - \fi -\fi -%\MT@dinfo@nl0{this is \MT@requires@luatex{}{not }luatex} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@lua} -% Communicate with |lua|. -% Beginning with \luatex\ 0.36, \cmd\directlua\ no longer requires a state -% number. -%\changes{v2.3d}{2009/03/25}{update for \luatex\ 0.36} -% \cmd\luatexversion\ ought to have been enabled by the format. -% \begin{macrocode} -\MT@requires@luatex{ -\ifnum\luatexversion<36 - \def\MT@lua{\directlua0} -\else - \def\MT@lua{\directlua} -\fi -% \end{macrocode} -%\end{macro} -% Some functions are loaded from a dedicated |lua| file. This avoids character -% escaping problems and incompatibilities between versions of \luatex. -% If available, we'll use the \pkg{luatextra} package to load the module. -% \begin{macrocode} -\MT@lua{ - if (luatextra and luatextra.use_module) then - luatextra.use_module("microtype") - else - dofile(kpse.find_file("microtype.lua")) - end} -}\relax -% -% -% -% \end{macrocode} -% Here it begins. The module was contributed by \'Elie Roux. -%\changes{v2.4}{2009/11/12}{new file \file{microtype.lua} containing the \texttt{lua} functions -% (contributed by \contributor \'Elie Roux )} -% \begin{macrocode} -%<*luafile> -if microtype then - -- we simply don't load -else - -microtype = {} - -microtype.module = { - name = "microtype", - version = 2.4, - date = "2010/01/10", - description = "microtype module.", - author = "R Schlicht", - copyright = "R Schlicht", - license = "LPPL", -} - -if luatextra and luatextra.provides_module then - luatextra.provides_module(microtype.module) -end - -% -% \end{macrocode} -% To be continued, but first back to primitives. -%\begin{macro}{\MT@glet} -%\changes{v1.9f}{2006/08/09}{new macro} -% Here's the forgotten one. -% \begin{macrocode} -%<*package|letterspace> -\def\MT@glet{\global\let} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@exp@cs} -%\begin{macro}{\MT@exp@gcs} -%\changes{v2.3b}{2008/03/07}{new macro: reduce save stack size} -% Commands to create command sequences. Those that are going to be defined -% globally should be created inside a group so that the save stack won't -% explode. -% \begin{macrocode} -\def\MT@exp@cs#1#2{\expandafter#1\csname#2\endcsname} -%<*package> -\def\MT@exp@gcs#1#2{\begingroup\expandafter\endgroup\expandafter#1\csname#2\endcsname} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\changes{v1.4b}{2004/11/21}{optimisation: use less \cmd\expandafter s and \cmd\csname s} -%\begin{macro}{\MT@def@n} -%\begin{macro}{\MT@gdef@n} -%\changes{v1.9f}{2006/08/09}{new macros: global variants} -% This is \cmd\@namedef\ and global. -% \begin{macrocode} -\def\MT@def@n{\MT@exp@cs\def} -\def\MT@gdef@n{\MT@exp@gcs\gdef} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@edef@n} -%\begin{macro}{\MT@xdef@n} -% Its expanding versions. -% \begin{macrocode} -% -\def\MT@edef@n{\MT@exp@cs\edef} -%<*package> -\def\MT@xdef@n{\MT@exp@gcs\xdef} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@let@nc} -%\begin{macro}{\MT@glet@nc} -% \cmd\let\ a \cmd\csname\ sequence to a command. -% \begin{macrocode} -\def\MT@let@nc{\MT@exp@cs\let} -\def\MT@glet@nc{\MT@exp@gcs\MT@glet} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@let@cn} -% \cmd\let\ a command to a \cmd\csname\ sequence. -% \begin{macrocode} -\def\MT@let@cn#1#2{\expandafter\let\expandafter#1\csname #2\endcsname} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@let@nn} -%\begin{macro}{\MT@glet@nn} -% \cmd\let\ a \cmd\csname\ sequence to a \cmd\csname\ sequence. -% \begin{macrocode} -\def\MT@let@nn{\MT@exp@cs\MT@let@cn} -\def\MT@glet@nn{\MT@exp@gcs{\global\expandafter\MT@let@cn}} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@@font} -% Remove trailing space from the font name. -% \begin{macrocode} -\def\MT@@font{\expandafter\string\MT@font} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@exp@one@n} -% Expand the second token once and enclose it in braces. -% \begin{macrocode} -% -\def\MT@exp@one@n#1#2{\expandafter#1\expandafter{#2}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@exp@two@c} -% Expand the next two tokens after \meta{\#1} once. -% \begin{macrocode} -\def\MT@exp@two@c#1{\expandafter\expandafter\expandafter#1\expandafter} -%<*package> -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@exp@two@n} -%\changes{v1.9}{2005/09/28}{new macros: less \cmd\expandafter s} -% Expand the next two tokens after \meta{\#1} once and enclose them in braces. -% \begin{macrocode} -\def\MT@exp@two@n#1#2#3{% - \expandafter\expandafter\expandafter - #1\expandafter\expandafter\expandafter - {\expandafter#2\expandafter}\expandafter{#3}} -% \end{macrocode} -%\end{macro} -% You do not wonder why |\MT@exp@one@c| doesn't exist, do you? -%\changes{v1.6}{2005/01/19}{use \etex's \cs{ifcsname} and \cs{ifdefined} if defined} -%\begin{macro}{\MT@ifdefined@c@T} -%\changes{v1.9a}{2005/11/08}{new macros: true case only} -%\begin{macro}{\MT@ifdefined@c@TF} -%\begin{macro}{\MT@ifdefined@n@T} -%\begin{macro}{\MT@ifdefined@n@TF} -% Wrapper for testing whether command resp. \cmd\csname\ sequence is defined. -% If we are running \etex, we will use its primitives \cs{ifdefined} and -% \cs{ifcsname}, which decreases memory use substantially. -% \begin{macrocode} -\def\MT@ifdefined@c@T#1{% -^^X \ifdefined#1\expandafter\@firstofone\else\expandafter\@gobble\fi -^^Q \ifx#1\@undefined\expandafter\@gobble\else\expandafter\@firstofone\fi -} -% -\def\MT@ifdefined@c@TF#1{% -^^X \ifdefined#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi -%^^Q \ifx#1\@undefined -%^^Q \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi -} -\def\MT@ifdefined@n@T#1{% -^^X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi -%^^Q \begingroup\MT@exp@two@c\endgroup\ifx\csname #1\endcsname\relax -%^^Q \expandafter\@gobble\else\expandafter\@firstofone\fi -} -%<*package> -\def\MT@ifdefined@n@TF#1{% -^^X \ifcsname#1\endcsname\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi -^^Q \begingroup\MT@exp@two@c\endgroup\ifx\csname #1\endcsname\relax -^^Q \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@detokenize@n} -%\changes{v1.9d}{2006/03/08}{new macro: use \cmd\detokenize\ if available} -%\begin{macro}{\MT@detokenize@c} -%\changes{v1.9}{2005/08/17}{fix the \nonetex\ version} -%\changes{v2.3c}{2008/08/23}{fix: remove last space only -% (reported by \contributor Ulrich Dirr )} -% ^^A private mail, 2008/08/22 -%\begin{macro}{\MT@rem@last@space} -% Translate a macro into a token list. With \etex, we can use \cmd\detokenize. -% We also need to remove the last trailing space; and only the last one -- -% therefore the fiddling (and the \cmd\string\ isn't perfect, of course). -% \begin{macrocode} -\def\MT@detokenize@n#1{% -^^X \expandafter\MT@rem@last@space\detokenize{#1} \@nil -^^Q \string#1% -} -\def\MT@detokenize@c#1{% -^^X \MT@exp@one@n\MT@detokenize@n#1% -^^Q \MT@exp@two@c\MT@rem@last@space\strip@prefix\meaning#1 \@nil -} -\def\MT@rem@last@space#1 #2{#1% - \ifx\@nil#2\else \space - \expandafter\MT@rem@last@space\expandafter#2\fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@ifempty} -% Test whether argument is empty. -%\changes{v1.1}{2004/09/15}{fix: use category code 12 for the percent character -% (reported by \contributor Tom Kink )} -% ^^A MID: <2qrkp9F134l6lU1@uni-berlin.de> -% \begin{macrocode} -% -\begingroup -\catcode`\%=12 -\catcode`\&=14 -\gdef\MT@ifempty#1{& - \if %#1%& - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi -} -\endgroup -%<*package> -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ifint} -% Test whether argument is an integer, using an old trick by Mr. Arseneau, -%\changes{v1.9a}{2005/11/03}{use \cmd\pdfmatch\ if available} -% or the latest and greatest from \pdftex\ -%\changes{v2.2}{2007/05/10}{employ \luatex\ features if available} -% or \luatex\ (which also allows negative numbers, as required by the -% \opt{letterspace} option). -% \begin{macrocode} -\MT@requires@pdftex6{ -%<*lua> - \MT@requires@luatex{ - \def\MT@ifint#1{\csname\MT@lua{microtype.ifint([[#1]])}\endcsname} - }{ -% -% - \def\MT@ifint#1{% - \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax - \expandafter\@secondoftwo - \else - \expandafter\@firstoftwo - \fi - } -%<*package> -% } -}{ - \def\MT@ifint#1{% - \if!\ifnum9<1#1!\else?\fi - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - } -} -% -% -%<*luafile> -function microtype.ifint(s) - if string.find(s,"^-*[0-9]+ *$") then - tex.write("@firstoftwo") - else - tex.write("@secondoftwo") - end -end - -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ifdimen} -% Test whether argument is dimension (or number). -%\changes{v1.4b}{2004/11/22}{don't set \cs{MT@count} globally (save stack problem)} -%\changes{v1.7}{2005/03/15}{comparison with 1 to allow size smaller than 1 -% (suggested by \contributor Andreas B\"uhmann )} -% ^^A private mail, 2005/03/15 -%\changes{v1.9b}{2006/01/05}{use \cmd\pdfmatch\ if available} -% (|nd| and |nc| are new Didot resp. Cicero, added in \pdftex\ 1.30; |px| is a pixel.) -%\changes{v2.2}{2007/05/10}{employ \luatex\ features if available} -%\todo{fix \texttt{lua} expression} -% \begin{macrocode} -%<*package> -\MT@requires@pdftex6{ -%<*lua> - \MT@requires@luatex{ - \def\MT@ifdimen#1{\csname\MT@lua{microtype.ifdimen([[#1]])}\endcsname} - }{ -% - \def\MT@ifdimen#1{% - \ifcase\pdfmatch{^([0-9]+([.,][0-9]+)?|[.,][0-9]+)% - (em|ex|cm|mm|in|pc|pt|dd|cc|bp|sp|nd|nc|px)? *$}{#1}\relax - \expandafter\@secondoftwo - \else - \expandafter\@firstoftwo - \fi - } -% } -}{ - \def\MT@ifdimen#1{% - \setbox\z@=\hbox{% - \MT@count=1#1\relax - \ifnum\MT@count=\@ne - \aftergroup\@secondoftwo - \else - \aftergroup\@firstoftwo - \fi - }% - } -} -% -%<*luafile> -function microtype.ifdimen(s) - if (string.find(s, "^-*[0-9]+(%a*) *$") or - string.find(s, "^-*[0-9]*[.,][0-9]+(%a*) *$")) then - tex.write("@firstoftwo") - else - tex.write("@secondoftwo") - end -end - -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ifdim} -% Test floating point numbers. -% \begin{macrocode} -%<*package> -\def\MT@ifdim#1#2#3{% - \ifdim #1\p@ #2 #3\p@ - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ifstreq} -% Test whether two strings (fully expanded) are equal. -%\changes{v1.9a}{2005/11/03}{use \cmd\pdfstrcmp\ if available} -%\changes{v2.2}{2007/03/07}{fix: \nonetex\ version shouldn't use \cmd\x\ and \cmd\y\ -% (found by \contributor Wiebke Petersen )} -% ^^A MID: -%\changes{v2.2}{2007/05/10}{employ \luatex\ features if available} -% \begin{macrocode} -\MT@requires@pdftex5{ -%<*lua> - \MT@requires@luatex{ - \def\MT@ifstreq#1#2{\csname\MT@lua{microtype.ifstreq([[#1]],[[#2]])}\endcsname} - }{ -% - \def\MT@ifstreq#1#2{% - \ifcase\pdfstrcmp{#1}{#2}\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - } -% } -}{ - \def\MT@ifstreq#1#2{% - \edef\MT@res@a{#1}% - \edef\MT@res@b{#2}% - \ifx\MT@res@a\MT@res@b - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - } -} -% -%<*luafile> -function microtype.ifstreq(s1, s2) - if s1 == s2 then - tex.write("@firstoftwo") - else - tex.write("@secondoftwo") - end -end - -% \end{macrocode} -% And here we end the |lua| file. -% \begin{macrocode} -end -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@xadd} -%\changes{v1.8}{2005/04/17}{simplified} -% Add item to a list. -% \begin{macrocode} -%<*package> -\def\MT@xadd#1#2{% - \ifx#1\relax - \xdef#1{#2}% - \else - \xdef#1{#1#2}% - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@xaddb} -% Add item to the beginning. -% \begin{macrocode} -\def\MT@xaddb#1#2{% - \ifx#1\relax - \xdef#1{#2}% - \else - \xdef#1{#2#1}% - \fi -} -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@map@clist@n} -%\changes{v1.8}{2005/04/17}{new macro: used instead of \cmd\@for} -%\changes{v1.9a}{2005/11/03}{following \LaTeX3} -%\begin{macro}{\MT@map@clist@c} -%\begin{macro}{\MT@map@clist@} -%\begin{macro}{\MT@clist@function} -%\begin{macro}{\MT@clist@break} -% Run \meta{\#2} on all elements of the comma list \meta{\#1}. This and the -% following is modelled after \LaTeX3 commands. -% \begin{macrocode} -%<*package|letterspace> -\def\MT@map@clist@n#1#2{% - \ifx\@empty#1\else - \def\MT@clist@function##1{#2}% - \MT@map@clist@#1,\@nil,\@nnil - \fi -} -\def\MT@map@clist@c#1{\MT@exp@one@n\MT@map@clist@n#1} -\def\MT@map@clist@#1,{% - \ifx\@nil#1% - \expandafter\MT@clist@break - \fi - \MT@clist@function{#1}% - \MT@map@clist@ -} -\let\MT@clist@function\@gobble -\def\MT@clist@break#1\@nnil{} -%<*package> -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@map@tlist@n} -%\changes{v1.8}{2005/04/16}{new macro: used instead of \cmd\@tfor} -%\begin{macro}{\MT@map@tlist@c} -%\begin{macro}{\MT@map@tlist@} -%\begin{macro}{\MT@tlist@break} -% Execute \meta{\#2} on all elements of the token list \meta{\#1}. -% \cs{MT@tlist@break} can be used to jump out of the loop. -% \begin{macrocode} -\def\MT@map@tlist@n#1#2{\MT@map@tlist@#2#1\@nnil} -\def\MT@map@tlist@c#1#2{\expandafter\MT@map@tlist@\expandafter#2#1\@nnil} -\def\MT@map@tlist@#1#2{% - \ifx\@nnil#2\else - #1{#2}% - \expandafter\MT@map@tlist@ - \expandafter#1% - \fi -} -\def\MT@tlist@break#1\@nnil{\fi} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\ifMT@inlist@} -%\begin{macro}{\MT@in@clist} -% Test whether item \meta{\#1} is in comma list \meta{\#2}. -%^^A\changes{v1.4b}{2004/11/22}{fix: compare with \cmd\\ instead of \cmd\relax\ -%^^A (discovered by \contributor Herb Schulz )} -%^^A ^^A MID: -% Using \cmd\pdfmatch\ would be slower. -%\changes{v1.9a}{2005/11/03}{fix} -%\changes{v2.3}{2007/11/14}{fix: don't use \cmd\x\ -% (reported by \contributor Peter Meier )} -% ^^A private mail, 2007/11/12 -% \begin{macrocode} -\newif\ifMT@inlist@ -\def\MT@in@clist#1#2{% - \def\MT@res@a##1,#1,##2##3\@nnil{% - \ifx##2\@empty - \MT@inlist@false - \else - \MT@inlist@true - \fi - }% - \expandafter\MT@res@a\expandafter,#2,#1,\@empty\@nnil -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@rem@from@clist} -% Remove item \meta{\#1} from comma list \meta{\#2}. This is basically -% \cmd\@removeelement\ from \file{ltcntrl.dtx}. -%\changes{v1.9}{2005/10/28}{new macro: remove an item from a comma list} -%\changes{v1.9a}{2005/11/03}{fix} -%\changes{v1.9e}{2006/07/26}{model after \cmd\@removeelement} -% Using \cmd\pdfmatch\ and \cmd\pdflastmatch\ here would be really slow! -% \begin{macrocode} -\def\MT@rem@from@clist#1#2{% - \def\MT@res@a##1,#1,##2\MT@res@a{##1,##2\MT@res@b}% - \def\MT@res@b##1,\MT@res@b##2\MT@res@b{\ifx,##1\@empty\else##1\fi}% - \xdef#2{\MT@exp@two@c\MT@res@b\MT@res@a\expandafter,#2,\MT@res@b,#1,\MT@res@a}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@in@tlist} -%\begin{macro}{\MT@in@tlist@} -% Test whether item is in token list. Since this isn't too elegant, I thought -% that at least here, \cmd\pdfmatch\ would be more efficient -- however, it -% turned out to be even slower than this solution. -% \begin{macrocode} -\def\MT@in@tlist#1#2{% - \MT@inlist@false - \def\MT@res@a{#1}% - \MT@map@tlist@c#2\MT@in@tlist@ -} -\def\MT@in@tlist@#1{% - \edef\MT@res@b{#1}% - \ifx\MT@res@a\MT@res@b - \MT@inlist@true - \expandafter\MT@tlist@break - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@in@rlist} -%\changes{v1.8}{2005/04/20}{made recursive} -%\begin{macro}{\MT@in@rlist@} -%\begin{macro}{\MT@in@rlist@@} -%\begin{macro}{\MT@size@name} -% Test whether size \cs{MT@size} is in a list of ranges. Store the name of the -% list in \cs{MT@size@name} -% \begin{macrocode} -\def\MT@in@rlist#1{% - \MT@inlist@false - \MT@map@tlist@c#1\MT@in@rlist@ -} -\def\MT@in@rlist@#1{\expandafter\MT@in@rlist@@#1} -\def\MT@in@rlist@@#1#2#3{% - \MT@ifdim{#2}=\m@ne{% - \MT@ifdim{#1}=\MT@size - \MT@inlist@true - \relax - }{% - \MT@ifdim\MT@size<{#1}\relax{% - \MT@ifdim\MT@size<{#2}% - \MT@inlist@true - \relax - }% - }% - \ifMT@inlist@ - \def\MT@size@name{#3}% - \expandafter\MT@tlist@break - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@loop} -%\changes{v1.2}{2004/09/23}{fix: new macro, used instead of \cmd\loop} -%\begin{macro}{\MT@iterate} -%\begin{macro}{\MT@repeat} -% This is the same as \LaTeX's \cmd\loop, which we mustn't use, since this -% could confuse an outer \cmd\loop\ in the document. -% \begin{macrocode} -% -\def\MT@loop#1\MT@repeat{% - \def\MT@iterate{#1\relax\expandafter\MT@iterate\fi}% - \MT@iterate \let\MT@iterate\relax -} -\let\MT@repeat\fi -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@while@num} -% Execute \meta{\#3} from \meta{\#1} up to (excluding) \meta{\#2} (much faster -% than \LaTeX's \cmd\@whilenum). -% \begin{macrocode} -\def\MT@while@num#1#2#3{% - \@tempcnta#1\relax - \MT@loop #3% - \advance\@tempcnta \@ne - \ifnum\@tempcnta < #2\MT@repeat -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@do@font} -% Execute \meta{\#1} 256 times. -% \begin{macrocode} -\def\MT@do@font{\MT@while@num\z@\@cclvi} -%<*package> -% \end{macrocode} -%\end{macro} -%\changes{v1.4}{2004/11/12}{use one instead of five counters} -%\begin{macro}{\MT@count} -%\begin{macro}{\MT@increment} -% Increment macro \meta{\#1} by one. Saves using up too many counters. -%\changes{v1.7}{2005/03/07}{use \etex's \cmd\numexpr\ if available} -% The \etex\ way is slightly faster. -% \begin{macrocode} -\newcount\MT@count -\def\MT@increment#1{% -^^X \edef#1{\number\numexpr #1 + 1\relax}% -^^Q \MT@count=#1\relax -^^Q \advance\MT@count \@ne -^^Q \edef#1{\number\MT@count}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@scale} -%\changes{v1.7}{2005/02/12}{new macro: use \etex's \cs{numexpr} if available} -%\changes{v1.8}{2005/03/30}{fix: remove spaces in \nonetex\ variant -% (reported by \contributor Mark Rossi )} -% ^^A MID: -% Multiply and divide a counter. If we are using \etex, we will use its -% \cmd\numexpr\ primitive. This has the advantage that it is less likely to -% run into arithmetic overflow. The result of the division will be rounded -% instead of truncated. Therefore, we'll get a different (more accurate) -% result in about half of the cases. -% \begin{macrocode} -\def\MT@scale#1#2#3{% -^^Q \multiply #1 #2\relax - \ifnum #3 = \z@ -^^X #1=\numexpr #1 * #2\relax - \else -^^X #1=\numexpr #1 * #2 / #3\relax -^^Q \divide #1 #3\relax - \fi -} -% \end{macrocode} -%\end{macro} -%\changes{v1.7}{2005/03/07}{shorter command names} -%\begin{macro}{\MT@abbr@pr} -%\begin{macro}{\MT@abbr@ex} -%\begin{macro}{\MT@abbr@pr@c} -%\begin{macro}{\MT@abbr@ex@c} -%\begin{macro}{\MT@abbr@pr@inh} -%\begin{macro}{\MT@abbr@ex@inh} -%\begin{macro}{\MT@abbr@nl} -%\begin{macro}{\MT@abbr@sp} -%\begin{macro}{\MT@abbr@sp@c} -%\begin{macro}{\MT@abbr@sp@inh} -%\begin{macro}{\MT@abbr@kn} -%\begin{macro}{\MT@abbr@kn@c} -%\begin{macro}{\MT@abbr@kn@inh} -%\begin{macro}{\MT@abbr@tr} -%\begin{macro}{\MT@abbr@tr@c} -% Some abbreviations. Thus, we can have short command names but full-length -% log output. -% \begin{macrocode} -\def\MT@abbr@pr{protrusion} -\def\MT@abbr@ex{expansion} -\def\MT@abbr@pr@c{protrusion codes} -\def\MT@abbr@ex@c{expansion codes} -\def\MT@abbr@pr@inh{protrusion inheritance} -\def\MT@abbr@ex@inh{expansion inheritance} -\def\MT@abbr@nl{noligatures} -\def\MT@abbr@sp{spacing} -\def\MT@abbr@sp@c{interword spacing codes} -\def\MT@abbr@sp@inh{interword spacing inheritance} -\def\MT@abbr@kn{kerning} -\def\MT@abbr@kn@c{kerning codes} -\def\MT@abbr@kn@inh{kerning inheritance} -\def\MT@abbr@tr{tracking} -\def\MT@abbr@tr@c{tracking amount} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@rbba@protrusion} -%\begin{macro}{\MT@rbba@expansion} -%\begin{macro}{\MT@rbba@spacing} -%\begin{macro}{\MT@rbba@kerning} -%\begin{macro}{\MT@rbba@tracking} -% These we also need the other way round. -% \begin{macrocode} -\def\MT@rbba@protrusion{pr} -\def\MT@rbba@expansion{ex} -\def\MT@rbba@spacing{sp} -\def\MT@rbba@kerning{kn} -\def\MT@rbba@tracking{tr} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@features} -%\changes{v1.9b}{2006/01/17}{use throughout the package to adjust to beta-ness} -%\begin{macro}{\MT@features@long} -% We can work on these lists to save some guards in the \file{dtx} file. -% \begin{macrocode} -\def\MT@features{pr,ex,sp,kn,tr} -\def\MT@features@long{protrusion,expansion,spacing,kerning,tracking} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@is@feature} -%\changes{v1.9a}{2005/11/03}{new macro: check for \pdftex\ feature} -% 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}, -% then comes the action. -% \begin{macrocode} -\def\MT@is@feature#1{% - \MT@exp@one@n\MT@in@clist\@tempa\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'.}% - \expandafter\@gobble - \fi -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Compatibility}\label{sub:compatibility} -% -% For the record, the following \LaTeX\ kernel commands will be modified by -% \microtype: -%\begin{itemize} -% \item \cmd\pickup@font -% \item \cmd\do@subst@correction -% \item \cmd\add@accent\ (all in section~\ref{sssec:impl.hook}) -% \item \cmd\showhyphens\ (in section~\ref{sssec:impl.options}) -%\end{itemize} -% -% The \pkg{wordcount} package redefines the font-switching commands, which will -% break \microtype. Since \microtype\ doesn't have an effect on the number of -% words in the document anyway, we will simply disable ourselves. -%\changes{v2.2}{2007/02/11}{disable \microtype\ if \pkg{wordcount} is loaded -% (reported by \contributor Ross Hetherington )} -% ^^A MID: -% \begin{macrocode} -\@ifl@aded{tex}{wordcount}{% - \MT@warning@nl{Detected the `wordcount' utility.\MessageBreak - Disabling `\MT@MT', since it wouldn't work}% - \MT@clear@options\MT@restore@catcodes\endinput}\relax -% \end{macrocode} -%\begin{macro}{\MT@setup@} -%\changes{v1.9a}{2005/11/21}{defer setup until the end of the preamble} -%\changes{v1.9e}{2006/07/06}{empty \cs{MT@setup@} after use -% (compatibility with the \pkg{combine} class)} -%\changes{v2.3e}{2009/08/31}{make space-unaware -% (requested by \contributor Marcin Borkowski )} -% ^^A private mail, 2009/08/31 -% The setup is deferred until the end of the preamble. This has a couple of -% advantages: \cs{microtypesetup} can be used to change options later on in the -% preamble, and fonts don't have to be set up before \microtype. -% \begin{macrocode} -% -%\MT@requires@latex1{ -\let\MT@setup@\@empty -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@addto@setup} -% We use our private hook to have better control over the timing. -% This will also work with \pkg{eplain}, but not with \pkg{miniltx} alone. -% \begin{macrocode} -\def\MT@addto@setup{\g@addto@macro\MT@setup@} -% \end{macrocode} -%\end{macro} -% Don't hesitate with \pkg{miniltx}. -% \begin{macrocode} -%}{\let\MT@addto@setup\@firstofone} -% \end{macrocode} -%\begin{macro}{\MT@with@package@T} -% We almost never do anything if a package is not loaded. -% \begin{macrocode} -\def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble} -%<*package> -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@with@babel@and@T} -%\changes{v2.2}{2007/05/25}{also inspect class options} -% \LaTeX's \cmd\@ifpackagewith\ ignores the class options. -% \begin{macrocode} -\def\MT@with@babel@and@T#1{% - \MT@ifdefined@n@T{opt@babel.\@pkgextension}{% - \@expandtwoargs\MT@in@clist{#1} - {\csname opt@babel.\@pkgextension\endcsname,\@classoptionslist}% - \ifMT@inlist@\expandafter\@gobble\fi - }\@gobble -} -% \end{macrocode} -%\end{macro} -% Don't load \letterspace. -% \begin{macrocode} -\MT@let@nc{ver@letterspace.sty}\@empty -% \end{macrocode} -%\begin{macro}{\MT@ledmac@setup} -%\begin{macro}{\MT@led@unhbox@line} -%\begin{macro}{\MT@led@kern} -% The \pkg{ledmac} package first saves each paragraph in a box, from which it -% then splits off the lines one by one. This will destroy character protrusion. -% (There aren't any problems with the \pkg{lineno} package, since it takes a -% different approach.) -%\iffalse -% We issue a warning, so that nobody can say they didn't know. -%\changes{v1.6}{2004/12/29}{warning when using the \pkg{ledmac} package} -% --- This is fixed in \pdftex\ 1.21a, so we no longer warn. -%\changes{v1.6a}{2005/02/02}{no warning when using the \pkg{ledmac} package} -% --- Actually, it was completely broken in 1.21a, but 1.21b provides a work-around. -%\fi -% ---~\dots~--- -%\changes{v1.8}{2005/04/15}{character protrusion with \pkg{ledmac}} -% After much to and fro, the situation has finally settled and there is a fix. -% Beginning with \pdftex\ version 1.21b together with \file{ledpatch.sty} as of -% 2005/06/02 (v0.4), character protrusion will work at last. -% -% Peter Wilson was so kind to provide the \cmd\l@dunhbox@line\ hook in -% \pkg{ledmac} to allow for protrusion. \cmd\leftmarginkern\ and -% \cmd\rightmarginkern\ are new primitives of \pdftex\ 1.21b (aka. 1.30.0). -% \begin{macrocode} -\MT@requires@pdftex5{ - \def\MT@ledmac@setup{% - \ifMT@protrusion - \MT@ifdefined@c@TF\l@dunhbox@line{% - \MT@info@nl{Patching ledmac to enable character protrusion}% - \newdimen\MT@led@kern - \let\MT@led@unhbox@line\l@dunhbox@line - \renewcommand*{\l@dunhbox@line}[1]{% - \ifhbox##1% - \MT@led@kern=\rightmarginkern##1% - \kern\leftmarginkern##1% - \MT@led@unhbox@line##1% - \kern\MT@led@kern - \fi - }% - }{% - \MT@warning@nl{% - Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% - }% - \fi - } -}{ - \def\MT@ledmac@setup{% - \ifMT@protrusion - \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 - Upgrade pdftex to version 1.30 or later}% - \fi - } -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@restore@p@h} -% Restore meaning of \cmd\% and \cmd\#. -% \begin{macrocode} -\def\MT@restore@p@h{\chardef\%`\% \chardef\#`\# } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@setupfont@hook} -% This hook will be executed every time a font is set up (inside a group). -% -% In the preamble, we check for the packages each time a font is set up. -% Thus, it will work regardless when the packages are loaded. -% -% Even for packages that don't activate any characters in the preamble (like -% \pkg{babel} and \pkg{csquotes}), we have to check here, too, in case they were -% loaded before \microtype, and a font is loaded \cmd\AtBeginDocument, before -% \microtype. -% (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} -\def\MT@setupfont@hook{% -% \end{macrocode} -%\iffalse -%\changes{v1.7}{2005/02/06}{compatibility with the \pkg{chemsym} package} -% The \pkg{chemsym} package redefines, among other commands, the Hungarian -% umlaut \cmd\H\ in a way that cannot be parsed by \microtype. As a work-around, -% we restore the usual definition of \cmd\H\ before setting up the font (which -% will be done inside a group). -%\changes{v1.8}{2005/03/24}{remove superfluous \pkg{chemsym} hook} -% --- Since version 1.7, this is no longer needed, since our character parsing -% is robust enough now. -% -%\changes{v1.7}{2005/03/10}{compatibility with the \pkg{statex} package} -% Same for \pkg{statex}. -%\changes{v1.8}{2005/03/24}{remove superfluous \pkg{statex} hook} -% --- No longer needed, either. -%\fi -%\changes{v1.8}{2005/03/30}{restore percent character if Spanish \pkg{babel} is loaded} -%\changes{v2.2}{2007/02/02}{restore percent character if Galician \pkg{babel} is loaded} -%\changes{v2.3a}{2008/01/29}{restore percent character if Mexican \pkg{babel} is loaded} -% Spanish (and Galician and Mexican) \pkg{babel} modify \cmd\%, storing the -% original meaning in \cmd\percentsign. -% \begin{macrocode} - \MT@if@false - \MT@with@babel@and@T{spanish} \MT@if@true - \MT@with@babel@and@T{galician}\MT@if@true - \MT@with@babel@and@T{mexican} \MT@if@true - \ifMT@if@\MT@ifdefined@c@T\percentsign{\let\%\percentsign}\fi -% \end{macrocode} -%\changes{v1.8}{2005/04/22}{restore \pkg{csquotes}'s active characters} -% Using \cmd\@disablequotes, we can restore the original meaning of all -% characters made active by \pkg{csquotes}. -% (It would be doable for older versions, too, but we won't bother.) -% \begin{macrocode} - \MT@with@package@T{csquotes}{% - \@ifpackagelater{csquotes}{2005/05/11}\@disablequotes\relax}% -% \end{macrocode} -% \pkg{hyperref} redefines \cmd\% and \cmd\# inside a \cmd\url. We restore -% the original meanings (which we can only hope are correct). -%\changes{v1.8}{2005/05/20}{restore \cmd\% and \cmd\# when \pkg{hyperref} is loaded} -% Same for \pkg{tex4ht}. -%\changes{v1.9d}{2006/02/27}{restore \cmd\% and \cmd\# when \pkg{tex4ht} is loaded -% (reported by \contributor Peter Dyballa )} -% ^^A private mail, 2006/02/26 -% \begin{macrocode} - \MT@if@false - \MT@with@package@T{hyperref}\MT@if@true - \MT@with@package@T{tex4ht} \MT@if@true - \ifMT@if@\MT@restore@p@h\fi -} -% \end{macrocode} -%\end{macro} -% Check again at the end of the preamble. -% \begin{macrocode} -% -\MT@addto@setup{% -%<*package> -% \end{macrocode} -%\changes{v1.4}{2004/11/04}{check for \pkg{pdfcprot}} -% Our competitor, the \pkg{pdfcprot} package, must not be tolerated! -% \begin{macrocode} - \MT@with@package@T{pdfcprot}{% - \MT@error{Detected the `pdfcprot' package!\MessageBreak - `\MT@MT' and `pdfcprot' may not be used together}{% -The `pdfcprot' package provides an interface to character protrusion.\MessageBreak -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 -% \end{macrocode} -% We can clean up \cs{MT@setupfont@hook} now. -% \begin{macrocode} - \let\MT@setupfont@hook\@empty - \MT@if@false - \MT@with@babel@and@T{spanish} \MT@if@true - \MT@with@babel@and@T{galician}\MT@if@true - \MT@with@babel@and@T{mexican} \MT@if@true - \ifMT@if@ - \g@addto@macro\MT@setupfont@hook{% - \MT@ifdefined@c@T\percentsign{\let\%\percentsign}}% - \fi - \MT@with@package@T{csquotes}{% - \@ifpackagelater{csquotes}{2005/05/11}{% - \g@addto@macro\MT@setupfont@hook\@disablequotes - }{% - \MT@warning@nl{% - Should you receive warnings about unknown slot\MessageBreak - numbers, try upgrading the `csquotes' package}% - }% - }% -% \end{macrocode} -% 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{} )} -% ^^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. -% \begin{macrocode} - \MT@if@false -% -% \MT@requires@latex2{ - \MT@with@package@T{hyperref}{% - \pdfstringdefDisableCommands{% -%<*package> - \let\pickup@font\MT@orig@pickupfont - \let\textmicrotypecontext\@secondoftwo - \let\microtypecontext\@gobble -% - \def\lsstyle{\pdfstringdefWarn\lsstyle}% - \def\textls#1#{\pdfstringdefWarn\textls}% - }% -% \MT@if@true - }% -% }\relax -%<*package> - \MT@with@package@T{tex4ht}\MT@if@true - \ifMT@if@\g@addto@macro\MT@setupfont@hook\MT@restore@p@h\fi -% \end{macrocode} -%\changes{v1.9b}{2005/12/19}{compatibility with \pkg{listings}: sanitise more catcodes -% (reported by \contributor Holger Uhr )} -% ^^A MID: -% The \pkg{listings} package makes numbers and letters active, -% \begin{macrocode} - \MT@with@package@T{listings}{% - \g@addto@macro\MT@cfg@catcodes{% - \MT@while@num{"30}{"3A}{\catcode\@tempcnta 12\relax}% - \MT@while@num{"41}{"5B}{\catcode\@tempcnta 11\relax}% - \MT@while@num{"61}{"7B}{\catcode\@tempcnta 11\relax}% - }% -% \end{macrocode} -% \dots~and the backslash (which would lead to problems in \cs{MT@get@slot}). -%\changes{v2.0}{2006/09/15}{compatibility with \pkg{listings}: set catcode of backslash to zero -% (reported by \contributor Steven Bath )} -% ^^A private mail, 2006/09/15 -% \begin{macrocode} - \g@addto@macro\MT@setupfont@hook{% - \catcode`\\\z@ -% \end{macrocode} -%\changes{v1.9b}{2005/12/23}{compatibility with the \texttt{extendedchar} option of -% the \pkg{listings} package} -% When loaded with the |extendedchar| option, \pkg{listings} will also redefine -% 8-bit active characters (\pkg{inputenc}). Luckily, this simple redefinition -% will make them expand to their original definition, so that they could be used -% in the configuration. -% \begin{macrocode} - \let\lst@ProcessLetter\@empty - }% - }% -% \end{macrocode} -%\changes{v2.0}{2005/12/21}{(beta:3) compatibility with \pkg{soul}: register \cs{textls} and \cs{lsstyle}} -% 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. -% \begin{macrocode} -% -% \MT@requires@latex2{ - \MT@with@package@T{soul}{% - \soulregister\lsstyle 0% - \soulregister\textls 1% - }% -% \end{macrocode} -%\changes{v2.3a}{2008/01/06}{fix test for \pkg{soul} under plain \TeX} -% Under plain \TeX, \pkg{soul} doesn't register itself the \LaTeX\ way, hence -% we have to use a different test in this case. -% \begin{macrocode} -%<*plain> - }{\ifx\SOUL@\@undefined\else - \soulregister\lsstyle 0% - \soulregister\textls 1% - \fi}% -% -%<*package> -% \end{macrocode} -%\changes{v2.1}{2007/01/15}{compatibility with \pkg{pinyin}: disable \microtype\ in \cmd\py@macron\ -% (reported by \contributor Sven Naumann )} -% ^^A MID: <87d55hxxdd.fsf@linux.site> -% Compatibility with the \pkg{pinyin} package (from \pkg{CJK}): disable -% \microtype\ in \cmd\py@macron, which loads a different font for the accent. -% In older versions of \pkg{pinyin} (pre-4.6.0), -%\changes{v2.3d}{2009/03/19}{fix \pkg{pinyin} compatibility check -% (reported by \contributor Silas~S. Brown )} -% ^^A private mail, 2009/03/19 -% \cmd\py@macron\ had only one argument. -% \begin{macrocode} - \MT@with@package@T{pinyin}{% - \let\MT@orig@py@macron\py@macron - \@ifpackagelater{pinyin}{2005/08/11}{% 4.6.0 - \def\py@macron#1#2{% - \let\pickup@font\MT@orig@pickupfont - \MT@orig@py@macron{#1}{#2}% - \let\pickup@font\MT@pickupfont}% - }{% - \def\py@macron#1{% - \let\pickup@font\MT@orig@pickupfont - \MT@orig@py@macron{#1}% - \let\pickup@font\MT@pickupfont}% - }% - }% -% -} -%<*package> -% \end{macrocode} -%\changes{v1.6}{2005/01/19}{load a font if none is selected} -% We need a font (the \pkg{minimal} class doesn't load one). -% \begin{macrocode} -\expandafter\ifx\the\font\nullfont\normalfont\fi -% \end{macrocode} -% -%\subsection{Font setup}\label{ssec:font-setup} -% -%\begin{macro}{\MT@setupfont} -% Setting up a font entails checking for each feature whether it should be -% applied to the current font (\cs{MT@font}). -% But first, we might have to disable stuff when used together with adventurous -% packages. -% \begin{macrocode} -\def\MT@setupfont{\MT@setupfont@hook} -% \end{macrocode} -% This will use a copy of the font (allowing for expansion parameter variation -% and the use of more than one set of protrusion factors for a font within one -% paragraph). -% \begin{macrocode} -\MT@requires@pdftex7 - {\g@addto@macro\MT@setupfont\MT@copy@font}\relax -% \end{macrocode} -% The font properties must be extracted from \cs{MT@font}, since the current -% value of \cmd\f@encoding\ and friends may be wrong! -% \begin{macrocode} -\g@addto@macro\MT@setupfont{% - \MT@exp@two@c\MT@split@name\string\MT@font/\@nil -% \end{macrocode} -% Try to find a configuration file for the current font family. -%\changes{v1.2}{2004/09/29}{also search for alias font file} -% \begin{macrocode} - \MT@exp@one@n\MT@find@file\MT@family - \ifx\MT@familyalias\@empty \else - \MT@exp@one@n\MT@find@file\MT@familyalias\fi -% \end{macrocode} -%\changes{v1.2}{2004/09/26}{fix: call \cmd\@@enc@update\ if necessary} -% We have to make sure that \cmd\cf@encoding\ expands to the correct value (for -% later, in \cs{MT@get@slot}), which isn't the case when \cmd\selectfont\ -% chooses a new encoding (this would be done a second later in -% \cmd\selectfont, anyway -- three lines, to be exact). -% (I think, I do not need this anymore -- however, I'm too afraid to remove it. -% \dots\ Oops, I did it. Let's see whether anybody complains.) -%\changes{v2.2}{2007/04/15}{don't call \cmd\@@enc@update\ anymore} -% \begin{macrocode} -% \ifx\f@encoding\cf@encoding\else\@@enc@update\fi -} -% \end{macrocode} -% Tracking has to come first, since it means actually loading a different font. -%\changes{v2.2}{2007/04/15}{only add features that are available with the respective \pdftex} -% \begin{macrocode} -\MT@requires@pdftex6 - {\g@addto@macro\MT@setupfont\MT@tracking}\relax -\g@addto@macro\MT@setupfont{% - \MT@check@font - \ifMT@inlist@ -%\MT@show@pdfannot2% - \else - \MT@vinfo{Setting up font `\MT@@font'\on@line}% -% \end{macrocode} -% Now we can begin setting up the font for all features that the current -% \pdftex\ provides. The following commands are \cmd\let\ to \cmd\relax\ if the -% respective feature is disabled via package options. -% -% For versions older than 1.20, protrusion has to be set up first, beginning -% with 1.20, the order doesn't matter. -% \begin{macrocode} - \MT@protrusion - \MT@expansion -} -% \end{macrocode} -% Interword spacing and kerning (\pdftex\ 1.40). -% \begin{macrocode} -\MT@requires@pdftex6 - {\g@addto@macro\MT@setupfont{\MT@spacing\MT@kerning}}\relax -% \end{macrocode} -% Disable ligatures (\pdftex\ 1.30). -% \begin{macrocode} -\MT@requires@pdftex5 - {\g@addto@macro\MT@setupfont\MT@noligatures}\relax -\g@addto@macro\MT@setupfont{% -% \end{macrocode} -% Debugging. -% \begin{macrocode} -%\MT@show@pdfannot1% -% \end{macrocode} -% Finally, register the font so that we don't set it up anew each time. -% \begin{macrocode} - \MT@register@font - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@copy@font} -%\changes{v2.2}{2007/07/03}{optionally work on copies of fonts} -%\begin{macro}{\MT@copy@font@} -% The new (1.40.4) \cmd\pdfcopyfont\ command allows to expand a font with -% different parameters, or to use more than one set of protrusion factors for a -% given font within one paragraph. It will be used when we find a context for -% \cs{SetProtrusion} or \cs{SetExpansion} in the preamble, or when the package -% has been loaded with the \opt{copyfonts} option. -% \begin{macrocode} -\let\MT@copy@font\relax -\MT@requires@pdftex7{ -\def\MT@copy@font@{% -% \end{macrocode} -%\begin{macro}{\MT@font@copy} -% For every new protrusion and expansion contexts, we create a new copy. -%\changes{v2.3b}{2008/04/15}{enable font copies also with protrusion contexts -% (reported by \contributor Nathan Rosenblum )} -% ^^A private mail, 2008/04/14 -% \begin{macrocode} - \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@font@orig} -% \pdftex\ doesn't allow to copy a font that has already been copied and -% expanded\slash letterspaced. Hence, we have to get the original. -% \begin{macrocode} - \expandafter\ifx\MT@font@copy\relax - \edef\MT@font@orig{\csname\expandafter\string\font@name @orig\endcsname}% - \expandafter\ifx\MT@font@orig\relax - \MT@exp@two@c\MT@glet\MT@font@orig\font@name - \else - \MT@exp@two@c\let\font@name\MT@font@orig - \fi - \global\MT@exp@two@c\pdfcopyfont\MT@font@copy\font@name -%\MT@dinfo1{creating new copy: \MT@font@copy}% -% \end{macrocode} -%\end{macro} -% Since it's a new font, we have to remove it from the context lists. -% \begin{macrocode} - \MT@map@clist@c\MT@active@features{% - \MT@exp@cs\ifx{MT@\@nameuse{MT@abbr@##1}}\relax\else - \def\@tempa{##1}% - \MT@exp@cs\MT@map@tlist@c{MT@##1@doc@contexts}\MT@rem@from@list - \fi - }% - \fi - \MT@exp@two@c\let\MT@font\MT@font@copy -% \end{macrocode} -% We only need the font identifier for letterspacing. -% \begin{macrocode} - \let\font@name\MT@font@copy -% \end{macrocode} -% But we have to properly substitute the font after we're done. -% \begin{macrocode} - \aftergroup\let\aftergroup\font@name\aftergroup\MT@font@copy -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@rem@from@list} -% \begin{macrocode} -\def\MT@rem@from@list#1{% - \MT@exp@cs\ifx{MT@\@tempa @#1font@list}\relax\else - \expandafter\MT@exp@one@n\expandafter\MT@rem@from@clist\expandafter - \MT@font \csname MT@\@tempa @#1font@list\endcsname - \fi -} -}\relax -% \end{macrocode} -%\end{macro} -%\ifpdf\phantomsection\fi\label{exp-hack} -%\paragraph{Here's the promised dirty trick} -% for users of older \pdftex\ versions, which works around the problem that the -% use of the same font with different expansion parameters is prohibited. If -% you do not want to create a clone of the font setup (this would require -% duplicating the \file{tfm}/\file{vf} files under a new name, and writing new -% \file{fd} files and \file{map} entries), you can load a minimally larger font -% for the paragraph in question. E.\,g., for a document typeset in 10\,pt: -%\begin{verbatim}[gobble=2,morekeywords={[0]{\expandpar}}] -% \SetExpansion -% [ stretch = 30, -% shrink = 60, -% step = 5 ] -% { encoding = *, -% size = 10.001 } -% { } -% \newcommand{\expandpar}[1]{{% -% \fontsize{10.001}{\baselineskip}\selectfont #1\par}} -% % ... -% \expandpar{This paragraph contains an `unnecessary' widow.} -%\end{verbatim} -% Note that the \cmd\expandpar\ command can only be applied to complete -% paragraphs. If you are using Computer Modern Roman, you have to load the -% \pkg{fix-cm} package to be able to select fonts in arbitrary sizes. Finally, -% the reason I suggest to use a larger font, and not a smaller one, is to -% prevent a different design size being selected. -% -%\bigskip -%\begin{macro}{\MT@split@name} -%\changes{v1.7}{2005/02/27}{don't define \cs{MT@encoding} \&c. \cmd\global ly} -%\changes{v2.0}{2006/12/19}{adjust to possible letterspacing} -%\begin{macro}{\MT@encoding} -%\begin{macro}{\MT@family} -%\begin{macro}{\MT@series} -%\begin{macro}{\MT@shape} -%\begin{macro}{\MT@size} -% Split up the font name (\meta{\#6} may be a protrusion\slash expansion -% context and/or a letterspacing amount). ^^A really? -% \begin{macrocode} -\def\MT@split@name#1/#2/#3/#4/#5/#6\@nil{% - \def\MT@encoding{#1}% - \def\MT@family {#2}% - \def\MT@series {#3}% - \def\MT@shape {#4}% - \def\MT@size {#5}% -% \end{macrocode} -%\begin{macro}{\MT@familyalias} -% Alias family? -%\changes{v1.2}{2004/09/29}{define alias font name as an alternative, not -% as a replacement} -% \begin{macrocode} - \MT@ifdefined@n@TF{MT@\MT@family @alias}% - {\MT@let@cn\MT@familyalias{MT@\MT@family @alias}}% - {\let\MT@familyalias\@empty}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\ifMT@do} -%\begin{macro}{\MT@feat} -%\begin{macro}{\MT@maybe@do} -% We check all features of the current font against the lists of the currently -% active font set, and set \cs{ifMT@do} accordingly. -%\changes{v1.2}{2004/09/29}{also check for alias font name} -%\changes{v1.9}{2005/09/28}{redone} -% \begin{macrocode} -\newif\ifMT@do -\def\MT@maybe@do#1{% -% \end{macrocode} -% (but only if the feature isn't globally set to false) -% \begin{macrocode} - \csname ifMT@\csname MT@abbr@#1\endcsname\endcsname -% \end{macrocode} -% Begin with setting micro-typography to true for this font. The -% \cs{MT@checklist@...} tests will set it to false if the property is not in -% the list. The first non-empty list that does not contain a match will stop us -% (except for |font|). -% \begin{macrocode} - \MT@dotrue - \edef\@tempa{\csname MT@#1@setname\endcsname}% - \MT@map@clist@n{font,encoding,family,series,shape,size}{% - \MT@ifdefined@n@TF{MT@checklist@##1}% - {\csname MT@checklist@##1\endcsname}% - {\MT@checklist@{##1}}% - {#1}% - }% - \else - \MT@dofalse - \fi - \ifMT@do -% \end{macrocode} -% \cs{MT@feat} stores the current feature. -% \begin{macrocode} - \def\MT@feat{#1}% - \csname MT@set@#1@codes\endcsname - \else - \MT@vinfo{... No \@nameuse{MT@abbr@#1}}% - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@dinfo@list} -% \begin{macrocode} -%\def\MT@dinfo@list#1#2#3{\MT@dinfo@nl{1}{\@nameuse{MT@abbr@#1}: #2 -% \ifx\\#3\\list empty\else `\@nameuse{MT@#2}' #3 list\fi}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@checklist@} -% The generic test (\meta{\#1} is the axis, \meta{\#2} the feature, \cmd\@tempa\ -% contains the set name). -% \begin{macrocode} -\def\MT@checklist@#1#2{% -% \MT@ifdefined@n@T -% \MT@ifdefined@n@TF - {MT@#2list@#1@\@tempa}{% -% \end{macrocode} -% Begin a (masqueraded) \cmd\expandafter\ orgy to test whether the font -% attribute is in the list. -% \begin{macrocode} - \expandafter\MT@exp@one@n\expandafter\MT@in@clist - \csname MT@#1\expandafter\endcsname - \csname MT@#2list@#1@\@tempa\endcsname - \ifMT@inlist@ -%\MT@dinfo@list{#2}{#1}{in}% - \MT@dotrue - \else -%\MT@dinfo@list{#2}{#1}{not in}% - \MT@dofalse - \expandafter\MT@clist@break - \fi - }% -% \end{macrocode} -% If no limitations have been specified, \ie, the list for a font attribute -% has not been defined at all, the font should be set up. -% \begin{macrocode} -% {\MT@dinfo@list{#2}{#1}{}}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@checklist@family} -% Also test for the alias font, if the original font is not in the list. -%\changes{v1.4b}{2004/11/22}{fix: don't try alias family name if encoding failed} -%\changes{v1.9}{2005/07/12}{fix: add two missing \cmd\expandafter s} -% \begin{macrocode} -\def\MT@checklist@family#1{% -% \MT@ifdefined@n@T -% \MT@ifdefined@n@TF - {MT@#1list@family@\@tempa}{% - \MT@exp@two@n\MT@in@clist - \MT@family{\csname MT@#1list@family@\@tempa\endcsname}% - \ifMT@inlist@ -%\MT@dinfo@list{#1}{family}{in}% - \MT@dotrue - \else -%\MT@dinfo@list{#1}{family}{not in}% - \MT@dofalse - \ifx\MT@familyalias\@empty \else - \MT@exp@two@n\MT@in@clist - \MT@familyalias{\csname MT@#1list@family@\@tempa\endcsname}% - \ifMT@inlist@ -% \MT@dinfo@list{#1}{family alias}{in}% - \MT@dotrue -%\else\MT@dinfo@list{#1}{family alias}{not in}% - \fi - \fi - \fi - \ifMT@do \else - \expandafter\MT@clist@break - \fi - }% -% {\MT@dinfo@list{#1}{family}{}}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@checklist@size} -% Test whether font size is in list of size ranges. -% \begin{macrocode} -\def\MT@checklist@size#1{% -% \MT@ifdefined@n@T -% \MT@ifdefined@n@TF - {MT@#1list@size@\@tempa}{% - \MT@exp@cs\MT@in@rlist{MT@#1list@size@\@tempa}% - \ifMT@inlist@ -%\MT@dinfo@list{#1}{size}{in}% - \MT@dotrue - \else -%\MT@dinfo@list{#1}{size}{not in}% - \MT@dofalse - \expandafter\MT@clist@break - \fi - }% -% {\MT@dinfo@list{#1}{size}{}}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@checklist@font} -% If the font matches, we skip the rest of the test. -% \begin{macrocode} -\def\MT@checklist@font#1{% -% \MT@ifdefined@n@T -% \MT@ifdefined@n@TF - {MT@#1list@font@\@tempa}{% -% \end{macrocode} -% Since \cs{MT@font} may be appended with context and/or letterspacing specs, -% we construct the name from the font characteristics. -%\changes{v2.2}{2007/07/03}{fix: construct font name from characteristics} -% \begin{macrocode} - \edef\@tempb{\MT@encoding/\MT@family/\MT@series/\MT@shape/\MT@size}% - \expandafter\MT@exp@one@n\expandafter\MT@in@clist\expandafter - \@tempb \csname MT@#1list@font@\@tempa\endcsname - \ifMT@inlist@ -%\MT@dinfo@list{#1}{font}{in}% - \expandafter\MT@clist@break - \else -%\MT@dinfo@list{#1}{font}{not in}% - \MT@dofalse - \fi - }% -% {\MT@dinfo@list{#1}{font}{}}% -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Protrusion} -% -%\begin{macro}{\MT@protrusion} -% Set up for protrusion? -% \begin{macrocode} -\def\MT@protrusion{\MT@maybe@do{pr}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@pr@codes} -% This macro is called by \cs{MT@setupfont}, and does all the work for setting -% up a font for protrusion. -%\changes{v1.5}{2004/12/10}{adjust protrusion factors before setting the inheriting -% characters} -%\changes{v1.6}{2004/12/18}{introduce \texttt{factor} option} -% \begin{macrocode} -\def\MT@set@pr@codes{% -% \end{macrocode} -% Check whether and if, which list should be applied to the current font. -% \begin{macrocode} - \MT@if@list@exists{% - \MT@get@font@dimen@six{% - \MT@get@opt - \MT@reset@pr@codes -% \end{macrocode} -% Get the name of the inheritance list and parse it. -% \begin{macrocode} - \MT@get@inh@list -% \end{macrocode} -% Set an input encoding? -% \begin{macrocode} - \MT@set@inputenc{c}% -% \end{macrocode} -% Load additional lists? -% \begin{macrocode} - \MT@load@list\MT@pr@c@name - \MT@set@listname -% \end{macrocode} -% Load the main list. -% \begin{macrocode} - \MT@let@cn\@tempc{MT@pr@c@\MT@pr@c@name}% - \expandafter\MT@set@codes\@tempc,\relax,}% - }\MT@reset@pr@codes -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@font@dimen@six} -%\changes{v1.8}{2005/05/03}{new macro: test whether \fontdim6 is defined} -%\changes{v2.3e}{2009/08/31}{fix: gobbling settings with tracking failed -% (reported by \contributor Leo )} -% ^^A MID: -%\begin{macro}{\MT@dimen@six} -% If \fontdim6 is zero, character protrusion, spacing, kerning and tracking -% won't work, and we can skip the settings (for example, the \pkg{dsfont} and -% \pkg{fourier} fonts don't specify this dimension; this is probably a bug in -% the fonts). -% \begin{macrocode} -\def\MT@get@font@dimen@six{% - \ifnum\fontdimen6\MT@font=\z@ - \MT@warning@nl{% - Font `\MT@@font' does not specify its\MessageBreak - \@backslashchar fontdimen 6 (width of an `em')! Therefore,\MessageBreak - \@nameuse{MT@abbr@\MT@feat} will not work with this font}% - \expandafter\@gobble - \else - \edef\MT@dimen@six{\number\fontdimen6\MT@font}% - \expandafter\@firstofone - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@all@pr} -%\changes{v2.2}{2007/06/16}{(et al.) allow empty values} -% Set all protrusion codes of the font. -% \begin{macrocode} -\def\MT@set@all@pr#1#2{% -%\MT@dinfo@nl{3}{-- lp/rp: setting all to #1/#2}% - \let\MT@temp\@empty - \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1\relax}}% - \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2\relax}}% - \MT@do@font\MT@temp -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@reset@pr@codes@} -%\begin{macro}{\MT@reset@pr@codes} -% All protrusion codes are zero for new fonts. However, if we have to reload -% the font due to different contexts, we have to reset them. -% This command will be changed by \cs{microtypecontext} if necessary. -% \begin{macrocode} -\def\MT@reset@pr@codes@{\MT@set@all@pr\z@\z@} -\let\MT@reset@pr@codes\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@the@pr@code} -%\begin{macro}{\MT@the@pr@code@tr} -%\changes{v2.2}{2007/04/05}{adjust protrusion of letterspaced fonts} -% If the font is letterspaced, we have to add half the letterspacing amount to -% the margin kerns. This will be activated in \cs{MT@set@tr@codes}. -% \begin{macrocode} -\def\MT@the@pr@code{\@tempcntb} -\MT@requires@pdftex6{ - \def\MT@the@pr@code@tr{% - \numexpr\@tempcntb+\MT@letterspace@/2\relax - } -}\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@codes} -%\changes{v2.3a}{2007/12/29}{generalised} -% Split up the values and set the codes. -% \begin{macrocode} -\def\MT@set@codes#1,{% - \ifx\relax#1\@empty\else - \MT@split@codes #1==\relax - \expandafter\MT@set@codes - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@split@codes} -%\changes{v1.1}{2004/09/13}{fix: allow zero and negative values} -%\changes{v1.8}{2005/05/25}{get character width once only} -% The \pkg{keyval} package would remove spaces here, which we needn't do since -% \cs{SetProtrusion} ignores spaces in the protrusion list anyway. -% \cs{MT@get@char@unit} may mean different things. -% \begin{macrocode} -\def\MT@split@codes#1=#2=#3\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty \else - \MT@get@slot - \ifnum\MT@char > \m@ne - \MT@get@char@unit - \csname MT@\MT@feat @split@val\endcsname#2\relax - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@pr@split@val} -% \begin{macrocode} -\def\MT@pr@split@val#1,#2\relax{% - \def\@tempb{#1}% - \MT@ifempty\@tempb\relax{% - \MT@scale@to@em - \lpcode\MT@font\MT@char=\MT@the@pr@code -%\MT@dinfo@nl{4}{;;; lp (\MT@char): \number\lpcode\MT@font\MT@char: [#1]}% - }% - \def\@tempb{#2}% - \MT@ifempty\@tempb\relax{% - \MT@scale@to@em - \rpcode\MT@font\MT@char=\MT@the@pr@code -%\MT@dinfo@nl{4}{;;; rp (\MT@char): \number\rpcode\MT@font\MT@char: [#2]}% - }% -% \end{macrocode} -% Now we can set the values for the inheriting characters. Their slot numbers -% are saved in the macro |\MT@inh@|\meta{list name}|@|\meta{slot number}|@|. -% \begin{macrocode} - \MT@ifdefined@c@T\MT@pr@inh@name{% - \MT@ifdefined@n@T{MT@inh@\MT@pr@inh@name @\MT@char @}{% - \MT@exp@cs\MT@map@tlist@c - {MT@inh@\MT@pr@inh@name @\MT@char @}% - \MT@set@pr@heirs - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@scale@to@em} -% Since \pdftex\ version 0.14h, we have to adjust the protrusion factors (\ie, -% convert numbers from thousandths of character width to thousandths of an em -% of the font). We have to do this \emph{before} setting the inheriting -% characters, so that the latter inherit the absolute value, not the relative -% one if they have a differing width (\eg, the `ff' ligature). -%\changes{v1.5}{2004/12/10}{don't use \cmd\lpcode\ and \cmd\rpcode\ for the -% calculation} -% Unlike \file{protcode.tex} and \pkg{pdfcprot}, we do not calculate with -% \cs{lpcode} resp. \cs{rpcode}, since this would disallow protrusion factors -% larger than the character width (since \cs{[lr]pcode}'s limit is 1000). Now, -% the maximum protrusion is 1\,em of the font. -% -% The unit is in \cs{MT@count}, the desired factor in \cmd\@tempb, and the -% result will be returned in \cmd\@tempcntb. -% \begin{macrocode} -\MT@requires@pdftex3{ - \def\MT@scale@to@em{% - \@tempcntb=\MT@count\relax -% \end{macrocode} -% For really huge fonts (100\,pt or so), an arithmetic overflow could occur -% with vanilla \TeX. Using \etex, this can't happen, since the intermediate -% value is 64\,bit, which could only be reached with a character width larger -% than \cs{maxdimen}. -% \begin{macrocode} - \MT@scale\@tempcntb \@tempb \MT@dimen@six - \ifnum\@tempcntb=\z@ \else - \MT@scale@factor - \fi - } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@charwd} -% Get the width of the character. When using \etex, we can employ -% \cmd\fontcharwd\ instead of building scratch boxes. -%\changes{v1.6}{2005/01/19}{use \etex's \cmd\fontcharwd, if available} -%\changes{v1.8}{2005/05/25}{warning for missing (resp. zero-width) characters} -% \begin{macrocode} - \def\MT@get@charwd{% -^^X \MT@count=\fontcharwd\MT@font\MT@char\relax -^^Q \setbox\z@=\hbox{\MT@font \char\MT@char}% -^^Q \MT@count=\wd\z@ - \ifnum\MT@count=\z@ \MT@info@missing@char \fi - } -% \end{macrocode} -%\changes{v2.2}{2007/04/05}{subtract letterspacing amount from width} -% For letterspaced fonts, we have to subtract the letterspacing amount from the -% characters' widths. The protrusion amounts will be adjusted in -% \cs{MT@set@pr@codes}. -% The letterspaced font is already loaded so that 1\,em = \fontdim6. -% \begin{macrocode} - \MT@requires@pdftex6{ - \g@addto@macro\MT@get@charwd{% - \MT@ifdefined@c@T\MT@letterspace@ - {\advance\MT@count -\dimexpr\MT@letterspace@ sp *\dimexpr 1em/1000\relax}% - } - }\relax -}{ -% \end{macrocode} -%\end{macro} -% No adjustment with versions 0.14f and 0.14g. -% \begin{macrocode} - \def\MT@scale@to@em{% - \MT@count=\@tempb\relax - \ifnum\MT@count=\z@ \else - \MT@scale@factor - \fi - } -% \end{macrocode} -% We need this in \cs{MT@warn@code@too@large} (neutralised). -% \begin{macrocode} - \def\MT@get@charwd{\MT@count=\MT@dimen@six} -} -% \end{macrocode} -%\begin{macro}{\MT@get@font@dimen} -% For the |space| unit. -%\changes{v1.9d}{2006/02/13}{warning for zero fontdimen} -% \begin{macrocode} -\def\MT@get@font@dimen#1{% - \ifnum\fontdimen#1\MT@font=\z@ - \MT@warning@nl{Font `\MT@@font' does not specify its\MessageBreak - \@backslashchar fontdimen #1 (it's zero)!\MessageBreak - You should use a different `unit' for \MT@curr@list@name}% - \else - \MT@count=\fontdimen#1\MT@font - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@info@missing@char} -%\changes{v1.9a}{2005/11/17}{info instead of warning -% (after \contributor Michael Hoppe reported that -% the `fl' ligature is missing in Palatino )} -% ^^A MID: <1h64d0x.16xsx9n1151dieN%mh@michael-hoppe.de> -% Info about missing characters, or characters with zero width. -% \begin{macrocode} -\def\MT@info@missing@char{% - \MT@info@nl{Character `\the\MT@toks' -^^X \iffontchar\MT@font\MT@char - has a width of 0pt -^^X \else is missing\fi -^^Q \MessageBreak (it's probably missing) - \MessageBreak in font `\MT@@font'.\MessageBreak - Ignoring protrusion settings for this character}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@scale@factor} -%\changes{v1.5}{2004/12/10}{warning for factors outside limits} -%\changes{v1.9}{2005/09/28}{generalised} -% Furthermore, we might have to multiply with a factor. -% \begin{macrocode} -\def\MT@scale@factor{% - \ifnum\csname MT@\MT@feat @factor@\endcsname=\@m \else - \expandafter\MT@scale\expandafter \@tempcntb - \csname MT@\MT@feat @factor@\endcsname \@m - \fi - \ifnum\@tempcntb>\csname MT@\MT@feat @max\endcsname\relax - \MT@exp@cs\MT@warn@code@too@large{MT@\MT@feat @max}% - \else - \ifnum\@tempcntb<\csname MT@\MT@feat @min\endcsname\relax - \MT@exp@cs\MT@warn@code@too@large{MT@\MT@feat @min}% - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@code@too@large} -% Type out a warning if a chosen protrusion factor is too large after the -% conversion. As a special service, we also type out the maximum amount that -% may be specified in the configuration. -%\changes{v1.7}{2005/02/17}{new macro: type out maximum protrusion factor} -%\changes{v1.9b}{2006/01/03}{fix calculation with present factor} -% \begin{macrocode} -\def\MT@warn@code@too@large#1{% - \@tempcnta=#1\relax - \ifnum\csname MT@\MT@feat @factor@\endcsname=\@m \else - \expandafter\MT@scale\expandafter\@tempcnta\expandafter - \@m \csname MT@\MT@feat @factor@\endcsname - \fi - \MT@scale\@tempcnta \MT@dimen@six \MT@count - \MT@warning@nl{The \@nameuse{MT@abbr@\MT@feat} code \@tempb\space - is too large for character\MessageBreak - `\the\MT@toks' in \MT@curr@list@name.\MessageBreak - Setting it to the maximum of \number\@tempcnta}% - \@tempcntb=#1\relax -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@opt} -% The optional argument to the configuration commands (except for -% \cs{SetExpansion}, which is being dealt with in \cs{MT@get@ex@opt}). -% \begin{macrocode} -\def\MT@get@opt{% - \MT@set@listname -% \end{macrocode} -%\begin{macro}{\MT@pr@factor@} -%\begin{macro}{\MT@sp@factor@} -%\begin{macro}{\MT@kn@factor@} -% Apply a factor? -% \begin{macrocode} - \MT@ifdefined@n@TF{MT@\MT@feat @c@\csname MT@\MT@feat @c@name\endcsname @factor}{% - \MT@let@nn{MT@\MT@feat @factor@} - {MT@\MT@feat @c@\csname MT@\MT@feat @c@name\endcsname @factor}% - \MT@vinfo{... : Multiplying \@nameuse{MT@abbr@\MT@feat} codes by - \number\csname MT@\MT@feat @factor@\endcsname/1000}% - }{% - \MT@let@nn{MT@\MT@feat @factor@}{MT@\MT@feat @factor}% - }% -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@pr@unit@} -%\begin{macro}{\MT@sp@unit@} -%\begin{macro}{\MT@kn@unit@} -% The |unit| can only be evaluated here, since it might be font-specific. -% If it's \cmd\@empty, it's relative to character widths, if it's \textminus1, -% relative to space dimensions. -% \begin{macrocode} - \MT@ifdefined@n@TF{MT@\MT@feat @c@\csname MT@\MT@feat @c@name\endcsname @unit}{% - \MT@let@nn{MT@\MT@feat @unit@}% - {MT@\MT@feat @c@\csname MT@\MT@feat @c@name\endcsname @unit}% - \MT@exp@cs\ifx{MT@\MT@feat @unit@}\@empty - \MT@vinfo{... : Setting \@nameuse{MT@abbr@\MT@feat} codes - relative to character widths}% - \else - \MT@exp@cs\ifx{MT@\MT@feat @unit@}\m@ne - \MT@vinfo{... : Setting \@nameuse{MT@abbr@\MT@feat} codes - relative to width of space}% - \fi - \fi - }{% - \MT@let@nn{MT@\MT@feat @unit@}{MT@\MT@feat @unit}% - }% -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@get@space@unit} -%\begin{macro}{\MT@get@char@unit} -% The codes are either relative to character widths, or to a fixed width. -% For spacing and kerning lists, they may also be relative to the width of -% the interword glue. -% Only the setting from the top list will be taken into account. -% \begin{macrocode} - \let\MT@get@char@unit\relax - \let\MT@get@space@unit\@gobble - \MT@exp@cs\ifx{MT@\MT@feat @unit@}\@empty - \let\MT@get@char@unit\MT@get@charwd - \else - \MT@exp@cs\ifx{MT@\MT@feat @unit@}\m@ne - \let\MT@get@space@unit\MT@get@font@dimen - \else - \MT@exp@cs\MT@get@unit{MT@\MT@feat @unit@}% - \fi - \fi -% \end{macrocode} -%\end{macro} -%\end{macro} -% Preset all characters? If so, we surely don't need to reset, too. -%\changes{v1.9}{2005/10/08}{new key `\texttt{preset}' to set all characters to -% the specified value before loading the lists} -%\changes{v1.9d}{2006/02/13}{set list name before presetting} -%\changes{v1.9d}{2006/02/18}{optimise: don't reset when \texttt{preset} option is set} -% \begin{macrocode} - \MT@ifdefined@n@T{MT@\MT@feat @c@\csname MT@\MT@feat @c@name\endcsname @preset}{% - \csname MT@preset@\MT@feat\endcsname - \MT@let@nc{MT@reset@\MT@feat @codes}\relax - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@unit} -%\changes{v1.8}{2005/04/14}{new macro: get unit for codes} -%\begin{macro}{\MT@get@unit@} -% If |unit| contains an |em| or |ex|, we use the corresponding \cmd\fontdimen\ -% to obtain the real size. Simply converting the em into points might give a -% wrong result, since the font probably isn't set up yet, so that these -% dimensions haven't been updated, either. -% \begin{macrocode} -\def\MT@get@unit#1{% - \expandafter\MT@get@unit@#1 e!\@nil - \ifx\x\@empty\else\let#1\x\fi - \@defaultunits\@tempdima#1 pt\relax\@nnil - \ifdim\@tempdima=\z@ - \MT@warning@nl{% - Cannot set \@nameuse{MT@abbr@\MT@feat} factors relative to zero\MessageBreak - width. Setting factors of list `\@nameuse{MT@\MT@feat @c@name}'\MessageBreak - relative to character widths instead}% - \let#1\@empty - \let\MT@get@char@unit\MT@get@charwd - \else - \MT@vinfo{... : Setting \@nameuse{MT@abbr@\MT@feat} factors relative - to \the\@tempdima}% - \MT@count=\@tempdima\relax - \fi -} -\def\MT@get@unit@#1e#2#3\@nil{% - \ifx\\#3\\\let\x\@empty \else - \if m#2% - \edef\x{#1\fontdimen6\MT@font}% - \else - \if x#2% - \edef\x{#1\fontdimen5\MT@font}% - \fi - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@inputenc} -% The configurations may be under the regime of an input encoding. -% \begin{macrocode} -\def\MT@set@inputenc#1{% -% \end{macrocode} -%\begin{macro}{\MT@cat} -% We remember the current category (|c| or |inh|), in case of warnings later. -% \begin{macrocode} - \def\MT@cat{#1}% -% \end{macrocode} -%\end{macro} -% \begin{macrocode} - \edef\@tempa{MT@\MT@feat @#1@\csname MT@\MT@feat @#1@name\endcsname @inputenc}% - \MT@ifdefined@n@T\@tempa\MT@set@inputenc@ -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@inputenc@} -%\changes{v2.2}{2007/06/08}{only load \pkg{inputenc} files if necessary} -% More recent versions of \pkg{inputenc} remember the current encoding, so that -% we can test whether we really have to load the encoding file. -% \begin{macrocode} -\MT@addto@setup{% - \@ifpackageloaded{inputenc}{% - \@ifpackagelater{inputenc}{2006/02/22}{% - \def\MT@set@inputenc@{% - \MT@ifstreq\inputencodingname{\csname\@tempa\endcsname}\relax - \MT@load@inputenc - }% - }{% - \let\MT@set@inputenc@\MT@load@inputenc - }% - }{% - \def\MT@set@inputenc@{% - \MT@warning@nl{Key `inputenc' used in \MT@curr@list@name, but the `inputenc' - \MessageBreak package isn't loaded. Ignoring input encoding}% - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@load@inputenc} -% Set up normal catcodes, since, \eg, \pkg{listings} would otherwise want to -% actually typeset the \pkg{inputenc} file when it is being loaded inside a -% listing. -%\changes{v2.0}{2006/09/15}{sanitise catcodes before loading input encoding -% (problem with \pkg{listings})} -% \begin{macrocode} -\def\MT@load@inputenc{% - \MT@cfg@catcodes -%\MT@dinfo@nl{1}{loading input encoding: \@nameuse{\@tempa}}% - \inputencoding{\@nameuse{\@tempa}}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@pr@heirs} -% Set the inheriting characters. -% \begin{macrocode} -\def\MT@set@pr@heirs#1{% - \lpcode\MT@font#1=\lpcode\MT@font\MT@char - \rpcode\MT@font#1=\rpcode\MT@font\MT@char -%\MT@dinfo@nl{2}{-- heir of \MT@char: #1}% -%\MT@dinfo@nl{4}{;;; lp/rp (#1): \number\lpcode\MT@font\MT@char/% -% \number\rpcode\MT@font\MT@char}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@preset@pr} -%\begin{macro}{\MT@preset@pr@} -% Preset characters. Presetting them relative to their widths is not allowed. -% \begin{macrocode} -\def\MT@preset@pr{% - \expandafter\expandafter\expandafter\MT@preset@pr@ - \csname MT@pr@c@\MT@pr@c@name @preset\endcsname\@nil -} -\def\MT@preset@pr@#1,#2\@nil{% - \ifx\MT@pr@unit@\@empty - \MT@warn@preset@towidth{pr}% - \let\MT@preset@aux\MT@preset@aux@factor - \else - \def\MT@preset@aux{\MT@preset@aux@space2}% - \fi - \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}% - \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}% - \MT@set@all@pr\@tempa\@tempb -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@preset@aux} -%\begin{macro}{\MT@preset@aux@factor} -%\begin{macro}{\MT@preset@aux@space} -%\changes{v2.2}{2007/06/16}{generalised} -% Auxiliary macro for presetting. Store value \meta{\#1} in macro \meta{\#2}. -% \begin{macrocode} -\def\MT@preset@aux@factor#1#2{% - \@tempcntb=#1\relax - \MT@scale@factor - \edef#2{\number\@tempcntb}% -} -\def\MT@preset@aux@space#1#2#3{% - \def\@tempb{#2}% - \MT@get@space@unit#1% - \MT@scale@to@em - \edef#3{\number\@tempcntb}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@warn@preset@towidth} -% \begin{macrocode} -\def\MT@warn@preset@towidth#1{% - \MT@warning@nl{% - Cannot preset characters relative to their widths\MessageBreak - for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them% - \MessageBreak relative to 1em instead}% -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Expansion} -% -%\begin{macro}{\MT@expansion} -% Set up for expansion? -% \begin{macrocode} -\def\MT@expansion{\MT@maybe@do{ex}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@ex@codes@s} -% Setting up font expansion is a bit different because of the \opt{selected} option. -% There are two versions of this macro. -% -% If \opt{selected}|=true|, we only apply font expansion to those fonts for which a -% list has been declared (\ie, like for protrusion). -% \begin{macrocode} -\def\MT@set@ex@codes@s{% - \MT@if@list@exists{% - \MT@get@ex@opt - \let\MT@get@char@unit\relax - \MT@reset@ef@codes - \MT@get@inh@list - \MT@set@inputenc{c}% - \MT@load@list\MT@ex@c@name - \MT@set@listname - \MT@let@cn\@tempc{MT@ex@c@\MT@ex@c@name}% - \expandafter\MT@set@codes\@tempc,\relax,% - \MT@expandfont - }\relax -} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MT@set@ex@codes@n} -% If, on the other hand, all characters should be expanded by the same amount, -% we only take the first optional argument to \cs{SetExpansion} into account. -%\begin{macro}{\ifMT@nonselected} -% We need this boolean in \cs{MT@if@list@exists} so that no warning for missing -% lists will be issued. -% \begin{macrocode} -\newif\ifMT@nonselected -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\def\MT@set@ex@codes@n{% - \MT@nonselectedtrue - \MT@if@list@exists - \MT@get@ex@opt - {% - \let\MT@stretch@ \MT@stretch - \let\MT@shrink@ \MT@shrink - \let\MT@step@ \MT@step - \let\MT@auto@ \MT@auto - \let\MT@ex@factor@\MT@ex@factor - }% - \MT@reset@ef@codes - \MT@expandfont - \MT@nonselectedfalse -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@ex@codes} -%\changes{v1.5}{2004/12/02}{allow non-selected font expansion} -%\changes{v1.6}{2004/12/26}{introduce \texttt{factor} option} -%\changes{v1.7}{2005/02/06}{two versions of this macro} -% Default is non-selected. It can be changed in the package options. -% \begin{macrocode} -\let\MT@set@ex@codes\MT@set@ex@codes@n -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@expandfont} -% Expand the font. -% \begin{macrocode} -\def\MT@expandfont{% - \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@all@ex} -%\begin{macro}{\MT@reset@ef@codes@} -% At first, all expansion factors for the characters will be set to 1000 -% (respectively the |factor| of this font). -% \begin{macrocode} -\def\MT@set@all@ex#1{% -%\MT@dinfo@nl{3}{-- ex: setting all to \number#1}% - \MT@do@font{\efcode\MT@font\@tempcnta=#1\relax}% -} -\def\MT@reset@ef@codes@{\MT@set@all@ex\MT@ex@factor@} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@reset@ef@codes} -% However, this is only necessary for versions prior to~1.20. -%\changes{v1.6a}{2005/01/30}{only reset \cmd\efcode s for older \pdftex\ versions} -% \begin{macrocode} -\MT@requires@pdftex4{ - \def\MT@reset@ef@codes{% - \ifnum\MT@ex@factor@=\@m \else - \MT@reset@ef@codes@ - \fi - } -}{ - \let\MT@reset@ef@codes\MT@reset@ef@codes@ -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ex@split@val} -% There's only one number per character. -% \begin{macrocode} -\def\MT@ex@split@val#1\relax{% - \@tempcntb=#1\relax -% \end{macrocode} -% Take an optional factor into account. -% \begin{macrocode} - \ifnum\MT@ex@factor@=\@m \else - \MT@scale\@tempcntb \MT@ex@factor@ \@m - \fi - \ifnum\@tempcntb > \MT@ex@max - \MT@warn@ex@too@large\MT@ex@max - \else - \ifnum\@tempcntb < \MT@ex@min - \MT@warn@ex@too@large\MT@ex@min - \fi - \fi - \efcode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{::: ef (\MT@char): \number\efcode\MT@font\MT@char: [#1]}% -% \end{macrocode} -% Heirs, heirs, I love thy heirs. -% \begin{macrocode} - \MT@ifdefined@c@T\MT@ex@inh@name{% - \MT@ifdefined@n@T{MT@inh@\MT@ex@inh@name @\MT@char @}{% - \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@ex@inh@name @\MT@char @}\MT@set@ex@heirs - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@ex@too@large} -% \begin{macrocode} -\def\MT@warn@ex@too@large#1{% - \MT@warning@nl{Expansion factor \number\@tempcntb\space too large for - character\MessageBreak `\the\MT@toks' in \MT@curr@list@name.\MessageBreak - Setting it to the maximum of \number#1}% - \@tempcntb=#1\relax -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@ex@opt} -%\changes{v1.9d}{2006/02/13}{fix: evaluate \texttt{preset}} -%\begin{macro}{\MT@ex@factor@} -%\begin{macro}{\MT@stretch@} -%\begin{macro}{\MT@shrink@} -%\begin{macro}{\MT@step@} -%\begin{macro}{\MT@auto@} -% Apply different values to this font? -% \begin{macrocode} -\def\MT@get@ex@opt{% - \MT@set@listname - \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @factor}{% - \MT@let@cn\MT@ex@factor@{MT@ex@c@\MT@ex@c@name @factor}% - \MT@vinfo{... : Multiplying expansion factors by \number\MT@ex@factor@/1000}% - }{% - \let\MT@ex@factor@\MT@ex@factor - }% - \MT@get@ex@opt@{stretch}{Setting stretch limit to \number\MT@stretch@}% - \MT@get@ex@opt@{shrink} {Setting shrink limit to \number\MT@shrink@}% - \MT@get@ex@opt@{step} {Setting expansion step to \number\MT@step@}% - \def\@tempa{autoexpand}% - \MT@get@ex@opt@{auto}{\ifx\@tempa\MT@auto@ En\else Dis\fi abling automatic expansion}% - \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @preset}{% - \MT@preset@ex - \let\MT@reset@ef@codes\relax - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@get@ex@opt@} -% \begin{macrocode} -\def\MT@get@ex@opt@#1#2{% - \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @#1}{% - \MT@let@nn{MT@#1@}{MT@ex@c@\MT@ex@c@name @#1}% - \MT@vinfo{... : #2}% - }{% - \MT@let@nn{MT@#1@}{MT@#1}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@ex@heirs} -% \begin{macrocode} -\def\MT@set@ex@heirs#1{% - \efcode\MT@font#1=\efcode\MT@font\MT@char -%\MT@dinfo@nl{2}{-- heir of \MT@char: #1}% -%\MT@dinfo@nl{4}{::: ef (#1) \number\efcode\MT@font\MT@char}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@preset@ex} -% \begin{macrocode} -\def\MT@preset@ex{% - \@tempcntb=\csname MT@ex@c@\MT@ex@c@name @preset\endcsname\relax - \MT@scale@factor - \MT@set@all@ex\@tempcntb -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Interword spacing (glue)} -% -%\begin{macro}{\MT@spacing} -% Adjustment of interword spacing? -% \begin{macrocode} -\MT@requires@pdftex6{ -\def\MT@spacing{\MT@maybe@do{sp}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@sp@codes} -% This is all the same. -% \begin{macrocode} -\def\MT@set@sp@codes{% - \MT@if@list@exists{% - \MT@get@font@dimen@six{% - \MT@get@opt - \MT@reset@sp@codes - \MT@get@inh@list - \MT@set@inputenc{c}% - \MT@load@list\MT@sp@c@name - \MT@set@listname - \MT@let@cn\@tempc{MT@sp@c@\MT@sp@c@name}% - \expandafter\MT@set@codes\@tempc,\relax,}% - }\MT@reset@sp@codes -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@sp@split@val} -% If |unit=space|, \cs{MT@get@space@unit} will be defined to fetch the -% corresponding fontdimen (2 for the first, 3 for the second and 4 for the -% third argument). -% \begin{macrocode} -\def\MT@sp@split@val#1,#2,#3\relax{% - \def\@tempb{#1}% - \MT@ifempty\@tempb\relax{% - \MT@get@space@unit2% - \MT@scale@to@em - \knbscode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{;;; knbs (\MT@char): \number\knbscode\MT@font\MT@char: [#1]}% - }% - \def\@tempb{#2}% - \MT@ifempty\@tempb\relax{% - \MT@get@space@unit3% - \MT@scale@to@em - \stbscode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{;;; stbs (\MT@char): \number\stbscode\MT@font\MT@char: [#2]}% - }% - \def\@tempb{#3}% - \MT@ifempty\@tempb\relax{% - \MT@get@space@unit4% - \MT@scale@to@em - \shbscode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{;;; shbs (\MT@char): \number\shbscode\MT@font\MT@char: [#3]}% - }% - \MT@ifdefined@c@T\MT@sp@inh@name{% - \MT@ifdefined@n@T{MT@inh@\MT@sp@inh@name @\MT@char @}{% - \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@sp@inh@name @\MT@char @}\MT@set@sp@heirs - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@sp@heirs} -% \begin{macrocode} -\def\MT@set@sp@heirs#1{% - \knbscode\MT@font#1=\knbscode\MT@font\MT@char - \stbscode\MT@font#1=\stbscode\MT@font\MT@char - \shbscode\MT@font#1=\shbscode\MT@font\MT@char -%\MT@dinfo@nl{2}{-- heir of \MT@char: #1}% -%\MT@dinfo@nl{4}{;;; knbs/stbs/shbs (#1): \number\knbscode\MT@font\MT@char/% -% \number\stbscode\MT@font\MT@char/\number\shbscode\MT@font\MT@char}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@all@sp} -%\begin{macro}{\MT@reset@sp@codes} -%\begin{macro}{\MT@reset@sp@codes@} -% \begin{macrocode} -\def\MT@set@all@sp#1#2#3{% -%\MT@dinfo@nl{3}{-- knbs/stbs/shbs: setting all to #1/#2/#3}% - \let\MT@temp\@empty - \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbscode\MT@font\@tempcnta=#1\relax}}% - \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\stbscode\MT@font\@tempcnta=#2\relax}}% - \MT@ifempty{#3}\relax{\g@addto@macro\MT@temp{\shbscode\MT@font\@tempcnta=#3\relax}}% - \MT@do@font\MT@temp -} -\def\MT@reset@sp@codes@{\MT@set@all@sp\z@\z@\z@} -\let\MT@reset@sp@codes\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@preset@sp} -%\begin{macro}{\MT@preset@sp@} -% \begin{macrocode} -\def\MT@preset@sp{% - \expandafter\expandafter\expandafter\MT@preset@sp@ - \csname MT@sp@c@\MT@sp@c@name @preset\endcsname\@nil -} -\def\MT@preset@sp@#1,#2,#3\@nil{% - \ifx\MT@sp@unit@\@empty - \MT@warn@preset@towidth{sp}% - \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@factor{#1}\@tempa}% - \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@factor{#2}\@tempc}% - \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@factor{#3}\@tempb}% - \else - \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@space2{#1}\@tempa}% - \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@space3{#2}\@tempc}% - \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@space4{#3}\@tempb}% - \fi - \MT@set@all@sp\@tempa\@tempc\@tempb -} -}\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -% -%\subsubsection{Additional kerning} -% -%\begin{macro}{\MT@kerning} -% Again, only check for additional kerning for new versions of \pdftex. -% \begin{macrocode} -\MT@requires@pdftex6{ -\def\MT@kerning{\MT@maybe@do{kn}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@kn@codes} -% It's getting boring, I know. -% \begin{macrocode} -\def\MT@set@kn@codes{% - \MT@if@list@exists{% - \MT@get@font@dimen@six{% - \MT@get@opt - \MT@reset@kn@codes - \MT@get@inh@list - \MT@set@inputenc{c}% - \MT@load@list\MT@kn@c@name - \MT@set@listname - \MT@let@cn\@tempc{MT@kn@c@\MT@kn@c@name}% - \expandafter\MT@set@codes\@tempc,\relax,}% - }\MT@reset@kn@codes -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@kn@split@val} -% Again, the unit may be measured in the space dimension; this time only -% \fontdim2. -% \begin{macrocode} -\def\MT@kn@split@val#1,#2\relax{% - \def\@tempb{#1}% - \MT@ifempty\@tempb\relax{% - \MT@get@space@unit2% - \MT@scale@to@em - \knbccode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{;;; knbc (\MT@char): \number\knbccode\MT@font\MT@char: [#1]}% - }% - \def\@tempb{#2}% - \MT@ifempty\@tempb\relax{% - \MT@get@space@unit2% - \MT@scale@to@em - \knaccode\MT@font\MT@char=\@tempcntb -%\MT@dinfo@nl{4}{;;; knac (\MT@char): \number\knaccode\MT@font\MT@char: [#2]}% - }% - \MT@ifdefined@c@T\MT@kn@inh@name{% - \MT@ifdefined@n@T{MT@inh@\MT@kn@inh@name @\MT@char @}{% - \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@kn@inh@name @\MT@char @}\MT@set@kn@heirs - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@kn@heirs} -% \begin{macrocode} -\def\MT@set@kn@heirs#1{% - \knbccode\MT@font#1=\knbccode\MT@font\MT@char - \knaccode\MT@font#1=\knaccode\MT@font\MT@char -%\MT@dinfo@nl{2}{-- heir of \MT@char: #1}% -%\MT@dinfo@nl{4}{;;; knbc (#1): \number\knbccode\MT@font\MT@char/% -% \number\knaccode\MT@font\MT@char}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@all@kn} -%\begin{macro}{\MT@reset@kn@codes} -%\begin{macro}{\MT@reset@kn@codes@} -% \begin{macrocode} -\def\MT@set@all@kn#1#2{% -%\MT@dinfo@nl{3}{-- knac/knbc: setting all to #1/#2}% - \let\MT@temp\@empty - \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbccode\MT@font\@tempcnta=#1\relax}}% - \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\knaccode\MT@font\@tempcnta=#2\relax}}% - \MT@do@font\MT@temp -} -\def\MT@reset@kn@codes@{\MT@set@all@kn\z@\z@} -\let\MT@reset@kn@codes\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@preset@kn} -%\begin{macro}{\MT@preset@kn@} -% \begin{macrocode} -\def\MT@preset@kn{% - \expandafter\expandafter\expandafter\MT@preset@kn@ - \csname MT@kn@c@\MT@kn@c@name @preset\endcsname\@nil -} -\def\MT@preset@kn@#1,#2\@nil{% - \ifx\MT@kn@unit@\@empty - \MT@warn@preset@towidth{kn}% - \let\MT@preset@aux\MT@preset@aux@factor - \else - \def\MT@preset@aux{\MT@preset@aux@space2}% - \fi - \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}% - \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}% - \MT@set@all@kn\@tempa\@tempb -} -}\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -% -%\subsubsection{\lsstyle Tracking} -% -% This only works with \pdftex\ 1.40. -% \begin{macrocode} -\MT@requires@pdftex6{ -% \end{macrocode} -%\begin{macro}{\MT@tracking} -%\changes{v2.2}{2007/02/23}{remember fonts that shouldn't be letterspaced} -%\begin{macro}{\MT@tracking@} -%\changes{v2.2}{2007/06/16}{fix: tracking couldn't be re-enabled} -%\begin{macro}{\MT@tr@font@list} -% We only check whether a font should not be letterspaced at all, not whether -% we've already done that (because we have to do it again). -% \begin{macrocode} -\let\MT@tr@font@list\@empty -\def\MT@tracking@{% - \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list - \ifMT@inlist@\else - \MT@maybe@do{tr}% - \ifMT@do\else - \xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,}% - \fi - \fi -} -% -\let\MT@tracking -% \MT@tracking@ -% \relax -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@tr@codes} -% The tracking amount is determined by the optional argument to \cs{textls}, -% settings from \cs{SetTracking}, or the global \opt{letterspace} option, in -% this order. -% \begin{macrocode} -\def\MT@set@tr@codes{% -%<*package> - \MT@vinfo{Tracking font `\MT@@font'\on@line}% - \MT@get@font@dimen@six{% - \MT@if@list@exists - \MT@get@tr@opt - \relax -% - \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}% - \ifnum\MT@letterspace@=\z@ -% \end{macrocode} -%\changes{v2.3d}{2009/03/05}{allow zero tracking} -% Zero tracking requires special treatment. -% \begin{macrocode} - \MT@set@tr@zero - \else -% \MT@vinfo{... Tracking by \number\MT@letterspace@}% -% \end{macrocode} -% Letterspacing only works in mode. -% \begin{macrocode} - \MT@warn@tracking@DVI -% \end{macrocode} -%\begin{macro}{\MT@lsfont} -% The letterspaced font instances are saved in macros -% |\|\meta{font name}|/|\meta{letterspacing amount}|ls|. -% -%\changes{v2.2}{2007/03/07}{use \cmd\font@name, not \cs{MT@font}} -% In contrast to \cs{MT@font}, which may reflect the font characteristics more -% accurately (taking substitutions into account), \cmd\font@name\ is guaranteed -% to correspond to an actual font identifier. -% \begin{macrocode} - \xdef\MT@lsfont{\csname\expandafter\string\font@name - /\number\MT@letterspace@ ls\endcsname}% - \expandafter\ifx\MT@lsfont\relax -%\MT@dinfo@nl{1}{... new letterspacing instance}% -% \end{macrocode} -%\end{macro} -% In case of nested letterspacing with different amounts, we have to extract -% the base font again. -%\todo{outer spacing/kerning for nested letterspaced text} -% \begin{macrocode} - \MT@get@ls@basefont - \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@ -% \end{macrocode} -%\changes{v2.2}{2007/06/16}{possibility to customise interword spacing} -% Scale interword spacing (not configurable in \letterspace). -% \begin{macrocode} -%<*package> - \MT@ifdefined@c@TF\MT@tr@ispace - {\let\@tempa\MT@tr@ispace}% - {\edef\@tempa{\MT@letterspace@*,,}}% - \MT@ifdefined@c@TF\MT@tr@ospace - {\edef\@tempa{\@tempa,\MT@tr@ospace}}% - {\edef\@tempa{\@tempa,,,}}% - \expandafter\MT@tr@set@space\@tempa,% -% -%<*letterspace> - % spacing = {*,,} - \fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp - * \fontdimen2\MT@lsfont/1000\relax -% -% \end{macrocode} -%\changes{v2.3}{2007/11/03}{possibility to customise outer kerning -% (suggested by \contributor Stephan Hennig )} -% ^^A MID: <46aa1cbb$0$31620$9b4e6d93@newsspool3.arcor-online.net> -% Adjust outer kerning (\microtype\ only). -% \begin{macrocode} -%<*package> - \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}% - \expandafter\MT@tr@set@okern\@tempa,% -% \end{macrocode} -%\changes{v2.2}{2007/02/23}{disable ligatures in letterspaced fonts manually -% (due to change in \pdftex\ 1.40.4)} -% Disable ligatures (not configurable in \letterspace). -% \begin{macrocode} - \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures -% -%<*letterspace> - % no ligatures = {f} - \tagcode\MT@lsfont`f=\m@ne -% -% \end{macrocode} -% Adjust protrusion values now, and maybe later (in \cs{MT@pr@split@val}). -%\changes{v2.3}{2007/07/27}{also adjust tracking if protrusion is not enabled, -% and even for \letterspace\ -% (reported by \contributor Stephan Hennig )} -% ^^A MID: <46a9c6c6$0$21005$9b4e6d93@newsspool1.arcor-online.net> -%\changes{v2.3b}{2008/05/12}{fix: protrusion adjustment only for new fonts -% (reported by \contributor Wolfram Schaalo )} -% ^^A private mail, 2008/05/12 -% \begin{macrocode} -%\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}% -% \let\MT@the@pr@code\MT@the@pr@code@tr - \fi -% \end{macrocode} -% Finally, let the letterspaced font propagate. -% \begin{macrocode} - \aftergroup\MT@set@lsfont -% \let\MT@font\MT@lsfont -% \end{macrocode} -%\begin{macro}{\MT@set@curr@ls} -%\begin{macro}{\MT@curr@ls} -% We need to remember the current letterspacing amount (for \cs{lslig}). -% \begin{macrocode} - \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}% - \aftergroup\MT@set@curr@ls -% \end{macrocode} -%\end{macro} -%\end{macro} -% Adjust surrounding spacing and kerning. -%\begin{macro}{\MT@set@curr@os} -%\changes{v2.3}{2007/11/03}{adjusting spaces made more reliable} -% We get the current outer spacing and adjust it, then, after the end of the -% current outer group, set the current outer spacing, again, and adjust. -% \begin{macrocode} -%<*package> - \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax - \xdef\MT@set@curr@os{\MT@outer@space=\the\MT@outer@space\relax}% - \MT@tr@outer@l -% -% \end{macrocode} -%\end{macro} -% If \cs{MT@ls@adjust} is empty, it's the starred version of \cs{textls}. -% Use scaling to avoid a `Dimension too large'. -% \begin{macrocode} - \ifx\MT@ls@adjust\@empty -% % \textls : outer kerning = {*,*} ; \textls* : outer kerning = {0,0} - \MT@outer@kern=-\dimexpr\MT@letterspace@ sp * \fontdimen6\font@name/2000\relax - \MT@ls@outer@k -%<*letterspace> - \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}% - \aftergroup\aftergroup\aftergroup\MT@ls@aftergroup -% -% \end{macrocode} -% Otherwise, get the current outer kerning and adjust it, for left and right -% side (\microtype\ only). -% \begin{macrocode} -%<*package> - \else - \MT@outer@kern=\expandafter\expandafter\expandafter\@firstoftwo - \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax - \ifdim\MT@outer@kern=\z@\else \MT@ls@outer@k \fi - \MT@outer@kern=\expandafter\expandafter\expandafter\@secondoftwo - \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax -% - \fi -%<*package> -% \end{macrocode} -%\begin{macro}{\MT@set@curr@ok} -% Carry the outer kerning amount to outside the next group, then set outer -% spacing (which will set kerning, if no space follows). -% \begin{macrocode} - \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}% - \aftergroup\aftergroup\aftergroup\MT@ls@aftergroup -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -% - \fi -% }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ls@aftergroup} -% Stuff to be done after the letterspace group. The \letterspace\ package -% only adjusts the kerning. -% \begin{macrocode} -%\def\MT@ls@aftergroup{\MT@set@curr@ok\MT@ls@outer@k} -% \end{macrocode} -%\changes{v2.3e}{2009/11/02}{compatibility with \pkg{tikz} (first reported by -% \contributor Christian Stark )} ^^A MID: <7d81lgF2ad3ckU1@mid.dfncis.de>, 2009/07/28 -%^^A Also: \contributor Karl Karlsson ^^A privat mail, 2009/10/29 -%^^A \contributor hscm ^^A MID: <6a24e972-b1a7-4172-a5a0-d2707e016301@12g2000pri.googlegroups.com>, 2009/11/02 -% \microtype\ also adjusts spacing. -% If \cmd\tikz@expandcount\ is greater than zero, we're inside or at the end of -% a \pkg{tikz} node, where we don't want to do anything, lest we disturb -% \pkg{tikz}. -% \begin{macrocode} -%<*package> -\MT@addto@setup{% - \@ifpackageloaded{tikz} - {\def\MT@ls@aftergroup{% - \ifnum\tikz@expandcount>\z@ \else - \MT@set@curr@os\MT@set@curr@ok\expandafter\MT@tr@outer@r\fi}} - {\def\MT@ls@aftergroup{\MT@set@curr@os\MT@set@curr@ok\MT@tr@outer@r}}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@tr@opt} -% Various settings (only for the \microtype\ version). -% \begin{macrocode} -\def\MT@get@tr@opt{% - \MT@set@listname - \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{% - \MT@let@cn\MT@letterspace{MT@tr@c@\MT@tr@c@name}% -% \end{macrocode} -%\begin{macro}{\MT@tr@unit@} -% Different unit? -% \begin{macrocode} - \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @unit}{% - \MT@let@cn\MT@tr@unit@{MT@tr@c@\MT@tr@c@name @unit}% - \ifdim\MT@tr@unit@=1em - \let\MT@tr@unit@\@undefined - \else - \MT@let@cn\@tempb{MT@tr@c@\MT@tr@c@name}% - \MT@get@unit\MT@tr@unit@ - \let\MT@tr@factor@\@m - \MT@scale@to@em - \edef\MT@letterspace{\number\@tempcntb}% - \fi - }% - }% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@ispace} -%\begin{macro}{\MT@tr@ospace} -% Adjust interword spacing. -% \begin{macrocode} - \MT@get@tr@opt@{spacing} {ispace}% - \MT@get@tr@opt@{outerspacing}{ospace}% -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@tr@okern} -% Adjust outer kerning. -% \begin{macrocode} - \MT@get@tr@opt@{outerkerning}{okern}% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@ligatures} -% Which ligatures should we disable (empty means all, undefined none)? -% \begin{macrocode} - \MT@get@tr@opt@{noligatures} {ligatures}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@get@tr@opt@} -% \begin{macrocode} -\def\MT@get@tr@opt@#1#2{% - \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @#1}% - {\MT@let@nn{MT@tr@#2}{MT@tr@c@\MT@tr@c@name @#1}}% -} -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@set@lsfont} -% Redefine \cmd\font@name, which will be called a second later (in -% \cmd\selectfont). -% \begin{macrocode} -%\MT@requires@latex2{ -\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} -% \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}{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} -% Disable the tests whether the font should be letterspaced, then trigger the -% setup. -% Only \cs{textls} can be used in math mode (\cs{lsstyle} may be used inside -% another text switch, of course). -% \begin{macrocode} -\DeclareRobustCommand\lsstyle{% - \not@math@alphabet\lsstyle\textls -% \def\MT@feat{tr}% - \let\MT@tracking\MT@set@tr@codes - \selectfont -} -% \end{macrocode} -% Now the definitions for the \letterspace\ package with plain \TeX. -% \begin{macrocode} -%<*plain> -}{ -\def\MT@set@lsfont{\MT@lsfont} -\def\lsstyle{% - \begingroup - \escapechar\m@ne - \xdef\font@name{\csname\expandafter\string\the\font\endcsname}% - \MT@set@tr@codes - \endgroup -} -\let\textls\@undefined -\let\lslig\@undefined -} -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\lslig} -%\changes{v2.1}{2007/01/17}{new command: protect ligatures in letterspaced text} -%\changes{v2.2}{2007/02/25}{always defined} -%\changes{v2.3}{2007/11/03}{redone: extract outer kerns from current letterspacing -% amount} -%\begin{macro}{\MT@lslig} -% For Fraktur fonts, some ligatures shouldn't be broken up. This command will -% temporarily select the base font and insert the correct kerning. -% \begin{macrocode} -\DeclareRobustCommand\lslig[1]{% - {\MT@ifdefined@c@TF\MT@curr@ls{% - \escapechar\m@ne - \MT@get@ls@basefont - \MT@outer@kern=\dimexpr\MT@curr@ls sp * \fontdimen6\font@name/2000\relax - \kern\MT@outer@kern - \font@name #1% - \kern\MT@outer@kern% - }{#1}}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@ls@basefont} -%\begin{macro}{\MT@get@ls@basefont} -%\changes{v2.1}{2007/01/19}{redone: use \cmd\pdfmatch\ to make it bullet-proof} -% \pdftex\ cannot letterspace fonts that already are letterspaced. Therefore, -% we have to save the base font in |\|\meta{font name}|@base|. -% -%\changes{v2.2}{2007/02/18}{fix again: remember base font in a macro} -% The previous solution (checking the macro's meaning with \cmd\pdfmatch), -% where we were loading the base font via the \cmd\font\ primitive again, -% would destroy all previously set up micro-typographic features of the font. -% \begin{macrocode} -\def\MT@get@ls@basefont{% - \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}% - \expandafter\ifx\MT@ls@basefont\relax - \MT@exp@two@c\MT@glet\MT@ls@basefont\font@name - \else -%\MT@dinfo@nl{1}{... fixing base font}% - \MT@exp@two@c\let\font@name\MT@ls@basefont - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@lsbasefont} -%\begin{macro}{\MT@set@tr@zero} -%\changes{v2.3d}{2009/03/05}{fix: allow switching off tracking -% (reported by \contributor Ulrich Dirr )} -% ^^A private mail, 2009/02/22 -% If tracking is switched off in the middle of the document, or if \cs{textls} -% is called with a zero letterspacing amount, we have to retrieve the base font -% and select it. -% \begin{macrocode} -\def\MT@set@lsbasefont{\MT@exp@two@c\let\font@name\MT@ls@basefont} -\def\MT@set@tr@zero{% -%\MT@dinfo@nl{1}{... zero tracking}% - \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}% - \expandafter\ifx\MT@ls@basefont\relax \else -%\MT@dinfo@nl{1}{... fixing base font}% - \aftergroup\MT@set@lsbasefont - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@tr@noligatures} -% \pdftex\ 1.40.0--1.40.3 disabled all ligatures in letterspaced fonts. -% \begin{macrocode} -%<*package> -\MT@requires@pdftex7{ - \def\MT@tr@noligatures{% - \ifx\MT@tr@ligatures\@empty - \MT@noligatures@\MT@lsfont\@undefined - \else - \MT@noligatures@\MT@lsfont\MT@tr@ligatures - \fi - } -}{ - \def\MT@tr@noligatures{% - \MT@warning@nl{% - Disabling selected ligatures is only possible since\MessageBreak - pdftex 1.40.4. Disabling all ligatures instead}% - \MT@glet\MT@tr@noligatures\relax - } -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@outer@space} -% A new skip for outer spacing. -% \begin{macrocode} -\newskip\MT@outer@space -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@set@space} -% Adjust interword spacing (\fontdim2--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. -% \begin{macrocode} -\def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{% -%\MT@dinfo@nl2{... orig. space: \the\fontdimen2\MT@lsfont, -% \the\fontdimen3\MT@lsfont, \the\fontdimen4\MT@lsfont -% \MessageBreak... (#1,#2,#3) (#4,#5,#6)}% - \let\MT@temp\@empty - \MT@tr@set@space@{#1}{#4}{2}\@empty - \MT@tr@set@space@{#2}{#5}{3}\@plus - \MT@tr@set@space@{#3}{#6}{4}\@minus - \MT@glet@nc{MT@outer@space\expandafter\string\font@name}\MT@temp -%\MT@dinfo@nl2{... inner space: \the\fontdimen2\MT@lsfont, -% \the\fontdimen3\MT@lsfont, \the\fontdimen4\MT@lsfont}% -%\MT@dinfo@nl2{... outer space: \MT@temp}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@set@space@} -% If outer spacing settings don't exist, they will be inherited from the inner -% spacing settings. -% \begin{macrocode} -\def\MT@tr@set@space@#1#2#3#4{% - \MT@ifempty{#2}{% - \MT@ifempty{#1}{% - \edef\MT@temp{\MT@temp#4\the\fontdimen#3\MT@lsfont}% - }{% - \MT@tr@set@space@@{#1}{#3}{1000}% - \edef\MT@temp{\MT@temp#4\the\@tempdima}% - \fontdimen#3\MT@lsfont=\@tempdima - }% - }{% - \MT@tr@set@space@@{#2}{#3}{2000}% - \edef\MT@temp{\MT@temp#4\the\@tempdima}% - \MT@ifempty{#1}\relax{% - \MT@tr@set@space@@{#1}{#3}{1000}% - \fontdimen#3\MT@lsfont=\@tempdima - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@set@space@@} -% If the value is followed by an asterisk, the fontdimen will be scaled by the -% respective amount, otherwise the value denotes the desired dimension in the -% respective unit. -% \begin{macrocode} -\def\MT@tr@set@space@@#1#2#3{% - \MT@test@ast#1*\@nil{% - \MT@ifdefined@c@TF\MT@tr@unit@ - {\edef\@tempb{#1}\MT@scale@to@em} - {\@tempcntb=#1\relax}% - \@tempdima=\dimexpr \dimexpr\@tempcntb sp*\MT@dimen@six/1000\relax - -\fontdimen#2\MT@lsfont\relax -% \end{macrocode} -% For \fontdim2, we also have to subtract the kerning that letterspacing adds -% to the sides of the characters (only half if it's for outer spacing). -% \begin{macrocode} - \ifnum#2=\tw@ - \advance\@tempdima -\dimexpr\MT@letterspace@ sp*\MT@dimen@six/#3\relax - \fi - \@tempdima=\dimexpr \fontdimen#2\MT@lsfont+\@tempdima\relax - }{% - \MT@ifempty\@tempa{\let\@tempa\MT@letterspace@}\relax - \@tempdima=\dimexpr \numexpr1000+\@tempa sp *\fontdimen#2\MT@lsfont/1000\relax - }% -%\MT@dinfo@nl3{... : font dimen #2 (#1): \the\@tempdima}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@outer@l} -% Recall the last skip (must really be an interword space, not just a marker, -%\changes{v2.3}{2007/10/23}{only change pre outer space if it contains shrink} -% nor a `hard' space, \ie, one that doesn't contain stretch or shrink parts). -%\changes{v2.3b}{2008/05/12}{fix: only in horizontal mode} -% \begin{macrocode} -\def\MT@tr@outer@l{% - \ifhmode - \ifdim\lastskip>5sp - \edef\x{\the\lastskip minus 0pt}% - \setbox\z@\hbox{\MT@outer@space=\x}% - \ifdim\wd\z@>\z@ -%\MT@dinfo2{[[[ adjusting pre space: \the\MT@outer@space}% - \unskip \hskip\MT@outer@space\relax -% \end{macrocode} -% Disable left outer kerning. -% \begin{macrocode} - \let\MT@ls@outer@k\relax - \else -% \end{macrocode} -%\changes{v2.3b}{2008/05/18}{make \cmd\spaceskip-aware (\pkg{ragged2e})} -% The \pkg{ragged2e} package sets \cmd\spaceskip\ without glue. -% \begin{macrocode} - \ifdim\lastskip=% - \ifnum\spacefactor<2000 - \spaceskip - \else - \ifdim\xspaceskip=\z@ - \dimexpr\spaceskip+\fontdimen7\font@name\relax - \else - \xspaceskip - \fi - \fi -%\MT@dinfo2{[[[ adjusting pre space (skip): \the\MT@outer@space}% - \unskip \hskip\MT@outer@space\relax - \let\MT@ls@outer@k\relax - \fi - \fi - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@tr@outer@next} -%\begin{macro}{\MT@tr@outer@r} -%\begin{macro}{\MT@tr@outer@r@} -% The following is borrowed from \pkg{soul}. I've added the cases for italic -% correction, since tracking may also be triggered by text commands (\eg, -% \cmd\textsc). -% \begin{macrocode} -\def\MT@tr@outer@r{% - \futurelet\MT@tr@outer@next\MT@tr@outer@r@ -} -\def\MT@tr@outer@r@{% - \def\MT@temp*{}% -% \end{macrocode} -% Don't adjust in math mode. -%\changes{v2.3d}{2008/11/16}{fix: don't adjust in math mode -% (reported by \contributor Christoph Bier )} -% ^^A MID: <6oapk7F2lvo6U1@mid.individual.net> -% There was a tricky bug when \cs{textls} was the last command in a -% \cmd\mathchoice\ group. -% \begin{macrocode} - \ifmmode \else -% \end{macrocode} -% A similar bug occurred when adjustment would happen inside a discretionary -% group, which we prevent here. -%\changes{v2.3d}{2009/02/08}{fix: don't adjust inside discretionary -% (reported by \contributor Maverick Woo )} -% ^^A private mail, 2009/02/07 -% This only works with \etex\ (which we know is available). -%\changes{v2.3b}{2008/05/18}{additional test for horizontal mode} -% \begin{macrocode} - \ifnum\currentgrouptype=10 \else - \def\MT@temp*##1{\ifhmode\hskip\MT@outer@space -%\MT@dinfo2{]]] adjusting post space (1): \the\MT@outer@space}% - \fi}% - \ifcat\egroup\noexpand\MT@tr@outer@next -% \end{macrocode} -%\changes{v2.3c}{2008/09/18}{additional test for horizontal mode -% (reported by \contributor Sveinung Heggen )} -% ^^A private mail, 2008/09/18 -%\todo{fix problem with tikz} -%^^A \path[->] (N0) edge node {\textls{abc}} (N1); -%^^A reported by \contributor Christian Stark -%^^A ^^A 2009/07/28, MID: <7d81lgF2ad3ckU1@mid.dfncis.de> -% \begin{macrocode} - \ifhmode\unkern\fi\egroup - \MT@set@curr@ok \MT@set@curr@os - \def\MT@temp*{\afterassignment\MT@tr@outer@r\let\MT@temp=}% - \else -% \end{macrocode} -% If the next token is \cmd\maybe@ic\ (from an enclosing text command), we -% gobble it, read the next one, feed it to \cmd\maybe@ic@\ (via -% \cs{MT@tr@outer@icr}) and then call ourselves again. -%\changes{v2.3d}{2009/02/25}{don't use \cmd\x\ -% (reported by \contributor Ulrich Dirr )} -% ^^A private mail, 2009/02/22 -%\changes{v2.3e}{2009/05/29}{fix: set current kerning and spacing again -% (found by \contributor Lars R\"onnb\"ack )} -% ^^A -% \begin{macrocode} - \ifx\maybe@ic\MT@tr@outer@next - \MT@set@curr@ok \MT@set@curr@os - \def\MT@temp*{\afterassignment\MT@tr@outer@icr\let\MT@temp=}% - \else -% \end{macrocode} -% If the next token is \cmd\check@icr\ (from an inner text command), we insert -% ourselves just before it. This will then call \cmd\maybe@ic\ again the next -% round (which however will always insert an italic correction, since it -% doesn't read beyond our group). -% \begin{macrocode} - \ifx\check@icr\MT@tr@outer@next - \def\MT@temp*{\aftergroup\MT@tr@outer@r\check@icr\let\MT@temp=}% - \else - \ifx\@sptoken\MT@tr@outer@next - \def\MT@temp* {\ifhmode\hskip\MT@outer@space -%\MT@dinfo2{]]] adjusting post spaces (2): \the\MT@outer@space}% - \fi}% - \else - \ifx~\MT@tr@outer@next - \def\MT@temp*~{\nobreak\hskip\MT@outer@space -%\MT@dinfo2{]]] adjusting post spaces (3): \the\MT@outer@space}% - }% - \else - \ifx\ \MT@tr@outer@next \else - \ifx\space\MT@tr@outer@next \else - \ifx\@xobeysp\MT@tr@outer@next \else -% \end{macrocode} -% If there's no outer spacing, there may be outer kerning. -% \begin{macrocode} - \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k -%\MT@dinfo2{--- adjusting post kern: \the\MT@outer@kern}% - \fi}% - \let\MT@tr@outer@next\relax - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \MT@temp*% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@tr@outer@icr} -%\begin{macro}{\MT@tr@outer@icr@} -% Helper macros for the italic correction mess. -% \begin{macrocode} -\def\MT@tr@outer@icr{\afterassignment\MT@tr@outer@icr@\MT@tr@outer@r} -\def\MT@tr@outer@icr@{% - \let\@let@token= \MT@tr@outer@next - \maybe@ic@ -} -% \end{macrocode} -%\end{macro} -%\end{macro} -% For older \pdftex\ versions, throw an error. -% \begin{macrocode} -}{ - \DeclareRobustCommand\lsstyle{% - \MT@error{Letterspacing only works with pdftex version 1.40\MessageBreak - or newer}{Upgrade pdftex, or use the `soul' package instead.}% - \MT@glet\lsstyle\relax - } -} -% \end{macrocode} -% And for \luatex, too. -% \begin{macrocode} -%<*lua> -\MT@requires@luatex{ - \DeclareRobustCommand\lsstyle{% - \MT@error{Letterspacing currently doesn't work with luatex} - {Run pdftex, or use the `soul' package instead.}% - \MT@glet\lsstyle\relax - } -}\relax -% -% -% \end{macrocode} -%\begin{macro}{\textls} -%\changes{v2.0}{2005/09/21}{(beta:1) new command: letterspacing} -%\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} -%\begin{macro}{\MT@ls@adjust@} -% This command may be used like the other text commands. -% The starred version removes kerning on the sides. -% The optional argument changes the letterspacing factor. -% \begin{macrocode} -\DeclareRobustCommand\textls{% - \@ifstar{\let\MT@ls@adjust@\MT@ls@adjust@empty\MT@textls}% - {\let\MT@ls@adjust@\MT@ls@adjust@relax\MT@textls}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@textls} -%\begin{macro}{\MT@letterspace@} -% This is now almost \LaTeX's \cmd\DeclareTextFontCommand, with the difference -% that we adjust the outer spacing and kerning also for \cs{lsstyle}, while -% \LaTeX's text \emph{switches} don't bother about italic correction. -% \begin{macrocode} -\newcommand\MT@textls[2][]{% - \ifmmode - \nfss@text{\MT@ls@set@ls{#1}\lsstyle#2}% - \else - \hmode@bgroup - \MT@ls@set@ls{#1}% - \lsstyle #2% - \expandafter - \egroup - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@ls@adjust} -%\begin{macro}{\MT@ls@adjust@empty} -%\begin{macro}{\MT@ls@adjust@relax} -%\begin{macro}{\MT@ls@set@ls} -% Set current letterspacing amount and outer kerning. This has to be done inside -% the same group as the letterspacing command. -% \begin{macrocode} -\def\MT@ls@adjust@empty{\let\MT@ls@adjust\@empty} -\def\MT@ls@adjust@relax{\let\MT@ls@adjust\relax} -\def\MT@ls@set@ls#1{% - \MT@ifempty{#1}% - {\let\MT@letterspace@\@undefined}% - {\KV@@sp@def\MT@letterspace@{#1}% - \MT@ls@too@large\MT@letterspace@}% - \MT@ls@adjust@ -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@ls@too@large} -% Test whether letterspacing amount is too large. -% \begin{macrocode} -\def\MT@ls@too@large#1{% - \ifnum#1>\MT@tr@max - \MT@warning{Maximum for option `letterspace' is \number\MT@tr@max}% - \let#1\MT@tr@max - \else - \ifnum#1<\MT@tr@min - \MT@warning{Minimum for option `letterspace' is \number\MT@tr@min}% - \let#1\MT@tr@min - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@outer@kern} -%\begin{macro}{\MT@tr@set@okern} -%\changes{v2.3d}{2008/12/19}{allow empty value for \texttt{outer kerning}} -% This dimen is used for the starred version of \cs{textls}, for \cs{lslig} -% and for adjusted outer kerning. -% \begin{macrocode} -\newdimen\MT@outer@kern -%<*package> -\def\MT@tr@set@okern#1,#2,{% - \let\MT@temp\@empty - \MT@ifempty{#1}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#1}}% - \MT@ifempty{#2}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#2}}% - \MT@glet@nc{MT@outer@kern\expandafter\string\font@name}\MT@temp -%\MT@dinfo@nl2{... outer kerning: (#1,#2) -% = \@nameuse{MT@outer@kern\expandafter\string\font@name}}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@tr@set@okern@} -% \begin{macrocode} -\def\MT@tr@set@okern@#1{% - \MT@test@ast#1*\@nil{% - \MT@ifdefined@c@TF\MT@tr@unit@ - {\edef\@tempb{#1}\MT@scale@to@em} - {\@tempcntb=#1\relax}% - \@tempdima=\dimexpr \@tempcntb sp * \MT@dimen@six/1000\relax - }{% - \MT@ifempty\@tempa{\let\@tempa\@m}\relax - \@tempdima=\dimexpr \numexpr\@tempa*\MT@letterspace@/1000\relax sp - * \fontdimen6\MT@lsfont/2000\relax - }% - \advance\@tempdima -\dimexpr \MT@letterspace@ sp - * \fontdimen6\MT@lsfont/2000\relax - \edef\MT@temp{\MT@temp{\the\@tempdima}}% -} -% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@ls@outer@k} -% Adjust outer kerning. -% \begin{macrocode} -\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi} -%<*package> -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Disabling ligatures} -% -%\begin{macro}{\MT@noligatures} -% The possibility to disable ligatures is a new features of \pdftex\ 1.30. -%\changes{v2.3}{2007/10/23}{fix: set evaluation didn't work (bug introduced in 2.2)} -% \begin{macrocode} -\MT@requires@pdftex5{ -\def\MT@noligatures{% - \MT@dotrue - \let\@tempa\MT@nl@setname - \MT@map@clist@n{font,encoding,family,series,shape,size}{% - \MT@ifdefined@n@TF{MT@checklist@##1}% - {\csname MT@checklist@##1\endcsname}% - {\MT@checklist@{##1}}% - {nl}% - }% - \ifMT@do - \MT@noligatures@\MT@font\MT@nl@ligatures - \fi -} -% \end{macrocode} -%\begin{macro}{\MT@noligatures@} -% This is also used by \cs{MT@set@tr@codes}. -% \begin{macrocode} -\def\MT@noligatures@#1#2{% - \MT@ifdefined@c@TF#2{% -% \end{macrocode} -% Early MiK\TeX\ versions (before 2.5.2579) didn't know \cmd\tagcode. -% \begin{macrocode} - \MT@ifdefined@c@TF\tagcode{% -% \end{macrocode} -% No `|inputenc|' key. -%\changes{v2.3b}{2008/03/27}{fix: warning messages for unknown slots} -% \begin{macrocode} - \let\MT@warn@maybe@inputenc\@empty - \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}% - \MT@vinfo{... Disabling ligatures for characters: #2}% - }{% - \pdfnoligatures#1% - \MT@warning{Cannot disable selected ligatures (pdftex doesn't\MessageBreak - know \@backslashchar tagcode). Disabling all ligatures of\MessageBreak - the font instead}% - }% - }{% - \pdfnoligatures#1% - \MT@vinfo{... Disabling ligatures}% - }% -} -}\relax -% \end{macrocode} -%\end{macro} -%\end{macro} -% -%\subsubsection{Loading the configuration} -% -%\begin{macro}{\MT@load@list} -% Recurse through the lists to be loaded. -%\changes{v1.3}{2004/10/27}{check whether list exists} -%\todo{load more than one list} -% \begin{macrocode} -\def\MT@load@list#1{% - \edef\@tempa{#1}% - \MT@let@cn\@tempb{MT@\MT@feat @c@\@tempa @load}% - \MT@ifstreq\@tempa\@tempb{% - \MT@error{\@nameuse{MT@abbr@\MT@feat} list `\@tempa' cannot load itself}{}% - }{% - \ifx\@tempb\relax \else - \MT@ifdefined@n@TF{MT@\MT@feat @c@\@tempb}{% - \MT@vinfo{... : First loading \@nameuse{MT@abbr@\MT@feat} list `\@tempb'}% - \begingroup - \MT@load@list\@tempb - \endgroup - \edef\MT@curr@list@name{\@nameuse{MT@abbr@\MT@feat} list - \noexpand\MessageBreak`\@tempb'}% - \MT@let@cn\@tempc{MT@\MT@feat @c@\@tempb}% - \expandafter\MT@set@codes\@tempc,\relax,% - }{% - \MT@error{\@nameuse{MT@abbr@\MT@feat} list `\@tempb' undefined.\MessageBreak - Cannot load it from list `\@tempa'}{}% - }% - \fi - }% -} -% \end{macrocode} -%\end{macro} -%\changes{v1.1}{2004/09/13}{configuration file names in lowercase -% (suggested by \contributor Harald Harders )} -% ^^A private mail, 2004/09/13 -%\begin{macro}{\MT@find@file} -%\changes{v1.1}{2004/09/14}{fix: also check whether the file for the base -% font family has already been loaded} -% Micro-typographic settings may be written into a file |mt-|\meta{font family}|.cfg|. -%\changes{v1.8}{2005/04/16}{no longer wrap names in commands} -%\begin{macro}{\MT@file@list} -% We must also record whether we've already loaded the file. -% \begin{macrocode} -\let\MT@file@list\@empty -\def\MT@find@file#1{% -% \end{macrocode} -%\end{macro} -% Check for existence of the file only once. -% \begin{macrocode} - \MT@in@clist{#1}\MT@file@list - \ifMT@inlist@ \else -% \end{macrocode} -% Don't forget that because reading the files takes place inside a group, all -% commands that may be used there have to be defined globally. -% \begin{macrocode} - \MT@begin@catcodes - \let\MT@begin@catcodes\relax - \let\MT@end@catcodes\relax - \InputIfFileExists{mt-#1.cfg}{% - \edef\MT@curr@file{mt-#1.cfg}% - \MT@vinfo{... Loading configuration file \MT@curr@file}% - \MT@xadd\MT@file@list{#1,}% - }{% - \MT@get@basefamily#1\@empty\@empty\@empty\@nil - \MT@exp@one@n\MT@in@clist\@tempa\MT@file@list - \ifMT@inlist@ - \MT@xadd\MT@file@list{#1,}% - \else - \InputIfFileExists{mt-\@tempa.cfg}{% - \edef\MT@curr@file{mt-\@tempa.cfg}% - \MT@vinfo{... Loading configuration file \MT@curr@file}% - \MT@xadd\MT@file@list{\@tempa,#1,}% - }{% - \MT@vinfo{... No configuration file mt-#1.cfg}% - \MT@xadd\MT@file@list{#1,}% - }% - \fi - }% - \endgroup - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@cfg@catcodes} -% We have to make sure that all characters have the correct category code. -% Especially, new lines and spaces should be ignored, since files might be -% loaded in the middle of the document. This is basically \cmd\nfss@catcodes\ -% (from the \LaTeX\ kernel). I've added: -%\changes{v1.4a}{2004/11/16}{fix: reset some more catcodes when reading files -% (reported by \contributor Michael Hoppe )} -% ^^A MID: -% |&| (in |tabular|s), |!|, |?|, |;|, -%\changes{v1.7}{2005/02/06}{reset catcode of `\texttt{:}' -% (compatibility with \pkg{french}* packages)} -% |:| (|french|), |,|, |$|, |_|, |~|, -%\changes{v1.5}{2004/11/28}{reset catcode of `\texttt{\quotechar=}' -% (compatibility with Turkish \pkg{babel})} -% and |=| (Turkish \pkg{babel}). -% -%\changes{v1.8}{2005/03/29}{reset catcodes of the remaining characters} -% OK, now all printable characters up to 127 are `other'. We hope that letters -% are always letters and numbers other. (\pkg{listings} makes them active, see -% section~\ref{sub:compatibility}.) -% -% We leave |^| at catcode 7, so that stuff like `|^^ff|' remains possible. -% \begin{macrocode} -\def\MT@cfg@catcodes{% - \makeatletter - \catcode`\^7% - \catcode`\ 9% - \catcode`\^^I9% - \catcode`\^^M9% - \catcode`\\\z@ - \catcode`\{\@ne - \catcode`\}\tw@ - \catcode`\#6% - \catcode`\%14% - \MT@map@tlist@n - {\!\"\$\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\[\]\_\`\|\~}% - \@makeother -} -% \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. -%\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} -\def\MT@begin@catcodes{% - \begingroup - \MT@cfg@catcodes -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@end@catcodes} -% End group if outside configuration file (otherwise relax). -% \begin{macrocode} -\let\MT@end@catcodes\endgroup -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@basefamily} -% The family name might have a suffix -%\changes{v1.1}{2004/09/14}{only remove suffix if it is `\texttt{x}' or `\texttt{j}'} -% \eg, for expert set (|x|), old style numbers (|j|) -%\changes{v1.2}{2004/09/26}{also remove `w' (swash capitals)} -% swash capitals (|w|) etc. We mustn't simply remove the last letter, as this -% would make for instance |cms| out of |cmss| \textit{and} |cmsy| (OK, |cmex| -% will still become |cme|~\dots). -%\changes{v1.4b}{2004/11/25}{fix: failed for font names of the form \texttt{abczz} -% (reported by \contributor Georg Verweyen )} -% ^^A MID: <41A64DC7.7040404@web.de> -%\changes{v2.2}{2007/02/04}{redone, working on font names and suffixes of arbitrary length} -% -% We only work on the font name if it is longer than three characters. -% \begin{macrocode} -\def\MT@get@basefamily#1#2#3#4\@nil{% - \ifx\@empty#4% - \def\@tempa{#1#2#3}% - \else - \let\@tempa\@empty - \edef\@tempb{#1#2#3#4}% - \expandafter\MT@get@basefamily@\@tempb\@nil - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@basefamily@} -% This will only remove one suffix (the longest match), so that -% \emph{combinations} of suffixes would have be to added manually (\eg, -% |\DeclareMicrotypeVariants*{aw}|). But otherwise, something like `|padx|' -% would be truncated to `|p|'. -% \begin{macrocode} -\def\MT@get@basefamily@#1#2\@nil{% - \edef\@tempa{\@tempa#1}% - \ifx\\#2\\\expandafter\@gobble\else\expandafter\@firstofone\fi - {\MT@in@tlist{#2}\MT@variants - \ifMT@inlist@\else\MT@get@basefamily@#2\@nil\fi}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@listname} -%\begin{macro}{\MT@get@listname} -%\begin{macro}{\MT@get@listname@} -% Try all combinations of font family, series, shape and size to get a list for -% the current font. -%\changes{v1.1}{2004/09/15}{don't check for empty attributes list} -%\changes{v1.2}{2004/09/30}{alternatively check for alias font name} -%\changes{v1.7}{2005/03/15}{use \cmd\@tfor\ -% (\contributor Andreas B\"uhmann 's idea)} -% ^^A private mail, 2005/03/12 -%\changes{v1.8}{2005/04/16}{made recursive} -% \begin{macrocode} -\def\MT@get@listname#1{% -%\MT@dinfo@nl{1}{trying to find \@nameuse{MT@abbr@#1} list for font `\MT@@font'}% - \let\MT@listname\@undefined - \def\@tempb{#1}% - \MT@map@tlist@c\MT@try@order\MT@get@listname@ -} -\def\MT@get@listname@#1{% - \expandafter\MT@next@listname#1% - \ifx\MT@listname\@undefined \else - \expandafter\MT@tlist@break - \fi -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@try@order} -%\changes{v1.7}{2005/03/11}{fix: also check for //\meta{series}/\meta{shape}// -% (reported by \contributor Andreas B\"uhmann )} -% ^^A private mail, 2005/03/10 -%\changes{v1.7}{2005/03/11}{always check for size, too -% (suggested by \contributor Andreas B\"uhmann )} -% ^^A private mail, 2005/03/10 -% -%\begin{table}\footnotesize -%\caption{Order for matching font attributes}\label{tab:match-order} -%\catcode`\!=13 \let!\match -%\setlength\fboxsep{4pt} -%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax -%\fcolorbox{theframe}{white}{^^A -%\begin{minipage}{\textwidth} -%\begin{tabular}{@{}L{38pt}*{16}{p{19.5pt}<{\centering}@{}}} -% & 1.& 2.& 3.& 4.& 5.& 6.& 7.& 8.& 9.&10.&11.&12.&13.&14.&15.&16.\\ -%\cmidrule(r){2-2} \cmidrule(r){3-3} \cmidrule(r){4-4} \cmidrule(r){5-5} -%\cmidrule(r){6-6} \cmidrule(r){7-7} \cmidrule(r){8-8} \cmidrule(r){9-9} -%\cmidrule(r){10-10}\cmidrule(r){11-11}\cmidrule(r){12-12}\cmidrule(r){13-13} -%\cmidrule(r){14-14}\cmidrule(r){15-15}\cmidrule(r){16-16}\cmidrule {17-17} -% Encoding & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! \\ -% Family & ! & ! & ! & ! & ! & ! & ! & ! & - & - & - & - & - & - & - & - \\ -% Series & ! & ! & ! & ! & - & - & - & - & ! & ! & ! & ! & - & - & - & - \\ -% Shape & ! & ! & - & - & ! & ! & - & - & ! & ! & - & - & ! & ! & - & - \\ -% Size & ! & - & ! & - & ! & - & ! & - & ! & - & ! & - & ! & - & ! & - \\ -%\end{tabular} -%\end{minipage}^^A -%}\kern-\dimexpr\fboxsep+\fboxrule\relax ^^A end \fcolorbox -%\end{table} -% -% Beginning with version 1.7, we always check for the font size. Since the -% matching order has become more logical now, it can be described in words, so -% that we don't need table~\ref{tab:match-order} in the documentation part any -% longer and can cast it off here. -% \begin{macrocode} -\def\MT@try@order{% - {1111}{1110}{1101}{1100}{1011}{1010}{1001}{1000}% - {0111}{0110}{0101}{0100}{0011}{0010}{0001}{0000}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@next@listname} -% The current context is added to the font attributes. That is, the context must -% match. -% \begin{macrocode} -\def\MT@next@listname#1#2#3#4{% - \edef\@tempa{\MT@encoding - /\ifnum#1=\@ne \MT@family\fi - /\ifnum#2=\@ne \MT@series\fi - /\ifnum#3=\@ne \MT@shape\fi - /\ifnum#4=\@ne *\fi - \MT@context}% -%\MT@dinfo@nl{1}{trying \@tempa}% - \MT@ifdefined@n@TF{MT@\@tempb @\@tempa}{% - \MT@next@listname@#4% - }{% -% \end{macrocode} -% Also try with an alias family. -% \begin{macrocode} - \ifnum#1=\@ne - \ifx\MT@familyalias\@empty \else - \edef\@tempa{\MT@encoding - /\MT@familyalias - /\ifnum#2=\@ne \MT@series\fi - /\ifnum#3=\@ne \MT@shape\fi - /\ifnum#4=\@ne *\fi - \MT@context}% -%\MT@dinfo@nl{1}{(alias) \@tempa}% - \MT@ifdefined@n@T{MT@\@tempb @\@tempa}{% - \MT@next@listname@#4% - }% - \fi - \fi - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@next@listname@} -% If size is to be evaluated, do that, otherwise use the current list. -% \begin{macrocode} -\def\MT@next@listname@#1{% - \ifnum#1=\@ne - \MT@exp@cs\MT@in@rlist{MT@\@tempb @\@tempa @sizes}% - \ifMT@inlist@ - \let\MT@listname\MT@size@name - \fi - \else - \MT@let@cn\MT@listname{MT@\@tempb @\@tempa}% - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@if@list@exists} -%\changes{v1.7}{2005/02/06}{don't define \cs{MT@\#1@c@name} \cmd\global ly, -% here and elsewhere} -%\begin{macro}{\MT@context} -% \begin{macrocode} -\def\MT@if@list@exists{% - \MT@let@cn\MT@context{MT@\MT@feat @context}% - \MT@ifstreq{@}\MT@context{\let\MT@context\@empty}\relax - \MT@get@listname{\MT@feat @c}% - \MT@ifdefined@c@TF\MT@listname{% - \MT@edef@n{MT@\MT@feat @c@name}{\MT@listname}% - \ifMT@nonselected - \MT@vinfo{... Applying non-selected expansion (list `\MT@listname')}% - \else - \MT@vinfo{... Loading \@nameuse{MT@abbr@\MT@feat} list `\MT@listname'}% - \fi - \@firstoftwo - }{% -% \end{macrocode} -% Since the name cannot be \cmd\@empty, this is a sound proof that no matching -% list exists. -% \begin{macrocode} - \MT@let@nc{MT@\MT@feat @c@name}\@empty -% \end{macrocode} -% Don't warn if \opt{selected}|=false|. -% \begin{macrocode} - \ifMT@nonselected - \MT@vinfo{... Applying non-selected expansion (no list)}% - \else -% \end{macrocode} -% Tracking doesn't require a list, either. -% \begin{macrocode} - \MT@ifstreq\MT@feat{tr}\relax{% - \MT@warning{I cannot find a \@nameuse{MT@abbr@\MT@feat} list - for font\MessageBreak`\MT@@font'% - \ifx\MT@context\@empty\else\space(context: `\MT@context')\fi. - Switching off\MessageBreak\@nameuse{MT@abbr@\MT@feat} for this font}% - }% - \fi - \@secondoftwo - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@get@inh@list} -%\changes{v1.6}{2004/12/18}{correct message if \opt{selected} is false} -%\begin{macro}{\MT@context} -% The inheritance lists are global (no context). -% \begin{macrocode} -\def\MT@get@inh@list{% - \let\MT@context\@empty -% \end{macrocode} -%\end{macro} -% \begin{macrocode} - \MT@get@listname{\MT@feat @inh}% - \MT@ifdefined@c@TF\MT@listname{% - \MT@edef@n{MT@\MT@feat @inh@name}{\MT@listname}% -%\MT@dinfo@nl{1}{... Using \@nameuse{MT@abbr@\MT@feat} inheritance list -% `\MT@listname'}% - \MT@let@cn\@tempc{MT@\MT@feat @inh@\MT@listname}% -% \end{macrocode} -% If the list is \cmd\@empty, it has already been parsed. -%\changes{v1.2}{2004/09/26}{fix: set inheritance list \cmd\global ly to \cmd\@empty} -% \begin{macrocode} - \ifx\@tempc\@empty \else -%\MT@dinfo@nl{1}{parsing inheritance list ...}% -% \end{macrocode} -% The group is only required in case an input encoding is given. -%\changes{v1.9f}{2006/08/03}{fix: input encoding must be set after the inheritance -% list has been parsed} -% \begin{macrocode} - \begingroup - \edef\MT@curr@list@name{inheritance list\noexpand\MessageBreak`\MT@listname'}% - \MT@set@inputenc{inh}% - \expandafter\MT@inh@do\@tempc,\relax,% - \MT@glet@nc{MT@\MT@feat @inh@\MT@listname}\@empty - \endgroup - \fi - }{% - \MT@let@nc{MT@\MT@feat @inh@name}\@undefined - }% -} -% \end{macrocode} -%\end{macro} -% -% \subsubsection{Translating characters into slots} -% -%\changes{v1.4}{2004/11/04}{don't use scratch registers in global definitions} -% Get the slot number of the character in the current encoding. -% -%\begin{macro}{\MT@get@slot} -%^^A\changes{v1.2}{2004/09/26}{fix: group must also include \cs{MT@get@composite}} -%\changes{v1.4b}{2004/11/22}{don't define \cs{MT@char} globally (save stack problem)} -%\changes{v1.6a}{2005/01/30}{completely redone, hopefully more robust -% (compatible with \pkg{frenchpro}; problem reported by -% \contributor Bernard Gaulle )} -% ^^A private mail, 2005/01/28 -%\changes{v1.7}{2005/03/21}{remove backslash hack} -% There are lots of possibilities how a character may be specified in the -% configuration files, which makes translating them into slot numbers quite -% expensive. Also, we want to have this as robust as possible, so that the user -% does not have to solve a sphinx's riddle if anything goes wrong. -% -%\begin{macro}{\MT@char} -%\begin{macro}{\MT@char@} -% The character is in \cs{@tempa}, we want its slot number in \cs{MT@char}. -% \begin{macrocode} -\def\MT@get@slot{% - \escapechar`\\ - \let\MT@char@\m@ne - \MT@noresttrue -% \end{macrocode} -%\end{macro} -%\end{macro} -% Save unexpanded string in case we need to issue a warning message. -% \begin{macrocode} - \MT@toks=\expandafter{\@tempa}% -% \end{macrocode} -% Now, let's walk through (hopefully) all possible cases. -%\begin{itemize} -% \item It's a letter, a character or a number. -% \begin{macrocode} - \expandafter\MT@is@letter\@tempa\relax\relax - \ifnum\MT@char@ < \z@ -% \end{macrocode} -%\changes{v1.8}{2005/03/30}{fix: expand active characters} -% \item It might be an active character, \ie, an 8-bit character defined by -% \pkg{inputenc}. If so, we will expand it here to its form. -% \begin{macrocode} - \MT@exp@two@c\MT@is@active\string\@tempa\@nil -% \end{macrocode} -% \item OK, so it must be a macro. We do not allow random commands but only -% those defined in \LaTeX's idiosyncratic font encoding scheme: -% -% If |\|\meta{encoding}|\|\meta{command} (that's \emph{one} command) is -% defined, we try to extract the slot number. -%\changes{v1.7}{2005/02/27}{test whether \cs{}\meta{encoding}\cs{}\meta{...} is defined} -%\changes{v1.8}{2005/04/04}{test whether \cs{}\meta{encoding}\cs{}\meta{...} is defined -% made more robust} -% -% We must be cautious not to stumble over accented characters consisting -% of two commands, like \cmd\`\cmd\i\ or \cmd\U\cmd\CYRI, hence, -% \cmd\string\ wouldn't be safe enough. -% \begin{macrocode} - \MT@ifdefined@n@TF{\MT@encoding\MT@detokenize@c\@tempa}% - \MT@is@symbol -% \end{macrocode} -% \item Now, we'll catch the rest, which hopefully is an accented character -% (\eg~|\"a|). -% \begin{macrocode} - {\expandafter\MT@is@composite\@tempa\relax\relax}% - \ifnum\MT@char@ < \z@ -% \end{macrocode} -% \item It could also be a \cmd\chardef ed command (\eg, the percent character). -% This seems the least likely case, so it's last. -%\changes{v1.7}{2005/03/20}{test for \cmd\chardef ed commands} -% \begin{macrocode} - \expandafter\MT@exp@two@c\expandafter\MT@is@char\expandafter - \meaning\expandafter\@tempa\MT@charstring\relax\relax\relax - \fi - \fi -% \end{macrocode} -%\end{itemize} -% \begin{macrocode} - \let\MT@char\MT@char@ - \ifnum\MT@char < \z@ - \MT@warn@unknown - \else -% \end{macrocode} -% 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. -% \begin{macrocode} - \ifMT@norest \else - \MT@warn@rest - \let\MT@char\m@ne - \fi - \fi - \escapechar\m@ne -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\ifMT@norest} -% Test whether all of the string has been used up. -% \begin{macrocode} -\newif\ifMT@norest -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@is@letter} -% Input is a letter, a character or a number. -%\changes{v1.8}{2005/04/04}{warning for non- characters} -%\changes{v1.9}{2005/10/22}{using \cmd\catcode\ should be more efficient than -% inspecting the \cmd\meaning} -% \begin{macrocode} -\def\MT@is@letter#1#2\relax{% - \ifcat a\noexpand#1\relax - \edef\MT@char@{\number`#1}% - \ifx\\#2\\% -%\MT@dinfo@nl{3}{> `\the\MT@toks' is a letter (\MT@char@)}% - \else - \MT@norestfalse - \fi - \else - \ifcat !\noexpand#1\relax - \edef\MT@char@{\number`#1}% -%\MT@dinfo@nl{3}{> `\the\MT@toks' is a character (\MT@char@)}% - \ifx\\#2\\% - \ifnum\MT@char@ > 127 \MT@warn@ascii \fi - \else - \MT@norestfalse - \expandafter\MT@is@number#1#2\relax\relax - \fi - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@is@number} -% Numbers may be specified as a three-digit decimal number (|029|), -%\changes{v1.1}{2004/09/13}{numbers may also be specified in hexadecimal or octal -% (suggested by \contributor Harald Harders )} -% ^^A private mail, 2004/09/13 -% as a hexadecimal number (prefixed with~|"|: |"1D|) or as a octal number -% (prefixed with~|'|: |'35|). They must consist of at least three characters -% (including the prefix), that is, |"F| is not permitted. -% \begin{macrocode} -\def\MT@is@number#1#2#3\relax{% - \ifx\relax#3\relax \else - \ifx\relax#2\relax \else - \MT@noresttrue - \if#1"\relax - \def\x{\uppercase{\edef\MT@char@{\number#1#2#3}}}\x -%\MT@dinfo@nl{3}{> ... a hexadecimal number: \MT@char@}% - \else - \if#1'\relax - \def\MT@char@{\number#1#2#3}% -%\MT@dinfo@nl{3}{> ... an octal number: \MT@char@}% - \else - \MT@ifint{#1#2#3}{% - \def\MT@char@{\number#1#2#3}% -%\MT@dinfo@nl{3}{> ... a decimal number: \MT@char@}% - }\MT@norestfalse - \fi - \fi - \ifnum\MT@char@ > \@cclv - \MT@warn@number@too@large{\noexpand#1\noexpand#2\noexpand#3}% - \let\MT@char@\m@ne - \fi - \fi - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@is@active} -%\changes{v1.8}{2005/03/30}{new macro: translate \pkg{inputenc}-defined characters} -% Expand an active character. (This was completely broken in v1.7, and only -% worked by chance before.) -%\changes{v1.9}{2005/09/08}{redone: use \cmd\set@display@protect} -% We \cmd\set@display@protect\ to translate, \eg, \expandafter|\"A| into |\"A|, -% that is to whatever it is defined in the \pkg{inputenc} encoding file. -% -%\iffalse -% Previous solution, slightly more robust (but doesn't understand Unicode): -%\begin{verbatim} -%\def\MT@is@active#1#2\@nil{% -% \ifx\\#2\\% -% \ifnum\catcode`#1 = \active -% \toks@=\expandafter\expandafter\expandafter{\@tempa}% -% \expandafter\MT@active@inpenc\the\toks@\relax\relax -% \edef\@tempa{\the\toks@}% -% \edef\x{\MT@toks={\the\MT@toks\space(= \the\toks@)}}\x -% \fi -% \fi -%} -%\def\MT@active@inpenc#1#2#3\relax{% -% \ifx#1\IeC -% \def\IeC##1{\toks@={##1}}% -% \the\toks@ -% \expandafter\MT@active@inpenc\the\toks@\relax\relax -% \fi -% \ifx#1\@tabacckludge -% \def\@tabacckludge##1##2{% -% \toks@=\expandafter{\csname\string##1\endcsname#3}}% -% \the\toks@ -% \fi -% \ifx#1\@inpenc@undefined@ -% \def\@inpenc@undefined@##1{% -% \edef\x{\toks@={% -% undefined^^J(\MT@MT)\@spaces\@spaces\@spaces\@spaces -% in input encoding ``##1''}}\x}% -% \the\toks@ -% \fi -%} -%\end{verbatim} -%\fi -% -% Unfortunately, the (older) \pkg{inputenc} definitions prefer the -% protected\slash generic variants (\eg, \cmd\copyright\ instead of -% \cmd\textcopyright), which our parser won't be able to understand. -% (I'm fed up now, so you have to complain if you really, really want to be able -% to write `\expandafter|\textcopyright|' instead of \cmd\textcopyright, thus -% rendering your configuration files unportable.) -% -% Unicode characters (\pkg{inputenc}/|utf8|,|utf8x|) are also supported. -%\changes{v1.9d}{2006/03/06}{support for Unicode (\pkg{inputenc}\slash\texttt{utf8})} -%\changes{v2.3}{2007/11/11}{support for extended Unicode (\pkg{inputenc}\slash\texttt{utf8x} resp. \pkg{ucs}) -- experimental} -% -%\iffalse ^^A obsolete because of `inputenc' key -% We presume that only one input encoding is being used throughout the entire -% document. We could of course save the input encoding together with the list, -% but this would entail a couple of problems: (1)~the overhead of resetting the -% input encoding every time, (2)~the problem (or rather, impossibility) to -% decide which input encoding should be chosen -- the one active when the list -% was declared or the one active when the font is selected, and (3)~the -% improbability of multiple input encodings being used at all. -%\fi -% \begin{macrocode} -\def\MT@is@active#1#2\@nil{% - \ifnum\catcode`#1 = \active - \begingroup - \set@display@protect - \let\IeC\@firstofone - \let\@inpenc@undefined@\MT@undefined@char -% \end{macrocode} -% We refrain from checking whether there is a sufficient number of octets. -% \begin{macrocode} - \def\UTFviii@defined##1{\ifx ##1\relax - \MT@undefined@char{utf8}\else\expandafter ##1\fi}% -% \end{macrocode} -% For \pkg{ucs} (utf8x). Let's call it experimental~\dots -% \begin{macrocode} - \MT@ifdefined@c@T\PrerenderUnicode - {\PrerenderUnicode{\@tempa}\let\unicode@charfilter\@firstofone}% - \edef\x{\endgroup - \def\noexpand\@tempa{\@tempa}% -% \end{macrocode} -% Append what we think the translation is to the token register we use for the -% log. -% \begin{macrocode} - \MT@toks={\the\MT@toks\space(= \@tempa)}% - }% - \x - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@undefined@char} -% For characters not defined in the current input encoding. -% \begin{macrocode} -\def\MT@undefined@char#1{undefined in input encoding ``#1''} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@is@symbol} -% The symbol commands might expand to funny stuff, depending on context. -% Instead of simply expanding |\|\meta{command}, we construct the command -% |\|\meta{encoding}|\|\meta{command} and see whether its meaning is -% \cmd\char|"|\meta{hex number}, which is the case for everything that has -% been defined with \cs{DeclareTextSymbol} in the encoding definition files. -%\changes{v2.0}{2006/09/15}{made even more robust} -% \begin{macrocode} -\def\MT@is@symbol{% - \expandafter\def\expandafter\MT@char\expandafter - {\csname\MT@encoding\MT@detokenize@c\@tempa\endcsname}% - \expandafter\MT@exp@two@c\expandafter\MT@is@char\expandafter - \meaning\expandafter\MT@char\MT@charstring\relax\relax\relax - \ifnum\MT@char@ < \z@ -% \end{macrocode} -%\changes{v2.2}{2007/03/07}{expand once more (for \pkg{frenchpro})} -% \dots~or, if it hasn't been defined by \cs{DeclareTextSymbol}, a letter -% (\eg, \cmd\i, when using \pkg{frenchpro}). ^^A as noted by Bernard Gaulle -% ^^A private mail, 2005/01/28 -% \begin{macrocode} - \expandafter\expandafter\expandafter\MT@is@letter\MT@char\relax\relax - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@is@char} -%\begin{macro}{\MT@charstring} -% A helper macro that inspects the \cmd\meaning\ of its argument. -% \begin{macrocode} -\begingroup - \catcode`\/=\z@ -% \end{macrocode} -%\SpecialEscapechar{\/} -% \begin{macrocode} - /MT@map@tlist@n{/\CHAR}/@makeother - /lowercase{% - /def/x{/endgroup - /def/MT@charstring{\CHAR"}% - /def/MT@is@char##1\CHAR"##2##3##4/relax{% - /ifx/relax##1/relax - /if##3\/relax - /edef/MT@char@{/number"##2}% - /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse - /else - /edef/MT@char@{/number"##2##3}% - /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse - /fi -% /MT@dinfo@nl{3}{> `/the/MT@toks' is a \char (/MT@char@)}% - /fi - }% - }% - } -/x -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@is@composite} -% Here, we are dealing with accented characters, specified as two tokens. -%\changes{v1.7}{2005/03/10}{new macro: construct command for composite character; -% no uncontrolled expansion} -%\changes{v2.2}{2007/06/08}{more robust: expand exactly once} -% \begin{macrocode} -\def\MT@is@composite#1#2\relax{% - \ifx\\#2\\\else -% \end{macrocode} -% Again, we construct a control sequence, this time of the form: -% |\\|\meta{encoding}\allowbreak|\|\meta{accent}|-|\meta{character}, \eg, -% |\\T1\"-a|, which we then expand once to see if it is a letter (if it has -% been defined by \cs{DeclareTextComposite}). This should be robust, finally, -% especially, since we also \cmd\detokenize\ the input instead of only -% \cmd\string ifying it. Thus, we will die gracefully even on wrong Unicode -% input without |utf8|. -% \begin{macrocode} - \expandafter\def\expandafter\MT@char\expandafter{\csname\expandafter - \string\csname\MT@encoding\endcsname - \MT@detokenize@n{#1}-\MT@detokenize@n{#2}\endcsname}% - \expandafter\expandafter\expandafter\MT@is@letter\MT@char\relax\relax - \fi -} -% \end{macrocode} -%\end{macro} -% [What about math? Well, for a moment the following looked like a solution, with -% \cs{mt@is@mathchar} defined accordingly, analogous to \cs{MT@is@char} above, -% to pick up the last two tokens (the \cmd\meaning\ of a \cmd\mathchardef'ed -% command expands to its hexadecimal notation): -%\begin{verbatim} -%\def\MT@is@mathchar#1{% -% \if\relax\noexpand#1% it's a macro -% \let\x#1% -% \else % it's a character -% \mathchardef\x=\mathcode`#1\relax -% \fi -% \expandafter\MT@exp@two@c\expandafter\mt@is@mathchar\expandafter -% \meaning\expandafter\x\mt@mathcharstring\relax\relax\relax -%} -%\end{verbatim} -% However, the problem is that \cmd\mathcode s and \cmd\mathchardef s have -% global scope. Therefore, if they are changed by a package that loads -% different math fonts, there is no guarantee whatsoever that things will still -% be correct (\eg, the minus in |cmsy| when the \pkg{euler} package is loaded). -% So, no way to go, unfortunately.] -% -% Some warning messages, for performance reasons separated here. -%\begin{macro}{\MT@curr@list@name} -%\changes{v1.8}{2005/06/08}{new macro: current list type and name} -%\changes{v1.9f}{2006/08/03}{fix: \cs{MessageBreak} must not be expanded} -%\begin{macro}{\MT@set@listname} -% The type and name of the current list, defined at various places. -% \begin{macrocode} -\def\MT@set@listname{% - \edef\MT@curr@list@name{\@nameuse{MT@abbr@\MT@feat} list\noexpand\MessageBreak - `\@nameuse{MT@\MT@feat @c@name}'}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@warn@ascii} -% For `other' characters \textgreater\ 127, we issue a warning (\pkg{inputenc} -% probably hasn't been loaded), since correspondence with the slot numbers -% would be purely coincidental. -% \begin{macrocode} -\def\MT@warn@ascii{% - \MT@warning@nl{Character `\the\MT@toks' (= \MT@char@) - is outside of ASCII range.\MessageBreak - You must load the `inputenc' package before using\MessageBreak - 8-bit characters in \MT@curr@list@name}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@number@too@large} -% Number too large. -% \begin{macrocode} -\def\MT@warn@number@too@large#1{% - \MT@warning@nl{% - Number #1 in encoding `\MT@encoding' too large!\MessageBreak - Ignoring it in \MT@curr@list@name}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@rest} -% Not all of the string has been parsed. -% \begin{macrocode} -\def\MT@warn@rest{% - \MT@warning@nl{% - Unknown slot number of character\MessageBreak`\the\MT@toks'% - \MT@warn@maybe@inputenc\MessageBreak - in font encoding `\MT@encoding'.\MessageBreak - Make sure it's a single character\MessageBreak - (or a number) in \MT@curr@list@name}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@unknown} -% No idea what went wrong. -% \begin{macrocode} -\def\MT@warn@unknown{% - \MT@warning@nl{% - Unknown slot number of character\MessageBreak`\the\MT@toks'% - \MT@warn@maybe@inputenc\MessageBreak - in font encoding `\MT@encoding' in \MT@curr@list@name}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@maybe@inputenc} -% In case an input encoding had been requested. -% \begin{macrocode} -\def\MT@warn@maybe@inputenc{% - \MT@ifdefined@n@T - {MT@\MT@feat @\MT@cat @\csname MT@\MT@feat @\MT@cat @name\endcsname @inputenc}% - { (input encoding `\@nameuse - {MT@\MT@feat @\MT@cat @\csname MT@\MT@feat @\MT@cat @name\endcsname @inputenc}')}% -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Hook into \LaTeX's font selection}\label{sssec:impl.hook} -% -% We append \cs{MT@setupfont} to \cmd\pickup@font, which is called by \LaTeX\ -% every time a font is selected. We then check whether we've already seen this -% font, and if not, set it up for micro-typography. -% This ensures that we will catch all fonts, and that we will not set up fonts -% more than once. The whole package really hangs on this command. -% -% In contrast to the \pkg{pdfcprot} package, it is not necessary to declare in -% advance which fonts should benefit from micro-typographic treatment. Also, -% only those fonts that are actually being used will be set up. -% -% For my reference: -%\begin{itemize} -% \item \cmd\pickup@font\ is called by \cmd\selectfont, \cmd\wrong@fontshape, -% or \\ \cmd\getanddefine@fonts\ (for math). -% \item \cmd\pickup@font\ calls \cmd\define@newfont. -% \item \cmd\define@newfont\ may call (inside a group!) -% \begin{itemize} -% \item \cmd\wrong@fontshape, which in turn will call \cmd\pickup@font, -% and thus \\ \cmd\define@newfont\ again, or -% \item \cmd\extract@font. -% \end{itemize} -% \item \cmd\get@external@font\ is called by \cmd\extract@font, by itself, -% and by the substitution macros. -%\end{itemize} -% -%\iffalse -%\changes{v1.2}{2004/10/02}{check for packages that might load fonts} -%\changes{v1.4}{2004/11/04}{no need to check for packages that might load fonts anymore} -%\fi -%\changes{v1.4}{2004/11/04}{use \cmd\pickup@font\ instead of \cmd\define@newfont\ -% as the hook for \cs{MT@setupfont}} -% Up to version 1.3 of this package, we were using \cmd\define@newfont\ as the -% hook, which is only called for \emph{new} fonts, and therefore seemed the -% natural choice. However, this meant that we had to take special care to catch -% all fonts: we additionally had to set up the default font, the error font (if -% it wasn't the default font), we had to check for some packages that might -% have been loaded before \microtype\ and were loading fonts, \eg, -% \pkg{jurabib}, \pkg{ledmac}, \pkg{pifont} (loaded by \pkg{hyperref}), -% \pkg{tipa}, and probably many more. Furthermore, we had to include a hack for -% the \pkg{IEEEtran} class which loads all fonts in the class file itself (to -% fine tune inter-word spacing), and the \pkg{memoir} class, too. To cut this -% short: it seemed to get out of hand, and I decided that it would be better to -% use \cmd\pickup@font\ and decide for ourselves whether we've already seen -% that font. I hope the overhead isn't too large. -%\changes{v1.8}{2005/05/15}{if font substitution has occurred, set up the -% substitute font, not the selected one} -%\changes{v1.9}{2005/10/03}{allow context-specific font setup} -%\begin{macro}{\MT@font@list} -%\begin{macro}{\MT@font} -% We use a comma separated list. -% \begin{macrocode} -\let\MT@font@list\@empty -\let\MT@font\@empty -% \end{macrocode} -%\end{macro} -%\end{macro} -% All this is done at the beginning of the document. -% It doesn't work for plain, of course, which doesn't have \cmd\pickup@font. -% \begin{macrocode} -% -%\MT@requires@latex2{ -\MT@addto@setup{% -% \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. -% (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} -% \pkg{CJKutf8} redefines \cmd\pickup@font\ once more (recent versions, in -% 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{% - \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}% - }% -% \end{macrocode} -% Check whether \cmd\pickup@font\ is defined as expected. -% The warning issued by \cmd{\CheckCommand*} would be a bit too generic. -% \begin{macrocode} - \ifx\pickup@font\MT@orig@pickupfont \else - \MT@warning@nl{% - Command \string\pickup@font\space is not defined as expected.% - \MessageBreak Patching it anyway. Some things may break% -%<*package> - .\MessageBreak Double-check whether micro-typography is indeed% - \MessageBreak applied to the document.% - \MessageBreak (Hint: Turn on `verbose' mode)% -% - }% - \fi -% \end{macrocode} -%\end{macro} -%\begin{macro}{\pickup@font} -% Then we append our stuff. Everything is done inside a group. -%\changes{v2.2}{2007/04/15}{\letterspace: setup inside group} -% \begin{macrocode} - \g@addto@macro\pickup@font{\begingroup}% -% \end{macrocode} -% If the \pkg{trace} package is loaded, we turn off tracing of \microtype's -% setup, which is extremely noisy. -%\changes{v1.9e}{2006/05/25}{no tracing with \pkg{trace} package} -% \begin{macrocode} - \MT@with@package@T{trace}{\g@addto@macro\pickup@font{\conditionally@traceoff}}% - \g@addto@macro\pickup@font{% - \escapechar\m@ne -%<*package> -% \global\MT@inannottrue -% \MT@glet\MT@pdf@annot\@empty -% \MT@addto@annot{(line \number\inputlineno)}% -% \end{macrocode} -% If \cs{MT@font} is empty, no substitution has taken place, hence -% \cmd\font@name\ is correct. Otherwise, if they are different, -% \cmd\font@name\ does not describe the font actually used. This test will -% catch first order substitutions, like |bx| to |b|, but it will still fail if -% the substituting font is itself substituted. -% \begin{macrocode} - \MT@let@cn\MT@font{MT@subst@\expandafter\string\font@name}% - \ifx\MT@font\relax - \let\MT@font\font@name - \else - \ifx\MT@font\font@name \else -% \MT@addto@annot{= substituted with \MT@@font}% - \MT@register@subst@font - \fi - \fi - \MT@setupfont -% -% \MT@tracking - \endgroup - }% -%<*package> -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@pickupfont} -% Remember the patched command for later. -% \begin{macrocode} - \let\MT@pickupfont\pickup@font -% \end{macrocode} -%\end{macro} -%\begin{macro}{\do@subst@correction} -% Additionally, we hook into \cmd\do@subst@correction, which is called if -% a substitution has taken place, to record the name of the ersatz font. -% Unfortunately, this will only work for one-level substitutions. -%\changes{v2.3}{2007/08/05}{remember substitute font for all times -% (reported by \contributor Stephan Hennig )} -% ^^A MID: <46ab4fbb$0$31632$9b4e6d93@newsspool3.arcor-online.net> -% We have to remember the substitute for the rest of the document, not just for -% the first time it is called, since we need it every time a font is -% letterspaced. -% \begin{macrocode} - \g@addto@macro\do@subst@correction - {\edef\MT@font{\csname\curr@fontshape/\f@size\endcsname}% - \MT@glet@nc{MT@subst@\expandafter\string\font@name}\MT@font}% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\add@accent} -%\changes{v1.8}{2005/06/14}{fix: disable micro-typographic setup inside \cmd\add@accent\ -% (reported by \contributor Stephan Hennig )} -% ^^A MID: <42adb0e3$0$27784$9b4e6d93@newsread2.arcor-online.net> -%\begin{macro}{\MT@orig@add@accent} -% Inside \cmd\add@accent, we have to disable \microtype's setup, since the -% grouping in the patched \cmd\pickup@font\ would break the accent if -% different fonts are used for the base character and the accent. Fortunately, -% \LaTeX\ takes care that the fonts used for the \cmd\accent\ are already set -% up, so that we cannot be overlooking them. -% \begin{macrocode} - \let\MT@orig@add@accent\add@accent - \def\add@accent#1#2{% - \let\pickup@font\MT@orig@pickupfont - \MT@orig@add@accent{#1}{#2}% - \let\pickup@font\MT@pickupfont - }% -% -} -%}\relax -%<*package> -% \end{macrocode} -%\end{macro} -%\end{macro} -% Consequently (if all goes well), we are the last ones to change these -% commands, therefore there is no need to check whether our definition has -% survived. -%\changes{v1.6}{2004/12/29}{test whether \cmd\pickup@font\ has changed} -%\changes{v1.9a}{2005/11/21}{remove superfluous test whether \cmd\pickup@font\ has changed} -% -%\begin{macro}{\MT@check@font} -% Check whether we've already seen the current font. -% \begin{macrocode} -\def\MT@check@font{\MT@exp@one@n\MT@in@clist\MT@font\MT@font@list} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@register@subst@font} -% Register the substituted font. -% \begin{macrocode} -\def\MT@register@subst@font{\xdef\MT@font@list{\MT@font@list\font@name,}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@register@font} -% Register the current font. -% \begin{macrocode} -\def\MT@register@font{\xdef\MT@font@list{\MT@font@list\MT@font,}} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Context-sensitive setup} -% -% Here are the variants for context-sensitive setup. -%\begin{macro}{\MT@active@features} -% The activated features are stored in this command. -% \begin{macrocode} -\let\MT@active@features\@empty -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@check@font@cx} -% Every feature has its own list of fonts that have already been dealt with. If -% the font needn't be set up for a feature, we temporarily disable the -% corresponding setup command. -%\changes{v1.9a}{2005/11/14}{optimise context-sensitive setup} -% This should be more efficient than book-keeping the fonts in lists associated -% with the combination of contexts, as we've done it before. -% \begin{macrocode} -\def\MT@check@font@cx{% - \MT@if@true - \MT@map@clist@c\MT@active@features{% - \expandafter\MT@exp@one@n\expandafter\MT@in@clist\expandafter\MT@font - \csname MT@##1@\csname MT@##1@context\endcsname font@list\endcsname - \ifMT@inlist@ - \MT@let@nc{MT@\@nameuse{MT@abbr@##1}}\relax - \else - \MT@if@false - \fi - }% - \ifMT@if@ \MT@inlist@true \else \MT@inlist@false \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@register@subst@font@cx} -% Add the substituted font to each feature list. -%\todo{remove from other lists?} -% \begin{macrocode} -\def\MT@register@subst@font@cx{% - \MT@map@clist@c\MT@active@features{% - \MT@exp@cs\MT@xadd - {MT@##1@\csname MT@##1@context\endcsname font@list}% - {\font@name,}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@register@font@cx} -% For each feature, add the current font to the list, unless we didn't set it -% up. -% \begin{macrocode} -\def\MT@register@font@cx{% - \MT@map@clist@c\MT@active@features{% - \MT@exp@cs\ifx{MT@\@nameuse{MT@abbr@##1}}\relax\else - \MT@exp@cs\MT@xadd - {MT@##1@\csname MT@##1@context\endcsname font@list}% - {\MT@font,}% - \def\@tempa{##1}% - \MT@exp@cs\MT@map@tlist@c{MT@##1@doc@contexts}\MT@maybe@rem@from@list - \fi - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@maybe@rem@from@list} -% Recurse through all context font lists of the document and remove the font, -% unless it's the current context. -% \begin{macrocode} -\def\MT@maybe@rem@from@list#1{% - \MT@ifstreq{\@tempa/#1}{\@tempa/\csname MT@\@tempa @context\endcsname}\relax{% - \expandafter\MT@exp@one@n\expandafter\MT@rem@from@clist\expandafter - \MT@font \csname MT@\@tempa @#1font@list\endcsname - }% -} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\microtypecontext} -%\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 )} -% ^^A MID: <46ab4fbb$0$31632$9b4e6d93@newsspool3.arcor-online.net> -% The user may change the context, so that different setups are possible. This -% is especially useful for multi-lingual documents. -% -% Inside the preamble, it shouldn't actually do anything but remember it for -% later. -% \begin{macrocode} -\def\microtypecontext#1{\MT@addto@setup{\microtypecontext{#1}}} -\MT@addto@setup{% - \DeclareRobustCommand\microtypecontext[1]{% - \MT@setup@contexts - \let\MT@reset@context\relax - \setkeys{MTC}{#1}% - \selectfont - \MT@reset@context - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\textmicrotypecontext} -%\changes{v2.2}{2007/07/03}{new command: wrapper around \cs{microtypecontext}} -% This is just a wrapper around \cs{microtypecontext}. -% \begin{macrocode} -\DeclareRobustCommand\textmicrotypecontext[2]{{\microtypecontext{#1}#2}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@reset@context} -%\changes{v1.9f}{2006/08/03}{only reset context if it has actually been changed} -%\begin{macro}{\MT@reset@context@} -% We have to reset the font at the end of the group, provided there actually was -% a change. -% \begin{macrocode} -\def\MT@reset@context@{% - \MT@vinfo{<<< Resetting contexts\on@line -% \MessageBreak= \MT@pr@context/\MT@ex@context -% /\MT@tr@context/\MT@kn@context/\MT@sp@context - }% - \selectfont -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@setup@contexts} -% The first time \cs{microtypecontext} is called, we initialise the context -% lists and redefine the commands used in \cmd\pickup@font. -% \begin{macrocode} -\def\MT@setup@contexts{% - \MT@map@clist@c\MT@active@features - {\MT@glet@nc{MT@##1@@font@list}\MT@font@list}% - \MT@glet\MT@check@font\MT@check@font@cx - \MT@glet\MT@register@font\MT@register@font@cx - \MT@glet\MT@register@subst@font\MT@register@subst@font@cx - \MT@glet\MT@setup@contexts\relax -} -% \end{macrocode} -%\end{macro} -% Define context keys. -% \begin{macrocode} -\MT@map@clist@c\MT@features@long{% - \define@key{MTC}{#1}[]{% - \edef\@tempb{\@nameuse{MT@rbba@#1}}% - \MT@exp@one@n\MT@in@clist\@tempb\MT@active@features - \ifMT@inlist@ -% \end{macrocode} -% Using an empty context is only asking for trouble, therefore we choose the -% `|@|' instead (hoping for the \LaTeX\ users' natural awe of this character). -% \begin{macrocode} - \MT@ifempty{##1}{\def\MT@val{@}}{\def\MT@val{##1}}% - \MT@exp@cs\ifx{MT@\@tempb @context}\MT@val -%\MT@dinfo{1}{>>> no change of #1 context: `\MT@val'}% - \else - \MT@vinfo{>>> Changing #1 context to `\MT@val'\MessageBreak\on@line -% \space(previous: `\@nameuse{MT@\@tempb @context}')% - }% - \def\MT@reset@context{\aftergroup\MT@reset@context@}% -% \end{macrocode} -% The next time we see the font, we have to reset \emph{all} factors. -% \begin{macrocode} - \MT@glet@nn{MT@reset@\@tempb @codes}{MT@reset@\@tempb @codes@}% -% \end{macrocode} -% We must also keep track of all contexts in the document. -% \begin{macrocode} - \expandafter\MT@exp@one@n\expandafter\MT@in@tlist\expandafter - \MT@val \csname MT@\@tempb @doc@contexts\endcsname - \ifMT@inlist@ \else - \MT@exp@cs\MT@xadd{MT@\@tempb @doc@contexts}{{\MT@val}}% -% \MT@dinfo{1}{||| added #1 context: \@nameuse{MT@\@tempb @doc@contexts}}% - \fi - \MT@edef@n{MT@\@tempb @context}{\MT@val}% - \fi - \fi - }% -} -% \end{macrocode} -%\begin{macro}{\MT@pr@context} -%\begin{macro}{\MT@ex@context} -%\begin{macro}{\MT@tr@context} -%\begin{macro}{\MT@sp@context} -%\begin{macro}{\MT@kn@context} -%\begin{macro}{\MT@pr@doc@contexts} -%\begin{macro}{\MT@ex@doc@contexts} -%\begin{macro}{\MT@tr@doc@contexts} -%\begin{macro}{\MT@sp@doc@contexts} -%\begin{macro}{\MT@kn@doc@contexts} -%\begin{macro}{\MT@extra@context} -% Initialise the contexts. -% \begin{macrocode} -\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 -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -% -%\subsection{Configuration} -% -%\subsubsection{Font sets} -%\todo{allow for \texttt{load}ing and extending another set; or using more than one set?} -% -%\begin{macro}{\DeclareMicrotypeSet} -%\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 -% optional argument is empty, lists for all available features will be created. -% -% The third argument must be a list of |key=value| pairs. If a font attribute -% is not specified, we define the corresponding list to \cmd\relax, so that it -% does not constitute a constraint. -% \begin{macrocode} -\def\DeclareMicrotypeSet{% - \@ifstar - \MT@DeclareSetAndUseIt - \MT@DeclareSet -} -% \end{macrocode} -%\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@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@exp@one@n\MT@declare@sets - {\csname MT@rbba@\@tempa\endcsname}{#2}{#3}% - }% - }% - }}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@DeclareSetAndUseIt} -% \begin{macrocode} -\newcommand\MT@DeclareSetAndUseIt[3][]{% - \MT@DeclareSet[#1]{#2}{#3}% - \UseMicrotypeSet[#1]{#2}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@curr@set@name} -% We need to remember the name of the set currently being declared. -% \begin{macrocode} -\let\MT@curr@set@name\@empty -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@declare@sets} -% Define the current set name and parse the keys. -%\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} -%\todo{share one set between features} -% \begin{macrocode} -\def\MT@declare@sets#1#2#3{% - \KV@@sp@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@glet@nc{MT@#1@set@@\MT@curr@set@name}\@empty -%\MT@dinfo{1}{declaring \@nameuse{MT@abbr@#1} set `\MT@curr@set@name'}% - \setkeys{MT@#1@set}{#3}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@define@set@key@} -% \meta{\#1} = font axis, \meta{\#2} = feature. -%\changes{v1.8}{2005/04/16}{use comma lists instead of token lists} -%\changes{v1.9a}{2005/11/21}{don't expand variables immediately -% (requested by \contributor Georg Verweyen )} -% ^^A MID: <437a522d$0$7419$9b4e6d93@newsread4.arcor-online.net> -% \begin{macrocode} -\def\MT@define@set@key@#1#2{% - \define@key{MT@#2@set}{#1}[]{% - \MT@glet@nc{MT@#2list@#1@\MT@curr@set@name}\@empty - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@get@highlevel{#1}% -% \end{macrocode} -% We do not add the expanded value to the list~\dots -% \begin{macrocode} - \MT@exp@two@n\g@addto@macro - {\csname MT@#2list@#1@\MT@curr@set@name\expandafter\endcsname}% - {\MT@val,}% - }% -% \end{macrocode} -% \dots~but keep in mind that the list has to be expanded at the end of the -% preamble. -% \begin{macrocode} - \expandafter\g@addto@macro\expandafter\MT@font@sets - \csname MT@#2list@#1@\MT@curr@set@name\endcsname -%\MT@dinfo@nl{1}{-- #1: \@nameuse{MT@#2list@#1@\MT@curr@set@name}}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@highlevel} -% Saying, for instance, `|family=rm*|' or `|shape=bf*|' will expand to -% \cmd\rmdefault\ resp. \cmd\bfdefault. -% \begin{macrocode} -\def\MT@get@highlevel#1{% - \expandafter\MT@test@ast\MT@val*\@nil\relax{% -% \end{macrocode} -% And `|family = *|' will become \cmd\familydefault. -% \begin{macrocode} - \MT@ifempty\@tempa{\def\@tempa{#1}}\relax - \edef\MT@val{\expandafter\noexpand\csname \@tempa default\endcsname}% -% \end{macrocode} -% In contrast to earlier version, these values will not be expanded immediately -% but at the end of the preamble. -%\changes{v1.2}{2004/09/26}{check whether defaults have changed} -%\changes{v1.5}{2004/12/02}{don't test defaults if called after begin document} -%\changes{v1.9a}{2005/11/21}{no longer check whether defaults have changed} -% \begin{macrocode} - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@test@ast} -% It the last character is an asterisk, execute the second argument, otherwise -% the first one. -%\changes{v1.7}{2005/03/10}{make it simpler} -% \begin{macrocode} -\def\MT@test@ast#1*#2\@nil{% - \def\@tempa{#1}% - \MT@ifempty{#2}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@font@sets} -%\begin{macro}{\MT@fix@font@set} -% Fully expand the font specification and fix catcodes for all font sets. -% \begin{macrocode} -\let\MT@font@sets\@empty -\def\MT@fix@font@set#1{% - \xdef#1{#1}% - \global\@onelevel@sanitize#1% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@define@set@key@size} -% |size| requires special treatment. -% \begin{macrocode} -\def\MT@define@set@key@size#1{% - \define@key{MT@#1@set}{size}[]{% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \expandafter\MT@get@range\MT@val--\@nil - \ifx\MT@val\relax \else - \MT@exp@cs\MT@xadd - {MT@#1list@size@\MT@curr@set@name}% - {{{\MT@lower}{\MT@upper}\relax}}% - \fi - }% -%\MT@dinfo@nl{1}{-- size: \@nameuse{MT@#1list@size@\MT@curr@set@name}}% - }% -} -% \end{macrocode} -%\end{macro} -%\changes{v1.7}{2005/03/11}{allow specification of size ranges -% (suggested by \contributor Andreas B\"uhmann )} -% ^^A private mail, 2005/03/10 -% Font sizes may also be specified as ranges. This has been requested by Andreas -% B\"uhmann, who has also offered valuable help in implementing this. Now, it -% is for instance possible to set up different lists for fonts with optical -% sizes. (The MinionPro project is trying to do this for the OpenType version -% of Adobe's Minion. See \url{http://developer.berlios.de/projects/minionpro/}.) -% -%\begin{macro}{\MT@get@range} -%\begin{macro}{\MT@upper} -%\begin{macro}{\MT@lower} -% Ranges will be stored as triplets of |{|\meta{lower bound}|}|\allowbreak -% |{|\meta{upper bound}|}|\allowbreak|{|\meta{list name}|}|. -% For simple sizes, the upper boundary is \textminus1. -% \begin{macrocode} -\def\MT@get@range#1-#2-#3\@nil{% - \MT@ifempty{#1}{% - \MT@ifempty{#2}{% - \let\MT@val\relax - }{% - \def\MT@lower{0}% - \def\MT@val{#2}% - \MT@get@size - \edef\MT@upper{\MT@val}% - }% - }{% - \def\MT@val{#1}% - \MT@get@size - \ifx\MT@val\relax \else - \edef\MT@lower{\MT@val}% - \MT@ifempty{#2}{% - \MT@ifempty{#3}% - {\def\MT@upper{-1}}% -% \end{macrocode} -% 2048\,pt is \TeX's maximum font size. -% \begin{macrocode} - {\def\MT@upper{2048}}% - }{% - \def\MT@val{#2}% - \MT@get@size - \ifx\MT@val\relax \else - \MT@ifdim\MT@lower>\MT@val{% - \MT@error{% - Invalid size range (\MT@lower\space > \MT@val) in font set - `\MT@curr@set@name'.\MessageBreak Swapping sizes}{}% - \edef\MT@upper{\MT@lower}% - \edef\MT@lower{\MT@val}% - }{% - \edef\MT@upper{\MT@val}% - }% - \MT@ifdim\MT@lower=\MT@upper - {\def\MT@upper{-1}}% - \relax - \fi - }% - \fi - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@get@size} -% Translate a size selection command and normalise it. -% \begin{macrocode} -\def\MT@get@size{% -% \end{macrocode} -% A single star would mean \cs{sizedefault}, which doesn't exist, so we define -% it to be \cmd\normalsize. -% \begin{macrocode} - \if*\MT@val\relax - \def\@tempa{\normalsize}% - \else - \MT@let@cn\@tempa{\MT@val}% - \fi - \ifx\@tempa\relax \else -% \end{macrocode} -% The \pkg{relsize} solution of parsing \cmd\@setfontsize\ does not work with the -% 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 -% might define the size selection commands by simply using \cmd\fontsize\ -% (\eg, the \pkg{a0poster} class). -%\changes{v2.3b}{2008/03/07}{grouping} -% \begin{macrocode} - \begingroup - \def\set@fontsize##1##2##3##4\@nil{\endgroup\def\MT@val{##2}}% - \@tempa\@nil - \fi -% \end{macrocode} -% Test whether we finally got a number or dimension so that we can strip the -% `|pt|' (\cmd\@defaultunits\ and \cmd\strip@pt\ are kernel macros). -%\changes{v1.2}{2004/09/27}{additional magic to catch some errors} -% \begin{macrocode} - \MT@ifdimen\MT@val{% - \@defaultunits\@tempdima\MT@val pt\relax\@nnil - \edef\MT@val{\strip@pt\@tempdima}% - }{% - \MT@warning{Could not parse font size `\MT@val'\MessageBreak - in font set `\MT@curr@set@name'}% - \let\MT@val\relax - }% -} -% \end{macrocode} -%\end{macro} -%\changes{v1.9}{2005/07/13}{\cs{DeclareMicrotypeSet}: new key: \texttt{font}} -%\begin{macro}{\MT@define@set@key@font} -%\changes{v2.3}{2007/11/20}{\texttt{font}: single asterisk means normal font} -% \begin{macrocode} -\def\MT@define@set@key@font#1{% - \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}% - \MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax - \expandafter\MT@get@font\MT@val/////\@nil - \MT@exp@two@n\g@addto@macro - {\csname MT@#1list@font@\MT@curr@set@name\expandafter\endcsname}% - {\MT@val,}% - }% - \expandafter\g@addto@macro\expandafter\MT@font@sets - \csname MT@#1list@font@\MT@curr@set@name\endcsname -%\MT@dinfo@nl{1}{-- font: \@nameuse{MT@#1list@font@\MT@curr@set@name}}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@font} -% Translate any asterisks. -% \begin{macrocode} -\def\MT@get@font#1/#2/#3/#4/#5/#6\@nil{% - \MT@get@font@{#1}{#2}{#3}{#4}{#5}{0}% - \ifx\MT@val\relax\def\MT@val{0}\fi - \expandafter\g@addto@macro\expandafter\@tempb\expandafter{\MT@val}% - \let\MT@val\@tempb -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@font@} -% Helper macro, also used by \cs{MT@get@font@and@size}. -% \begin{macrocode} -\def\MT@get@font@#1#2#3#4#5#6{% - \let\@tempb\@empty - \def\MT@temp{#1/#2/#3/#4/#5}% - \MT@get@axis{encoding}{#1}% - \MT@get@axis{family} {#2}% - \MT@get@axis{series} {#3}% - \MT@get@axis{shape} {#4}% - \ifnum#6>\z@\edef\@tempb{\@tempb*}\fi - \MT@ifempty{#5}{% - \MT@warn@axis@empty{size}{\string\normalsize}% - \def\MT@val{*}% - }{% - \def\MT@val{#5}% - }% - \MT@get@size -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@axis} -% \begin{macrocode} -\def\MT@get@axis#1#2{% - \def\MT@val{#2}% - \MT@get@highlevel{#1}% - \MT@ifempty\MT@val{% - \MT@warn@axis@empty{#1}{\csname #1default\endcsname}% - \expandafter\def\expandafter\MT@val\expandafter{\csname #1default\endcsname}% - }\relax - \expandafter\g@addto@macro\expandafter\@tempb\expandafter{\MT@val/}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@warn@axis@empty} -% \begin{macrocode} -\def\MT@warn@axis@empty#1#2{% - \MT@warning{#1 axis is empty in font specification\MessageBreak - `\MT@temp'. Using `#2' instead}% -} -% \end{macrocode} -%\end{macro} -% We can finally assemble all pieces to define \cs{DeclareMicrotypeSet}'s -% keys. -% They are also used for \cs{DisableLigatures}. -% \begin{macrocode} -\MT@exp@one@n\MT@map@clist@n{\MT@features,nl}{% - \MT@define@set@key@{encoding}{#1}% - \MT@define@set@key@{family} {#1}% - \MT@define@set@key@{series} {#1}% - \MT@define@set@key@{shape} {#1}% - \MT@define@set@key@size {#1}% - \MT@define@set@key@font {#1}% -} -% \end{macrocode} -%\begin{macro}{\UseMicrotypeSet} -% 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} -% \begin{macrocode} -\renewcommand*\UseMicrotypeSet[2][]{% - \KV@@sp@def\@tempa{#1}% - \MT@ifempty\@tempa{% - \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@exp@one@n\MT@use@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% - }% - }% - }}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@pr@setname} -%\begin{macro}{\MT@ex@setname} -%\begin{macro}{\MT@tr@setname} -%\begin{macro}{\MT@sp@setname} -%\begin{macro}{\MT@kn@setname} -%\begin{macro}{\MT@use@set} -% Only use sets that have been declared. -%\changes{v1.1}{2004/09/20}{remove spaces around set name} -%\changes{v1.4b}{2004/11/25}{don't use undeclared font sets} -%\changes{v1.6}{2005/01/19}{retain current set if new set is undeclared} -%\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@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 - Using set `\@nameuse{MT@#1@setname}' instead}{}% - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\DeclareMicrotypeSetDefault} -%\changes{v1.8}{2005/05/15}{new command: set default font set} -% 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{% - \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@exp@one@n\MT@set@default@set - {\csname MT@rbba@\@tempa\endcsname}{#2}% - }% - }% - }}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@default@pr@set} -%\begin{macro}{\MT@default@ex@set} -%\begin{macro}{\MT@default@tr@set} -%\begin{macro}{\MT@default@sp@set} -%\begin{macro}{\MT@default@kn@set} -%\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}{% -%\MT@dinfo{1}{declaring default \@nameuse{MT@abbr@#1} set `\@tempa'}% - \MT@xdef@n{MT@default@#1@set}{\@tempa}% - }{% - \MT@error{% - The \@nameuse{MT@abbr@#1} set `\@tempa' is not declared.\MessageBreak - Cannot make it the default set. Using set\MessageBreak `all' instead}{}% - \MT@xdef@n{MT@default@#1@set}{all}% - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -% -%\subsubsection{Variants and aliases} -% -%\begin{macro}{\DeclareMicrotypeVariants} -%\changes{v2.2}{2007/02/04}{new command} -%\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{% - \@ifstar - \MT@DeclareVariants - {\let\MT@variants\@empty\MT@DeclareVariants}% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@DeclareVariants} -% \begin{macrocode} -\def\MT@DeclareVariants#1{% - \MT@map@clist@n{#1}{% - \KV@@sp@def\@tempa{##1}% - \@onelevel@sanitize\@tempa - \xdef\MT@variants{\MT@variants{\@tempa}}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\DeclareMicrotypeAlias} -% This can be used to set an alias name for a font, so that the file and the -% 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} -% \begin{macrocode} -\renewcommand*\DeclareMicrotypeAlias[2]{% - \KV@@sp@def\@tempa{#1}% - \KV@@sp@def\@tempb{#2}% - \@onelevel@sanitize\@tempb - \MT@ifdefined@n@T{MT@\@tempa @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}% -% \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 -% issued inside a configuration file, the configuration file for the alias font -% will be loaded, too. -%\changes{v1.7}{2005/03/23}{may also be used inside configuration files} -% \begin{macrocode} - \MT@ifdefined@c@T\MT@family{% -%\MT@dinfo{1}{Activating alias font `\@tempb' for `\MT@family'}% - \MT@glet\MT@familyalias\@tempb - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\LoadMicrotypeFile} -%\changes{v1.7}{2005/03/22}{new command (suggested by -% \contributor Andreas B\"uhmann )} -% ^^A private mail, 2005/03/21 -% May be used to load a configuration file manually. -% \begin{macrocode} -\def\LoadMicrotypeFile#1{% - \KV@@sp@def\@tempa{#1}% - \@onelevel@sanitize\@tempa - \MT@exp@one@n\MT@in@clist\@tempa\MT@file@list - \ifMT@inlist@ - \MT@vinfo{... Configuration file mt-\@tempa.cfg already loaded}% - \else - \MT@xadd\MT@file@list{\@tempa,}% - \MT@begin@catcodes - \InputIfFileExists{mt-\@tempa.cfg}{% - \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@end@catcodes - \fi -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Disabling ligatures} -% -%\begin{macro}{\DisableLigatures} -%\changes{v1.9}{2005/07/11}{new command: disable ligatures (requires \pdftex\ 1.30)} -%\changes{v2.2}{2007/01/22}{new optional argument: disable selected ligatures only} -%\begin{macro}{\MT@DisableLigatures} -%\begin{macro}{\MT@nl@setname} -%\begin{macro}{\MT@nl@ligatures} -% This is really simple now: we can re-use the set definitions of -% \cs{DeclareMicrotypeSet}; there can only be one set, which we'll call -% `|no ligatures|'. -% -% The optional argument may be used to disable selected ligatures only. -% \begin{macrocode} -\MT@requires@pdftex5{ -\def\DisableLigatures{% - \MT@begin@catcodes - \MT@DisableLigatures -} -\newcommand*\MT@DisableLigatures[2][]{% - \MT@ifempty{#1}\relax{\gdef\MT@nl@ligatures{#1}}% - \xdef\MT@active@features{\MT@active@features,nl}% - \global\MT@noligaturestrue - \MT@declare@sets{nl}{no ligatures}{#2}% - \gdef\MT@nl@setname{no ligatures}% - \MT@end@catcodes -} -}{ -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -% If \pdftex\ is too old, we throw an error. -% \begin{macrocode} -\renewcommand*\DisableLigatures[2][]{% - \MT@error{Disabling ligatures of a font is only possible\MessageBreak - with pdftex version 1.30 or newer.\MessageBreak - Ignoring \string\DisableLigatures}{Upgrade pdftex.}% -} -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Interaction with \pkg{babel}} -% -%\begin{macro}{\DeclareMicrotypeBabelHook} -% 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}} -% \begin{macrocode} -\def\DeclareMicrotypeBabelHook#1#2{% - \MT@map@clist@n{#1}{% - \KV@@sp@def\@tempa{##1}% - \MT@gdef@n{MT@babel@\@tempa}{#2}% - }% -} -% \end{macrocode} -%\end{macro} -% -% -%\subsubsection{Fine tuning} -% -% The commands \cs{SetExpansion} and \cs{SetProtrusion} provide an interface for -% setting the character protrusion resp. expansion factors for a set of fonts. -% -%\begin{macro}{\SetProtrusion} -%\changes{v1.9}{2005/07/13}{(et al.) new key: \texttt{font}} -%\changes{v1.9d}{2006/02/23}{(et al.) split keys of optional and mandatory argument} -%\changes{v1.9d}{2006/02/23}{(et al.) optimise: unify keys for mandatory argument} -%\changes{v1.9e}{2006/07/26}{(et al.) new key: \texttt{inputenc}} -%\changes{v1.9f}{2006/08/10}{(et al.) set catcodes before parsing optional argument} -% This macro accepts three arguments: [options,] set of font attributes and -% list of character protrusion factors. -% -% A new macro called |\MT@pr@c@|\meta{name} will be defined to be \meta{\#3} -% (\ie, the list of characters, not expanded). -% \begin{macrocode} -\def\SetProtrusion{% - \MT@begin@catcodes - \MT@SetProtrusion -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@SetProtrusion} -%\begin{macro}{\MT@pr@c@name} -%\begin{macro}{\MT@extra@context} -%\begin{macro}{\MT@permutelist} -% We want the catcodes to be correct even if this is called in the preamble. -% \begin{macrocode} -\newcommand*\MT@SetProtrusion[3][]{% - \let\MT@extra@context\@empty -% \end{macrocode} -% Parse the optional first argument. We first have to know the name before we -% can deal with the extra options. -% \begin{macrocode} - \MT@set@named@keys{MT@pr@c}{#1}% -%\MT@dinfo{1}{creating protrusion list `\MT@pr@c@name'}% - \def\MT@permutelist{pr@c}% - \setkeys{MT@cfg}{#2}% -% \end{macrocode} -% We have parsed the second argument, and can now define macros for all -% permutations of the font attributes to point to |\MT@pr@c@|\meta{name},~\dots -% \begin{macrocode} - \MT@permute -% \end{macrocode} -% \dots~which we can now define to be \meta{\#3}. -% Here, as elsewhere, we have to make the definitions global, since they will -% occur inside a group. -% \begin{macrocode} - \MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}% - \MT@end@catcodes -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\SetExpansion} -%\changes{v1.4}{2004/11/10}{fix: specifying extra options does no -% longer require to give a \texttt{name}, too} -%\changes{v1.9e}{2006/07/26}{new key: \texttt{inputenc}} -% \cs{SetExpansion} only differs in that it allows some extra options -% (|stretch|, |shrink|, |step|, |auto|). -% \begin{macrocode} -\def\SetExpansion{% - \MT@begin@catcodes - \MT@SetExpansion -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@SetExpansion} -%\begin{macro}{\MT@ex@c@name} -%\begin{macro}{\MT@extra@context} -%\begin{macro}{\MT@permutelist} -% \begin{macrocode} -\newcommand*\MT@SetExpansion[3][]{% - \let\MT@extra@context\@empty - \MT@set@named@keys{MT@ex@c}{#1}% - \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @factor}{% - \ifnum\csname MT@ex@c@\MT@ex@c@name @factor\endcsname > \@m - \MT@warning@nl{Expansion factor \number\@nameuse{MT@ex@c@\MT@ex@c@name @factor} - too large in list\MessageBreak `\MT@ex@c@name'. Setting it to the - maximum of 1000}% - \MT@glet@nc{MT@ex@c@\MT@ex@c@name @factor}\@m - \fi - }% -%\MT@dinfo{1}{creating expansion list `\MT@ex@c@name'}% - \def\MT@permutelist{ex@c}% - \setkeys{MT@cfg}{#2}% - \MT@permute - \MT@gdef@n{MT@ex@c@\MT@ex@c@name}{#3}% - \MT@end@catcodes -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\SetTracking} -%\changes{v2.0}{2006/12/28}{new command: tracking} -%\changes{v2.2}{2007/02/23}{third argument may be empty} -%\changes{v2.2}{2007/02/23}{new key `\texttt{no ligatures}' to disable -% ligatures of letterspaced fonts} -%\changes{v2.2}{2007/06/16}{new keys `\texttt{spacing}' and `\texttt{outer spacing}' -% to adjust interword spacing -% (suggested by \contributor Steven~E. Harris )} -% ^^A private mail, 2007/06/15 -% \begin{macrocode} -\def\SetTracking{% - \MT@begin@catcodes - \MT@SetTracking -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@SetTracking} -% Third argument may be empty. -%\changes{v2.3}{2007/11/20}{sanity check for value} -% \begin{macrocode} -\newcommand*\MT@SetTracking[3][]{% - \let\MT@extra@context\@empty - \MT@set@named@keys{MT@tr@c}{#1}% -%\MT@dinfo{1}{creating tracking list `\MT@tr@c@name'}% - \def\MT@permutelist{tr@c}% - \setkeys{MT@cfg}{#2}% - \MT@permute - \KV@@sp@def\@tempa{#3}% - \MT@ifempty\@tempa\relax{% - \MT@ifint\@tempa - {\MT@xdef@n{MT@tr@c@\MT@tr@c@name}{\@tempa}}% - {\MT@warning{Value `\@tempa' is not a number in\MessageBreak - tracking set `\MT@curr@set@name'}}}% - \MT@end@catcodes -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\SetExtraSpacing} -%\changes{v2.0}{2005/09/28}{(beta:1) new command: adjustment of interword spacing} -% \begin{macrocode} -\def\SetExtraSpacing{% - \MT@begin@catcodes - \MT@SetExtraSpacing -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@SetExtraSpacing} -%\begin{macro}{\MT@sp@c@name} -%\begin{macro}{\MT@extra@context} -%\begin{macro}{\MT@permutelist} -% \begin{macrocode} -\newcommand*\MT@SetExtraSpacing[3][]{% - \let\MT@extra@context\@empty - \MT@set@named@keys{MT@sp@c}{#1}% -%\MT@dinfo{1}{creating spacing list `\MT@sp@c@name'}% - \def\MT@permutelist{sp@c}% - \setkeys{MT@cfg}{#2}% - \MT@permute - \MT@gdef@n{MT@sp@c@\MT@sp@c@name}{#3}% - \MT@end@catcodes -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\SetExtraKerning} -%\changes{v2.0}{2005/09/28}{(beta:1) new command: additional kerning} -% \begin{macrocode} -\def\SetExtraKerning{% - \MT@begin@catcodes - \MT@SetExtraKerning -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@SetExtraKerning} -%\begin{macro}{\MT@kn@c@name} -%\begin{macro}{\MT@extra@context} -%\begin{macro}{\MT@permutelist} -% \begin{macrocode} -\newcommand*\MT@SetExtraKerning[3][]{% - \let\MT@extra@context\@empty - \MT@set@named@keys{MT@kn@c}{#1}% -%\MT@dinfo{1}{creating kerning list `\MT@kn@c@name'}% - \def\MT@permutelist{kn@c}% - \setkeys{MT@cfg}{#2}% - \MT@permute - \MT@gdef@n{MT@kn@c@\MT@kn@c@name}{#3}% - \MT@end@catcodes -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@named@keys} -%\changes{v1.9f}{2006/08/10}{new macro: set name first, simplify parsing of -% optional argument} -%\begin{macro}{\MT@options} -% We first set the name (if specified), then remove it from the list, and set -% the remaining keys. -% \begin{macrocode} -\def\MT@set@named@keys#1#2{% - \def\x##1name=##2,##3\@nil{% - \setkeys{#1}{name=##2}% - \gdef\MT@options{##1##3}% - \MT@rem@from@clist{name=}\MT@options - }% - \x#2,name=,\@nil - \@expandtwoargs\setkeys{#1}\MT@options -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@define@code@key} -% Define the keys for the configuration lists (which are setting the codes, in -% \pdftex\ speak). -% \begin{macrocode} -\def\MT@define@code@key#1#2{% - \define@key{MT@#2}{#1}[]{% - \@tempcnta=\@ne - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% -% \end{macrocode} -% Here, too, we allow for something like `|bf*|'. It will be expanded -% immediately. -% \begin{macrocode} - \MT@get@highlevel{#1}% - \MT@edef@n{MT@temp#1\the\@tempcnta}{\MT@val}% - \advance\@tempcnta \@ne - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@define@code@key@size} -%\changes{v1.9c}{2006/01/25}{fix: embrace \cs{MT@tempsize} in \cmd\csname\ -% (bug introduced in v1.9b)} -% \cs{MT@tempsize} must be in a \cmd\csname, so that it is at least -% \cmd\relax, not undefined. -% \begin{macrocode} -\def\MT@define@code@key@size#1{% - \define@key{MT@#1}{size}[]{% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \expandafter\MT@get@range\MT@val--\@nil - \ifx\MT@val\relax \else - \MT@exp@cs\MT@xadd{MT@tempsize}% - {{{\MT@lower}{\MT@upper}{\MT@curr@set@name}}}% - \fi - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@define@code@key@font} -%\changes{v1.9c}{2006/01/25}{fix: context was ignored} -% \begin{macrocode} -\def\MT@define@code@key@font#1{% - \define@key{MT@#1}{font}[]{% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax - \expandafter\MT@get@font@and@size\MT@val/////\@nil - \MT@xdef@n{MT@\MT@permutelist @\@tempb\MT@extra@context}% - {\csname MT@\MT@permutelist @name\endcsname}% -%\MT@dinfo@nl{1}{initialising: use list for font \@tempb=\MT@val -% \ifx\MT@extra@context\@empty\else\MessageBreak -% (context: \MT@extra@context)\fi}% - \MT@exp@cs\MT@xaddb - {MT@\MT@permutelist @\@tempb\MT@extra@context @sizes}% - {{{\MT@val}{\m@ne}{\MT@curr@set@name}}}% - }% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@get@font@and@size} -% Translate any asterisks and split off the size. -% \begin{macrocode} -\def\MT@get@font@and@size#1/#2/#3/#4/#5/#6\@nil{% - \MT@get@font@{#1}{#2}{#3}{#4}{#5}{1}% -} -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\MT@define@code@key{encoding}{cfg} -\MT@define@code@key{family} {cfg} -\MT@define@code@key{series} {cfg} -\MT@define@code@key{shape} {cfg} -\MT@define@code@key@size {cfg} -\MT@define@code@key@font {cfg} -% \end{macrocode} -%\begin{macro}{\MT@define@opt@key} -% \begin{macrocode} -\def\MT@define@opt@key#1#2{% - \define@key{MT@#1@c}{#2}[]{\MT@ifempty{##1}\relax{% - \MT@xdef@n{MT@#1@c@\MT@curr@set@name @#2}{##1}}}% -} -% \end{macrocode} -%\end{macro} -% The options in the optional first argument. -% \begin{macrocode} -\MT@map@clist@c\MT@features{% -% \end{macrocode} -%\changes{v1.9a}{2005/11/21}{`\meta{file name}\texttt{/}\meta{line number}' as default list name} -% Use file name and line number as the list name if the user didn't bother -% to invent one. -%\changes{v1.3}{2004/10/27}{fix: specifying \texttt{load} option does no -% longer require to give a \texttt{name}, too} -%\changes{v2.2}{2007/01/28}{simplify key declarations} -% \begin{macrocode} - \define@key{MT@#1@c}{name}[]{% - \MT@ifempty{##1}{% - \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno}% - }{% - \MT@edef@n{MT@#1@c@name}{##1}% - \MT@ifdefined@n@T{MT@#1@c@\csname MT@#1@c@name\endcsname}{% - \MT@warning{Redefining \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'}% - }% - }% - \MT@let@cn\MT@curr@set@name{MT@#1@c@name}% - }% - \MT@define@opt@key{#1}{load}% - \MT@define@opt@key{#1}{factor}% - \MT@define@opt@key{#1}{preset}% - \MT@define@opt@key{#1}{inputenc}% -% \end{macrocode} -% Only one context is allowed. This might change in the future. -% \begin{macrocode} - \define@key{MT@#1@c}{context}[]{\MT@ifempty{##1}\relax{\def\MT@extra@context{##1}}}% -} -% \end{macrocode} -% Automatically enable font copying if we find a protrusion or expansion context. -% After the preamble, check whether font copying is enabled. -% For older \pdftex\ versions, disallow. -% Also disable for \luatex. -% \begin{macrocode} -\MT@requires@pdftex7{ -%<*lua> - \MT@requires@luatex{ - \define@key{MT@ex@c}{context}[]{% - \MT@error{Expansion contexts currently don't work with luatex.\MessageBreak - Ignoring `context' key\on@line}% - {Use pdftex instead.}% - } - }{ -% - \define@key{MT@ex@c}{context}[]{% - \MT@ifempty{#1}\relax{% - \MT@glet\MT@copy@font\MT@copy@font@ - \def\MT@extra@context{#1}% - }% - } - \MT@addto@setup{% - \define@key{MT@ex@c}{context}[]{% - \ifx\MT@copy@font\MT@copy@font@ - \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}% - \else - \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak - Ignoring `context' key\on@line}% - {Either move the settings inside the preamble,\MessageBreak - or load the package with the `copyfonts' option.}% - \fi - }% - } -% \end{macrocode} -% Protrusion contexts \emph{may} 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 -% the whole paragraph). When different fonts are loaded -- like in the example -% with the footnote markers -- we don't need to copy the fonts. -% \begin{macrocode} - \define@key{MT@pr@c}{context}[]{% - \MT@ifempty{#1}\relax{% - \MT@glet\MT@copy@font\MT@copy@font@ - \def\MT@extra@context{#1}% - }% - } - \MT@addto@setup{% - \define@key{MT@pr@c}{context}[]{% - \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}% - \ifx\MT@copy@font\MT@copy@font@\else - \MT@warning@nl{If protrusion contexts don't work as expected, - \MessageBreak load the package with the `copyfonts' option}% - \fi - }% - } -% } -}{ - \define@key{MT@ex@c}{context}[]{% - \MT@error{Expansion contexts only work with pdftex 1.40.4\MessageBreak - or later. Ignoring `context' key\on@line}% - {Upgrade pdftex.}% - } -} -% \end{macrocode} -%\begin{macro}{\MT@warn@nodim} -% \begin{macrocode} -\def\MT@warn@nodim#1{% - \MT@warning{`\@tempa' is not a dimension.\MessageBreak - Ignoring it and setting values relative to\MessageBreak #1}% -} -% \end{macrocode} -%\end{macro} -%\changes{v1.8}{2005/04/14}{\cs{SetProtrusion}: new key: \texttt{unit}} -%\changes{v1.9}{2005/09/28}{\cs{SetProtrusion}: value `\texttt{relative}' renamed -% 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)} -% \begin{macrocode} -\define@key{MT@pr@c}{unit}[character]{% - \MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty - \def\@tempa{#1}% - \MT@ifstreq\@tempa{character}\relax{% -% \end{macrocode} -% Test whether it's a dimension, but do not translate it into its final -% form here, since it may be font-specific. -% \begin{macrocode} - \MT@ifdimen\@tempa - {\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@tempa}% - {\MT@warn@nodim{character widths}}% - }% -} -% \end{macrocode} -% Tracking may only be relative to a dimension. -% \begin{macrocode} -\define@key{MT@tr@c}{unit}[1em]{% - \MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@empty - \def\@tempa{#1}% - \MT@ifdimen\@tempa - {\MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@tempa}% - {\MT@warn@nodim{1em}% - \MT@gdef@n{MT@tr@c@\MT@curr@set@name @unit}{1em}}% -} -% \end{macrocode} -% Spacing and kerning codes may additionally be relative to space dimensions. -% \begin{macrocode} -\MT@map@clist@n{sp,kn}{% - \define@key{MT@#1@c}{unit}[space]{% - \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@empty - \def\@tempa{##1}% - \MT@ifstreq\@tempa{character}\relax{% - \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\m@ne - \MT@ifstreq\@tempa{space}\relax{% - \MT@ifdimen\@tempa - {\MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@tempa}% - {\MT@warn@nodim{width of space}}% - }% - }% - }% -} -% \end{macrocode} -% The first argument to \cs{SetExpansion} accepts some more options. -% \begin{macrocode} -\MT@map@clist@n{stretch,shrink,step}{% - \define@key{MT@ex@c}{#1}[]{% - \MT@ifempty{##1}\relax{% - \MT@ifint{##1}{% -% \end{macrocode} -% A space terminates the number. -% \begin{macrocode} - \MT@gdef@n{MT@ex@c@\MT@curr@set@name @#1}{##1 }% - }{% - \MT@warning{% - Value `##1' for option `#1' is not a number.\MessageBreak - Ignoring it}% - }% - }% - }% -} -\define@key{MT@ex@c}{auto}[true]{% - \def\@tempa{#1}% - \csname if\@tempa\endcsname -% \end{macrocode} -% Don't use |autoexpand| for \pdftex\ version older than 1.20. -%\changes{v1.7}{2005/03/07}{fix: remove space after \texttt{autoexpand}} -%\changes{v1.7}{2005/03/07}{disallow automatic expansion if \pdftex\ too old} -% \begin{macrocode} - \MT@requires@pdftex4{% - \MT@gdef@n{MT@ex@c@\MT@curr@set@name @auto}{autoexpand}% - }{% - \MT@warning{pdftex too old for automatic font expansion}% - } - \else - \MT@requires@pdftex4{% - \MT@glet@nc{MT@ex@c@\MT@curr@set@name @auto}\@empty - }\relax - \fi -} -% \end{macrocode} -% Tracking: Interword spacing and outer kerning. -% The variant with space in case \cs{SetTracking} is called inside an argument -% (\eg, to \cmd\IfFileExists). -% \begin{macrocode} -\MT@define@opt@key{tr}{spacing} -\MT@define@opt@key{tr}{outerspacing} -\MT@define@opt@key{tr}{outerkerning} -% \end{macrocode} -% Which ligatures should be disabled? -% \begin{macrocode} -\define@key{MT@tr@c}{noligatures}[]% - {\MT@xdef@n{MT@tr@c@\MT@curr@set@name @noligatures}{#1}} -\define@key{MT@tr@c}{outer spacing}[]{\setkeys{MT@tr@c}{outerspacing={#1}}} -\define@key{MT@tr@c}{outer kerning}[]{\setkeys{MT@tr@c}{outerkerning={#1}}} -\define@key{MT@tr@c}{no ligatures}[]{\setkeys{MT@tr@c}{noligatures={#1}}} -% \end{macrocode} -% -%\subsubsection{Character inheritance} -% -%\begin{macro}{\DeclareCharacterInheritance} -%\changes{v1.1}{2004/09/15}{new command: possibility to specify character inheritance} -%\changes{v1.9d}{2006/02/09}{fix: empty context} -%\changes{v1.9e}{2006/07/26}{new key `\texttt{inputenc}' to set the input encoding} -% This macro may be used in the configuration files to declare characters that -% should inherit protrusion resp. expansion values from other characters. Thus, -% there is no need to define all accented characters (\eg, |\`a|, |\'a|, -% |\^a|, |\~a|, |\"a|, |\r{a}|, |\k{a}|, |\u{a}|), which will make the -% configuration files look much nicer and easier to maintain. If a single -% character of an inheritance list should have a different value, one can -% simply override it. -%\begin{macro}{\MT@inh@feat} -% The optional argument may be used to restrict the list to some features, -%\begin{macro}{\MT@extra@inputenc} -% and to specify an input encoding. -% \begin{macrocode} -\renewcommand*\DeclareCharacterInheritance[1][]{% - \let\MT@extra@context\@empty - \let\MT@extra@inputenc\@undefined - \let\MT@inh@feat\@empty - \setkeys{MT@inh@}{#1}% - \MT@begin@catcodes - \MT@set@inh@list -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@set@inh@list} -% Safe category codes. -% \begin{macrocode} -\def\MT@set@inh@list#1#2{% - \MT@ifempty\MT@inh@feat{% - \MT@map@clist@c\MT@features{{\MT@declare@char@inh{##1}{#1}{#2}}}% - }{% - \MT@map@clist@c\MT@inh@feat{{% - \KV@@sp@def\@tempa{##1}% - \MT@ifempty\@tempa\relax{% - \MT@exp@one@n\MT@declare@char@inh - {\csname MT@rbba@\@tempa\endcsname}{#1}{#2}% - }% - }}% - }% - \MT@end@catcodes -} -% \end{macrocode} -%\changes{v1.9f}{2006/08/09}{fix: forgotten comma in the features list} -%\end{macro} -% The keys for the optional argument. -% \begin{macrocode} -\MT@map@clist@c\MT@features@long{% - \define@key{MT@inh@}{#1}[]{\edef\MT@inh@feat{\MT@inh@feat#1,}}} -\define@key{MT@inh@}{inputenc}{\def\MT@extra@inputenc{#1}} -% \end{macrocode} -%\begin{macro}{\MT@declare@char@inh} -%\todo{share one list between features} -% The lists cannot be given a name by the user. -% \begin{macrocode} -\def\MT@declare@char@inh#1#2#3{% - \MT@edef@n{MT@#1@inh@name}% - {\MT@curr@file/\the\inputlineno (\@nameuse{MT@abbr@#1})}% - \MT@let@cn\MT@curr@set@name{MT@#1@inh@name}% - \MT@ifdefined@c@T\MT@extra@inputenc{% - \MT@xdef@n{MT@#1@inh@\MT@curr@set@name @inputenc}{\MT@extra@inputenc}}% -%\MT@dinfo{1}{creating inheritance list `\@nameuse{MT@#1@inh@name}'}% - \MT@gdef@n{MT@#1@inh@\csname MT@#1@inh@name\endcsname}{#3}% - \def\MT@permutelist{#1@inh}% - \setkeys{MT@inh}{#2}% - \MT@permute -} -% \end{macrocode} -%\end{macro} -% Parse the second argument. \cs{DeclareCharacterInheritance} may also be set -% up for various combinations. -% \begin{macrocode} -\define@key{MT@inh}{encoding}[]{% - \def\MT@val{#1}% - \expandafter\MT@encoding@check\MT@val,\@nil - \MT@get@highlevel{encoding}% - \MT@edef@n{MT@tempencoding1}{\MT@val}% -} -% \end{macrocode} -%\begin{macro}{\MT@encoding@check} -%\changes{v1.2}{2004/09/29}{check whether only one encoding specified} -% But we only allow \emph{one} encoding. -% \begin{macrocode} -\def\MT@encoding@check#1,#2\@nil{% - \MT@ifempty{#2}\relax{% - \edef\MT@val{#1}% - \MT@warning{You may only specify one encoding for character\MessageBreak - inheritance lists. Ignoring encoding(s) #2}% - }% -} -% \end{macrocode} -%\end{macro} -% For the rest, we can reuse the key setup from the configuration lists -% (|\Set...|). -% \begin{macrocode} -\MT@define@code@key{family}{inh} -\MT@define@code@key{series}{inh} -\MT@define@code@key{shape} {inh} -\MT@define@code@key@size {inh} -\MT@define@code@key@font {inh} -% \end{macrocode} -%\begin{macro}{\MT@inh@do} -% Now parse the third argument, the inheritance lists. We define the commands -% |\MT@inh@|\meta{name}|@|\meta{slot}|@|, containing the inheriting characters. -% They will also be translated to slot numbers here, to save some time. The -% following will be executed only once, namely the first time this inheritance -% list is encountered (in |\MT@set@|\meta{feature}|@codes|). -% \begin{macrocode} -\def\MT@inh@do#1,{% - \ifx\relax#1\@empty \else - \MT@inh@split #1==\relax - \expandafter\MT@inh@do - \fi -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@inh@split} -% Only gather the inheriting characters here. Their codes will actually be set -% in |\MT@set@|\meta{feature}|@codes|. -% \begin{macrocode} -\def\MT@inh@split#1=#2=#3\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty \else - \MT@get@slot - \ifnum\MT@char > \m@ne - \let\MT@val\MT@char - \MT@map@clist@n{#2}{% - \def\@tempa{##1}% - \ifx\@tempa\@empty \else - \MT@get@slot - \ifnum\MT@char > \m@ne - \MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}% - \fi - \fi - }% -%\MT@dinfo@nl{2}{children of #1 (\MT@val): -% \@nameuse{MT@inh@\MT@listname @\MT@val @}}% - \fi - \fi -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Permutation} -% -%\begin{macro}{\MT@permute} -%\changes{v1.1}{2004/09/15}{don't use sets for empty encoding} -%\begin{macro}{\MT@permute@} -%\begin{macro}{\MT@permute@@} -%\begin{macro}{\MT@permute@@@} -%\begin{macro}{\MT@permute@@@@} -% Calling \cs{MT@permute} will define commands for all permutations -% of the specified font attributes of the form -% |\MT@|\meta{list type}|@/|\allowbreak -% \meta{encoding}|/|\allowbreak -% \meta{family}|/|\allowbreak -% \meta{series}|/|\allowbreak -% \meta{shape}|/|\allowbreak -% \meta{|\textbar*|} -% to be the expansion of |\MT@|\meta{list type}|@name|, \ie, the name of the -% currently defined list. Size ranges are held in a separate macro called -% |\MT@|\meta{list type}|@/|\allowbreak\meta{font axes}|@sizes|, which in turn -% contains the respective \meta{list name}s attached to the ranges. -% \begin{macrocode} -\def\MT@permute{% - \let\MT@cnt@encoding\@ne - \MT@permute@ -% \end{macrocode} -% Undefine commands for the next round. -% \begin{macrocode} - \MT@map@tlist@n{{encoding}{family}{series}{shape}}\MT@permute@reset - \MT@glet\MT@tempsize\@undefined -} -\def\MT@permute@{% - \let\MT@cnt@family\@ne - \MT@permute@@ - \MT@increment\MT@cnt@encoding - \MT@ifdefined@n@T{MT@tempencoding\MT@cnt@encoding}% - \MT@permute@ -} -\def\MT@permute@@{% - \let\MT@cnt@series\@ne - \MT@permute@@@ - \MT@increment\MT@cnt@family - \MT@ifdefined@n@T{MT@tempfamily\MT@cnt@family}% - \MT@permute@@ -} -\def\MT@permute@@@{% - \let\MT@cnt@shape\@ne - \MT@permute@@@@ - \MT@increment\MT@cnt@series - \MT@ifdefined@n@T{MT@tempseries\MT@cnt@series}% - \MT@permute@@@ -} -\def\MT@permute@@@@{% - \MT@permute@@@@@ - \MT@increment\MT@cnt@shape - \MT@ifdefined@n@T{MT@tempshape\MT@cnt@shape}% - \MT@permute@@@@ -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@permute@@@@@} -%\changes{v1.9a}{2005/12/05}{don't define permutations for unused encodings} -% In order to save some memory, we can ignore unused encodings (inside the -% document). -% \begin{macrocode} -\def\MT@permute@@@@@{% - \MT@permute@define{encoding}% - \ifMT@document - \ifx\MT@tempencoding\@empty \else - \MT@ifdefined@n@TF{T@\MT@tempencoding}\relax - {\expandafter\expandafter\expandafter\@gobble}% - \fi - \fi - \MT@permute@@@@@@ -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@permute@@@@@@} -% \begin{macrocode} -\def\MT@permute@@@@@@{% - \MT@permute@define{family}% - \MT@permute@define{series}% - \MT@permute@define{shape}% - \edef\@tempa{\MT@tempencoding - /\MT@tempfamily - /\MT@tempseries - /\MT@tempshape - /\MT@ifdefined@c@T\MT@tempsize *}% -% \end{macrocode} -%\changes{v1.2}{2004/09/29}{more sanity checks for \cs{SetProtrusion} and -% \cs{SetExpansion}} -% Some sanity checks: an encoding must be specified (unless nothing else is). -% \begin{macrocode} - \MT@ifstreq\@tempa{////}\relax{% - \ifx\MT@tempencoding\@empty - \MT@warning{% - You have to specify an encoding for\MessageBreak - \@nameuse{MT@abbr@\MT@permutelist} list - `\@nameuse{MT@\MT@permutelist @name}'.\MessageBreak - Ignoring it}% - \else - \MT@ifdefined@c@TF\MT@tempsize{% -% \end{macrocode} -% Add the list of ranges to the beginning of the current combination, after -% checking for conflicts. -%\changes{v1.8}{2005/04/20}{add ranges to the beginning of the lists} -% \begin{macrocode} - \MT@ifdefined@n@T{MT@\MT@permutelist @\@tempa\MT@extra@context @sizes}{% - \MT@map@tlist@c\MT@tempsize\MT@check@rlist - }% - \MT@exp@cs\MT@xaddb - {MT@\MT@permutelist @\@tempa\MT@extra@context @sizes}% - \MT@tempsize -%\MT@dinfo@nl{1}{initialising: use list for font \@tempa,\MessageBreak -% sizes: \csname MT@\MT@permutelist @\@tempa\MT@extra@context -% @sizes\endcsname}% - }{% -% \end{macrocode} -% Only one list can apply to a given combination. -% \begin{macrocode} - \MT@ifdefined@n@T{MT@\MT@permutelist @\@tempa\MT@extra@context}{% - \MT@warning{\@nameuse{MT@abbr@\MT@permutelist} list - `\@nameuse{MT@\MT@permutelist @name}' will override list\MessageBreak - `\@nameuse{MT@\MT@permutelist @\@tempa\MT@extra@context}' - for font `\@tempa'}% - }% -%\MT@dinfo@nl{1}{initialising: use list for font \@tempa -% \ifx\MT@extra@context\@empty\else\MessageBreak -% (context: \MT@extra@context)\fi}% - }% - \MT@xdef@n{MT@\MT@permutelist @\@tempa\MT@extra@context}% - {\csname MT@\MT@permutelist @name\endcsname}% - \fi - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@permute@define} -% Define the commands. -% \begin{macrocode} -\def\MT@permute@define#1{% - \@tempcnta=\csname MT@cnt@#1\endcsname\relax - \MT@ifdefined@n@TF{MT@temp#1\the\@tempcnta}% - {\MT@edef@n{MT@temp#1}{\csname MT@temp#1\the\@tempcnta\endcsname}}% - {\MT@let@nc{MT@temp#1}\@empty}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@permute@reset} -% Reset the commands. -% \begin{macrocode} -\def\MT@permute@reset#1{% - \@tempcnta=\@ne - \MT@loop - \MT@let@nc{MT@temp#1\the\@tempcnta}\@undefined - \advance\@tempcnta\@ne - \MT@ifdefined@n@TF{MT@temp#1\the\@tempcnta}% - \iftrue - \iffalse - \MT@repeat -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@check@rlist} -%\changes{v1.8}{2005/04/20}{made recursive} -% For every new range item in \cs{MT@tempsize}, check whether it overlaps with -% ranges in the existing list. -% \begin{macrocode} -\def\MT@check@rlist#1{\expandafter\MT@check@rlist@ #1} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@check@rlist@} -% Define the current new range and~\dots -% \begin{macrocode} -\def\MT@check@rlist@#1#2#3{% - \def\@tempb{#1}% - \def\@tempc{#2}% - \MT@if@false - \MT@exp@cs\MT@map@tlist@c - {MT@\MT@permutelist @\@tempa\MT@extra@context @sizes}% - \MT@check@range -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@check@range} -% \dots~recurse through the list of existing ranges. -% \begin{macrocode} -\def\MT@check@range#1{\expandafter\MT@check@range@ #1} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@check@range@} -% \cmd\@tempb\ and \cmd\@tempc\ are lower resp. upper bound of the new range, -% \meta{\#2} and \meta{\#3} those of the existing range. -% \begin{macrocode} -\def\MT@check@range@#1#2#3{% - \MT@ifdim{#2}=\m@ne{% - \MT@ifdim\@tempc=\m@ne{% -% \end{macrocode} -%\begin{itemize} -% \item Both items are simple sizes. -% \begin{macrocode} - \MT@ifdim\@tempb={#1}\MT@if@true\relax - }{% -% \end{macrocode} -% \item Item in list is a simple size, new item is a range. -% \begin{macrocode} - \MT@ifdim\@tempb>{#1}\relax{% - \MT@ifdim\@tempc>{#1}{% - \MT@if@true - \edef\@tempb{#1 (with range: \@tempb\space to \@tempc)}% - }\relax - }% - }% - }{% - \MT@ifdim\@tempc=\m@ne{% -% \end{macrocode} -% \item Item in list is a range, new item is a simple size. -% \begin{macrocode} - \MT@ifdim\@tempb<{#2}{% - \MT@ifdim\@tempb<{#1}\relax\MT@if@true - }\relax - }{% -% \end{macrocode} -% \item Both items are ranges. -% \begin{macrocode} - \MT@ifdim\@tempb<{#2}{% - \MT@ifdim\@tempc>{#1}{% - \MT@if@true - \edef\@tempb{#1 to #2 (with range: \@tempb\space to \@tempc)}% - }\relax - }\relax - }% - }% - \ifMT@if@ - \MT@warning{\@nameuse{MT@abbr@\MT@permutelist} list - `\@nameuse{MT@\MT@permutelist @name}' will override\MessageBreak - list `#3' for font \@tempa,\MessageBreak size \@tempb}% -% \end{macrocode} -% If we've already found a conflict with this item, we can skip the rest of the -% list. -% \begin{macrocode} - \expandafter\MT@tlist@break - \fi -} -% \end{macrocode} -%\end{itemize} -%\end{macro} -% -%\subsection{Package options} -% -%\subsubsection{Declaring the options} -% -%\begin{macro}{\ifMT@opt@expansion} -%\begin{macro}{\ifMT@opt@auto} -%\begin{macro}{\ifMT@opt@DVI} -% Keep track of whether the user explicitly set these options. -% \begin{macrocode} -\newif\ifMT@opt@expansion -\newif\ifMT@opt@auto -\newif\ifMT@opt@DVI -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@optwarn@admissible} -% Some warnings. -% \begin{macrocode} -\def\MT@optwarn@admissible#1#2{% - \MT@warning@nl{`#1' is not an admissible value for option\MessageBreak - `#2'. Assuming `false'}% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@optwarn@nan} -% \begin{macrocode} -% -%\MT@requires@latex1{ -\def\MT@optwarn@nan#1#2{% - \MT@warning@nl{Value `#1' for option `#2' is not a\MessageBreak number. - Using default value of \number\@nameuse{MT@#2@default}}% -} -%}\relax -%<*package> -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@opt@def@set} -% \begin{macrocode} -\def\MT@opt@def@set#1{% - \MT@ifdefined@n@TF{MT@\@tempb @set@@\MT@val}{% - \MT@xdef@n{MT@\@tempb @setname}{\MT@val}% - }{% - \MT@xdef@n{MT@\@tempb @setname}{\@nameuse{MT@default@\@tempb @set}}% - \MT@warning@nl{The #1 set `\MT@val' is undeclared.\MessageBreak - Using set `\@nameuse{MT@\@tempb @setname}' instead}% - }% -} -% \end{macrocode} -%\end{macro} -% \opt{expansion} and \opt{protrusion} may be |true|, |false|, |compatibility|, -% |nocompatibility| and/or a \meta{set name}. -%\changes{v1.9}{2005/10/06}{fix: use \texttt{true} as the default value} -% \begin{macrocode} -\MT@map@clist@n{protrusion,expansion}{% - \define@key{MT}{#1}[true]{% - \csname MT@opt@#1true\endcsname - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@ifempty\MT@val\relax{% - \csname MT@#1true\endcsname - \edef\@tempb{\csname MT@rbba@#1\endcsname}% - \MT@ifstreq\MT@val{true}\relax - {% - \MT@ifstreq\MT@val{false}{% - \csname MT@#1false\endcsname - }{% - \MT@ifstreq\MT@val{compatibility}{% - \MT@let@nc{MT@\@tempb @level}\@ne - }{% - \MT@ifstreq\MT@val{nocompatibility}{% - \MT@let@nc{MT@\@tempb @level}\tw@ - }{% -% \end{macrocode} -% If everything failed, it should be a set name. -% \begin{macrocode} - \MT@opt@def@set{#1}% - }% - }% - }% - }% - }% - }% - }% -} -% \end{macrocode} -% \opt{activate} is a shortcut for \opt{protrusion} and \opt{expansion}. -%\changes{v1.9e}{2006/07/18}{fix: default value for \opt{activate}: \texttt{true}} -%\todo{add \opt{spacing} to \opt{activate}, when the feature has stabilised in \pdftex?} -% \begin{macrocode} -\define@key{MT}{activate}[true]{% - \setkeys{MT}{protrusion={#1}}% - \setkeys{MT}{expansion={#1}}% -} -% \end{macrocode} -% \opt{spacing}, \opt{kerning} and \opt{tracking} do not have a compatibility level. -% \begin{macrocode} -\MT@map@clist@n{spacing,kerning,tracking}{% - \define@key{MT}{#1}[true]{% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@ifempty\MT@val\relax{% - \csname MT@#1true\endcsname - \MT@ifstreq\MT@val{true}\relax - {% - \MT@ifstreq\MT@val{false}{% - \csname MT@#1false\endcsname - }{% - \edef\@tempb{\csname MT@rbba@#1\endcsname}% - \MT@opt@def@set{#1}% - }% - }% - }% - }% - }% -} -% \end{macrocode} -%\changes{v1.5}{2004/12/02}{new option: \opt{selected}, by default false -% (suggested by \contributor \thanh{} )} -% ^^A private mail, 2004/11/30 -%\changes{v2.0}{2005/10/04}{(beta:1) new option: \opt{babel}, by default false -% (language-dependent setup suggested by \contributor Ulrich Dirr )} -% ^^A private mail, 2005/08/27 -%\begin{macro}{\MT@def@bool@opt} -% The |true|/|false| options: -% \opt{draft}, \opt{final} (may be inherited from the class options), -% \opt{auto}, -% \opt{selected}, -% \opt{babel}, -% \opt{DVIoutput}, -% \opt{defersetup}, -% \opt{copyfonts}. -% \begin{macrocode} -\def\MT@def@bool@opt#1#2{% - \define@key{MT}{#1}[true]{% - \def\@tempa{##1}% - \MT@ifstreq\@tempa{true}\relax{% - \MT@ifstreq\@tempa{false}\relax{% - \MT@optwarn@admissible{##1}{#1}% - \def\@tempa{false}% - }% - }% - #2% - }% -} -% \end{macrocode} -%\end{macro} -% Boolean options that only set the switch. -% \begin{macrocode} -\MT@map@clist@n{draft,selected,babel}{% - \MT@def@bool@opt{#1}{\csname MT@#1\@tempa\endcsname}} -\MT@def@bool@opt{auto}{\csname MT@auto\@tempa\endcsname \MT@opt@autotrue} -% \end{macrocode} -% The \opt{DVIoutput} option will change \cmd\pdfoutput\ immediately to minimise -% the risk of confusing other packages. -% \begin{macrocode} -\MT@def@bool@opt{DVIoutput}{% - \csname if\@tempa\endcsname - \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi - \pdfoutput\z@ - \else - \ifnum\pdfoutput<\@ne \MT@opt@DVItrue \fi - \pdfoutput\@ne - \fi -} -% \end{macrocode} -%\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 -% necessary. -% -% The only problem with the new deferred setup I can think of is when a box -% is being constructed inside the preamble and this box contains a font that is -% not loaded before the box is being used. -% \begin{macrocode} -\MT@def@bool@opt{defersetup}{% - \csname if\@tempa\endcsname \else - \AtEndOfPackage{% - \MT@setup@ - \let\MT@setup@\@empty - \let\MT@addto@setup\@firstofone - }% - \fi -} -% \end{macrocode} -% \opt{copyfonts} will copy all fonts before setting them up. This allows -% protrusion and expansion with different parameters. -%\changes{v2.2}{2007/07/03}{new option: \opt{copyfonts}} -% This options is also \emph{undocumented} in the hope that we can always find -% out automatically whether it's required. -% \begin{macrocode} -\MT@requires@pdftex7{ -%<*lua> - \MT@requires@luatex{ - \MT@def@bool@opt{copyfonts}{% - \csname if\@tempa\endcsname - \MT@error{The `copyfonts' option doesn't work with luatex} - {Use pdftex instead.}% - \fi - } - }{ -% - \MT@def@bool@opt{copyfonts}{% - \csname if\@tempa\endcsname - \MT@glet\MT@copy@font\MT@copy@font@ - \else - \MT@glet\MT@copy@font\relax - \fi - } -% } -}{ - \MT@def@bool@opt{copyfonts}{% - \csname if\@tempa\endcsname - \MT@error{The pdftex version you are using is too old\MessageBreak - to use the `copyfonts' option}{Upgrade pdftex.}% - \fi - } -} -% \end{macrocode} -% \opt{final} is the opposite to \opt{draft}. -%\changes{v1.4a}{2004/11/16}{new option: \opt{final}} -% \begin{macrocode} -\MT@def@bool@opt{final}{% - \csname if\@tempa\endcsname - \MT@draftfalse - \else - \MT@drafttrue - \fi -} -% \end{macrocode} -% For \opt{verbose} output, we redefine \cs{MT@vinfo}. -%\changes{v2.3}{2007/11/05}{turned some warnings into errors} -% \begin{macrocode} -\define@key{MT}{verbose}[true]{% - \let\MT@vinfo\MT@info@nl - \def\@tempa{#1}% - \MT@ifstreq\@tempa{true}\relax{% -% \end{macrocode} -%\changes{v1.7}{2005/03/16}{new value for \opt{verbose} option: \texttt{errors}} -% Take problems seriously. -% \begin{macrocode} - \MT@ifstreq\@tempa{errors}{% - \let\MT@warning \MT@warn@err - \let\MT@warning@nl\MT@warn@err - }{% - \let\MT@vinfo\@gobble -% \end{macrocode} -%\changes{v2.3}{2007/11/05}{new value for \opt{verbose} option: \texttt{silent} -% (suggested by \contributor Karl Berry )} -% ^^A private mail, 2007/11/05 -% Cast warnings to the winds. -% \begin{macrocode} - \MT@ifstreq\@tempa{silent}{% - \let\MT@warning \MT@info - \let\MT@warning@nl\MT@info@nl - }{% - \MT@ifstreq\@tempa{false}\relax{\MT@optwarn@admissible{#1}{verbose}}% - }% - }% - }% -} -% \end{macrocode} -%\changes{v1.5}{2004/12/02}{defaults: \opt{step}: 4 -% (suggested by \contributor \thanh{} )} -% ^^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} -%^^A\changes{v2.0}{2007/01/05}{option `\texttt{letterspacing}' renamed to `\opt{letterspace}'} -% Options with numerical keys: -% \opt{factor}, -% \opt{stretch}, -% \opt{shrink}, -% \opt{step}, -% \opt{letterspace}. -% \begin{macrocode} -% -%\MT@requires@latex1{ -\MT@map@clist@n{% -% stretch,shrink,step,% - letterspace}{% - \define@key{MT}{#1}[\csname MT@#1@default\endcsname]{% - \def\@tempa{##1 }% -% \end{macrocode} -% No nonsense in \cs{MT@factor} et al.? -%\changes{v1.6}{2005/01/06}{test whether numeric options receive a number} -% A space terminates the number. -% \begin{macrocode} - \MT@ifint\@tempa - {\MT@edef@n{MT@#1}{\@tempa}}% - {\MT@optwarn@nan{##1}{#1}}% - }% -} -%}\relax -%<*package> -% \end{macrocode} -% \opt{factor} will define the protrusion factor only. -% \begin{macrocode} -\define@key{MT}{factor}[\MT@factor@default]{% - \def\@tempa{#1 }% - \MT@ifint\@tempa - {\edef\MT@pr@factor{\@tempa}} - {\MT@optwarn@nan{#1}{factor}}% -} -% \end{macrocode} -% Unit for protrusion codes. -%\changes{v1.8}{2005/04/14}{new option: \opt{unit}, by default \texttt{character}} -%\changes{v1.9}{2005/09/28}{option \opt{unit}: rename value \texttt{relative} to \texttt{character}} -% \begin{macrocode} -\define@key{MT}{unit}[character]{% - \def\@tempa{#1}% - \MT@ifstreq\@tempa{character}\relax{% - \MT@ifdimen\@tempa - {\let\MT@pr@unit\@tempa}% - {\MT@warning@nl{`\@tempa' is not a dimension.\MessageBreak - Ignoring it and setting values relative to\MessageBreak - character widths}}% - }% -} -% \end{macrocode} -% -% \subsubsection{Reading the configuration file} -% -% The package should just work if called without any options. Therefore, -% expansion will be switched off by default if output is , since it isn't -% likely that expanded fonts are available. (This grows more important as -% modern \TeX\ systems have switched to the \pdftex\ engine even for -% output, so that the user might not even be aware of the fact that she's -% running \pdftex.) -% \begin{macrocode} -\MT@protrusiontrue -\ifnum\pdfoutput<\@ne \else -% \end{macrocode} -% Also, we only enable expansion by default if \pdftex\ can expand the fonts -% automatically. -%\changes{v1.6}{2004/12/23}{defaults: turn off expansion for old \pdftex\ versions} -% \begin{macrocode} - \MT@requires@pdftex4{ - \MT@expansiontrue - \MT@autotrue - }\relax -\fi -% \end{macrocode} -% The main configuration file will be loaded before processing the package -% options. -%\changes{v1.8}{2005/05/15}{new option: \opt{config} to load a different main -% configuration file} -%\begin{macro}{\MT@config@file} -%\begin{macro}{\MT@get@config} -% However, the \opt{config} option must of course be evaluated beforehand. -% We also have to define a no-op for the regular option processing later. -% \begin{macrocode} -\define@key{MT}{config}[]{\relax} -\def\MT@get@config#1config=#2,#3\@nil{% - \MT@ifempty{#2}% - {\def\MT@config@file{\MT@MT.cfg}}% - {\def\MT@config@file{#2.cfg}}% -} -\expandafter\expandafter\expandafter\MT@get@config - \csname opt@\@currname.\@currext\endcsname,config=,\@nil -% \end{macrocode} -%\end{macro} -%\end{macro} -%\changes{v1.4b}{2004/11/25}{fix: set catcodes before reading global configuration file -% (reported by \contributor Christoph Bier )} -% ^^A MID: <30k2tqF30v483U1@uni-berlin.de> -% Load the file. -% \begin{macrocode} -\IfFileExists{\MT@config@file}{% - \MT@info@nl{Loading configuration file \MT@config@file}% - \MT@begin@catcodes - \let\MT@begin@catcodes\relax - \let\MT@end@catcodes\relax - \let\MT@curr@file\MT@config@file - \input{\MT@config@file}% - \endgroup -}{\MT@warning@nl{% - Could not find configuration file `\MT@config@file'!\MessageBreak - This will almost certainly cause undesired results.\MessageBreak - Please fix your installation}% -} -% \end{macrocode} -%\begin{macro}{\MT@check@active@set} -% We have to make sure that font sets are active. If the user didn't activate -% any, we use those sets declared by \cs{DeclareMicrotypeSetDefault} (this -% is done at the end of the preamble). -% \begin{macrocode} -\def\MT@check@active@set#1{% - \MT@ifdefined@n@TF{MT@#1@setname}{% - \MT@info@nl{Using \@nameuse{MT@abbr@#1} set `\@nameuse{MT@#1@setname}'}% - }{% - \MT@ifdefined@n@TF{MT@default@#1@set}{% - \MT@glet@nn{MT@#1@setname}{MT@default@#1@set}% - \MT@info@nl{Using default \@nameuse{MT@abbr@#1} set `\@nameuse{MT@#1@setname}'}% - }{% -% \end{macrocode} -% If no default font set has been declared in the main configuration file, -% we use the (empty, non-existent) set `|@|', -%\changes{v2.3d}{2008/11/24}{warning for missing default sets} -% and issue a warning. -% \begin{macrocode} - \MT@gdef@n{MT@#1@setname}{@}% - \MT@warning@nl{No \@nameuse{MT@abbr@#1} set chosen, no default set declared. - \MessageBreak Using empty set}% - }% - }% -} -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Hook for other packages}\label{sub:hook} -% -% {\let\special@index\index\SpecialIndex@{\Microtype@Hook}{\encapchar usage}} -%\begin{macro}{\Microtype@Hook} -%\changes{v1.7}{2005/03/22}{new command for font package authors} -% This hook may be used by font package authors, \eg, to declare alias fonts. If -% it is defined, it will be executed here, \ie, after the main configuration -% file has been loaded, and before the package options are evaluated. -% -% This hook was needed in versions prior to 1.9a to overcome the situation that -% (1)~the \microtype\ package should be loaded after all font defaults have -% been set up (hence, using \cmd\@ifpackageloaded\ in the font package was not -% viable), and (2)~checking \cmd\AtBeginDocument\ could be too late, since -% fonts might already have been loaded, and consequently set up, in the -% preamble. With the new deferred setup, one could live without this command, -% however, it remains here since it's simpler than testing whether the package -% was loaded both in the preamble as well as at the beginning of the document -% (which is what one would have to do). -% -% Package authors should check whether the command is already defined so that -% existing definitions by other packages aren't overwritten. Example: -%\begin{verbatim} -%\def\MinionPro@MT@Hook{\DeclareMicrotypeAlias{MinionPro-LF}{MinionPro}} -%\@ifpackageloaded{microtype} -% \MinionPro@MT@Hook -% {\@ifundefined{Microtype@Hook} -% {\let\Microtype@Hook\MinionPro@MT@Hook} -% {\g@addto@macro\Microtype@Hook{\MinionPro@MT@Hook}}} -%\end{verbatim} -% \cs{MicroType@Hook} with a capital |T| (which only existed in version 1.7) is -% provided for compatibility reasons. At some point in the future, it will no -% longer be available, hence it should not be used. -% \begin{macrocode} -\MT@ifdefined@c@T\MicroType@Hook{\MT@warning{% - Command \string\MicroType@Hook\space is deprecated.\MessageBreak - Use \string\Microtype@Hook\space instead}\MicroType@Hook} -\MT@ifdefined@c@T\Microtype@Hook\Microtype@Hook -% \end{macrocode} -%\end{macro} -% -%\subsubsection{Changing options later} -% -%\begin{macro}{\microtypesetup} -%\changes{v1.4}{2004/11/04}{fix: set the correct levels, and remember them; -% warning when enabling an option disabled in package options} -%\changes{v1.7}{2005/02/17}{fix: warning also when setting to \texttt{(no)compatibility}} -%\changes{v1.9a}{2005/11/21}{inside the preamble, accepts all package options} -%\changes{v2.3d}{2009/03/05}{select font after setup} -%\begin{macro}{\MT@define@optionX} -% Inside the preamble, \cs{microtypesetup} accepts the same options as the -% package (unless \opt{defersetup}|=false|). -% In the document body, it accepts the options: -% |protrusion|, |expansion|, |activate|, |tracking|, |spacing| and |kerning|. -% Specifying font sets is not allowed. -% \begin{macrocode} -\def\microtypesetup{\setkeys{MT}} -\MT@addto@setup{\def\microtypesetup#1{\setkeys{MTX}{#1}\selectfont}} -\def\MT@define@optionX#1#2{% - \define@key{MTX}{#1}[true]{% - \edef\@tempb{\csname MT@rbba@#1\endcsname}% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@ifempty\MT@val\relax{% - \@tempcnta=\m@ne - \MT@ifstreq\MT@val{true}{% -% \end{macrocode} -% Enabling micro-typography in the middle of the document is not allowed if it -% has been disabled in the package options since fonts might already have been -% loaded and hence wouldn't be set up. -% \begin{macrocode} - \MT@checksetup{#1}{% - \@tempcnta=\csname MT@\@tempb @level\endcsname - \MT@vinfo{Enabling #1 - (level \number\csname MT@\@tempb @level\endcsname)\on@line}% - }% - }{% - \MT@ifstreq\MT@val{false}{% - \@tempcnta=\z@ - \MT@vinfo{Disabling #1\on@line}% - }{% - \MT@ifstreq\MT@val{compatibility}{% - \MT@checksetup{#1}{% - \@tempcnta=\@ne - \MT@let@nc{MT@\@tempb @level}\@ne - \MT@vinfo{Setting #1 to level 1\on@line}% - }% - }{% - \MT@ifstreq\MT@val{nocompatibility}{% - \MT@checksetup{#1}{% - \@tempcnta=\tw@ - \MT@let@nc{MT@\@tempb @level}\tw@ - \MT@vinfo{Setting #1 to level 2\on@line}% - }% - }{\MT@error{Value `\MT@val' for key `#1' not recognised} - {Use any of `true', `false', `compatibility' or - `nocompatibility'.}% - }% - }% - }% - }% - \ifnum\@tempcnta>\m@ne - #2\@tempcnta\relax - \fi - }% - }% - }% -} -% \end{macrocode} -%\end{macro} -%\end{macro} -%\begin{macro}{\MT@checksetup} -% Test whether the feature wasn't disabled in the package options. -% \begin{macrocode} -\def\MT@checksetup#1{% - \csname ifMT@#1\endcsname - \expandafter\@firstofone - \else - \MT@error{You cannot enable #1 if it was disabled\MessageBreak - in the package options}{Load microtype with #1 enabled.}% - \expandafter\@gobble - \fi -} -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\MT@define@optionX{protrusion}\pdfprotrudechars -\MT@define@optionX{expansion}\pdfadjustspacing -% \end{macrocode} -%\begin{macro}{\MT@define@optionX@} -% The same for |tracking|, |spacing| and |kerning|, which do not have a -% |compatibility| level. -% \begin{macrocode} -\MT@requires@pdftex6{ -% \MT@requires@luatex\@firstofone{ - \def\MT@define@optionX@#1#2{% - \define@key{MTX}{#1}[true]{% - \MT@map@clist@n{##1}{% - \KV@@sp@def\MT@val{####1}% - \MT@ifempty\MT@val\relax{% - \@tempcnta=\m@ne - \MT@ifstreq\MT@val{true}{% - \MT@checksetup{#1}{% - \@tempcnta=\@ne - \MT@vinfo{Enabling #1\on@line}% - }% - }{% - \MT@ifstreq\MT@val{false}{% - \@tempcnta=\z@ - \MT@vinfo{Disabling #1\on@line}% - }{\MT@error{Value `\MT@val' for key `#1' not recognised} - {Use either `true' or `false'}% - }% - }% - \ifnum\@tempcnta>\m@ne - #2\relax - \fi - }% - }% - }% - } -% \end{macrocode} -%\end{macro} -% We cannot simply let \cs{MT@tracking} relax, since this may select the already -% letterspaced font instance. -% \begin{macrocode} - \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} - \@gobble -% } -}\@firstofone -% \end{macrocode} -% Disable for older \pdftex\ versions and for \luatex. -% \begin{macrocode} -{\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}} - \define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}} - \define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}} -} -\define@key{MTX}{activate}[true]{% - \setkeys{MTX}{protrusion={#1}}% - \setkeys{MTX}{expansion={#1}}% -} -% \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.)} -% \begin{macrocode} -\let\MT@saved@setupfont\MT@setupfont -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\define@key{MTX}{disable}[]{% - \MT@info{Inactivate `\MT@MT' package}% - \let\MT@setupfont\relax -} -\define@key{MTX}{enable}[]{% - \MT@info{Reactivate `\MT@MT' package}% - \let\MT@setupfont\MT@saved@setupfont -} -% -% \end{macrocode} -% -%\subsubsection{Processing the options}\label{sssec:impl.options} -% -%\begin{macro}{\MT@ProcessOptionsWithKV} -% Parse options. -% \begin{macrocode} -%\MT@requires@latex1{ -\def\MT@ProcessOptionsWithKV#1{% - \let\@tempc\relax - \let\MT@temp\@empty -% \MT@requires@latex2{ - \MT@map@clist@c\@classoptionslist{% - \def\CurrentOption{##1}% - \MT@ifdefined@n@T{KV@#1@\expandafter\MT@getkey\CurrentOption=\@nil}{% - \edef\MT@temp{\MT@temp,\CurrentOption,}% - \@expandtwoargs\@removeelement\CurrentOption - \@unusedoptionlist\@unusedoptionlist - }% - }% - \edef\MT@temp{\noexpand\setkeys{#1}% - {\MT@temp\@ptionlist{\@currname.\@currext}}}% -% \end{macrocode} -% \pkg{eplain} can handle package options. -% \begin{macrocode} -%<*plain> - }{\edef\MT@temp{\noexpand\setkeys{#1}% - {\csname usepkg@options@\usepkg@pkg\endcsname}}} -% - \MT@temp - \MT@clear@options -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@getkey} -% For |key=val| in class options. -%\changes{v2.3a}{2008/02/09}{fix: \texttt{key\quotechar=val} in class options list} -% \begin{macrocode} -\def\MT@getkey#1=#2\@nil{#1} -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -\MT@ProcessOptionsWithKV{MT} -%}\relax -%<*package> -% \end{macrocode} -% Now we can take the appropriate actions. We also tell the log file which -% options the user has chosen (in case it's interested). -% \begin{macrocode} -\MT@addto@setup{% -\ifMT@draft -% \end{macrocode} -% We disable most of what we've just defined in the \arabic{CodelineNo} lines -% above if we are running in draft mode. -%\changes{v1.7}{2005/02/06}{warning when running in draft mode} -% \begin{macrocode} - \MT@warning@nl{`draft' option active.\MessageBreak - Disabling all micro-typographic extensions.\MessageBreak - This might lead to different line and page breaks}% - \let\MT@setupfont\relax - \renewcommand*\LoadMicrotypeFile[1]{}% - \renewcommand*\microtypesetup[1]{}% - \renewcommand*\microtypecontext[1]{}% - \renewcommand*\lsstyle{}% -\else -% \end{macrocode} -% For output, the user must have explicitly passed the \opt{expansion} -% option to the package. -%\changes{v1.5}{2004/12/02}{defaults: turn off expansion for output} -% \begin{macrocode} - \ifnum\pdfoutput<\@ne - \ifMT@opt@expansion \else - \MT@expansionfalse - \fi - \fi -% \end{macrocode} -% \pdftex\ can create output, too. However, both the viewer and -% |dvips| need to find actual fonts. Therefore, expansion will only work if the -% fonts for different degrees of expansion are readily available. -% -%\changes{v1.4b}{2004/11/19}{new message if \cmd\pdfoutput\ is changed} -% Some packages depend on the value of \cmd\pdfoutput\ and will get confused if -% it is changed after they have been loaded. These packages are, among others: -% \pkg{color}, \pkg{graphics}, \pkg{hyperref}, \pkg{crop}, \pkg{contour}, -% \pkg{pstricks} and, as a matter of course, \pkg{ifpdf}. Instead of testing -% for each package (that's not our job), we only say that it was \microtype\ -% that changed it. This must be sufficient! -% \begin{macrocode} - \MT@info@nl{Generating \ifnum\pdfoutput<\@ne DVI \else PDF \fi output% - \ifMT@opt@DVI\space (changed by \MT@MT)\fi}% -% \end{macrocode} -% Working on font copies? -% \begin{macrocode} - \ifx\MT@copy@font\relax\else \MT@info@nl{Using font copies for contexts}\fi -% \end{macrocode} -% Fix the font sets. -% \begin{macrocode} - \MT@map@tlist@c\MT@font@sets\MT@fix@font@set -% \end{macrocode} -% Protrusion. -% \begin{macrocode} - \ifMT@protrusion - \edef\MT@active@features{\MT@active@features,pr}% - \pdfprotrudechars\MT@pr@level - \MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)% - \ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak - factor: \number\MT@pr@factor\fi - \ifx\MT@pr@unit\@empty \else,\MessageBreak unit: \MT@pr@unit\fi}% - \MT@check@active@set{pr}% - \else - \let\MT@protrusion\relax - \MT@info@nl{No character protrusion}% - \fi -% \end{macrocode} -% Expansion. -% \begin{macrocode} - \ifMT@expansion -% \end{macrocode} -% Set up the values for font expansion: if \opt{stretch} has not been specified, we -% take the default value of 20. -% \begin{macrocode} - \ifnum\MT@stretch=\m@ne - \let\MT@stretch\MT@stretch@default - \fi -% \end{macrocode} -% If \opt{shrink} has not been specified, it will inherit the value from \opt{stretch}. -% \begin{macrocode} - \ifnum\MT@shrink=\m@ne - \let\MT@shrink\MT@stretch - \fi -% \end{macrocode} -%\changes{v2.3d}{2008/11/19}{default \texttt{step}: 1 for \pdftex\ versions $\geq$ 1.40} -% If \opt{step} has not been specified, we will just set it to 1 for recent -% \pdftex\ versions. My tests did not show much difference neither in -% compilation time (within the margin of error) nor in file size (less than -% 1\% difference for \file{microtype.pdf} with |step=1| compared to |step=5|). -%\changes{v1.5}{2004/12/02}{defaults: calculate \opt{step} as -% min(\texttt{stretch},\texttt{shrink})/5} -% With older versions, we set it to min(\opt{stretch},\opt{shrink})/5, -% rounded off, minimum value 1. -%\changes{v1.9}{2005/07/08}{warning if user requested zero \opt{step}} -% \begin{macrocode} - \MT@requires@pdftex6{\def\MT@step{1 }}{% - \ifnum\MT@step=\m@ne - \ifnum\MT@stretch>\MT@shrink - \ifnum\MT@shrink=\z@ - \@tempcnta=\MT@stretch - \else - \@tempcnta=\MT@shrink - \fi - \else - \ifnum\MT@stretch=\z@ - \@tempcnta=\MT@shrink - \else - \@tempcnta=\MT@stretch - \fi - \fi - \divide\@tempcnta 5\relax - \else - \@tempcnta=\MT@step - \ifnum\@tempcnta=\z@ - \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak - Setting it to one} - \fi - \fi - \ifnum\@tempcnta=\z@ \@tempcnta=\@ne \fi - \edef\MT@step{\number\@tempcnta\space}}% -% \end{macrocode} -%\begin{macro}{\MT@auto} -% Automatic expansion of the font? This new feature of \pdftex\ 1.20 makes the -% \textit{\fontfamily{pzc}\selectfont hz}~programme really usable. -% It must be either `|autoexpand|' or empty (or `|1000|' for older versions of -% \pdftex). -% \begin{macrocode} - \let\MT@auto\@empty - \ifMT@auto - \MT@requires@pdftex4{% -% \end{macrocode} -%\end{macro} -% We turn off automatic expansion if output mode is . -%\changes{v1.5}{2004/12/02}{disable automatic expansion for output} -% \begin{macrocode} - \ifnum\pdfoutput<\@ne - \ifMT@opt@auto - \MT@error{% - Automatic font expansion only works for PDF output.\MessageBreak - However, you are creating a DVI file} - {If you have created expanded fonts instances, remove `auto' from% - \MessageBreak the package options. Otherwise, you have to switch - off expansion\MessageBreak completely.}% - \fi - \MT@autofalse - \else - \def\MT@auto{autoexpand}% - \fi -% \end{macrocode} -% Also, if \pdftex\ is too old. -%\changes{v1.1}{2004/09/13}{issue an error instead of a warning, when \pdftex\ -% version is too old for \texttt{autoexpand}} -%\changes{v1.6}{2004/12/23}{disable automatic expansion for old \pdftex\ versions} -% \begin{macrocode} - }{% - \MT@error{% - The pdftex version you are using is too old for\MessageBreak - automatic font expansion}% - {If you have created expanded fonts instances, remove `auto' from\MessageBreak - the package options. Otherwise, you have to switch off expansion\MessageBreak - completely, or upgrade pdftex to version 1.20 or newer.}% - \MT@autofalse - \def\MT@auto{1000 }% - }% - \else -% \end{macrocode} -% No automatic expansion. -% \begin{macrocode} - \MT@requires@pdftex4\relax{% - \def\MT@auto{1000 }% - }% - \fi -% \end{macrocode} -% Choose the appropriate macro for selected expansion. -% \begin{macrocode} - \ifMT@selected - \let\MT@set@ex@codes\MT@set@ex@codes@s - \else - \let\MT@set@ex@codes\MT@set@ex@codes@n - \fi -% \end{macrocode} -% Filter out |stretch=0,shrink=0|, since it would result in a \pdftex\ error. -%\changes{v1.9}{2005/07/08}{disable expansion if both \opt{step} and \opt{shrink} are zero} -% \begin{macrocode} - \ifnum\MT@stretch=\z@ - \ifnum\MT@shrink=\z@ - \MT@warning@nl{% - Both the stretch and shrink limit are set to zero.\MessageBreak - Disabling font expansion}% - \MT@expansionfalse - \fi - \fi - \fi - \ifMT@expansion - \edef\MT@active@features{\MT@active@features,ex}% - \pdfadjustspacing\MT@ex@level - \MT@info@nl{\ifMT@auto A\else Non-a\fi utomatic font expansion enabled - (level \number\MT@ex@level),\MessageBreak - stretch: \number\MT@stretch, shrink: \number\MT@shrink, - step: \number\MT@step, \ifMT@selected\else non-\fi selected}% -% \end{macrocode} -%\changes{v2.2}{2007/01/28}{warning if \opt{stretch} or \opt{shrink} aren't multiples of \opt{step}} -%\begin{macro}{\MT@check@step} -% Check whether \opt{stretch} and \opt{shrink} are multiples of \opt{step}. -% \begin{macrocode} - \def\MT@check@step#1{% - \@tempcnta=\csname MT@#1\endcsname - \divide\@tempcnta \MT@step - \multiply\@tempcnta \MT@step - \ifnum\@tempcnta=\csname MT@#1\endcsname\else - \MT@warning@nl{The #1 amount is not a multiple of step.\MessageBreak - The effective maximum #1 is \the\@tempcnta\space - (step \number\MT@step)}% - \fi - }% - \MT@check@step{stretch}% - \MT@check@step{shrink}% - \MT@check@active@set{ex}% -% \end{macrocode} -%\end{macro} -%\changes{v1.7}{2005/03/02}{modify \cmd\showhyphens} -% Inside \cmd\showhyphens, font expansion should be disabled. -% \begin{macrocode} - \CheckCommand*\showhyphens[1]{\setbox0\vbox{% - \color@begingroup\everypar{}\parfillskip\z@skip - \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne - \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}% -% \end{macrocode} -%\begin{macro}{\showhyphens} -% I wonder why it's defined globally (in \file{ltfssbas.dtx})? -% \begin{macrocode} - \gdef\showhyphens#1{\setbox0\vbox{% - \color@begingroup\pdfadjustspacing\z@\everypar{}\parfillskip\z@skip - \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne - \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}% -% \end{macrocode} -%\end{macro} -% \begin{macrocode} - \else - \let\MT@expansion\relax - \MT@info@nl{No font expansion}% - \fi -} -\MT@requires@pdftex6{ -% \end{macrocode} -%\begin{macro}{\MT@warn@lua} -% Switch off the features that don't work with \luatex. -% \begin{macrocode} -%<*lua> - \def\MT@warn@lua#1{% - \MT@error{The `#1' feature doesn't currently work\MessageBreak with luatex} - {Use pdftex instead.}% - \csname MT@#1false\endcsname - \MT@let@nc{MT@#1}\relax - } -% -% \end{macrocode} -%\end{macro} -% \begin{macrocode} -% - \MT@addto@setup{% -%<*package> -% \end{macrocode} -% Tracking, spacing and kerning. -% \begin{macrocode} - \ifMT@tracking -% \MT@requires@luatex{\MT@warn@lua{tracking}}{% - \edef\MT@active@features{\MT@active@features,tr}% - \MT@info@nl{Tracking enabled}% - \MT@check@active@set{tr}% -% \end{macrocode} -% Enable protrusion for compensation at the line edges. -%\changes{v2.3}{2007/07/27}{enable protrusion when tracking is enabled} -% \begin{macrocode} - \ifMT@protrusion\else\pdfprotrudechars\@ne\fi -% }% - \else - \let\MT@tracking\relax - \MT@info@nl{No tracking}% - \fi - \ifMT@spacing -% \MT@requires@luatex{\MT@warn@lua{spacing}}{% - \edef\MT@active@features{\MT@active@features,sp}% - \pdfadjustinterwordglue\@ne - \MT@info@nl{Adjustment of interword spacing enabled}% - \MT@check@active@set{sp}% -% }% - \else - \let\MT@spacing\relax - \MT@info@nl{No adjustment of interword spacing}% - \fi - \ifMT@kerning -% \MT@requires@luatex{\MT@warn@lua{kerning}}{% - \edef\MT@active@features{\MT@active@features,kn}% - \pdfprependkern\@ne - \pdfappendkern\@ne - \MT@info@nl{Adjustment of character kerning enabled}% - \MT@check@active@set{kn}% -% }% - \else - \let\MT@kerning\relax - \MT@info@nl{No adjustment of character kerning}% - \fi -% -% \end{macrocode} -%\begin{macro}{\MT@warn@tracking@DVI} -%\changes{v2.2}{2007/02/11}{warning when letterspacing in DVI mode} -% We issue a warning, when letterspacing in mode, since it will probably -% not work. We also switch on protrusion if it isn't already, to compensate for -% the letterspacing kerns. -% \begin{macrocode} - \ifnum\pdfoutput<\@ne - \def\MT@warn@tracking@DVI{% - \MT@warning@nl{% - You are using tracking/letterspacing in DVI mode.\MessageBreak - This will probably not work, unless the post-\MessageBreak - processing program (dvips, dvipdfm(x), ...) is\MessageBreak - able to create the virtual fonts on the fly}% - \MT@glet\MT@warn@tracking@DVI\relax - }% - \else - \def\MT@warn@tracking@DVI{% - \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi - \MT@glet\MT@warn@tracking@DVI\relax - }% - \fi -% \end{macrocode} -%\end{macro} -% \begin{macrocode} - \ifnum\MT@letterspace=\m@ne - \let\MT@letterspace\MT@letterspace@default - \else - \MT@ls@too@large\MT@letterspace - \fi - }% -% \end{macrocode} -% If \pdftex\ is too old, we disable tracking, spacing and kerning, -%\changes{v2.3a}{2008/02/16}{error messages if \pdftex\ is too old for extensions} -% and throw an error message. -% \begin{macrocode} -%<*package> -}{ - \MT@addto@setup{% - \ifMT@tracking - \MT@error{Tracking only works with pdftex version 1.40\MessageBreak - or newer. Switching it off}{Upgrade pdftex.}% - \else - \MT@info@nl{No tracking (pdftex too old)}% - \fi - \ifMT@spacing - \MT@error{Adjustment of interword spacing only works with\MessageBreak - pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}% - \else - \MT@info@nl{No adjustment of interword spacing (pdftex too old)}% - \fi - \ifMT@kerning - \MT@error{Character kerning only works with\MessageBreak - pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}% - \else - \MT@info@nl{No adjustment of character kerning (pdftex too old)}% - \fi - } -} -% \end{macrocode} -% \cs{DisableLigatures} is only admissible in the preamble, therefore we can -% now disable the corresponding macro, if it was never called. -%\changes{v2.0}{2006/12/14}{maybe disable \cs{MT@noligatures} after the preamble} -% \begin{macrocode} -\MT@requires@pdftex5{ - \MT@addto@setup{% - \ifMT@noligatures \else - \let\MT@noligatures\relax - \fi - } -}\relax -% \end{macrocode} -% Remove the leading comma in \cs{MT@active@features}, and set the -% document switch to true. -% \begin{macrocode} -\MT@addto@setup{% - \ifx\MT@active@features\@empty \else - \edef\MT@active@features{\expandafter\@gobble\MT@active@features}% - \fi - \MT@documenttrue -} -% \end{macrocode} -%\begin{macro}{\MT@set@babel@context} -% Interaction with \pkg{babel}. -% \begin{macrocode} -\def\MT@set@babel@context#1{% - \MT@ifdefined@n@TF{MT@babel@#1}{% - \MT@vinfo{*** Changing to language context `#1'\MessageBreak\on@line}% - \expandafter\MT@exp@one@n\expandafter\microtypecontext - \csname MT@babel@#1\endcsname - }{% - \microtypecontext{protrusion=,expansion=,spacing=,kerning=}% - }% -} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\MT@shorthandoff} -% Active characters can only be switched off if \pkg{babel} isn't loaded after -% \microtype. -% \begin{macrocode} -\@ifpackageloaded{babel}{ - \def\MT@shorthandoff#1#2{% - \MT@info@nl{Switching off #1 babel's active characters (#2)}% - \shorthandoff{#2}} -}{ - \def\MT@shorthandoff#1#2{% - \MT@error{You must load `babel' before `\MT@MT'} - {Otherwise, `\MT@MT' cannot switch off #1 babel's\MessageBreak - active characters.}} -} -% \end{macrocode} -%\end{macro} -% We patch the language switching commands to enable language-dependent setup. -% \begin{macrocode} -\MT@addto@setup{% - \ifMT@babel - \@ifpackageloaded{babel}{% - \MT@info@nl{Redefining babel's language switching commands}% - \let\MT@orig@select@language\select@language - \def\select@language#1{% - \MT@orig@select@language{#1}% - \MT@set@babel@context{#1}% - }% - \let\MT@orig@foreign@language\foreign@language - \def\foreign@language#1{% - \MT@orig@foreign@language{#1}% - \MT@set@babel@context{#1}% - }% - \ifMT@kerning -% \end{macrocode} -%\todo{make switching off of 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 -% \pkg{babel}'s shorthands properly -% (reported by \contributor Daniel Flipo )} -% ^^A private mail, 2006/10/09 -% \begin{macrocode} - \MT@if@false - \MT@with@babel@and@T{french} \MT@if@true - \MT@with@babel@and@T{frenchb} \MT@if@true - \MT@with@babel@and@T{francais}\MT@if@true - \MT@with@babel@and@T{canadien}\MT@if@true - \MT@with@babel@and@T{acadian} \MT@if@true - \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.3}{2007/10/03}{fix: really switch off Turkish shorthands} -% \begin{macrocode} - \MT@if@false - \MT@with@babel@and@T{turkish} \MT@if@true - \ifMT@if@\MT@shorthandoff{Turkish}{:!=}\fi - \fi -% \end{macrocode} -% In case \pkg{babel} was loaded before \microtype: -% \begin{macrocode} - \MT@set@babel@context\languagename - }{% - \MT@warning@nl{You did not load the babel package.\MessageBreak - The `babel' option won't have any effect}% - }% - \fi -} -% \end{macrocode} -% Now we close the \cs{fi} from \cs{ifMT@draft}. -% \begin{macrocode} -\MT@addto@setup{\fi -% \end{macrocode} -% Set up the current font, most likely the normal font. This has to come after -% all of the setup (including anything from the preamble) has been dealt with. -% \begin{macrocode} - \selectfont} -% \end{macrocode} -%\begin{macro}{\MT@curr@file} -% This is the current file (hopefully with the correct extension). -% \begin{macrocode} -\edef\MT@curr@file{\jobname.tex} -% \end{macrocode} -%\end{macro} -% Finally, execute the setup macro at the end of the preamble, and empty it -% (the \pkg{combine} class calls it repeatedly). -%\changes{v2.3d}{2009/02/05}{move setup to the very end -% (for \contributor Colin Rourke )} -% ^^A private mail, 2009/02/03 -% \begin{macrocode} -% -%\MT@requires@latex1{ -\AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty} -%}\relax -% \end{macrocode} -% Warning if \cmd\nonfrenchspacing\ is active, since space factors will be -% ignored with \cmd\pdfadjustinterwordglue\,|>|\,0. Why 1500? Because some -% packages redefine \cmd\frenchspacing.\footnote{ -% Cf. the \texttt{c.t.t.} thread `\cmd\frenchspacing\ with packages -% and babel', started by Philipp Lehman on 16~August 2005, -% :~\nolinkurl{ddtbaj$rob$1@online.de}} -% This has to be checked after the setup has taken place. There still will be a -% false warning if \pkg{babel} is loaded after \microtype\ (without the -% \opt{babel} option). -% \begin{macrocode} -%<*package> -\MT@requires@pdftex6{ - \AtBeginDocument{% - \ifMT@spacing - \ifMT@babel \else - \ifnum\sfcode`\. > 1500 - \MT@ifstreq\MT@sp@context{nonfrench}\relax{% - \MT@warning@nl{% - \string\nonfrenchspacing\space is active. Adjustment of\MessageBreak - interword spacing will disable it. You might want\MessageBreak - to add `\@backslashchar\MT@MT context{spacing=nonfrench}'\MessageBreak - to your preamble}% - }% - \fi - \fi - \fi - } -}\relax -% -% \end{macrocode} -% Restore catcodes. -% \begin{macrocode} -\MT@restore@catcodes -% \end{macrocode} -% That was that. -% \begin{macrocode} -% -% \end{macrocode} -% -% ^^A ------------------------------------------------------------------------- -%\NoIndexing ^^A from now on, don't bother indexing -% -%\section{Configuration files} -%\changes{v1.6}{2005/01/24}{restructure \file{dtx} file} -% -% Let's now write the font configuration files. -% \begin{macrocode} -%<*config> - -% \end{macrocode} -%\subsection{Font sets} -%\GeneralChanges{Font sets} -% -% We first declare some sets in the main configuration file. -% -% \begin{macrocode} -%<*m-t> -%%% ----------------------------------------------------------------------- -%%% FONT SETS - -\DeclareMicrotypeSet{all} - { } - -% \end{macrocode} -%\changes{v1.2}{2004/10/02}{new: \texttt{allmath} and \texttt{basicmath}} -%\changes{v1.8}{2005/05/25}{add encoding to \texttt{allmath}} -%\changes{v1.9}{2005/08/17}{add encoding to text sets} -%\changes{v1.9}{2005/08/17}{add encoding to text sets} -%\changes{v1.9d}{2006/04/20}{add encoding to text sets} -%\changes{v2.3e}{2009/10/28}{add encoding} -% \begin{macrocode} -\DeclareMicrotypeSet{allmath} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,OML,OMS,U} } - -\DeclareMicrotypeSet{alltext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} } - -% \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,OML,OMS}, - family = {rm*,sf*}, - series = {md*}, - size = {normalsize,footnotesize,small,large} - } - -\DeclareMicrotypeSet{basictext} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5}, - family = {rm*,sf*}, - series = {md*}, - size = {normalsize,footnotesize,small,large} - } - -% \end{macrocode} -%\changes{v2.0}{2006/12/28}{add \texttt{smallcaps} set} -%\changes{v2.3e}{2009/06/01}{\texttt{sc*} instead of \texttt{sc} in \texttt{smallcaps} set} -% \begin{macrocode} -\DeclareMicrotypeSet{smallcaps} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1}, - shape = {sc*} - } - -% \end{macrocode} -%\changes{v2.0}{2006/12/21}{add \texttt{footnotesize} and \texttt{scriptsize} sets} -% \begin{macrocode} -\DeclareMicrotypeSet{footnotesize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1}, - size = {-small} - } - -\DeclareMicrotypeSet{scriptsize} - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1}, - size = {-footnotesize} - } - -\DeclareMicrotypeSet{normalfont} - { font = */*/*/*/* } - -% \end{macrocode} -% The default sets. -%\changes{v2.2}{2007/04/15}{default set for tracking: \texttt{smallcaps}} -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% DEFAULT SETS - -\DeclareMicrotypeSetDefault[protrusion]{alltext} -\DeclareMicrotypeSetDefault[expansion] {basictext} -\DeclareMicrotypeSetDefault[spacing] {basictext} -\DeclareMicrotypeSetDefault[kerning] {alltext} -\DeclareMicrotypeSetDefault[tracking] {smallcaps} - -% \end{macrocode} -% -%\subsection{Font variants and aliases} -% -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% FONT VARIANTS AND ALIASES - -% \end{macrocode} -% These are the variants I happen to be using (expert encoding, oldstyle -% numerals, swashes, alternative, display, inferior and superior numerals): -% \begin{macrocode} -\DeclareMicrotypeVariants{x,j,w,a,d,0,1} - -% \end{macrocode} -% Other candidates: |2|~(proportional digits), |e|~(engraved), |f|~(Fraktur), -% |g|~(small text), |h|~(shadow), |l|~(outline), |n|~(informal), -% |p|~(ornaments), |r|~(roman), |s|~(sans serif), |t|~(typewriter). -% I've omitted them since they seem hardly be used and/or they are actually -% more than a variant, \ie, they shouldn't share a file. -% -%\bigskip\noindent -% Fonts that are `the same': The Latin Modern fonts, the virtual fonts from the -% \pkg{ae} and \pkg{zefonts}, and the \pkg{eco} and \pkg{hfoldsty} packages -% (oldstyle numerals) all inherit the (basic) settings from Computer Modern -% Roman. Some of them are in part overwritten later. -%\changes{v1.2}{2004/10/03}{declare \texttt{cmor} as an alias of \texttt{cmr}} -%\changes{v1.3}{2004/10/22}{declare \texttt{aer}, \texttt{zer} and \texttt{hfor} -% as aliases of \texttt{cmr}} -% \begin{macrocode} -\DeclareMicrotypeAlias{lmr} {cmr} % lmodern -\DeclareMicrotypeAlias{aer} {cmr} % ae -\DeclareMicrotypeAlias{zer} {cmr} % zefonts -\DeclareMicrotypeAlias{cmor}{cmr} % eco -\DeclareMicrotypeAlias{hfor}{cmr} % hfoldsty -% \end{macrocode} -% The packages \pkg{pxfonts} and \pkg{txfonts} fonts inherit Palatino and Times -% settings respectively, -%\changes{v1.8}{2005/04/19}{declare \texttt{pxr} and \texttt{txr} -% as aliases of \texttt{ppl} resp. \texttt{ptm}} -% also the \TeX\ Gyre fonts Pagella and Termes (formerly: \pkg{qfonts}). -%\changes{v1.9}{2005/08/16}{declare \texttt{qpl} and \texttt{qtm} (\pkg{qfonts}, \TeX\ Gyre) -% as aliases of \texttt{ppl} resp. \texttt{ptm}} -% \begin{macrocode} -\DeclareMicrotypeAlias{pxr} {ppl} % pxfonts -\DeclareMicrotypeAlias{qpl} {ppl} % TeX Gyre Pagella (formerly: qfonts/QuasiPalatino) -% \end{macrocode} -% The ` Neu' fonts, a `re-implementation' of Palatino. -%\changes{v2.2}{2007/05/27}{declare Neu as an alias of Palatino} -% \begin{macrocode} -\DeclareMicrotypeAlias{fp9x}{pplx} % FPL Neu -\DeclareMicrotypeAlias{fp9j}{pplj} % " -\DeclareMicrotypeAlias{txr} {ptm} % txfonts -\DeclareMicrotypeAlias{qtm} {ptm} % TeX Gyre Termes (formerly: qfonts/QuasiTimes) -% \end{macrocode} -%\todo{check Times variants} -% More Times variants, to be checked: |pns|, |mns| (TimesNewRomanPS); |mnt| -% (Times\-NewRomanMT, TimesNRSevenMT), |mtm| (TimesSmallTextMT); |pte| -% (TimesEuropa); |ptt| (TimesTen); TimesEighteen; TimesModernEF. -% -% The \pkg{eulervm} package virtually extends the Euler fonts. -%\changes{v1.9e}{2006/07/28}{declare \texttt{zeur} and \texttt{zeus} (\pkg{eulervm}) -% as aliases of \texttt{eur} resp. \texttt{eus} (\pkg{euler})} -% \begin{macrocode} -\DeclareMicrotypeAlias{zeur}{eur} % Euler VM -\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 -% (reported by \contributor Geoff Vallis )} -% ^^A private mail, 2007/06/07 -% \begin{macrocode} -\DeclareMicrotypeAlias{chr} {bch} % CH Math -% \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} -% and Garamond. -% \begin{macrocode} -\DeclareMicrotypeAlias{mdbch}{bch} % mathdesign/Charter -\DeclareMicrotypeAlias{mdugm}{ugm} % mathdesign/URW Garamond -% \end{macrocode} -% Letter Gothic is similar enough to Bitstream Letter Gothic to share the -% configuration. -% \begin{macrocode} -\DeclareMicrotypeAlias{ulg} {blg} % URW LetterGothic -> Bitstream LetterGothic12Pitch -% \end{macrocode} -% Euro symbol fonts, to save some files. -% \begin{macrocode} -\DeclareMicrotypeAlias{zpeus} {zpeu} % Adobe Euro sans -> serif -\DeclareMicrotypeAlias{eurosans}{zpeu} % Adobe Euro sans -> serif -\DeclareMicrotypeAlias{euroitcs}{euroitc} % ITC Euro sans -> serif - -% \end{macrocode} -% -%\subsection{Interaction with \pkg{babel}} -% -% Contexts that are to be set when switching to a language. -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% INTERACTION WITH THE `babel' PACKAGE - -\DeclareMicrotypeBabelHook - {english,UKenglish,british,USenglish,american} - {kerning=, spacing=nonfrench} - -\DeclareMicrotypeBabelHook - {french,francais,acadian,canadien} - {kerning=french, spacing=} - -\DeclareMicrotypeBabelHook - {turkish} - {kerning=turkish, spacing=} - -% \end{macrocode} -%\GeneralChanges* -% -% \subsection{Note on admissible characters} -% -% All printable characters are allowed in the settings, with the -% following exceptions (on the left hand side, the replacements on the right): -% -%\begin{tabbing} -% |\|\quad\=:\quad\=\cmd\textbackslash \\ -% |{| \>:\> \cmd\textbraceleft \\ -% |}| \>:\> \cmd\textbraceright \\ -% |^| \>:\> \cmd\textasciicircum \\ -% |%| \>:\> \cmd\% \\ -% |#| \>:\> \cmd\# -%\end{tabbing} -% -%\noindent -% Comma and equal sign must be guarded with braces (`|{,}|', `|{=}|') to keep -% \pkg{keyval} happy. -% -% Character commands are allowed as far as they have been defined in the proper -% \LaTeX\ way, that is, when they have been assigned a slot in the font -% encoding with \cmd\DeclareTextSymbol\ or \cmd\DeclareTextComposite. -% Characters defined via \cmd\chardef\ are also possible. -% -% Ligatures and \cmd\mathchardef ed symbols have to be specified numerically. -% Of course, numerical identification is possible in any other case, too. -% -%\changes{v1.1}{2004/09/14}{remove 8-bit characters from the configuration files -% (suggested by \contributor Harald Harders )} -% ^^A private mail, 2004/09/13 -% 8-bit characters are also admissible, provided they have been declared in the -% input encoding file. They should, however, only be used in private -% configuration files, where the proper input encoding is guaranteed, or else in -% combination with the `|inputenc|' key. -% -%\subsection{Character inheritance} -%\GeneralChanges{Inheritance} -% -% First the lists of inheriting characters. We only declare those characters -% that are the same on \emph{both} sides, \ie, not \OE\ for O. -% \begin{macrocode} -% -%<*m-t|zpeu|mvs> -%%% ----------------------------------------------------------------------- -%%% CHARACTER INHERITANCE - -% -%<*m-t> -% \end{macrocode} -% -%\subsubsection{} -% Glyphs that should possibly inherit settings on one side only: -% |012|~(`fi' ligature), |013|~(`fl'), |014|~(`ffi'), |015|~(`ffl'), -% \AE, \ae, \OE, \oe. -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = OT1 } - { f = {011}, % ff - i = {\i}, - j = {\j}, - O = {\O}, - o = {\o} - } - -% \end{macrocode} -% -%\subsubsection{} -% Candidates here: |028|~(`fi'), |029|~(`fl'), |030|~(`ffi'), |031|~(`ffl'), -% |156| (`\IJ'~ligature, since \LaTeX\ 2005/12/01 accessible as |\IJ|), -% |188|~(`\ij', |\ij|), \AE, \ae, \OE, \oe. -%\changes{v1.5}{2004/12/11}{remove \cmd\ss\ from list, add \cmd\DJ} -%\changes{v1.8}{2005/04/26}{remove \cmd\DJ\ from list (it's the same as \cmd\DH)} -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = T1 } - { 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}, - c = {\'c,\c c,\v c}, - D = {\v D,\DH}, - d = {\v d,\dj}, - E = {\`E,\'E,\^E,\"E,\k E,\v E}, - e = {\`e,\'e,\^e,\"e,\k e,\v e}, - f = {027}, % ff - G = {\u G}, - g = {\u g}, - I = {\`I,\'I,\^I,\"I,\.I}, - i = {\`i,\'i,\^i,\"i,\i}, - j = {\j}, - L = {\L,\'L,\v L}, - l = {\l,\'l,\v l}, - N = {\'N,\~N,\v N}, - n = {\'n,\~n,\v n}, - O = {\O,\`O,\'O,\^O,\~O,\"O,\H O}, - o = {\o,\`o,\'o,\^o,\~o,\"o,\H o}, - R = {\'R,\v R}, - r = {\'r,\v r}, - S = {\'S,\c S,\v S,\SS}, - s = {\'s,\c s,\v s}, - T = {\c T,\v T}, - t = {\c t,\v t}, - U = {\`U,\'U,\^U,\"U,\H U,\r U}, - u = {\`u,\'u,\^u,\"u,\H u,\r u}, - Y = {\'Y,\"Y}, - y = {\'y,\"y}, - Z = {\'Z,\.Z,\v Z}, - z = {\'z,\.z,\v z} -% \end{macrocode} -%\changes{v2.2}{2007/02/04}{remove `\texttt{-}' $\rightarrow$ `\texttt{127}'} -% The `soft hyphen' often has reduced right side bearing so that it may already -% be protruded, hence no inheritance. -% \begin{macrocode} -% - = {127}, - } - -% \end{macrocode} -% -%\subsubsection{} -% More characters: |008|~(`fl'), |012|~(`fi'), |014|~(`ffi'), |015|~(`ffl'), -% \AE, \ae, \OE, \oe. -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = LY1 } - { A = {\`A,\'A,\^A,\~A,\"A,\r A}, - a = {\`a,\'a,\^a,\~a,\"a,\r a}, - C = {\c C}, - c = {\c c}, - D = {\DH}, - E = {\`E,\'E,\^E,\"E}, - e = {\`e,\'e,\^e,\"e}, - f = {011}, % ff - I = {\`I,\'I,\^I,\"I}, - i = {\`i,\'i,\^i,\"i,\i}, - L = {\L}, - l = {\l}, - N = {\~N}, - n = {\~n}, - O = {\`O,\'O,\^O,\~O,\"O,\O}, - o = {\`o,\'o,\^o,\~o,\"o,\o}, - S = {\v S}, - s = {\v s}, - U = {\`U,\'U,\^U,\"U}, - u = {\`u,\'u,\^u,\"u}, - Y = {\'Y,\"Y}, - y = {\'y,\"y}, - Z = {\v Z}, - z = {\v z} - } - -% \end{macrocode} -% -%\subsubsection{} -%\changes{v1.9}{2005/08/16}{add list for } -% The Polish extension. More interesting characters here: -% |009|~(`fk'), |012|~(`fi'), |013|~(`fl'), |014|~(`ffi'), |015|~(`ffl'), -% \AE, \ae, \OE, \oe. -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = OT4 } - { A = {\k A}, - a = {\k a}, - C = {\'C}, - c = {\'c}, - E = {\k E}, - e = {\k e}, - f = {011}, % ff - i = {\i}, - j = {\j}, - L = {\L}, - l = {\l}, - N = {\'N}, - n = {\'n}, - O = {\O,\'O}, - o = {\o,\'o}, - S = {\'S}, - s = {\'s}, - Z = {\'Z,\.Z}, - z = {\'z,\.z} - } - -% \end{macrocode} -% -%\subsubsection{} -%\changes{v1.9d}{2006/04/20}{add list for encoding (contributed by -% \contributor Maciej Eder )} -% ^^A private mail, 2006/04/19 -% The Central European encoding.\footnote{ -% Contributed by \contributor Maciej Eder .} -% Ligatures: |009|~(`fk'), |012|~(`fi'), |013|~(`fl'), |014|~(`ffi'), -% |015|~(`ffl'), \AE, \ae, \OE, \oe. -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = QX } - { A = {\`A,\'A,\^A,\~A,\"A,\k A,\AA}, - a = {\`a,\'a,\^a,\~a,\"a,\k a,\aa}, - C = {\'C,\c C}, - c = {\'c,\c c}, - D = {\DH}, - E = {\`E,\'E,\^E,\"E,\k E}, - e = {\`e,\'e,\^e,\"e,\k e}, - f = {011}, % ff - I = {\`I,\'I,\^I,\"I,\k I}, - i = {\`i,\'i,\^i,\"i,\k i,\i}, - j = {\j}, - L = {\L}, - l = {\l}, - N = {\'N,\~N}, - n = {\'n,\~n}, - O = {\O,\`O,\'O,\^O,\~O,\"O}, - o = {\o,\`o,\'o,\^o,\~o,\"o}, -% \end{macrocode} -%\changes{v2.3c}{2008/09/01}{add \cmd\textcommabelow[\texttt{STst}] to encoding -% (reported by \contributor Vasile Gaburici )} -% ^^A private mail, 2008/09/01, and -% ^^A http://tug.org/pipermail/tex-live/2008-September/017385.html -% The Rumanian \cmd\textcommabelow\ accents are actually replacements for the -% \cmd\c\ variants, which had previously (and erroneously\footnote{ -% Cf. \url{http://tug.org/pipermail/tex-live/2008-August/017204.html}}) -% been included in encoding. They are still kept for backwards -% compatibility. -%\iffalse -% If \cmd\textcommabelow\ is undefined, it will be silently ignored. -% This is due to a quirk in \cs{\MT@map@clist@}. -%\todo{fix \cs{\MT@map@clist@}?} -%\fi -% \begin{macrocode} - S = {\'S,\c S,\textcommabelow S,\v S}, - s = {\'s,\c s,\textcommabelow s,\v s}, - T = {\c T,\textcommabelow T}, - t = {\c t,\textcommabelow t}, - U = {\`U,\'U,\^U,\"U,\k U}, - u = {\`u,\'u,\^u,\"u,\k u}, - Y = {\'Y,\"Y}, - y = {\'y,\"y}, - Z = {\'Z,\.Z,\v Z}, - z = {\'z,\.z,\v z}, - . = \textellipsis - } - -% \end{macrocode} -% -%\subsubsection{} -%\changes{v1.9}{2005/08/17}{add list for (requested by -% \contributor \thanh{} )} -% ^^A private email, 2005/08/16 -% The Vietnamese encoding . It is so crowded with accented and double-accented -% characters that there is no room for any ligatures. -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = T5 } - { A = {\`A,\'A,\~A,\h A,\d A,\^A,\u A, - \`\Acircumflex,\'\Acircumflex,\~\Acircumflex,\h\Acircumflex,\d\Acircumflex, - \`\Abreve,\'\Abreve,\~\Abreve,\h\Abreve,\d\Abreve}, - a = {\`a,\'a,\~a,\h a,\d a,\^a,\u a, - \`\acircumflex,\'\acircumflex,\~\acircumflex,\h\acircumflex,\d\acircumflex, - \`\abreve,\'\abreve,\~\abreve,\h\abreve,\d\abreve}, - D = {\DJ}, - d = {\dj}, - E = {\`E,\'E,\~E,\h E,\d E,\^E, - \`\Ecircumflex,\'\Ecircumflex,\~\Ecircumflex,\h\Ecircumflex,\d\Ecircumflex}, - e = {\`e,\'e,\~e,\h e,\d e,\^e, - \`\ecircumflex,\'\ecircumflex,\~\ecircumflex,\h\ecircumflex,\d\ecircumflex}, - I = {\`I,\'I,\~I,\h I,\d I}, - i = {\`i,\'i,\~i,\h i,\d i,\i}, - O = {\`O,\'O,\~O,\h O,\d O,\^O,\horn O, - \`\Ocircumflex,\'\Ocircumflex,\~\Ocircumflex,\h\Ocircumflex,\d\Ocircumflex, - \`\Ohorn,\'\Ohorn,\~\Ohorn,\h\Ohorn,\d\Ohorn}, - o = {\`o,\'o,\~o,\h o,\d o,\^o,\horn o, - \`\ocircumflex,\'\ocircumflex,\~\ocircumflex,\h\ocircumflex,\d\ocircumflex, - \`\ohorn,\'\ohorn,\~\ohorn,\h\ohorn,\d\ohorn}, - U = {\`U,\'U,\~U,\h U,\d U,\horn U, - \`\Uhorn,\'\Uhorn,\~\Uhorn,\h\Uhorn,\d\Uhorn}, - u = {\`u,\'u,\~u,\h u,\d u,\horn u, - \`\uhorn,\'\uhorn,\~\uhorn,\h\uhorn,\d\uhorn}, - Y = {\`Y,\'Y,\~Y,\h Y,\d Y}, - y = {\`y,\'y,\~y,\h y,\d y} - } - -% -% \end{macrocode} -% -%\subsubsection{Euro symbols} -% Make Euro symbols settings simpler. -% \begin{macrocode} -%<*zpeu> -\DeclareCharacterInheritance - { encoding = U, - family = {zpeu,zpeus,eurosans} } - { E = 128 } - -% -%<*mvs> -\DeclareCharacterInheritance - { encoding = OT1, - family = mvs } - { 164 = {099,100,101} } % \EURhv,\EURcr,\EURtm - -% \end{macrocode} -% Since 2006/05/11 (that is, one week after I've added these settings, after the -% package had been dormant for six years), \pkg{marvosym}'s encoding is -% (correctly) instead of . -%\changes{v1.9e}{2006/07/05}{adapt to \pkg{marvosym}'s changed encoding} -% \begin{macrocode} -\DeclareCharacterInheritance - { encoding = U, - family = mvs } - { 164 = {099,100,101} } - -% -% \end{macrocode} -% -%\subsection{Tracking} -%\GeneralChanges{Tracking} -% -%\changes{v2.2}{2007/02/23}{add ligatures that are to be disabled} -% 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. -% \begin{macrocode} -%<*m-t> -%%% ----------------------------------------------------------------------- -%%% TRACKING/LETTERSPACING - -\SetTracking - [ name = default, - no ligatures = {f} ] - { encoding = {OT1,T1,T2A,LY1,OT4,QX} } - { } - -% \end{macrocode} -% -%\subsection{Font expansion} -%\GeneralChanges{Expansion} -% -% These are \thanh's original expansion settings. They are used for all fonts -% (until somebody shows mercy and creates font-specific settings). -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% EXPANSION - -\SetExpansion - [ name = default ] - { encoding = {OT1,OT4,QX,T1,LY1} } - { - A = 500, a = 700, - \AE = 500, \ae = 700, - B = 700, b = 700, - C = 700, c = 700, - D = 500, d = 700, - E = 700, e = 700, - F = 700, - G = 500, g = 700, - H = 700, h = 700, - K = 700, k = 700, - M = 700, m = 700, - N = 700, n = 700, - O = 500, o = 700, - \OE = 500, \oe = 700, - P = 700, p = 700, - Q = 500, q = 700, - R = 700, - S = 700, s = 700, - U = 700, u = 700, - W = 700, w = 700, - Z = 700, z = 700, - 2 = 700, - 3 = 700, - 6 = 700, - 8 = 700, - 9 = 700 - } - -% \end{macrocode} -% Settings for Cyrillic encoding.\footnote{Contributed by -% \contributor Karl Karlsson .} -%\changes{v2.3e}{2009/10/28}{settings for encoding -% (contributed by \contributor Karl Karlsson )} -% \begin{macrocode} -\SetExpansion - [ name = T2A ] - { encoding = T2A } - { - A = 500, a = 700, - B = 700, b = 700, - C = 700, c = 700, - D = 500, d = 700, - E = 700, e = 700, - F = 700, - G = 500, g = 700, - H = 700, h = 700, - K = 700, k = 700, - M = 700, m = 700, - N = 700, n = 700, - O = 500, o = 700, - P = 700, p = 700, - Q = 500, q = 700, - R = 700, - S = 700, s = 700, - U = 700, u = 700, - W = 700, w = 700, - Z = 700, z = 700, - 2 = 700, - 3 = 700, - 6 = 700, - 8 = 700, - 9 = 700, - \CYRA = 500, \cyra = 700, - \CYRB = 700, \cyrb = 700, - \CYRV = 700, \cyrv = 700, - \CYRG = 700, \cyrg = 700, - \CYRD = 700, \cyrd = 700, - \CYRE = 700, \cyre = 700, - \CYRZH = 700, \cyrzh = 700, - \CYRZ = 700, \cyrz = 700, - \CYRI = 700, \cyri = 700, - \CYRISHRT = 700, \cyrishrt = 700, - \CYRK = 700, \cyrk = 700, - \CYRL = 700, \cyrl = 700, - \CYRM = 700, \cyrm = 700, - \CYRN = 700, \cyrn = 700, - \CYRO = 500, \cyro = 700, - \CYRP = 700, \cyrp = 700, - \CYRR = 700, \cyrr = 700, - \CYRS = 700, \cyrs = 700, - \CYRT = 700, \cyrt = 700, - \CYRU = 700, \cyru = 700, - \CYRF = 700, \cyrf = 700, - \CYRH = 700, \cyrh = 700, - \CYRC = 700, \cyrc = 700, - \CYRCH = 700, \cyrch = 700, - \CYRSH = 700, \cyrsh = 700, - \CYRSHCH = 700, \cyrshch = 700, - \CYRHRDSN = 700, \cyrhrdsn = 700, - \CYRERY = 700, \cyrery = 700, - \CYRSFTSN = 700, \cyrsftsn = 700, - \CYREREV = 700, \cyrerev = 700, - \CYRYU = 700, \cyryu = 700, - \CYRYA = 700, \cyrya = 700 - } - -% \end{macrocode} -% encoding does not contain \cmd\AE, \cmd\ae, \cmd\OE\ and \cmd\oe. -% \begin{macrocode} -\SetExpansion - [ name = T5 ] - { encoding = T5 } - { - A = 500, a = 700, - B = 700, b = 700, - C = 700, c = 700, - D = 500, d = 700, - E = 700, e = 700, - F = 700, - G = 500, g = 700, - H = 700, h = 700, - K = 700, k = 700, - M = 700, m = 700, - N = 700, n = 700, - O = 500, o = 700, - P = 700, p = 700, - Q = 500, q = 700, - R = 700, - S = 700, s = 700, - U = 700, u = 700, - W = 700, w = 700, - Z = 700, z = 700, - 2 = 700, - 3 = 700, - 6 = 700, - 8 = 700, - 9 = 700 - } - -% -% \end{macrocode} -% -%\subsection{Character protrusion} -%\GeneralChanges{Protrusion} -% -%\changes{v1.1}{2004/09/14}{add factors for some more characters} -%\changes{v1.4b}{2004/11/19}{harmonise dashes in upshape and italic -% (\texttt{cmr}, \texttt{pad}, \texttt{ppl})} -%\changes{v1.9}{2005/08/16}{settings for encoding (Computer Modern Roman, -% Palatino, Times)} -%\changes{v1.9}{2005/08/17}{settings for encoded Computer Modern Roman} -%\changes{v1.9a}{2005/12/02}{settings for encoded Charter} -% -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% PROTRUSION - -% \end{macrocode} -% For future historians, \thanh's original settings (from \file{protcode.tex}, -% converted to \microtype\ notation). -%\begin{verbatim} -%\SetProtrusion -% [ name = thanh ] -% { encoding = OT1 } -% { -% A = {50,50}, -% F = { ,50}, -% J = {50, }, -% K = { ,50}, -% L = { ,50}, -% T = {50,50}, -% V = {50,50}, -% W = {50,50}, -% X = {50,50}, -% Y = {50,50}, -% k = { ,50}, -% r = { ,50}, -% t = { ,50}, -% v = {50,50}, -% w = {50,50}, -% x = {50,50}, -% y = {50,50}, -% . = { ,700}, {,}= { ,700}, -% : = { ,500}, ; = { ,500}, -% ! = { ,200}, ? = { ,200}, -% ( = {50, }, ) = { ,50}, -% - = { ,700}, -% \textendash = { ,300}, \textemdash = { ,200}, -% \textquoteleft = {700, }, \textquoteright = { ,700}, -% \textquotedblleft = {500, }, \textquotedblright = { ,500} -% } -%\end{verbatim} -% -%\subsubsection{Normal} -% -% The default settings always use the most moderate value. -% -% \begin{macrocode} -%<*cfg-t> -\SetProtrusion -% [ name = default ] -% \end{macrocode} -% We also create configuration files for the fonts -%\begin{itemize} -% \item Bitstream Charter ( code |bch|) -%\changes{v1.5}{2004/11/28}{settings for Bitstream Charter} -% \begin{macrocode} -% [ name = bch-default ] -% \end{macrocode} -% \item Bitstream Letter Gothic (|blg|) -%\changes{v2.2}{2007/03/03}{settings for Bitstream Letter Gothic} -% \begin{macrocode} -% [ name = blg-default ] -% \end{macrocode} -% \item Computer Modern Roman (|cmr|) -% \begin{macrocode} -% [ name = cmr-default ] -% \end{macrocode} -% \item Adobe Garamond (|pad|, |padx|, |padj|) -% \begin{macrocode} -% [ name = pad-default ] -% \end{macrocode} -% \item Minion\footnote{Contributed by \contributor Harald Harders -% and \contributor Karl Karlsson .} -% (|pmnx|, |pmnj|) -%\changes{v1.1}{2004/09/14}{settings for Adobe Minion (contributed by -% \contributor Harald Harders )} -% ^^A private mail, 2004/09/14 -% \begin{macrocode} -% [ name = pmnj-default ] -% \end{macrocode} -% \item Palatino (|ppl|, |pplx|, |pplj|) -% \begin{macrocode} -% [ name = ppl-default ] -% \end{macrocode} -% \item Times (|ptm|, |ptmx|, |ptmj|) -% \begin{macrocode} -% [ name = ptm-default ] -% \end{macrocode} -% \item Garamond (|ugm|) -%\changes{v1.9c}{2006/01/26}{settings for Garamond} -%\end{itemize} -% \begin{macrocode} -% [ name = ugm-default ] -% { } -% { encoding = OT1, -% { encoding = {OT1,OT4}, -% family = bch } -% family = blg } -% family = {pad,padx,padj} } -% family = {ppl,pplx,pplj} } -% family = {ptm,ptmx,ptmj} } -% family = ugm } - { -% A = {50,50}, -% A = {50,100}, -% \AE = {50, }, -% \AE = {150,50}, -% B = { ,50}, -% C = {50, }, -% D = { ,50}, -% D = { ,70}, -% E = { ,50}, -% F = { ,50}, -% F = { ,70}, -% G = {50, }, -% G = {50,50}, -% I = {150,150}, -% J = {50, }, -% J = {100, }, -% K = { ,50}, -% K = {50, }, -% L = { ,50}, -% L = { ,150}, -% L = { ,80}, -% L = { ,120}, -% O = {50,50}, -% \OE = {50, }, -% \OE = {50,50}, -% P = { ,100}, -% P = { ,50}, -% Q = {50,70}, -% Q = {50,50}, -% R = { ,50}, -% R = { ,70}, -% T = {50,50}, -% T = {100,100}, -% T = {70,70}, -% V = {50,50}, -% V = {70,70}, -% W = {50,50}, -% W = {70,70}, -% X = {50,50}, -% X = {50,70}, -% Y = {50,50}, -% Y = {80,80}, -% Z = {50,50}, -% f = {150,100}, -% i = {150,150}, -% j = {100,100}, -% k = { ,50}, -% k = { ,70}, -% l = {150,150}, -% l = { ,-50}, -% p = {50,50}, -% p = { ,50}, -% q = {50, }, -% r = { ,50}, -% r = {100, 80}, -% t = { ,70}, -% t = { ,50}, -% t = {150, 80}, -% t = { ,100}, -% v = {50,50}, -% v = {100,100}, -% v = {50,70}, -% w = {50,50}, -% w = {50,70}, -% x = {50,50}, -% x = {100,100}, -% y = { ,50}, -% y = { 50,100}, -% y = {50,70}, -% y = { ,70}, -% \end{macrocode} -%\changes{v1.6}{2005/01/11}{improve settings for numbers -% (pointed out by \contributor Peter Muthesius )} -% ^^A MID: <34b1h7F48s44tU1@individual.net> -% \begin{macrocode} -% 0 = { ,50}, -% 1 = {50,50}, -% 1 = {150,150}, -% 1 = {100,200}, -% 1 = { ,50}, -% 1 = {100,100}, -% 2 = {50,50}, -% 2 = { ,100}, -% 3 = {50, }, -% 3 = {50,50}, -% 3 = {100, }, -% 4 = {50,50}, -% 4 = {100,50}, -% 4 = {100, }, -% 4 = {70,70}, -% 4 = {50, }, -% 4 = {70, }, -% 5 = { ,50}, -% 5 = {50,50}, -% 6 = {50, }, -% 6 = { ,50}, -% 6 = {50,50}, -% 7 = {50,50}, -% 7 = {50,80}, -% 7 = {100,100}, -% 7 = {50,100}, -% 7 = { ,50}, -% 8 = { ,50}, -% 9 = {50,50}, -% 9 = { ,50}, -% . = { ,700}, -% . = { ,600}, -% . = {400,500}, -% {,}= { ,500}, -% {,}= {300,400}, -% : = { ,500}, -% : = { ,400}, -% : = {300,400}, -% ; = { ,300}, -% ; = {200,300}, -% ; = { ,500}, -% ; = { ,400}, -% ! = { ,100}, -% ! = {200,200}, -% ? = { ,100}, -% ? = { ,200}, -% ? = {150,150}, -% " = {300,300}, -% @ = {50,50}, -% @ = {100,100}, -% ~ = {200,250}, -% ~ = {300,350}, -% & = {50,100}, -% & = { ,100}, -% \% = {50,50}, -% \% = { ,50}, -% \% = {100,100}, -% \% = {50,100}, -% \# = {100,100}, -% * = {200,200}, -% * = {200,300}, -% * = {150,200}, -% * = {300,300}, -% + = {250,250}, -% + = {150,250}, -% + = {300,300}, -% + = {150,200}, -% + = {250,300}, -% {=}= {200,200}, -% ( = {100, }, ) = { ,200}, -% ( = {200, }, ) = { ,200}, -% ( = {300, }, ) = { ,300}, -% ( = {100, }, ) = { ,300}, -% [ = {100, }, ] = { ,100}, -% [ = {300,100}, ] = { ,300}, -% \end{macrocode} -%\changes{v1.7}{2005/03/15}{fix: remove \textbackslash\ from , -% add \cmd\textbackslash\ to encoding} -% \begin{macrocode} -% / = {100,200}, -% / = { ,200}, -% / = {300,300}, -% / = {200,300}, -% / = {100,300}, -% - = {500,500}, -% - = {400,500}, -% - = {300,400}, -% - = {300,500}, -% - = {200,400}, -% - = {500,600}, -% < = {200,100}, > = {100,200}, -% _ = {150,250}, -% | = {250,250}, -% \textendash = {200,200}, \textemdash = {150,150}, -% \textendash = {200,300}, \textemdash = {150,250}, -% \textendash = {400,300}, \textemdash = {300,200}, -% \textendash = {300,300}, \textemdash = {200,200}, -% \textendash = {250,300}, \textemdash = {250,250}, -% \end{macrocode} -% Why settings for left \emph{and} right quotes? Because in some languages they -% might be used like that (see the \pkg{csquotes} package for examples). -% \begin{macrocode} -% \textquoteleft = {300,400}, \textquoteright = {300,400}, -% \textquoteleft = {400,600}, \textquoteright = {400,600}, -% \textquoteleft = {500,700}, \textquoteright = {500,600}, -% \textquoteleft = {500,700}, \textquoteright = {500,700}, -% \textquoteleft = {500,500}, \textquoteright = {300,500}, -% \textquoteleft = {300,600}, \textquoteright = {300,600}, -% \textquotedblleft = {300,300}, \textquotedblright = {300,300} -% \textquotedblright = {300,400} -% \textquotedblleft = {500,300}, \textquotedblright = {200,600} -% \textquotedblleft = {300,400}, \textquotedblright = {300,400} -% \textquotedblleft = {400,400}, \textquotedblright = {400,400} - } - -% \end{macrocode} -% Greek uppercase letters are in encoding only. -%\changes{v1.9}{2005/07/10}{fix: remove uppercase Greek letters from encoded } -% \begin{macrocode} -%<*m-t|cmr|pmn> -\SetProtrusion -% [ name = OT1-default, -% [ name = cmr-OT1, -% [ name = pmnj-OT1, -% load = default ] -% load = cmr-default ] -% load = pmnj-default ] -% { encoding = OT1 } -% { encoding = {OT1,OT4}, -% { encoding = OT1, -% family = cmr } -% family = pmnj } - { -% \AE = {50, }, -% \OE = {50, } -%<*cmr> - "00 = { ,150}, % \Gamma - "01 = {100,100}, % \Delta - "02 = { 50, 50}, % \Theta - "03 = {100,100}, % \Lambda - "06 = { 50, 50}, % \Sigma - "07 = {100,100}, % \Upsilon - "08 = { 50, 50}, % \Phi - "09 = { 50, 50} % \Psi -% \end{macrocode} -% Remaining slots can be found in the source file. -%\iffalse ^^A ... namely, here: -% "04 = { , }, % \Xi -% "05 = { , }, % \Pi -% "0A = { , }, % \Omega -%\fi -% \begin{macrocode} -% - } - -% -% \end{macrocode} -% and encodings contain some more characters. The default list -% will be loaded first. -%\changes{v1.9a}{2005/11/07}{fix: remove `\texttt{\_}' from encoding} -% \begin{macrocode} -\SetProtrusion -% [ name = T1-default, -% [ name = bch-T1, -% [ name = blg-T1, -% [ name = cmr-T1, -% [ name = pad-T1, -% [ name = pmnj-T1, -% [ name = ppl-T1, -% [ name = ptm-T1, -% [ name = ugm-T1, -% load = default ] -% load = bch-default ] -% load = blg-default ] -% load = cmr-default ] -% load = pad-default ] -% load = pmnj-default ] -% load = ppl-default ] -% load = ptm-default ] -% load = ugm-default ] -% { encoding = {T1,LY1} } -% { encoding = {T1,LY1}, -% { encoding = {T1}, -% family = bch } -% family = blg } -% family = cmr } -% family = {pad,padx,padj} } -% family = pmnj } -% family = {ppl,pplx,pplj} } -% family = {ptm,ptmx,ptmj} } -% family = ugm } - { -% \AE = {50, }, -% \OE = {50, }, -% \TH = { ,50}, -% \v L = { ,250}, -% \v d = { ,250}, -% \v l = { ,250}, -% \v t = { ,250}, -% 127 = {300,400}, -% 156 = {100, }, % IJ -% 188 = { 80, 80}, % ij -% _ = {100,100}, -% _ = {200,200}, -% _ = {100,200}, -% \textbackslash = {100,200}, -% \textbackslash = {150,200}, -% \textbackslash = {250,300}, -% \textbackslash = {200,300}, -% \textbackslash = {100,300}, -% \textbar = {200,200}, -% \textendash = {300,300}, \textemdash = {150,150}, -% \textquotedbl = {300,400}, \textquotedblleft = {300,400}, -% \textquotedbl = {300,300}, \textquotedblleft = {200,600}, -% \end{macrocode} -%\changes{v1.4}{2004/10/30}{tweak quote characters for \texttt{cmr} -% variants (, , \texttt{lmr})} -% The fonts do something weird: they insert an implicit kern between quote -% and boundary character. Therefore, we must override the settings from . -% \begin{macrocode} -% \quotesinglbase = {400,400}, \quotedblbase = {400,400}, -% \quotesinglbase = {400,400}, \quotedblbase = {300,400}, -% \quotesinglbase = {400,400}, \quotedblbase = {300,300}, -% \guilsinglleft = {400,300}, \guilsinglright = {300,400}, -% \guilsinglleft = {300,500}, \guilsinglright = {300,500}, -% \guilsinglleft = {400,400}, \guilsinglright = {300,500}, -% \guilsinglleft = {400,400}, \guilsinglright = {300,600}, -% \guillemotleft = {200,200}, \guillemotright = {200,200}, -% \guillemotleft = {300,200}, \guillemotright = {100,400}, -% \guillemotleft = {200,200}, \guillemotright = {150,300}, -% \guillemotleft = {300,300}, \guillemotright = {200,400}, -% \guillemotleft = {300,400}, \guillemotright = {300,400}, -% \textexclamdown = {100, }, \textquestiondown = {100, }, -% \textexclamdown = {200, }, \textquestiondown = {100, }, -% \textexclamdown = {200, }, \textquestiondown = {200, }, -% \textbraceleft = {400,200}, \textbraceright = {200,400}, -% \textbraceleft = {200, }, \textbraceright = { ,300}, -% \textless = {200,100}, \textgreater = {100,200} -% \textless = {100, }, \textgreater = { ,100}, -% \textvisiblespace = {100,100} % not in LY1 -% \end{macrocode} -%\iffalse -% \dh = { , }, -% \th = { , }, -% \NG = { , }, -% \ng = { , }, -% \textasciicircum = { , }, -% \textsterling = { , }, % also in TS1 -% \textsection = { , }, % also in TS1 -%\fi -% \begin{macrocode} - } - -% \end{macrocode} -% The \pkg{lmodern} fonts used to restore the original settings from -% fonts. Now, they require even other settings, though. -%\changes{v2.3a}{2008/02/19}{adjust quotation marks again} -% \begin{macrocode} -%<*cmr> -\SetProtrusion - [ name = lmr-T1, - load = cmr-T1 ] - { encoding = {T1,LY1}, - family = lmr } - { - \textquotedblleft = {300,400}, \textquotedblright = {300,400} - } - -% -% \end{macrocode} -% Settings for the encoding (generic, Computer Modern Roman, and Minion).\footnote{Contributed by -% \contributor Karl Karlsson .} -%\changes{v2.3e}{2009/10/28}{settings for encoding (contributed by -% \contributor Karl Karlsson )} -% ^^A private mail, 2009/10/21 -%\changes{v2.4}{2009/11/15}{settings for encoded Minion (contributed by -% \contributor Karl Karlsson )} -% ^^A private mail, 2009/11/14 -% \begin{macrocode} -%<*m-t|cmr|pmn> -\SetProtrusion -% [ name = T2A-default, -% [ name = cmr-T2A, -% [ name = pmnj-T2A, -% load = default ] -% load = cmr-default ] -% load = pmnj-default ] - { encoding = T2A, -% } -% family = cmr } -% family = pmnj } - { - \CYRA = {50,50}, - \CYRG = { ,50}, - \CYRK = { ,50}, - \CYRT = {50,50}, - \CYRH = {50,50}, - \CYRU = {50,50}, -% \CYRS = {50, }, -% \CYRO = {50,50}, - \cyrk = { ,50}, - \cyrg = { ,50}, - \cyrh = {50,50}, -% \cyru = {50,50}, -% \cyru = {50,70}, -% _ = {100,100}, -% _ = {200,200}, -% \textbackslash = {100,200}, \quotedblbase = {400,400}, -% \textbackslash = {200,300}, \quotedblbase = {400,400}, -% \textbackslash = {100,200}, \quotedblbase = {300,300}, -% \textquotedbl = {300,300}, \textquotedblleft = {200,600}, -% \guillemotleft = {200,200}, \guillemotright = {200,200}, -% \guillemotleft = {300,200}, \guillemotright = {100,400}, -% \guillemotleft = {200,200}, \guillemotright = {150,300}, -% \textbraceleft = {400,200}, \textbraceright = {200,400}, -% \textbraceleft = {200, }, \textbraceright = { ,300}, -% \textless = {200,100}, \textgreater = {100,200} -% \textless = {100, }, \textgreater = { ,100} - } - -% -% \end{macrocode} -% Settings for the encoding (generic and Times).\footnote{Contributed by -% \contributor Maciej Eder .} -%\changes{v1.9d}{2006/04/20}{settings for encoding (contributed by -% \contributor Maciej Eder )} -% ^^A private mail, 2006/04/19 -% It also includes some glyphs otherwise in . -% \begin{macrocode} -%<*m-t|ptm> -\SetProtrusion -% [ name = QX-default, -% [ name = ptm-QX, -% load = default ] -% load = ptm-default ] -% { encoding = QX } -% { encoding = QX, -% family = {ptm,ptmx,ptmj} } - { - \AE = {50, }, -% * = {200,200}, - {=} = {100,100}, - \textunderscore = {100,100}, - \textbackslash = {100,200}, - \quotedblbase = {400,400}, -% \guillemotleft = {200,200}, \guillemotright = {200,200}, -% \guillemotleft = {300,300}, \guillemotright = {200,400}, - \textexclamdown = {100, }, \textquestiondown = {100, }, -% \textbraceleft = {400,200}, \textbraceright = {200,400}, -% \textbraceleft = {200,200}, \textbraceright = {200,300}, - \textless = {200,100}, \textgreater = {100,200}, - \textminus = {200,200}, \textdegree = {300,300}, -% \copyright = {100,100}, \textregistered = {100,100} -% \copyright = {100,150}, \textregistered = {100,150}, -% \textxgeq = { ,100}, \textxleq = {100, }, -% \textalpha = { , 50}, \textDelta = { 70, 70}, -% \textpi = { 50, 80}, \textSigma = { , 70}, -% \textmu = { , 80}, \texteuro = { 50, 50}, -% \textellipsis = {150,200}, \textasciitilde = { 80, 80}, -% \textapprox = { 50, 50}, \textinfty = {100,100}, -% \textdagger = {150,150}, \textdaggerdbl = {100,100}, -% \textdiv = { 50,150}, \textsection = { 80, 80}, -% \texttimes = {100,150}, \textpm = { 50, 80}, -% \textbullet = {150,150}, \textperiodcentered = {300,300}, -% \textquotesingle = {500,500}, \textquotedbl = {300,300}, -% \textperthousand = { ,50} - } - -% -% \end{macrocode} -% is based on ; it shares some but not all extra characters of . -% All accented characters are already taken care of by the inheritance list. -% \begin{macrocode} -%<*cmr|bch> -\SetProtrusion -% [ name = cmr-T5, -% load = cmr-default ] -% [ name = bch-T5, -% load = bch-default ] - { encoding = T5, -% family = cmr } -% family = bch } - { -% _ = {100,100}, -% \textbackslash = {150,200}, -% \textbackslash = {200,300}, -% \textquotedblleft = {200,600}, -% \textquotedbl = {300,300}, -% \quotesinglbase = {400,400}, \quotedblbase = {300,300}, -% \quotesinglbase = {400,400}, \quotedblbase = {400,400}, -% \guilsinglleft = {400,300}, \guilsinglright = {300,400}, -% \guilsinglleft = {400,400}, \guilsinglright = {300,500}, -% \guillemotleft = {200,200}, \guillemotright = {150,300}, -% \guillemotleft = {300,200}, \guillemotright = {100,400}, -% \textbraceleft = {200, }, \textbraceright = { ,300}, -% \textbraceleft = {400,200}, \textbraceright = {200,400}, - \textless = {200,100}, \textgreater = {100,200} - } - -% -% \end{macrocode} -% Minion with lining numbers. -% \begin{macrocode} -%<*pmn> -\SetProtrusion - [ name = pmnx-OT1, - load = pmnj-default ] - { encoding = OT1, - family = pmnx } - { - 1 = {230,180} - } - -\SetProtrusion - [ name = pmnx-T1, - load = pmnj-T1 ] - { encoding = {T1,LY1}, - family = pmnx } - { - 1 = {230,180} - } - -\SetProtrusion - [ name = pmnx-T2A, - load = pmnj-T2A ] - { encoding = {T2A}, - family = pmnx } - { - 1 = {230,180} - } - -% -% \end{macrocode} -% Times is the default font for , therefore we provide settings for the -% additional characters in this encoding, too. -%\changes{v1.8}{2005/04/26}{add characters for Times} -% \begin{macrocode} -%<*ptm> - \SetProtrusion - [ name = ptm-LY1, - load = ptm-T1 ] - { encoding = LY1, - family = {ptm,ptmx,ptmj} } - { - _ = {100,100}, - \texttrademark = {100,100}, - \textregistered = {100,100}, - \textcopyright = {100,100}, - \textdegree = {300,300}, - \textminus = {200,200}, - \textellipsis = {150,200}, -% \texteuro = { , }, % ? - \textcent = {100,100}, - \textquotesingle = {500,500}, - \textflorin = { 50, 70}, - \textdagger = {150,150}, - \textdaggerdbl = {100,100}, - \textperthousand = { , 50}, - \textbullet = {150,150}, - \textonesuperior = {100,100}, - \texttwosuperior = { 50, 50}, - \textthreesuperior = { 50, 50}, - \textperiodcentered = {300,300}, - \textplusminus = { 50, 80}, - \textmultiply = {100,100}, - \textdivide = { 50,150} -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% \textbrokenbar = { , }, -% \textyen = { , }, -% \textfractionsolidus = { , }, -% \textordfeminine = { , }, -% \textordmasculine = { , }, -% \textmu = { , }, -% \textparagraph = { , }, -% \textonequarter = { , }, -% \textonehalf = { , }, -% \textthreequarters = { , }, -%\fi -% \begin{macrocode} - } - -% -% \end{macrocode} -% -%\subsubsection{Italics} -% -% To find default settings for italic is difficult, since the character shapes -% and their behaviour at the beginning or end of line may be wildly different -% for different fonts. Therefore, we leave the letters away, and only set up the -% punctuation characters. -%\changes{v1.4b}{2004/11/22}{slanted like italics} -%\changes{v1.6}{2004/12/26}{add italic uppercase Greek letters} -% \begin{macrocode} -\SetProtrusion -% [ name = OT1-it ] -% [ name = bch-it ] -% [ name = blg-it, -% load = blg-default ] -% [ name = cmr-it ] -% [ name = pad-it ] -% [ name = pmnj-it ] -% [ name = ppl-it ] -% [ name = ptm-it ] -% [ name = ugm-it ] -% { encoding = OT1, -% { encoding = {OT1,OT4}, -% family = bch, -% family = blg, -% family = {pad,padx,padj}, -% family = {ppl,pplx,pplj}, -% family = {ptm,ptmx,ptmj}, -% family = ugm, -% shape = {it,sl} } -% shape = it } -% { } - { -% A = {100,50}, -% A = {50, }, -% A = { ,150}, -% A = {50,50}, -% \AE = {100, }, -% \AE = {50, }, -% B = {50, }, -% B = {20,-50}, -% C = {50, }, -% C = {100, }, -% C = {50,-50}, -% D = {50,50}, -% D = {20, }, -% E = {50, }, -% E = {20,-50}, -% F = {100, }, -% F = {10, }, -% F = {50, }, -% G = {50, }, -% G = {100, }, -% G = {50,-50}, -% H = {50, }, -% I = {50, }, -% I = {20,-50}, -% J = {100, }, -% J = {50, }, -% J = {20, }, -% K = {50, }, -% K = {20, }, -% L = {50, }, -% L = {20,50}, -% L = { ,100}, -% M = {50, }, -% M = { ,-30}, -% N = {50, }, -% N = { ,-30}, -% O = {50, }, -% O = {100, }, -% O = {70,50}, -% \OE = {50, }, -% \OE = {100, }, -% P = {50, }, -% P = {20,-50}, -% Q = {50, }, -% Q = {100, }, -% Q = {70,50}, -% R = {50, }, -% R = {20, }, -% S = {50, }, -% S = {20,-30}, -% $ = {50, }, -% $ = {20,-30}, -% T = {70, }, -% T = {100, }, -% U = {50, }, -% U = {50,-50}, -% V = {100, }, -% V = {100,50}, -% W = {100, }, -% W = {50, }, -% W = {100,50}, -% X = {50, }, -% Y = {100, }, -% Y = {50, }, -% Y = {100,50}, -% Z = { ,-50}, -% d = { ,-50}, -% f = { ,-100}, -% i = { ,-30}, -% j = { ,-30}, -% l = { ,-100}, -% o = {50,50}, -% p = { ,50}, -% p = {-50, }, -% q = {50, }, -% r = { ,50}, -% t = { ,50}, -% v = {50, }, -% w = { ,50}, -% w = {50, }, -% y = { ,50}, -% 0 = {100, }, -% 1 = {150,100}, -% 1 = {200,50}, -% 1 = {150, }, -% 1 = {50, }, -% 1 = {100, }, -% 1 = {150,150}, -% 2 = {100,-100}, -% 2 = {50, }, -% 2 = {-50, }, -% 3 = {50, }, -% 3 = {100,-100}, -% 3 = {-100, }, -% 3 = {100,50}, -% 4 = {100, }, -% 4 = {150, }, -% 4 = {50, }, -% 5 = {100, }, -% 5 = {50, }, -% 6 = {50, }, -% 6 = {100, }, -% 7 = {100, }, -% 7 = {200,-150}, -% 7 = {20, }, -% 7 = {50, }, -% 8 = {50,-50}, -% 9 = {100,-100}, -% . = { ,500}, -% . = {400,600}, -% . = { ,700}, -% {,}= {300,500}, -% {,}= { ,500}, -% {,}= { ,600}, -% {,}= { ,700}, -% : = { ,300}, -% : = { ,400}, -% : = { ,200}, -% : = { ,500}, -% ; = { ,300}, -% ; = { ,400}, -% ; = { ,200}, -% ; = { ,500}, -% ! = { ,100}, -% ? = { ,200}, -% ? = { ,100}, -% ? = { ,300}, -% " = {400,200}, -% & = {50,50}, -% & = { ,80}, -% & = {100,50}, -% & = {50,100}, -% \% = {100, }, -% \% = {50,50}, -% \% = {100,100}, -% \% = {100,50}, -% * = {200,200}, -% * = {300,200}, -% * = {400,100}, -% * = {500,100}, -% * = {400,200}, -% + = {150,200}, -% + = {250,250}, -% + = {250,200}, -% @ = {50,50}, -% @ = {80,50}, -% @ = {200,50}, -% @ = {150,150}, -% ~ = {150,150}, -% ~ = {200,150}, -% {=}= {200,200}, -% ( = {200, }, ) = { ,200}, -% / = {100,200}, -% / = { ,150}, -% / = {100,150}, -% - = {300,300}, -% - = {300,400}, -% - = {200,300}, -% - = {500,300}, -% - = {300,500}, -% - = {500,500}, -% - = {400,700}, -% _ = {0,300}, -% \textendash = {200,200}, \textemdash = {150,150}, -% \textendash = {200,300}, \textemdash = {150,200}, -% \textendash = {500,300}, \textemdash = {400,200}, -% \textendash = {300,300}, \textemdash = {200,200}, -% \textquoteleft = {400,200}, \textquoteright = {400,200}, -% \textquoteleft = {400,400}, \textquoteright = {400,400}, -% \textquoteleft = {800,200}, \textquoteright = {800,200}, -% \textquoteleft = {700,400}, \textquoteright = {700,400}, -% \textquoteleft = {800,500}, \textquoteright = {800,500}, -% \textquotedblleft = {400,200}, \textquotedblright = {400,200} -% \textquotedblright = {300,300} -% \textquotedblleft = {700,100}, \textquotedblright = {500,300} -% \textquotedblleft = {700,200}, \textquotedblright = {700,200} -% \textquotedblleft = {500,300}, \textquotedblright = {500,300} -% \textquotedblleft = {700,400}, \textquotedblright = {700,400} -% \textquotedblleft = {600,200}, \textquotedblright = {600,200} - } - -%<*cmr|pmn> -\SetProtrusion -% [ name = cmr-it-OT1, -% [ name = pmnj-it-OT1, -% load = cmr-it ] -% load = pmnj-it ] -% { encoding = {OT1,OT4}, -% { encoding = OT1, -% family = cmr, -% family = pmnj, -% shape = it } -% shape = {it,sl} } - { -% \AE = {100, }, -% \AE = { ,-50}, -% \OE = {100, }, -% \OE = {50, } -%<*cmr> - "00 = {200,150}, % \Gamma - "01 = {150,100}, % \Delta - "02 = {150, 50}, % \Theta - "03 = {150, 50}, % \Lambda - "04 = {100,100}, % \Xi - "05 = {100,100}, % \Pi - "06 = {100, 50}, % \Sigma - "07 = {200,150}, % \Upsilon - "08 = {150, 50}, % \Phi - "09 = {150,100}, % \Psi - "0A = { 50, 50} % \Omega -% - } - -% -\SetProtrusion -% [ name = T1-it-default, -% [ name = bch-it-T1, -% [ name = blg-it-T1, -% [ name = cmr-it-T1, -% [ name = pad-it-T1, -% [ name = pmnj-it-T1, -% [ name = ppl-it-T1, -% [ name = ptm-it-T1, -% [ name = ugm-it-T1, -% load = OT1-it ] -% load = bch-it ] -% load = blg-T1 ] -% load = cmr-it ] -% load = pmnj-it ] -% load = pad-it ] -% load = ppl-it ] -% load = ptm-it ] -% load = ugm-it ] -% { encoding = {T1,LY1}, -% { encoding = T1, -% family = bch, -% family = blg, -% family = cmr, -% family = pmnj, -% family = {pad,padx,padj}, -% family = {ppl,pplx,pplj}, -% family = {ptm,ptmx,ptmj}, -% family = ugm, -% shape = {it,sl} } -% shape = it } - { -% _ = { ,100}, -% _ = {0,300}, -% _ = {100,200}, -% _ = {100,100}, -% . = {400,600}, -% {,}= {300,500}, -% \AE = {100, }, -% \AE = { ,-50}, -% \OE = { 50, }, -% \OE = {100, }, -% 031 = { ,-100}, % ffl -% 156 = {100, }, % IJ -% 156 = {50, }, % IJ -% 156 = {20, }, % IJ -% 188 = { ,-30}, % ij -% \v t = { ,100}, -% \textbackslash = {100,200}, -% \textbackslash = {300,300}, -% \textbackslash = {150,150}, -% \textbackslash = {100,150}, -% \textbar = {200,200}, -% \textquotedblleft = {500,300}, -% \textquoteleft = {400,400}, \textquoteright = {400,400}, -% \textquotedbl = {300,300}, \textquotedblleft = {300,300}, -% \textquotedblright = {300,300}, \quotedblbase = {200,600}, -% \quotesinglbase = {300,700}, \quotedblbase = {400,500}, -% \quotesinglbase = {300,700}, \quotedblbase = {200,600}, -% \quotesinglbase = {200,500}, \quotedblbase = {150,500}, -% \quotesinglbase = {500,500}, \quotedblbase = {400,400}, -% \quotesinglbase = {300,700}, \quotedblbase = {300,500}, -% \guilsinglleft = {400,400}, \guilsinglright = {300,500}, -% \guilsinglleft = {300,400}, \guilsinglright = {200,500}, -% \guilsinglleft = {500,300}, \guilsinglright = {400,400}, -% \guilsinglleft = {500,400}, \guilsinglright = {300,500}, -% \guilsinglleft = {400,400}, \guilsinglright = {300,600}, -% \guillemotleft = {300,300}, \guillemotright = {300,300}, -% \guillemotleft = {200,300}, \guillemotright = {150,400}, -% \guillemotleft = {400,100}, \guillemotright = {200,300}, -% \guillemotleft = {300,300}, \guillemotright = {200,400}, -% \guillemotleft = {300,400}, \guillemotright = {200,400}, -% \guillemotleft = {300,400}, \guillemotright = {300,400}, -% \textexclamdown = {100, }, \textquestiondown = {200, }, -% \textexclamdown = {200, }, \textquestiondown = {200, }, -% \textexclamdown = {-50, }, \textquestiondown = {-50, }, -% \textbraceleft = {200,100}, \textbraceright = {200,200}, -% \textbraceleft = {200, }, \textbraceright = { ,200}, -% \textbraceleft = {400,100}, \textbraceright = {200,200}, -% \textless = {100, }, \textgreater = { ,100}, -% \textless = {300,100}, \textgreater = {200,100} -% \textvisiblespace = {100,100} - } - -%<*m-t|cmr|pmn> -\SetProtrusion -% [ name = T2A-it-default, -% [ name = cmr-it-T2A, -% [ name = pmnj-it-T2A, -% load = OT1-it ] -% load = cmr-it ] -% load = pmnj-it ] - { encoding = T2A, -% family = cmr, -% family = pmnj, -% shape = {it,sl} } -% shape = it } - { -% \CYRA = {100,50}, -% \CYRA = {50, }, -% \CYRB = {50, }, -% \CYRV = {50, }, -% \CYRV = {20,-50}, -% \CYRG = {100, }, -% \CYRG = {10, }, -% \CYRD = {50, }, -% \CYRE = {50, }, -% \CYRE = {20,-50}, -% \CYRZH = {50, }, -% \CYRZ = {50, }, -% \CYRZ = {20,-50}, -% \CYRI = {50, }, -% \CYRI = { ,-30}, -% \CYRISHRT = {50, }, -% \CYRK = {50, }, -% \CYRK = {20, }, -% \CYRL = {50, }, -% \CYRM = {50, }, -% \CYRM = { ,-30}, -% \CYRN = {50, }, -% \CYRO = {100, }, -% \CYRO = {50, }, -% \CYRP = {50, }, -% \CYRR = {50, }, -% \CYRR = {20,-50}, -% \CYRS = {100, }, -% \CYRS = {50, }, -% \CYRT = {100, }, -% \CYRT = {70, }, -% \CYRU = {100, }, -% \CYRU = {50, }, -% \CYRF = {100, }, -% \CYRH = {50, }, -% \CYRC = {50, }, -% \CYRCH = {100, }, -% \CYRSH = {50, }, -% \CYRSHCH = {50, }, -% \CYRHRDSN = {100, }, -% \CYRERY = {50, }, -% \CYRSFTSN = {50, }, -% \CYREREV = {50, }, -% \CYRYU = {50, }, -% \CYRYA = {50, }, -% \CYRYA = { ,20}, -% \cyrr = {-50, }, -% _ = { ,100}, -% _ = {100,200}, -% 031 = { ,-100}, % ffl -% \v t = { ,100}, -% \textbackslash = {100,200}, \quotedblbase = {400,500}, -% \textbackslash = {300,300}, \quotedblbase = {200,600}, -% \textbackslash = {100,150}, \quotedblbase = {150,500}, -% \guillemotleft = {300,300}, \guillemotright = {300,300}, -% \guillemotleft = {400,100}, \guillemotright = {200,300}, -% \guillemotleft = {200,300}, \guillemotright = {150,400}, -% \textbraceleft = {200,100}, \textbraceright = {200,200}, -% \textbraceleft = {400,100}, \textbraceright = {200,200}, -% \textbraceleft = {200, }, \textbraceright = { ,200}, -% \textquotedblleft = {500,300}, -% \textless = {300,100}, \textgreater = {200,100} -% \textless = {100, }, \textgreater = { ,100} - } - -% -%<*m-t|ptm> -\SetProtrusion -% [ name = QX-it-default, -% [ name = ptm-it-QX, -% load = OT1-it ] -% load = ptm-it ] - { encoding = {QX}, -% family = {ptm,ptmx,ptmj}, - shape = {it,sl} } - { -% 009 = { , 50}, % fk - {=} = {100,100}, -% \textunderscore = {100,100}, -% \textunderscore = {100,150}, - \textbackslash = {100,200}, - \quotedblbase = {300,400}, -% \guillemotleft = {300,300}, \guillemotright = {300,300}, -% \guillemotleft = {200,400}, \guillemotright = {200,400}, - \textexclamdown = {200, }, \textquestiondown = {200, }, - \textbraceleft = {200,100}, \textbraceright = {200,200}, - \textless = {100,100}, \textgreater = {100,100}, - \textminus = {200,200}, \textdegree = {300,150}, -% \copyright = {100,100}, \textregistered = {100,100} -% \textregistered = {100,150}, \copyright = {100,150}, -% \textDelta = { 70, }, \textdelta = { , 50}, -% \textpi = { 50, 80}, \textmu = { , 80}, -% \texteuro = {200, }, \textellipsis = {100,200}, -% \textquoteleft = {500,400}, \textquoteright = {500,400}, -% \textquotedblleft = {500,300}, \textquotedblright = {400,400}, -% \textapprox = { 50, 50}, \textinfty = {100,100}, -% \textdagger = {150,150}, \textdaggerdbl = {100,100}, -% \textdiv = {150,150}, \textasciitilde = { 80, 80}, -% \texttimes = {100,150}, \textpm = { 50, 80}, -% \textbullet = {300,100}, \textperiodcentered = {300,300}, -% \textquotesingle = {500,500}, \textquotedbl = {300,300}, -% \textperthousand = { ,50} - } - -% -%<*cmr|bch> -\SetProtrusion -% [ name = cmr-it-T5, -% load = cmr-it ] -% [ name = bch-it-T5, -% load = bch-it ] - { encoding = T5, -% family = bch, -% family = cmr, - shape = it } - { -% _ = { ,100}, -% _ = {100,200}, -% \textbackslash = {150,150}, -% \textbackslash = {300,300}, -% \quotesinglbase = {200,500}, \quotedblbase = {150,500}, -% \quotesinglbase = {300,700}, \quotedblbase = {200,600}, -% \guilsinglleft = {300,400}, \guilsinglright = {200,500}, -% \guilsinglleft = {500,300}, \guilsinglright = {400,400}, -% \guillemotleft = {200,300}, \guillemotright = {150,400}, -% \guillemotleft = {400,100}, \guillemotright = {200,300}, -% \textbraceleft = {200, }, \textbraceright = { ,200}, -% \textbraceleft = {400,100}, \textbraceright = {200,200}, -% \textless = {100, }, \textgreater = { ,100} -% \textless = {300,100}, \textgreater = {200,100} - } - -% -% \end{macrocode} -%\changes{v1.8}{2005/06/01}{verified settings for slanted Computer Modern Roman} -% Slanted is very similar to italic. -% \begin{macrocode} -%<*cmr> -\SetProtrusion - [ name = cmr-sl, - load = cmr-it-OT1 ] - { encoding = {OT1,OT4}, - family = cmr, - shape = sl } - { - L = { ,50}, - f = { ,-50}, - - = {300, }, - \textendash = {400, }, \textemdash = {300, } - } - -\SetProtrusion - [ name = cmr-sl-T1, - load = cmr-it-T1 ] - { encoding = {T1,LY1}, - family = cmr, - shape = sl } - { - L = { ,50}, - f = { ,-50}, - - = {300, }, - \textendash = {400, }, \textemdash = {300, } - } - -\SetProtrusion - [ name = cmr-sl-T2A, - load = cmr-it-T2A ] - { encoding = T2A, - family = cmr, - shape = sl } - { - L = { ,50}, - f = { ,-50}, - - = {300, }, - \textendash = {400, }, \textemdash = {300, } - } - -\SetProtrusion - [ name = cmr-sl-T5, - load = cmr-it-T5 ] - { encoding = T5, - family = cmr, - shape = sl } - { - L = { ,50}, - f = { ,-50}, - - = {300, }, - \textendash = {400, }, \textemdash = {300, } - } - -\SetProtrusion - [ name = lmr-it-T1, - load = cmr-it-T1 ] - { encoding = {T1,LY1}, - family = lmr, - shape = {it,sl} } - { - \textquotedblleft = { ,200}, \textquotedblright = { ,200}, - \quotesinglbase = { ,400}, \quotedblbase = { ,500} - } - -% \end{macrocode} -% Oldstyle numerals are slightly different. -% \begin{macrocode} -\SetProtrusion - [ name = cmr(oldstyle)-it, - load = cmr-it-T1 ] - { encoding = T1, - family = {hfor,cmor}, - shape = {it,sl} } - { - 1 = {250, 50}, - 2 = {150,-100}, - 3 = {100,-50}, - 4 = {150,150}, - 6 = {200, }, - 7 = {200, 50}, - 8 = {150,-50}, - 9 = {100, 50} - } - -% -%<*pmn> -\SetProtrusion - [ name = pmnx-it, - load = pmnj-it ] - { encoding = OT1, - family = pmnx, - shape = {it,sl} } - { - 1 = {100,150} - } - -\SetProtrusion - [ name = pmnx-it-T1, - load = pmnj-it-T1 ] - { encoding = {T1,LY1}, - family = pmnx, - shape = {it,sl} } - { - 1 = {100,150} - } - -\SetProtrusion - [ name = pmnx-it-T2A, - load = pmnj-it-T2A ] - { encoding = {T2A}, - family = pmnx, - shape = {it,sl} } - { - 1 = {100,150} - } - -% -%<*ptm> -\SetProtrusion - [ name = ptm-it-LY1, - load = ptm-it-T1 ] - { encoding = {LY1}, - family = {ptm,ptmx,ptmj}, - shape = {it,sl} } - { - _ = {100,100}, - \texttrademark = {100,100}, - \textregistered = {100,100}, - \textcopyright = {100,100}, - \textdegree = {300,100}, - \textminus = {200,200}, - \textellipsis = {100,200}, -% \texteuro = { , }, % ? - \textcent = {100,100}, - \textquotesingle = {500, }, - \textflorin = {100, 70}, - \textdagger = {150,150}, - \textdaggerdbl = {100,100}, - \textbullet = {150,150}, - \textonesuperior = {150,100}, - \texttwosuperior = {150, 50}, - \textthreesuperior = {150, 50}, - \textparagraph = {100, }, - \textperiodcentered = {500,300}, - \textonequarter = { 50, }, - \textonehalf = { 50, }, - \textplusminus = {100,100}, - \textmultiply = {150,150}, - \textdivide = {150,150} - } - -% -% \end{macrocode} -% -%\subsubsection{Small caps} -% -% Small caps should inherit the values from their big brothers. Since values are -% relative to character width, we don't need to adjust them any further (but -% we have to reset some characters). -% \begin{macrocode} -%<*!(blg|ugm)> -\SetProtrusion -% [ name = OT1-sc, -% [ name = bch-sc, -% [ name = cmr-sc-OT1, -% [ name = pad-sc, -% [ name = pmnj-sc, -% [ name = ppl-sc, -% [ name = ptm-sc, -% load = default ] -% load = bch-default ] -% load = cmr-OT1 ] -% load = pad-default ] -% load = pmnj-default ] -% load = ppl-default ] -% load = ptm-default ] -% { encoding = OT1, -% { encoding = {OT1,OT4}, -% family = bch, -% family = cmr, -% family = {pad,padx,padj}, -% family = pmnj, -% family = {ppl,pplx,pplj}, -% family = {ptm,ptmx,ptmj}, - shape = sc } - { - a = {50,50}, -% \ae = {50, }, -% c = {50, }, -% d = { ,50}, -% f = { ,50}, -% g = {50, }, -% j = {50, }, -% j = {100, }, -% l = { ,50}, -% l = { ,80}, -% 013 = { ,50}, % fl -% 013 = { ,80}, % fl -% o = {50,50}, -% \oe = {50, }, -% p = { 0, 0}, -% q = {50,70}, -% q = { 0, }, -% r = { , 0}, - t = {50,50}, -% y = {50,50} -% y = {80,80} - } - -\SetProtrusion -% [ name = T1-sc, -% [ name = bch-sc-T1, -% [ name = cmr-sc-T1, -% [ name = pad-sc-T1, -% [ name = pmnj-sc-T1, -% [ name = ppl-sc-T1, -% [ name = ptm-sc-T1, -% load = T1-default ] -% load = bch-T1 ] -% load = cmr-T1 ] -% load = pad-T1 ] -% load = pmnj-T1 ] -% load = ppl-T1 ] -% load = ptm-T1 ] - { encoding = {T1,LY1}, -% family = bch, -% family = cmr, -% family = {pad,padx,padj}, -% family = pmnj, -% family = {ppl,pplx,pplj}, -% family = {ptm,ptmx,ptmj}, - shape = sc } - { - a = {50,50}, -% \ae = {50, }, -% c = {50, }, -% d = { ,50}, -% f = { ,50}, -% g = {50, }, -% j = {50, }, -% j = {100, }, -% l = { ,50}, -% l = { ,80}, -% 029 = { ,50}, % fl -% 029 = { ,80}, % fl -% o = {50,50}, -% \oe = {50, }, -% p = { 0, 0}, -% q = {50,70}, -% q = { 0, }, -% r = { , 0}, - t = {50,50}, -% y = {50,50} -% y = {80,80} - } - -% -%<*m-t|cmr> -\SetProtrusion -% [ name = T2A-sc, -% [ name = cmr-sc-T2A, -% load = T2A-default ] -% load = cmr-T2A ] - { encoding = T2A, -% family = cmr, - shape = sc } - { - \cyra = {50,50}, - \cyrg = { ,50}, - \cyrt = {50,50}, - \cyry = { ,50} - } - -% -%<*m-t> -\SetProtrusion - [ name = QX-sc, - load = QX-default ] - { encoding = QX, - shape = sc } - { - a = {50,50}, - f = { ,50}, - j = {50, }, - l = { ,50}, - 013 = { ,50}, % fl - r = { , 0}, - t = {50,50}, - y = {50,50} - } - -% -%<*cmr|bch> -\SetProtrusion -% [ name = bch-sc-T5, -% load = bch-T5 ] -% [ name = cmr-sc-T5, -% load = cmr-T5 ] - { encoding = T5, -% family = bch, -% family = cmr, - shape = sc } - { - a = {50,50}, -% c = {50, }, -% d = { ,50}, - f = { ,50}, -% g = {50, }, -% j = {100, }, -% j = {50, }, - l = { ,50}, -% o = {50,50}, -% q = { 0, }, -% r = { , 0}, - t = {50,50}, - y = {50,50} - } - -% -%<*pmn> -\SetProtrusion - [ name = pmnx-sc, - load = pmnj-sc ] - { encoding = OT1, - family = pmnx, - shape = sc } - { - 1 = {230,180} - } - -\SetProtrusion - [ name = pmnx-sc-T1, - load = pmnj-sc-T1 ] - { encoding = {T1,LY1}, - family = pmnx, - shape = sc } - { - 1 = {230,180} - } - -% \end{macrocode} -% -%\subsubsection{Italic small caps} -% Minion provides real small caps in italics. -% The \pkg{slantsc} package calls them |scit|, Philipp Lehman's -% \pkg{fontinstallationguide} suggests |si|. -% \begin{macrocode} -\SetProtrusion - [ name = pmnj-scit, - load = pmnj-it ] - { encoding = OT1, - family = pmnj, - shape = {scit,si} } - { - a = {50, }, - \ae = { ,-50}, - b = {20,-50}, - c = {50,-50}, - d = {20, 0}, - e = {20,-50}, - f = {10, 0}, - 012 = {10,-50}, % fi - 013 = {10,-50}, % fl - 014 = {10,-50}, % ffi - 015 = {10,-50}, % ffl - g = {50,-50}, - i = {20,-50}, - j = {20, 0}, - k = {20, }, - l = {20,50}, - m = { ,-30}, - n = { ,-30}, - o = {50, }, - \oe = {50,-50}, - p = {20,-50}, - q = {50, }, - r = {20, 0}, - s = {20,-30}, - t = {70, }, - u = {50,-50}, - v = {100, }, - w = {100, }, - y = {50, }, - z = { ,-50} - } - -\SetProtrusion - [ name = pmnj-scit-T1, - load = pmnj-it-T1 ] - { encoding = {T1,LY1}, - family = pmnj, - shape = {scit,si} } - { - a = {50, }, - \ae = { ,-50}, - b = {20,-50}, - c = {50,-50}, - d = {20, 0}, - e = {20,-50}, - f = {10, 0}, - 028 = {10,-50}, % fi - 029 = {10,-50}, % fl - 030 = {10,-50}, % ffi - 031 = {10,-50}, % ffl - g = {50,-50}, - i = {20,-50}, - 188 = {20, 0}, % ij - j = {20, 0}, - k = {20, }, - l = {20,50}, - m = { ,-30}, - n = { ,-30}, - o = {50, }, - \oe = {50,-50}, - p = {20,-50}, - q = {50, }, - r = {20, 0}, - s = {20,-30}, - t = {70, }, - u = {50,-50}, - v = {100, }, - w = {100, }, - y = {50, }, - z = { ,-50} - } - -\SetProtrusion - [ name = pmnx-scit, - load = pmnj-scit ] - { encoding = OT1, - family = pmnx, - shape = {scit,si} } - { - 1 = {100,150} - } - -\SetProtrusion - [ name = pmnx-scit-T1, - load = pmnj-scit-T1 ] - { encoding = {T1,LY1}, - family = pmnx, - shape = {scit,si} } - { - 1 = {100,150} - } - -% -% \end{macrocode} -% -%\subsubsection{Text companion} -% -% Finally the encoding. -% Still quite incomplete for Times and especially Palatino. Anybody? -%\changes{v1.2}{2004/09/28}{add settings for Computer Modern Roman and -% Adobe Garamond in encoding} -% \begin{macrocode} -\SetProtrusion -% [ name = textcomp ] -% [ name = bch-textcomp ] -% [ name = blg-textcomp ] -% [ name = cmr-textcomp ] -% [ name = pad-textcomp ] -% [ name = pmn-textcomp ] -% [ name = ppl-textcomp ] -% [ name = ptm-textcomp ] -% [ name = ugm-textcomp ] -% { encoding = TS1 } -% { encoding = TS1, -% family = bch } -% family = blg } -% family = cmr } -% family = {pad,padx,padj} } -% family = {pmnx,pmnj} } -% family = {ppl,pplx,pplj} } -% family = {ptm,ptmx,ptmj} } -% family = ugm } - { -% \textquotestraightbase = {400,500}, -% \textquotestraightbase = {300,300}, -% \textquotestraightbase = {400,400}, -% \textquotestraightdblbase = {300,400}, -% \textquotestraightdblbase = {300,300}, -% \textquotestraightdblbase = {400,400}, -% \texttwelveudash = {200,200}, -% \textthreequartersemdash = {150,150}, -% \textthreequartersemdash = {200,200}, -% \textquotesingle = {500,600}, -% \textquotesingle = {300,400}, -% \textquotesingle = {400,500}, -% \textquotesingle = {500,500}, -% \textquotesingle = {300,500}, -% \textasteriskcentered = {200,300}, -% \textasteriskcentered = {150,200}, -% \textasteriskcentered = {300,300}, -% \textasteriskcentered = {100,200}, -% \textfractionsolidus = {-200,-200}, -% \textoneoldstyle = {100,100}, -% \textoneoldstyle = { , 50}, -% \textthreeoldstyle = { , 50}, -% \textthreeoldstyle = { 50, }, -% \textfouroldstyle = { 50, 50}, -% \textfouroldstyle = { 50, }, -% \textsevenoldstyle = { 50, 80}, -% \textlangle = {400, }, -% \textrangle = { ,400}, -% \textminus = {200,200}, -% \textminus = {300,300}, -% \textminus = {250,300}, -% \textlbrackdbl = {100, }, -% \textlbrackdbl = {200, }, -% \textrbrackdbl = { ,100}, -% \textrbrackdbl = { ,200}, -% \textasciigrave = {200,500}, -% \texttildelow = {200,250}, -% \textasciibreve = {300,400}, -% \textasciicaron = {300,400}, -% \textacutedbl = {200,300}, -% \textgravedbl = {150,300}, -% \textdagger = { 80, 80}, -% \textdagger = {200,200}, -% \textdagger = {100,100}, -% \textdagger = {150,150}, -% \textdaggerdbl = {150,150}, -% \textdaggerdbl = { 80, 80}, -% \textdaggerdbl = {100,100}, -% \textbardbl = {100,100}, -% \textbardbl = {150,150}, -% \textbullet = {200,200}, -% \textbullet = {400,500}, -% \textbullet = { ,100}, -% \textbullet = {150,150}, -% \textbullet = { 50,100}, -% \textcelsius = { 50, }, -% \textcelsius = { 80, }, -% \textflorin = { 50, 50}, -% \textflorin = {100,100}, -% \textflorin = { ,100}, -% \textflorin = { 50,100}, -% \textflorin = { 50, 70}, -% \textcolonmonetary = { , 50}, -% \textcolonmonetary = { 50, }, -% \textinterrobang = { ,100}, -% \textinterrobangdown = {100, }, -% \texttrademark = {100,100}, -% \texttrademark = {150,150}, -% \texttrademark = {200,200}, -% \texttrademark = { 50, 50}, -% \texttrademark = {100,150}, -% \textcent = { 50, }, -% \textcent = {100,100}, -% \textsterling = { 50, }, -% \textsterling = { , 50}, -% \textbrokenbar = {200,200}, -% \textbrokenbar = {250,250}, -% \textbrokenbar = {200,300}, -% \textasciidieresis = {300,400}, -% \textcopyright = {100,100}, -% \textcopyright = {100,150}, -% \textcopyright = {200,200}, -% \textordfeminine = {100,200}, -% \textordfeminine = {200,200}, -% \textlnot = {200, }, -% \textlnot = {200,100}, -% \textregistered = {100,100}, -% \textregistered = { 50,150}, -% \textregistered = {200,200}, -% \textasciimacron = {150,200}, -% \textdegree = {300,300}, -% \textdegree = {150,200}, -% \textdegree = {200,200}, -% \textdegree = {400,400}, -% \textdegree = {150,400}, -% \textpm = {150,200}, -% \textpm = {100,100}, -% \textpm = { 50, 80}, -% \texttwosuperior = {100,200}, -% \texttwosuperior = { 50,100}, -% \texttwosuperior = {200,200}, -% \texttwosuperior = { 50, 50}, -% \textthreesuperior = {100,200}, -% \textthreesuperior = { 50,100}, -% \textthreesuperior = {200,200}, -% \textthreesuperior = { 50, 50}, -% \textasciiacute = {300,400}, -% \textmu = { ,100}, -% \textparagraph = { ,100}, -% \textperiodcentered = {300,400}, -% \textperiodcentered = {400,500}, -% \textperiodcentered = {300,300}, -% \textperiodcentered = {200,500}, -% \textonesuperior = {200,300}, -% \textonesuperior = {200,200}, -% \textonesuperior = {100,100}, -% \textordmasculine = {200,200}, -% \textordmasculine = {100,200}, -% \texteuro = {100, }, -% \texteuro = { 50,100}, -% \texttimes = {200,200}, -% \texttimes = {100,100}, -% \texttimes = {150,250}, -% \texttimes = {100,150}, -% \texttimes = { 70,100}, -% \texttimes = {200,300}, -% \textdiv = {150,200} -% \textdiv = {100,100} -% \textdiv = {150,250} -% \textdiv = { 50,100}, -% \textdiv = {200,300}, -% \textperthousand = { ,50} -% \textsection = { ,100}, -% \textonehalf = { 50,100}, -% \textonequarter = { 50,100}, -% \textthreequarters = { 50,100}, -% \textsurd = { ,100} -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% \textyen = { , }, -% \texttwooldstyle = { , }, -% \textfiveoldstyle = { , }, -% \textsixoldstyle = { , }, -% \texteightoldstyle = { , }, -% \textnineoldstyle = { , }, -% \textleftarrow = { , }, -% \textrightarrow = { , }, -% \textblank = { , }, -% \textdollar = { , }, -% \textdblhyphen = { , }, -% \textdblhyphenchar = { , }, -% \textohm = { , }, -% \textmho = { , }, -% \textbigcircle = { , }, -% \textuparrow = { , }, -% \textdownarrow = { , }, -% \textborn = { , }, -% \textdied = { , }, -% \textmarried = { , }, -% \textdivorced = { , }, -% \textleaf = { , }, -% \textmusicalnote = { , }, -% \textdollaroldstyle = { , }, -% \textcentoldstyle = { , }, -% \textwon = { , }, -% \textnaira = { , }, -% \textguarani = { , }, -% \textpeso = { , }, -% \textlira = { , }, -% \textrecipe = { , }, -% \textdong = { , }, -% \textpertenthousand = { , }, -% \textpilcrow = { , }, -% \textbaht = { , }, -% \textnumero = { , }, -% \textdiscount = { , }, -% \textestimated = { , }, -% \textopenbullet = { , }, -% \textservicemark = { , }, -% \textlquill = { , }, -% \textrquill = { , }, -% \textcopyleft = { , }, -% \textcircledP = { , }, -% \textreferencemark = { , }, -%\fi -% \begin{macrocode} - } - -%<*cmr|pad|pmn|ugm> -\SetProtrusion -% [ name = cmr-textcomp-it ] -% [ name = pad-textcomp-it ] -% [ name = pmn-textcomp-it ] -% [ name = ugm-textcomp-it ] - { encoding = TS1, -% family = cmr, -% family = {pad,padx,padj}, -% family = {pmnx,pmnj}, -% family = ugm, -% shape = {it,sl} } -% shape = it } - { -% \textquotestraightbase = {300,600}, -% \textquotestraightbase = {400,400}, -% \textquotestraightdblbase = {300,600}, -% \textquotestraightdblbase = {300,400}, -% \textquotestraightdblbase = {300,300}, - \texttwelveudash = {200,200}, -% \textthreequartersemdash = {150,150}, -% \textthreequartersemdash = {200,200}, -% \textquotesingle = {600,300}, -% \textquotesingle = {800,100}, -% \textquotesingle = {300,200}, -% \textquotesingle = {500,500}, -% \textasteriskcentered = {300,200}, -% \textasteriskcentered = {500,100}, -% \textasteriskcentered = {200,300}, -% \textasteriskcentered = {300,150}, -% \textfractionsolidus = {-200,-200}, -% \textoneoldstyle = {100, 50}, -% \textoneoldstyle = {100, }, -% \textoneoldstyle = { 50, }, -% \texttwooldstyle = { 50, }, -% \texttwooldstyle = {-50, }, -% \textthreeoldstyle = {100, 50}, -% \textthreeoldstyle = {-100, }, -% \textfouroldstyle = { 50, 50}, -% \textfouroldstyle = { 50,100}, -% \textsevenoldstyle = { 50, 80}, -% \textsevenoldstyle = { 50, }, -% \textsevenoldstyle = { 20, }, -% \textlangle = {400, }, -% \textrangle = { ,400}, -% \textminus = {300,300}, -% \textminus = {200,200}, -% \textminus = {250,300}, -% \textlbrackdbl = {100, }, -% \textrbrackdbl = { ,100}, -% \textasciigrave = {300,300}, -% \texttildelow = {200,250}, -% \textasciibreve = {300,300}, -% \textasciicaron = {300,300}, -% \textacutedbl = {200,300}, -% \textgravedbl = {150,300}, -% \textdagger = {100,100}, -% \textdagger = {200,100}, -% \textdagger = { 80, 50}, -% \textdagger = { 80, 80}, -% \textdaggerdbl = { 80, 80}, -% \textdaggerdbl = { 80, 50}, -% \textbardbl = {150,150}, -% \textbullet = {200,100}, -% \textbullet = {300, }, -% \textbullet = { 30, 70}, -% \textbullet = { 50,100}, -% \textcelsius = {100, }, -% \textcelsius = {200, }, -% \textcelsius = { 50,-50}, -% \textflorin = {100, }, -% \textflorin = { 50,100}, -% \textflorin = { ,100}, -% \textcolonmonetary = {150, }, -% \textcolonmonetary = {100, }, -% \textcolonmonetary = { 50,-50}, -% \texttrademark = {200, }, -% \texttrademark = { 50,100}, -% \texttrademark = {150, 50}, -% \textcent = { 50, }, -% \textsterling = { , 50}, -% \textbrokenbar = {200,300}, -% \textasciidieresis = {300,200}, -% \textcopyright = {100, }, -% \textcopyright = {200,100}, -% \textcopyright = {100,150}, -% \textcopyright = {300, }, -% \textordfeminine = {100,100}, -% \textordfeminine = {200,200}, -% \textordfeminine = {100,200}, -% \textlnot = {300, }, -% \textlnot = {200, }, -% \textregistered = {100, }, -% \textregistered = {200,100}, -% \textregistered = { 50,150}, -% \textregistered = {300, }, -% \textasciimacron = {150,200}, -% \textdegree = {500,100}, -% \textdegree = {150,150}, -% \textdegree = {300,200}, -% \textpm = {150,100}, -% \textpm = {200,150}, -% \textpm = {150,200}, -% \textonesuperior = {400, }, -% \textonesuperior = {300,100}, -% \textonesuperior = {200,100}, -% \textonesuperior = {300,300}, -% \texttwosuperior = {400, }, -% \texttwosuperior = {300, }, -% \texttwosuperior = {200,100}, -% \texttwosuperior = {300,200}, -% \textthreesuperior = {400, }, -% \textthreesuperior = {300, }, -% \textthreesuperior = {200,100}, -% \textthreesuperior = {300,200}, -% \textmu = { ,100}, -% \textasciiacute = {300,200}, -% \textparagraph = {200, }, -% \textparagraph = { ,100}, -% \textperiodcentered = {500,500}, -% \textperiodcentered = {300,400}, -% \textordmasculine = {100,100}, -% \textordmasculine = {200,200}, -% \textordmasculine = {300,200}, -% \texteuro = {200, }, -% \texteuro = {100, }, -% \texteuro = {100,-50}, -% \texttimes = {200,200}, -% \texttimes = {200,100}, -% \texttimes = { 70,100}, -% \texttimes = {200,300}, -% \textdiv = {200,200} -% \textdiv = {150,200} -% \textdiv = {200,300}, -% \textsection = { ,200}, -% \textonehalf = { 50,100}, -% \textonequarter = { 50,100}, -% \textthreequarters = { 50,100}, -% \textsurd = { ,100} - } - -% -% \end{macrocode} -% -%\subsubsection{Computer Modern math} -% -% Now to the math symbols for Computer Modern Roman. Definitions have been -% extracted from \file{fontmath.ltx}. -%\changes{v1.2}{2004/10/02}{add settings for Computer Modern Roman math symbols} -% I did not spend too much time fiddling with these settings, so they can surely -% be improved. -% -% The math font `|operators|' (also used for the \cmd\mathrm\ and -% \cmd\mathbf\ alphabets) is |OT1/cmr|, which we've already set up above. -% It's declared as: -%\begin{verbatim} -%\DeclareSymbolFont{operators} {OT1}{cmr}{m} {n} -%\SetSymbolFont{operators}{bold}{OT1}{cmr}{bx}{n} -%\end{verbatim} -% -% \cmd\mathit\ (|OT1/cmr/m/it|) is also already set up. -% -% There are (for the moment) no settings for \cmd\mathsf\ and \cmd\mathtt. -% -% Math font `|letters|' (also used as \cmd\mathnormal) is declared as: -%\begin{verbatim} -%\DeclareSymbolFont{letters} {OML}{cmm}{m}{it} -%\SetSymbolFont{letters} {bold}{OML}{cmm}{b}{it} -%\end{verbatim} -%\changes{v1.6}{2004/12/26}{tune math letters ( encoding)} -% \begin{macrocode} -%<*cmr> -\SetProtrusion - [ name = cmr-math-letters ] - { encoding = OML, - family = cmm, - series = {m,b}, - shape = it } - { - A = {100, 50}, % \mathnormal - B = { 50, }, - C = { 50, }, - D = { 50, 50}, - E = { 50, }, - F = {100, 50}, - G = { 50, 50}, - H = { 50, 50}, - I = { 50, 50}, - J = {150, 50}, - K = { 50,100}, - L = { 50, 50}, - M = { 50, }, - N = { 50, }, - O = { 50, }, - P = { 50, }, - Q = { 50, 50}, - R = { 50, }, - S = { 50, }, - T = { 50,100}, - U = { 50, 50}, - V = {100,100}, - W = { 50,100}, - X = { 50,100}, - Y = {100,100}, - f = {100,100}, - h = { ,100}, - i = { , 50}, - j = { , 50}, - k = { , 50}, - r = { , 50}, - v = { , 50}, - w = { , 50}, - x = { , 50}, - "0B = { 50,100}, % \alpha - "0C = { 50, 50}, % \beta - "0D = {200,150}, % \gamma - "0E = { 50, 50}, % \delta - "0F = { 50, 50}, % \epsilon - "10 = { 50,150}, % \zeta - "12 = { 50, }, % \theta - "13 = { ,100}, % \iota - "14 = { ,100}, % \kappa - "15 = {100, 50}, % \lambda - "16 = { , 50}, % \mu - "17 = { , 50}, % \nu - "18 = { , 50}, % \xi - "19 = { 50,100}, % \pi - "1A = { 50, 50}, % \rho - "1B = { ,150}, % \sigma - "1C = { 50,150}, % \tau - "1D = { 50, 50}, % \upsilon - "1F = { 50,100}, % \chi - "20 = { 50, 50}, % \psi - "21 = { , 50}, % \omega - "22 = { , 50}, % \varepsilon - "23 = { , 50}, % \vartheta - "24 = { , 50}, % \varpi - "25 = {100, }, % \varrho - "26 = {100,100}, % \varsigma - "27 = { 50, 50}, % \varphi - "28 = {100,100}, % \leftharpoonup - "29 = {100,100}, % \leftharpoondown - "2A = {100,100}, % \rightharpoonup - "2B = {100,100}, % \rightharpoondown - "2C = {300,200}, % \lhook - "2D = {200,300}, % \rhook - "2E = { ,100}, % \triangleright - "2F = {100, }, % \triangleleft - "3A = { ,500}, % ., \ldotp - "3B = { ,500}, % , - "3C = {200,100}, % < - "3D = {300,400}, % / - "3E = {100,200}, % > - "3F = {200,200}, % \star - "5B = { ,100}, % \flat - "5E = {200,200}, % \smile - "5F = {200,200}, % \frown - "7C = {100, }, % \jmath - "7D = { ,100} % \wp -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% "11 = { , }, % \eta -% "1E = { , }, % \phi -% "40 = { , }, % \partial -% "5C = { , }, % \natural -% "5D = { , }, % \sharp -% "60 = { , }, % \ell -% "7B = { , }, % \imath -%\fi -% \begin{macrocode} - } - -% \end{macrocode} -% Math font `|symbols|' (also used for the \cmd\mathcal\ alphabet) is declared -% as: -%\begin{verbatim} -%\DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n} -%\SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n} -%\end{verbatim} -% \begin{macrocode} -\SetProtrusion - [ name = cmr-math-symbols ] - { encoding = OMS, - family = cmsy, - series = {m,b}, - shape = n } - { - A = {150, 50}, % \mathcal - C = { ,100}, - D = { , 50}, - F = { 50,150}, - I = { ,100}, - J = {100,150}, - K = { ,100}, - L = {100, }, - M = { 50, 50}, - N = { 50,100}, - P = { , 50}, - Q = { 50, }, - R = { , 50}, - T = { 50,150}, - V = { 50, 50}, - W = { , 50}, - X = {100,100}, - Y = {100, }, - Z = {100,150}, - "00 = {300,300}, % - - "01 = { ,700}, % \cdot, \cdotp - "02 = {150,250}, % \times - "03 = {150,250}, % *, \ast - "04 = {200,300}, % \div - "05 = {150,250}, % \diamond - "06 = {200,200}, % \pm - "07 = {200,200}, % \mp - "08 = {100,100}, % \oplus - "09 = {100,100}, % \ominus - "0A = {100,100}, % \otimes - "0B = {100,100}, % \oslash - "0C = {100,100}, % \odot - "0D = {100,100}, % \bigcirc - "0E = {100,100}, % \circ - "0F = {100,100}, % \bullet - "10 = {100,100}, % \asymp - "11 = {100,100}, % \equiv - "12 = {200,100}, % \subseteq - "13 = {100,200}, % \supseteq - "14 = {200,100}, % \leq - "15 = {100,200}, % \geq - "16 = {200,100}, % \preceq - "17 = {100,200}, % \succeq - "18 = {200,200}, % \sim - "19 = {150,150}, % \approx - "1A = {200,100}, % \subset - "1B = {100,200}, % \supset - "1C = {200,100}, % \ll - "1D = {100,200}, % \gg - "1E = {300,100}, % \prec - "1F = {100,300}, % \succ - "20 = {100,200}, % \leftarrow - "21 = {200,100}, % \rightarrow - "22 = {100,100}, % \uparrow - "23 = {100,100}, % \downarrow - "24 = {100,100}, % \leftrightarrow - "25 = {100,100}, % \nearrow - "26 = {100,100}, % \searrow - "27 = {100,100}, % \simeq - "28 = {100,100}, % \Leftarrow - "29 = {100,100}, % \Rightarrow - "2A = {100,100}, % \Uparrow - "2B = {100,100}, % \Downarrow - "2C = {100,100}, % \Leftrightarrow - "2D = {100,100}, % \nwarrow - "2E = {100,100}, % \swarrow - "2F = { ,100}, % \propto - "30 = { ,400}, % \prime - "31 = {100,100}, % \infty - "32 = {150,100}, % \in - "33 = {100,150}, % \ni - "34 = {100,100}, % \triangle, \bigtriangleup - "35 = {100,100}, % \bigtriangledown - "38 = { ,100}, % \forall - "39 = {100, }, % \exists - "3A = {200, }, % \neg - "3E = {200,200}, % \top - "3F = {200,200}, % \bot, \perp - "5E = {100,200}, % \wedge - "5F = {100,200}, % \vee - "60 = { ,300}, % \vdash - "61 = {300, }, % \dashv - "62 = {100,100}, % \lfloor - "63 = {100,100}, % \rfloor - "64 = {100,100}, % \lceil - "65 = {100,100}, % \rceil - "66 = {150, }, % \lbrace - "67 = { ,150}, % \rbrace - "68 = {400, }, % \langle - "69 = { ,400}, % \rangle - "6C = {100,100}, % \updownarrow - "6D = {100,100}, % \Updownarrow - "6E = {100,300}, % \, \backslash, \setminus - "72 = {100,100}, % \nabla - "79 = {200,200}, % \dagger - "7A = {100,100}, % \ddagger - "7B = {100, }, % \mathparagraph - "7C = {100,100}, % \clubsuit - "7D = {100,100}, % \diamondsuit - "7E = {100,100}, % \heartsuit - "7F = {100,100} % \spadesuit -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% "36 = { , }, % \not -% "37 = { , }, % \mapstochar -% "3B = { , }, % \emptyset -% "3C = { , }, % \Re -% "3D = { , }, % \Im -% "40 = { , }, % \aleph -% "5B = { , }, % \cup -% "5C = { , }, % \cap -% "5D = { , }, % \uplus -% "6A = { , }, % \arrowvert, \mid, \vert, | -% "6B = { , }, % \Arrowvert, \parallel, \Vert -% "6F = { , }, % \wr -% "70 = { , }, % \sqrtsign -% "71 = { , }, % \amalg -% "73 = { , }, % \smallint -% "74 = { , }, % \sqcup -% "75 = { , }, % \sqcap -% "76 = { , }, % \sqsubseteq -% "77 = { , }, % \sqsupseteq -% "78 = { , }, % \mathsection -%\fi -% \begin{macrocode} - } - -% \end{macrocode} -% We don't bother about `|largesymbols|', since it will only be used in display -% math, where protrusion doesn't work anyway. It's declared as: -%\begin{verbatim} -%\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n} -%\end{verbatim} -%\iffalse -%\SetProtrusion -% [ name = cmr-math-largesymbols ] -% { encoding = OMX, -% family = cmex } -% { -% "00 % ( -% "01 % ) -% "02 % [ -% "03 % ] -% "04 % \lfloor -% "05 % \rfloor -% "06 % \lceil -% "07 % \rceil -% "08 % \lbrace -% "09 % \rbrace -% "0A % <, \langle -% "0B % >, \rangle -% "0C % \vert, | -% "0D % \Vert -% "0E % / -% "0F % \backslash -% "3A % \lgroup -% "3B % \rgroup -% "3C % \arrowvert -% "3D % \Arrowvert -% "3E % \bracevert -% "3F % \updownarrow -% "40 % \lmoustache -% "41 % \rmoustache -% "46 % \bigsqcup -% "48 % \ointop -% "4A % \bigodot -% "4C % \bigoplus -% "4E % \bigotimes -% "50 % \sum -% "51 % \prod -% "52 % \intop -% "53 % \bigcup -% "54 % \bigcap -% "55 % \biguplus -% "56 % \bigwedge -% "57 % \bigvee -% "60 % \coprod -% "70 % \sqrtsign -% "77 % \Updownarrow -% "78 % \uparrow -% "79 % \downarrow -% "7A % \braceld, \lmoustache -% "7B % \bracerd, \rmoustache -% "7C % \bracelu -% "7D % \braceru -% "7E % \Uparrow -% "7F % \Downarrow -% } -%\fi -% \begin{macrocode} -% -% -% \end{macrocode} -% -% \subsubsection{ symbols} -% -% Settings for the math fonts (\pkg{amssymb}). -%\changes{v1.8}{2005/06/01}{settings for math fonts} -%\changes{v1.9d}{2006/02/04}{tweak settings} -% \begin{macrocode} -%<*cfg-u> -% \end{macrocode} -% Symbol font `a'. -% \begin{macrocode} -%<*msa> -\SetProtrusion - [ name = AMS-a ] - { encoding = U, - family = msa } - { - "05 = {150,250}, % \centerdot - "06 = {100,100}, % \lozenge - "07 = { 50, 50}, % \blacklozenge - "08 = { 50, 50}, % \circlearrowright - "09 = { 50, 50}, % \circlearrowleft - "0A = {100,100}, % \rightleftharpoons - "0B = {100,100}, % \leftrightharpoons - "0D = {-50,200}, % \Vdash - "0E = {-50,200}, % \Vvdash - "0F = {-70,150}, % \vDash - "10 = {100,150}, % \twoheadrightarrow - "11 = {100,150}, % \twoheadleftarrow - "12 = { 50,100}, % \leftleftarrows - "13 = { 50, 80}, % \rightrightarrows - "14 = {120,120}, % \upuparrows - "15 = {120,120}, % \downdownarrows - "16 = {200,200}, % \upharpoonright - "17 = {200,200}, % \downharpoonright - "18 = {200,200}, % \upharpoonleft - "19 = {200,200}, % \downharpoonleft - "1A = { 80,100}, % \rightarrowtail - "1B = { 80,100}, % \leftarrowtail - "1C = { 50, 50}, % \leftrightarrows - "1D = { 50, 50}, % \rightleftarrows - "1E = {250, }, % \Lsh - "1F = { ,250}, % \Rsh - "20 = {100,100}, % \rightsquigarrow - "21 = {100,100}, % \leftrightsquigarrow - "22 = {100, 50}, % \looparrowleft - "23 = { 50,100}, % \looparrowright - "24 = { 50, 80}, % \circeq - "25 = { ,100}, % \succsim - "26 = { ,100}, % \gtrsim - "27 = { ,100}, % \gtrapprox - "28 = {150, 50}, % \multimap - "2B = {100,150}, % \doteqdot - "2C = {100,150}, % \triangleq - "2D = {100, 50}, % \precsim - "2E = {100, 50}, % \lesssim - "2F = { 50, 50}, % \lessapprox - "30 = {100, 50}, % \eqslantless - "31 = { 50, 50}, % \eqslantgtr - "32 = {100, 50}, % \curlyeqprec - "33 = { 50,100}, % \curlyeqsucc - "34 = {100, 50}, % \preccurlyeq - "36 = { 50, }, % \leqslant - "38 = { , 50}, % \backprime - "39 = {250,250}, % \dabar@ : the dash bar in \dash(left,right)arrow - "3C = { 50,100}, % \succcurlyeq - "3E = { , 50}, % \geqslant - "40 = { , 50}, % \sqsubset - "41 = { 50, }, % \sqsupset - "42 = { ,150}, % \vartriangleright, \rhd - "43 = {150, }, % \vartriangleleft, \lhd - "44 = { ,100}, % \trianglerighteq, \unrhd - "45 = {100, }, % \trianglelefteq, \unlhd - "46 = {100,100}, % \bigstar - "48 = { 50, 50}, % \blacktriangledown - "49 = { ,100}, % \blacktriangleright - "4A = {100, }, % \blacktriangleleft - "4B = { ,150}, % \dashrightarrow (the arrow) - "4C = {150, }, % \dashleftarrow - "4D = { 50, 50}, % \vartriangle - "4E = { 50, 50}, % \blacktriangle - "4F = { 50, 50}, % \triangledown - "50 = { 50, 50}, % \eqcirc - "56 = { ,150}, % \Rrightarrow - "57 = {150, }, % \Lleftarrow - "58 = {100,300}, % \checkmark - "5C = { 50, 50}, % \angle - "5D = { 50, 50}, % \measuredangle - "5E = { 50, 50}, % \sphericalangle - "5F = { , 50}, % \varpropto - "60 = {100,100}, % \smallsmile - "61 = {100,100}, % \smallfrown - "62 = { 50, }, % \Subset - "63 = { , 50}, % \Supset - "66 = {150,150}, % \curlywedge - "67 = {150,150}, % \curlyvee - "68 = { 50,150}, % \leftthreetimes - "69 = {100, 50}, % \rightthreetimes - "6C = { 50, 50}, % \bumpeq - "6D = { 50, 50}, % \Bumpeq - "6E = {100, }, % \lll - "6F = { ,100}, % \ggg - "70 = { 50,100}, % \ulcorner - "71 = {100, 50}, % \urcorner - "75 = {150,200}, % \dotplus - "76 = { 50,100}, % \backsim - "78 = { 50,100}, % \llcorner - "79 = {100, 50}, % \lrcorner - "7C = {100,100}, % \intercal - "7D = { 50, 50}, % \circledcirc - "7E = { 50, 50}, % \circledast - "7F = { 50, 50} % \circleddash -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% "00 = { , }, % \boxdot -% "01 = { , }, % \boxplus -% "02 = { , }, % \boxtimes -% "03 = { , }, % \square -% "04 = { , }, % \blacksquare -% "0C = { , }, % \boxminus -% "29 = { , }, % \therefore -% "2A = { , }, % \because -% "35 = { , }, % \leqq -% "37 = { , }, % \lessgtr -% "3A = { , }, % \risingdotseq -% "3B = { , }, % \fallingdotseq -% "3D = { , }, % \geqq -% "3F = { , }, % \gtrless -% "47 = { , }, % \between -% "51 = { , }, % \lesseqgtr -% "52 = { , }, % \gtreqless -% "53 = { , }, % \lesseqqgtr -% "54 = { , }, % \gtreqqless -% "55 = { , }, % \yen -% "59 = { , }, % \veebar -% "5A = { , }, % \barwedge -% "5B = { , }, % \doublebarwedge -% "64 = { , }, % \Cup -% "65 = { , }, % \Cap -% "6A = { , }, % \subseteqq -% "6B = { , }, % \supseteqq -% "72 = { , }, % \circledR -% "73 = { , }, % \circledS -% "74 = { , }, % \pitchfork -% "77 = { , }, % \backsimeq -% "7A = { , }, % \maltese -% "7B = { , }, % \complement -%\fi -% \begin{macrocode} - } - -% -% \end{macrocode} -% Symbol font `b'. -% \begin{macrocode} -%<*msb> -\SetProtrusion - [ name = AMS-b ] - { encoding = U, - family = msb } - { - A = { 50, 50}, % \mathbb - C = { 50, 50}, - G = { , 50}, - L = { , 50}, - P = { , 50}, - R = { , 50}, - T = { , 50}, - V = { 50, 50}, - X = { 50, 50}, - Y = { 50, 50}, - "00 = { 50, 50}, % \lvertneqq - "01 = { 50, 50}, % \gvertneqq - "02 = { 50, 50}, % \nleq - "03 = { 50, 50}, % \ngeq - "04 = {100, 50}, % \nless - "05 = { 50,150}, % \ngtr - "06 = {100, 50}, % \nprec - "07 = { 50,150}, % \nsucc - "08 = { 50, 50}, % \lneqq - "09 = { 50, 50}, % \gneqq - "0A = {100,100}, % \nleqslant - "0B = {100,100}, % \ngeqslant - "0C = {100, 50}, % \lneq - "0D = { 50,100}, % \gneq - "0E = {100, 50}, % \npreceq - "0F = { 50,100}, % \nsucceq - "10 = { 50, }, % \precnsim - "11 = { 50, 50}, % \succnsim - "12 = { 50, 50}, % \lnsim - "13 = { 50, 50}, % \gnsim - "14 = { 50, 50}, % \nleqq - "15 = { 50, 50}, % \ngeqq - "16 = { 50, 50}, % \precneqq - "17 = { 50, 50}, % \succneqq - "18 = { 50, 50}, % \precnapprox - "19 = { 50, 50}, % \succnapprox - "1A = { 50, 50}, % \lnapprox - "1B = { 50, 50}, % \gnapprox - "1C = {150,200}, % \nsim - "1D = { 50, 50}, % \ncong - "1E = {100,150}, % \diagup - "1F = {100,150}, % \diagdown - "20 = {100, 50}, % \varsubsetneq - "21 = { 50,100}, % \varsupsetneq - "22 = {100, 50}, % \nsubseteqq - "23 = { 50,100}, % \nsupseteqq - "24 = {100, 50}, % \subsetneqq - "25 = { 50,100}, % \supsetneqq - "26 = {100, 50}, % \varsubsetneqq - "27 = { 50,100}, % \varsupsetneqq - "28 = {100, 50}, % \subsetneq - "29 = { 50,100}, % \supsetneq - "2A = {100, 50}, % \nsubseteq - "2B = { 50,100}, % \nsupseteq - "2C = { 50,100}, % \nparallel - "2D = {100,150}, % \nmid - "2E = {150,150}, % \nshortmid - "2F = {100,100}, % \nshortparallel - "30 = { ,150}, % \nvdash - "31 = { ,150}, % \nVdash - "32 = { ,100}, % \nvDash - "33 = { ,100}, % \nVDash - "34 = { ,100}, % \ntrianglerighteq - "35 = {100, }, % \ntrianglelefteq - "36 = {100, }, % \ntriangleleft - "37 = { ,100}, % \ntriangleright - "38 = {100,200}, % \nleftarrow - "39 = {100,200}, % \nrightarrow - "3A = {100,100}, % \nLeftarrow - "3B = { 50,100}, % \nRightarrow - "3C = {100,100}, % \nLeftrightarrow - "3D = {100,200}, % \nleftrightarrow - "3E = { 50, 50}, % \divideontimes - "3F = { 50, 50}, % \varnothing - "60 = {200, }, % \Finv - "61 = { , 50}, % \Game - "68 = {100,100}, % \eqsim - "69 = { 50, }, % \beth - "6A = { 50, }, % \gimel - "6B = {150, }, % \daleth - "6C = {200, }, % \lessdot - "6D = { ,200}, % \gtrdot - "6E = {100,200}, % \ltimes - "6F = {150,100}, % \rtimes - "70 = { 50,100}, % \shortmid - "71 = { 50, 50}, % \shortparallel - "72 = {200,300}, % \smallsetminus - "73 = {100,200}, % \thicksim - "74 = { 50,100}, % \thickapprox - "75 = { 50, 50}, % \approxeq - "76 = { 50,100}, % \succapprox - "77 = { 50, 50}, % \precapprox - "78 = {100,100}, % \curvearrowleft - "79 = { 50,150}, % \curvearrowright - "7A = { 50,200}, % \digamma - "7B = {100, 50}, % \varkappa - "7F = {200, } % \backepsilon -% \end{macrocode} -% Remaining slots in the source file. -%\iffalse -% "40 = { , }, % \nexists -% "66 = { , }, % \mho -% "67 = { , }, % \eth -% "7C = { , }, % \Bbbk -% "7D = { , }, % \hslash -% "7E = { , }, % \hbar -%\fi -% \begin{macrocode} - } - -% -% \end{macrocode} -% \subsubsection{Euler} -% -% Euler Roman font (package \pkg{euler}). -%\changes{v1.9e}{2006/07/28}{settings for Euler Roman font} -% \begin{macrocode} -%<*eur> -\SetProtrusion - [ name = euler ] - { encoding = U, - family = eur } - { - "01 = {100,100}, - "03 = {100,150}, - "06 = { ,100}, - "07 = {100,150}, - "08 = {100,100}, - "0A = {100,100}, - "0B = { , 50}, - "0C = { ,100}, - "0D = {100,100}, - "0E = { ,100}, - "0F = {100,100}, - "10 = {100,100}, - "13 = { ,100}, - "14 = { ,100}, - "15 = { , 50}, - "16 = { , 50}, - "17 = { 50,100}, - "18 = { 50,100}, - "1A = { , 50}, - "1B = { , 50}, - "1C = { 50,100}, - "1D = { 50,100}, - "1E = { 50,100}, - "1F = { 50,100}, - "20 = { , 50}, - "21 = { , 50}, - "22 = { 50,100}, - "24 = { , 50}, - "27 = { 50,100}, - 1 = {100,100}, - 7 = { 50,100}, - "3A = {300,500}, - "3B = {200,400}, - "3C = {200,100}, - "3D = {200,200}, - "3E = {100,200}, - A = { ,100}, - D = { , 50}, - J = { 50, }, - K = { , 50}, - L = { , 50}, - Q = { , 50}, - T = { 50, }, - X = { 50, 50}, - Y = { 50, }, - h = { , 50}, - k = { , 50} - } - -% \end{macrocode} -% Extended by the \pkg{eulervm} package. -%\changes{v1.9f}{2006/07/31}{fix: \texttt{euler-vm} did not load \texttt{euler} settings} -% \begin{macrocode} -\SetProtrusion - [ name = euler-vm, - load = euler ] - { encoding = U, - family = zeur } - { - "28 = {100,200}, - "29 = {100,200}, - "2A = {100,150}, - "2B = {100,150}, - "2C = {200,300}, - "2D = {200,300}, - "2E = { ,100}, - "2F = {100, }, - "3F = {150,150}, - "5B = { ,100}, - "5E = {100,100}, - "5F = {100,100}, - "80 = { , 50}, - "81 = {200,250}, - "82 = {100,200} - } - -% -% \end{macrocode} -% Euler Script font (\pkg{eucal}). -% \begin{macrocode} -%<*eus> -\SetProtrusion - [ name = euscript ] - { encoding = U, - family = eus } - { - A = {100,100}, - B = { 50,100}, - C = { 50, 50}, - D = { 50,100}, - E = { 50,100}, - F = { 50, }, - G = { 50, }, - H = { ,100}, - K = { , 50}, - L = { ,150}, - M = { , 50}, - N = { , 50}, - O = { 50, 50}, - P = { 50, 50}, - T = { ,100}, - U = { , 50}, - V = { 50, 50}, - W = { 50, 50}, - X = { 50, 50}, - Y = { 50, }, - Z = { 50,100}, - "00 = {250,250}, - "18 = {200,200}, - "3A = {200,150}, - "40 = { ,100}, - "5E = {100,100}, - "5F = {100,100}, - "66 = { 50, }, - "67 = { , 50}, - "6E = {200,200} - } - -\SetProtrusion - [ name = euscript-vm, - load = euscript ] - { encoding = U, - family = zeus } - { - "01 = {600,600}, - "02 = {200,200}, - "03 = {200,200}, - "04 = {200,200}, - "05 = {150,150}, - "06 = {200,200}, - "07 = {200,200}, - "08 = {100,100}, - "09 = {100,100}, - "0A = {100,100}, - "0B = {100,100}, - "0C = {100,100}, - "0D = {100,100}, - "0E = {150,150}, - "0F = {100,100}, - "10 = {150,150}, - "11 = {100,100}, - "12 = {150,100}, - "13 = {100,150}, - "14 = {150,100}, - "15 = {100,150}, - "16 = {200,100}, - "17 = {100,200}, - "19 = {150,150}, - "1A = {150,100}, - "1B = {100,150}, - "1C = {100,100}, - "1D = {100,100}, - "1E = {250,100}, - "1F = {100,250}, - "20 = {150,200}, - "21 = {150,200}, - "22 = {150,150}, - "23 = {150,150}, - "24 = {100,200}, - "25 = {150,150}, - "26 = {150,150}, - "27 = {100,100}, - "28 = {100,100}, - "29 = {100,150}, - "2A = {100,100}, - "2B = {100,100}, - "2C = {100,100}, - "2D = {150,150}, - "2E = {150,150}, - "2F = {100,100}, - "30 = {100,100}, - "31 = {100,100}, - "32 = {100,100}, - "33 = {100,100}, - "34 = {100,100}, - "35 = {100,100}, - "3E = {150,150}, - "3F = {150,150}, - "60 = { ,200}, - "61 = {200, }, - "62 = {100,100}, - "63 = {100,100}, - "64 = {100,100}, - "65 = {100,100}, - "68 = {300, }, - "69 = { ,300}, - "6C = {100,100}, - "6D = {100,100}, - "6F = {100,100}, - "72 = {100,100}, - "73 = {200,100}, - "76 = { ,100}, - "77 = {100, }, - "78 = { 50, 50}, - "79 = {100,100}, - "7A = {100,100}, - "7D = {150,150}, - "7E = {100,100}, - "A8 = {100,100}, - "A9 = {100,100}, - "AB = {200,200}, - "BA = { ,200}, - "BB = { ,200}, - "BD = {200,200}, - "DE = {200,200} - } - -% -% \end{macrocode} -% Euler Fraktur font (\pkg{eufrak}). -%\changes{v1.9e}{2006/07/28}{complete settings for Euler Fraktur and Script fonts} -% \begin{macrocode} -%<*euf> -\SetProtrusion - [ name = mathfrak ] - { encoding = U, - family = euf } - { - A = { , 50}, - B = { , 50}, - C = { 50, 50}, - D = { , 80}, - E = { 50, }, - G = { , 50}, - L = { , 80}, - O = { , 50}, - T = { , 80}, - X = { 80, 50}, - Z = { 80, 50}, - b = { , 50}, - c = { , 50}, - k = { , 50}, - p = { , 50}, - q = { 50, }, - v = { , 50}, - w = { , 50}, - x = { , 50}, - 1 = {100,100}, - 2 = { 80, 80}, - 3 = { 80, 50}, - 4 = { 80, 50}, - 7 = { 50, 50}, - "12 = {500,500}, - "13 = {500,500}, - ! = { ,200}, - ' = {200,300}, - ( = {200, }, - ) = { ,200}, - * = {200,200}, - + = {200,250}, - - = {200,200}, - {,} = {300,300}, - . = {400,400}, - {=} = {200,200}, - : = { ,200}, - ; = { ,200}, - ] = { ,200} - } - -% -% -% \end{macrocode} -%\subsubsection{Euro symbols} -%\changes{v1.9d}{2006/05/04}{settings for Euro symbols (Adobe, , \pkg{marvosym})} -%\changes{v1.9e}{2006/07/05}{fix: forgotten comma in \file{mt-mvs.cfg}; -% adapt to \pkg{marvosym}'s changed encoding} -% Settings for various Euro symbols (Adobe Euro fonts (packages \pkg{eurosans}, -% \pkg{europs}), Euro fonts (package \pkg{euroitc}) and \pkg{marvosym}\footnote{ -% Of course, there are many more symbols in this font. Feel free to contribute -% protrusion settings!}). -% \begin{macrocode} -%<*cfg-e> -\SetProtrusion -% { encoding = U, -% { encoding = {OT1,U}, -% family = zpeu } -% family = {euroitc,euroitcs} } -% family = mvs } - { -% E = {50, } -% E = {100,50} -% 164 = {50,50}, % \EUR -% 068 = {50,-100} % \EURdig - } - -%<*zpeu|euroitc> -\SetProtrusion - { encoding = U, -% family = zpeu, -% family = {euroitc,euroitcs}, - shape = it* } - { -% E = {100,-50} -% E = {100,} - } - -% -%<*zpeu> -\SetProtrusion - { encoding = U, - family = {zpeus,eurosans} } - { - E = {100,50} - } - -\SetProtrusion - { encoding = U, - family = {zpeus,eurosans}, - shape = it* } - { - E = {200, } - } - -% -% -% \end{macrocode} -% -%\subsection{Interword spacing}\label{sub:conf-spacing} -%\GeneralChanges{Spacing} -% -% Default unit is space. -% -% \begin{macrocode} -%<*m-t> -%%% ----------------------------------------------------------------------- -%%% INTERWORD SPACING - -\SetExtraSpacing - [ name = default ] - { encoding = {OT1,T1,LY1,OT4,QX,T5} } - { -% \end{macrocode} -% These settings are only a first approximation. The following reasoning is from -% a mail from \contributor Ulrich Dirr ^^A private mail, 2005/06/14 -%\ifpdf\IfFileExists{justification.jpg}{^^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). -% ^^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.} -% \label{fig:example-spacing} -% \includegraphics[width=.6\textwidth]{justification.jpg} -% \end{figure}^^A -%}\relax\fi. -% I do not claim to have coped with the task. -%\todo{fix settings} -% -%\begin{quote} -% `The idea is -- analog to the tables for expansion and protrusion -- to -% have tables for optical reduction\slash expansion of spaces in dependence of the -% actual character so that the distance between words is optically equal. -% -% When reducing distances the (weighting) order is: -%\begin{itemize} -% \item after commas -% \begin{macrocode} - {,} = { ,-500,500}, -% \end{macrocode} -% \item in front of capitals which have optical more room on their left -% side, \eg, `A', `J', `T', `V', `W', and `Y' -% [this is not yet possible -- RS] -% \item in front of capitals which have circle/oval shapes on their left -% side, \eg, `C', `G', `O', and `Q' -% [ditto -- RS] -% \item after `r' (because of the bigger optical room on the righthand side) -% \begin{macrocode} - r = { ,-300,300}, -% \end{macrocode} -% \item\relax [before or] after lowercase characters with ascenders -% \begin{macrocode} - b = { ,-200,200}, - d = { ,-200,200}, - f = { ,-200,200}, - h = { ,-200,200}, - k = { ,-200,200}, - l = { ,-200,200}, - t = { ,-200,200}, -% \end{macrocode} -% \item\relax [before or] after lowercase characters with x-height plus descender -% with additional optical space, \eg, `v', or `w' -% \begin{macrocode} - c = { ,-100,100}, - p = { ,-100,100}, - v = { ,-100,100}, - w = { ,-100,100}, - z = { ,-100,100}, - x = { ,-100,100}, - y = { ,-100,100}, -% \end{macrocode} -% \item\relax [before or] after lowercase characters with x-height plus descender -% without additional optical space -% \begin{macrocode} - i = { , 50, -50}, - m = { , 50, -50}, - n = { , 50, -50}, - u = { , 50, -50}, -% \end{macrocode} -% \item after colon and semicolon -% \begin{macrocode} - : = { ,200,-200}, - ; = { ,200,-200}, -% \end{macrocode} -% \item after punctuation which ends a sentence, \eg, period, exclamation -% mark, question mark -% \begin{macrocode} - . = { ,250,-250}, - ! = { ,250,-250}, - ? = { ,250,-250} -% \end{macrocode} -%\end{itemize} -% The order has to be reversed when enlarging is needed.' -%\end{quote} -% \begin{macrocode} - } - -% \end{macrocode} -% Questions are: -%\begin{itemize} -% \item Is the result really better? -% \item Is it overdone? (Try with a |factor| \textless\ 1000.) -% \item Should the first parameter also be used? (Probably.) -% \item What about quotation marks, parentheses etc.? -%\end{itemize} -% -% Furthermore, there seems to be a \pdftex\ bug with spacing in combination -% with a non-zero \cmd\spaceskip\ -% (reported by \contributor Axel Berger ): -% ^^A dctt, `myheadings, markboth', 2008/10/06, MID: <200810062134.a58193@b.maus.de> -%\todo{report \pdftex\ bug} -%\begin{verbatim} -%\parfillskip0pt -%\rightskip0pt plus 1em -%\spaceskip\fontdimen2\font -% test test\par -%\pdfadjustinterwordglue2 -%\stbscode\font`t=-50 -% test test -%\bye -%\end{verbatim} -% Some more characters in .\footnote{Contributed by -% \contributor Karl Karlsson .} -%\changes{v2.3e}{2009/10/28}{settings for encoding (contributed by -% \contributor Karl Karlsson )} -% ^^A private mail, 2009/10/21 -% \begin{macrocode} -%<*m-t> -\SetExtraSpacing - [ name = T2A, - load = default ] - { encoding = T2A, - family = cmr } - { - \cyrg = { ,-300,300}, - \cyrb = { ,-200,200}, - \cyrk = { ,-200,200}, - \cyrs = { ,-100,100}, - \cyrr = { ,-100,100}, - \cyrh = { ,-100,100}, - \cyru = { ,-100,100}, - \cyrt = { , 50, -50}, - \cyrp = { , 50, -50}, - \cyri = { , 50, -50}, - \cyrishrt = { , 50, -50}, - } - -% -% \end{macrocode} -% -% \subsubsection{Nonfrenchspacing} -% The following settings simulate \cmd\nonfrenchspacing\ (since space factors -% will be ignored when spacing adjustment is in effect). They may be used for -% English contexts. -% -% From the \TeX book: -%\begin{quote} -% `If the -% space factor $f$ is different from 1000, the interword glue is computed as -% follows: Take the normal space glue for the current font, and add the -% extra space if $f\ge2000$. -% [\,\dots] -% Then the stretch component is multiplied by $f/1000$, while the shrink -% component is multiplied by $1000/f$.' -%\end{quote} -% The `extra space' (\fontdim7) for Computer Modern Roman is a third of -% \fontdim2, \ie, 333. -% \begin{macrocode} -\SetExtraSpacing - [ name = nonfrench-cmr, - load = default, - context = nonfrench ] - { encoding = {OT1,T1,LY1,OT4,QX,T5}, - family = cmr } - { -% \end{macrocode} -% \file{latex.ltx} has: -%\begin{verbatim}[morekeywords={[1]{\nonfrenchspacing}}] -%\def\nonfrenchspacing{ -% \sfcode`\. 3000 -% \sfcode`\? 3000 -% \sfcode`\! 3000 -%\end{verbatim} -% \begin{macrocode} - . = {333,2000,-667}, - ? = {333,2000,-667}, - ! = {333,2000,-667}, -% \end{macrocode} -%\begin{verbatim} -% \sfcode`\: 2000 -%\end{verbatim} -% \begin{macrocode} - : = {333,1000,-500}, -% \end{macrocode} -%\begin{verbatim} -% \sfcode`\; 1500 -%\end{verbatim} -% \begin{macrocode} - ; = { , 500,-333}, -% \end{macrocode} -%\begin{verbatim} -% \sfcode`\, 1250 -%\end{verbatim} -% \begin{macrocode} - {,}= { , 250,-200} -% \end{macrocode} -%\begin{verbatim} -%} -%\end{verbatim} -% \begin{macrocode} - } - -% \end{macrocode} -% \pkg{fontinst}, however, which is also used to create the \pkg{PSNFSS} font -% metrics, sets \fontdim7 to 240 by default. Therefore, the fallback settings -% use this value for the first component. -% \begin{macrocode} -\SetExtraSpacing - [ name = nonfrench-default, - load = default, - context = nonfrench ] - { encoding = {OT1,T1,LY1,OT4,QX,T5} } - { - . = {240,2000,-667}, - ? = {240,2000,-667}, - ! = {240,2000,-667}, - : = {240,1000,-500}, - ; = { , 500,-333}, - {,}= { , 250,-200} - } - -% \end{macrocode} -% -% \subsection{Additional kerning} -%\GeneralChanges{Kerning} -% -% Default unit is 1\,em. -% -% \begin{macrocode} -%%% ----------------------------------------------------------------------- -%%% ADDITIONAL KERNING - -% \end{macrocode} -% A dummy list to be loaded when no context is active. -% \begin{macrocode} -\SetExtraKerning - [ name = empty ] - { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} } - { } - -% \end{macrocode} -% -%\subsubsection{French} -% -% The ratio of \fontdim2 to \fontdim6 varies for different fonts, so that -% either the kerning of the colon (which should be a space, \ie, \fontdim2) or -% that of the other punctuation characters (\TeX's \cmd\thinspace, \ie, one -% sixth of \fontdim6) may be inaccurate, depending on which |unit| we choose -% (|space| or |1em|). For Times, for example, a thin space would be 665. I -% don't know whether French typography really wants a thin space, or rather (as -% it happens to turn out with ) half a space. -% (Wikipedia\footnote{\url{http://fr.wikipedia.org/wiki/Espace_typographique}, 5 July 2007.} -% claims it should be a quarter of an em, which seems too much to me; then -% again, it also says that this \emph{was} a thin space in French typography.) -% \begin{macrocode} -\SetExtraKerning - [ name = french-default, - context = french, - unit = space ] - { encoding = {OT1,T1,LY1} } - { - : = {1000,}, % = \fontdimen2 - ; = {500, }, % ~ \thinspace - ! = {500, }, - ? = {500, } - } - -% \end{macrocode} -% These settings have the disadvantage that a word following a left guillemet -% will not be hyphenated. This might be fixed in \pdftex. -% \begin{macrocode} -\SetExtraKerning - [ name = french-guillemets, - context = french-guillemets, - load = french-default, - unit = space ] - { encoding = {T1,LY1} } - { - \guillemotleft = { ,800}, % = 0.8\fontdimen2 - \guillemotright = {800, } - } - -\SetExtraKerning - [ name = french-guillemets-OT1, - context = french-guillemets, - load = french-default, - unit = space ] - { encoding = OT1 } - { } - -% \end{macrocode} -% -%\subsubsection{Turkish} -% -% \begin{macrocode} -\SetExtraKerning - [ name = turkish, - context = turkish ] - { encoding = {OT1,T1,LY1} } - { - : = {167, }, % = \thinspace - ! = {167, }, - {=} = {167, } - } - -% -% -% \end{macrocode} -%^^A\changes{v2.0}{2006/12/28}{remove \texttt{letterspacing} settings} -%\GeneralChanges* -% -%\section{Auxiliary file for micro fine tuning} -% -% This file can be used to test protrusion and expansion settings. -% \begin{macrocode} -%<*test> -\documentclass{article} - -%% Here you can specify the font you want to test, using -%% the commands \fontfamily, \fontseries and \fontshape. -%% Make sure to end all lines with a comment character! -\newcommand*\TestFont{% - \fontfamily{ppl}% -%% \fontseries{b}% -%% \fontshape{it}% sc, sl -} - -\usepackage{ifthen} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage[verbose,expansion=alltext,stretch=50]{microtype} - -\pagestyle{empty} -\setlength{\parindent}{0pt} -\newcommand*\crulefill{\cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill} -\newcommand*\testprotrusion[2][]{% - \ifthenelse{\equal{#1}{r}}{}{#2}% - lorem ipsum dolor sit amet, - \ifthenelse{\equal{#1}{r}}{\crulefill}{\leftarrowfill} #2 - \ifthenelse{\equal{#1}{l}}{\crulefill}{\rightarrowfill} - you know the rest% - \ifthenelse{\equal{#1}{l}}{}{#2}% - \linebreak - {\fontencoding{\encodingdefault}% - \fontseries{\seriesdefault}% - \fontshape{\shapedefault}% - \selectfont - Here is the beginning of a line, \dotfill and here is its end}\linebreak -} -\newcommand*\showTestFont{\expandafter\stripprefix\meaning\TestFont} -\def\stripprefix#1>{} -\newcount\charcount -\begin{document} - -\microtypesetup{expansion=false} - -{\centering The font in this document is called by:\\ - \texttt{\showTestFont}\par}\bigskip - -\TestFont\selectfont - This line intentionally left empty\linebreak -%% A -- Z -\charcount=65 -\loop - \testprotrusion{\char\charcount} - \advance\charcount 1 - \ifnum\charcount < 91 \repeat -%% a -- z -\charcount=97 -\loop - \testprotrusion{\char\charcount} - \advance\charcount 1 - \ifnum\charcount < 123 \repeat -%% 0 -- 9 -\charcount=48 -\loop - \testprotrusion{\char\charcount} - \advance\charcount 1 - \ifnum\charcount < 58 \repeat -%% - \testprotrusion[r]{,} - \testprotrusion[r]{.} - \testprotrusion[r]{;} - \testprotrusion[r]{:} - \testprotrusion[r]{?} - \testprotrusion[r]{!} - \testprotrusion[l]{\textexclamdown} - \testprotrusion[l]{\textquestiondown} - \testprotrusion[r]{)} - \testprotrusion[l]{(} - \testprotrusion{/} - \testprotrusion{\char`\\} - \testprotrusion{-} - \testprotrusion{\textendash} - \testprotrusion{\textemdash} - \testprotrusion{\textquoteleft} - \testprotrusion{\textquoteright} - \testprotrusion{\textquotedblleft} - \testprotrusion{\textquotedblright} - \testprotrusion{\quotesinglbase} - \testprotrusion{\quotedblbase} - \testprotrusion{\guilsinglleft} - \testprotrusion{\guilsinglright} - \testprotrusion{\guillemotleft} - \testprotrusion{\guillemotright} - -\newpage -The following displays the current font stretched by 5\%, -normal, and shrunk by 5\%: - -\bigskip -\newlength{\MTln} -\newcommand*\teststring - {ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789} -\settowidth{\MTln}{\teststring} -\microtypesetup{expansion=true} - -\parbox{1.05\MTln}{\teststring\linebreak\\ - \teststring}\par\bigskip -\parbox{0.95\MTln}{\teststring} - -\end{document} -% -% \end{macrocode} -% Needless to say that things may always be improved. For suggestions, mail to -% \mailtoRS. -% -% ^^A ------------------------------------------------------------------------- -%\makeatother -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \CheckSum{9578} -% -% \Finale -% -\endinput -% diff --git a/info/translations/microtype/de/microtype-DE.pdf b/info/translations/microtype/de/microtype-DE.pdf deleted file mode 100644 index 1188cac437..0000000000 Binary files a/info/translations/microtype/de/microtype-DE.pdf and /dev/null differ -- cgit v1.2.3