summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/omdoc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-20 22:31:24 +0000
committerKarl Berry <karl@freefriends.org>2019-03-20 22:31:24 +0000
commit2b006ec0e0cafe12255f874f9c44786ab6f38901 (patch)
treec40f5796e1b34e3f051abd84d049e092e4ffd0ab /Master/texmf-dist/source/latex/stex/omdoc
parent8e508e8b0218f17eb318645073096f2cf645cc78 (diff)
stex (20mar19)
git-svn-id: svn://tug.org/texlive/trunk@50489 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/omdoc')
-rw-r--r--Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx292
1 files changed, 201 insertions, 91 deletions
diff --git a/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx b/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx
index 57bbdf2e3a5..5cc680fc252 100644
--- a/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx
+++ b/Master/texmf-dist/source/latex/stex/omdoc/omdoc.dtx
@@ -10,12 +10,13 @@
%
% \iffalse
%<package|cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%<package>\ProvidesPackage{omdoc}[2016/04/07 v1.2 OMDoc document Structure]
-%<cls>\ProvidesClass{omdoc}[2016/04/07 v1.2 OMDoc Documents]
+%<package>\ProvidesPackage{omdoc}[2019/03/20 v1.3 OMDoc document Structure]
+%<cls>\ProvidesClass{omdoc}[2019/03/20 v1.3 OMDoc Documents]
%
%<*driver>
\documentclass{ltxdoc}
-\usepackage{url,array,omdoc,omtext,float}
+\usepackage[utf8]{inputenc}
+\usepackage{url,array,float}
\usepackage[show]{ed}
\usepackage[hyperref=auto,style=alphabetic]{biblatex}
\addbibresource{kwarcpubs.bib}
@@ -23,13 +24,19 @@
\addbibresource{kwarccrossrefs.bib}
\addbibresource{extcrossrefs.bib}
\usepackage{stex-logo}
+\usepackage{omdoc}
+\usepackage{omtext}
\usepackage{ctangit}
\usepackage{hyperref}
+\usepackage{paralist}
\makeindex
\floatstyle{boxed}
\newfloat{exfig}{thp}{lop}
\floatname{exfig}{Example}
-\begin{document}\DocInput{omdoc.dtx}\end{document}
+\begin{document}
+\RecordChanges
+\DocInput{omdoc.dtx}
+\end{document}
%</driver>
% \fi
%
@@ -46,6 +53,8 @@
% \changes{v1.2}{2014/01/12}{front/backmatter}
% \changes{v1.3}{2015/11/18}{removing keyval arg from document in favor of
% \texttt{\textbackslash documentkeys} macro}
+% \changes{v1.3}{2018/09/10}{global variables and switches}
+% \changes{v1.3}{2018/12/03}{changed to keyval class/package options, allowed arbitrary classes}
%
%
% \MakeShortVerb{\|}
@@ -54,7 +63,7 @@
% \def\latexml{{\LaTeX}ML}
% \title{{\texttt{omdoc.sty/cls}}: Semantic Markup for Open Mathematical Documents in {\LaTeX}}
% \author{Michael Kohlhase\\
-% Jacobs University, Bremen\\
+% FAU Erlangen-N\"urnberg\\
% \url{http://kwarc.info/kohlhase}}
% \maketitle
%
@@ -95,7 +104,7 @@
% formatting/presentation.\ednote{integrate with latexml's XMRef in the Math mode.}
% \end{omgroup}
%
-% \begin{omgroup}[id=sec:user]{The User Interface}\
+% \begin{omgroup}[id=sec:user]{The User Interface}
%
% The |omdoc| package generates two files: |omdoc.cls|, and |omdoc.sty|. The {\omdoc}
% class is a minimally changed variant of the standard |article| class that includes the
@@ -104,18 +113,21 @@
%
% \begin{omgroup}[id=sec:user:options]{Package and Class Options}
%
-% The |omdoc| package and class accept the following options:
+% The |omdoc| class accept the following options:
% \begin{center}
-% \begin{tabular}{|l|l|}\hline
-% \texttt{report} & load |report.cls| instead of |article.cls|\\\hline
-% \texttt{book} & load |book.cls| instead of |article.cls|\\\hline
+% \begin{tabular}{|l|p{10cm}|}\hline
+% \texttt{class=\meta{name}} & load \meta{name}|.cls| instead of |article.cls|\\\hline
+% \texttt{topsect=\meta{sect}} & The top-level sectioning level; the default for
+% \meta{sect} is \texttt{section}\\\hline
% \texttt{showignores} & show the the contents of the |ignore| environment after all \\\hline
% \texttt{showmeta} & show the metadata; see |metakeys.sty|\\\hline
% \texttt{showmods} & show modules; see |modules.sty|\\\hline
% \texttt{extrefs} & allow external references; see |sref.sty|\\\hline
% \texttt{defindex} & index definienda; see |statements.sty|\\\hline
+% \texttt{mh} & MathHub support; see~\cite{Kohlhase:mss:ctan}\\\hline
% \end{tabular}
% \end{center}
+% The |omdoc| package accepts the same except the first two.
% \end{omgroup}
%
% \begin{omgroup}[id=sec:user:struct]{Document Structure}
@@ -159,7 +171,7 @@
% correct level. Example~\ref{fig:docstruct} shows a typical setup for the outer
% document structure of a book with parts and chapters. We use two levels of
% |blindomgroup|:
-% \begin{compactitem}
+% \begin{itemize}
% \item The outer one groups the introductory parts of the book (which we assume to have
% a sectioning hierarchy topping at the part level). This |blindomgroup| makes sure
% that the introductory remarks become a ``chapter'' instead of a ``part''.
@@ -168,7 +180,7 @@
% the future.} and makes the preface of the book a section-level construct. Note that
% here the |display=flow| on the |omgroup| environment prevents numbering as is
% traditional for prefaces.
-% \end{compactitem}
+% \end{itemize}
% \begin{exfig}
% \begin{verbatim}
% \begin{document}
@@ -238,6 +250,23 @@
% if we decide to keep them.}
% \end{omgroup}
%
+% \begin{omgroup}[id=sec:user:gvars]{Global Variables}
+%
+% Text fragments and modules can be made more re-usable by the use of global
+% variables. For instance, the admin section of a course can be made course-independent
+% (and therefore re-usable) by using variables (actually token registers)
+% |courseAcronym| and |courseTitle| instead of the text itself. The variables can then
+% be set in the \sTeX preamble of the course notes file.
+% \DescribeMacro{\setSGvar}|\setSGvar{|\meta{vname}|}{|\meta{text}|}| to set the global
+% variable \meta{vname} to \meta{text} and
+% \DescribeMacro{\useSGvar}|\useSGvar{|\meta{vname}|}| to reference it.
+%
+% With \DescribeMacro{\ifSGvar}|\ifSGvar| we can test for the contents of a global
+% variable: the macro call |\ifSGvar{|\meta{vname}|}{|\meta{val}|}{|\meta{ctext}|}|
+% tests the content of the global variable \meta{vname}, only if (after expansion) it is
+% equal to \meta{val}, the conditional text \meta{ctext} is formatted.
+% \end{omgroup}
+%
% \begin{omgroup}[id=sec:user:colors]{Colors}
%
% For convenience, the |omdoc| package defines a couple of color macros for the |color|
@@ -254,11 +283,11 @@
% In this section we document known limitations. If you want to help alleviate them,
% please feel free to contact the package author. Some of them are currently discussed in
% the \sTeX GitHub repository~\cite{sTeX:github:on}.
-% \begin{compactenum}
+% \begin{enumerate}
% \item when option |book| which uses |\pagestyle{headings}| is given and semantic macros
% are given in the |omgroup| titles, then they sometimes are not defined by the time the
% heading is formatted. Need to look into how the headings are made.
-% \end{compactenum}
+% \end{enumerate}
% \end{omgroup}
%
% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\newpage\printbibliography}\newpage
@@ -270,38 +299,51 @@
% package provides the concrete functionality.
%
% \begin{omgroup}[id=sec:impl:cls:options]{Class Options}
-% To initialize the |omdoc| class, we declare and process the necessary options. For
+% To initialize the |omdoc| class, we declare and process the necessary options using
+% the |kvoptions| package for key/value options handling. For
% |omdoc.cls| this is quite simple. We have options |report| and |book|, which set the
-% \DescribeMacro{\omdoc@class}|\omdoc@class| macro and pass on the macro to |omdoc.sty|
-% for further processing. The |book| option also sets the \DescribeMacro{\ifclass@book}
-% conditional to true for the frontmatter handling later.
+% \DescribeMacro{\omdoc@cls@class}|\omdoc@cls@class| macro and pass on the macro to |omdoc.sty|
+% for further processing.
%
% \begin{macrocode}
%<*cls>
-\def\omdoc@class{article}
-\DeclareOption{report}{\def\omdoc@class{report}%
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
-\newif\ifclass@book\class@bookfalse
-\DeclareOption{book}{\def\omdoc@class{book}\class@booktrue%
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
+\RequirePackage{etoolbox}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc@cls,prefix=omdoc@cls@}
+\DeclareStringOption[article]{class}
+\AddToKeyvalOption*{class}{\PassOptionsToPackage{class=\omdoc@cls@class}{omdoc}}
+% \end{macrocode}
+%
+% the following options are deprecated.
+%
+% \begin{macrocode}
+\DeclareVoidOption{report}{\def\omdoc@cls@class{report}%
+\ClassWarning{omdoc}{the option 'report' is deprecated, use 'class=report', instead}}
+\DeclareVoidOption{book}{\def\omdoc@cls@class{book}%
+\ClassWarning{omdoc}{the option 'part' is deprecated, use 'class=book', instead}}
+\DeclareVoidOption{bookpart}{\def\omdoc@cls@class{book}%
+\PassOptionsToPackage{topsect=chapter}{omdoc}%
+\ClassWarning{omdoc}{the option 'bookpart' is deprecated, use 'class=book,topsect=chapter', instead}}
% \end{macrocode}
% the rest of the options are only passed on to |omdoc.sty| and the class selected by the
-% first options.
+% first options. We need to load the |etoolbox| package early for |\@xappto|.
% \begin{macrocode}
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\omdoc@class}
- \PassOptionsToPackage{\CurrentOption}{omdoc}
- \PassOptionsToPackage{\CurrentOption}{stex}}
-\ProcessOptions
+\def\@omdoc@cls@docopt{}
+\DeclareDefaultOption{%
+\ifx\@omdoc@cls@docopt\@empty%
+\xdef\@omdoc@cls@docopt{\CurrentOption}%
+\else\xappto\@omdoc@cls@docopt{,\CurrentOption}%
+\fi}%
+\PassOptionsToPackage{\CurrentOption}{omdoc}
+\PassOptionsToPackage{\CurrentOption}{stex}
+\ProcessKeyvalOptions{omdoc@cls}
% \end{macrocode}
%
% We load |article.cls|, and the desired packages. For the {\latexml} bindings, we make
% sure the right packages are loaded.
%
% \begin{macrocode}
-\LoadClass{\omdoc@class}
-\RequirePackage{etoolbox}
+\LoadClass[\@omdoc@cls@docopt]{\omdoc@cls@class}
\RequirePackage{omdoc}
\RequirePackage{stex}
% \end{macrocode}
@@ -319,7 +361,6 @@
\srefaddidkey{document}
\newcommand\documentkeys[1]{\metasetkeys{document}{#1}}
\let\orig@document=\document
-\srefaddidkey{document}
\renewcommand{\document}[1][]{\metasetkeys{document}{#1}\orig@document}
%</cls>
% \end{macrocode}
@@ -333,29 +374,44 @@
%
% We declare some switches which will modify the behavior according to the package
% options. Generally, an option |xxx| will just set the appropriate switches to true
-% (otherwise they stay false). The |report| and |book| options affect the sectioning
-% behavior of the |omgroup| environment via the
-% \DescribeMacro{\section@level}|\section@level| macro later.
+% (otherwise they stay false).
%
% \begin{macrocode}
%<*package>
-\newif\ifshow@ignores\show@ignoresfalse
-\DeclareOption{showignores}{\show@ignorestrue}
-\newcount\section@level\section@level=2
-\DeclareOption{report}{\section@level=0}
-\DeclareOption{book}{\section@level=0}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
-\ProcessOptions
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=omdoc@sty,prefix=omdoc@sty@}
+\DeclareBoolOption{mh}
+\DeclareStringOption[article]{class}
+\DeclareBoolOption{showignores}
+\DeclareStringOption[section]{topsect}
+\newcount\section@level
+\DeclareDefaultOption{\PassOptionsToPackage{\CurrentOption}{sref}}
+\ProcessKeyvalOptions{omdoc@sty}
% \end{macrocode}
%
% Then we need to set up the packages by requiring the |sref| package to be loaded.
%
% \begin{macrocode}
+\ifomdoc@sty@mh\RequirePackage{omdoc-mh}\fi
\RequirePackage{sref}
\RequirePackage{xspace}
\RequirePackage{comment}
\RequirePackage{pathsuris}
% \end{macrocode}
+%
+% Finally, we set the \DescribeMacro{\section@level}|\section@level| macro that governs
+% sectioning. The default is two (corresponding to the |article| class), then we set the
+% defaults for the standard classes |book| and |report| and then we take care of the
+% levels passed in via the |topsect| option.
+%
+% \begin{macrocode}
+\section@level=2
+\ifdefstring{\omdoc@sty@class}{book}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@class}{report}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@topsect}{part}{\section@level=0}{}
+\ifdefstring{\omdoc@sty@topsect}{chapter}{\section@level=1}{}
+% \end{macrocode}
+%
% \end{omgroup}
%
% \begin{omgroup}[id=sec:impl:struct]{Document Structure}
@@ -400,14 +456,19 @@
% convenience macro: |\omgroup@nonum{|\meta{level}|}{|\meta{title}|}| makes numbered
% sectioning with title \meta{title} at level \meta{level}. We have to check the |short|
% key was given in the |omgroup| environment and -- if it is use it. But how to do that
-% depends on whether the |rdfmeta| package has been loaded.
+% depends on whether the |rdfmeta| package has been loaded. In the end we call
+% |\sref@label@id| to enable crossreferencing.
% \begin{macrocode}
\newcommand\omgroup@num[2]{%
-\sref@label@id{\omdoc@sect@name~\@nameuse{the#1}}%
-\ifx\omgroup@short\@empty\@nameuse{#1}{#2}%
-\else\@ifundefined{rdfmeta@sectioning}{\@nameuse{#1}[\omgroup@short]{#2}}%
-{\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}%
-\fi}
+\edef\@@ID{\sref@id}
+\ifx\omgroup@short\@empty% no short title
+\@nameuse{#1}{#2}%
+\else% we have a short title
+\@ifundefined{rdfmeta@sectioning}%
+ {\@nameuse{#1}[\omgroup@short]{#2}}%
+ {\@nameuse{rdfmeta@#1@old}[\omgroup@short]{#2}}%
+\fi%
+\sref@label@id@arg{\omdoc@sect@name~\@nameuse{the#1}}\@@ID}
% \end{macrocode}
% \end{macro}
%
@@ -430,8 +491,7 @@
% run at the beginning of the |omgroup|, i.e. after the section heading.
% \begin{macrocode}
\newif\if@@num\@@numtrue
-\newif\if@frontmatter\@frontmatterfalse
-\newif\if@backmatter\@backmatterfalse
+\newif\if@mainmatter\@mainmattertrue
\newcommand\at@begin@omgroup[3][]{}
% \end{macrocode}
%
@@ -448,20 +508,25 @@
\if@@num% numbering not overridden by frontmatter, etc.
\ifx\omdoc@sect@num\@true\omgroup@num{#2}{#3}\else\omgroup@nonum{#2}{#3}\fi%
\def\current@section@level{\omdoc@sect@name}%
-\else\omgroup@nonum{#2}{#3}\fi}
+\else\omgroup@nonum{#2}{#3}%
+\fi}% if@@num
% \end{macrocode}
% and another one, if redefines the |\addtocontentsline| macro of {\LaTeX} to import the
% respective macros. It takes as an argument a list of module names.\ednote{MK: the
% extension sms is hard-coded here, but should not be. This will not work in multilingual
% settings.}
% \begin{macrocode}
-\newcommand\omgroup@redefine@addtocontents[1]{\edef\@@import{#1}%
-\@for\@I:=\@@import\do{\edef\@path{\csname module@\@I @path\endcsname}%
-\@ifundefined{tf@toc}\relax{\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}}
+\newcommand\omgroup@redefine@addtocontents[1]{%
+\edef\@@import{#1}%
+\@for\@I:=\@@import\do{%
+\edef\@path{\csname module@\@I @path\endcsname}%
+\@ifundefined{tf@toc}\relax%
+ {\protected@write\tf@toc{}{\string\@requiremodules{\@path}{sms}}}}
\ifx\hyper@anchor\@undefined% hyperref.sty loaded?
\def\addcontentsline##1##2##3{%
\addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}}}
-\else\def\addcontentsline##1##2##3{%
+\else% hyperref.sty not loaded
+\def\addcontentsline##1##2##3{%
\addtocontents{##1}{\protect\contentsline{##2}{\string\withusedmodules{#1}{##3}}{\thepage}{\@currentHref}}}%
\fi}% hypreref.sty loaded?
% \end{macrocode}
@@ -472,7 +537,7 @@
\newenvironment{omgroup}[2][]% keys, title
{\metasetkeys{omgroup}{#1}\sref@target%
\ifx\omgroup@display\st@flow\@@numfalse\fi
-\if@frontmatter\@@numfalse\fi
+\if@mainmatter\else\@@numfalse\fi
% \end{macrocode}
% If the |loadmodules| key is set on |\begin{omgroup}|, we redefine the |\addcontetsline|
% macro that determines how the sectioning commands below construct the entries for the
@@ -485,7 +550,7 @@
% now we only need to construct the right sectioning depending on the value of
% |\section@level|.
% \begin{macrocode}
-\advance\section@level by 1
+\advance\section@level by 1\relax%
\ifcase\section@level%
\or\omdoc@sectioning[name=Part,clear,num]{part}{#2}%
\or\omdoc@sectioning[name=Chapter,clear,num]{chapter}{#2}%
@@ -515,34 +580,44 @@
% \end{macro}
%
% \begin{environment}{frontmatter}
-% |book.cls| already has a |\frontmatter| macro, so we have to redefine the front
-% matter environment in this case.
+% some classes (e.g. |book.cls|) already have |\frontmatter|, |\mainmatter|, and
+% |\backmatter| macros. As we want to define |frontmatter| and |backmatter|
+% environments, we save their behavior (possibly defining it) in |orig@*matter| macros
+% and make them undefined (so that we can define the environments).
% \begin{macrocode}
%<*cls>
-\ifclass@book
-\renewenvironment{frontmatter}
-{\@frontmattertrue\cleardoublepage\@mainmatterfalse\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\else
+\ifcsdef{frontmatter}% to redefine if necessary
+ {\cslet{orig@frontmatter}{\frontmatter}\cslet{frontmatter}{\relax}}
+ {\cslet{orig@frontmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+\ifcsdef{backmatter}% to redefine if necessary
+ {\cslet{orig@backmatter}{\backmatter}\cslet{backmatter}{\relax}}
+ {\cslet{orig@backmatter}{\clearpage\@mainmatterfalse\pagenumbering{roman}}}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{frontmatter}
+% now we can define the environments
+% \begin{macrocode}
\newenvironment{frontmatter}
-{\@frontmattertrue\pagenumbering{roman}}
-{\@frontmatterfalse\setcounter{page}{1}\pagenumbering{arabic}}
-\fi
-% \End{macrocode}
+{\orig@frontmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+% \end{macrocode}
% \end{environment}
%
% \begin{environment}{backmatter}
-% |book.cls| already has a |\backmatter| macro, so we have to redefine the back
-% matter environment in this case.
-% \begin{macrocode}
-\ifclass@book
-\renewenvironment{backmatter}
-{\cleardoublepage\@mainmatterfalse\@backmattertrue}
-{\@backmatterfalse}
-\else
-\newenvironment{backmatter}{\@backmattertrue}{\@backmatterfalse}
-\fi
-%</cls>
+% some classes (e.g. |book.cls|) already have a |\backmatter| macro. We use that
+% (possibly defining it).
+% \begin{macrocode}
+\newenvironment{backmatter}
+{\orig@backmatter}
+{\ifcsdef{mainmatter}{}{\clearpage\@mainmattertrue\pagenumbering{arabic}}}
+% \end{macrocode}
+%
+% finally, we make sure that page numbering is arabic.
+%
+% \begin{macrocode}
+\pagenumbering{arabic}
+%</cls>
% \end{macrocode}
% \end{environment}
% \end{omgroup}
@@ -551,7 +626,7 @@
% \begin{environment}{ignore}
% \begin{macrocode}
%<*package>
-\ifshow@ignores
+\ifomdoc@sty@showignores
\addmetakey{ignore}{type}
\addmetakey{ignore}{comment}
\newenvironment{ignore}[1][]
@@ -570,7 +645,7 @@
\def\LXMID#1#2{\expandafter\gdef\csname xmarg#1\endcsname{#2}\csname xmarg#1\endcsname}
\def\LXMRef#1{\csname xmarg#1\endcsname}
% \end{macrocode}
-
+%
% \begin{macro}{\STRlabel}
% The main macro, it it used to attach a label to some text expansion. Later on, using the
% |\STRcopy| macro, the author can use this label to get the expansion originally assigned.
@@ -605,6 +680,31 @@
% \end{macro}
% \end{omgroup}
%
+% \begin{omgroup}[id=sec:impl:gvars]{Global Variables}
+%
+% \begin{macro}{\setSGvar}
+% set a global variable
+% \begin{macrocode}
+\newcommand\setSGvar[1]{\@namedef{sTeX@Gvar@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\useSGvar}
+% use a global variable
+% \begin{macrocode}
+\newcommand\useSGvar[1]{\@nameuse{sTeX@Gvar@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifSGvar}
+% set a global variable
+% \begin{macrocode}
+\newcommand\ifSGvar[3]{\def\@test{#2}\expandafter\ifx\csname sTeX@Gvar@#1\endcsname\@test #3\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \end{omgroup}
+%
% \begin{omgroup}[id=sec:impl:colors]{Colors}
%
% \begin{environment}{blue, red, green, magenta}
@@ -637,7 +737,7 @@
% LocalWords: RequirePackage RegisterNamespace namespace xsl DocType ltxml dtd DAG hline
% LocalWords: ltx DefEnvironment beforeDigest AssignValue inPreamble getGullet rangle
% LocalWords: afterDigest keyval omgroup DefKeyVal Semiverbatim KeyVal srcf frontmatter
-% LocalWords: OptionalKeyVals DefParameterType IfBeginFollows skipSpaces CMP rangle
+% LocalWords: OptionalKeyVals DefParameterType IfBeginFollows skipSpaces CMP rangle xdef
% LocalWords: ifNext DefMacro needwrapper unlist DefConstructor omtext bgroup showmods
% LocalWords: useCMPItemizations RefStepItemCounter egroup beginItemize li di pathsuris
% LocalWords: beforeDigestEnd dt autoclose ul ol dl env showignores srcref Cwd rdfmeta
@@ -659,14 +759,24 @@
% LocalWords: parttrue srefaddidkey newenvironment textbf compactenum showmeta tf@toc
% LocalWords: noindent noindent ignorespaces ifnum thepart thechapter regexp color.sty
% LocalWords: thesection thesubsection thesubsubsection needswrapper itshape xmarg xmarg
-% LocalWords: textgreater renewenvironment excludecomment STRlabeldef csname
-% LocalWords: expandafter endcsname xref newcommand gdef doctex metakeys Hacky
+% LocalWords: textgreater renewenvironment excludecomment STRlabeldef csname Section,num
+% LocalWords: expandafter endcsname xref newcommand gdef doctex metakeys Hacky arabic
% LocalWords: metasetkeys addmetakey printindex providecommand jobname.ind importmodules
% LocalWords: jobname.ind tocdepth hateq ensuremath xspace hatequiv equiv NeedsTeXFormat
-% LocalWords: textleadsto leadsto etoolbox blindomgroup blindomgroup docstruct
-% LocalWords: compactitem exfig vspace currentsectionlevel currentsectionlevel
+% LocalWords: textleadsto leadsto etoolbox blindomgroup blindomgroup docstruct setSGvar
+% LocalWords: compactitem exfig vspace currentsectionlevel currentsectionlevel setSGvar
% LocalWords: ldots URLBASE ifclass bookfalse booktrue currentsetionlevel thedocument@ID
-% LocalWords: nonum phantomsection nameuse numtrue numfalse contentsline unnum
+% LocalWords: nonum phantomsection nameuse numtrue numfalse contentsline unnum vname
% LocalWords: thepage hypreref.sty ifcase cleardoublepage frontmatterfalse customization
-% LocalWords: frontmattertrue pagenumbering setcounter hyperref.sty addcontetsline
-% LocalWords: mfirstuc.sty internationalize documentkeys withusedmodules
+% LocalWords: frontmattertrue pagenumbering setcounter hyperref.sty addcontetsline ctext
+% LocalWords: mfirstuc.sty internationalize documentkeys withusedmodules Part,clear,num
+
+% \endinput
+% Local Variables:
+% mode: doctex
+% TeX-master: t
+% End:
+% LocalWords: crossreferencing Chapter,clear,num Subsection,num Subsubsection,num cslet
+% LocalWords: Paragraph,ref Subparagraph,ref useSGvar useSGvar ifSGvar ifSGvar topsect
+% LocalWords: sTeX@Gvar kvoptions omdoc@cls,prefix book,topsect xappto omdoc@sty,prefix
+% LocalWords: ifdefstring ifcsdef cslet