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/gmdoc/gmdocc.cls |
Initial commit
Diffstat (limited to 'macros/latex/contrib/gmdoc/gmdocc.cls')
-rw-r--r-- | macros/latex/contrib/gmdoc/gmdocc.cls | 340 |
1 files changed, 340 insertions, 0 deletions
diff --git a/macros/latex/contrib/gmdoc/gmdocc.cls b/macros/latex/contrib/gmdoc/gmdocc.cls new file mode 100644 index 0000000000..befb51f531 --- /dev/null +++ b/macros/latex/contrib/gmdoc/gmdocc.cls @@ -0,0 +1,340 @@ +%% +%% \iffalse ^^A we skip the debug setting +\IfFileExists{\string~/bin/gen_and_xela}{\errorcontextlines=1000 }{} +%% \fi +%% ^^A $Id: TheUltimateMaster.gmd,v 0.298 2011/02/02 18:35:58 natror Exp natror $ +%% This is file “gmdocc.cls” generated with the DocStrip utility. +%% +%% +%% The original source files were: +%% +%% gmdoc/gmdoc.gmd (with options: `docc') +%% +%% +%% Copyright © +%% by Grzegorz ‘Natror’ Murzynowski +%% natror (at) gmail (dot) com +%% +%% This program is subject to the LaTeX Project Public License. +%% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html +%% for the details of that license. +%% +%% LPPL status: "author-maintained". +%% +%% +%% +%% For the documentation please refer to the file(s) +%% gmdoc.{gmd,pdf}. +%% +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{gmdocc} + [2010/08/15 v0.993 a class for gmdoc driver files (GM)] + + +%% +%% +%% This file is a~part of \pk{gmdoc} bundle and provides a~document +%% class for the driver files documenting \LaTeXpar\ packages \&a.\ +%% with my \pk{gmdoc.sty} package. It's not necessary, of course: most +%% probably you may use another document class you like. +%% +%% By default this class loads \pk{mwart} class with a4paper (default) +%% option and \pk{lmodern} package with T1 fontencoding. It loads also +%% my \pk{gmdoc} documenting package which loads some auxiliary +%% packages of mine and the standard ones. +%% +%% If the \pk{mwart} class is not found, the standard \pk{article} +%% class is loaded instead. Similarly, if the \pk{lmodern} is not +%% found, the standard Computer Modern font family is used in the +%% default font encoding. +%% + +\PassOptionsToPackage{rgb}{xcolor} + +\RequirePackage{xkeyval} + +\newcommand*\gm@DOX{\DeclareOptionX[gmcc]<>} +\newcommand*\gm@EOX{\ExecuteOptionsX[gmcc]<>} + +\newif\ifgmcc@mwcls + +\gm@DOX{class}{% the default will be Marcin Woli\nacute ski class + % (\pk{mwcls}) analogous to \pk{article}, see line \ref{EOXmwart}. + \def\gmcc@CLASS{#1}% + \@for\gmcc@resa:=mwart,mwrep,mwbk\do {% + \ifx\gmcc@CLASS\gmcc@resa\gmcc@mwclstrue\fi}% +} + +\gm@DOX{mwart}{\gmcc@class{mwart}}% The \pk{mwart} class may also + +\gm@DOX{mwrep}{\gmcc@class{mwrep}}% If you need + +\gm@DOX{mwbk}{\gmcc@class{mwbk}}% and this MW class + +\gm@DOX{article}{\gmcc@class{article}}% you can also + +\gm@DOX{outeroff}{\let\outer\relax}% This option allows + +\newif\if@debug + +\gm@DOX{debug}{\@debugtrue}% This option causes \pk{trace} to + +\gm@DOX{noindex}{% + \PassOptionsToPackage{noindex}{gmdoc}}% This + +\newif\if@gmccnochanges + +\gm@DOX{nochanges}{\@gmccnochangestrue}% This option turns the + + +\newif\ifgmcc@oldfonts + +\gm@DOX{sysfonts}{\gmcc@oldfontsfalse} + +\gm@DOX{mptt}[17]{\relax}% now a~no-op, left only for backwards + +\def\gmcc@tout#1{\typeout{^^J@@@@ gmdocc class: #1^^J}} + +\def\gmcc@setfont#1{% + \gmcc@oldfontsfalse% note that if we are not in \XeTeX, this switch + % will be turned true in line \ref{ofstrue} + \AtEndOfClass{% + \ifdefined\zf@init\afterfi{% + \gmcc@tout{Main font set to #1}% + \def\gmcc@dff{Numbers={OldStyle, Proportional}} + \@xa\setmainfont\@xa[\gmcc@dff, Mapping=tex-text]{#1}% + % ^^A \setsansfont[Mapping=tex-text]{Latin Modern Sans}% + % ^^A \gmcc@tout{Sans serif font set to Latin Modern Sans}% + % ^^A \setmonofont{Latin Modern Mono}% + % \chgs{2008/12/01 v0.82 I~commented out setting of Latin Modern + % fonts for sans serif and monospaced: \XeTeX\discret/\pk{fontspec} + % does that by default.} + % ^^A \def\sl{\it} \def{\textsl}\textit% we cover original \incs{sl} + % ^^A % and \incs{textsl} with \incs{def} to allow consistent font + % ^^A % change later. + \@xa\defaultfontfeatures\@xa{\gmcc@dff, Scale=MatchLowercase}%\ + % when put before \incs{setmainfont}, + \gmath + \def\LineNumFont{% \chgs{2008/11/30 v0.82 added} + \normalfont\scriptsize\addfontfeature{Numbers=Monospaced}}% + }% + \else\afterfi{\gmcc@tout{I~can set main font to #1 only in + XeTeX/fontspec}}% + \fi + }} + +\gm@DOX{minion}{\gmcc@setfont{Minion Pro}} +\gm@DOX{pagella}{\gmcc@setfont{TeX Gyre Pagella} + % ^^A \def\gmcc@PAGELLA{1}% caused an error +} +\gm@DOX{cronos}{% \chgs{2008/12/01 v0.82 added, for Iwona sans font} + \AtEndOfClass{\setsansfont[Mapping=tex-text]{Cronos Pro}}} +\gm@DOX{trebuchet}{% \chgs{2008/12/03 v0.82 added, for Trebuchet + % \ac{MS} sans font} + \AtEndOfClass{\setsansfont[Mapping=tex-text]{Trebuchet MS}}} +\gm@DOX{myriad}{% \chgs{2008/12/03 v0.82 added, for Myriad Web Pro + % sans font} + \AtEndOfClass{\setsansfont[Mapping=text-text]{Myriad Web Pro}}} +\gm@DOX{lsu}{% \chgs{2008/12/03 v0.82 added, for Lucida Sans Unicode + % sans font} + \AtEndOfClass{\setsansfont[Mapping=tex-text]{Lucida Sans Unicode}}} + +\gm@DOX{cursor}{% \chgs{2008/12/01 v0.82 added, for \TeX\ Gyre Cursor + % mono font, which I~embolden a~little and shrink + % horizontally a~little} + % \chgs{2008/12/12 v0.82 subtly distinguished weights of + % the \TeX\ Gyre Cyursor typewriter font in the code + % and in verbatims in the commentary} + \AtEndOfClass{% + \setmonofont[FakeBold=2.5, BoldFeatures={FakeBold=0}, + FakeStretch=0.87, Ligatures=NoCommon + ]{TeX Gyre Cursor}% + \def\marginpartt{\tt\addfontfeature{FakeBold=2, + FakeStretch=0.609}% + \color{black}}% to provide proper color when marginpar occurs + % between lines that break a~coloured text. + \def\narrativett{\ttfamily\addfontfeature{FakeBold=1}}% + \let\UrlFont\narrativett + }% of |\AtEndOfClass|. +}% of the |cursor| option. + +\gm@DOX{fontspec}{\PassOptionsToPackage{#1}{fontspec}} + +\gm@EOX{class=mwart}% \label{EOXmwart}We set the default basic class to + + +\newif\if@gmcc@tikz@ +\gm@DOX{tikz}{\@gmcc@tikz@true} + +\PassOptionsToPackage{countalllines}{gmdoc}% \chgs[countalllines]{2008/11/30 + +\DeclareOptionX*{\PassOptionsToPackage{\CurrentOption}{gmdoc}} + +\ProcessOptionsX[gmcc]<> + +\long\def\@gobble#1{} +\long\def\@firstofone#1{#1} + +\if@gmcc@tikz@\expandafter\@firstofone\else\expandafter\@gobble\fi +{\RequirePackage{tikz}} + +\XKV@ifundefined{ifSecondClass}{% + \newif\ifSecondClass}{} + +\ifSecondClass\else +\ifgmcc@mwcls + \IfFileExists{\gmcc@CLASS.cls}{}{\gmcc@mwclsfalse}% As + % announced, we do the ontological test to any \pk{mwcls}. +\fi +\ifgmcc@mwcls + \LoadClass[fleqn, oneside, noindentfirst, 11pt, withmarginpar, + sfheadings]{\gmcc@CLASS}% +\else + \LoadClass[fleqn, 11pt]{article}% Otherwise the standard \pk{article} is + % loaded. +\fi +\fi + +\RequirePackage[mw=on]{gmutils}[2008/10/08]% we load it early to provide + +\ifgmcc@mwcls\afterfi\ParanoidPostsec\fi + +\@ifXeTeX{}{\gmcc@oldfontstrue} + +\AtBeginDocument{\mathindent=\CodeIndent} + +\ifgmcc@oldfonts + \IfFileExists{lmodern.sty}{% We also examine the ontological status of + % this package + \RequirePackage{lmodern}% and if it shows to be satisfactory (the + % package shows \emph{to be}), we load it and set the proper + % font encoding. + \RequirePackage[T1]{fontenc}% + }{}% + \def\agrave {\`a}% + \def\cacute {\'c}% + \def\eacute {\'e}% + \def\idiaeres{\"\i}% + \def\nacute {\'n}% + \def\ocircum {\^o}% + \def\oumlaut {\"o}% + \def\uumlaut {\"u}% +\else% this case happens only with \XeTeX. + \let\do\relaxen + \do\Finv\do\Game\do\beth\do\gimel\do\daleth% these five caused the + % `already defined' error. + \let\@zf@euenctrue\zf@euencfalse + \XeTeXthree% + \def\agrave {\char"00E0 }% + \def\cacute {\char"0107 }% Note the space to be sure the number + % ends here. + \def\eacute {\char"00E9 }% + \def\idiaeres{\char"00EF }% + \def\nacute {\char"0144 }% + \def\oumlaut {\char"00F6 }% + \def\uumlaut {\char"00FC }% + \def\ocircum {\char"00F4 }% + \AtBeginDocument{% + \def\ae{\char"00E6 }% + \def\l {\char"0142 }% + \def\oe{\char"0153 }% + }% +\fi + +\RequirePackage{geometry} +\def\gmdoccMargins@params{{top=77pt, height=687pt, % =53 lines but the + % |lines| option seems not to work 2007/11/15 with \TeX\ Live 2007 + % and \XeTeX 0.996-patch1 + left=4cm, right=2.2cm}} +\def\gmdoccMargins{% + \@xa \newgeometry\gmdoccMargins@params} + +\@xa\geometry\gmdoccMargins@params + +\if@debug% For debugging we load also the \pk{trace} package that was + \RequirePackage{trace}% + \errorcontextlines=100 % And we set an error info parameter. +\fi + +\newcommand*\ifdtraceon{\if@debug\afterfi\traceon\fi} +\newcommand*\ifdtraceoff{\if@debug\traceoff\fi} + +\RequirePackage{gmdoc} + +\ifgmcc@oldfonts + \@ifpackageloaded{lmodern}{% The Latin Modern font family provides + % a~light condensed typewriter font that seems to be the most + % suitable for the marginpar CS marking. + \def\marginpartt{\normalfont\fontseries{lc}\ttfamily}}{}% +\else + \def\marginpartt{\fontspec{LMTypewriter10 LightCondensed}}% +\fi + + +\raggedbottom + +\setcounter{secnumdepth}{0}% We wish only the parts and chapters to be + +\renewcommand*\thesection{\arabic{section}}% isn't it redundant at the + +\@ifnotmw{} +{% if MW class + \@ifclassloaded{mwart} + {% We set the indentation of Contents: + \SetTOCIndents{{}{\quad}{\quad}{\quad}{\quad}{\quad}{\quad}}% + } + {% for \pk{mwart} …\ilrr + \SetTOCIndents{{}{\bf9.\enspace}{\quad}{\quad}{\quad}{\quad}{\quad}}% + }% and for the two other \pk{mwcls}s. \ilrr + \pagestyle{outer}}% We set the page numbers to be printed in the + +\def\titlesetup{\bfseries\sffamily}% We set the title(s) to be + +\if@gmccnochanges\let\RecordChanges\relax\fi% If the |nochanges| + +\RecordChanges% We turn the writing the |\changes| out to the + +\RequirePackage{amsfonts} +\RequirePackage[intlimits]{amsmath} +\RequirePackage{amssymb} + +\dekclubs*% We declare the club sign \verb+|+ to be a~shorthand for +\edverbs% to redefine |\[| so that it puts a~shortverb in a~|\hbox|. +\smartunder% and we declare the |_| char to behave as usual in the + +\exhyphenpenalty\hyphenpenalty% 'cause \pk{mwcls} set it |=10000| due + +\def\EOFMark{\rightline{\ensuremath{\square}}} + +\DoNotIndex{\@nx \@xa %^^A\count \dimen \box \setbox \copy +} + +\provide\ac{\acro} + +\def\+{\-\penalty\@M\hskip\z@} % a~discretionary hyphen that allows + +\Xedekfracc + +\let\mch\metachar + +\ATfootnotes +\AtBegInput{\ATfootnotes} + +\UrlFix + +\GMverbatimspecials + +\def\texcode@hook{\makestarlow} + +\let\lv\leavevmode +\CommandLet\ac\acro + +\def\OK{\acro{OK}\spifletter} + +\pdef\oczko{;-)\spifletter} + + +\endinput +%% +%% End of file `gmdocc.cls'. |