From 05ca26c2133715f37d5c4a2ee829248b56561f62 Mon Sep 17 00:00:00 2001 From: Louis Burke Date: Sat, 18 Jan 2025 21:13:27 -0500 Subject: [PATCH] Initial commit --- .gitignore | 14 ++++++++ Makefile | 35 +++++++++++++++++++ README.md | 0 l4.idx | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++ pre2dtx.awk | 12 +++++++ 5 files changed, 160 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 l4.idx create mode 100755 pre2dtx.awk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4772cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +*.pdf +*.cls +*.aux +*.dtx +*.fls +*.glo +*.gls +*.hd +*.ilg +*.ind +*.ins +*.log +*.out +*.pre diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..28382e9 --- /dev/null +++ b/Makefile @@ -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) + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/l4.idx b/l4.idx new file mode 100644 index 0000000..4584156 --- /dev/null +++ b/l4.idx @@ -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} diff --git a/pre2dtx.awk b/pre2dtx.awk new file mode 100755 index 0000000..837040e --- /dev/null +++ b/pre2dtx.awk @@ -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; +}