From 1204f24aa0cc8a8f72ce5ecffa8b1f35480e6e6d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 22 Apr 2020 20:51:16 +0000 Subject: willowtreebook (22apr20) git-svn-id: svn://tug.org/texlive/trunk@54839 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/willowtreebook/README | 20 + .../texmf-dist/doc/latex/willowtreebook/willow.jpg | Bin 0 -> 10482937 bytes .../doc/latex/willowtreebook/willowtreebook.bib | 11 + .../doc/latex/willowtreebook/willowtreebook.pdf | Bin 0 -> 13965747 bytes .../doc/latex/willowtreebook/willowtreebook.tex | 99 ++++ .../tex/latex/willowtreebook/willowtreebook.cls | 618 +++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 3 +- Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/willowtreebook.tlpsrc | 0 9 files changed, 751 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/willowtreebook/README create mode 100644 Master/texmf-dist/doc/latex/willowtreebook/willow.jpg create mode 100644 Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.bib create mode 100644 Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.pdf create mode 100644 Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.tex create mode 100644 Master/texmf-dist/tex/latex/willowtreebook/willowtreebook.cls create mode 100644 Master/tlpkg/tlpsrc/willowtreebook.tlpsrc diff --git a/Master/texmf-dist/doc/latex/willowtreebook/README b/Master/texmf-dist/doc/latex/willowtreebook/README new file mode 100644 index 00000000000..fa86ae90f3f --- /dev/null +++ b/Master/texmf-dist/doc/latex/willowtreebook/README @@ -0,0 +1,20 @@ +Willow Tree Book Class +v1.0 +22 April 2020 + +Authors: +Ben McKay + +Maintainer: +Ben McKay + +E-mail: +b.mckay@ucc.ie + +Licence: +Released under the LaTeX Project Public License v1.3c or later. +See http://www.latex-project.org/lppl.txt + +The willowtreebook class is a simple book class, which I use for lecture notes. +It actually just selects options for the more sophisticated memoir class. + diff --git a/Master/texmf-dist/doc/latex/willowtreebook/willow.jpg b/Master/texmf-dist/doc/latex/willowtreebook/willow.jpg new file mode 100644 index 00000000000..1bbbd17e752 Binary files /dev/null and b/Master/texmf-dist/doc/latex/willowtreebook/willow.jpg differ diff --git a/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.bib b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.bib new file mode 100644 index 00000000000..d7c1c37f406 --- /dev/null +++ b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.bib @@ -0,0 +1,11 @@ +@book {Homer:Iliad, + AUTHOR = {Homer}, + TITLE = {The {I}liad}, + EDITION = {Third}, + NOTE = {An epic poem in dactylic hexameter, translated from the Greek by A. Guy}, + PUBLISHER = {McHaw-Grill Book Co., New Cork}, + YEAR = {1978}, + PAGES = {xi+331}, + ISBN = {0-07-000657-1}, +} + diff --git a/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.pdf b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.pdf new file mode 100644 index 00000000000..b3a61d60a64 Binary files /dev/null and b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.pdf differ diff --git a/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.tex b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.tex new file mode 100644 index 00000000000..f284c8d7343 --- /dev/null +++ b/Master/texmf-dist/doc/latex/willowtreebook/willowtreebook.tex @@ -0,0 +1,99 @@ +\documentclass{willowtreebook} +\Title{The Willow Tree Book Class v1.0} +\Author{Benjamin \scotsMc{}Kay} +\Colophon{Released under the \LaTeX{} Public Project License 1.3c} +\BibliographyFile{willowtreebook} +\usepackage{fancyvrb} +\usepackage{inconsolata} +\begin{document} +\includegraphics[width=\textwidth]{willow-2.jpg}% +\chapter{Preface} +The Willow Tree Book class is a simplified derivative of the \verb!memoir! book class. +I use it for my lecture notes. +The document you are reading is in the Willow Tree Book class. +\afterpreface +\chapter{Use} +Here is a typical book using the Willow Tree Book class: +\begin{Verbatim}[frame=leftline] +\documentclass{willowtreebook} +\Title{Odyssey} +\Author{Homer} +\BibliographyFile{odyssey} + % The name of the .bib file, without file extension. +\begin{document} +\chapter{Preface} +This is the preface to my book. +\afterpreface +\chapter{We meet Odysseus} +Tell me, O muse, of that ingenious hero \dots +Thus spoke Minerva, and Ulysses obeyed her gladly. Then Minerva assumed +the form and voice of Mentor, and presently made a covenant of peace +between the two contending parties. +\par\bigskip\noindent +THE END + % End the document without loading the bibliography + % or the index, or the list of notation. +\end{document} +\end{Verbatim} +Compile with \verb!latex! or \verb!pdflatex!. +\chapter{Definitions, Problems and Theorems} +\section{Definitions} +We can define a term like \emph{hamster}\define{hamster}, or say that the term hamster appears again later\SubIndex{hamster}. +We add notation like when we use a variable called \(\omega\), we put it in the list of notation.\Notation{omega}{\omega}{A variable called $\omega$} +\begin{Verbatim}[frame=leftline] +\chapter{Definitions, Problems and Theorems} +\section{Definitions} +We can define a term like \emph{hamster}\define{hamster}, +or say that the term hamster appears again later\SubIndex{hamster}. +\end{Verbatim} +Compile, for a book called \verb!filename.tex!, with +\begin{Verbatim}[frame=leftline] + makeindex filename +\end{Verbatim} +We add notation like when we use a variable called \(\omega\), +we put it in the list of notation.% +\Notation{omega}{\omega}{A variable called $\omega$}. +If you use notation, compile with +\begin{Verbatim}[frame=leftline] + makeindex -s notation.gst -o not.gls not.glo +\end{Verbatim} +\section{Problems} +\begin{problem}{label.for.the.first.problem} +What is the point of your life? +\end{problem} +\begin{answer}{label.for.the.first.problem} +Your life is pointless. +\end{answer} +In problem~\ref{problem:label.for.the.first.problem}, we can clearly see ... +\begin{Verbatim}[frame=leftline] + % We add problems by: +\begin{problem}{label.for.the.first.problem} +What is the point of your life? +\end{problem} + % and answers by: +\begin{answer}{label.for.the.first.problem} +Your life is pointless. +\end{answer} +In problem~\ref{problem:label.for.the.first.problem}, we can clearly see ... +\end{Verbatim} +\chapter{Citations} +Our bibliography file looks like +\VerbatimInput[frame=leftline]{willowtreebook.bib} +We can cite works from the bibliography, like Homer~\cite{Homer:Iliad}, p. 12. +\begin{Verbatim}[frame=leftline] +We can cite works from the bibliography, like Homer~\cite{Homer:Iliad}, p. 12. +\end{Verbatim} +Compile with \verb!bibtex!. +\section{Theorems} +You have the usual theorem environments, like \texttt{amsthm}. +\begin{theorem}[Pythagoras] +In any triangle with sides of lengths \(a,b,c\), \(a^2+b^2=c^2\) just when the angle opposite the side of length \(c\) is a right angle. +\end{theorem} +\begin{Verbatim}[frame=leftline] +\begin{theorem}[Pythagoras] +In any triangle with sides of lengths \(a,b,c\), +\(a^2+b^2=c^2\) just when the angle opposite the +side of length \(c\) is a right angle. +\end{theorem} +\end{Verbatim} +\end{document} diff --git a/Master/texmf-dist/tex/latex/willowtreebook/willowtreebook.cls b/Master/texmf-dist/tex/latex/willowtreebook/willowtreebook.cls new file mode 100644 index 00000000000..61964a97fb9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/willowtreebook/willowtreebook.cls @@ -0,0 +1,618 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{willowtreebook}[2020/04/22 Willow Tree book LaTeX class v1.0] +\DeclareOption{ContainsChinese}{\def\ChineseTextInThisDocument{}} +\DeclareOption*{% +\PassOptionsToClass{\CurrentOption}{article}% +} +\ProcessOptions\relax + +\LoadClass{memoir} + +\RequirePackage{xparse} + +\def\emptystring{} + +\edef\mckaybook@title{\emptystring} +\edef\mckaybook@subtitle{\emptystring} +\edef\mckaybook@author{\emptystring} +\edef\mckaybook@bibliography{\emptystring} +\edef\mckaybook@colophon{This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.} + +\NewDocumentCommand\Title{m}{\global\def\mckaybook@title{#1}} +\NewDocumentCommand\Subtitle{m}{\global\def\mckaybook@subtitle{#1}} +\NewDocumentCommand\Author{m}{\global\def\mckaybook@author{#1}} +\NewDocumentCommand\BibliographyFile{m}{\global\def\mckaybook@bibliography{#1}} +\NewDocumentCommand\Colophon{m}{\global\def\mckaybook@colophon{#1}} + +% For handling names like Benjamin McKay, where the letter c should be raised up, type in as Benjamin \scotsMc{}Kay. +\makeatletter +\DeclareRobustCommand{\scotsMc}{\scotsMcx{c}} +\DeclareRobustCommand{\scotsMC}{\scotsMcx{\textsc{c}}} +\DeclareRobustCommand{\scotsMcx}[1]{% + M% + \raisebox{\dimexpr\fontcharht\font`M-\height}{% + \check@mathfonts\fontsize{\sf@size}{0}\selectfont + \kern.3ex\underline{\kern-.3ex #1\kern-.3ex}\kern.3ex + }% +} +\expandafter\def\expandafter\@uclclist\expandafter{% + \@uclclist\scotsMc\scotsMC +} +\makeatother + +\RequirePackage{etex} +\RequirePackage{newunicodechar} +\RequirePackage[utf8]{inputenc} % Default input file encoding +\ifdefined\ChineseTextInThisDocument +\RequirePackage{CJKutf8} +\let\I\relax +\NewDocumentCommand\Chinese{m}{\begin{CJK*}{UTF8}{gbsn}#1\end{CJK*}} +\else +\fi + +\RequirePackage[T1]{fontenc} +\RequirePackage{lmodern} +\RequirePackage{isomath} +\RequirePackage[tt=lining]{cfr-lm} +\RequirePackage[mathscr]{eucal} +\RequirePackage[% +activate={true,nocompatibility},% +final,% +tracking=true,% +kerning=true,% +spacing=true,% +factor=1100,% +stretch=10,% +shrink=10]{microtype} +\microtypecontext{spacing=nonfrench} +\usepackage{embrac} % fixes parentheses and brackets in italic text. +\RequirePackage{amsmath} +\RequirePackage{amsthm} +\RequirePackage{amssymb} +\RequirePackage{braket} +\RequirePackage{mathtools} +\mathtoolsset{showonlyrefs,showmanualtags,centercolon,mathic} + +% If we need more room between rows of matrices and arrays, we can write +% \begin{pmatrix}[1.5] +% instead of +% \begin{pmatrix} +\makeatletter +\RenewDocumentCommand\env@matrix{O{\arraystretch}} +{% +\edef\arraystretch{#1}% + \hskip -\arraycolsep + \let\@ifnextchar\new@ifnextchar + \array{*\c@MaxMatrixCols c} +}% +\makeatother +\NewDocumentCommand\tallmatrix{}{1.5} + +\RequirePackage{varioref} +\RequirePackage{longtable} +\RequirePackage{multicol} +\setmarginnotes{2em}{3cm}{.5cm} + +% Indices +\newcommand{\NotationIndexName}{List of notation} +\makeindex +\makeglossary[not] +\changeglossnum[not]{\thepage} +\changeglossnumformat[not]{|hyperpage} +\renewcommand*{\glossaryname}{\NotationIndexName} +\renewcommand*{\glossarymark}{\markboth{\glossaryname}{}} +\renewcommand{\begintheglossaryhook} +{% +\begin{longtable}[c]{lp{9cm}}% +\endfirsthead% +\endhead% +\endfoot% +\endlastfoot% +}% +\renewcommand{\atendtheglossaryhook} +{% +\end{longtable}% +}% +\renewcommand{\glossitem}[4]{#1 & #2, #4 \\[4pt]} +\renewcommand{\glossaryspace}{} +\newcommand{\paddedpagenumber}% +% Returns the current page number, zero padded, +% so page 3 is 003, page 12 is 012, page 101 is 101 +{%% +\ifnum\value{page}<100 0\fi% +\ifnum\value{page}<10 0\fi% +\arabic{page}% +}%% + +\newcounter{howmany@notation} +\setcounter{howmany@notation}{0} +\newcommand{\Notation}[3]%% +%%use: \Notation{Nonmathmode token for comparing}{math mode expression}{description} +{\glossary[not](\paddedpagenumber){\(#2\)}{#3}% +\stepcounter{howmany@notation}% +} + +\newcounter{howmany@indexentries} +\setcounter{howmany@indexentries}{0} +\newcommand{\SubIndex}[1]% +{% +\stepcounter{howmany@indexentries}% +\index{#1}% +}% +% There is a serious problem with Notation. You can't +% use absolute value signs or floor or ceiling signs anywhere. Replace them +% with the following: +\newcommand{\leftAbs}{\left"|} +\newcommand{\rightAbs}{\right"|} +\newcommand{\leftDoubleAbs}{"| "| } +\newcommand{\rightDoubleAbs}{"| "| } +\newcommand{\normNotation}[1]{\leftDoubleAbs#1\rightDoubleAbs} +\newcommand{\orderForNotationIndex}[1]{\leftAbs{#1}\rightAbs} +\newcommand{\lengthForNotationIndex}[1]{\leftDoubleAbs{#1}\rightDoubleAbs} +\newcommand{\normForNotationIndex}[1]{\leftDoubleAbs{#1}\rightDoubleAbs} +\newcommand{\lcl}{ +\rule[-2.5pt]{.4pt}{1em} +\rule[6.4pt]{2pt}{.4pt} +} +\newcommand{\rcl}{ +\rule[6.4pt]{2pt}{.4pt} +\rule[-2.5pt]{.4pt}{1em} +} +\newcommand{\lflr}{ +\rule[-2.5pt]{.4pt}{1em} +\rule[-2.5pt]{2pt}{.4pt} +} +\newcommand{\rflr}{ +\rule[-2.5pt]{2pt}{.4pt} +\rule[-2.5pt]{.4pt}{1em} +} +\newcommand{\ceilForNotationIndex}[1]{\lcl{#1}\rcl} +\newcommand{\floorForNotationIndex}[1]{\lflr{#1}\rflr} + +% For the subject index: +% Example: +% \define{interest rate} +% puts into the Subject index a reference +% to the current page saying that this is +% where the term ``interest rate'' is defined. +\newcommand{\FancyIndexEntry}[1]{\emph{\textbf{\hyperpage{#1}}}} +\newcommand{\define}[1] +{% +\stepcounter{howmany@indexentries}% +\index{#1|FancyIndexEntry}% +}% +%% PDF Output +\ifpdf + \pdfoutput=1 + \makeatletter + \RequirePackage[plainpages=false, + hyperfigures, + pdftitle={\mckaybook@title}, + pdfauthor={\mckaybook@author}, + colorlinks=true, + pdfpagelabels=true, + bookmarksnumbered, + hidelinks, + pagebackref, + pdftex] + {hyperref} + \makeatother + \RequirePackage{memhfixc} +% Hyperref uses very bright colours to highlight links. Change them: + \RequirePackage[svgnames]{xcolor} + \definecolor{dark-red}{rgb}{0.4,0.15,0.15} + \definecolor{dark-blue}{rgb}{0.15,0.15,0.4} + \definecolor{medium-blue}{rgb}{0,0,0.5} + \hypersetup{ + colorlinks, linkcolor={dark-red}, + citecolor={dark-blue}, urlcolor={medium-blue} + } +\fi + +\newcommand{\idxmark}[1]{#1\markboth{#1}{#1}} +\newcommand{\doidxbookmark}[1]{{\def\@tempa{Symbols}\def\@tempb{#1}% +\ifx\@tempa\@tempb % +Analphabetics +\phantomsection% +\pdfbookmark[0]{Analphabetics}{Analphabetics-idx}% +\else +#1% +\phantomsection% +\pdfbookmark[0]{#1}{#1-idx}% +\fi% +\vskip\onelineskip\par}} + +\newcommand\doglobookmark[1]{% +}% + +%......Figures +\newcommand{\stdFigSize}{1in} +\newsubfloat{figure} % Memoir class, instead of subfigure class. +\let\subfigure\subbottom +\newcommand{\subfigcapskip}{3em} +\setfloatadjustment{figure}{\scriptsize\centering} +\setfloatadjustment{marginfigure}{\scriptsize\centering} +\setmpjustification{\scriptsize\RaggedLeft}{\scriptsize\RaggedRight} +\captionnamefont{\scriptsize} +\captiontitlefont{\scriptsize} +\newcommand{\heading}{\sffamily} + +\newcommand{\chapterSummary}[1]{{\small{#1}}\vspace{0.5cm}\par\noindent} + +\makechapterstyle{bobo}{% +\aliaspagestyle{part}{empty} +\renewcommand{\partnamefont}{\raggedleft\normalfont\huge\heading} +\renewcommand{\partnumfont}{\normalfont\huge\heading} +\renewcommand{\printpartnum}{} +\renewcommand{\partname}{} +\renewcommand*{\parttitlefont}{\huge\heading} +\setlength{\beforechapskip}{0pt} +\renewcommand*{\chapnamefont}{\large\centering} +\renewcommand*{\chapnumfont}{\large} +\renewcommand*{\printchapternonum}{% +\vphantom{\printchaptername}% +\vphantom{\chapnumfont 1}% +\afterchapternum} +\renewcommand*{\chaptitlefont}{\Large\heading} +\renewcommand*{\printchaptertitle}[1]{% +\centering\smallcolouredbox\chaptitlefont ##1}} + +\chapterstyle{bobo} + +\setsecheadstyle{\large\heading\raggedright} +\setsubsecheadstyle{\heading\raggedright} +\setsubsubsecheadstyle{\heading\raggedright} +\setheadfoot{2\onelineskip}{3\onelineskip} + +\newcommand{\optionalSection}[1]% +{%% +\section{#1} +{\small{This section can be omitted without loss of continuity.}}% +\medskip\par\noindent% +}%% + +%......Table of contents +% depth of numbering of sectioning commands: +\setsecnumdepth{chapter} +\maxsecnumdepth{chapter} +%% depth of table of contents: +\setcounter{tocdepth}{0} + +\RenewDocumentCommand\cftpartfont{}{\heading\small} +\RenewDocumentCommand\cftpartpagefont{}{\normalfont\small} + +\RenewDocumentCommand\cftchapterfont{}{\heading\small} +\RenewDocumentCommand\cftchapterpagefont{}{\normalfont\small} + +\setlength{\cftbeforechapterskip}{3pt} +\RenewDocumentCommand\cftchapterleader{}{\quad} +\setpnumwidth{1em} +\RenewDocumentCommand\cftchapterafterpnum{}{\cftparfillskip} + +\setlength{\cftbeforepartskip}{10pt} +\RenewDocumentCommand\cftpartleader{}{\quad} +\setpnumwidth{1em} +\RenewDocumentCommand\cftpartafterpnum{}{\cftparfillskip} + + +%......Title page +\pretitle{\begin{center}\HUGE} +\posttitle{\end{center}} +\preauthor{\vspace{2cm}\begin{center}} +\postauthor{\end{center}} +\predate{\begin{center}} +\postdate{\end{center}} + +\usepackage{tcolorbox} +\tcbuselibrary{breakable} +\tcbuselibrary{skins} + +%......Theorem Styles +%\newtheoremstyle{RegularStyle}% name +% {}% Space above, empty = `usual value' +% {}% Space below +% {\normalfont}% Body font +% {}% Indent amount (empty = no indent, \parindent = para indent) +% {\normalfont\scshape}% Thm head font +% {.}% Punctuation after thm head +% {.5em}% Space after thm head: " " = normal interword space; +% % \newline = linebreak +% {} % {\thmnote{#3}}% Thm head spec +%\theoremstyle{RegularStyle} +%{% +\newtheorem{theorem}{Theorem}[chapter] +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{proposition}[theorem]{Proposition} + +\colorlet{exampleBackgroundColour}{gray!16} + +\newtcolorbox{example}{% +enhanced,% +breakable,% +colback=gray!16,% +colframe=gray!22,% +leftrule=1.4pt,% +toprule=1.4pt,% +bottomrule=1.4pt,% +rightrule=1.4pt,% +arc=3mm,% +before upper={\parindent15pt\noindent}% +} +\newenvironment{exampleAndImage}[1]% +{% +\begin{tcolorbox}[enhanced,% +breakable,% +colback=gray!16,% +colframe=gray!22,% +leftrule=1.4pt,% +toprule=1.4pt,% +bottomrule=1.4pt,% +rightrule=1.4pt,% +arc=3mm,% +sidebyside,% +lower separated=false,% +righthand width=#1,% +before upper={\parindent15pt\noindent}% +]% +}% +{% +\end{tcolorbox}% +}% +\NewDocumentEnvironment{examples}{}{% +\begin{example}% +\begin{itemize}}% +{\end{itemize}% +\end{example}} + +% In the middle of an example, the background color is not white. If you need a white background to put an image on it, it looks best to use an imageborderinexample. +\definecolor{image-border-color}{gray}{.975} +\NewDocumentCommand\imageborderinexample{m}{\begin{center}\tcbox[colframe=image-border-color, colback=white] +{#1}\end{center}} +\NewDocumentCommand\includegraphicsinexample{om}% +{\IfValueTF{#1}{\imageborderinexample{\includegraphics[#1]{#2}}}{\imageborderinexample{\includegraphics{#2}}}} +\NewDocumentCommand\inputinexample{m}{\imageborderinexample{\input{#1}}} + + +%......Problems +% To define a new problem, use: +% \begin{problem}{