summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/subfiles
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-09-07 21:23:38 +0000
committerKarl Berry <karl@freefriends.org>2020-09-07 21:23:38 +0000
commita4f2e39309134e43404848efae785e7b37319393 (patch)
treed1a2c693bf76f64150e2eb673251d0621950a56d /Master/texmf-dist/tex/latex/subfiles
parentbc59c4baca08950329c379257f124880c645c342 (diff)
subfiles (7sep20)
git-svn-id: svn://tug.org/texlive/trunk@56289 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/subfiles')
-rw-r--r--Master/texmf-dist/tex/latex/subfiles/subfiles.cls39
-rw-r--r--Master/texmf-dist/tex/latex/subfiles/subfiles.sty132
2 files changed, 114 insertions, 57 deletions
diff --git a/Master/texmf-dist/tex/latex/subfiles/subfiles.cls b/Master/texmf-dist/tex/latex/subfiles/subfiles.cls
index 258a4544165..8ed10c07c0d 100644
--- a/Master/texmf-dist/tex/latex/subfiles/subfiles.cls
+++ b/Master/texmf-dist/tex/latex/subfiles/subfiles.cls
@@ -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,32 +26,25 @@
%% and the derived files subfiles.sty and subfiles.pdf
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{subfiles}[2020/02/14 v1.6 Multi-file projects (class)]
-\DeclareOption*{\typeout{Preamble taken from file `\CurrentOption'}%
- \let\preamble@file\CurrentOption}
+\ProvidesClass{subfiles}[2020/09/07 v2.0 Multi-file projects (class)]
+\DeclareOption*{%
+ \typeout{Preamble taken from file `\CurrentOption'}%
+ \let\preamble@file\CurrentOption
+}
\ProcessOptions
\let\@classoptionslist\relax
-\let\subfiles@documentclass\documentclass
-\let\documentclass\LoadClass\relax
-\RequirePackage{verbatim}
-\let\subfiles@comment\comment
-\let\subfiles@endcomment\endcomment
\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
+\let\subfiles@documentclass\documentclass
+\def\documentclass{%
+ \let\documentclass\subfiles@documentclass
+ \LoadClass
}
-\subfiles@split{\preamble@file}
-\subimport{\filename@area}{\filename@base}
-{\catcode`\@=11
-\global\let\document\subfiles@document
-\global\let\enddocument\subfiles@enddocument
-\global\let\documentclass\subfiles@documentclass
-\global\let\subfiles@document\undefined
-\global\let\subfiles@enddocument\undefined
-\global\let\subfiles@documentclass\undefined
+\filename@parse{\preamble@file}
+\edef\import@path{\filename@area}
+\edef\input@path{{\filename@area}}
+\input{\preamble@file}
+{\makeatletter
+ \gdef\import@path{}
}
\endinput
%%
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'.