diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/chextras |
Initial commit
Diffstat (limited to 'macros/latex/contrib/chextras')
-rw-r--r-- | macros/latex/contrib/chextras/README | 24 | ||||
-rw-r--r-- | macros/latex/contrib/chextras/chextras.dtx | 1361 | ||||
-rw-r--r-- | macros/latex/contrib/chextras/chextras.ins | 74 | ||||
-rw-r--r-- | macros/latex/contrib/chextras/chextras.pdf | bin | 0 -> 130469 bytes |
4 files changed, 1459 insertions, 0 deletions
diff --git a/macros/latex/contrib/chextras/README b/macros/latex/contrib/chextras/README new file mode 100644 index 0000000000..8391530293 --- /dev/null +++ b/macros/latex/contrib/chextras/README @@ -0,0 +1,24 @@ +{chextras}[2012/07/20 v1.01 Swiss companion package] + +The chextras package is a companion for the chletter document class and +other classes. It is targeted at the Swiss typesetter. + +It simplifies the preparation of documents and letters by loading and +setting up font, linguistic and other common packages. + +While it is linked to the chletter document class, it is not tied to it +and may be used as a general purpose toolbox for casual writing. + +This package is compatible with LaTeX, LuaTeX and XeTeX, trying to take +in account their specifics and setting things up accordingly. + +A bunch of options are provided to easily alter the behaviour of loaded +packages. Additional options allow for disabling unwanted features. + +Provided files: +chextras.dtx code and documentation +chextras.ins install script +chextras.pdf documentation + +Copyright 2010 - 2012 Boris Oriet +The licence is LPPL 1.3c. diff --git a/macros/latex/contrib/chextras/chextras.dtx b/macros/latex/contrib/chextras/chextras.dtx new file mode 100644 index 0000000000..3481d788bc --- /dev/null +++ b/macros/latex/contrib/chextras/chextras.dtx @@ -0,0 +1,1361 @@ +% \iffalse meta-comment +% +% Copyright 2010 - 2012 by Boris Oriet <http://boris.oriet.net> +% +% 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} +%</driver> +% \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} +%</chextras.sty> +% \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} +%</t1lmros.fd> +% \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} +%</t1lmssos.fd> +% \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} +%</t1lmttos.fd> +% \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} +%</t1lmvttos.fd> +% \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} +%</eu1lmros.fd> +% \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} +%</eu1lmssos.fd> +% \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} +%</eu1lmttos.fd> +% \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} +%</eu1lmvttos.fd> +% \end{macrocode} +% +% \pagebreak +% +% \Finale +% \PrintChanges +% \PrintIndex +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/chextras/chextras.ins b/macros/latex/contrib/chextras/chextras.ins new file mode 100644 index 0000000000..d56cf30e59 --- /dev/null +++ b/macros/latex/contrib/chextras/chextras.ins @@ -0,0 +1,74 @@ +%% +%% Copyright 2010 - 2012 by Boris Oriet <http://boris.oriet.net> +%% +%% 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". +%% +\input docstrip +\keepsilent + +\preamble + +Copyright 2010 - 2012 by Boris Oriet <http://boris.oriet.net> + +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". + +\endpreamble + +\generate{\file{chextras.sty}{\from{chextras.dtx}{chextras.sty}}} + +\nopreamble +\nopostamble + +\generate{\file{t1lmros.fd}{\from{chextras.dtx}{t1lmros.fd}}} +\generate{\file{t1lmssos.fd}{\from{chextras.dtx}{t1lmssos.fd}}} +\generate{\file{t1lmttos.fd}{\from{chextras.dtx}{t1lmttos.fd}}} +\generate{\file{t1lmvttos.fd}{\from{chextras.dtx}{t1lmvttos.fd}}} +\generate{\file{eu1lmros.fd}{\from{chextras.dtx}{eu1lmros.fd}}} +\generate{\file{eu1lmssos.fd}{\from{chextras.dtx}{eu1lmssos.fd}}} +\generate{\file{eu1lmttos.fd}{\from{chextras.dtx}{eu1lmttos.fd}}} +\generate{\file{eu1lmvttos.fd}{\from{chextras.dtx}{eu1lmvttos.fd}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* files into a directory searched by TeX: *} +\Msg{* *} +\Msg{* chextras.sty *} +\Msg{* t1lmtros.fd *} +\Msg{* t1lmssos.fd *} +\Msg{* t1lmttos.fd *} +\Msg{* t1lmvttos.fd *} +\Msg{* eu1lmros.fd *} +\Msg{* eu1lmssos.fd *} +\Msg{* eu1lmttos.fd *} +\Msg{* eu1lmvttos.fd *} +\Msg{* *} +\Msg{* To produce the documentation run the file chextras.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile diff --git a/macros/latex/contrib/chextras/chextras.pdf b/macros/latex/contrib/chextras/chextras.pdf Binary files differnew file mode 100644 index 0000000000..f90f6e18c3 --- /dev/null +++ b/macros/latex/contrib/chextras/chextras.pdf |