diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/subfiles/subfiles.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/subfiles/subfiles.sty | 132 |
1 files changed, 98 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/latex/subfiles/subfiles.sty b/Master/texmf-dist/tex/latex/subfiles/subfiles.sty index ea82359ca55..0d773d81897 100644 --- a/Master/texmf-dist/tex/latex/subfiles/subfiles.sty +++ b/Master/texmf-dist/tex/latex/subfiles/subfiles.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright 2002, 2012 Federico Garcia; 2018, 2019 Gernot Salzer +%% Copyright 2002, 2012 Federico Garcia; 2018-2020 Gernot Salzer %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -26,23 +26,60 @@ %% and the derived files subfiles.sty and subfiles.pdf %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{subfiles}[2020/02/14 v1.6 Multi-file projects (package)] -\DeclareOption*{\PackageWarning{\CurrentOption ignored}} -\ProcessOptions -\@ifclassloaded{subfiles}{% - \let\subfiles@document\document - \let\subfiles@enddocument\enddocument - \let\document\subfiles@comment - \let\enddocument\subfiles@endcomment -}{% subfiles class not loaded, we typeset the main document - \RequirePackage{import} - \def\subfiles@split#1{% - \let\subfiles@filename@simple\filename@simple - \def\filename@simple##1.\\{\edef\filename@base{##1}}% - \filename@parse{#1}% - \let\filename@simple\subfiles@filename@simple - } +\ProvidesPackage{subfiles}[2020/09/07 v2.0 Multi-file projects (package)] +\def\subfiles@DOCUMENT{document} +{\escapechar=-1\relax + \xdef\subfiles@BEGINDOCUMENT{\string\\begin\string\{document\string\}}% + \xdef\subfiles@ENDDOCUMENT{\string\\end\string\{document\string\}}% +} +\def\subfiles@skipDocument{% + \let\subfiles@skiplinescont\ignorespaces + \let\subfiles@skiplinesend\subfiles@ENDDOCUMENT + \subfiles@skiplines +} +\def\subfiles@skipDocumentclass{% + \renewcommand\documentclass[2][]{% + \let\documentclass\subfiles@documentclass + \ignorespaces + }% +} +\def\subfiles@skipPreamble{% + \def\documentclass{% + \let\documentclass\subfiles@documentclass + \def\subfiles@skiplinescont{\begin{document}}% + \let\subfiles@skiplinesend\subfiles@BEGINDOCUMENT + \subfiles@skiplines + }% +} +\let\subfiles@handleMain\endinput +\let\subfiles@handleSubpreamble\subfiles@skipPreamble +\let\subfiles@handleTextAfterSubdocument\endinput +\DeclareOption{v1}{% + \let\subfiles@handleMain\subfiles@skipDocument + \let\subfiles@handleSubpreamble\subfiles@skipDocumentclass + \let\subfiles@handleTextAfterSubdocument\relax +} +\DeclareOption*{\PackageWarning{subfiles}{Option '\CurrentOption' ignored}} +\ProcessOptions\relax +\def\subfiles@skiplines{% + \begingroup + \let\do\@makeother\dospecials + \@makeother\^^L% + \endlinechar`\^^M\relax \catcode`\^^M=12\relax \subfiles@skipline} +{\catcode`\^^M=12 \endlinechar=-1 % + \gdef\subfiles@skipline#1^^M{\def\subfiles@tmp{#1}% + \ifx\subfiles@tmp\subfiles@skiplinesend + \def\subfiles@tmp{\endgroup\subfiles@skiplinescont}% + \else\let\subfiles@tmp\subfiles@skipline + \fi \subfiles@tmp} } +\RequirePackage{import} +\def\subfiles@split#1{% + \let\subfiles@filename@simple\filename@simple + \def\filename@simple##1.\\{\edef\filename@base{##1}}% + \filename@parse{#1}% + \let\filename@simple\subfiles@filename@simple +}% \newcommand\subfile{% \let\subfiles@loadfile\subimport \subfiles@subfile @@ -56,40 +93,67 @@ \let\subfiles@documentclass\documentclass \let\subfiles@document\document \let\subfiles@enddocument\enddocument - \renewcommand\documentclass[2][subfiles]{% - \let\documentclass\subfiles@documentclass - \ignorespaces - }% + \subfiles@handleSubpreamble \renewenvironment{document}{% \let\document\subfiles@document \ignorespaces }{% \let\enddocument\subfiles@enddocument \@ignoretrue + \subfiles@handleTextAfterSubdocument }% \subfiles@split{#1}% \subfiles@loadfile{\filename@area}{\filename@base}% \endgroup } -\def\subfiles@addimportpath#1{% - \def\subfiles@filelist{}% +\def\subfix#1{\import@path#1} +\def\subfiles@fixfilelist#1{% + \def\subfiles@list{}% \def\subfiles@sep{}% - \@for\subfiles@filename:=#1\do{% - \edef\subfiles@filelist{% - \subfiles@filelist - \subfiles@sep - \import@path - \subfiles@filename - }% + \@for\subfiles@tmp:=#1\do{% + \edef\subfiles@list{\subfiles@list\subfiles@sep\subfix{\subfiles@tmp}}% \def\subfiles@sep{,}% - } + }% +} +\def\subfiles@fixpathlist#1{% + \def\subfiles@list{}% + \@tfor\subfiles@tmp:=#1\do{% + \edef\subfiles@list{\subfiles@list{\subfix\subfiles@tmp}}% + }% } \let\subfiles@bibliography\bibliography \renewcommand\bibliography[1]{% - \subfiles@addimportpath{#1}% - \expandafter\subfiles@bibliography\expandafter{\subfiles@filelist}% + \subfiles@fixfilelist{#1}% + \expandafter\subfiles@bibliography\expandafter{\subfiles@list}% } -\def\subfix#1{\import@path#1} +\@ifpackageloaded{graphics}{% + \let\subfiles@graphicspath\graphicspath + \renewcommand\graphicspath[1]{% + \subfiles@fixpathlist{#1}% + \edef\subfiles@list{{\subfix{}}\subfiles@list}% + \expandafter\subfiles@graphicspath\expandafter{\subfiles@list}% + }% +}{} +\newcommand\ifSubfilesClassLoaded{% + \expandafter\ifx\csname ver@subfiles.cls\endcsname\relax + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +\ifSubfilesClassLoaded{% + \let\subfiles@begin\begin + \def\begin#1{% + \def\subfiles@tmp{#1}% + \ifx\subfiles@tmp\subfiles@DOCUMENT + \let\begin\subfiles@begin + \let\subfiles@tmp\subfiles@handleMain + \else + \def\subfiles@tmp{\subfiles@begin{#1}}% + \fi + \subfiles@tmp + }% +}{} \endinput %% %% End of file `subfiles.sty'. |