diff options
author | Karl Berry <karl@freefriends.org> | 2020-09-07 21:23:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-09-07 21:23:38 +0000 |
commit | a4f2e39309134e43404848efae785e7b37319393 (patch) | |
tree | d1a2c693bf76f64150e2eb673251d0621950a56d /Master/texmf-dist/tex/latex | |
parent | bc59c4baca08950329c379257f124880c645c342 (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')
-rw-r--r-- | Master/texmf-dist/tex/latex/subfiles/subfiles.cls | 39 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/subfiles/subfiles.sty | 132 |
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'. |