diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrlayer-notecolumn.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrlayer-notecolumn.sty | 1148 |
1 files changed, 1148 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrlayer-notecolumn.sty b/Master/texmf-dist/tex/latex/koma-script/scrlayer-notecolumn.sty new file mode 100644 index 00000000000..8fa4d604372 --- /dev/null +++ b/Master/texmf-dist/tex/latex/koma-script/scrlayer-notecolumn.sty @@ -0,0 +1,1148 @@ +%% +%% This is file `scrlayer-notecolumn.sty', +%% generated with the docstrip utility, extended by scrdocstrip. +%% +%% The original source files were: +%% +%% scrlayer-notecolumn.dtx (with options: `interface,trace,notecolumn,identify') +%% scrlayer.dtx (with options: `interface,trace,notecolumn,init') +%% scrlayer-notecolumn.dtx (with options: `interface,trace,notecolumn,init') +%% scrlayer.dtx (with options: `interface,trace,notecolumn,options') +%% scrlayer-notecolumn.dtx (with options: `interface,trace,notecolumn,options') +%% scrlayer.dtx (with options: `interface,trace,notecolumn,body') +%% scrlayer-notecolumn.dtx (with options: `interface,trace,notecolumn,body') +%% scrlayer-notecolumn.dtx (with options: `interface,trace,notecolumn,final') +%% scrlogo.dtx (with options: `logo') +%% +%% Copyright (c) 1994-2013 Markus Kohm [komascript at gmx info] +%% +%% This file was generated from file(s) of the KOMA-Script bundle. +%% --------------------------------------------------------------- +%% +%% It may be distributed under the conditions of the +%% LaTeX Project Public License in the version distributed together +%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'. +%% +%% This file may only be distributed together with a copy of the +%% KOMA-Script bundle. You may however distribute the +%% KOMA-Script bundle without all such generated files. See also +%% `lppl.txt' or `lppl-de.txt' for additional information. +%% +%% The list of files belonging to KOMA-Script distribution is given in +%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for +%% additional information. +%% +%% If this file is a beta version, you may not be allowed to distribute +%% it. Look at the comments below to see if this is the case. +%% +%% English and German manuals are part of KOMA-Script bundle. +%% ---------------------------------------------------------- +%% +%% See `README'. +%% +%% The KOMA-Script bundle (but maybe not this file) was based upon the +%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e +%% standard classes created by The LaTeX3 Project 1994-1996. You may +%% find a complete unmodified copy of LaTeX2e at +%% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>. +%% +%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (identify) +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{scrlayer-notecolumn}[% + 15/11/2013 v0.1.1514 + package + (end user interface for scrlayer)] +%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (init) +\RequirePackage{scrlayer} +\scr@ifundefinedorrelax{scrlayer@AtEndOfPackage}{% + \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}% +}{% + \ifx\scrlayer@AtEndOfPackage\@firstofone + \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}% + \fi +} +\let\scrlayer@AtEndOfPackage\AtEndOfPackage +\scrlayerInitInterface +%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (init) +\@tempswatrue +\scr@ifundefinedorrelax{pdfsavepos}{% + \expandafter\@tempswafalse +}{% + \scr@ifundefinedorrelax{pdflastypos}{% + \expandafter\@tempswafalse + }{}% +} +\if@tempswa\else + \PackageError{scrlayer-notecolumn}{missing pdfTeX features}{% + This package needs \string\pdfsavepos\space and + \string\pdflastypos.\MessageBreak + This error is fatal, because usage of the package without these + features\MessageBreak + cannot work!\MessageBreak + You shouldn't continue, but if you'd try, I'll try to abort the LaTeX run + }% + \batchmode\csname @@end\endcsname\end +\fi +%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (options) +\KOMA@key{markcase}{% + \begingroup + \KOMA@set@ncmdkey{markcase}{reserved@a}{% + {upper}{0},{lower}{1},{used}{2},% + {ignoreuppercase}{3},{nouppercase}{3},% + {ignoreupper}{3},{noupper}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \aftergroup\FamilyKeyStateProcessed + \ifnum \reserved@a>\m@ne + \aftergroup\let\aftergroup\MakeMarkcase + \ifcase \reserved@a + \aftergroup\MakeUppercase + \aftergroup\scrlayer@forceignoreuppercasefalse + \or + \aftergroup\MakeLowercase + \aftergroup\scrlayer@forceignoreuppercasefalse + \or + \aftergroup\@firstofone + \aftergroup\scrlayer@forceignoreuppercasefalse + \else + \aftergroup\scrlayer@ignoreuppercase + \aftergroup\scrlayer@forceignoreuppercasetrue + \fi + \fi + \else + \aftergroup\FamilyKeyStateUnknownValue + \fi + \endgroup +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @markcase} +\KOMA@ifkey{autooneside}{scrlayer@autooneside}\scrlayer@autoonesidetrue +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autooneside} +\KOMA@key{automark}[]{% + \scrlayer@testunexpectedarg{automark}{#1}% + \scrlayer@AtEndOfPackage{% + \if@chapter + \automark[section]{chapter}% + \else + \automark[subsection]{section}% + \fi + }% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @automark} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @automark@default} +\KOMA@key{manualmark}[]{% + \scrlayer@testunexpectedarg{manualmark}{#1}% + \scrlayer@AtEndOfPackage{\manualmark}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @manualmark} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @manualmark@default} +\KOMA@key{onpsselect}{% + \l@addto@macro{\@ps@initialhook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsselect} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsselect@default} +\KOMA@key{onpsinit}{% + \l@addto@macro{\@ps@hook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsinit} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsinit@default} +\KOMA@key{onpsoneside}{% + \l@addto@macro{\@ps@onesidehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoneside} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoneside@default} +\KOMA@key{onpstwoside}{% + \l@addto@macro{\@ps@twosidehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpstwoside} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpstwoside@default} +\KOMA@key{onpsoddpage}{% + \l@addto@macro{\@ps@oddpagehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoddpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsoddpage@default} +\KOMA@key{onpsevenpage}{% + \l@addto@macro{\@ps@evenpagehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsevenpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsevenpage@default} +\KOMA@key{onpsfloatpage}{% + \l@addto@macro{\@ps@floatpagehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsfloatpage} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsfloatpage@default} +\KOMA@key{onpsnonfloatpage}{% + \l@addto@macro{\@ps@nonfloatpagehook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsnonfloatpage} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsnonfloatpage@default} +\KOMA@key{onpsbackground}{% + \l@addto@macro{\@ps@backgroundhook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsbackground} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsbackground@default} +\KOMA@key{onpsforeground}{% + \l@addto@macro{\@ps@foregroundhook}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @onpsforeground} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @onpsforeground@default} +\KOMA@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @deactivatepagestylelayers} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @deactivatepagestylelayers@default} +\KOMA@ifkey{draft}{scrlayer@draft} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @draft} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @draft@default} +\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @forceoverwrite} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @forceoverwrite@default} +\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoremoveinterfaces} +\scrlayer@AddCsToInterface{% + KV@KOMA.\@currname.\@currext @autoremoveinterfaces@default} +%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (options) +\KOMA@ifkey{autoclearnotecolumns}{slnc@autoclearnotecolumns}\slnc@autoclearnotecolumnstrue +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoclearnotecolumns} +\scrlayer@AddCsToInterface{KV@KOMA.\@currname.\@currext @autoclearnotecolumns@default} +%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (body) +\KOMAProcessOptions\relax +%%% From File: $Id: scrlayer-notecolumn.dtx 1514 2013-11-15 08:23:09Z mjk $ (body) +\scrlayerAddToInterface\DeclareNoteColumn{% + \newcommand*{\DeclareNoteColumn}[2][]{% + \@ifundefined{slnc@#2@box}{% + \expandafter\newsavebox\csname slnc@#2@box\endcsname + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@box\endcsname\relax + }% + }{}% + \@ifundefined{slnc@#2@unprocessed}{% + \@namedef{slnc@#2@unprocessed}{}% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@unprocessed\endcsname\relax + }% + }{}% + \@ifundefined{slnc@#2@pos}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@pos\endcsname\relax + }% + }{}% + \@ifundefined{slnc@#2@width}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname slnc@#2@width\endcsname\relax + }% + }{}% + \@ifundefined{scr@fnt@notecolumn.#2}{% + \@ifundefined{@notecolumn.#2font}{% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname @notecolumn.#2font\endcsname\relax + }% + }{% + \PackageInfo{scrlayer-notecolumn}{using already defined + macro\MessageBreak + `\expandafter\string\csname @notecolumn.#2font\endcsname' for font + element\MessageBreak + `notecolumn.#2'% + }% + }% + \newkomafont{notecolumn.#2}{}% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \expandafter\let\csname scr@fnt@notecolumn.#2\endcsname\relax + }% + }{% + \PackageInfo{scrlayer-notecolumn}{using already defined font + element\MessageBreak + `notecolumn.#2'% + }% + }% + \newcommand*{\slnc@name}{}% + \edef\slnc@name{#2}% + \FamilyExecuteOptions[.definenotecolumn]{KOMAarg}{marginpar,#1}% + \let\slnc@name\relax + \DeclareLayer[% + foreground,% + align=tl,% + voffset=1in+\topmargin+\headheight+\headsep,% + height=\dimexpr\textheight+\topskip\relax,% + hoffset=\csname slnc@#2@pos\endcsname,% + width=\csname slnc@#2@width\endcsname,% + contents=\slnc@processnotes{#2}% + ]{notecolumn.#2} + \AddLayersToPageStyle{@everystyle@}{notecolumn.#2}% + \scrlayerOnAutoRemoveInterface[scrlayer-notecolumn.sty]{% + \RemoveLayersFromPageStyle{@everystyle@}{notecolumn.#2}% + \DestroyLayer{notecolumn.#2}% + }% + \@cons\slnc@processnotecolumns{{#2}}% + }% +} +\scrlayerAddToInterface\slnc@processnotecolumns{% + \newcommand*{\slnc@processnotecolumns}{}% +} +\scrlayerAddToInterface\slnc@testforpagestylewarning{% + \newcommand*{\slnc@testforpagestylewarning}{% + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + output of note columns delayed,\MessageBreak + because with `\currentpagestyle'\MessageBreak + a page style has been selected, that\MessageBreak + isn't a layer page style,% + }% + }% + }% +} +\AfterSelectAnyPageStyle{\slnc@testforpagestylewarning} +\DefineFamilyMember[.definenotecolumn]{KOMAarg} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{position}{% + \@namedef{slnc@\slnc@name @pos}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@position} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@position@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{width}{% + \@namedef{slnc@\slnc@name @width}{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@width} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@width@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{font}{% + \setkomafont{notecolumn.\slnc@name}{#1}% + \FamilyKeyStateProcessed +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@font} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@font@default} +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{marginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{marginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defpos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@marginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@marginpar@default} +\scrlayerAddToInterface\slnc@defpos{% + \newcommand*\slnc@defpos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} + \if@reversemargin + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \else + \if@twoside + \if@reversemargin + \dimexpr \evensidemargin+1in + +\textwidth+\marginparsep\relax + \else + \dimexpr \evensidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \fi + \else + \if@reversemargin + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \fi + \fi + }% + }% +}% +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{normalmarginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{normalmarginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defnormalpos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@normalmarginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@normalmarginpar@default} +\scrlayerAddToInterface\slnc@defnormalpos{% + \newcommand*\slnc@defnormalpos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \else + \if@twoside + \dimexpr \evensidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \dimexpr \oddsidemargin+1in + +\textwidth+\marginparsep\relax + \fi + \fi + }% + }% +}% +\DefineFamilyKey[.definenotecolumn]{KOMAarg}{reversemarginpar}[\relax]{% + \FamilyKeyStateProcessed + \scrlayer@testunexpectedarg{reversemarginpar}{#1}% + \edef\reserved@a{\noexpand\slnc@defreversepos{\slnc@name}}\reserved@a + \@namedef{slnc@\slnc@name @width}{\marginparwidth}% +} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@reversemarginpar} +\scrlayer@AddCsToInterface{KV@KOMAarg.definenotecolumn@reversemarginpar@default} +\scrlayerAddToInterface\slnc@defreversepos{% + \newcommand*\slnc@defreversepos[1]{% + \@namedef{slnc@#1@pos}{% + \ifodd\value{page} + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \else + \if@twoside + \dimexpr \evensidemargin+1in + +\textwidth+\marginparsep\relax + \else + \dimexpr \oddsidemargin+1in + -\marginparsep-\csname slnc@#1@width\endcsname\relax + \fi + \fi + }% + }% +}% +\scrlayerAddToInterface\DeclareNewNoteColumn{% + \newcommand*{\DeclareNewNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{}{% + \PackageError{scrlayer-notecolumn}{note column `#2' already defined}{% + You may declare only note columns, that haven't been declared + previously using\MessageBreak + \string\DeclareNewNoteColumn. See also the alternatives + \string\RedeclareNoteColumn,\MessageBreak + \string\ProvideNoteColumn, and \string\DeclareNoteColumn.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.% + }% + }% + \DeclareNoteColumn[{#1}]{#2}% + }% +} +\scrlayerAddToInterface\ProvideNoteColumn{% + \newcommand*{\ProvideNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{}{% + \PackageInfo{scrlayer-notecolumn}{\string\ProvideNoteColumn{#2} + ignored,\MessageBreak + because of already defined\MessageBreak + not column}% + }{% + \DeclareNoteColumn[{#1}]{#2}% + }% + }% +} +\scrlayerAddToInterface\RedeclareNoteColumn{% + \newcommand*{\RedeclareNoteColumn}[2][]{% + \scr@ifundefinedorrelax{slnc@#2@box}{% + \PackageError{scrlayer-notecolumn}{note column `#2' undefined}{% + You may declare only note columns, that have been declared + previously using\MessageBreak + \string\RedeclareNoteColumn. See also the alternatives + \string\DeclareNewNoteColumn,\MessageBreak + \string\ProvideNoteColumn, and \string\DeclareNoteColumn.\MessageBreak + Nevertheless, if you'll continue, declaration will be done.% + }% + }{}% + \DeclareNoteColumn[{#1}]{#2}% + }% +} +\scrlayerAddToInterface\tf@slnc{% + \newwrite\tf@slnc + \AtBeginDocument{% + \immediate\write\@auxout{% + \noexpand\csname slnc@initwrite\noexpand\endcsname + }% + }% + \AtEndDocument{\let\slnc@initwrite\slnc@openwrite}% +} +\scrlayerAddToInterface\slnc@initwrite{}% +\scrlayerAddToInterface\slnc@openwrite{% + \newcommand*{\slnc@openwrite}{% + \immediate\closeout\slnc@file + \PackageInfo{scrlayer-notecolumn}{% + Opening `\jobname.slnc'\MessageBreak + for writing}% + \immediate\openout\tf@slnc\jobname.slnc + }% +} +\AfterReadingMainAux{% + \immediate\closeout\tf@slnc + \scr@ifundefinedorrelax{pdfmdfivesum}{% + \PackageWarningNoLine{scrlayer-notecolumn}{% + \string\pdfmdfivesum\space unavailable.\MessageBreak + The package needs \string\pdfmdfivesum\space to test\MessageBreak + whether or not one more LaTeX run will\MessageBreak + be needed to make the note columns\MessageBreak + right. If this command is unavailable\MessageBreak + you have to do the decision without\MessageBreak + this help of the package.% + }% + }{% + \begingroup + \edef\reserved@a{\pdfmdfivesum file {\jobname.slnc}}% + \ifx \slnc@mdfivesum\reserved@a + \PackageInfo{scrlayer-notecolumn}{% + MD5 of current `\jobname.slnc':\MessageBreak + \reserved@a}% + \else + \PackageWarningNoLine{scrlayer-notecolumn}{% + MD5 of slnc-file changed.\MessageBreak + Last: \slnc@mdfivesum\MessageBreak + New: \space \reserved@a\MessageBreak + At least one more LaTeX rerun need to\MessageBreak + make note columns right% + }% + \aftergroup\@tempswatrue + \fi + \endgroup + }% +} +\scrlayerAddToInterface\makenote{% + \newcommand{\makenote}[2][marginpar]{% + \@bsphack + \pdfsavepos + \addtocontents{slnc}{% + \string\slnc@note{#1}% + {\noexpand\number\value{slncpage}}% + {\noexpand\number\pdflastypos}% + {#2}% + }% + \@esphack + }% +} +\@ifundefined{c@slncpage}{% + \newcounter{slncpage}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onbackground=\stepcounter{slncpage}% + }% +}{} +\scrlayerAddToInterface\slnc@processnotes{% + \newcommand*{\slnc@processnotes}[1]{% + \begingroup + \slnc@readnotes{\value{slncpage}}% + \expandafter\let\expandafter\reserved@a + \csname slnc@#1@unprocessed\endcsname + \expandafter\global + \expandafter\let\csname slnc@#1@unprocessed\endcsname\@empty + \def\slnc@notesyncfonttest##1{% + \ifhmode + \PackageError{scrlayer-notecolumn}{% + illegal font setting for `notecolumn.##1'% + }{% + Current setting of font for `notecolumn.##1' switches + from\MessageBreak + vertical mode to horizontal mode. This is + illegal!\MessageBreak + You have to change the font setting to fix + this.\MessageBreak + If you'll continue vertical alignment of notes may fail% + }% + \par\vskip-\dimexpr \baselineskip+\parskip\relax + \fi + }% + \long\def\slnc@note##1##2##3##4{% + \let\PackageInfo\PackageWarning + \ifnum ##2>\value{slncpage}\relax + \expandafter\g@addto@macro\csname slnc@#1@unprocessed\endcsname{% + \slnc@note{##1}{##2}{##3}{##4}% + }% + \else + \ifnum ##2<\value{slncpage}\relax + \PackageWarning{scrlayer-notecolumn}{note of type `#1' delayed.}% + \fi + \boxmaxdepth\maxdepth + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\hsize\csname slnc@#1@width\endcsname + \normalfont\normalsize + {% + \let\color\@gobble + \usekomafont{notecolumn.#1}{% + \slnc@notesyncfonttest{#1}% + \expandafter\ifvoid\csname slnc@#1@box\endcsname + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \kern\dimexpr\topskip-\baselineskip\relax + }% + \fi + \scr@ifundefinedorrelax{pdfpageheight}{% + \@tempdima=\paperheight + }{% + \@tempdima=\pdfpageheight + }% + \@tempdima=\dimexpr \@tempdima-##3sp + -1in-\topmargin + -\headheight-\headsep + -\baselineskip + \relax + \@tempdimb=\dimexpr \expandafter\ht\csname slnc@#1@box\endcsname + +\expandafter\dp\csname slnc@#1@box\endcsname + \relax + \typeout{Soll: \the\@tempdima^^JIst: \space\the\@tempdimb}% + \ifdim\@tempdima<\@tempdimb + \PackageInfo{scrlayer-notecolumn}{% + Note moved down from\MessageBreak + \the\@tempdima\space to \the\@tempdimb\MessageBreak + at note box `#1' + }% + \else + \ifdim\@tempdima>\@tempdimb + \PackageInfo{scrlayer-notecolumn}{% + Adding vertical white space from\MessageBreak + \the\@tempdimb\space to \the\@tempdima\MessageBreak + into note box `#1' + }% + \expandafter\setbox\csname slnc@#1@box\endcsname + \vbox {% + \expandafter\unvbox\csname slnc@#1@box\endcsname + \kern\dimexpr\@tempdima-\@tempdimb\relax + }% + \fi + \fi + \expandafter\ifvoid\expandafter\csname slnc@#1@box\endcsname + \else + \@tempdima\dimexpr + \dp\strutbox + -\dp\csname slnc@#1@box\endcsname + \relax + \expandafter\unvbox\csname slnc@#1@box\endcsname + \ifdim\@tempdima>\z@ \kern\@tempdima\fi + \fi + \strut\ignorespaces ##4\par + }% + }% + }% + \fi + }% + \def\slnc@sync##1##2##3##4{% + \ifnum ##2>\value{slncpage}\relax + \expandafter\g@addto@macro\csname slnc@#1@unprocessed\endcsname{% + \slnc@sync{##1}{##2}{##3}{}% + }% + \else + \if@filesw + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\unvbox\csname slnc@#1@box\endcsname + \pdfsavepos + \protected@write\@auxout{}{% + \string\newlabel{notecolumn.##1.##3.syncnote.label}{% + {% + \noexpand\number\pdflastypos + }{\thepage}% + }% + }% + }% + \fi + \fi + }% + \reserved@a + \expandafter\ifvoid\csname slnc@#1@box\endcsname + \PackageInfo{scrlayer-notecolumn}{Note box `#1' empty}% + \else + \ifdim \dimexpr \expandafter\ht\csname slnc@#1@box\endcsname + +\expandafter\dp\csname slnc@#1@box\endcsname + \relax >\textheight\relax + \PackageInfo{scrlayer-notecolumn}{Split note box `#1'}% + \splittopskip\topskip + \splitmaxdepth\baselineskip + \usekomafont{notecolumn.#1}{% + \expandafter\vsplit\csname slnc@#1@box\endcsname to + \textheight\relax + }% + \expandafter\ifvoid\csname slnc@#1@box\endcsname + \else + \expandafter\setbox\csname slnc@#1@box\endcsname\vbox{% + \expandafter\unvbox\csname slnc@#1@box\endcsname + }% + \fi + \else + \PackageInfo{scrlayer-notecolumn}{Flush note box `#1'}% + \usekomafont{notecolumn.#1}{% + \expandafter\box\csname slnc@#1@box\endcsname% + }% + \fi + \fi + \expandafter\global + \expandafter\setbox\csname slnc@#1@box\expandafter\endcsname + \expandafter\box\csname slnc@#1@box\endcsname + \endgroup + } +} +\scrlayerAddToInterface\slnc@readnotes{% + \newcommand*\slnc@readnotes[1]{% + \ifeof\slnc@file\else + \ifnum \number #1<\slnc@unprocessed\relax + \@tempswafalse + \else + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% + \edef\reserved@a{% + \noexpand\makeatletter + \endlinechar\m@ne + \read\noexpand\slnc@file to\noexpand\reserved@a + \endlinechar\the\endlinechar\relax + \catcode`\noexpand\@=\the\catcode`\@\relax + }% + \reserved@a + \expandafter\slnc@iofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \@tempswafalse + \@for\reserved@c :={\slnc@note },{\slnc@sync }\do{% + \ifx\reserved@b\reserved@c \@tempswatrue\fi + }% + \if@tempswa + \@tempswafalse + \expandafter\slnc@iiiofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \ifx\reserved@b\@empty + \PackageError{scrlayer-notecolumn}{internal syntax error}{% + Unexpected syntax of file `\jobname.slnc'.\MessageBreak + Second argument should be a number.\MessageBreak + I don't know what to do with\MessageBreak + \expandafter\detokenize\expandafter{\reserved@a}% + }% + \@tempswatrue + \else + \global\let\slnc@unprocessed\reserved@b + \expandafter\slnc@iiofv\expandafter\reserved@b\reserved@a + \@empty\@empty\@empty\@empty\@empty + \@ifundefined{slnc@\reserved@b @unprocessed}{% + \PackageWarning{scrlayer-notecolumn}{% + column `\reserved@b' undefined.\MessageBreak + You should declare the column before the usage.\MessageBreak + Notes will be lost + }% + }{% + \expandafter\g@addto@macro + \csname slnc@\reserved@b @unprocessed\expandafter\endcsname + \expandafter{% + \reserved@a + }% + }% + \ifnum \number #1<\slnc@unprocessed\relax + \@tempswafalse + \else + \@tempswatrue + \fi + \fi + \else + \PackageInfo{scrlayer-notecolumn}{% + Ignoring `\expandafter\detokenize\expandafter{\reserved@a}'}% + \@tempswatrue + \fi + \ifeof\slnc@file\@tempswafalse\fi + }% + \fi + }% +} +\scrlayerAddToInterface\slnc@iofv{% + \newcommand\slnc@iofv[6]{\def#1{#2}}% +} +\scrlayerAddToInterface\slnc@iiofiv{% + \newcommand\slnc@iiofv[6]{\def#1{#3}}% +} +\scrlayerAddToInterface\slnc@iiiofiv{% + \newcommand\slnc@iiiofv[6]{\def#1{#4}}% +} +\scrlayerAddToInterface\slnc@unprocessed{% + \newcommand*{\slnc@unprocessed}{0}% +} +\scrlayerAddToInterface\slnc@mdfivesum{% + \let\slnc@mdfivesum\@empty +} +\scrlayerAddToInterface\slnc@file{% + \scr@ifundefinedorrelax{pdfmdfivesum}{}{% + \xdef\slnc@mdfivesum{\pdfmdfivesum file {\jobname.slnc}}% + \PackageInfo{scrlayer-notecolumn}{% + MD5 of last `\jobname.slnc':\MessageBreak + \slnc@mdfivesum}% + }% + \newread\slnc@file + \immediate\openin\slnc@file \jobname.slnc + \scrlayerOnAutoRemoveInterface{\immediate\closeout\slnc@file}% +} +\scrlayerAddToInterface\c@slnc@clearnote@label{% + \newcounter{slnc@clearnote@label}% +} +\scrlayerAddToInterface\clearnotecolumn{% + \newcommand*\clearnotecolumn[1][marginpar]{% + \begingroup + \slnc@autoclearnotecolumnsfalse + \stepcounter{slnc@clearnote@label}% + \if@filesw + \protected@write\@auxout{% + \let\theslncpage\relax + \let\slnc@voidtest\relax + }{% + \string\newlabel{notecolumn.\theslnc@clearnote@label}% + {{\theslncpage}{\slnc@voidtest{#1}}}% + }% + \fi + \scr@ifundefinedorrelax{r@notecolumn.\theslnc@clearnote@label}{% + \PackageInfo{scrlayer-notecolumn}{% + Using estimated to low value for clearing\MessageBreak + note colum `#1'% + } + \edef\slnc@cmp@value{\the\value{slncpage}}% + \let\reserved@a\z@ + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@clearnote@label}\@empty\@empty + }% + \edef\slnc@cmp@value{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}% + }% + \ifnum \reserved@a=\z@ + \ifvmode + \ifdim \pagetotal<\topskip + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \csname slnc@#1@unprocessed\endcsname + \endgroup + \else + \PackageInfo{scrlayer-notecolumn}{% + box of note column `#1'\MessageBreak + not empty after page of \string\clearnotecolumn}% + \@tempswatrue + \fi + \if@tempswa + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + \string\clearnotecolumn\space while active non-layer page + style.\MessageBreak + Activate empty page style until note column\MessageBreak + has been cleared% + }% + \pagestyle{empty}% + }% + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% + \clearpage + \expandafter\ifcase \slnc@voidtest{#1}% + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \csname slnc@#1@unprocessed\endcsname + \endgroup + \else + \@tempswatrue + \fi + \if@tempswa + \null + \fi + }% + \endgroup + }% +} +\scrlayerAddToInterface{\slnc@firstof}{% + \def\slnc@firstof#1#2\@nil{#1}% +} +\scrlayerAddToInterface{slnc@secondof}{% + \def\slnc@secondof#1#2#3\@nil{#2}% +} +\scrlayerAddToInterface\slnc@voidtest{% + \newcommand*{\slnc@voidtest}[1]{% + \expandafter\ifvoid \csname slnc@#1@box\endcsname \z@\else \@ne\fi + }% +} +\scrlayerAddToInterface\clearnotecolumns{% + \newcommand*\clearnotecolumns[1][\relax]{% + \begingroup + \slnc@autoclearnotecolumnsfalse + \ifx\relax#1\relax\else + \let\slnc@processnotecolumns\@empty + \edef\reserved@a{#1}% + \expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=% + \reserved@a\do {% + \ifx\reserved@a\@empty\else + \expandafter\l@addto@macro\expandafter\slnc@processnotecolumns + \expandafter{\expandafter\@elt\expandafter{\reserved@a}}% + \fi + }% + \fi + \stepcounter{slnc@clearnote@label}% + \if@filesw + \begingroup + \def\@elt##1{+\slnc@voidtest{##1}}% + \protected@write\@auxout{% + \let\theslncpage\relax + \let\slnc@voidtest\relax + }{% + \string\newlabel{notecolumn.\theslnc@clearnote@label}% + {{\theslncpage}{\numexpr \slnc@processnotecolumns\relax}}% + }% + \endgroup + \fi + \scr@ifundefinedorrelax{r@notecolumn.\theslnc@clearnote@label}{% + \begingroup + \def\@elt##1{, `##1'}% + \PackageInfo{scrlayer-notecolumn}{% + Using estimated to low value for\MessageBreak + clearing note colums\MessageBreak + \expandafter\@gobble\slnc@processnotecolumns + }% + \endgroup + \edef\slnc@cmp@value{\the\value{slncpage}}% + \let\reserved@a\z@ + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@clearnote@label}\@empty\@empty + }% + \edef\slnc@cmp@value{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@a{\expandafter\slnc@secondof\reserved@a\@nil}% + }% + \ifcase \reserved@a\relax + \ifvmode + \ifdim \pagetotal<\topskip + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \else + \slnc@readnotes{\slnc@cmp@value}% + \fi + \begingroup + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \def\@elt##1{\csname slnc@##1@unprocessed\endcsname}% + \slnc@processnotecolumns + \endgroup + \else + \PackageInfo{scrlayer-notecolumn}{% + box of at least one note column\MessageBreak + not empty after page of \string\clearnotecolumns}% + \@tempswatrue + \fi + \if@tempswa + \IfLayerPageStyleExists{\currentpagestyle}{}{% + \PackageWarning{scrlayer-notecolumn}{% + \string\clearnotecolumns\space while active non-layer page + style.\MessageBreak + Activate empty page style until note column\MessageBreak + has been cleared% + }% + \pagestyle{empty}% + }% + \@tempswatrue + \fi + \@whilesw\if@tempswa\fi{% + \clearpage + \begingroup + \def\@elt##1{+\slnc@voidtest{##1}}% + \ifcase \numexpr \slnc@processnotecolumns\relax + \aftergroup\@tempswafalse + \long\def\slnc@note##1##2##3##4{% + \ifnum ##2>\slnc@cmp@value\relax \else \aftergroup\@tempswatrue\fi + }% + \let\slnc@sync\slnc@note + \def\@elt##1{\csname slnc@##1@unprocessed\endcsname}% + \slnc@processnotecolumns + \else + \aftergroup\@tempswatrue + \fi + \endgroup + \if@tempswa + \null + \fi + }% + \endgroup + }% +} +\scrlayerAddToInterface{\c@slnc@syncpoint}{% + \newcounter{slnc@syncpoint}% +} +\scrlayerAddToInterface{\syncwithnotecolumn}{% + \newcommand*{\syncwithnotecolumn}[1][marginpar]{% + \begingroup + \edef\reserved@a{\endgroup\noexpand\syncwithnotecolumns[{#1}]}% + \reserved@a + }% +} +\scrlayerAddToInterface{\syncwithnotecolumns}{% + \newcommand*{\syncwithnotecolumns}[1][\relax]{% + \begingroup + \ifx\relax#1\relax\else + \let\slnc@processnotecolumns\@empty + \edef\reserved@a{#1}% + \expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=% + \reserved@a\do {% + \ifx\reserved@a\@empty\else + \expandafter\l@addto@macro\expandafter\slnc@processnotecolumns + \expandafter{\expandafter\@elt\expandafter{\reserved@a}}% + \fi + }% + \fi + \stepcounter{slnc@syncpoint}% + \def\@elt##1{% + \addtocontents{slnc}{% + \string\slnc@sync{##1}% + {\noexpand\number\value{slncpage}}% + {\theslnc@syncpoint}% + {}% + }% + }% + \slnc@processnotecolumns + \ifvmode + \let\slnc@voffset\@empty% + \expandafter\@firstofone + \else + \PackageWarning{scrlayer-notecolumn}{% + \string\syncwithnotecolumn\space in hmode.\MessageBreak + Using \string\syncwithnotecolumn\space in horizontal\MessageBreak + mode may result in unwanted vertical\MessageBreak + space inside paragraphs and may lost\MessageBreak + colours of text of notes. \space So perhaps you\MessageBreak + should move \string\syncwithnotecolumn\space before\MessageBreak + or after the paragraph% + }% + \let\slnc@voffset\@empty%\def\slnc@voffset{-\number\baselineskip}% + \expandafter\slnc@vadjust + \fi + {% + \if@filesw + \pdfsavepos + \protected@write\@auxout{}{% + \string\newlabel{notecolumn.\theslnc@syncpoint.synctext.label}{% + {% + \noexpand\number + \numexpr \pdflastypos\slnc@voffset\relax + }{\thepage}% + }% + }% + \fi + \@ifundefined{r@notecolumn.\theslnc@syncpoint.synctext.label}{% + \PackageInfo{scrlayer-notecolumn}{% + No text label for \string\syncwithnotecolumn.\MessageBreak + Need rerun to sync position}% + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.\theslnc@syncpoint.synctext.label}% + \@empty\@empty + }% + \edef\slnc@textpos{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\slnc@textpage{\expandafter\slnc@secondof\reserved@a\@nil}% + \let\slnc@notepos\slnc@textpos + \let\slnc@notepage\slnc@textpage + \def\@elt##1{% + \@ifundefined{r@notecolumn.##1.\theslnc@syncpoint.syncnote.label}{% + \PackageInfo{scrlayer-notecolumn}{% + No note label for sync with note column\MessageBreak + `##1'.\MessageBreak + Need rerun to sync position}% + \G@refundefinedtrue + }{% + \edef\reserved@a{% + \@nameuse{r@notecolumn.##1.\theslnc@syncpoint.syncnote.label}% + \@empty\@empty + }% + \edef\reserved@b{\expandafter\slnc@firstof\reserved@a\@nil}% + \edef\reserved@c{\expandafter\slnc@secondof\reserved@a\@nil}% + \ifnum \slnc@notepage<\reserved@c\relax + \let\slnc@notepos=\reserved@b + \let\slnc@notepage=\reserved@c + \else + \ifnum \slnc@notepage=\reserved@c\relax + \ifnum \slnc@notepos>\reserved@b + \let\slnc@notepos=\reserved@b + \let\slnc@notepage=\reserved@c + \fi + \fi + \fi + }% + }% + \slnc@processnotecolumns + \ifnum\slnc@textpage>\slnc@notepage\relax + \PackageInfo{scrlayer-notecolumn}{% + Last note page before last text page.\MessageBreak + Need rerun to sync position}% + \else + \ifnum\slnc@textpage<\slnc@notepage\relax + \@whilenum \slnc@textpage<\slnc@notepage\do {% + \newpage\null\vskip-\dimexpr \baselineskip+\parskip\relax + \edef\slnc@textpage{\the\numexpr\slnc@textpage+1\relax}% + }% + \scr@ifundefinedorrelax{pdfpageheight}{% + \@tempdima=\paperheight + }{% + \@tempdima=\pdfpageheight + }% + \@tempdima=\dimexpr \@tempdima + -\topmargin-1in + -\headheight-\headsep + -\topskip+\baselineskip + \relax + \edef\slnc@textpos{\number\@tempdima}% + \PackageInfo{scrlayer-notecolumn}{% + Top position is \slnc@textpos% + }% + \fi + \ifnum\slnc@notepos>\slnc@textpos\relax + \PackageInfo{scrlayer-notecolumn}{% + Last note position before last text\MessageBreak + position.\MessageBreak + Need rerun to sync position% + }% + \else + \ifnum\slnc@notepos<\slnc@textpos\relax + \@tempdima=\numexpr \slnc@textpos-\slnc@notepos\relax sp + \PackageInfo{scrlayer-notecolumn}{% + skipping \the\@tempdima\space to sync% + }% + \vskip\@tempdima + \fi + \fi + \fi + }% + }% + \endgroup + }% +} +\scrlayerAddToInterface\slnc@vadjust{% + \newcommand{\slnc@vadjust}[1]{% + \@bsphack + \vadjust{#1}% + \@esphack + }% +} +\DeclareNoteColumn{marginpar} +\let\reserved@a\clearpage +\def\clearpage{% + \ifslnc@autoclearnotecolumns\clearnotecolumns\relax\fi +}% +\expandafter\g@addto@macro\expandafter\clearpage\expandafter{\reserved@a} +%%% From File: $Id: scrlogo.dtx 1380 2013-10-01 15:31:55Z mjk $ +\@ifundefined{KOMAScript}{% + \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}}}{} +\endinput +%% +%% End of file `scrlayer-notecolumn.sty'. |