% \iffalse meta-comment % % Copyright 2010 - 2012 by Boris Oriet % % This file 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 2008/05/04 or later. % % This file has the LPPL maintenance status "author-maintained". % % \fi % % \iffalse %<*driver> \ProvidesFile{chextras.dtx} \documentclass[a4paper]{ltxdoc} \usepackage{hypdoc} \usepackage{metalogo} \pdfstringdefDisableCommands{\def\url{}} \makeatletter \let\PrintMacroName\HDorg@PrintMacroName \let\PrintDescribeMacro\HDorg@PrintDescribeMacro \makeatother \setlength\parindent{0pt} \CodelineIndex \RecordChanges \begin{document} \DocInput{chextras.dtx} \end{document} % % \fi % % \CheckSum{844} % % \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 \~} % % \changes{v1.0}{2010/10/10}{Initial version} % \changes{v1.01}{2012/07/20}{LuaTeX compatiblity} % % \title{The \textsf{chextras} Package % \thanks{This document corresponds to \textsf{chextras} v1.01, dated 2012/07/20.}} % \author{Boris \textsc{Oriet}\\\url{http://boris.oriet.net}} % \maketitle % \bigskip\bigskip % \tableofcontents % \pagebreak % % \section{Introduction} % % The \textsf{chextras} package is a companion for the \textsf{chletter} document class and % other classes. It is targeted at the Swiss typesetter.\bigskip % % It simplifies the preparation of documents and letters by loading and % setting up font, linguistic and other common packages.\bigskip % % While it is linked to the \textsf{chletter} document class, it is not tied to it % and may be used as a general purpose toolbox for casual writing.\bigskip % % This package is compatible with with \LaTeX, Lua\TeX\ and \XeTeX, trying to take in % account their specifics and setting things up accordingly.\bigskip % % A bunch of options are provided to easily alter the behaviour of loaded % packages. Additional options allow for disabling unnecessary features. % % \section{Usage} % % Ideally, the \textsf{chextras} package is loaded just after the document class.\medskip % % Please be aware that \textbf{sources have to be |utf8| (or |ascii7|) encoded}! % % \begin{verbatim} % \documentclass{chletter} % \usepackage[english]{chextras} % \begin{document} % Hello World! % \end{document} % \end{verbatim} % % \subsection{Options} % % \subsubsection{Font options} % % Fonts and encodings are always loaded. The following options are cumulative.\medskip % % \DescribeMacro{nomath} % This option disables the \textsf{Latin Modern} |T1| math fonts.\smallskip % % \DescribeMacro{lighttt} % This option is to select the light version of \textsf{Latin Modern Mono} at document % level.\smallskip % % \DescribeMacro{variablett} % This option sets the proportional variant of \textsf{Latin Modern Mono} at document % level.\smallskip % % \DescribeMacro{oldstyle} % This option activates the oldstyle figures at document level. % % \subsubsection{Linguistic options} % % \DescribeMacro{german} % \DescribeMacro{french} % \DescribeMacro{italian} % \DescribeMacro{english} % Selecting one of these options will trigger the execution of a linguistic package, either % \textsf{babel} under \LaTeX\ and Lua\TeX, or \textsf{polyglossia} under \XeTeX. To have more % than one language in the document, the appropriate commands supplied by the linguistic % packages should be used. % % \subsubsection{Hyperlinks options} % % \DescribeMacro{black} % \DescribeMacro{gray} % \DescribeMacro{color} % Choosing one of these options will prompt the loading of the \textsf{hyperref} package. % The color will define how the links appear: black, gray or in the default % \textsf{hyperref} colors. Please note that no box is drawn around the links, they are % directly colored. % % \subsubsection{Disable options} % % The default settings provided by the \textsf{chextras} package should be universal enough % for everyday use. However, special cases could require to disable some settings.\medskip % % \DescribeMacro{stdshape} % \LaTeX\ doesn't handle mixed shapes (|\emph{textsc{Hello World!}}|). \textsf{chextras} % provides a shape merging mecanism which can be cancelled by this option.\medskip % % \DescribeMacro{stdspace} % If loaded with the |french| option, the \textsf{chextras} package will alter the punctuation % spacing set by the linguistic packages. This option resets the default spacing.\medskip % % \DescribeMacro{stdfield} % When the \textsf{hyperref} package is loaded, the pdf author, title and subject fields are % filled according to document values. This option prevents this (for privacy).\medskip % % \DescribeMacro{stdparis} % The \textsf{chextras} package sets |\parindent| and |\parskip| to respectively |18pt| and % |9pt|. This option is to use the values defined at class level.\medskip % % \DescribeMacro{stddimen} % Used with any class, \textsf{chextras} sets the dimensions of text to the values given by % \textsf{chletter}. To prevent these changes, the |stddimen| option may be applied.\medskip % % \DescribeMacro{stdmgpar} % The margin paragraph layout is set to the \textsf{chletter} class values, which are absolute % rather than linked to the font size. This option allows to retain the defaults.\medskip % % \DescribeMacro{stdlabel} % List labels are set by the standard classes as a function of the point size. Unless this % option is set, labels are set to fixed values, related to |\parindent|.\medskip % % \DescribeMacro{stdlists} % Lists are adjusted to a more compact layout. The vertical flow is better thanks to rubber % lengths. This option reverts the lists to their class presets.\medskip % % \DescribeMacro{stditems} % Labels are lightened by using endashes at every level. If a combinaison of dashes, bullets, % asterisks and periods is prefered, this option reverts to these defaults.\medskip % % \DescribeMacro{stdskips} % The package makes |\parskip| `stretchable', thus enabling page and column bottom % balancing. This option cancels the alteration of |\parskip|.\medskip % % \DescribeMacro{stdnotes} % The layout of the footnotes is deeply modified in an attempt to get something % visually more pleasing. The standard footnotes are reset by this option.\medskip % % \DescribeMacro{stdrules} % This package sets thinner rules than the \LaTeX\ kernel or the standard classes (|.25pt| % instead of |.4pt|). This option returns the rules to the standard value. % % \subsection{Font selection} % % The \textsf{chextras} package loads the \textsf{Latin Modern} fonts instead of the older % \textsf{Computer Modern} fonts. Moreover, it always uses |utf8| as input encoding, hence % requiring |utf8| (or |ascii7| which is a subset of |utf8|) encoded sources. At lower level, % font mecanisms deeply depend on the engine (\LaTeX, Lua\TeX\ or \XeTeX) and we have to % manage this situation with addtional font definition files. Finally, a little trick converts % the \textsc{alt\,+\,space} character to a |\nobreakspace|, thus enabling correct formatting % of text produced by common word processors. % % \subsubsection{Oldstyle numbers} % % \DescribeMacro{\rmosfamily} % \DescribeMacro{\sfosfamily} % \DescribeMacro{\ttosfamily} % \DescribeMacro{\textrmos} % \DescribeMacro{\textsfos} % \DescribeMacro{\textttos} % These macros take advantage of features included in OpenType \textsf{Latin Modern} fonts. % They don't require the presence of any external package, but rely on specific |.fd| files % packed with \textsf{chextras}. With \LaTeX\ and Lua\TeX, |clm| virtual fonts are used; % with \XeTeX, system fonts are called. |\rmosfamily|, |\sfosfamily| and |ttosfamily| are the % respective oldstyle numbers counterparts of |\rmfamily|, |sffamily| and |ttfamily|. The % commands |\textrmos|, |\textsfos| and |\textttos| are also defined. % % \subsubsection{Slanted capitals} % % \DescribeMacro{\sishape} % \DescribeMacro{\textsi} % Slanted small capitals are available as a |\sishape| with the associated |\textsi| command. % Example: |\textsi{Hello World!}|. % % \subsection{Additions} % % \subsubsection{Compatibility layer for \textsf{chletter}} % % \DescribeMacro{\conc} % The code overhaul between |v1.0| and |v2.0| of the \textsf{chletter} class has led to some % incompatibilities which are remedied here (for example the frequently used |\conc| % macro is not implemented in the new version of \textsf{chletter}. % % \subsubsection{Markup commands} % % \DescribeMacro{\ccname} % \DescribeMacro{\enclname} % These values are localized according to Swiss habits. They are used by the generic letter % classes (standard \textsf{letter} and \textsf{chletter} of course).\medskip % % \DescribeMacro{\authorname} % \DescribeMacro{\titlename} % \DescribeMacro{\datename} % These are shortcuts for \LaTeX\ internals |\@author|, |\@title| and |\@date| (respectively % set by |\author|, |\title| and |\date|). They are here to avoid an extraneous |\makeatletter|. % Please note that |\jobname| is set by the kernel. % % \subsubsection{Formatting commands} % % \DescribeMacro{\up} % \DescribeMacro{\bsc} % \DescribeMacro{\no} % \DescribeMacro{\ier} % These convenient macros are sometimes defined by linguistic or other packages. % |\up| is a shortcut for |\textsuperscript|. |\bsc| means `boxed small caps' and is a % non breaking version of |\textsc|. |\no| is the formal abreviation of french ``num\'ero''. % |\ier| is the formal abbreviation of french ``premier''.\pagebreak % % \section{Compatibility} % % The \textsf{chextras} package acts as a wrapper for some \LaTeX\ characteristics and packages % that are in constant evolution. It is therefore difficult to offer any warranty on the % behaviour of the different package features within different \TeX\ environments. % % \subsection{With distributions} % % The \textsf{chextras} package is intended to be used with the full version of \TeX Live 2012. % It may encounter trouble with earlier versions of \TeX Live or other distributions. % % \subsection{With engines} % % The \textsf{chextras} package is able to take advantage of \LaTeX\ (\textsf{pdftex v1.40}), % Lua\TeX\ (\textsf{luatex v0.70}) and \XeTeX\ (\textsf{xetex v0.9997}). % % \subsection{With regular classes} % % There should be no problem using \textsf{chextras} with any reasonably generic class. % It is intended to be used with \textsf{chletter}, but perfectly % adapts to other standard classes. % % \subsection{With other packages} % % The \textsf{chextras} package at least requires \textsf{fixltx2e~v1.1}, \textsf{lmodern~v1.6} % and \textsf{fontenc~v1.99}; respectively \textsf{inputenc v1.1} (\LaTeX), \textsf{luainputenc~v0.973} % (Lua\TeX) or \textsf{xunicode~v0.95} (\XeTeX). For some additional features, \textsf{chextras} % uses \textsf{babel~v3.8} or \textsf{polyglossia~v1.2.0} and \textsf{hyperref~v6.81}. % These packages would load another bunch of related packages when called (please look at their % respective documentation). Older or newer versions of these packages could break % \textsf{chextras} at some point.\medskip % % \textsf{chextras} aims at avoiding packages overload. The minimum set of % packages and font definitions is invoked by: % |\usepackage[nomath]{chextras}|\medskip % % Please note that under \XeTeX, the \textsf{fontspec} package is not required nor loaded by % the \textsf{chextras} package. This is a design decision which doesn't prevent the user from % adding a |\usepackage{fontspec}| (or more generally a |\usepackage{xltxtra}|), preferably % before the \textsf{chextras} call (in order to keep the |oldstyle| option relevant).\medskip % % There is no known `unintentional' macro clash. Please remember that some macros provided by % the \textsf{chletter} class and the \textsf{babel} |frenchb| language are redefined and that % some values (for example the document margins) are deliberately modified. A bunch of package % options are present to cancel some unwanted alterations. % % \subsection{With text and font encodings} % % The \textsf{chextras} requires |utf8| or |ascii7| sources. There is no provision for any other % encoding scheme. \textsf{Latin Modern v2.004} fonts with the appropriate |T1| (for \LaTeX\ and % Lua\TeX) or |EU1| (for \XeTeX) encodings must be available. For oldstyle figures, the provided % font definitions |t1lmros.fd|, |t1lmssos.fd|, |t1lmttos.fd|, |t1lmvttos.fd|; and |eu1lmros.fd|, % |eu1lmssos.fd|, |eu1lmttos.fd|, |eu1lmvttos.fd|, are needed. Please note that the % \textsf{cfr-lm v1.3} package, while not called by \textsf{chextras}, is required under \LaTeX\ % and Lua\TeX\ because of the associated font definitions (|clm| virtual fonts, built upon |lm| % fonts, are used in this case). % % \StopEventually % % \pagebreak % % \section{Implementation} % % The \textsf{chextras} code is mostly pure \LaTeX, with few \TeX\ primitives. It is % however fairly compact. Its main parts are the selection and configuration of the input and % font encodings (\textsf{inputenc} for \LaTeX, \textsf{luainputenc} for Lua\TeX\ or % \textsf{xunicode} for \XeTeX, plus \textsf{fontenc} in any case), the linguistic packages (either % \textsf{babel} or \textsf{polyglossia}), and finally the \textsf{hyperref} package. Another % part of the code handles the document layout settings, taking in account some `disable' % package options. The last part provides a few convenient commands. % % \subsection{Initial code} % % \begin{macrocode} %<*chextras.sty> % \end{macrocode} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1996/06/01] \ProvidesPackage{chextras}[2012/07/20 v1.01 Swiss companion package] % \end{macrocode} % % \subsubsection{Declaring options} % % The following four options are font related and cumulative. % % \begin{macro}{nomath} % The \textsf{lmodern} package takes care of this flag. % % \begin{macrocode} \DeclareOption{nomath}{\PassOptionsToPackage{nomath}{lmodern}} % \end{macrocode} % \end{macro} % % \begin{macro}{lighttt} % Both the \textsf{lmodern} package and \textsf{chextras} font definitions take care of % this flag. % % \begin{macrocode} \DeclareOption{lighttt}{\PassOptionsToPackage{lighttt}{lmodern}} % \end{macrocode} % \end{macro} % % \begin{macro}{variablett} % Both the \textsf{lmodern} package and \textsf{chextras} font definitions take care of % this flag. % % \begin{macrocode} \DeclareOption{variablett}{\PassOptionsToPackage{variablett}{lmodern}} % \end{macrocode} % \end{macro} % % \begin{macro}{oldstyle} % This option involves additional font definitions and is treated at \textsf{chextras} level. % % \begin{macrocode} \DeclareOption{oldstyle}{\old@styletrue} % \end{macrocode} % \end{macro} % % \begin{macro}{german} % \begin{macro}{french} % \begin{macro}{italian} % \begin{macro}{english} % The language options are mutually exclusive. If none of theses options is given, then the % linguistic packages won't be loaded. To use more than one language in the document, one % should use the \textsf{babel} or \textsf{polyglossia} dedicated systems (either pass % languages as global options or |\setotherlanguages|). % % \begin{macrocode} \DeclareOption{german}{\def\load@lang{german}} \DeclareOption{french}{\def\load@lang{french}} \DeclareOption{italian}{\def\load@lang{italian}} \DeclareOption{english}{\def\load@lang{english}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{black} % \begin{macro}{gray} % \begin{macro}{color} % The color options are mutually exclusive. If none of theses options is given, then the % \textsf{hyperref} package won't be loaded (the `argument carrier' is also a flag). Please % note that the \textsf{graphicx} and \textsf{color} packages will be loaded as a side effect. % % \begin{macrocode} \DeclareOption{black} {\def\load@href% {linkcolor=black,filecolor=black,urlcolor=black}} \DeclareOption{gray} {\def\load@href% {linkcolor=[gray]{0.5},filecolor=[gray]{0.5},urlcolor=[gray]{0.5}}} \DeclareOption{color} {\def\load@href% {}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % These options simply alter the value of an associated boolean for later retrieval. % \begin{macrocode} \DeclareOption{stdshape}{\std@shapetrue} \DeclareOption{stdspace}{\std@spacetrue} \DeclareOption{stdfield}{\std@fieldtrue} \DeclareOption{stdparis}{\std@paristrue} \DeclareOption{stddimen}{\std@dimentrue} \DeclareOption{stdskips}{\std@skipstrue} \DeclareOption{stdmgpar}{\std@mgpartrue} \DeclareOption{stdlists}{\std@liststrue} \DeclareOption{stdlabel}{\std@labeltrue} \DeclareOption{stditems}{\std@itemstrue} \DeclareOption{stdnotes}{\std@notestrue} \DeclareOption{stdrules}{\std@rulestrue} % \end{macrocode} % \begin{macrocode} \newif\ifold@style % \end{macrocode} % \begin{macrocode} \newif\ifstd@shape \newif\ifstd@space \newif\ifstd@field \newif\ifstd@paris \newif\ifstd@dimen \newif\ifstd@skips \newif\ifstd@mgpar \newif\ifstd@lists \newif\ifstd@label \newif\ifstd@items \newif\ifstd@notes \newif\ifstd@rules % \end{macrocode} % % \subsubsection{Executing options} % % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % % \subsection{Package loading} % % \subsubsection{Input and font encoding packages} % % Here we test for the engine. In \LaTeX\ and Lua\TeX\ cases, |T1| encoding is set for later % call of \textsf{fontenc}, then the relevant \textsf{inputenc} (with |utf8|) is loaded. The % last line trick converts the |0x00a0| character (\textsc{alt\,+\,space}) to something like % |\nobreakspace|. % % \begin{macrocode} \expandafter\ifx\csname XeTeXrevision\endcsname\relax \def\UTFencname{T1} \expandafter\ifx\csname directlua\endcsname\relax \RequirePackage[utf8]{inputenc} \else \RequirePackage[utf8]{luainputenc} \fi \DeclareUnicodeCharacter{00A0}{\nobreak\space} % \end{macrocode} % % In the \XeTeX\ case, |EU1| encoding is set for later call of \textsf{fontenc}. % \textsf{fontspec} is bypassed by design decision. The last line is the non \textsf{inputenc} % version of the |0x00a0| trick. % % \begin{macrocode} \else \def\UTFencname{EU1} \RequirePackage{xunicode} \catcode`^^a0=\active\def^^a0{\nobreak\space} \fi % \end{macrocode} % % Finally the required packages are loaded. % % \begin{macrocode} \RequirePackage{fixltx2e} \RequirePackage[\UTFencname]{fontenc} \RequirePackage{lmodern} % \end{macrocode} % % \begin{macro}{\rmosfamily} % \begin{macro}{\sfosfamily} % \begin{macro}{\ttosfamily} % \begin{macro}{\textrmos} % \begin{macro}{\textsfos} % \begin{macro}{\textttos} % We previously have set the \textsf{Latin Modern} fonts as the document's default by loading % the \textsf{lmodern} package. The font selection scheme for oldstyle figures is initialized % according to the font definitions provided with this package. Under \XeTeX\ things are % straightforward: we just apply |otf| features; under \LaTeX\ or Lua\TeX\ we relie on the % |clm| virtual fonts from \textsf{cfr-lm} package (see the |.fd| files below for a deeper % sight into those things). The |variablett| option is cryptically treated here! % % \begin{macrocode} \DeclareRobustCommand\rmosfamily{\fontfamily\rmosdefault\selectfont} \DeclareRobustCommand\sfosfamily{\fontfamily\sfosdefault\selectfont} \DeclareRobustCommand\ttosfamily{\fontfamily\ttosdefault\selectfont} \DeclareTextFontCommand{\textrmos}{\rmosfamily} \DeclareTextFontCommand{\textsfos}{\sfosfamily} \DeclareTextFontCommand{\textttos}{\ttosfamily} \edef\rmosdefault{\rmdefault os} \edef\sfosdefault{\sfdefault os} \edef\ttosdefault{\ttdefault os} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{oldstyle} % Remember that |\rmdefault|, |\sfdefault| and |\ttdefault| are the NFSS defaults. % % \begin{macrocode} \ifold@style \renewcommand\rmdefault{\rmosdefault} \renewcommand\sfdefault{\sfosdefault} \renewcommand\ttdefault{\ttosdefault} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{stdshape} % \begin{macro}{\sishape} % \begin{macro}{\textsi} % This code is borrowed from \textsf{fontspec v1.18}. Its purpose is to merge % some font shapes in order to support constructs like |\textsc{\emph{Hello World!}}|. % The macros |\sishape| and |\textsi| are defined for direct output of slanted small caps. % % \begin{macrocode} \ifstd@shape\else \def\sidefault{\scdefault\sldefault} \DeclareRobustCommand{\sishape} {\not@math@alphabet\sishape\relax\fontshape\sidefault\selectfont} \DeclareTextFontCommand{\textsi}{\sishape} \newcommand*{\ch@mrg}[3]{\edef\@tempa{#1}\edef\@tempb{#2}% \ifx\f@shape\@tempb \ifcsname\f@encoding/\f@family/\f@series/#3\endcsname \edef\@tempa{#3}\fi\fi\fontshape{\@tempa}\selectfont} \DeclareRobustCommand{\itshape} {\not@math@alphabet\itshape\mathit \ch@mrg\itdefault\scdefault\sidefault} \DeclareRobustCommand{\slshape} {\not@math@alphabet\slshape\relax \ch@mrg\sldefault\scdefault\sidefault} \DeclareRobustCommand{\scshape} {\not@math@alphabet\scshape\relax \ch@mrg\scdefault\itdefault\sidefault} \DeclareRobustCommand{\upshape} {\not@math@alphabet\upshape\relax \ch@mrg\updefault\sidefault\scdefault} \fi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \subsubsection{Linguistic packages} % % If no linguistic option was given, we do nothing. % % \begin{macrocode} \expandafter\ifx\csname load@lang\endcsname\relax % \end{macrocode} % % \begin{macro}{stdspace} % Otherwise we test for \XeTeX\ and load \textsf{babel} if false, with the selected language % as package option. Please note that to load other languages, the user will have to relie % on global options. Finally, we test for the |frenchb.ldf| language and set up some of its % options according to the boolean |std@space|. % % \begin{macrocode} \else \expandafter\ifx\csname XeTeXrevision\endcsname\relax \RequirePackage[\load@lang]{babel} \expandafter\ifx\csname frenchbsetup\endcsname\relax \else \frenchbsetup{og=«,fg=»,StandardLayout=true,FrenchSuperscripts=false} \ifstd@space\else\frenchbsetup{ThinColonSpace=true}\fi \fi % \end{macrocode} % % In the \XeTeX\ case, we load \textsf{polyglossia} with a dirty trick to prevent it from % calling \textsf{fontspec}. The default language is set with the dedicated command (the user % can load alternate languages with |\setotherlanguages|). Finally, we dispense a heavy patch % to the \textsf{polyglossia} |gloss-french.ldf|, taking in account |std@space|. % % \changes{v1.01}{2012/07/20}{ExplSyntaxOff trick} % % \begin{macrocode} \else \RequirePackage{etoolbox} \RequirePackage{xkeyval} \RequirePackage{makecmds} \let\old@Require\RequirePackage \let\old@ExplsyntaxOn\ExplSyntaxOn\let\old@ExplsyntaxOff\ExplSyntaxOff \def\new@Require#1[#2]{}\def\new@ExplSyntax{} \let\RequirePackage\new@Require \let\ExplSyntaxOn\new@ExplSyntax\let\ExplSyntaxOff\new@ExplSyntax \old@Require[nolocalmarks]{polyglossia}[2010/07/27] \let\RequirePackage\old@Require \let\ExplSyntaxOn\old@ExplSyntaxOn\let\ExplSyntaxOff\old@ExplSyntaxOff \setdefaultlanguage{\load@lang} \def\ch@thn{\nobreak\hskip.166667em plus.083333em minus\z@\relax} \def\ch@gll{\nobreak\hskip.25em plus\z@ minus.083333em\relax} \ifstd@space\def\ch@thk{\nobreak\space\relax} \else\let\ch@thk\ch@thn\fi \addto\french@punctuation {\XeTeXinterchartoks\z@\french@punctthin={\ch@thn} \XeTeXinterchartoks\z@\french@punctthick={\ch@thk} \XeTeXinterchartoks255\french@punctthin={\xpg@unskip\ch@thn} \XeTeXinterchartoks255\french@punctthick={\xpg@unskip\ch@thk} \XeTeXinterchartoks\french@punctguillstart\z@={\ch@gll} \XeTeXinterchartoks\z@\french@punctguillend={\ch@gll} \XeTeXinterchartoks\french@punctguillstart255={\ch@gll\xpg@nospace} \XeTeXinterchartoks255\french@punctguillend={\xpg@unskip\ch@gll} \XeTeXinterchartoks\french@punctguillend\french@punctthin={\ch@thn} \XeTeXinterchartoks\french@punctguillend\french@punctthick={\ch@thk} \XeTeXinterchartoks\french@punctthin\french@punctguillend={\ch@gll} \XeTeXinterchartoks\french@punctthick\french@punctguillend={\ch@gll}} \fi % \end{macrocode} % \end{macro} % % \begin{macro}{\ccname} % \begin{macro}{\enclname} % The following lines are common to the two linguistic systems: |\addto| is implemented in % \textsf{polyglossia} as a shortcut for the \textsf{etoolbox} |\gappto| macro. % % \begin{macrocode} \addto\captionsgerman {\def\ccname{\emph{Vert.}}\def\enclname{\emph{Anl.}}} \addto\captionsfrench {\def\ccname{\emph{Cop.}}\def\enclname{\emph{Ann.}}} \addto\captionsitalian {\def\ccname{\emph{e\,p.c.}}\def\enclname{\emph{All.}}} \addto\captionsenglish {\def\ccname{\emph{c.c.}}\def\enclname{\emph{encl.}}} \fi % \end{macrocode} % \end{macro} % \end{macro} % % \subsubsection{The \textsf{hyperref} package} % % The package is only loaded if a color option is given. % % \begin{macrocode} \expandafter\ifx\csname load@href\endcsname\relax % \end{macrocode} % % \begin{macro}{stdfield} % Unless the |\std@field| boolean is set, the main pdf strings are filled with |\@title|, % |\@author| and |\jobname|. Unwanted garbage in these strings is avoided. % % \begin{macrocode} \else \ifstd@field\def\opts@href{colorlinks,unicode}\else \def\opts@href{colorlinks,unicode,pdfusetitle,pdfsubject=\jobname} \fi \RequirePackage[\opts@href,\load@href]{hyperref}[2010/09/17] \pdfstringdefDisableCommands{\def\up{}} \pdfstringdefDisableCommands{\def\no{}} \pdfstringdefDisableCommands{\def\bsc{}} \pdfstringdefDisableCommands{\def\ier{}} \pdfstringdefDisableCommands{\def\kern{}} \fi % \end{macrocode} % \end{macro} % % \subsection{\LaTeX\ configuration} % % \subsubsection{Glue code for \textsf{chletter}} % % \begin{macro}{\conc} % The following code is intended for users of the document class \textsf{chletter v2.0} who % wish to compile older letters. See \textsf{chletter} documentation for more information. % \begin{macrocode} \@ifclassloaded{chletter} {\@ifclasslater{chletter}{2010/01/01} {\newcommand\conc[2][l]% {\noindent\if#1l\hskip-\oddsidemargin\fi{\bfseries\object{#2}}} \let\letterindent\parindent\let\letterskip\parskip \let\fromheight\titletopheight \let\toheight\titlemidheight \let\stockheight\titlebotheight}{}} % \end{macrocode} % \end{macro} % % \subsubsection{Paragraphing} % % \begin{macro}{stdparis} % Unless the |std@paris| flag is true, these values are adjusted to `continental' % preferences. The same values are used in \textsf{chletter}. % % \begin{macrocode} {\ifstd@paris\else \parindent18\p@\parskip9\p@ \fi % \end{macrocode} % \end{macro} % % \subsubsection{Dimensions of text} % % \begin{macro}{stddimen} % The dimensions and margins of the \textsf{chletter} class are not modified. % For other classes they are set here, unless the |std@dimen| flag is true. % % \begin{macrocode} \ifstd@dimen\else \topmargin\z@\headsep24\p@ \footskip36\p@\footnotesep12\p@\skip\footins12\p@ \textwidth\paperwidth\advance\textwidth-11895300sp \textheight\paperheight\advance\textheight-14093310sp \oddsidemargin36\p@\evensidemargin\z@ \fi % \end{macrocode} % \end{macro} % % \subsubsection{Margin paragraphs} % % \begin{macro}{stdmgpar} % The above defined note mark relies on |\marginparsep|, which is adjusted here % along with other margin paragraph settings. % % \begin{macrocode} \ifstd@mgpar\else \marginparwidth48\p@\marginparsep6\p@\marginparpush6\p@ \fi % \end{macrocode} % \end{macro} % % \subsubsection{Lists} % % \begin{macro}{stdlabel} % List label width, margin and separation are set by the standard classes as functions of % the point size. We make these values absolute here (if |std@label| is false). % % \begin{macrocode} \ifstd@label\else \labelsep6\p@\labelwidth12\p@\leftmargin18\p@ \fi} % \end{macrocode} % \end{macro} % % \begin{macro}{stdlists} % Default \LaTeX\ lists are well known to be space eating. A more compact % layout is provided here, until the |std@lists| flag is set. % % \begin{macrocode} \ifstd@lists\else \topsep\z@ plus1\p@\partopsep\smallskipamount \itemsep\z@ plus1\p@\parsep\smallskipamount \fi % \end{macrocode} % \end{macro} % % \begin{macro}{stditems} % Default list items (as set with |std@items| true) are respectively a bullet, an endash, % an asterisk and a period. We propose a lighter layout with endashes everywhere. % % \begin{macrocode} \ifstd@items\else \def\@listI{}\let\@listi\@listI\let\@listii\@listi \let\@listiii\@listi\let\@listiv\@listi \def\labelitemi{\textbf{\textendash}}\let\labelitemii\labelitemi \let\labelitemiii\labelitemi\let\labelitemiv\labelitemi \fi % \end{macrocode} % \end{macro} % % \subsubsection{Vertical flow} % % \begin{macro}{stdskips} % Adding some stretch to |\parskip| enables easier vertical balancing of text % accross pages and columns. The absolute values are conserved. % % \begin{macrocode} \ifstd@skips\else \advance\parskip by\z@ plus3\p@\ifdim\parskip>3\p@ minus3\p@\fi \advance\skip\footins by\z@ plus6\p@ \fi % \end{macrocode} % \end{macro} % % \subsubsection{Notes} % % \begin{macro}{stdnotes} % Footnotes are redefined unless the |std@notes| flag is set. The marker is % put in the margin at a |\marginparsep| distance of the actual note. % % \begin{macrocode} \ifstd@notes\else \let\std@footnotemark\@footnotemark \def\alt@footnotemark{\unskip\thinspace\std@footnotemark} \let\@footnotemark\alt@footnotemark \long\def\@makefntext#1{\settowidth\@tempdima{.\kern\marginparsep} \parindent\z@ \advance\parindent-\@tempdima \rule\z@\footnotesep \llap{\@thefnmark}.\kern\marginparsep#1} \fi % \end{macrocode} % \end{macro} % % \subsubsection{Rules} % % \begin{macro}{stdrules} % All \LaTeX\ rules are redefined to be thinner than default (|.25pt| instead of |.4pt|). % The |\foldmark| command is also tuned (see \textsf{chletter} class for more information). % % \begin{macrocode} \ifstd@rules\else \arrayrulewidth.25\p@ \fboxrule.25\p@ \def\underbar#1{\vtop{\hbox{#1}\hrule\@height.25\p@\kern-.25\p@}} \def\footnoterule% {\kern-3\p@\hrule\@width.4\columnwidth\@height.25\p@\kern2.75\p@} \fi % \end{macrocode} % \end{macro} % % \subsection{New commands} % % \subsubsection{Markup} % % \begin{macro}{\titlename} % \begin{macro}{\authorname} % \begin{macro}{\datename} % These shortcuts are here to avoid unnecessary |\makeatletter| when retrieving the values set % by |\author|, |\title| and |\date|. Please note that an additionnal value |\jobname| is % available at kernel level. % \begin{macrocode} \def\titlename{\@title} \def\authorname{\@author} \def\datename{\@date} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \subsubsection{Formatting} % % \begin{macro}{\up} % \begin{macro}{\no} % \begin{macro}{\bsc} % \begin{macro}{\ier} % These commands are present in the \textsf{babel} package \textsf{frenchb}. The % \textsf{polyglossia} package doesn't provide comparable commands, so they are defined here. % The \textsf{babel frenchb} definitions are overridden for the sake of straightforwardness % and consistency within documents typeset in multiple languages. % % \begin{macrocode} \let\up\textsuperscript \def\no{n\up{o}\,} \def\bsc#1{\hyphenpenalty\@M\textsc{#1}} \def\ier{\up{er}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macrocode} % % \end{macrocode} % % \pagebreak % % \section{Font definitions} % % Appart from the \textsf{chextras} package itself, eight files are provided to enable oldstyle % numbers in |T1| encoded \textsf{Latin Modern} fonts (for \LaTeX\ and Lua\TeX). % % \setcounter{CodelineNo}{0} % % \begin{macrocode} %<*t1lmros.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{t1lmros.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{T1}{lmros}{} \DeclareFontShape{T1}{lmros}{m}{n} {<-5.5> clmrj8t5 <5.5-6.5> clmrj8t6 <6.5-7.5> clmrj8t7 <7.5-8.5> clmrj8t8 <8.5-9.5> clmrj8t9 <9.5-11 > clmrj8t10 <11-15> clmrj8t12 <15-> clmrj8t17}{} \DeclareFontShape{T1}{lmros}{m}{sl} {<-8.5> clmrjo8t8 <8.5-9.5> clmrjo8t9 <9.5-11> clmrjo8t10 <11-15> clmrjo8t12 <15-> clmrjo8t17}{} \DeclareFontShape{T1}{lmros}{m}{it} {<-7.5> clmrji8t7 <7.5-8.5> clmrji8t8 <8.5-9.5> clmrji8t9 <9.5-11> clmrji8t10 <11-> clmrji8t12}{} \DeclareFontShape{T1}{lmros}{m}{sc} {<-> clmcscj8t10}{} \DeclareFontShape{T1}{lmros}{m}{ui} {<-> clmuj8t10}{} \DeclareFontShape{T1}{lmros}{m}{scsl} {<-> clmcscjo8t10}{} \DeclareFontShape{T1}{lmros}{b}{n} {<-> clmbj8t10}{} \DeclareFontShape{T1}{lmros}{b}{sl} {<-> clmbjo8t10}{} \DeclareFontShape{T1}{lmros}{bx}{n} {<-5.5> clmbxj8t5 <5.5-6.5> clmbxj8t6 <6.5-7.5> clmbxj8t7 <7.5-8.5> clmbxj8t8 <8.5-9.5> clmbxj8t9 <9.5-11> clmbxj8t10 <11-> clmbxj8t12}{} \DeclareFontShape{T1}{lmros}{bx}{it} {<-> clmbxji8t10}{} \DeclareFontShape{T1}{lmros}{bx}{sl} {<-> clmbxjo8t10}{} \DeclareFontShape{T1}{lmros}{b}{it} {<-> sub * lmros/b/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*t1lmssos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{t1lmssos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{T1}{lmssos}{} \DeclareFontShape{T1}{lmssos}{m}{n} {<-8.5> clmssj8t8 <8.5-9.5> clmssj8t9 <9.5-11> clmssj8t10 <11-15.5> clmssj8t12 <15.5-> clmssj8t17}{} \DeclareFontShape{T1}{lmssos}{m}{it} {<-> ssub * lmssos/m/sl}{} \DeclareFontShape{T1}{lmssos}{m}{sl} {<-8.5> clmssjo8t8 <8.5-9.5> clmssjo8t9 <9.5-11> clmssjo8t10 <11-15.5> clmssjo8t12 <15.5-> clmssjo8t17}{} \DeclareFontShape{T1}{lmssos}{m}{sc} {<-> sub * lmros/m/sc}{} \DeclareFontShape{T1}{lmssos}{b}{n} {<-> ssub * lmssos/bx/n}{} \DeclareFontShape{T1}{lmssos}{b}{sl} {<-> ssub * lmssos/bx/sl}{} \DeclareFontShape{T1}{lmssos}{b}{it} {<-> ssub * lmssos/bx/it}{} \DeclareFontShape{T1}{lmssos}{sbc}{n} {<-> clmssdcj8t10}{} \DeclareFontShape{T1}{lmssos}{sbc}{sl} {<-> clmssdcjo8t10}{} \DeclareFontShape{T1}{lmssos}{sbc}{it} {<-> ssub * lmssos/sbc/sl}{} \DeclareFontShape{T1}{lmssos}{bx}{n} {<-> clmssbxj8t10}{} \DeclareFontShape{T1}{lmssos}{bx}{sl} {<-> clmssbjo8t10}{} \DeclareFontShape{T1}{lmssos}{bx}{it} {<-> ssub * lmssos/bx/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \bigskip\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*t1lmttos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{t1lmttos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{T1}{lmttos}{\hyphenchar\font\m@ne} \ifx\lmtt@use@light@as@normal\@empty \DeclareFontShape{T1}{lmttos}{sb}{n} {<-8.5> clmttj8t8 <8.5-9.5> clmttj8t9 <9.5-11> clmttj8t10 <11-> clmttj8t12}{} \DeclareFontShape{T1}{lmttos}{sb}{it} {<-> clmttij8t10}{} \DeclareFontShape{T1}{lmttos}{sb}{sl} {<-> clmttjo8t10}{} \DeclareFontShape{T1}{lmttos}{sb}{sc} {<-> clmtcscj8t10}{} \DeclareFontShape{T1}{lmttos}{sb}{scsl} {<-> clmtcsjo8t10}{} \DeclareFontShape{T1}{lmttos}{m}{n} {<-> clmtlj8t10}{} \DeclareFontShape{T1}{lmttos}{m}{it} {<-> sub * lmttos/l/sl}{} \DeclareFontShape{T1}{lmttos}{m}{sl} {<-> clmtljo8t10}{} \DeclareFontShape{T1}{lmttos}{c}{n} {<-> clmtlcj8t10}{} \DeclareFontShape{T1}{lmttos}{c}{it} {<-> sub * lmttos/lc/sl}{} \DeclareFontShape{T1}{lmttos}{c}{sl} {<-> clmtlcjo8t10}{}\else \DeclareFontShape{T1}{lmttos}{m}{n} {<-8.5> clmttj8t8 <8.5-9.5> clmttj8t9 <9.5-11> clmttj8t10 <11-> clmttj8t12}{} \DeclareFontShape{T1}{lmttos}{m}{it} {<-> clmttij8t10}{} \DeclareFontShape{T1}{lmttos}{m}{sl} {<-> clmttjo8t10}{} \DeclareFontShape{T1}{lmttos}{m}{sc} {<-> clmtcscj8t10}{} \DeclareFontShape{T1}{lmttos}{m}{scsl} {<-> clmtcsjo8t10}{} \DeclareFontShape{T1}{lmttos}{l}{n} {<-> clmtlj8t10}{} \DeclareFontShape{T1}{lmttos}{l}{it} {<-> sub * lmttos/l/sl}{} \DeclareFontShape{T1}{lmttos}{l}{sl} {<-> clmtljo8t10}{} \DeclareFontShape{T1}{lmttos}{lc}{n} {<-> clmtlcj8t10}{} \DeclareFontShape{T1}{lmttos}{lc}{it} {<-> sub * lmttos/lc/sl}{} \DeclareFontShape{T1}{lmttos}{lc}{sl} {<-> clmtlcjo8t10}{}\fi \DeclareFontShape{T1}{lmttos}{b}{n} {<-> clmtkj8t10}{} \DeclareFontShape{T1}{lmttos}{b}{it} {<-> sub * lmttos/b/sl}{} \DeclareFontShape{T1}{lmttos}{b}{sl} {<-> clmtkjo8t10}{} \DeclareFontShape{T1}{lmttos}{bx}{it} {<-> sub * lmttos/b/sl}{} \DeclareFontShape{T1}{lmttos}{bx}{n} {<-> ssub * lmttos/b/n}{} \DeclareFontShape{T1}{lmttos}{bx}{sl} {<-> ssub * lmttos/b/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*t1lmvttos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{t1lmvttos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{T1}{lmvttos}{} \ifx\lmtt@use@light@as@normal\@empty \DeclareFontShape{T1}{lmvttos}{sb}{n} {<-> clmvttj8t10}{} \DeclareFontShape{T1}{lmvttos}{sb}{it} {<-> clmvttjo8t10}{} \DeclareFontShape{T1}{lmvttos}{sb}{sl} {<-> sub * lmvttos/sb/it}{} \DeclareFontShape{T1}{lmvttos}{m}{n} {<-> clmvtlj8t10}{} \DeclareFontShape{T1}{lmvttos}{m}{it} {<-> clmvtljo8t10}{} \DeclareFontShape{T1}{lmvttos}{m}{sl} {<-> sub * lmvttos/m/it}{}\else \DeclareFontShape{T1}{lmvttos}{m}{n} {<-> clmvttj8t10}{} \DeclareFontShape{T1}{lmvttos}{m}{it} {<-> clmvttjo8t10}{} \DeclareFontShape{T1}{lmvttos}{m}{sl} {<-> sub * lmvttos/m/it}{} \DeclareFontShape{T1}{lmvttos}{l}{n} {<-> clmvtlj8t10}{} \DeclareFontShape{T1}{lmvttos}{l}{it} {<-> clmvtljo8t10}{} \DeclareFontShape{T1}{lmvttos}{l}{sl} {<-> sub * lmvttos/l/it}{}\fi \DeclareFontShape{T1}{lmvttos}{bx}{n} {<-> clmvtkj8t10}{} \DeclareFontShape{T1}{lmvttos}{bx}{it} {<-> clmvtkjo8t10}{} \DeclareFontShape{T1}{lmvttos}{bx}{sl} {<-> sub * lmvttos/b/it}{} \DeclareFontShape{T1}{lmvttos}{b}{n} {<-> sub * lmvttos/bx/n}{} \DeclareFontShape{T1}{lmvttos}{b}{sl} {<-> ssub * lmvttos/bx/it}{} \DeclareFontShape{T1}{lmvttos}{b}{it} {<-> ssub * lmvttos/bx/it}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*eu1lmros.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{eu1lmros.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{EU1}{lmros}{} \DeclareFontShape{EU1}{lmros}{m}{n} {<-5.5> "[lmroman5-regular]:+onum,+tnum,mapping=tex-text" <5.5-6.5> "[lmroman6-regular]:+onum,+tnum,mapping=tex-text" <6.5-7.5> "[lmroman7-regular]:+onum,+tnum,mapping=tex-text" <7.5-8.5> "[lmroman8-regular]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmroman9-regular]:+onum,+tnum,mapping=tex-text" <9.5-11 > "[lmroman10-regular]:+onum,+tnum,mapping=tex-text" <11-15> "[lmroman12-regular]:+onum,+tnum,mapping=tex-text" <15-> "[lmroman17-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{m}{sl} {<-8.5> "[lmromanslant8-regular]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmromanslant9-regular]:+onum,+tnum,mapping=tex-text" <9.5-11> "[lmromanslant10-regular]:+onum,+tnum,mapping=tex-text" <11-15> "[lmromanslant12-regular]:+onum,+tnum,mapping=tex-text" <15-> "[lmromanslant17-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{m}{it} {<-7.5> "[lmroman7-italic]:+onum,+tnum,mapping=tex-text" <7.5-8.5> "[lmroman8-italic]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmroman9-italic]:+onum,+tnum,mapping=tex-text" <9.5-11> "[lmroman10-italic]:+onum,+tnum,mapping=tex-text" <11-> "[lmroman12-italic]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{m}{sc} {<-> "[lmromancaps10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{m}{ui} {<-> "[lmromanunsl10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{m}{scsl} {<-> "[lmromancaps10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{b}{n} {<-> "[lmromandemi10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{b}{sl} {<-> "[lmromandemi10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{bx}{n} {<-5.5> "[lmroman5-bold]:+onum,+tnum,mapping=tex-text" <5.5-6.5> "[lmroman6-bold]:+onum,+tnum,mapping=tex-text" <6.5-7.5> "[lmroman7-bold]:+onum,+tnum,mapping=tex-text" <7.5-8.5> "[lmroman8-bold]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmroman9-bold]:+onum,+tnum,mapping=tex-text" <9.5-11> "[lmroman10-bold]:+onum,+tnum,mapping=tex-text" <11-> "[lmroman12-bold]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{bx}{it} {<-> "[lmroman10-bolditalic]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{bx}{sl} {<-> "[lmromanslant10-bold]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmros}{b}{it} {<-> sub * lmros/b/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*eu1lmssos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{eu1lmssos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{EU1}{lmssos}{} \DeclareFontShape{EU1}{lmssos}{m}{n} {<-8.5> "[lmsans8-regular]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmsans9-regular]:+onum,+tnum,mapping=tex-text" <9.5-11> "[lmsans10-regular]:+onum,+tnum,mapping=tex-text" <11-15.5> "[lmsans12-regular]:+onum,+tnum,mapping=tex-text" <15.5-> "[lmsans17-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{m}{it} {<-> ssub * lmssos/m/sl}{} \DeclareFontShape{EU1}{lmssos}{m}{sl} {<-8.5> "[lmsans8-oblique]:+onum,+tnum,mapping=tex-text" <8.5-9.5> "[lmsans9-oblique]:+onum,+tnum,mapping=tex-text" <9.5-11> "[lmsans10-oblique]:+onum,+tnum,mapping=tex-text" <11-15.5> "[lmsans12-oblique]:+onum,+tnum,mapping=tex-text" <15.5-> "[lmsans17-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{m}{sc} {<-> sub * lmros/m/sc}{} \DeclareFontShape{EU1}{lmssos}{b}{n} {<-> ssub * lmssos/bx/n}{} \DeclareFontShape{EU1}{lmssos}{b}{sl} {<-> ssub * lmssos/bx/sl}{} \DeclareFontShape{EU1}{lmssos}{b}{it} {<-> ssub * lmssos/bx/it}{} \DeclareFontShape{EU1}{lmssos}{sbc}{n} {<-> "[lmsansdemicond10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{sbc}{sl} {<-> "[lmsansdemicond10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{sbc}{it} {<-> ssub * lmssos/sbc/sl}{} \DeclareFontShape{EU1}{lmssos}{bx}{n} {<-> "[lmsans10-bold]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{bx}{sl} {<-> "[lmsans10-boldoblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmssos}{bx}{it} {<-> ssub * lmssos/bx/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \bigskip\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*eu1lmttos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{eu1lmttos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{EU1}{lmttos}{\hyphenchar\font\m@ne} \ifx\lmtt@use@light@as@normal\@empty \DeclareFontShape{EU1}{lmttos}{sb}{n} {<-8.5> "[lmmono8-regular]:+onum,+tnum" <8.5-9.5> "[lmmono9-regular]:+onum,+tnum" <9.5-11> "[lmmono10-regular]:+onum,+tnum" <11-> "[lmmono12-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{sb}{it} {<-> "[lmmono10-italic]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{sb}{sl} {<-> "[lmmonoslant10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{sb}{sc} {<-> "[lmmonocaps10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{sb}{scsl} {<-> "[lmmonocaps10-oblique]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{n} {<-> "[lmmonolt10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{it} {<-> sub * lmttos/l/sl}{} \DeclareFontShape{EU1}{lmttos}{m}{sl} {<-> "[lmmonolt10-oblique]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{c}{n} {<-> "[lmmonoltcond10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{c}{it} {<-> sub * lmttos/lc/sl}{} \DeclareFontShape{EU1}{lmttos}{c}{sl} {<-> "[lmmonoltcond10-oblique]:+onum,+tnum"}{}\else \DeclareFontShape{EU1}{lmttos}{m}{n} {<-8.5> "[lmmono8-regular]:+onum,+tnum" <8.5-9.5> "[lmmono9-regular]:+onum,+tnum" <9.5-11> "[lmmono10-regular]:+onum,+tnum" <11-> "[lmmono12-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{it} {<-> "[lmmono10-italic]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{sl} {<-> "[lmmonoslant10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{sc} {<-> "[lmmonocaps10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{m}{scsl} {<-> "[lmmonocaps10-oblique]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{l}{n} {<-> "[lmmonolt10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{l}{it} {<-> sub * lmttos/l/sl}{} \DeclareFontShape{EU1}{lmttos}{l}{sl} {<-> "[lmmonolt10-oblique]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{lc}{n} {<-> "[lmmonoltcond10-regular]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{lc}{it} {<-> sub * lmttos/lc/sl}{} \DeclareFontShape{EU1}{lmttos}{lc}{sl} {<-> "[lmmonoltcond10-oblique]:+onum,+tnum"}{}\fi \DeclareFontShape{EU1}{lmttos}{b}{n} {<-> "[lmmonolt10-bold]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{b}{it} {<-> sub * lmttos/b/sl}{} \DeclareFontShape{EU1}{lmttos}{b}{sl} {<-> "[lmmonolt10-boldoblique]:+onum,+tnum"}{} \DeclareFontShape{EU1}{lmttos}{bx}{it} {<-> sub * lmttos/b/sl}{} \DeclareFontShape{EU1}{lmttos}{bx}{n} {<-> ssub * lmttos/b/n}{} \DeclareFontShape{EU1}{lmttos}{bx}{sl} {<-> ssub * lmttos/b/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak\setcounter{CodelineNo}{0} % % \begin{macrocode} %<*eu1lmvttos.fd> % \end{macrocode} % \begin{macrocode} \ProvidesFile{eu1lmvttos.fd}[2012/07/20 v1.01 Font defs for Latin Modern] \DeclareFontFamily{EU1}{lmvttos}{} \ifx\lmtt@use@light@as@normal\@empty \DeclareFontShape{EU1}{lmvttos}{sb}{n} {<-> "[lmmonoprop10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{sb}{sl} {<-> "[lmmonoprop10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{sb}{it} {<-> sub * lmvttos/sb/sl}{} \DeclareFontShape{EU1}{lmvttos}{m}{n} {<-> "[lmmonoproplt10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{m}{sl} {<-> "[lmmonoproplt10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{m}{it} {<-> sub * lmvttos/m/sl}{}\else \DeclareFontShape{EU1}{lmvttos}{m}{n} {<-> "[lmmonoprop10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{m}{sl} {<-> "[lmmonoprop10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{m}{it} {<-> sub * lmvttos/m/sl}{} \DeclareFontShape{EU1}{lmvttos}{l}{n} {<-> "[lmmonoproplt10-regular]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{l}{sl} {<-> "[lmmonoproplt10-oblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{l}{it} {<-> sub * lmvttos/l/sl}{}\fi \DeclareFontShape{EU1}{lmvttos}{b}{n} {<-> "[lmmonoproplt10-bold]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{b}{sl} {<-> "[lmmonoproplt10-boldoblique]:+onum,+tnum,mapping=tex-text"}{} \DeclareFontShape{EU1}{lmvttos}{b}{it} {<-> sub * lmvttos/b/sl}{} \DeclareFontShape{EU1}{lmvttos}{bx}{n} {<-> sub * lmvttos/b/n}{} \DeclareFontShape{EU1}{lmvttos}{bx}{sl} {<-> ssub * lmvttos/b/sl}{} \DeclareFontShape{EU1}{lmvttos}{bx}{it} {<-> ssub * lmvttos/b/sl}{} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \pagebreak % % \Finale % \PrintChanges % \PrintIndex \endinput