From c11a0850e29ea8d9ffdb5696efc582fad8e57793 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 19 May 2007 16:06:11 +0000 Subject: new latex bundle dlfltxb (17may07) git-svn-id: svn://tug.org/texlive/trunk@4314 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/dlfltxb/dlfltxbcodetips.sty | 174 ++++++++ .../tex/latex/dlfltxb/dlfltxbmarkup-sample.cfg | 440 +++++++++++++++++++++ .../texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty | 262 ++++++++++++ .../texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty | 109 +++++ 4 files changed, 985 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty create mode 100644 Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup-sample.cfg create mode 100644 Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty create mode 100644 Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty (limited to 'Master/texmf-dist/tex/latex/dlfltxb') diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty new file mode 100644 index 00000000000..752777feaa3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty @@ -0,0 +1,174 @@ +\ProvidesPackage{dlfltxbcodetips}[2007/05/07 v0.1 by Lars 'daleif' Madsen] + +% this pacakge collects some macros presented as code tips in my LaTeX +% book: "Introduktion til LaTeX". As the macros might be useful for +% other than the normal readers of my book, the longer macros are +% collected in this package. + +% This package be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Lars Madsen (daleif@imf.au.dk). +%% + + + + +\RequirePackage{amsmath,amssymb} + +% \InsertTheoremBreak removes the spacing above the first item, +% \InsertTheoremBreak* does not +\newcommand\InsertTheoremBreak{% + \@ifstar{\item[\vbox{\null}]}{% + \begingroup % keep changes local + \setlength\itemsep{0pt}% + \setlength\parsep{0pt}% + \item[\vbox{\null}]% + \endgroup% + }} + +% macro made on request by Morten H\o gholm +% \ArrowBetweenLines adds arrow on the left +% \ArrowBetweenLines* on the right +% more information is needed +% requires the amsmath package +\def\ArrowBetweenLines{\relax + \iffalse{\fi\ifnum0=`}\fi + \@ifstar{\ArrowBetweenLines@auxI{00}}{\ArrowBetweenLines@auxI{01}}} +\def\ArrowBetweenLines@auxI#1{% + \@ifnextchar[% + {\ArrowBetweenLines@auxII{#1}}% + {\ArrowBetweenLines@auxII{#1}[\Updownarrow]}} +\def\ArrowBetweenLines@auxII#1[#2]{% + \ifnum0=`{\fi \iffalse}\fi + \crcr + \noalign{\nobreak\vskip-\baselineskip\vskip-\lineskip}% + \noalign{\expandafter\in@\expandafter{\@currenvir}% + {alignedat,aligned,gathered}}% + \if#1 &&\quad #2\else #2\quad\fi + \ifin@ \else\notag\fi + \\\noalign{\nobreak\vskip-\lineskip}} + + +% for making theorems with shaded background +% requires the use of ntheorem, (x)color and framed +% currently only ntheorem is supported (perhaps support for amsthm or +% theorem will be added later) +% has the same syntax as \newtheorem +\newcommand\NewShadedTheorem[1]{% + \@ifnextchar[{\NST@levelii{#1}}{\NST@levelii{#1}[]}} +\def\NST@levelii#1[#2]#3{% + \@ifnextchar[{\NST@leveliii{#1}[#2]{#3}}{\NST@leveliii{#1}[#2]{#3}[]}} +\newcommand\NST@helper[1]{% + \edef\@tempa{c@#1}\edef\@tempb{c@#1@inner}% + \expandafter\let\csname\@tempa\expandafter\endcsname\csname\@tempb\endcsname% + \edef\@tempa{the#1}\edef\@tempb{the#1@inner}% + \expandafter\let\csname\@tempa\expandafter\endcsname\csname\@tempb\endcsname% +} +\def\NST@leveliii#1[#2]#3[#4]{% + \ifx\\#2\\% i.e. no common counter + \ifx\\#4\\% i.e. no dominant counter + \newtheorem{#1@inner}{#3}% + \NST@helper{#1}% + \else% i.e. dominant counter + \newtheorem{#1@inner}{#3}[#4]% + \NST@helper{#1}% + \fi% + \else% i.e. common counter + \newtheorem{#1@inner}[#2]{#3}% + \fi% + \newenvironment{#1}{% + \begin{shaded}% + \setlength\theorempreskipamount{0pt}% + \setlength\theorempostskipamount{0pt}% + \begin{#1@inner}}{\end{#1@inner}\end{shaded}\@endparenv}% + \newtheorem*{#1@innerstr}{#3} + \newenvironment{#1*}{% + \begin{shaded}% + \setlength\theorempreskipamount{0pt}% + \setlength\theorempostskipamount{0pt}% + \begin{#1@innerstr}}{\end{#1@innerstr}\end{shaded}\@endparenv}% + } + +% Mathematics into Type by Ellen Swanson recommends that line-broken +% displayed alignments should be indented by 2em (and other rules) +% instead of aligning ti the left and indenting all subsequent lines, +% it is easier to just pull back the first line. Just align all lines +% to the left and replace the & on the fist line with \PullBack +% The indentation amount can be changed by \PullBack[3], i.e. no unit, +% 'em will be used automatically +\newlength\PullBackLength +\newcommand\PullBack[1][2]{% + \setlength{\global\PullBackLength}{#1em}% + \kern\PullBackLength% + & + \kern-\PullBackLength} + + +% this implements a stack that holds a user build mathindent +% not easy to explain in words see the documentation +\newtoks\dlf@STACK +\def\dlf@Prepend#1(to:)#2{\toks0={#1}% + \global\edef\act{\global\noexpand#2={\the\toks0 \the#2}}% + \act} +\def\dlf@PopOff#1{\global\edef\act{\global\noexpand\dlf@SplitOff\the#1% + (tail:)\noexpand#1}\act} +\def\dlf@SplitOff#1#2(tail:)#3{#3={#2}} +\newlength\MathIndentLength +\newcommand\MathIndent{\kern\MathIndentLength} +\newcommand\PopMathIndent{% + \@ifstar{\@PopMathIndent\relax}{\@PopMathIndent\MathIndent}} +\newcommand\@PopMathIndent[1]{\dlf@PopOff\dlf@STACK + \settowidth\@tempdimc{\ensuremath{\displaystyle\phantom{\the\dlf@STACK}}} + \setlength{\global\MathIndentLength}{\@tempdimc}#1} +\newcommand\SetMathIndent[1]{\dlf@STACK={}\dlf@Prepend{{#1}}(to:)\dlf@STACK + \settowidth\@tempdimc{\ensuremath{\displaystyle\phantom{\the\dlf@STACK}}} + \setlength{\global\MathIndentLength}{\@tempdimc}#1} +\newcommand\AddtoMathIndent[1]{\dlf@Prepend{{#1}}(to:)\dlf@STACK + \settowidth\@tempdimc{\ensuremath{\displaystyle\phantom{\the\dlf@STACK}}} + \setlength{\global\MathIndentLength}{\@tempdimc}#1} + + +% constructs a \bigtimes symbol, in the same category as e.g. \sum +% etc. Since we are using \DeclareMathOperator, the amsmath package is +% required, thus autoloaded by this pacakge +\newcommand\SNYDINTERN[1]{\vcenter{{\hbox{#1\ensuremath\times}}}} +\newcommand\SNYD{% + \mathchoice{\SNYDINTERN\huge\displaystyle}% display style + {\SNYDINTERN\LARGE\textstyle\mkern-3.5mu} % text style + {\SNYDINTERN{}\scriptstyle\mkern-2mu} % script style + {\SNYDINTERN\footnotesize\scriptscriptstyle\mkern-2mu}% script script style +} +\DeclareMathOperator*\bigtimes{\SNYD} + + +% constructor for creating negated \up/downarrow +% requires graphicx +\newcommand*\nrotarrowconstructor[2]{% + \mathrel{\m@th\sbox\z@{$ #1 $}% + \raisebox{1.3\dp\z@}{% + \makebox[\wd\z@][c]{% + \reflectbox{\rotatebox[origin=cB]{90}{$ #2 $}}% + \kern0.32\wd\z@% + }}}% +} +\newcommand\nuparrow{\nrotarrowconstructor\uparrow\nrightarrow} +\newcommand\ndownarrow{\nrotarrowconstructor\downarrow\nleftarrow} + + +% this can be used as the first thing in an amsmath alignment +% environments for displayed math. It switches \abovedisplayskip and +% \abovedisplayshortskip before the display, usefull in some cases to +% save some space +\newcommand\SwapDeadSpace{% + \noalign{\vskip-\abovedisplayskip\vskip\abovedisplayshortskip} +} + + diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup-sample.cfg b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup-sample.cfg new file mode 100644 index 00000000000..ce7910635fc --- /dev/null +++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup-sample.cfg @@ -0,0 +1,440 @@ +\ProvidesFile{felinemarkup.cfg}[2007/05/15 by Lars madsen] + +% the original name for the dlfltxbmarkup package was 'felinemarkup', +% and in my book I use the following generated keys + +% This file be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Lars Madsen (daleif@imf.au.dk). +%% + + + +% default key +\def\felineStandardKey{macro} +% +% til makroer +\felineKeyGenerator{macro} + {for normal macros (this is the default key)}% + {\felineWriteInMargin{{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}}}% + {\felineIndexCmd{#1@\protect\css{#1}}}% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + + +\felineKeyGenerator{m}% + {just an alias for macro}% + {\felineWriteInMargin{{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}}}% + {\felineIndexCmd{#1@\protect\css{#1}}}% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + + + +% pakker, sty nemt at huske +\felineKeyGenerator{sty}% + {for registering package names}% + {\felineWriteInMargin{\foreignlanguage{english}{#1}}}% + {\felineIndexCmd{#1 (pakke)@#1 (pakke)}\felineIndexCmd{pakker!#1}}% + {\foreignlanguage{english}{\texttt{\hyphenchar\font=`\-#1}}} + + +% dokumentklasser +\felineKeyGenerator{cls}% + {for registering class names}% + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (klasse)@#1 (klasse)}\felineIndexCmd{dokumentklasser!#1}}% + {\textsf{\textit{#1}}} + +% pagestyles +\felineKeyGenerator{ps}% + {for the names of page styles}% + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (pagestyle)}\felineIndexCmd{pagestyles!#1}}% + {\textsf{\textbf{#1}}} + +% environments +\felineKeyGenerator{env}% + {registering the name of environments} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (environment)@#1 (environment)}% + \felineIndexCmd{environments!#1}}% + {\foreignlanguage{english}{\textit{\textbf{#1}}}} + + +% lister +\felineKeyGenerator{list}% + {names of lists} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (liste)}\felineIndexCmd{lister!#1}\felineIndexCmd{environments!#1}}% + {\textit{\textbf{#1}}} + +% almindelige ord og fraser +\felineKeyGenerator{w}% + {normal words and frases} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1}} + {#1} + +% programmer +\felineKeyGenerator{prog}% + {for commandline programs} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (program)@\texttt{#1} (program)}\felineIndexCmd{programmer!#1@\texttt{#1}}}% + {\texttt{#1}} + +% matematiske symboler +\def\felinenameuse#1{\@nameuse{#1}} +\felineKeyGenerator{msym}% + {mathematical symbols} + {\felineWriteInMargin{\cs{#1} \textnormal{($\@nameuse{#1}$)}}}% + {\felineIndexCmd{#1@\protect\css{#1} ($\protect\felinenameuse{#1}$)}% + }% + {\cs{#1}} + +% store matematiske symboler +\felineKeyGenerator{bigmsym}% + {operator symbols, like sum etc.} + {\felineWriteInMargin{\cs{#1} \textnormal{($\@nameuse{#1}$)}}}% + {\felineIndexCmd{#1@\protect\css{#1} ($\protect\felinenameuse{#1}$)}% + \felineIndexCmd{store symboler!#1@\protect\css{#1} ($\protect\felinenameuse{#1}$)}% + % + }% + {\cs{#1}} + +% log-like konstruktioner +\felineKeyGenerator{mlog}% + {log-like functions} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1@\protect\css{#1} (mat. operator)}% + \felineIndexCmd{navngivne operatorer!#1@\protect\css{#1}}% + % + }% + {\cs{#1}} + + + +% almindelige symboler +\felineKeyGenerator{sym}% + {text symbols} + {\felineWriteInMargin{\cs{#1} \textnormal{(\@nameuse{#1})}}}% + {\felineIndexCmd{#1@\protect\css{#1} (\@nameuse{#1})}}% + {\cs{#1}} + +% delimiters/hegn +\felineKeyGenerator{delim}% + {delimiters / fences} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1@#1 (delimiter)}\felineIndexCmd{delimiters!#1}}% + {\ensuremath{#1}} + +% delimiters speciel +\felineKeyGenerator{delims}% + {special delimiters (no idea what this is used for)} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1@\protect\css{#1}}}% + {\ensuremath{\cs{#1}}} + +% ntheorem makroer +\felineKeyGenerator{nthm}% + {ntheorem macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{ntheorem (pakke)@ntheorem (pakke)!\protect\css{#1}}% + \felineIndexCmd{#1 (ntheorem)@\protect\css{#1} + (ntheorem)}}% + {\cs{#1}} + +% ntheorem theoremstyles +\felineKeyGenerator{nthmstl}% + {ntheorem theorem styles} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{ntheorem (pakke)!theoremstyle!#1}% + \felineIndexCmd{#1 (theoremstyle, nthm)}% + \felineIndexCmd{theoremstyle (ntheorem)@\protect\css{theoremstyle} (ntheorem)!#1}% + }% + {\textbf{#1}} + +% XY pic makroer +\felineKeyGenerator{xym}% + {Xy-pic macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1@\protect\css{#1}}\felineIndexCmd{XY-pic@\protect\Xy-pic!#1@\protect\css{#1}}}% + {\cs{#1}} + +% Xy-pic pile +\felineKeyGenerator{xymar}% + {Xy-pic arrows} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{ar@\protect\css{ar}!#1}\felineIndexCmd{XY-pic@\protect\Xy-pic!ar@\protect\css{ar}!#1}}% + {#1} + +% mathtool environments +\felineKeyGenerator{mtoolsenv}% + {mathtools environments} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (environment)}\felineIndexCmd{environments!#1}% + \felineIndexCmd{mathtools (pakke)@mathtools (pakke)!#1}}% + {\textit{\textbf{#1}}} + +% figur/billed formater +\felineKeyGenerator{ftype}% + {figure formats} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1}\felineIndexCmd{figur format!#1}}% + {\textsc{#1}} + +% fejlmeddelelser, dette er vist ikke avendet til noget +\felineKeyGenerator{err}% + {for error messages, currently un-used} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1}\felineIndexCmd{fejlmeddelelser!#1}}% + {\textsf{#1}} + +% natbib makroer +\felineKeyGenerator{nb}% + {natbib macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1 (natbib)@\protect\css{#1} (natbib)}\felineIndexCmd{natbib (pakke)@natbib (pakke)!#1@\protect\css{#1}}}% + {\cs{#1}} + +% natbib options +\felineKeyGenerator{nbop}% + {natbib package options} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (natbib option)}% + \felineIndexCmd{natbib (pakke)@natbib (pakke)!pakke options!#1}}% + {\texttt{#1}} + + +% bibtex felt +\felineKeyGenerator{bibfelt}% + {BibTeX fields} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (bibtex felt)@#1 (\protect\BibTeX{} felt)}\felineIndexCmd{bibtex@\protect\BibTeX!felter!#1}}% + {\texttt{#1}} + +% bibtex type +\felineKeyGenerator{bibtype}% + {BibTeX types} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (bibtex type)@#1 (\protect\BibTeX{} type)}\felineIndexCmd{bibtex@\protect\BibTeX!typer!#1}}% + {#1} + +% bibtex stil +\felineKeyGenerator{bibstyle}% + {BibTeX style} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (bibtex stil)@#1 (\protect\BibTeX{} stil)}\felineIndexCmd{bibtex@\protect\BibTeX!stile!#1}}% + {\texttt{#1}} + +% memoir specifik makro +\felineKeyGenerator{mem}% + {memoir specific macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1 (memoir)@\protect\css{#1} (memoir)}% + \felineIndexCmd{memoir (klasse)!#1@\protect\css{#1}}% + }% + {\cs{#1}} + +% memoir specifik environment +\felineKeyGenerator{menv}% + {memoir specific environments} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (env, memoir)@#1 (env, memoir)}% + \felineIndexCmd{environments!#1}\felineIndexCmd{memoir@memoir (klasse)!#1}}% + {\textit{\textbf{#1}}} + +% memoir chapterstyle +\felineKeyGenerator{chapstyle}% + {memoir chapter styles} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (chapter style)}% + \felineIndexCmd{chapterstyle@\protect\css{chapterstyle} (memoir)!#1} + \felineIndexCmd{memoir (klasse)!chapterstyle@\protect\css{chapterstyle}!#1}}% + {\textsf{#1}} + +% booktabs makroer +\felineKeyGenerator{bt}% + {booktabs macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1@\protect\css{#1} (booktabs)}% + \felineIndexCmd{booktabs (pakke)@booktabs (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{memoir (klasse)!#1@\protect\css{#1}}% + }% + {\cs{#1}} + +% longtable makroer +\felineKeyGenerator{lt}% + {longtable macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1 (longtable)@\protect\css{#1} (longtable)}% + \felineIndexCmd{longtable@longtable (pakke)!#1@\protect\css{#1}}% + }% + {\cs{#1}} + +% colortbl makroer +\felineKeyGenerator{ctbl}% + {colortbl macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1 (colortabl)@\protect\css{#1} (colortbl)}% + \felineIndexCmd{colortbl@colortbl (pakke)!#1@\protect\css{#1}}% + }% + {\cs{#1}} + +% dokumentklasse options +\felineKeyGenerator{dop}% + {document class options} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (klasse option)}\felineIndexCmd{dokumentklasse!options!#1}% + }% + {\textsf{\textit{#1}}} + +\felineKeyGenerator{mdop}% + {memoir class options} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (memoir klasse option)}% + \felineIndexCmd{dokumentklasse!options!#1 (memoir)}% + }% + {\textsf{\textit{#1}}} + + +% fixme makroer +\felineKeyGenerator{fixme}% + {fixme macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{fixme (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (fixme)@\protect\css{#1} (fixme)}% + }% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + +% varioref makroer +\felineKeyGenerator{vario}% + {varioref macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{varioref (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (varioref)@\protect\css{#1} (varioref)}% + }% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + + +% fancyhdr pakke makroer +\felineKeyGenerator{fnchdr}% + {fancyhdr macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{fancyhdr (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (fancyhdr)@\protect\css{#1} (fancyhdr)}% + }% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + + +% memoir specifikke pagestyles +\felineKeyGenerator{memps}% + {memoir specific page styles} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (pagestyle, memoir)}% + \felineIndexCmd{pagestyles!#1 (memoir)}}% + {\textsf{\textbf{#1}}} + +% options til \includegraphics +\felineKeyGenerator{inclgrfopt}% + {options for includegraphics} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (graphicx)}% + \felineIndexCmd{graphicx (pakke)!includegraphics@\protect\css{includegraphics}!#1}% + \felineIndexCmd{includegraphics@\protect\css{includegraphics}!#1}}% + {\textsf{#1}} + +% caption pakke makroer +\felineKeyGenerator{cap}% + {caption pacakge macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{caption (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (caption)@\protect\css{#1} (caption)}% + }% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + +% subfig makroer +\felineKeyGenerator{subfig}% + {subfig macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{subfig (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (subfig)@\protect\css{#1} (subfig)}% + }% + {{\foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}} + +% KOMA-script kalsser +\felineKeyGenerator{clskoma}% + {KOMA script classes} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (klasse)}% + \felineIndexCmd{dokumentklasser!KOMA-script@\textsf{KOMA}-script!#1}}% + {\textsf{\textit{\mbox{#1}}}} + +% grafik format (hmm, dem er det så to af????) +\felineKeyGenerator{grffmt}% + {graphics format (hmm, two of these???)} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (grafik format)}% + \felineIndexCmd{grafik format!#1}}% + {\textsc{#1}} + +% enumitem makroer +\felineKeyGenerator{ei}% + {enumitem macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{enumitem (pakke)!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (enumitem)@\protect\css{#1} (enumitem)}}% + {\cs{#1}} + +% enumitem options +\felineKeyGenerator{eio}% + {enumimte options} + {\felineWriteInMargin{#1}}% enumitem option + {\felineIndexCmd{enumitem (pakke)!#1}% + \felineIndexCmd{#1 (enumitem)}}% + {\texttt{#1}} + +% input encoding options +\felineKeyGenerator{inputenc}% + {inputencodings} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{inputencoding!#1}% + \felineIndexCmd{#1 (inputencoding)}}% + {\texttt{#1}} + +% tæller options +\felineKeyGenerator{counter}% + {name of counters} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{tæller!#1}% + \felineIndexCmd{#1 (tæller)}}% + {\texttt{#1}} + +% længde options +\felineKeyGenerator{length}% + {name of lengths} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{længde!#1@\protect\css{#1}}% + \felineIndexCmd{#1 (længde)@\protect\css{#1} (længde)}}% + {\cs{#1}} + +\felineKeyGenerator{gauss}% + {gauss package macros} + {\felineWriteInMargin{\cs{#1}}}% + {\felineIndexCmd{#1@\protect\css{#1} (gauss)}% + \felineIndexCmd{gauss (pakke)@gauss (pakke)!#1@\protect\css{#1}}}% + {\cs{#1}} + +\felineKeyGenerator{tabs}% + {column specifiers for tabular etc.} + {\felineWriteInMargin{#1}}% + {\felineIndexCmd{#1 (søjle specifier)}% + \felineIndexCmd{søjle specifier!#1}}% + {\texttt{#1}} + diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty new file mode 100644 index 00000000000..30daa71f5f7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty @@ -0,0 +1,262 @@ +\ProvidesPackage{dlfltxbmarkup}[2007/05/16 v0.6 by daleif] + +\@ifclassloaded{memoir}{}{% + \PackageError{felinemarkup}{This package depends on several internal + components of the memoir class and therefore need the memoir + class}{Use the memoir class} +} + + + +\RequirePackage{keyval} +\RequirePackage{ragged2e} + + +\DeclareOption{loadsampleconfig}{\AtEndOfPackage{\InputIfFileExists{dlfltxbmarkup-sample.cfg}{}{}}} + +\ProcessOptions\relax + + + +% HISTORY +% <2007 this package dates back to at least 2004 +% 2007/03/20 added \color{black} to the margin writing devices, since +% color at a line boundary may extend out into the margin +% 2007/03/21 added inputenc keyword +% 2007/03/21 added counter keyword +% 2007/03/21 added length keyword +% 2007/03/22 added gauss keyword +% 2007/03/23 added tabs keyword +% 2007/03/23 added nbop keyword +% 2007/03/24 fixed a bug in tabs +% 2007/03/24 fixed loads more index errors +% 2007/04/27 added \hspace{0pt} to \MarkWMargin to activate automatic hyphenation +% 2007/04/30 added \feline@MWM@inner to get better source re-use +% 2007/05/05 fixed a margin placement problem by adding \leavevmode +% in front of \checkoddpage in \feline@MWM@inner, fix +% supplied by Peter Wilson, after I submitted a bug report +% about it. +% 2007/05/10 started adding support for key explanations, planning to +% make it possible to print a generated overview of the +% regisered keys +% 2007/05/14 all keys for my book project have now been moved to +% felinemarkup.cfg, which wil be loaded at the end of the +% package, if the 'loadfelinemarkupconfig' package option +% is given +% 2007/05/15 \feline@index@cmd renamed to \felineIndexCmd +% 2007/05/16 package renamed to dlfltxbmarkup + + +% this boolean is meant to be used for example inside constructions +% that will not permit the use of \marginpar, for example the +% environments 'framed' and 'shaded', then \MarkWMargin will use +% \sidepar instead of \marginpar + +\@ifundefined{ifNoMarginparAvail}{% + \newif\ifNoMarginparAvail + \NoMarginparAvailfalse +}{} + + +\newcommand\felineMarginAdjustment{% + \ifoddpage\RaggedRight\else\RaggedLeft\fi} + + +% typesets the material in the margin +% we use \checkoddpage (assuming the use of \strictpagechecktrue) to +% perform a rigid test on whether or not we are on an odd page +% \RaggedRight \RaggedLeft is used to get the test 'mashed' up against +% the text, and to permit hyphenation. If the material in #1 is using +% typewriter font, then it is #1's responsability to ensure that +% hyphenation is possible in that font +\newcommand\feline@MWM@inner[1]{% + \parbox[t]{\marginparwidth}{% + \leavevmode\checkoddpage% needs \leavevmode since \checkoddpage + % leaves a whatsit +% \ifoddpage\RaggedRight\else\RaggedLeft\fi% + \felineMarginAdjustment% + {\slshape\footnotesize\hspace{0pt}\color{black}#1\par}}} + +% this might not belong here, but we will leave it for now +\strictpagechecktrue% +\reversesideparfalse% + +% the main macro to write in the margin with +\newcommand\felineWriteInMargin[1]{% + \ifNoMarginparAvail% + \sidepar{\feline@MWM@inner{#1}}% + \else% + \if@feline@forcesidepar% + \sidepar{\feline@MWM@inner{#1}}% + \else% + \marginpar{\feline@MWM@inner{#1}}% + \fi% + \fi% +}% + + +% because of a possible babel use, and its active charecters (in +% danish, " is an active character, it seems that we cannot directly +% add automatic english hyphenation to \cs and \css, in most cases it +% can be added by hand to the macros specified in \FelineKeyGenerator +% see felinemarkup.cfg +\DeclareRobustCommand\cs[1]{% + \textnormal{\texttt{\symbol{'134}#1}}} + +\@ifpackagewith{babel}{english}{ + \DeclareRobustCommand\css[1]{% + \textnormal{\texttt{% + \protect\makebox[0pt][r]{\symbol{'134}}% + \foreignlanguage{english}{\cs{\hyphenchar\font=`\-#1}}}}} +}{ + \DeclareRobustCommand\css[1]{% + \textnormal{\texttt{% + \protect\makebox[0pt][r]{\symbol{'134}}% + {#1}}}} +} + +% indexing commands, first just two alias macros +\newcommand\textitindex[1]{\textit{#1}} +\newcommand\textbfindex[1]{\textbf{#1}} +% then two different indexing macros, one for italic index entries and +% one for bold. we use them like this to avoid expansion problems (or +% at least try to) +\newcommand\itindex[1]{\index{#1|textitindex}} +\newcommand\bfindex[1]{\index{#1|textbfindex}} +% default indexing command, we change this using the idxit, idxbf keys +\newcommand\felineIndexCmd{\index} + + +% --------------------------------------------------------------------------- + + + +% just initial definitions +\newcommand*\feline@margin[1]{\par margin: #1\par} +\newcommand*\feline@index[1]{\par index: #1\par} +\newcommand*\feline@text[1]{\par text: #1\par} + +% just a shortcut, amsmath makes the same one +\let\@xp\expandafter + +\define@key{FelineIndex}{empty}[]{% + \renewcommand*\feline@margin[1]{\par margin: ##1\par}% + \renewcommand*\feline@index[1]{\par index: ##1\par}% + \renewcommand*\feline@text[1]{\par text: ##1\par}% +} + +% whether or not to write the text part +\newif\if@feline@txt \@feline@txttrue +% whether or not to write in the margin +\newif\if@feline@mrgn \@feline@mrgntrue +% whether or not to add to the index +\newif\if@feline@idx \@feline@idxtrue +% force the use of sidepar instead of the usual marginpar +\newif\if@feline@forcesidepar +% whether or not to let \markup add a \hspace{0pt} in the text +% don't know it this is still needed +\newif\if@feline@hsp + +% basically stolen from another package +\newcommand*\dlf@M@setbool[2]{% + \csname #2\ifx\relax#1\relax true \else #1\fi\endcsname} + +% switch off keys +\define@key{FelineIndex}{notxt} []{\@feline@txtfalse} % = nowr +\define@key{FelineIndex}{nowr} []{\@feline@txtfalse} % no writing in text +\define@key{FelineIndex}{nomk} []{\@feline@mrgnfalse} % no mark in margin +\define@key{FelineIndex}{noidx} []{\@feline@idxfalse} % no adding index + +\define@key{FelineIndex}{hsp} []{\@feline@hsptrue} + +% locally use a different index command +\define@key{FelineIndex}{idxit} []{\renewcommand\felineIndexCmd{\itindex}} +\define@key{FelineIndex}{idxbf} []{\renewcommand\felineIndexCmd{\bfindex}} +\define@key{FelineIndex}{idxn} []{\renewcommand\felineIndexCmd{\index}} + +% \sidepar's are non-floating objects so they does not move by them +% self, we need to help if needed, the argument should be a number +% (the unit will be \onelineskip) +\newlength\feline@spvs@addto +\setlength\feline@spvs@addto{0pt} +\define@key{FelineIndex}{addtospvrt}{\addtolength{\feline@spvs@addto}{#1\onelineskip}} +\define@key{FelineIndex}{vaddtosp} {\addtolength{\feline@spvs@addto}{#1\onelineskip}} + +% force the use of \sidepar, don't think I've ever used this +\define@key{FelineIndex}{forcesidepar}[true]{\dlf@M@setbool{#1}{@feline@forcesidepar}} + +% by default this macro does nothing, the idea behind it is to use +% this in an external document to generate a list of key names and +% descriptions (using the first two arguments) +\providecommand\felineMarkupDescription[5]{} + +% key generator macro, has the following arguments +% #1: name of the key +% #2: description of what this key is for +% #3: code for margin command +% #4: code for index command +% #5: code for text command +% and does the following: +% * creates \feline@margin@, \feline@index@ and +% \feline@text@ +% * the \define@key part then performs three \let's: +% \let\feline@margin\feline@margin@ etc. +% when using \FelineKeyGenerator, #1 refers to the main argument given +% to \markup +\newcommand\felineKeyGenerator[5]{% + \felineMarkupDescription{#1}{#2}{#3}{#4}{#5}% + \global\define@key{FelineIndex}{#1}[]{% + \global\@xp\@xp\@xp\let\@xp\@xp\@xp\feline@margin\@xp\csname feline@margin@#1\endcsname% + \global\@xp\@xp\@xp\let\@xp\@xp\@xp\feline@index\@xp\csname feline@index@#1\endcsname% + \global\@xp\@xp\@xp\let\@xp\@xp\@xp\feline@text\@xp\csname feline@text@#1\endcsname% + }% + \@namedef{feline@margin@#1}##1{#3}% + \@namedef{feline@index@#1}##1{#4}% + \@namedef{feline@text@#1}##1{#5}% +} + +% standard key er lavet ned i \setkeys, da \markup[notxt]{...} ellers ikke vil +% være det samme som \markup[macro,notxt]{...} + +% this is the main macro, take two arguments, a optional argument for +% key controls and the mandatory arguments for the think we want to +% markup +% note the it starts by setting the \feline@std@key which will be the +% stadard key used if the optional argument is empty or the other keys +% does not alter the \feline@margin, \feline@text and \feline@index +\newcommand\markup[2][]{% +% \@bsphack + \begingroup% + \setkeys{FelineIndex}{\felineStandardKey}% + \setkeys{FelineIndex}{#1}% + \ifdim\feline@spvs@addto>0pt% + \addtolength\sideparvshift{\feline@spvs@addto}% + \fi% + \if@feline@txt\feline@text{#2}\fi% + \if@feline@idx\feline@index{#2}\fi% + \if@feline@mrgn\if@feline@hsp\hspace{0pt}\fi\feline@margin{#2}\fi% + \@feline@txttrue% + \@feline@mrgntrue% + \@feline@idxtrue% + \endgroup% +% \@esphack +} + +% default generated key used by \markup, in the example setup 'macro' +% is used +\def\felineStandardKey{test} + +% test key +\felineKeyGenerator{test} + {test key, does not do anything useful}% + {\MarkWMargin{#1}}% + {\felineIndexCmd{#1}}% + {\emph{#1}} + + + +\InputIfFileExists{dlfltxbmarkup.cfg}{}{} + + + + diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty new file mode 100644 index 00000000000..80878531cb2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty @@ -0,0 +1,109 @@ +\ProvidesPackage{dlfltxbmisc}[2007/05/15 v0.1 by Lars Madsen] + +% if memoir is not loaded we will need the chngpage to get adjustwidth +\@ifclassloaded{memoir}{}{ + \RequirePackage{chngpage} +} + +\RequirePackage{ragged2e} +\RequirePackage{url} +\RequirePackage{calc} + +\newcommand*\Arg@s[1]{\textnormal{\texttt{#1}}}% +\newcommand*\Arg@n[1]{\textnormal{$\langle$\textit{#1}$\rangle$}}% +\newcommand*\Arg{\@ifstar{\Arg@s}{\Arg@n}}% + +\newcommand*\marg@s[1]{\textnormal{\texttt{\{#1\}}}} +\newcommand*\marg@n[1]{% + \textnormal{\texttt{\{}$\langle$\textit{#1}$\rangle$\texttt{\}}}% +} +\newcommand*\marg{\@ifstar{\marg@s}{\marg@n}} + +\newcommand*\oarg@s[1]{\textnormal{\texttt{[#1]}}} +\newcommand*\oarg@n[1]{% + \textnormal{\texttt{[}$\langle$\textit{#1}$\rangle$\texttt{]}}% +} +\newcommand*\oarg{\@ifstar{\oarg@s}{\oarg@n}} + +\newcommand*\parg@s[1]{\textnormal{\texttt{(#1)}}} +\newcommand*\parg@n[1]{% + \textnormal{\texttt{(}$\langle$\textit{#1}$\rangle$\texttt{)}}% +} +\newcommand*\parg{\@ifstar{\parg@s}{\parg@n}} + +\newcommand\malign[2][2pt]{% + \makebox[0pt][l]{\kern#1\smash{\rule[-1.5mm-#2\baselineskip]{0.01pt}{5mm+#2\baselineskip}}}% +} + + +\newenvironment{syntax}{% + \vskip.5\baselineskip\allowbreak% + \begin{adjustwidth}{\parindent}{0pt} + \parindent=0pt% + \obeylines% + \let\\=\relax% + }{% + \end{adjustwidth}% + \vskip.5\baselineskip% +} +\newenvironment{syntax*}{% + \vskip.5\baselineskip% + \begin{adjustwidth}{\parindent}{0pt} + \parindent=0pt% + }{% + \end{adjustwidth}% + \vskip.5\baselineskip% +} + +\let\syntaks=\syntax +\let\endsyntaks=\endsyntax + +% macro used in several math examples to show the structure. It acts +% like some text but only displays a box. +\newcommand\@dbx[1]{{\fboxsep=0pt\fboxrule=0.4pt\,\fbox{\phantom{\rule[-0.6mm]{#1}{3mm}}}\,}} +\newcommand\dbx[1][5mm]{\ifmmode\mathord{\@dbx{#1}}\else\@dbx{#1}\fi} + + +% powerfull macro by Morten Høgholm, this enables you to measure the +% length of the previous paragraf. +\newdimen\lastlinedim +\def\getlastlinesize{% + \begingroup\frozen@everydisplay{}% + $$ + \abovedisplayskip=\z@skip \abovedisplayshortskip=\z@skip + \belowdisplayskip=\z@skip \belowdisplayshortskip=\z@skip + \global\lastlinedim=\dimexpr\predisplaysize-2em\relax + \halign{##\cr}% + $$ + \mbox{}% + \endgroup% +} + +% this is a very special little macro to be used in the 'note' field +% of bibtex entries. It eats up the added '.' and typesets the main +% argument (an URL) in a raggedright manner, wrapped up into the +% previous paragraph. It looks pretty cool. +\newcommand\addurl[3][\textsc{url}:]{% + \getlastlinesize{}% + \vskip-2\baselineskip% + \begingroup% + \def\UrlNoBreaks{\do\(\do\[\do\{\do\<\do\:\do\.}%\] + \RaggedLeft% + \fussy% + \addtolength\lastlinedim{-\bibhang}% + \fboxsep=0pt% + \fboxrule=0pt% + \fbox{\hbox to \lastlinedim{\hfill \footnotesize \strut \hfill}}% + \ifdim \lastlinedim > 0.6\linewidth\relax% we break + \nopagebreak\vskip-3pt% + \else% + % special thanks to Dan Luecking for this, since my original + % \hspace{\fill} failed miserably + \hskip1em plus 5em minus .5em + \fi% + {\footnotesize #1~~{\url{#2}}} % + \par% + \endgroup% +} + + -- cgit v1.2.3