diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/scrwfile/scrwfile.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/scrwfile/scrwfile.sty | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/scrwfile/scrwfile.sty b/Master/texmf-dist/tex/latex/scrwfile/scrwfile.sty new file mode 100644 index 00000000000..8503c5f8dfa --- /dev/null +++ b/Master/texmf-dist/tex/latex/scrwfile/scrwfile.sty @@ -0,0 +1,247 @@ +%% +%% This is file `scrwfile.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% scrwfile.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from scrwfile.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file scrwfile.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%%% From File: $Id: scrwfile.dtx 4018 2023-03-31 07:31:04Z kohm $ +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{scrwfile} + [2023-03-31 v0.1.99 KOMA-Script package (write and clone files)] +\PackageWarningNoLine{scrwfile}{% + THIS IS AN EXPERIMENTAL PACKAGE!\MessageBreak + USAGE OF THIS PACKAGE IS ON YOUR OWN RISK!\MessageBreak + EVERYTHING MAY HAPPEN!\MessageBreak + EVERYTHING MAY CHANGE IN FUTURE!\MessageBreak + THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak + Maybe, it would be better not to load this package% +} +\RequirePackage{scrbase}[2015/08/29] +\RequirePackage{scrlfile}[2010/09/30] +\RequirePackage{iftex} +\ifluatex + \PackageWarningNoLine{scrwfile}{LuaLaTeX detected.\MessageBreak + With LuaLaTeX you should never get an error message:\MessageBreak + \space\space`No room for a new \string\write'.\MessageBreak + So scrwfile could make much more harm than benefit\MessageBreak + and using it is not recommended}% +\fi +\newcommand*{\scrwfile@if@only}[1]{% + \begingroup + \scr@ifundefinedorrelax{scrwfile@only}{\@tempswatrue}{% + \@tempswafalse + \edef\reserved@b{#1}% + \@for\reserved@a:=\scrwfile@only\do + {\ifx\reserved@a\reserved@b\@tempswatrue\fi}% + }% + \if@tempswa + \scr@ifundefinedorrelax{scrwfile@never}{}{% + \edef\reserved@b{#1}% + \@for\reserved@a:=\scrwfile@never\do + {\ifx\reserved@a\reserved@b\@tempswafalse\fi}% + }% + \fi + \expandafter\endgroup + \if@tempswa + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\newcommand*{\scrwfile@starttoc}[1]{% + \scrwfile@if@only{#1}{\scrwfile@@starttoc}{\scrwfile@saved@starttoc}{#1}% +} +\newcommand*{\scrwfile@@starttoc}[1]{% + \begingroup + \if@filesw + \xdef\scrwfile@writefilelist{\scrwfile@writefilelist,#1}% + \fi + \@fileswfalse + \scrwfile@saved@starttoc{#1}% + \endgroup +} +\newcommand*{\scrwfile@writefile}[1]{% + \scrwfile@if@only{#1}{\scrwfile@@writefile}{\scrwfile@saved@writefile}{#1}% +} +\newcommand{\scrwfile@@writefile}[2]{% + \ifnum\scrwfile@wrtout>0 + \begingroup + \@temptokena{#2}% + \immediate\write\scrwfile@wrtout{% + \string\@writefile{#1}{\the\@temptokena}% + }% + \scrwfile@process@clones{#1}% + \endgroup + \fi +} +\chardef\scrwfile@wrtout\z@ +\newcommand*{\scrwfile@writefilelist}{} +\newcommand*{\scrwfile@saved@writefile}{} +\BeforeClosingMainAux{% + \ifx\scrwfile@writefilelist\@empty\else + \let\scrwfile@saved@writefile\@writefile + \let\scrwfile@wrtout\@partaux + \immediate\openout\scrwfile@wrtout \jobname.wrt + \let\@writefile\scrwfile@writefile + \fi +} +\AfterReadingMainAux{% + \ifx\scrwfile@writefilelist\@empty\else + \immediate\closeout\scrwfile@wrtout + \chardef\scrwfile@wrtout\z@ + \begingroup + \let\@writefile\scrwfile@saved@writefile + \@for\@currext:=\scrwfile@writefilelist\do{% + \begingroup + \ifx\@currext\@empty\else + \scr@ifundefinedorrelax{tf@\@currext}{% + \immediate\openout\@partaux \jobname.\@currext + \expandafter\let\csname tf@\@currext\endcsname\@partaux + \@input@{\jobname.wrt}% + \immediate\closeout\@partaux + }{}% + \fi + \endgroup + }% + \endgroup + \fi +} +\IfLTXAtLeastTF{2020/10/01}{% + \DeclareHookRule{enddocument/afteraux}% + {scrwfile}{before}{scrlayer-notecolumn}% +}{% + \@ifpackageloaded{scrlayer-notecolumn}{% + \PackageWarningNoLine{scrwfile}{% + Dangerous package order detected!\MessageBreak + As a general rule, you should load scrwfile as soon\MessageBreak + as possible, maybe even before `\string\documentclass'\MessageBreak + (using `\string\RequirePackage' instead of + `\string\usepackage').\MessageBreak + Following packages should be loaded after scrwfile:\MessageBreak + \space - scrlayer-notecolumn}% + }{}% +} +\newcommand*{\scrwfile@saved@starttoc}{} +\AtBeginDocument{% + \begingroup + \@ifpackageloaded{hyperref}{% + \scr@ifundefinedorrelax{Hy@AtBeginDocument}{% + \PackageInfo{scrwfile}{% + Using immediate redefinition of `\string\@starttoc'% + }% + \aftergroup\@firstofone + }{% + \ifx\Hy@AtBeginDocumentHook\@undefined + \PackageInfo{scrwfile}{% + Using immediate redefinition of `\string\@starttoc'% + }% + \aftergroup\@firstofone + \else + \@ifpackagelater{hyperref}{2022/02/22}{% newer than v7.00n + \PackageInfo{scrwfile}{% + Using immediate redefinition of `\string\@starttoc'% + }% + \aftergroup\@firstofone + }{% + \PackageWarning{scrwfile}{% + Outdated package `hyperref' detected.\MessageBreak + Using `\string\Hy@AtBeginDocument' for redefinition of + `\string\@starttoc'.\MessageBreak + We recommend to update `hyperref' + }% + \aftergroup\Hy@AtBeginDocument + }% + \fi + }% + }{% + \PackageInfo{scrwfile}{% + Using immediate redefinition of `\string\@starttoc'% + }% + \aftergroup\@firstofone + }% + \endgroup + {% + \PackageInfo{scrwfile}{% + Extending `\string\@starttoc` + }% + \let\scrwfile@saved@starttoc\@starttoc + \let\@starttoc\scrwfile@starttoc + }% +} +\newcommand*{\scrwfile@process@clones}[1]{% + \scr@ifundefinedorrelax{scrwfile@clone@#1}{}{% + \begingroup + \let\@@protect\protect\let\protect\@empty\afterassignment\restore@protect + \edef\reserved@b{\csname scrwfile@clone@#1\endcsname}% + \edef\reserved@c{,#1}% + \@for \reserved@a:=\reserved@b\do {% + \@tempswatrue + \@for \reserved@d:=\reserved@c\do {% + \ifx\reserved@d\reserved@a\@tempswafalse\fi + }% + \if@tempswa + \immediate\write\scrwfile@wrtout{% + \string\@writefile{\reserved@a}{\the\@temptokena}% + }% + \edef\reserved@c{\reserved@c,\reserved@a}% + \fi + }% + \endgroup + }% +}% +\newcommand*{\TOCclone}[3][]{% + \RequirePackage{tocbasic}% + \scr@ifundefinedorrelax{scrwfile@clone@#2}{% + \expandafter\protected@edef\csname scrwfile@clone@#2\endcsname{% + #3,\protect\csname scrwfile@clone@#3\endcsname + }% + }{% + \edef\reserved@b{\csname scrwfile@clone@#2\endcsname}% + \expandafter\protected@edef\csname scrwfile@clone@#2\endcsname{% + \csname scrwfile@clone@#2\endcsname,% + #3,% + \protect\csname scrwfile@clone@#3\endcsname + }% + }% + \scr@ifundefinedorrelax{scrwfile@clone@#3}{% + \expandafter\let\csname scrwfile@clone@#3\endcsname\@empty + }{}% + \Ifattoclist{#3}{% + \PackageWarning{scrwfile}{`#3' already under control of + tocbasic.\MessageBreak + Nevertheless features will be set% + }% + }{% + \addtotoclist[TOCclone]{#3}% + }% + \setuptoc{#3}{nobabel}% + \IfArgIsEmpty{#1}{% + }{% + \@namedef{listof#3name}{#1}% + \@namedef{listof#3}{\listoftoc{#3}}% + \Iftocfeature{#2}{leveldown}{\setuptoc{#3}{leveldown}}{}% + \Iftocfeature{#2}{numbered}{\setuptoc{#3}{numbered}}{}% + \Iftocfeature{#2}{onecolumn}{\setuptoc{#3}{leveldownonecolumn}}{}% + \Iftocfeature{#2}{totoc}{\setuptoc{#3}{totoc}}{}% + }% +} +\@onlypreamble\TOCClone +\endinput +%% +%% End of file `scrwfile.sty'. |