From 3675804a84c59b9ca85749a43c1163f6979fa08a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 8 Sep 2017 21:22:20 +0000 Subject: fetchcls (8sep17) git-svn-id: svn://tug.org/texlive/trunk@45245 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/fetchcls/fetchcls.dtx | 128 +++++++++++++++++++++ .../texmf-dist/source/latex/fetchcls/fetchcls.ins | 74 ++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 Master/texmf-dist/source/latex/fetchcls/fetchcls.dtx create mode 100644 Master/texmf-dist/source/latex/fetchcls/fetchcls.ins (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/fetchcls/fetchcls.dtx b/Master/texmf-dist/source/latex/fetchcls/fetchcls.dtx new file mode 100644 index 00000000000..e6bb547f5f3 --- /dev/null +++ b/Master/texmf-dist/source/latex/fetchcls/fetchcls.dtx @@ -0,0 +1,128 @@ +% \iffalse meta-comment +% +% Copyright (C) 2015 by Ruben Giannotti +% +% ------------------------------------------------------- +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c 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 Ruben Giannotti. +% +% This work consists of the files +% fetchcls.dtx +% fetchcls.ins +% and the derived file fetchcls.sty. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{fetchcls.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[2008/04/05] +%\ProvidesPackage{fetchcls} +%<*package> + [2015/08/11 v1.0 Fetch the class name (RG)] +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{parskip} +\setlength\parindent{0pt} +\providecommand*\pkg{} +\providecommand*\url{} +\providecommand*\email{} +\renewcommand\pkg{\textsf} +\renewcommand\url{\texttt} +\renewcommand\email{\texttt} +\begin{document} + \DocInput{fetchcls.dtx} +\end{document} +% +% \fi +% +% \CheckSum{13} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v1.0}{2015/08/11}{Initial version} +% +% \GetFileInfo{fetchcls.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment,\!,\@empty,\@gobble,\@gobbletwo} +% \DoNotIndex{\@ifpackageloaded,\@ifpackagewith,\@ifundefined,\@namedef} +% \DoNotIndex{\@nil,\@onlypreamble,\@tempa,\@tempb,\@tempswafalse,\def} +% \DoNotIndex{\@tempswatrue,\^,\-,\active,\begingroup,\catcode,\@car,\@cdr} +% \DoNotIndex{\edef,\else,\endgroup,\endinput,\expandafter,\fi,\if} +% \DoNotIndex{\if@tempswa,\ifcase,\ifnum,\ifx,\lccode,\let,\lowercase} +% \DoNotIndex{\MessageBreak,\next,\number,\numexpr,\or,\PackageError} +% \DoNotIndex{\PackageWarning,\PackageWarningNoLine,\strip@prefix,\@@end} +% \DoNotIndex{\relax,\space,\string,\DeclareOption,\ProcessOptions} +% \DoNotIndex{\meaning,\ifdefined,\csname,\chardef,\endcsname,\protect} +% \DoNotIndex{\input,\RequirePackage,\global,\ifcsname,\makeatother} +% \DoNotIndex{\@makeother,\the,\toks@} +% +% \title{The \pkg{fetchcls} package\thanks{This document +% corresponds to \pkg{fetchcls}~\fileversion, dated \filedate.}} +% \author{Ruben Giannotti\thanks{\email{ruben dot giannotti at gmx dot net}}} +% \date{August, 11 2015} +% +% \maketitle +% +% With standard \LaTeX\ you are able to check for the class in use +% invoking the kernel command \cs{@ifclassloaded}. +% However, doing so you can't get the explicit class name +% (unless you want to loop over every possible class name +% until \cs{@ifclassloaded} returns true -- don't do that!) +% With the present package you can get the name with significantly less effort. +% Just load the package as usual: +% \begin{flushleft} +% \cs{usepackage}\{fetchcls\} +% \end{flushleft} +% Then, the control sequence \cs{classname} will hold the name of the current class. +% +% \StopEventually{} +% +% Let's have a brief look on how the two code lines of this package tackle this task. +% +% We will use the \cs{@filelist} to retrive the class name +% as it contains the class name as its first entry. +% Since the class is captured with its extension we define a macro +% with the explicit class extension of \LaTeX\ as delimiter. +% Then the rest will be read until the end and thrown away. +% Everything in front of the delimiter will be written into \cs{classname}. +% \begin{macrocode} +\def\f@tchcls#1.cls#2 {\def\classname{#1}} +% \end{macrocode} +% The next and alredy last step consists in +% apllying \cs{f@tchcls} to the \cs{@filelist} +% while ensuring that it gets expanded before \cs{f@tchcls} reads it. +% \begin{macrocode} +\begingroup\edef\x{\endgroup\noexpand\f@tchcls\@filelist\space}\x +% \end{macrocode} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/fetchcls/fetchcls.ins b/Master/texmf-dist/source/latex/fetchcls/fetchcls.ins new file mode 100644 index 00000000000..ec8977e3f3b --- /dev/null +++ b/Master/texmf-dist/source/latex/fetchcls/fetchcls.ins @@ -0,0 +1,74 @@ +% Copyright (C) 2015 by Ruben Giannotti +% +% ------------------------------------------------------- +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c 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 Ruben Giannotti. +% +% This work consists of the files +% fetchcls.dtx +% fetchcls.ins +% and the derived file fetchcls.sty. + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/fetchcls} + +\preamble + +This is a generated file. + +Copyright (C) 2015 by Ruben Giannotti + +------------------------------------------------------- + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c 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 Enrico Gregorio. + +This work consists of the files + fetchcls.dtx + fetchcls.ins +and the derived file fetchcls.sty. + +\endpreamble + +\generate{\file{fetchcls.sty}{\from{fetchcls.dtx}{package}}} + +\def\tmpa{plain} +\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* fetchcls.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file *} +\Msg{* fetchcls.dtx through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile -- cgit v1.2.3