summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/withargs/withargs-dry.sty
blob: acf5795c82ea788cdd4077bbe57e01aa8ad3384f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
%                                                                              %
%  Copyright (c) 2013 - Michiel Helvensteijn   (www.mhelvens.net)              %
%                                                                              %
%  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 Michiel Helvensteijn.                %
%                                                                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%

% I will 'officially' release this file at some point in the future. For
% now I'm just using it to document a couple of packages. Still, it's
% released under LPPL, so use it as you will.
%
% -- Michiel Helvensteijn

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dry}
  [2013/10/11 convenience macros for reusing LaTeX code]

\RequirePackage{filecontents}
\RequirePackage{xparse}
\RequirePackage{etoolbox}
\RequirePackage{withargs}

\newcommand\minput[1]{%
  \input{#1}\unskip%
}

\NewDocumentCommand{\NewDRYer}{m +m}{%
  \withargs [\uniquecsname] [#2] {%
    \newenvironment{#1}{%
      \begingroup%
      \@tempswafalse\filec@ntents{##1.tmp}%
    }{%
      \endfilecontents%
      \endgroup%
    }%
    \AfterEndEnvironment{#1}{%
      \withargs (xn) [##1.tmp] [\minput{##1.tmp}] {%
        ##2%
      }%
    }%
  }%
}