texlive[42107] Master: filecontentsdef (20sep16)

commits+karl at tug.org commits+karl at tug.org
Tue Sep 20 23:18:47 CEST 2016


Revision: 42107
          http://tug.org/svn/texlive?view=revision&revision=42107
Author:   karl
Date:     2016-09-20 23:18:47 +0200 (Tue, 20 Sep 2016)
Log Message:
-----------
filecontentsdef (20sep16)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/filecontentsdef/
    trunk/Master/texmf-dist/doc/latex/filecontentsdef/README.md
    trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf
    trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.tex
    trunk/Master/texmf-dist/source/latex/filecontentsdef/
    trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.dtx
    trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.ins
    trunk/Master/texmf-dist/tex/latex/filecontentsdef/
    trunk/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
    trunk/Master/tlpkg/tlpsrc/filecontentsdef.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/filecontentsdef/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/filecontentsdef/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/filecontentsdef/README.md	2016-09-20 21:18:47 UTC (rev 42107)
@@ -0,0 +1,80 @@
+<!-- -->
+
+    Source:  filecontentsdef.dtx (v1.2 2016/09/19)
+    Author:  Jean-Francois Burnol
+    Info:    filecontents + macro + verbatim
+    License: LPPL 1.3c
+    Copyright (C) 2016 Jean-Francois Burnol.
+    <jfbu at free dot fr>
+
+ABSTRACT
+========
+
+This lightweight LaTeX2e package provides two environments called
+`filecontentsdef` and `filecontentshere`. They are derived from the
+LaTeX `filecontents` environment as extended by Scott Pakin's
+[filecontents] [1] package. In addition to the file creation they
+either store the (verbatim) contents in a macro (`filecontentsdef`)
+or typeset them (verbatim) on the spot (`filecontentshere`).
+
+I developed this to display TeX code verbatim in documentation and
+simultaneously produce during the LaTeX run the corresponding files
+in order to embed them in the PDF as _file attachment annotations_
+(via the services of Scott Pakin's further package [attachfile] [2].)
+
+[1]: http://www.ctan.org/pkg/filecontents "filecontents package"
+[2]: http://www.ctan.org/pkg/attachfile   "attachfile package"
+
+INSTALLATION
+============
+
+To extract the package (.sty) run etex on the dtx file. To produce
+the PDF documentation, either:
+
+1. latex (twice) filecontentsdef.dtx, then dvips, then ps2pdf
+2. or pdflatex (twice),
+3. or latex (twice) then dvipdfmx
+
+This will also extract automatically the style file.
+
+Installation:
+
+    filecontentsdef.sty -> TDS:tex/latex/filecontentsdef/filecontentsdef.sty
+    filecontentsdef.dtx -> TDS:source/latex/filecontentsdef/filecontentsdef.dtx
+    filecontentsdef.pdf -> TDS:doc/latex/filecontentsdef/filecontentsdef.pdf
+
+    README.md   -> TDS:doc/latex/filecontentsdef/README.md
+
+The other files may be discarded.
+
+LICENSE
+=======
+
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License 1.3c.
+This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and 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.
+
+The Author of this Work is:
+
+- Jean-Francois Burnol `<jfbu at free dot fr>`
+
+This Work consists of the main source file filecontentsdef.dtx and
+the derived files filecontentsdef.sty, filecontentsdef.ins,
+filecontentsdef.pdf, filecontentsdef.dvi, README.md.
+
+CHANGE LOG
+==========
+
+v1.2 \[2016/09/19\]
+-------------------
+
+Initial version.


Property changes on: trunk/Master/texmf-dist/doc/latex/filecontentsdef/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf	2016-09-20 21:17:32 UTC (rev 42106)
+++ trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf	2016-09-20 21:18:47 UTC (rev 42107)

Property changes on: trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.tex	2016-09-20 21:18:47 UTC (rev 42107)
@@ -0,0 +1,19 @@
+%%
+%% Package: filecontentsdef
+%% Version: 1.2 (2016/09/19)
+%% License: LPPL 1.3c
+%% Copyright (C) 2016 Jean-Francois Burnol <jfbu at free dot fr>
+%%
+\chardef\Withdvipdfmx 1 % replace 1 by 0 for using pdflatex
+\chardef\NoSourceCode 0 % replace 0 by 1 for the doc *without* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {filecontentsdef.tex}[Driver for filecontentsdef documentation]%
+\PassOptionsToClass   {a4paper,fontsize=11pt,oneside}{scrdoc}
+\PassOptionsToPackage {english}{babel}
+\input filecontentsdef.dtx
+%%% Local Variables:
+%%% mode: latex
+%%% End:
+\endinput
+%%
+%% End of file `filecontentsdef.tex'.


Property changes on: trunk/Master/texmf-dist/doc/latex/filecontentsdef/filecontentsdef.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.dtx	2016-09-20 21:18:47 UTC (rev 42107)
@@ -0,0 +1,851 @@
+% -*- coding: utf-8; time-stamp-format: "%02d-%02m-%:y at %02H:%02M:%02S %Z" -*-
+% N.B.: this dtx file is NOT for use with \DocInput. The latex source of the
+% user manual isn't prefixed with percent signs.
+%<*none>
+\def\dtxtimestamp {Time-stamp: <19-09-2016 at 11:46:39 CEST>}%
+%</none>
+%<*!readme>
+%%
+%% Package: filecontentsdef
+%% Version: 1.2 (2016/09/19)
+%% License: LPPL 1.3c
+%% Copyright (C) 2016 Jean-Francois Burnol <jfbu at free dot fr>
+%%
+%</!readme>
+%<*insfile>
+\def\pkgname        {filecontentsdef}
+\def\pkgdate        {2016/09/19}
+\def\pkgdocdate     {2016/09/19}
+\def\pkgversion     {v1.2}
+\def\pkgdescription {filecontents + macro + verbatim (JFB)}
+%</insfile>
+%<*none>
+\iffalse
+%</none>
+%<*readme>
+<!-- -->
+
+    Source:  filecontentsdef.dtx (v1.2 2016/09/19)
+    Author:  Jean-Francois Burnol
+    Info:    filecontents + macro + verbatim
+    License: LPPL 1.3c
+    Copyright (C) 2016 Jean-Francois Burnol.
+    <jfbu at free dot fr>
+
+ABSTRACT
+========
+
+This lightweight LaTeX2e package provides two environments called
+`filecontentsdef` and `filecontentshere`. They are derived from the
+LaTeX `filecontents` environment as extended by Scott Pakin's
+[filecontents] [1] package. In addition to the file creation they
+either store the (verbatim) contents in a macro (`filecontentsdef`)
+or typeset them (verbatim) on the spot (`filecontentshere`).
+
+I developed this to display TeX code verbatim in documentation and
+simultaneously produce during the LaTeX run the corresponding files
+in order to embed them in the PDF as _file attachment annotations_
+(via the services of Scott Pakin's further package [attachfile] [2].)
+
+[1]: http://www.ctan.org/pkg/filecontents "filecontents package"
+[2]: http://www.ctan.org/pkg/attachfile   "attachfile package"
+
+INSTALLATION
+============
+
+To extract the package (.sty) run etex on the dtx file. To produce
+the PDF documentation, either:
+
+1. latex (twice) filecontentsdef.dtx, then dvips, then ps2pdf
+2. or pdflatex (twice), 
+3. or latex (twice) then dvipdfmx
+
+This will also extract automatically the style file.
+
+Installation:
+
+    filecontentsdef.sty -> TDS:tex/latex/filecontentsdef/filecontentsdef.sty
+    filecontentsdef.dtx -> TDS:source/latex/filecontentsdef/filecontentsdef.dtx
+    filecontentsdef.pdf -> TDS:doc/latex/filecontentsdef/filecontentsdef.pdf
+
+    README.md   -> TDS:doc/latex/filecontentsdef/README.md
+
+The other files may be discarded.
+
+LICENSE
+=======
+
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License 1.3c.
+This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and 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.
+
+The Author of this Work is:
+
+- Jean-Francois Burnol `<jfbu at free dot fr>`
+
+This Work consists of the main source file filecontentsdef.dtx and
+the derived files filecontentsdef.sty, filecontentsdef.ins, 
+filecontentsdef.pdf, filecontentsdef.dvi, README.md.
+
+
+CHANGE LOG
+==========
+
+v1.2 \[2016/09/19\]
+-------------------
+
+Initial version.
+%</readme>
+%<*tex>-------------------------------------------------------------------------
+\chardef\Withdvipdfmx 1 % replace 1 by 0 for using pdflatex
+\chardef\NoSourceCode 0 % replace 0 by 1 for the doc *without* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {filecontentsdef.tex}[Driver for filecontentsdef documentation]%
+\PassOptionsToClass   {a4paper,fontsize=11pt,oneside}{scrdoc}
+\PassOptionsToPackage {english}{babel}
+\input filecontentsdef.dtx
+%%% Local Variables:
+%%% mode: latex
+%%% End:
+%</tex>-------------------------------------------------------------------------
+%<*insfile>---------------------------------------------------------------------
+\input docstrip.tex
+\askforoverwritefalse
+\def\pkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+\string\NeedsTeXFormat{LaTeX2e}^^J%
+\string\ProvidesPackage{filecontentsdef}^^J%
+\space[\pkgdate\space\pkgversion\space\pkgdescription]}%
+\generate{\nopreamble\nopostamble
+\file{README.md}{\from{\pkgname.dtx}{readme}}%
+\usepostamble\defaultpostamble
+\file{\pkgname.tex}{\from{\pkgname.dtx}{tex}}%
+\usepreamble\pkgpreamble
+\file{\pkgname.sty}{\from{\pkgname.dtx}{package}}}%
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{*     \pkgname.sty} 
+\Msg{*}
+\Msg{* To produce the documentation run latex twice on file \pkgname.tex}
+\Msg{* and then run dvipdfmx on \pkgname.dvi.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+\ifx\numexpr\undefined
+\Msg{* warning: to get correct utf-8 encoded README.md }%
+\Msg{* do etex \pkgname.ins and not tex \pkgname.ins   }%
+\Msg{************************************************************************}
+\fi
+\endbatchfile
+%</insfile>---------------------------------------------------------------------
+%<*none>------------------------------------------------------------------------
+\fi
+%
+\chardef\noetex 0
+\ifx\numexpr\undefined\chardef\noetex 1 \fi
+\ifnum\noetex=1 \chardef\extractfiles 0 % extract files, then stop
+\else
+    \ifx\ProvidesFile\undefined
+      \chardef\extractfiles 0 % etex etc.. on dtx, only file extraction.
+    \else % latex/pdflatex
+      \ifx\Withdvipdfmx\undefined
+        % latex/pdflatex on dtx
+        \chardef\extractfiles 1 % 1 = extract files and typeset manual, 2 = only typeset
+        \chardef\Withdvipdfmx 1 % 0 = pdflatex or latex+dvips, 1 = dvipdfmx
+        \chardef\NoSourceCode 0 % 0 =  include source code, 1 = do not
+        \NeedsTeXFormat {LaTeX2e}%
+        \PassOptionsToClass   {a4paper,fontsize=11pt,oneside}{scrdoc}% 
+        \PassOptionsToPackage {english}{babel}%
+      \else % latex on tex
+        \chardef\extractfiles 2 % do not extract files, only typeset
+      \fi
+      \ProvidesFile{\pkgname.dtx}%
+        [\pkgname\space source and documentation (\dtxtimestamp)]%
+    \fi
+\fi
+\ifnum\extractfiles<2 % extract files
+\def\MessageDeFin{\newlinechar10 \let\Msg\message
+\Msg{********************************************************************^^J}%
+\Msg{*^^J}%
+\Msg{* To finish the installation you have to move the following^^J}%
+\Msg{* file into a directory searched by TeX:^^J}%
+\Msg{*^^J}%
+\Msg{*\space\space\space\space \pkgname.sty^^J}%
+\Msg{*^^J}%
+\Msg{* To produce the documentation with source code included run latex^^J}%
+\Msg{* twice on file \pkgname.tex and then dvipdfmx on \pkgname.dvi^^J}%
+\Msg{*^^J}%
+\Msg{* Happy TeXing!^^J}%
+\Msg{*^^J}%
+\Msg{********************************************************************^^J}%
+}%
+\begingroup
+    \input docstrip.tex
+    \askforoverwritefalse
+    \def\pkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+    \string\NeedsTeXFormat{LaTeX2e}^^J%
+    \string\ProvidesPackage{\pkgname}^^J%
+    \space[\pkgdate\space\pkgversion\space\pkgdescription]}%
+    \generate{\nopreamble\nopostamble
+    \file{README.md}{\from{\pkgname.dtx}{readme}}%
+    \usepostamble\defaultpostamble
+    \file{\pkgname.ins}{\from{\pkgname.dtx}{insfile}}%
+    \file{\pkgname.tex}{\from{\pkgname.dtx}{tex}}%
+    \usepreamble\pkgpreamble
+    \file{\pkgname.sty}{\from{\pkgname.dtx}{package}}}%
+\endgroup
+\fi % end of file extraction (from etex/latex/pdflatex run)
+\ifnum\noetex=1 % warning for README.md
+    \expandafter\def\expandafter\MessageDeFin\expandafter 
+{\MessageDeFin
+\Msg{* warning: to get correct utf-8 encoded README.md ^^J}%
+\Msg{* do etex \pkgname.dtx and not tex \pkgname.dtx   ^^J}%
+\Msg{********************************************************************^^J}}%
+\fi
+\ifnum\extractfiles=0 % tex/etex/xetex/etc files extracted, stop
+      \MessageDeFin\expandafter\end
+\fi
+% From this point on, run is necessarily with e-TeX.
+% Check if \MessageDeFin got defined, if yes put it at end of run.
+\ifdefined\MessageDeFin\AtEndDocument{\MessageDeFin}\fi
+%-------------------------------------------------------------------------------
+% START OF USER MANUAL TEX SOURCE
+\documentclass[abstract]{scrdoc}
+
+\ifnum\NoSourceCode=1 \OnlyDescription\fi
+
+\usepackage{ifpdf}
+\ifpdf\chardef\Withdvipdfmx 0 \fi
+
+\makeatletter
+\ifnum\Withdvipdfmx=1
+   \@for\@tempa:=hyperref,bookmark,graphicx,xcolor,pict2e\do
+            {\PassOptionsToPackage{dvipdfmx}\@tempa}
+   %
+   \PassOptionsToPackage{dvipdfm}{geometry}
+   \PassOptionsToPackage{bookmarks=true}{hyperref}
+   \PassOptionsToPackage{dvipdfmx-outline-open}{hyperref}
+   \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark}
+   %
+   \def\pgfsysdriver{pgfsys-dvipdfm.def}
+\else
+   \PassOptionsToPackage{bookmarks=true}{hyperref}
+\fi
+   \let\original at check@percent\check at percent
+   \let\check at percent\relax
+\makeatother
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[hscale=0.66,vscale=0.75]{geometry}
+\pagestyle{headings}
+
+\def\MacroFont{\ttfamily\small\hyphenchar\font45 \baselineskip11pt\relax}
+
+% ATTENTION: (avec doc.sty ou les classes scrdoc ou ltxdoc)
+%
+% - l'environnement macrocode se fait avec \macro at font qui est le
+% \MacroFont du \begin{document}.
+%
+% - les environnements verbatim utilisent le \MacroFont courant.
+%
+% - \verb utilise un \ttfamily !! et non pas \verbatim at font que l'on
+% peut customiser.
+%
+% - (9 mars 2015) il ne faut PAS commencer des macrocode directement après
+% un \section, il faut un paragraphe (par exemple un \indent\par)
+
+\usepackage{xspace}
+\usepackage[dvipsnames]{xcolor}
+
+\definecolor{joli}{RGB}{225,95,0}
+\definecolor{JOLI}{RGB}{225,95,0}
+
+\newcommand\fcdname{%
+  \texorpdfstring{{\color{joli}\ttfamily\bfseries \pkgname}}{\pkgname}\xspace}
+
+\DeclareRobustCommand\csa [1] {{\ttfamily\hyphenchar\font45 \char`\\ #1}}
+
+\newcommand\csh[1]{\texorpdfstring{\csa{#1}}{\textbackslash\detokenize{#1}}}
+
+\usepackage {babel} % ngerman and english options have been passed to babel
+\AtBeginDocument {%
+  \renewcommand\partname{Part}%
+  \addto\captionsenglish {\renewcommand\partname{Part}}%
+}
+
+\usepackage[pdfencoding=pdfdoc]{hyperref}
+\hypersetup{%
+linktoc=all,%
+%% bookmarksdepth=3,%
+breaklinks=true,%
+colorlinks,%   
+linkcolor=OliveGreen,%RoyalBlue,%
+urlcolor=RoyalBlue,%OliveGreen,%
+pdfauthor={Jean-Fran\c cois Burnol},%
+pdftitle={The \pkgname\space package},%
+pdfsubject={\pkgdescription},%
+pdfkeywords={LaTeX, files, verbatim},%
+pdfstartview=FitH,%
+pdfpagemode=UseOutlines}
+\usepackage{bookmark} 
+
+\usepackage[zerostyle=a,scaled=0.95,straightquotes]{newtxtt}
+\renewcommand\familydefault\sfdefault
+\frenchspacing
+
+\usepackage{framed}
+
+%\usepackage{varioref}
+
+%\usepackage{footnotehyper}
+
+\usepackage{filecontentsdef}
+
+\makeatletter
+\newcommand\inmarg [1]{\@bsphack
+    \vadjust{\vskip-\dp\strutbox
+             \smash{\hbox to 0pt
+                       {\color[named]{PineGreen}\normalfont\small
+                        \hsize 2.5cm\rightskip.5cm minus.5cm
+                        \hyphenpenalty\z@\exhyphenpenalty\z@
+                        \doublehyphendemerits\z@\baselineskip9pt
+                        \hss\vtop{\noindent#1}\kern.25cm }}%
+             \vskip\dp\strutbox }\strut\@esphack}
+\makeatother
+
+\begin{document}
+\rmfamily
+\thispagestyle{empty}
+
+\bookmark[named=FirstPage,level=1]{Title page}
+
+%\ttzfamily
+
+{%
+\normalfont\Large\parindent0pt \parfillskip 0pt\relax
+ \leftskip 2cm plus 1fil \rightskip 2cm plus 1fil
+ The \fcdname package\par
+}
+
+{\centering
+  \textsc{Jean-François Burnol}\par
+  \footnotesize
+  jfbu (at) free (dot) fr\par
+  Package version: \pkgversion\ (\pkgdate);
+            documentation date: \pkgdocdate.\par
+  {From source file \texttt{\pkgname.dtx}. \dtxtimestamp.}\par
+}
+
+\begin{abstract}
+  This lightweight \LaTeX2e package provides environments
+  |filecontentsdef| and |filecontentshere|. They are derived from
+  the \LaTeX\ |filecontents| environment as extended by
+  \textsc{Scott Pakin}'s
+  \href{http://www.ctan.org/pkg/filecontents}{filecontents}
+  package.\footnote{\fcdname works independently from
+    \href{http://www.ctan.org/pkg/filecontents}{filecontents} and
+    does not load it.} In addition to the file creation they either
+  store the (verbatim) contents in a macro (|filecontentsdef|) or
+  typeset them (verbatim) on the spot (|filecontentshere|).
+
+  I developed this to display \TeX\ code verbatim in documentation
+  and simultaneously produce during the LaTeX run the corresponding
+  files in order to embed them in the PDF as \emph{file attachment
+    annotations} (via the services of \textsc{Scott Pakin}'s
+  further package
+  \href{http://www.ctan.org/pkg/attachfile}{attachfile}.)
+\end{abstract}
+
+\section{Description}
+
+The environment\inmarg{|file\-contents\-here|}
+\begin{verbatim}
+    \begin{filecontentshere}{<filename>}
+    ... arbitrary contents ...
+    \end{filecontentshere}
+\end{verbatim}
+creates on the fly a file with these contents, and simultaneously
+it typesets them in a verbatim environment. There is no syntax
+  highlighting whatsoever.
+\begin{footnotesize}
+\begin{enumerate}
+\item 
+    The contents are not completely arbitrary, as they may not contain
+    |\end{filecontentshere}| itself...\par
+\item This uses underneath the |verbatim| environment and this has been
+  tested to be compatible with the standard |verbatim|, with the one from
+  package \href{http://www.ctan.org/pkg/doc}{doc} (classes |ltxdoc.cls|,
+  |scrdoc.cls|) and also with the one from package
+  \href{http://www.ctan.org/pkg/verbatim}{verbatim} (whose mechanism is quite
+  different from the one of the default |verbatim| environment.)
+\end{enumerate}
+\end{footnotesize}
+
+\medskip
+The other environment is |filecontentsdef|.\inmarg{|file\-contents\-def|}
+It has a second mandatory argument, a macro.
+
+\begin{verbatim}
+    \begin{filecontentsdef}{<filename>}{\macro}
+    ... arbitrary contents ...
+    \end{filecontentsdef}
+\end{verbatim}
+
+
+It creates the file and rather than typesetting it verbatim
+simultaneously, it stores its (verbatim) contents in its second argument
+|\macro|.
+
+\begin{enumerate}
+\item the scope of the macro definition is global,
+\item |filecontentshere| is a wrapper of the |filecontentsdef|
+  environment using \csa{filecontentsheremacro} as the macro where the
+  contents are stored.\inmarg{\csa{file\-contents\-here\-macro}} This macro
+  can then be reused elsewhere if wanted.
+\item both environments admit the starred form which does \emph{not} add
+the usual three comment lines at the top of the written file (those lines
+are anyhow not typeset by |filecontentshere| nor are they included in the
+macro by |filecontentsdef|).
+\end{enumerate}
+
+\begin{framed}
+  Please note that |filecontentsdef| basically stores sanitized
+  (i.e. verbatim) tokens in its macro argument |\macro|.
+  
+  If the material consists of \LaTeX\ code, the expansion of the
+  macro will only typeset some \emph{verbatim} rendering of the
+  \LaTeX\ code.
+\end{framed}
+
+\begin{footnotesize}
+  \def\MacroFont{\ttfamily\footnotesize\hyphenchar\font45
+    \baselineskip\the\baselineskip\relax} Using \eTeX's
+  \csa{scantokens}, one can re-tokenize the macro contents and (here
+  naturally, we are talking about the situation where the macro
+  contains \TeX/\LaTeX\ code): we obtain its ``execution'' via
+  |\scantokens\expandafter{\macro}|. Due to the way |\scantokens|
+  works, this must be done with |\newlinechar| set to |13| (to match
+  the |^^M|'s; see later in this documentation). Example:
+\begin{verbatim}
+\begin{filecontentsdef}{\jobname.test}{\macro}
+  \begin{framed}
+    \noindent 
+                We have coded this in \LaTeX: both
+      $E=mc^2$ (input as |$E=mc^2$|)
+    and     $E=h\nu$  owe much    to \textsc{Albert Einstein}.
+  \end{framed}
+\end{filecontentsdef}
+{\newlinechar13 \scantokens\expandafter{\macro}}
+\end{verbatim}
+\begin{filecontentsdef}{\jobname.test}{\macro}
+  \begin{framed}
+    \noindent 
+                We have coded this in \LaTeX: both
+      $E=mc^2$ (input as |$E=mc^2$|)
+    and     $E=h\nu$  owe much    to \textsc{Albert Einstein}.
+  \end{framed}
+\end{filecontentsdef}
+\filecontentsexec\macro Notice\footnote{The absence of indentation
+  at the start of this paragraph is a funny effect due to it
+  immediately following |framed| which itself immediately follows a
+  |verbatim|.} that a space token will generally appear at the end of
+the expansion, due to |\scantokens|'s way of working. This is an
+end-of-line space, which we could suppress via |\endlinechar-1\relax|
+before the |\scantokens|, but that is an option only in the case of
+single-line contents. If we had written above \verb|\end{framed}%| or
+|\end{framed}\relax| in our use of |filecontentsdef| this would have
+prevented |\scantokens| from inserting this final space (naturally in
+this example the space is issued while \TeX\ is in vertical mode and
+leaves no trace anyhow).\footnote{for basic information on this issue,
+  see:
+\url{http://tex.stackexchange.com/questions/117906/use-of-everyeof-and-endlinechar-with-scantokens}}
+
+Although \fcdname itself makes no use of \eTeX, it provides as a
+convenience
+\csa{filecontentsexec}\inmarg{\csa{file\-contents\-exec}\csa{macro}}
+which will use |\scantokens| to execute a |\macro| as above (thus
+assuming it contains legitimate but possibly verbatimized \LaTeX\
+code.) Rather than using a group (possibly |\macro| makes some
+non-global definitions) it issues |\newlinechar10\relax| (as this is
+the default -- we could have stored and restored current value, but
+well...) after the |\scantokens|.\par
+\end{footnotesize}
+
+As an example consider the following (with some |utf8| characters
+among those which are available in |T1|-encoded \TeX-fonts as used
+by this document with the help of |fontenc| and |inputenc|):
+\begin{verbatim}
+\begin{filecontentsdef}{filecontentsdef.license}{\fcdlicense}
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License 1.3c.
+This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and 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.
+
+The Author of this Work is:
+
+- Jean-François Burnol `<jfbu at free dot fr>`
+
+This Work consists of the main source file filecontentsdef.dtx and
+the derived files filecontentsdef.sty, filecontentsdef.ins, 
+filecontentsdef.pdf, filecontentsdef.dvi, README.md.
+
+CHANGE LOG
+==========
+
+v1.2 \[2016/09/19\]
+-------------------
+
+Initial version.
+
+test: éèàùÉÈÇÀÙÛÎåðñòóôõöœøùúûüýþߟŽ§
+\end{filecontentsdef}
+\end{verbatim}
+
+\begin{filecontentsdef}{filecontentsdef.license}{\fcdlicense}
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License 1.3c.
+This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and 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.
+
+The Author of this Work is:
+
+- Jean-François Burnol `<jfbu at free dot fr>`
+
+This Work consists of the main source file filecontentsdef.dtx and
+the derived files filecontentsdef.sty, filecontentsdef.ins, 
+filecontentsdef.pdf, filecontentsdef.dvi, README.md.
+
+CHANGE LOG
+==========
+
+v1.2 \[2016/09/19\]
+-------------------
+
+Initial version.
+
+test: éèàùÉÈÇÀÙÛÎåðñòóôõöœøùúûüýþߟŽ§
+\end{filecontentsdef}
+
+The file |filecontentsdef.license| is created with the usual three commentary
+lines at top of it. And macro \csa{fcdlicense} contains the verbatim material.
+It can then be expanded anywhere in the document. Here are some relevant
+details:
+
+\begin{enumerate}
+\item the usual special characters are sanitized like in a verbatim
+  environment,
+\item spaces become the active character of ascii code |32|, and
+  end of lines are converted into the active character of ascii
+  code |13| (i.e. |^^M|),
+\item the tabs |CTRL-I| have been converted to active spaces,
+\item the form feeds |CTRL-L| have been converted to blank lines (|^^M^^M|),
+\item the characters of ascii code between |128| and |255| have been
+  either given the catcode |letter|, or if they were active (which
+  will be the case with package |inputenc|), they are just inserted in
+  the produced macro as active characters.
+\end{enumerate}
+
+Thus what is needed before inserting \csa{fcdlicense} in the document
+is to give definitions to the active space and the active |^^M|.
+\LaTeX\ and \TeX\ both provide \csa{obeyspaces} and \csa{obeylines}.
+For a true verbatim printout, these are usually not enough because
+spaces at start of lines will disappear, and multiple empty lines give
+multiple |\par|'s which collapse into a single one (hence no empty
+line can be observed in the output). The usual |verbatim| environment
+uses a special definition of |\par| which prevents the disappearance
+of empty lines, and for the spaces it has macro \csa{@vobeyspaces}
+which makes the spaces issue |\leavevmode| so they are not skipped at
+the start of lines. Let's define:
+
+\begin{verbatim}
+\makeatletter
+% this redefines active spaces, but does not make spaces active
+\def\niceactivespaces{\@vobeyspaces\catcode32=10\relax}% 
+\makeatother
+\begingroup
+% this redefines active end of lines, but does not make them active
+  \catcode`\^^M\active %
+  \gdef\niceactiveCRs{\def^^M{\leavevmode\par}}%
+\endgroup %
+\end{verbatim}
+
+Then we can issue something like (the output is not shown):
+\begin{verbatim}
+{\setlength{\parindent}{1cm}\niceactivespaces\niceactiveCRs\fcdlicense}
+\end{verbatim}
+Notice however this will still allow hyphenation and ligatures, which
+are usually inhibited in standard |verbatim| (and also we have not
+switched to the monospace font.) To emulate exactly what a real
+|verbatim| would give, \fcdname provides
+\csa{filecontentsprint}\inmarg{\csa{file\-contents\-print}\csa{macro}}
+which is a command with one mandatory argument whose invocation will
+produce the same as what
+\begingroup\makeatletter\def\x{\let\@xverbatim\relax
+       \verbatim
+\string\begin\string{verbatim\string}\par
+<contents of \string\macro>\par
+\string\end\string{verbatim\string}\par
+\endverbatim%
+\endgroup}\x
+
+% % bizarre
+% % \texttt{\parindent0pt\relax\niceactivespaces\niceactiveCRs\fcdlicense}% 
+% % crée l'indentation il faut faire le \parindent0pt avant !
+% % hmm, bon pas envie de regarder ce que fait \texttt
+
+% % pour le fun
+% % {\setlength{\parindent}{11cm}\niceactivespaces\niceactiveCRs\ttfamily\fcdlicense}
+
+\noindent would have given.\footnote{This is compatible with
+  \href{http://www.ctan.org/pkg/verbatim}{verbatim.sty}'s |verbatim| and
+  hopefully also with other packages modifiying the way the |verbatim|
+  environment works.} The tokens stored in the macro must be of the type
+described above. As an illustration, here is the output from
+|\filecontentsprint\fcdlicense|:
+
+
+\filecontentsprint\fcdlicense
+
+
+\StopEventually{\end{document}}
+
+\makeatletter
+    \let\check at percent\original at check@percent
+\makeatother
+
+\small
+
+\section{Implementation}
+
+\indent % !!!!!!!!!!!!!!!!! Lundi 09 mars 2015 à 09:32:22
+
+
+\makeatletter
+\begingroup
+\topsep\MacrocodeTopsep
+\trivlist\parskip\z@\item[]
+\macro at font
+\leftskip\@totalleftmargin  \advance\leftskip\MacroIndent
+\rightskip\z@  \parindent\z@  \parfillskip\@flushglue
+\global\@newlistfalse \global\@minipagefalse
+\ifcodeline at index
+  \everypar{\global\advance\c at CodelineNo\@ne
+  \llap{\theCodelineNo\ \hskip\@totalleftmargin}}%
+\fi
+\string\NeedsTeXFormat\string{LaTeX2e\string}[1999/12/01]\par
+\string\ProvidesPackage\string{\pkgname\string}\par
+\noindent\space [\pkgdate\space\pkgversion\space\pkgdescription]\par
+\nointerlineskip
+\global\@inlabelfalse
+\endtrivlist
+\endgroup
+\makeatother
+
+% The catcode hackery next is to avoid to have <*package> to be listed
+% in the commented source code...
+% (c) 2012/11/19 jf burnol ;-)
+
+\MakePercentIgnore
+
+%
+% \catcode`\<=0 \catcode`\>=11 \catcode`\*=11 \catcode`\/=11
+% \let</none>\relax
+% \def<*package>{\catcode`\<=12 \catcode`\>=12 \catcode`\*=12 \catcode`\/=12}
+%
+%</none>
+%<*package>
+% Most of
+% the code is still identical to the one in \textsc{Scott Pakin}'s
+% \href{http://www.ctan.org/pkg/filecontents}{filecontents} hence to
+% the original one in \LaTeX's sources.
+%    \begin{macrocode}
+\begingroup
+\catcode`\^^M\active%
+\catcode`\^^L\active\let^^L\relax%
+\catcode`\^^I\active%
+\gdef\filec at ntentsdef#1#2{%
+  \let#2\@empty%
+  \openin\@inputcheck#1 %
+  \ifeof\@inputcheck%
+    \@latex at warning@no at line%
+        {Writing file `\@currdir#1'}%
+  \else%
+    \@latex at warning@no at line%
+        {Overwriting file `\@currdir#1'}%
+  \fi%
+  \closein\@inputcheck%
+  \chardef\reserved at c15 %
+  \ch at ck7\reserved at c\write%
+  \immediate\openout\reserved at c#1\relax%
+  \if at tempswa%
+    \immediate\write\reserved at c{%
+      \@percentchar\@percentchar\space%
+          \expandafter\@gobble\string\LaTeX2e file `#1'^^J%
+      \@percentchar\@percentchar\space  generated by the %
+        `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
+      \@percentchar\@percentchar\space from source `\jobname' on %
+         \number\year/\two at digits\month/\two at digits\day.^^J%
+      \@percentchar\@percentchar}%
+  \fi%
+  \let\do\@makeother\dospecials%
+%    \end{macrocode}
+% SP's |filecontents| sets here in the loop all catcodes to |11|, but we
+% need for correct rendering in verbatim that the constructed macro
+% stores active characters as active characters.
+%
+% We don't check for unusual active characters of ascii code |<128|
+% as this is not done by original or SP's |filecontents|. But if
+% present then they will expand similarly both in the |\write| and
+% in the construction of the macro.
+%    \begin{macrocode}
+  \count@=128\relax%
+  \loop%
+    \ifnum\catcode\count@=\active%
+          \lccode`~\count@%
+          \lowercase{\def~{\noexpand~}}%
+    \else%
+          \catcode\count@=11 %
+    \fi%
+    \advance\count@ by \@ne%
+    \ifnum\count@<\@cclvi%
+  \repeat%
+%    \end{macrocode}
+% The default active |^^L|  is |\outer|. But |\reserved at b| will be |def'd|
+% with an active |^^L| in its replacement text.
+%    \begin{macrocode}
+  \let^^L\relax%
+  \edef\E{\@backslashchar end\string{\@currenvir\string}}%
+  \edef\reserved at b{\def\noexpand\reserved at b####1\E####2\E####3\relax}%
+  \reserved at b{%
+    \ifx\relax##3\relax%
+      \immediate\write\reserved at c{##1}%
+%    \end{macrocode}
+% This is where the original |filecontents| is extended to store the
+% parsed material in a macro (in my very first hack I simply
+% patched it to redefine |\write| to also do the macro storage, but
+% considerations like the one relative to active characters due to
+% |inputenc| made me decide to re-write the whole thing, hence make
+% a new package.)
+%
+% Active characters were defined with a single |\noexpand| in the
+% loop, and this is enough because after each new line is processed
+% the characters it contains are protected from further expansion in
+% the |\xdef|'s. And the single |\noexpand| is enough also for the
+% |\write| done above.
+%
+% The |lccode| of the tilde is |32| when this gets executed. Multiple
+% form feeds produce the same effect in the macro (insertion of two
+% |^^M| per form feed) as in the written out file (via two |^^J|).
+%    \begin{macrocode}
+      \toks@\expandafter{#2}%
+      {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
+       \xdef#2{\the\toks@##1\noexpand^^M}}%
+    \else%
+      \edef^^M{\noexpand\end{\@currenvir}}%
+      \ifx\relax##1\relax%
+      \else%
+          \@latex at warning{Writing text `##1' before %
+             \string\end{\@currenvir}\MessageBreak as last line of #1}%
+        \immediate\write\reserved at c{##1}%
+%    \end{macrocode}
+% Same added code as above.
+%    \begin{macrocode}
+        \toks@\expandafter{#2}%
+        {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
+         \xdef#2{\the\toks@##1\noexpand^^M}}%
+      \fi%
+      \ifx\relax##2\relax%
+      \else%
+         \@latex at warning{%
+           Ignoring text `##2' after \string\end{\@currenvir}}%
+      \fi%
+    \fi%
+    ^^M}%
+  \catcode`\^^L\active%
+  \let\L\@undefined%
+  \def^^L{\@ifundefined L^^J^^J^^J}%
+  \catcode`\^^I\active%
+  \let\I\@undefined%
+  \def^^I{\@ifundefined I\space\space}%
+  \catcode`\^^M\active%
+  \edef^^M##1^^M{\noexpand\reserved at b##1\E\E\relax}%
+%    \end{macrocode}
+% We want space characters to be active in the produced macro.
+% We only need to protect them once from expansion.
+%    \begin{macrocode}
+  \catcode32\active\lccode`~32 \lowercase{\def~{\noexpand~}}%
+}%
+\endgroup
+\begingroup
+\catcode`\*=11
+\gdef\filecontentsdef {\@tempswatrue\filec at ntentsdef}%
+\gdef\filecontentsdef*{\@tempswafalse\filec at ntentsdef}%
+\global\let\endfilecontentsdef \endfilecontents
+\global\let\endfilecontentsdef*\endfilecontents
+\gdef\filecontentshere #1{\@tempswatrue
+                         \filec at ntentsdef{#1}\filecontentsheremacro}%
+\gdef\filecontentshere*#1{\@tempswafalse
+                          \filec at ntentsdef{#1}\filecontentsheremacro}%
+\gdef\endfilecontentshere{\endfilecontentsdef\aftergroup\filecontents at verbatim}%
+\global\let\endfilecontentshere*\endfilecontentshere
+%    \end{macrocode}
+% Package |verbatim.sty| modifies the standard |verbatim| environment. For
+% both the original and the modified version we need to insert an active |^^M|
+% upfront, else an empty first line would not be obeyed. The |verbatim.sty|'s
+% |verbatim| needs that we feed it with the macro expanded once, as it uses
+% active end of lines as delimiters and they thus need to be immediately
+% visible. It also needs an active |^^M| after the |\end{verbatim}|. To avoid
+% to check at |\AtBeginDocument| if package |verbatim.sty| is loaded, we use a
+% slightly tricky common definition. The advantage is that this may help make
+% the code compatible with further packages (I have not looked for them)
+% modifying the |verbatim| environment. For better code readibility I use
+% |^^M%|'s rather than exploiting the active ends of lines here.
+%    \begin{macrocode}
+\catcode`\^^M\active%
+\gdef\filecontentsprint #1{\let\filecontentsprint at EOL^^M\let^^M\relax%
+   \begingroup\toks@\expandafter{#1}\edef\x{\endgroup%
+            \noexpand\begin{verbatim}^^M%
+            \the\toks@\@backslashchar end\string{verbatim\string}}\x^^M%
+   \filecontentsprint at resetEOL}%
+\gdef\filecontentsprint at resetEOL{\let^^M\filecontentsprint at EOL}%
+\endgroup
+\def\filecontents at verbatim {\filecontentsprint\filecontentsheremacro}%
+\def\filecontentsexec #1{\newlinechar13 
+    \scantokens\expandafter{#1}\newlinechar10\relax}%
+\endinput
+%    \end{macrocode}
+% \MakePercentComment
+\Finale
+%%
+%% End of file `filecontentsdef.dtx'.


Property changes on: trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/filecontentsdef/filecontentsdef.ins	2016-09-20 21:18:47 UTC (rev 42107)
@@ -0,0 +1,47 @@
+%%
+%% Package: filecontentsdef
+%% Version: 1.2 (2016/09/19)
+%% License: LPPL 1.3c
+%% Copyright (C) 2016 Jean-Francois Burnol <jfbu at free dot fr>
+%%
+\def\pkgname        {filecontentsdef}
+\def\pkgdate        {2016/09/19}
+\def\pkgdocdate     {2016/09/19}
+\def\pkgversion     {v1.2}
+\def\pkgdescription {filecontents + macro + verbatim (JFB)}
+\input docstrip.tex
+\askforoverwritefalse
+\def\pkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+\string\NeedsTeXFormat{LaTeX2e}^^J%
+\string\ProvidesPackage{filecontentsdef}^^J%
+\space[\pkgdate\space\pkgversion\space\pkgdescription]}%
+\generate{\nopreamble\nopostamble
+\file{README.md}{\from{\pkgname.dtx}{readme}}%
+\usepostamble\defaultpostamble
+\file{\pkgname.tex}{\from{\pkgname.dtx}{tex}}%
+\usepreamble\pkgpreamble
+\file{\pkgname.sty}{\from{\pkgname.dtx}{package}}}%
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{*     \pkgname.sty}
+\Msg{*}
+\Msg{* To produce the documentation run latex twice on file \pkgname.tex}
+\Msg{* and then run dvipdfmx on \pkgname.dvi.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+\ifx\numexpr\undefined
+\Msg{* warning: to get correct utf-8 encoded README.md }%
+\Msg{* do etex \pkgname.ins and not tex \pkgname.ins   }%
+\Msg{************************************************************************}
+\fi
+\endbatchfile
+\endinput
+%%
+%% End of file `filecontentsdef.ins'.

Added: trunk/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty	2016-09-20 21:18:47 UTC (rev 42107)
@@ -0,0 +1,136 @@
+%%
+%% This is file `filecontentsdef.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% filecontentsdef.dtx  (with options: `package')
+%% 
+%% IMPORTANT NOTICE:
+%% 
+%% For the copyright see the source file.
+%% 
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from filecontentsdef.sty.
+%% 
+%% For distribution of the original source see the terms
+%% for copying and modification in the file filecontentsdef.dtx.
+%% 
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{filecontentsdef}
+ [2016/09/19 v1.2 filecontents + macro + verbatim (JFB)]
+%%
+%% Package: filecontentsdef
+%% Version: 1.2 (2016/09/19)
+%% License: LPPL 1.3c
+%% Copyright (C) 2016 Jean-Francois Burnol <jfbu at free dot fr>
+%%
+\begingroup
+\catcode`\^^M\active%
+\catcode`\^^L\active\let^^L\relax%
+\catcode`\^^I\active%
+\gdef\filec at ntentsdef#1#2{%
+  \let#2\@empty%
+  \openin\@inputcheck#1 %
+  \ifeof\@inputcheck%
+    \@latex at warning@no at line%
+        {Writing file `\@currdir#1'}%
+  \else%
+    \@latex at warning@no at line%
+        {Overwriting file `\@currdir#1'}%
+  \fi%
+  \closein\@inputcheck%
+  \chardef\reserved at c15 %
+  \ch at ck7\reserved at c\write%
+  \immediate\openout\reserved at c#1\relax%
+  \if at tempswa%
+    \immediate\write\reserved at c{%
+      \@percentchar\@percentchar\space%
+          \expandafter\@gobble\string\LaTeX2e file `#1'^^J%
+      \@percentchar\@percentchar\space  generated by the %
+        `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
+      \@percentchar\@percentchar\space from source `\jobname' on %
+         \number\year/\two at digits\month/\two at digits\day.^^J%
+      \@percentchar\@percentchar}%
+  \fi%
+  \let\do\@makeother\dospecials%
+  \count@=128\relax%
+  \loop%
+    \ifnum\catcode\count@=\active%
+          \lccode`~\count@%
+          \lowercase{\def~{\noexpand~}}%
+    \else%
+          \catcode\count@=11 %
+    \fi%
+    \advance\count@ by \@ne%
+    \ifnum\count@<\@cclvi%
+  \repeat%
+  \let^^L\relax%
+  \edef\E{\@backslashchar end\string{\@currenvir\string}}%
+  \edef\reserved at b{\def\noexpand\reserved at b####1\E####2\E####3\relax}%
+  \reserved at b{%
+    \ifx\relax##3\relax%
+      \immediate\write\reserved at c{##1}%
+      \toks@\expandafter{#2}%
+      {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
+       \xdef#2{\the\toks@##1\noexpand^^M}}%
+    \else%
+      \edef^^M{\noexpand\end{\@currenvir}}%
+      \ifx\relax##1\relax%
+      \else%
+          \@latex at warning{Writing text `##1' before %
+             \string\end{\@currenvir}\MessageBreak as last line of #1}%
+        \immediate\write\reserved at c{##1}%
+        \toks@\expandafter{#2}%
+        {\def^^L{\noexpand^^M\noexpand^^M}\lowercase{\let^^I~}%
+         \xdef#2{\the\toks@##1\noexpand^^M}}%
+      \fi%
+      \ifx\relax##2\relax%
+      \else%
+         \@latex at warning{%
+           Ignoring text `##2' after \string\end{\@currenvir}}%
+      \fi%
+    \fi%
+    ^^M}%
+  \catcode`\^^L\active%
+  \let\L\@undefined%
+  \def^^L{\@ifundefined L^^J^^J^^J}%
+  \catcode`\^^I\active%
+  \let\I\@undefined%
+  \def^^I{\@ifundefined I\space\space}%
+  \catcode`\^^M\active%
+  \edef^^M##1^^M{\noexpand\reserved at b##1\E\E\relax}%
+  \catcode32\active\lccode`~32 \lowercase{\def~{\noexpand~}}%
+}%
+\endgroup
+\begingroup
+\catcode`\*=11
+\gdef\filecontentsdef {\@tempswatrue\filec at ntentsdef}%
+\gdef\filecontentsdef*{\@tempswafalse\filec at ntentsdef}%
+\global\let\endfilecontentsdef \endfilecontents
+\global\let\endfilecontentsdef*\endfilecontents
+\gdef\filecontentshere #1{\@tempswatrue
+                         \filec at ntentsdef{#1}\filecontentsheremacro}%
+\gdef\filecontentshere*#1{\@tempswafalse
+                          \filec at ntentsdef{#1}\filecontentsheremacro}%
+\gdef\endfilecontentshere{\endfilecontentsdef\aftergroup\filecontents at verbatim}%
+\global\let\endfilecontentshere*\endfilecontentshere
+\catcode`\^^M\active%
+\gdef\filecontentsprint #1{\let\filecontentsprint at EOL^^M\let^^M\relax%
+   \begingroup\toks@\expandafter{#1}\edef\x{\endgroup%
+            \noexpand\begin{verbatim}^^M%
+            \the\toks@\@backslashchar end\string{verbatim\string}}\x^^M%
+   \filecontentsprint at resetEOL}%
+\gdef\filecontentsprint at resetEOL{\let^^M\filecontentsprint at EOL}%
+\endgroup
+\def\filecontents at verbatim {\filecontentsprint\filecontentsheremacro}%
+\def\filecontentsexec #1{\newlinechar13
+    \scantokens\expandafter{#1}\newlinechar10\relax}%
+\endinput
+%%
+%% End of file `filecontentsdef.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/filecontentsdef/filecontentsdef.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2016-09-20 21:17:32 UTC (rev 42106)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2016-09-20 21:18:47 UTC (rev 42107)
@@ -249,7 +249,7 @@
     fc fcavtex fcltxdoc fcolumn fdsymbol featpost fei fenixpar
     fetamont feupphdteses feyn feynmf feynmp-auto ffslides fge
     fibeamer fifinddo-info fifo-stack fig4latex figbas figbib figflow figsize
-    filecontents filedate filehook fileinfo filemod
+    filecontents filecontentsdef filedate filehook fileinfo filemod
     findhyph fink finstrut fira first-latex-doc fitbox fithesis
     fix2col fixcmex fixfoot fixlatvian fixltxhyph fixme fixmetodonotes
     fixpdfmag

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2016-09-20 21:17:32 UTC (rev 42106)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2016-09-20 21:18:47 UTC (rev 42107)
@@ -378,6 +378,7 @@
 depend fifo-stack
 depend figsize
 depend filecontents
+depend filecontentsdef
 depend filedate
 depend filehook
 depend fileinfo

Added: trunk/Master/tlpkg/tlpsrc/filecontentsdef.tlpsrc
===================================================================


More information about the tex-live-commits mailing list