%%
%% This is file `subfiles.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% subfiles.dtx  (with options: `package')
%% 
%% This is a generated file.
%% 
%% 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
%% 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 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Gernot Salzer (salzer@logic.at).
%% 
%% This work consists of the files subfiles.dtx and subfiles.ins
%% and the derived files subfiles.sty and subfiles.pdf
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{subfiles}[2020/11/14 v2.2 Multi-file projects (package)]
\ExplSyntaxOn
\cs_new_eq:NN \subfiles@StrIfEqTF \str_if_eq:nnTF
\ExplSyntaxOff
\def\subfiles@renewBeginDocument#1{%
  \let\subfiles@begin\begin
  \def\begin##1{%
    \subfiles@StrIfEqTF{##1}{document}{%
      \let\begin\subfiles@begin
      #1%
    }{%
      \csname subfiles@begin\endcsname{##1}%
    }%
  }%
}
\def\subfiles@saveEndTo#1{\expandafter\let\expandafter#1\csname end \endcsname}
\def\subfiles@restoreEndFrom{\expandafter\let\csname end \endcsname}
\def\subfiles@renewEndDocument#1{%
  \ifcsname subfiles@end\endcsname
  \else
    \subfiles@saveEndTo\subfiles@end
  \fi
  \expandafter\def\csname end \endcsname##1{%
    \romannumeral
    \subfiles@StrIfEqTF{##1}{document}{%
      \z@
      \subfiles@restoreEndFrom\subfiles@end
      #1%
    }{%
      \expandafter\expandafter\expandafter\z@\subfiles@end{##1}%
    }%
  }%
}
\def\subfiles@handleMainDocumentVi{%
  \long\def\subfiles@skipToEndDocument##1\end##2{%
    \subfiles@StrIfEqTF{##2}{document}{\ignorespaces}{\subfiles@skipToEndDocument}%
  }%
  \subfiles@renewBeginDocument{%
    \subfiles@skipToEndDocument
  }%
}
\def\subfiles@handleMainDocumentVii{%
  \subfiles@renewBeginDocument{%
    \endinput
    \ignorespaces
  }%
}
\def\subfiles@handleSubDocumentVi{%
  \let\subfiles@documentclass\documentclass
  \def\documentclass{%
    \@ifnextchar[\subfiles@documentclass@{\subfiles@documentclass@[]}%
  }%
  \def\subfiles@documentclass@[##1]##2{%
    \let\documentclass\subfiles@documentclass
    \ignorespaces
  }%
  \subfiles@renewBeginDocument{%
    \subfiles@renewEndDocument\ignorespaces
    \ignorespaces
  }%
}
\def\subfiles@handleSubDocumentVii{%
  \let\subfiles@documentclass\documentclass
  \long\def\documentclass##1\begin##2{%
    \subfiles@StrIfEqTF{##2}{document}{%
      \let\documentclass\subfiles@documentclass
      \subfiles@renewEndDocument{%
        \endinput
        \ignorespaces
      }%
      \ignorespaces
    }{\documentclass}
  }%
}
\let\subfiles@handleMainDocument\subfiles@handleMainDocumentVii
\let\subfiles@handleSubDocument\subfiles@handleSubDocumentVii
\DeclareOption{v1}{%
  \let\subfiles@handleMainDocument\subfiles@handleMainDocumentVi
  \let\subfiles@handleSubDocument\subfiles@handleSubDocumentVi
}
\DeclareOption*{\PackageWarning{subfiles}{Option '\CurrentOption' ignored}}
\ProcessOptions\relax
\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
}
\newcommand\subfileinclude{%
  \let\subfiles@loadfile\subincludefrom
  \subfiles@subfile
}
\def\subfiles@subfile#1{%
  \begingroup
  \subfiles@handleSubDocument
  \subfiles@split{#1}%
  \subfiles@loadfile{\filename@area}{\filename@base}%
  \endgroup
}
\def\subfix#1{\import@path#1}
\def\subfiles@fixfilelist#1{%
  \def\subfiles@list{}%
  \def\subfiles@sep{}%
  \@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
\def\bibliography#1{%
  \subfiles@fixfilelist{#1}%
  \expandafter\subfiles@bibliography\expandafter{\subfiles@list}%
}
\@ifpackageloaded{graphics}{%
  \let\subfiles@graphicspath\graphicspath
  \def\graphicspath#1{%
    \subfiles@fixpathlist{#1}%
    \edef\subfiles@list{{\subfix{}}\subfiles@list}%
    \expandafter\subfiles@graphicspath\expandafter{\subfiles@list}%
  }%
}{}
\@ifpackageloaded{standalone}{
  \RequirePackage{xpatch}
  \xpretocmd\includestandalone{%
    \subfiles@saveEndTo\subfiles@end@
    \ifcsname subfiles@end\endcsname
      \subfiles@restoreEndFrom\subfiles@end
    \fi
  }{}{}
  \xapptocmd\includestandalone{\subfiles@restoreEndFrom\subfiles@end@}{}{}
}{}
\newcommand\ifSubfilesClassLoaded{%
  \expandafter\ifx\csname ver@subfiles.cls\endcsname\relax
    \expandafter\@secondoftwo
  \else
    \expandafter\@firstoftwo
  \fi
}
\ifSubfilesClassLoaded{%
  \subfiles@handleMainDocument
}{}
\endinput
%%
%% End of file `subfiles.sty'.
