Initial commit

This commit is contained in:
Louis Burke 2025-01-18 21:13:27 -05:00
commit 05ca26c213
5 changed files with 160 additions and 0 deletions

14
.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
*.pdf
*.cls
*.aux
*.dtx
*.fls
*.glo
*.gls
*.hd
*.ilg
*.ind
*.ins
*.log
*.out
*.pre

35
Makefile Normal file
View file

@ -0,0 +1,35 @@
NAME = l4
SHELL = bash
PWD = $(shell pwd)
VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
all: $(NAME).pdf
test -e README.txt && mv README.txt README || exit 0
$(NAME).dtx: $(NAME).pre
./pre2dtx.awk < $(NAME).pre > $(NAME).dtx
$(NAME).pdf: $(NAME).dtx
pdflatex -shell-escape -recorder -interaction=batchmode $(NAME).dtx >/dev/null
if [ -f $(NAME).glo ]; then makeindex -q -s gglo.ist -o $(NAME).gls $(NAME).glo; fi
if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
pdflatex --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
pdflatex --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
clean:
rm -f $(NAME).{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out}
distclean: clean
rm -f $(NAME).{pdf,cls} README
inst: all
mkdir -p $(UTREE)/{tex,source,doc}/latex/$(NAME)
cp $(NAME).dtx $(UTREE)/source/latex/$(NAME)
cp $(NAME).cls $(UTREE)/tex/latex/$(NAME)
cp $(NAME).pdf $(UTREE)/doc/latex/$(NAME)
install: all
sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME)
sudo cp $(NAME).dtx $(LOCAL)/source/latex/$(NAME)
sudo cp $(NAME).cls $(LOCAL)/tex/latex/$(NAME)
sudo cp $(NAME).pdf $(LOCAL)/doc/latex/$(NAME)
zip: all
ln -sf . $(NAME)
zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)/{README,$(NAME).{pdf,dtx}}
rm $(NAME)

0
README.md Normal file
View file

99
l4.idx Normal file
View file

