%% %% This is file `lmake.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% lmake.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2012 by Shengjun Pan %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{lmake} [2012/02/29 v1.0 .dtx lmake file] \newif\ifL@Equal \def\L@Compare#1#2{% \protected@edef\L@a{#1}\protected@edef\L@b{#2}% \ifx\L@a\L@b\L@Equaltrue\else\L@Equalfalse\fi} \def\L@FuzzyCompare#1#2{% \L@Compare{#1}{#2}\ifL@Equal\else\L@Compare{#1}{ #2}\fi} \def\L@SoftCompare#1#2{% \def\L@a{#1}\def\L@b{#2}% \ifx\L@a\L@b\L@Equaltrue\else\L@Equalfalse\fi} \def\L@FuzzySoftCompare#1#2{% \L@SoftCompare{#1}{#2}\ifL@Equal\else\L@SoftCompare{#1}{ #2}\fi} \def\L@Ignore#1\end{} \newif\ifL@HasEqualSign \def\L@HasEqualSign#1{% \L@HasEqualSignfalse\L@HES#1\end} \def\L@HES#1{% \ifx#1=\L@HasEqualSigntrue\let\L@Next=\L@Ignore% \else\ifx#1\end\let\L@Next=\relax\else\let\L@Next=\L@HES\fi% \fi\L@Next} \def\L@ArName[#1]{\ifcase#1 L@Pattern\or L@Comma\or L@Last\or% L@First\or L@Second\or L@Dots\or L@List\else L@Other\fi} \def\L@Set[#1]=#2;{\global\expandafter\let\csname\L@ArName[#1]\endcsname=#2} \def\L@Get[#1]{\csname\L@ArName[#1]\endcsname} \@ifpackageloaded{amsmath} {\def\L@Ldots{\dotsc}\def\L@Cdots{\dotsb}} {\def\L@Ldots{\ldots}\def\L@Cdots{\cdots}} \newif\ifL@Start \def\L@Map#1#2#3{% \def\L@Sym{\empty}\def\LM@Func{#1}\def\L@Sep{#3}% \L@Starttrue\expandafter\L@Iterate#2,\end} \def\L@Iterate#1,#2{% \LM@Func{#1}% \ifx#2\end\let\L@Next=\relax\def\L@Nextarg{\empty}% \else\L@Sep\let\L@Next=\L@Iterate\def\L@Nextarg{#2}\fi% \expandafter\L@Next\L@Nextarg} \def\L@GetKeyValue#1{% \def\L@Key{}\def\L@Value{}\L@HasEqualSign{#1}% \ifL@HasEqualSign\L@GetKV#1\end% \else\def\L@Key{}\def\L@Value{#1}% \fi} \def\L@GetKV#1=#2\end{% \def\L@Key{#1}\def\L@Value{#2}} \newcount\L@idx \def\L@Parse#1{\L@idx=0% \L@FuzzySoftCompare{#1}{}% \ifL@Equal\else\def\L@Extra{}\L@PRS#1,\end,\fi} \def\L@PRS#1,{% \L@SoftCompare{#1}{\end}\ifL@Equal% \let\L@Next=\relax% \else% \L@FuzzySoftCompare{#1}{}\ifL@Equal% \ifnum\L@idx<7% \ifcase\the\L@idx% \def\L@Default{\i}% \or\def\L@Default{,}% \or\def\L@Default{n}% \or\def\L@Default{1}% \or\def\L@Default{2}% \or\def\L@Default{}% \or\def\L@Default{}% \fi% \L@Set[\the\L@idx]=\L@Default;% \advance \L@idx by 1% \fi% \else% \L@GetKeyValue{#1}\let\L@CV=\L@Value% \L@FuzzyCompare{\L@Key}{p}\ifL@Equal\L@idx=1\L@Set[0]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{c}\ifL@Equal\L@idx=2\L@Set[1]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{n}\ifL@Equal\L@idx=3\L@Set[2]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{1}\ifL@Equal\L@idx=4\L@Set[3]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{2}\ifL@Equal\L@idx=5\L@Set[4]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{d}\ifL@Equal\L@idx=6\L@Set[5]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{l}\ifL@Equal\L@idx=7\L@Set[6]=\L@CV;% \else\L@FuzzyCompare{\L@Key}{}\ifL@Equal% \ifnum\L@idx<7% \L@Set[\the\L@idx]=\L@CV;% \fi% \advance \L@idx by 1% \fi\fi\fi\fi\fi\fi\fi\fi\fi% \let\L@Next=\L@PRS% \fi% \L@Next} \newif\ifL@FoundFirst \newcommand{\lmake}[1][]{% \begingroup% \L@Parse{p=\i,c={,},d=,1=1,2=2,n=n,l=}% \L@Parse{#1}% \def\L@Func##1{\def\i{##1}\L@Get[0]}% \L@Compare{\L@Dots}{\empty}\ifL@Equal% \L@Compare{\L@Comma}{,}\ifL@Equal% \def\L@Dots{\L@Ldots}\else\def\L@Dots{\L@Cdots}% \fi \fi \L@Compare{\L@List}{\empty}\ifL@Equal% \L@FoundFirstfalse% \L@Compare{\L@First}{\empty}\ifL@Equal\else% \L@Func{\L@First}\L@FoundFirsttrue% \fi% \L@Compare{\L@Second}{\empty}\ifL@Equal\else% \ifL@FoundFirst\L@Comma\fi% \L@Func{\L@Second}\L@FoundFirsttrue% \fi% \L@Compare{\L@Dots}{\empty}\ifL@Equal\else% \ifL@FoundFirst\L@Comma\fi\L@Dots% \fi% \L@Compare{\L@Last}{\empty}\ifL@Equal\else% \L@Comma\L@Func{\L@Last}% \fi% \else% \L@Map{\L@Func}{\L@List}{\L@Comma}% \fi% \endgroup} \def\L@CmdName#1{% \if\noexpand#1\noexpand\L@anycmd\expandafter\L@StripFirst\string#1\else#1\fi} \def\L@StripFirst#1#2{#2} \def\lcmd#1#2#3{% \def\L@MakeCmd##1{% \expandafter\def\csname #2\L@CmdName##1\endcsname{#1{##1}}}% \L@Map{\L@MakeCmd}{#3}{}} \endinput %% %% End of file `lmake.sty'.