summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chapterfolder
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/chapterfolder
Initial commit
Diffstat (limited to 'macros/latex/contrib/chapterfolder')
-rw-r--r--macros/latex/contrib/chapterfolder/chapterfolder.dtx332
-rw-r--r--macros/latex/contrib/chapterfolder/chapterfolder.ins55
-rw-r--r--macros/latex/contrib/chapterfolder/chapterfolder.pdfbin0 -> 199404 bytes
3 files changed, 387 insertions, 0 deletions
diff --git a/macros/latex/contrib/chapterfolder/chapterfolder.dtx b/macros/latex/contrib/chapterfolder/chapterfolder.dtx
new file mode 100644
index 0000000000..a892a4c71b
--- /dev/null
+++ b/macros/latex/contrib/chapterfolder/chapterfolder.dtx
@@ -0,0 +1,332 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2003-2005 by Mathieu Boretti
+%
+% This file 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 2003/12/01 or later.
+%
+% The current Maintainer of this work is Mathieu Boretti
+%
+% This work consists of the file chapterfolder.ins and
+% chapterfolder.dtx and the derived file chapterfolder.sty
+%
+%
+% \fi
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{chapterfolder}[2005/11/24 v2.0 Package for dealing with folder]
+%<package>\RequirePackage{ifthen}
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{chapterfolder}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{chapterfolder.dtx}
+\end{document}
+%</driver>
+% \fi
+% \GetFileInfo{chapterfolder.sty}
+% \changes{v2.0}{2005-11-24}{First version of chapterfolder that use dtx}
+% \title{The \textsf{chapterfolder} package\thanks{This document corresponds to \textsf{chapterfolder}~\fileversion, dated~\filedate.}}
+% \author{Mathieu Boretti \\ \texttt{mathieu.boretti@gmail.com}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This file describe the \textsf{chapterfolder} package. This package is intended for \LaTeX\ users who must deal with
+% complex folder structure.
+% \end{abstract}
+%
+% \section{Usage}
+% The first command that you need is the |\usepackage{chapterfolder}|. This command include the \textsf{chapterfolder}.
+%
+% \DescribeMacro{\cfpart} The |\cfpart| command define a part, change the current folder and include a main file for the part. The syntaxe of this command is |\cfpart| \oarg{short name} \marg{name} \marg{folder name} \marg{file name}.
+%
+% \DescribeMacro{\cfpart*} This command does the same think as |\cfpart| except that it use a define a part*.
+%
+% \DescribeMacro{\cfchapter} The |\cfchapter| command define a chapter, change the current folder and include a main file for the chapter. The syntaxe of this command is |\cfchapter| \oarg{short name} \marg{name} \marg{folder name} \marg{file name}.
+%
+% \DescribeMacro{\cfchapter*} This command does the same think as |\cfchapter| except that it use a define a chapter*.
+%
+% \DescribeMacro{\cfsection} The |\cfsection| command define a section, change the current folder and include a main file for the section. The syntaxe of this command is |\cfsection| \oarg{short name} \marg{name} \marg{folder name} \marg{file name}.
+%
+% \DescribeMacro{\cfsection*} This command does the same think as |\cfsection| except that it use a define a section*.
+%
+% \DescribeMacro{\cfsubsection} The |\cfsubsection| command define a subsection, change the current folder and include a main file for the subsection. The syntaxe of this command is |\cfsubsection| \oarg{short name} \marg{name} \marg{folder name} \marg{file name}.
+%
+% \DescribeMacro{\cfsubsection*} This command does the same think as |\cfsubsection| except that it use a define a subsection*.
+%
+% \DescribeMacro{\cfinput} The command |\cfinput| include a file from within the current folder.
+%
+% \DescribeMacro{\cfcurrentfolder} The command |\cfcurrentfolder| provide the path to the current folder.
+%
+% \DescribeMacro{\cfinputfigure} The command |\cfinputfigure| include a file from within the folder {\tt figure} within the current folder.
+%
+% \DescribeMacro{\cfcurrentfolderfigure} The command |\cfcurrentfolderfigure| provide the path to the current figure folder.
+%
+% \DescribeMacro{\cfinputlistings} The command |\cfinputlistings| include a file from within the folder {\tt listings} within the current folder.
+%
+% \DescribeMacro{\cfcurrentfolderlistings} The command |\cfcurrentfolderlistings| provide the path to the current listings folder.
+%
+% \DescribeMacro{\cfinputalgorithms} The command |\cfinputalgorithms| include a file from within the folder {\tt algorithms} within the current folder.
+%
+% \DescribeMacro{\cfcurrentfolderalgorithms} The command |\cfcurrentfolderalgorithms| provide the path to the current algorithms folder.
+%
+% \DescribeMacro{\cffolderfigure} The command |\cffolderfigure| change the current folder and include a main file. The syntaxe of this command is |\cffolderfigure| \marg{folder name} \marg{file name}.
+%
+% \DescribeMacro{\cfaddFolder} The command |\cfaddFolder| define two command to deal with default folder. The syntaxe of this command is |\cfaddFolder| \marg{command extension} \marg{folder name}.
+%
+% \section{Compatibility commands}
+% The following commands are available for backward compatibility :
+%
+% \DescribeMacro{\cfpartstar} The command |\cfpartstar| is a alias of |\cfpart*|.
+%
+% \DescribeMacro{\cfchapterstar} The command |\cfchapterstar| is a alias of |\cfchapter*|.
+%
+% \DescribeMacro{\cfsectionstar} The command |\cfsectionstar| is a alias of |\cfsection*|.
+%
+% \DescribeMacro{\cfsubsectionstar} The command |\cfsubsectionstar| is a alias of |\cfsubsection*|.
+%
+% \section{Implementation}
+% \begin{macro}{@cf@currentpos}
+% This counter define the top of the stack path
+% \begin{macrocode}
+\newcounter{@cf@currentpos}
+\setcounter{@cf@currentpos}{0}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\stackFolder<X>}
+% These macro contains, when needed the path for the stack
+% \begin{macrocode}
+\expandafter\def\csname stackFolder0\endcsname{}
+\expandafter\def\csname stackFolder1\endcsname{}
+\expandafter\def\csname stackFolder2\endcsname{}
+\expandafter\def\csname stackFolder3\endcsname{}
+\expandafter\def\csname stackFolder4\endcsname{}
+\expandafter\def\csname stackFolder5\endcsname{}
+\expandafter\def\csname stackFolder6\endcsname{}
+\expandafter\def\csname stackFolder7\endcsname{}
+\expandafter\def\csname stackFolder8\endcsname{}
+\expandafter\def\csname stackFolder9\endcsname{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@cfpush}
+% This macro push a path onto the stack path
+% \begin{macrocode}
+\def\@cfpush#1{%
+ \expandafter%
+ \def\csname stackFolder\arabic{@cf@currentpos}\endcsname{#1/}%
+ \addtocounter{@cf@currentpos}{1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@cfpop}
+% This macro pop a path from the stack path
+% \begin{macrocode}
+\def\@cfpop{%
+ \addtocounter{@cf@currentpos}{-1}
+ \expandafter%
+ \def\csname stackFolder\arabic{@cf@currentpos}\endcsname{}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfcurrentfolder}
+% This marco define the current path
+% \begin{macrocode}
+\newcommand{\cfcurrentfolder}{%
+\csname stackFolder0\endcsname%
+\csname stackFolder1\endcsname%
+\csname stackFolder2\endcsname%
+\csname stackFolder3\endcsname%
+\csname stackFolder4\endcsname%
+\csname stackFolder5\endcsname%
+\csname stackFolder6\endcsname%
+\csname stackFolder7\endcsname%
+\csname stackFolder8\endcsname%
+\csname stackFolder9\endcsname%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfinput}
+% This macro define how to input a file from the current folder
+% \begin{macrocode}
+\newcommand{\cfinput}[1]{\input{\cfcurrentfolder#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cffolderinput}
+% This macro go into a folder and input a file
+% \begin{macrocode}
+\newcommand{\cffolderinput}[2]{%
+ \@cfpush{#1}%
+ \cfinput{#2}%
+ \@cfpop%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfaddFolder}
+% This macro define a new default folder for some kind of data
+% \begin{macrocode}
+\newcommand{\cfaddFolder}[2]{%
+ \expandafter\def\csname cfcurrentfolder#1\endcsname{%
+ \cfcurrentfolder/#2/%
+ }%
+ \expandafter\def\csname cfinput#1\endcsname##1{%
+ \input{\csname cfcurrentfolder#1\endcsname##1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@chapterfolderfigure}
+% This macro define the default name of the folder for the figures
+% \begin{macrocode}
+\newcommand{\@chapterfolderfigure}{figure}
+% \end{macrocode}
+% and then define three macros that access this folder
+% \begin{macrocode}
+\cfaddFolder{figure}{\@chapterfolderfigure}
+\newcommand{\cfincludegraphics}[2][]{%
+ \includegraphics[#1]{\cfcurrentfolderfigure/#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@chapterfolderlistings}
+% This macro define the default name of the folder for the listings
+% \begin{macrocode}
+\newcommand{\@chapterfolderlistings}{listings}
+% \end{macrocode}
+% and then define two macros that access this folder
+% \begin{macrocode}
+\cfaddFolder{listings}{\@chapterfolderlistings}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@chapterfolderalgorithms}
+% This macro define the default name of the folder for the algorithms
+% \begin{macrocode}
+\newcommand{\@chapterfolderalgorithms}{algorithms}
+% \end{macrocode}
+% and then define two macros that access this folder
+% \begin{macrocode}
+\cfaddFolder{algorithms}{\@chapterfolderalgorithms}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfpart}
+% This macro is the main macro to include a part from within a folder
+% \begin{macrocode}
+\newcommand{\cfpart}{\@ifstar
+ \cfpartstar%
+ \cfpartstd%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfchapter}
+% This macro is the main macro to include a chapter from within a folder
+% \begin{macrocode}
+\newcommand{\cfchapter}{\@ifstar
+ \cfchapterstar%
+ \cfchapterstd%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsection}
+% This macro is the main macro to include a section from within a folder
+% \begin{macrocode}
+\newcommand{\cfsection}{\@ifstar
+ \cfsectionstar%
+ \cfsectionstd%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsubsection}
+% This macro is the main macro to include a subsection from within a folder
+% \begin{macrocode}
+\newcommand{\cfsubsection}{\@ifstar
+ \cfsubsectionstar%
+ \cfsubsectionstd%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfpartstd}
+% This macro go in a folder, create a part, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfpartstd}[4][]{%
+\ifthenelse{\equal{#1}{}}{\part{#2}}{\part[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfpartstar}
+% This macro go in a folder, create a part*, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfpartstar}[4][]{%
+\ifthenelse{\equal{#1}{}}{\part*{#2}}{\part[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfchapterstd}
+% This macro go in a folder, create a chapter, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfchapterstd}[4][]{%
+\ifthenelse{\equal{#1}{}}{\chapter{#2}}{\chapter[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfchapterstar}
+% This macro go in a folder, create a chapter*, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfchapterstar}[4][]{%
+\ifthenelse{\equal{#1}{}}{\chapter*{#2}}{\chapter*[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsectionstd}
+% This macro go in a folder, create a section, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfsectionstd}[4][]{%
+\ifthenelse{\equal{#1}{}}{\section{#2}}{\section[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsectionstart}
+% This macro go in a folder, create a section*, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfsectionstar}[4][]{%
+\ifthenelse{\equal{#1}{}}{\section*{#2}}{\section*[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsubsectionstd}
+% This macro go in a folder, create a subsection, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfsubsectionstd}[4][]{%
+\ifthenelse{\equal{#1}{}}{\subsection{#2}}{\subsection[#1]{#2}}%
+%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cfsubsectionstar}
+% This macro go in a folder, create a subsection*, include the default file and go out of the folder
+% \begin{macrocode}
+\newcommand{\cfsubsectionstart}[4][]{%
+\ifthenelse{\equal{#1}{}}{\subsection*{#2}}{\subsection*[#1]{#2}}%
+\cffolderinput{#3}{#4}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/chapterfolder/chapterfolder.ins b/macros/latex/contrib/chapterfolder/chapterfolder.ins
new file mode 100644
index 0000000000..43e6d103fb
--- /dev/null
+++ b/macros/latex/contrib/chapterfolder/chapterfolder.ins
@@ -0,0 +1,55 @@
+%%
+%% Copyright (C) 2003-2005 by Mathieu Boretti
+%%
+%% This file 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 2003/12/01 or later.
+%%
+%% The current Maintainer of this work is Mathieu Boretti
+%%
+%% This work consists of the file chapterfolder.ins and
+%% chapterfolder.dtx and the derived file chapterfolder.sty
+%%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/chapterfolder}
+\preamble
+This is a generated file.
+
+Copyright (C) 2003-2005 by Mathieu Boretti
+
+This file 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 2003/12/01 or later.
+
+The current Maintainer of this work is Mathieu Boretti
+
+This work consists of the file chapterfolder.ins and
+chapterfolder.dtx and the derived file chapterfolder.sty
+\endpreamble
+\generate{\file{chapterfolder.sty}{\from{chapterfolder.dtx}{package}}}
+\obeyspaces
+\Msg{*****************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the *}
+\Msg{* following file into a directory searched by LaTeX *}
+\Msg{* *}
+\Msg{* chapterfolder.sty *}
+\Msg{* *}
+\Msg{* To producre the documentation run the file *}
+\Msg{* chapterfolder.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{*****************************************************}
+\endbatchfile
diff --git a/macros/latex/contrib/chapterfolder/chapterfolder.pdf b/macros/latex/contrib/chapterfolder/chapterfolder.pdf
new file mode 100644
index 0000000000..bd21630d49
--- /dev/null
+++ b/macros/latex/contrib/chapterfolder/chapterfolder.pdf
Binary files differ