@ -0,0 +1,99 @@
\indexentry{LoadClass=\verb!*+\LoadClass+|hdclindex{1}{code}}{1}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{2}{code}}{2}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{3}{code}}{3}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{4}{code}}{4}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{5}{code}}{5}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{6}{code}}{6}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{7}{code}}{7}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{8}{code}}{8}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{9}{code}}{9}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{10}{code}}{10}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{11}{code}}{11}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{12}{code}}{12}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{13}{code}}{13}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{14}{code}}{14}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{15}{code}}{15}
\indexentry{defaultfontfeatures=\verb!*+\defaultfontfeatures+|hdclindex{16}{code}}{16}
\indexentry{RequirePackage=\verb!*+\RequirePackage+|hdclindex{17}{code}}{17}
\indexentry{definecolor=\verb!*+\definecolor+|hdclindex{18}{code}}{18}
\indexentry{titleformat=\verb!*+\titleformat+|hdclindex{20}{code}}{20}
\indexentry{paragraph=\verb!*+\paragraph+|hdclindex{20}{code}}{20}
\indexentry{normalfont=\verb!*+\normalfont+|hdclindex{20}{code}}{20}
\indexentry{normalsize=\verb!*+\normalsize+|hdclindex{20}{code}}{20}
\indexentry{bfseries=\verb!*+\bfseries+|hdclindex{20}{code}}{20}
\indexentry{theparagraph=\verb!*+\theparagraph+|hdclindex{20}{code}}{20}
\indexentry{titlespacing=\verb!*+\titlespacing+|hdclindex{21}{code}}{21}
\indexentry{paragraph=\verb!*+\paragraph+|hdclindex{21}{code}}{21}
\indexentry{let=\verb!*+\let+|hdclindex{23}{code}}{23}
\indexentry{rawauthor=\verb!*+\rawauthor+|hdclindex{23}{code}}{23}
\indexentry{author=\verb!*+\author+|hdclindex{23}{code}}{23}
\indexentry{renewcommand=\verb!*+\renewcommand+|hdclindex{24}{code}}{24}
\indexentry{author=\verb!*+\author+|hdclindex{24}{code}}{24}
\indexentry{rawauthor=\verb!*+\rawauthor+|hdclindex{24}{code}}{24}
\indexentry{color=\verb!*+\color+|hdclindex{24}{code}}{24}
\indexentry{let=\verb!*+\let+|hdclindex{26}{code}}{26}
\indexentry{rawtitle=\verb!*+\rawtitle+|hdclindex{26}{code}}{26}
\indexentry{title=\verb!*+\title+|hdclindex{26}{code}}{26}
\indexentry{renewcommand=\verb!*+\renewcommand+|hdclindex{27}{code}}{27}
\indexentry{title=\verb!*+\title+|hdclindex{27}{code}}{27}
\indexentry{thetitle=\verb!*+\thetitle+|hdclindex{27}{code}}{27}
\indexentry{version=\verb!*+\version+|hdclindex{29}{code}}{29}
\indexentry{theversion=\verb!*+\theversion+|hdclindex{29}{code}}{29}
\indexentry{date=\verb!*+\date+|hdclindex{30}{code}}{30}
\indexentry{color=\verb!*+\color+|hdclindex{30}{code}}{30}
\indexentry{today=\verb!*+\today+|hdclindex{30}{code}}{30}
\indexentry{titlepic=\verb!*+\titlepic+|hdclindex{31}{code}}{31}
\indexentry{logo=\verb!*+\logo+|hdclindex{31}{code}}{31}
\indexentry{pagestyle=\verb!*+\pagestyle+|hdclindex{32}{code}}{32}
\indexentry{rfoot=\verb!*+\rfoot+|hdclindex{33}{code}}{33}
\indexentry{thepage=\verb!*+\thepage+|hdclindex{33}{code}}{33}
\indexentry{lfoot=\verb!*+\lfoot+|hdclindex{34}{code}}{34}
\indexentry{hyperref=\verb!*+\hyperref+|hdclindex{34}{code}}{34}
\indexentry{renewcommand=\verb!*+\renewcommand+|hdclindex{35}{code}}{35}
\indexentry{footrulewidth=\verb!*+\footrulewidth+|hdclindex{35}{code}}{35}
\indexentry{cfoot=\verb!*+\cfoot+|hdclindex{36}{code}}{36}
\indexentry{makeindex=\verb!*+\makeindex+|hdclindex{37}{code}}{37}
\indexentry{AtBeginDocument=\verb!*+\AtBeginDocument+|hdclindex{39}{code}}{39}
\indexentry{rawtitle=\verb!*+\rawtitle+|hdclindex{40}{code}}{40}
\indexentry{color=\verb!*+\color+|hdclindex{40}{code}}{40}
\indexentry{thetitle=\verb!*+\thetitle+|hdclindex{40}{code}}{40}
\indexentry{!\=\verb!*+!\!\+|hdclindex{40}{code}}{40}
\indexentry{large=\verb!*+\large+|hdclindex{40}{code}}{40}
\indexentry{theversion=\verb!*+\theversion+|hdclindex{40}{code}}{40}
\indexentry{newpagecolor=\verb!*+\newpagecolor+|hdclindex{42}{code}}{42}
\indexentry{pagenumbering=\verb!*+\pagenumbering+|hdclindex{43}{code}}{43}
\indexentry{maketitle=\verb!*+\maketitle+|hdclindex{44}{code}}{44}
\indexentry{clearpage=\verb!*+\clearpage+|hdclindex{46}{code}}{46}
\indexentry{restorepagecolor=\verb!*+\restorepagecolor+|hdclindex{47}{code}}{47}
\indexentry{tableofcontents=\verb!*+\tableofcontents+|hdclindex{49}{code}}{49}
\indexentry{label=\verb!*+\label+|hdclindex{49}{code}}{49}
\indexentry{clearpage=\verb!*+\clearpage+|hdclindex{51}{code}}{51}
\indexentry{setcounter=\verb!*+\setcounter+|hdclindex{53}{code}}{53}
\indexentry{pagenumbering=\verb!*+\pagenumbering+|hdclindex{54}{code}}{54}
\indexentry{AtEndDocument=\verb!*+\AtEndDocument+|hdclindex{57}{code}}{57}
\indexentry{printindex=\verb!*+\printindex+|hdclindex{58}{code}}{58}
\indexentry{setlength=\verb!*+\setlength+|hdclindex{62}{code}}{60}
\indexentry{fboxsep=\verb!*+\fboxsep+|hdclindex{62}{code}}{60}
\indexentry{definition=\verb!*+\definition+|hdclindex{63}{code}}{61}
\indexentry{noindent=\verb!*+\noindent+|hdclindex{63}{code}}{61}
\indexentry{vskip=\verb!*+\vskip+|hdclindex{63}{code}}{61}
\indexentry{fbox=\verb!*+\fbox+|hdclindex{63}{code}}{61}
\indexentry{textbf=\verb!*+\textbf+|hdclindex{63}{code}}{61}
\indexentry{index=\verb!*+\index+|hdclindex{63}{code}}{61}
\indexentry{MakeLowercase=\verb!*+\MakeLowercase+|hdclindex{63}{code}}{61}
\indexentry{vskip=\verb!*+\vskip+|hdclindex{63}{code}}{61}
\indexentry{definition=\verb!*+\definition+|hdclindex{61}{usage}}{2}
\indexentry{begin=\verb!*+\begin+|hdclindex{67}{code}}{63}
\indexentry{begin=\verb!*+\begin+|hdclindex{67}{code}}{63}
\indexentry{ttfamily=\verb!*+\ttfamily+|hdclindex{67}{code}}{63}
\indexentry{textwidth=\verb!*+\textwidth+|hdclindex{67}{code}}{63}
\indexentry{end=\verb!*+\end+|hdclindex{68}{code}}{64}
\indexentry{end=\verb!*+\end+|hdclindex{68}{code}}{64}
\indexentry{hlc=\verb!*+\hlc+|hdclindex{71}{code}}{65}
\indexentry{sethlcolor=\verb!*+\sethlcolor+|hdclindex{71}{code}}{65}
\indexentry{hl=\verb!*+\hl+|hdclindex{71}{code}}{65}
\indexentry{mbox=\verb!*+\mbox+|hdclindex{71}{code}}{65}
\indexentry{endinput=\verb!*+\endinput+|hdclindex{72}{code}}{66}
\indexentry{rawcode={\ttfamily rawcode} (env.)|hdclindex{65}{usage}}{3}
\indexentry{environments:>rawcode={\ttfamily rawcode}|hdclindex{65}{usage}}{3}
\indexentry{hlc=\verb!*+\hlc+|hdclindex{70}{usage}}{3}

12
pre2dtx.awk Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/awk -f
/^@{/ { protect=1; print "% \\begin{macrocode}"; next }
/^}@/ { protect=0; print "% \\end{macrocode}"; next }
/^#{/ { protect=1; next }
/^}#/ { protect=0; next }
{ if (protect) { print; next }
sub(/~.*/,"",$0);
gsub(/!{/,"\\iffalse",$0);
gsub(/}!/,"\\fi",$0);
if (!match($0, /^[[:blank:]]*$/)) print "%" $0;
}