diff options
author | Karl Berry <karl@freefriends.org> | 2019-03-20 22:31:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-03-20 22:31:24 +0000 |
commit | 2b006ec0e0cafe12255f874f9c44786ab6f38901 (patch) | |
tree | c40f5796e1b34e3f051abd84d049e092e4ffd0ab /Master/texmf-dist/source/latex/stex/omdoc | |
parent | 8e508e8b0218f17eb318645073096f2cf645cc78 (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.dtx | 292 |
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 |