summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gmdoc/gmdocc.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /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.cls340
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'.