summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/perfectcut
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-11-03 21:51:47 +0000
committerKarl Berry <karl@freefriends.org>2014-11-03 21:51:47 +0000
commit7e74ffe0a9d51ecf26ee0aeb73493379770d5193 (patch)
tree9c66331d0b77d73c13cef9777e868be5f5c0a241 /Master/texmf-dist/doc/latex/perfectcut
parent1eb688970a12dae5a86ed7968609be77d742488a (diff)
perfectcut (3nov14)
git-svn-id: svn://tug.org/texlive/trunk@35501 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/perfectcut')
-rw-r--r--Master/texmf-dist/doc/latex/perfectcut/README47
-rw-r--r--Master/texmf-dist/doc/latex/perfectcut/perfectcut.pdfbin97135 -> 163054 bytes
-rw-r--r--Master/texmf-dist/doc/latex/perfectcut/perfectcut.tex297
3 files changed, 236 insertions, 108 deletions
diff --git a/Master/texmf-dist/doc/latex/perfectcut/README b/Master/texmf-dist/doc/latex/perfectcut/README
index 26e1f502afd..0c504fcacdb 100644
--- a/Master/texmf-dist/doc/latex/perfectcut/README
+++ b/Master/texmf-dist/doc/latex/perfectcut/README
@@ -1,29 +1,44 @@
-perfectcut.sty
+perfectcut.sty --- Nested delimiters that consistently grow regardless
+of the contents.
This package defines the command \perfectcut#1#2 which displays a
-bracket <#1||#2>. Its effect is to determine the size of the bracket
-depending on the number of nested \perfectcut (regardless of the
-contents). It is intended for use:
-- In proof theory, for term notations of sequent calculus,
-- In computer science, for the modeling of abstract machines.
+bracket <#1||#2>. Various delimiters are similarly defined. The effect
+of these commands is to let the delimiters grow according to the number
+of nested \perfectcommands (regardless of the size of the contents).
-This package also offers a reimplementation of \big, \bigg, etc. into
-arbitrary-size variants.
+The package is originally intended for solving a notational issue
+regarding the representation of abstract-machine-like calculi in proof
+theory and computer science. For general use, the package also defines
+commands for defining custom delimiters that behave in the same way.
+
+This package also offers a sound reimplementation of \big, \bigg, etc.
Release notes:
+ 2.0 11/14: * The package now offers general-purpose commands for
+ defining arbitrary nested delimiters that consistently
+ grow regardless of the contents (\perfectunary and
+ \perfectbinary)
+ * Added the behaviours CurrentHeight and
+ CurrentHeightPlusOne alongside the existing behaviour
+ IncreaseHeight.
+ * Added the stock commands \perfectcase, \perfectparens,
+ and \perfectbrackets intended for use in the context
+ of abstract-machine-like calculi.
+ 1.9b 05/14: added the option fixxits to fix vertical alignment with the
+ XITS math font.
1.9 02/14: added \perfectcut,\perfectbra,\perfectket; fixed bug with graphicx
- not being included; publication on CTAN
- 1.8 01/14: added documentation (no new feature)
- 1.7 11/13: added \cutangleouterskip
- 1.6 10/13: new commands \cutbraprimitive and \cutketprimitive
+ not being included; publication on CTAN.
+ 1.8 01/14: added documentation (no new feature).
+ 1.7 11/13: added \cutangleouterskip.
+ 1.6 10/13: new commands \cutbraprimitive and \cutketprimitive.
1.5 09/13: possible to disable mathstyle (option nomathstyle, see
- the warning below)
+ the warning below).
1.4 08/13: possible to choose between \vert\vert and \Vert (option realVert)
- (\cutinterbarskip is used only with the former)
- 1.3 08/13: fixes the alignment of angles with the math axis
- 1.2 06/13: first public release
+ (\cutinterbarskip is used only with the former).
+ 1.3 08/13: fixes the alignment of angles with the math axis.
+ 1.2 06/13: first public release.
Author: Guillaume Munch-Maccagnoni
diff --git a/Master/texmf-dist/doc/latex/perfectcut/perfectcut.pdf b/Master/texmf-dist/doc/latex/perfectcut/perfectcut.pdf
index ce9750140b9..21ae2e2bb73 100644
--- a/Master/texmf-dist/doc/latex/perfectcut/perfectcut.pdf
+++ b/Master/texmf-dist/doc/latex/perfectcut/perfectcut.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/perfectcut/perfectcut.tex b/Master/texmf-dist/doc/latex/perfectcut/perfectcut.tex
index 7744bd007ed..64b2421f9c2 100644
--- a/Master/texmf-dist/doc/latex/perfectcut/perfectcut.tex
+++ b/Master/texmf-dist/doc/latex/perfectcut/perfectcut.tex
@@ -3,7 +3,7 @@
%%%
%%% Author: Guillaume Munch-Maccagnoni
%%% http://www.pps.univ-paris-diderot.fr/~munch/
-%%%
+%%%
%%% This work may be distributed and/or modified under the conditions of
%%% the LaTeX Project Public License, either version 1.3 of this license
%%% or (at your option) any later version. Refer to the README file.
@@ -12,40 +12,45 @@
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setcounter{secnumdepth}{1}
+\setcounter{tocdepth}{1}
\usepackage{babel}
+\usepackage{array}
\usepackage{booktabs}
\usepackage{calc}
\usepackage{amsmath}
\usepackage[unicode=true]{hyperref}
-
-\makeatletter
-
\usepackage{perfectcut}
-%% NewTXtext with a bugfix
-\let\orig@makefnmark=\@makefnmark
-\usepackage{newtxtext}
-\let\@makefnmark=\orig@makefnmark
-%%End of bugfix
-
-\usepackage[T1]{fontenc}
-\usepackage{newtxmath}
+\usepackage{stix}
\renewcommand*\ttdefault{txtt}
\usepackage[oldstyle,lining,scale=0.97]{sourcesanspro}
\usepackage[protrusion=true,expansion=true,tracking=false,kerning=true,spacing=true]{microtype}
-\makeatother
-
\begin{document}
+\global\long\def\cut#1#2{\perfectcut{#1}{#2}}
+\global\long\def\mt{\bar{\mu}}
+
\title{\texttt{perfectcut.sty} documentation}
-\author{Guillaume Munch-Maccagnoni%
+
+
+\author{\noindent {\large{}Guillaume Munch-Maccagnoni}%
\thanks{\protect\href{http://www.pps.univ-paris-diderot.fr/~munch/}{http://www.pps.univ-paris-diderot.fr/$\sim$munch/}%
}}
-\date{January 31st 2014}
+
+
+\date{2nd November 2014}
+
\maketitle
+
+\tableofcontents{}
+
+
\section{Use}
+
+\paragraph{Original use}
+
This package supplies the following commands:
\begin{center}
@@ -57,87 +62,183 @@ Command & Produces\tabularnewline
\texttt{\textbackslash{}perfectbra\{\#1\}} & $\perfectbra{\#1}$\tabularnewline
\texttt{\textbackslash{}perfectket\{\#1\}} & $\perfectket{\#1}$\tabularnewline
\bottomrule
+\end{tabular}\quad{}%
+\begin{tabular}{ll}
+\toprule
+Command & Produces\tabularnewline
+\midrule
+\texttt{\textbackslash{}perfectcase\{\#1\}} & $\perfectcase{\#1}{\#2}$\tabularnewline
+\texttt{\textbackslash{}perfectbrackets\{\#1\}} & $\perfectbrackets{\#1}$\tabularnewline
+\texttt{\textbackslash{}perfectparens\{\#1\}} & $\perfectparens{\#1}$\tabularnewline
+\bottomrule
\end{tabular}
-\end{center}
+\par\end{center}
-The effect of the commands is to determine the size of the brackets
-depending on the number of nested \texttt{\textbackslash{}perfectcut}
-(regardless of the contents). It is intended for use:
-\begin{itemize}
-\item In proof theory, for term notations of sequent calculus,
-\item In computer science, for the modeling of abstract machines.
-\end{itemize}
-It could also be adapted for any visually similar effects as an alternative
-to \texttt{\textbackslash{}left}, \texttt{\textbackslash{}right} and
-\texttt{\textbackslash{}middle}. (You can contact the author.)
+The effect of these commands is to let the delimiters grow according
+to the number of nested \texttt{\textbackslash{}perfect}\texttt{\emph{command}}s
+(regardless of the size of contents). The package is originally intended
+for solving a notational issue regarding the representation of abstract-machine-like
+calculi in proof theory and computer science.
-If the package causes errors see the option \texttt{nomathstyle} below.
+\paragraph{General use}
+
+The package also defines \texttt{\textbackslash{}perfectunary} and
+\texttt{\textbackslash{}perfectbinary} for defining custom delimiters
+that behave similarly to the above ones. These commands should be considered when
+facing the need of nested delimiters that consistently grow regardless
+of the contents. (See ``Advanced Use''.)\medskip{}
+
+
+If the package causes incompatibility errors, refer to the option
+\texttt{nomathstyle} below.
-\section{Example}
-\def\mt{\tilde{\mu}}
+\section{Example}
-\noindent \texttt{\footnotesize{The following states the commutativity
-of a strong monad:}}~\\
-\texttt{\footnotesize{\textbackslash{}def\textbackslash{}mt\{\textbackslash{}tilde\{\textbackslash{}mu\}\}}}~\\
-\texttt{\footnotesize{\textbackslash{}{[}}}~\\
-\texttt{\footnotesize{\textbackslash{}cut t\{\textbackslash{}mt x.\textbackslash{}cut
-u\{\textbackslash{}mt y.\textbackslash{}cut ve\}\}}}~\\
-\texttt{\footnotesize{=\textbackslash{}cut u\{\textbackslash{}mt y.\textbackslash{}cut
-t\{\textbackslash{}mt x.\textbackslash{}cut ve\}\}}}~\\
-\texttt{\footnotesize{\textbackslash{}{]}}}~\\
-\texttt{\footnotesize{The following states the idempotency of an adjunction: }}~\\
-\texttt{\footnotesize{\textbackslash{}{[}}}~\\
-\texttt{\footnotesize{\textbackslash{}cut t\{\textbackslash{}mt x.\textbackslash{}cut\{\textbackslash{}mu\textbackslash{}alpha.\textbackslash{}cut
-ue\}\{e'\}\}}}~\\
-\texttt{\footnotesize{=\textbackslash{}cut\{\textbackslash{}mu\textbackslash{}alpha.\textbackslash{}cut
-t\{\textbackslash{}mt x.\textbackslash{}cut ue\}\}\{e'\}}}~\\
-\texttt{\footnotesize{\textbackslash{}{]}}}{\footnotesize \par}
\subsection{Using \texttt{perfectcut.sty}}
-\noindent \texttt{\footnotesize{\textbackslash{}usepackage\{perfectcut\}}}~\\
-\texttt{\footnotesize{\textbackslash{}let\textbackslash{}cut\textbackslash{}perfectcut}}{\footnotesize \par}
+\global\long\def\cut#1#2{\cutprimitive{#1}{#2}}
+
+
+\noindent \texttt{\footnotesize{}\textbackslash{}usepackage\{perfectcut\}}~\\
+\texttt{\footnotesize{}\textbackslash{}let\textbackslash{}cut\textbackslash{}perfectcut}{\footnotesize \par}
\begin{center}
-\framebox{\begin{minipage}[t]{0.8\columnwidth}%
-\let\cut\perfectcut
-The following states the commutativity of a strong monad:
-\[
-\cut t{\mt x.\cut u{\mt y.\cut ve}}=\cut u{\mt y.\cut t{\mt x.\cut ve}}
-\]
+\fbox{\begin{minipage}[t]{0.8\columnwidth}%
The following states the idempotency of an adjunction:
\[
\cut t{\mt x.\cut{\mu\alpha.\cut ue}{e'}}=\cut{\mu\alpha.\cut t{\mt x.\cut ue}}{e'}
\]
-%
+
+
+The following states the commutativity of a strong monad:
+\[
+\cut t{\mt x.\cut u{\mt y.\cut ve}}=\cut u{\mt y.\cut t{\mt x.\cut ve}}
+\]
+Using \texttt{\textbackslash{}underline} to mark redexes:
+\begin{align*}
+ & \delta(V,x.y,x.y)\\
+ & =\mu{\star}.\cut V{\perfectcase{\mt x.\underline{\cut y{\star}}}{\mt x.\underline{\cut y{\star}}}}\\
+ & =\mu{\star}.\cut V{\underline{\perfectcase{\mt x.\cut{\iota_{1}(x)}{\mt z.\cut y{\star}}}{\mt x.\cut{\iota_{2}(x)}{\mt z.\cut y{\star}}}}}\\
+ & =\mu{\star}.\cut V{\underline{\mt z.}\cut y{\star}}\\
+ & =\mu{\star}.\cut y{\star}=y
+\end{align*}
+ %
\end{minipage}}
-\end{center}
+\par\end{center}
\subsection{Using \texttt{\textbackslash{}left}, \texttt{\textbackslash{}middle}
and \texttt{\textbackslash{}right} instead}
-\noindent \texttt{\footnotesize{\textbackslash{}renewcommand\{\textbackslash{}cut\}{[}2{]}\{\textbackslash{}left\textbackslash{}langle
-\#1\textbackslash{}middle|\textbackslash{}mkern-2mu\textbackslash{}middle|\#2\textbackslash{}right\textbackslash{}rangle\}}}{\footnotesize \par}
+\global\long\def\fakecut#1#2{\left\langle #1\middle|\mkern-2mu\middle|#2\right\rangle }
+
+
+\noindent \texttt{\footnotesize{}\textbackslash{}renewcommand\{\textbackslash{}cut\}{[}2{]}\{\textbackslash{}left\textbackslash{}langle
+\#1\textbackslash{}middle|\textbackslash{}mkern-2mu\textbackslash{}middle|\#2\textbackslash{}right\textbackslash{}rangle\}}{\footnotesize \par}
\begin{center}
-\framebox{\begin{minipage}[t]{0.8\columnwidth}%
-\newcommand{\cut}[2]{\left\langle #1\middle|\mkern-2mu\middle|#2\right\rangle}
-The following states the commutativity of a strong monad:
+\fbox{\parbox[t]{0.8\columnwidth}{%
+The following states the idempotency of an adjunction:
\[
-\cut t{\mt x.\cut u{\mt y.\cut ve}}=\cut u{\mt y.\cut t{\mt x.\cut ve}}
+\fakecut t{\mt x.\fakecut{\mu\alpha.\fakecut ue}{e'}}=\fakecut{\mu\alpha.\fakecut t{\mt x.\fakecut ue}}{e'}
\]
-The following states the idempotency of an adjunction:
+
+
+The following states the commutativity of a strong monad:
\[
-\cut t{\mt x.\cut{\mu\alpha.\cut ue}{e'}}=\cut{\mu\alpha.\cut t{\mt x.\cut ue}}{e'}
+\fakecut t{\mt x.\fakecut u{\mt y.\fakecut ve}}=\fakecut u{\mt y.\fakecut t{\mt x.\fakecut ve}}
\]
+
+
+Using \texttt{\textbackslash{}underline} to mark redexes:
+\begin{align*}
+ & \delta(V,x.y,x.y)\\
+ & =\mu{\star}.\fakecut V{\left[\mt x.\underline{\fakecut y{\star}}\middle|\mt x.\underline{\fakecut y{\star}}\right]}\\
+ & =\mu{\star}.\fakecut V{\underline{\left[\mt x.\fakecut{\iota_{1}(x)}{\mt z.\fakecut y{\star}}\middle|\mt x.\fakecut{\iota_{2}(x)}{\mt z.\fakecut y{\star}}\right]}}\\
+ & =\mu{\star}.\fakecut V{\underline{\mt z.}\fakecut y{\star}}\\
+ & =\mu{\star}.\fakecut y{\star}=y
+\end{align*}
%
-\end{minipage}}
-\end{center}
+}}
+\par\end{center}
+
+As we can see, the legibility of the above rendering is hampered by
+multiple issues: the delimiters grow inconsistently, vertical bars
+have the wrong size, accents or underlines uselessly make the delimiters
+grow, and the spacing could be improved. The package is designed to
+fix these issues.
+
+
+\section{Advanced use}
+
+The package lets you define your own growing delimiters. Let us first
+stress that the size of these delimiters is entirely determined by
+the number of nestings and is insensitive to the size of the contents.
+If you need the size of the contents to be taken into account then
+it is probably sufficient to use \texttt{\textbackslash{}left} and
+\texttt{\textbackslash{}right} while tweaking \texttt{\textbackslash{}delimitershortfall}
+and \texttt{\textbackslash{}delimiterfactor}.
+
+
+\subsection{Example}
+
+The following displays a set $\{\#1\mid\#2\}$ with delimiters appropriately
+sized if there are other \texttt{\textbackslash{}perfectcommands}
+inside \texttt{\#1} and \texttt{\#2}.\medskip{}
+
+
+\texttt{\footnotesize{}\textbackslash{}def\textbackslash{}Set\#1\#2\{\textbackslash{}perfectbinary\{IncreaseHeight\}\textbackslash{}\{|\textbackslash{}\}\{\#1\textbackslash{}mathrel\{\}\}\{\textbackslash{}mathrel\{\}\#2\}\}}{\footnotesize \par}
+
+\texttt{\footnotesize{}\textbackslash{}{[}\textbackslash{}Set\{\textbackslash{}perfectparens\{a\}\}\{\textbackslash{}perfectparens\{b\}\}\textbackslash{}{]}}{\footnotesize \par}
+
+\def\Set#1#2{\perfectbinary{IncreaseHeight}\{|\}{#1\mathrel{}}{\mathrel{}#2}}
+
+\[
+\fbox{\ensuremath{\Set{\perfectparens{a}}{\perfectparens{b}}}}
+\]
+
+
+
+\subsection{Custom delimiters}
+\begin{description}
+\item [{\texttt{\textbackslash{}perfectunary\#1\#2\#3\#4}}] Displays \texttt{\#2}
+\texttt{\#4} \texttt{\#3} where \texttt{\#2} and \texttt{\#3} are
+delimiters. The delimiters grow according to \texttt{\#1} which must
+be one of \texttt{IncreaseHeight}, \texttt{CurrentHeight}, or \texttt{CurrentHeightPlusOne}.
+\item [{\texttt{\textbackslash{}perfectbinary\#1\#2\#3\#4\#5\#6}}] Displays
+\texttt{\#2} \texttt{\#5} \texttt{\#3} \texttt{\#6} \texttt{\#4} where
+\texttt{\#2}, \texttt{\#3} and \texttt{\#4} are delimiters. The delimiters
+grow according to \texttt{\#1} which must be one of \texttt{IncreaseHeight},
+\texttt{CurrentHeight}, or \texttt{CurrentHeightPlusOne}.
+\end{description}
+
+\subsection{Stock delimiters}
+
+The stock commands behave as follow:
+
+\begin{center}
+\begin{tabular}{>{\raggedright}p{11em}lll}
+\toprule
+Command & Produces & Growth & Inserts skips\tabularnewline
+\midrule
+\texttt{\textbackslash{}perfectcut\{\#1\}\{\#2\}} & $\perfectcut{\#1}{\#2}$ & \texttt{IncreaseHeight} & Yes\tabularnewline
+\texttt{\textbackslash{}perfectbra\{\#1\}} & $\perfectbra{\#1}$ & \texttt{IncreaseHeight} & Yes\tabularnewline
+\texttt{\textbackslash{}perfectket\{\#1\}} & $\perfectket{\#1}$ & \texttt{IncreaseHeight} & Yes\tabularnewline
+\texttt{\textbackslash{}perfectcase\{\#1\}} & $\perfectcase{\#1}{\#2}$ & \texttt{CurrentHeightPlusOne} & Yes\tabularnewline
+\texttt{\textbackslash{}perfectbrackets\{\#1\}} & $\perfectbrackets{\#1}$ & \texttt{CurrentHeightPlusOne} & Only inside\tabularnewline
+\texttt{\textbackslash{}perfectparens\{\#1\}} & $\perfectparens{\#1}$ & \texttt{CurrentHeight} & Only inside\tabularnewline
+\texttt{\textbackslash{}perfectunary\{\#1\}}~\\
+\texttt{~\{\#2\}\{\#3\}\{\#4\}} & $\#2\,\#4\,\#3$ & \#1 & No\tabularnewline
+\texttt{\textbackslash{}perfectbinary\{\#1\}}~\\
+\texttt{~\{\#2\}\{\#3\}\{\#4\}\{\#5\}\{\#6\}} & $\#2\,\#5\,\#3\,\#6\,\#4$ & \#1 & No\tabularnewline
+\bottomrule
+\end{tabular}
+\par\end{center}
\section{Options}
@@ -146,8 +247,8 @@ The following states the idempotency of an adjunction:
\subsection{Option \texttt{nomathstyle}}
The use of \texttt{\textbackslash{}currentmathstyle} from the package
-\texttt{mathstyle }prevents the exponential blowup in recursions
-that would occur if we used \texttt{\textbackslash{}mathpalette} instead.
+\texttt{mathstyle} prevents the exponential blowup in recursions that
+would occur if we used \texttt{\textbackslash{}mathpalette} instead.
To record the \texttt{\textbackslash{}currentmath\-style}, \texttt{mathstyle}
redefines many primitives and is therefore a source of incompatibilities.
If you run into such issues, please refer to the \texttt{mathstyle}
@@ -167,8 +268,16 @@ proper size unless \texttt{\textbackslash{}cutstyle }is redefined.
With the option \texttt{realVert}, the double bars are obtained with
the \texttt{\textbackslash{}Vert} command. Without it, two \texttt{\textbackslash{}vert}
symbols are used and their spacing is controlled with \texttt{\textbackslash{}cutinterbarskip}.
-In addition, without \texttt{realVert}, a penalty is added for better
-line breaks.
+But, if \texttt{realVert} is not activated, then a penalty (\texttt{binoppenalty})
+is added, such that $\cut{\mu\alpha.\cut ab}{\mt x.\cut cd}$ splits
+across lines.
+
+
+\subsection{Option \texttt{fixxits}}
+
+For some reason that the author was unable to identify, the vertical
+alignment is wrong with the Opentype XITS math font with XeTeX. The
+option \texttt{fixxits} fixes this behaviour.
\subsection{Customisation}
@@ -178,29 +287,28 @@ The following mu-skips can be redefined in your preamble:
\begin{center}
\begin{tabular}{ll}
\toprule
-Command & Defines\tabularnewline
+Command & Defines the spacing...\tabularnewline
\midrule
-\texttt{\textbackslash{}cutbarskip=5.0mu plus 8mu minus 2.0mu} & spacing around bars\tabularnewline
-\texttt{\textbackslash{}cutangleskip=0.0mu plus 8mu minus 1.0mu} & spacing around angles (inside)\tabularnewline
-\texttt{\textbackslash{}cutangleouterskip=0.0mu plus 8mu minus 0mu} & spacing around angles (outside)\tabularnewline
-\texttt{\textbackslash{}cutinterbarskip=0.8mu plus 0mu minus 0mu} & spacing between bars\tabularnewline
+\texttt{\textbackslash{}cutbarskip=5.0mu plus 8mu minus 2.0mu} & around bars\tabularnewline
+\texttt{\textbackslash{}cutangleskip=0.0mu plus 8mu minus 1.0mu} & around delimiters (inside)\tabularnewline
+\texttt{\textbackslash{}cutangleouterskip=0.0mu plus 8mu minus 0mu} & around delimiters (outside)\tabularnewline
+\texttt{\textbackslash{}cutinterbarskip=0.8mu plus 0mu minus 0mu} & between bars (excl. \texttt{realVert})\tabularnewline
\bottomrule
\end{tabular}
-\end{center}
+\par\end{center}
-\noindent (1 mu equals $\tfrac{1}{18}$-th of an em in the current
-math font.)
+\noindent (1 mu equals $1/18$ of an em in the current math font.)
\section{Reimplementation of fixed-size delimiters}
In addition, I provide the following corrections and generalisations
of \texttt{\textbackslash{}big},\texttt{\textbackslash{}bigg}, etc.
-Why not using the latter? Because both the plain \TeX{}
-and the \texttt{amsmath} versions are incorrect when changing math
-font, font size, math style or \texttt{\textbackslash{}delimitershortfall}.
-Moreover, Opentype math fonts in particular offer more sizes. We
-want a robust solution.
+Why not using the latter? Because both the plain \TeX{} and the \texttt{amsmath}
+versions can be incorrect when changing the math font, the font size,
+the math style or \texttt{\textbackslash{}delimitershortfall}. Moreover,
+Opentype math fonts sometimes offer more than five sizes. For this
+package we need a robust solution.
\begin{center}
\begin{tabular}{lll}
@@ -211,39 +319,44 @@ Command & Example & \tabularnewline
\texttt{\textbackslash{}nthleft\{\#1\}\{\#2\} } & \texttt{\textbackslash{}nthleft\{2\}(} & $\nthleft{2}($\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}nthmiddle\{\#1\}\{\#2\}} & \texttt{\textbackslash{}nthmiddle\{2\}\textbackslash{}Vert} & $\nthmiddle{2}\Vert$\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}nthright\{\#1\}\{\#2\}} & \texttt{\textbackslash{}nthright\{2\})} & $\nthright{2})$\tabularnewline\addlinespace[0.1em]
-\multicolumn{1}{l}{\emph{delimiter \#2 of length at least \#1}} & & \tabularnewline\addlinespace[0.1em]
+\multicolumn{1}{l}{\emph{delimiter \#2 of height at least \#1}} & & \tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}lenleft\{\#1\}\{\#2\}} & \texttt{\textbackslash{}lenleft\{3.2mm\}{[}} & $\lenleft{3mm}[$\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}lenmiddle\{\#1\}\{\#2\}} & \texttt{\textbackslash{}lenmiddle\{3.2mm\}|} & $\lenmiddle{3mm}|$\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}lenright\{\#1\}\{\#2\}} & \texttt{\textbackslash{}lenright\{3.2mm\}{]}} & $\lenright{3mm}]$\tabularnewline\addlinespace[0.1em]
-\multicolumn{3}{l}{\emph{delimiter \#2 of length exactly \#1 obtained by scaling the
+\multicolumn{3}{l}{\emph{delimiter \#2 of height exactly \#1 obtained by scaling the
above one}}\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}reallenleft\{\#1\}\{\#2\}} & \texttt{\textbackslash{}reallenleft\{3.2mm\}{[}} & $\reallenleft{3mm}[$\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}reallenmiddle\{\#1\}\{\#2\}} & \texttt{\textbackslash{}reallenmiddle\{3.2mm\}|} & $\reallenmiddle{3mm}|$\tabularnewline\addlinespace[0.1em]
\texttt{\textbackslash{}reallenright\{\#1\}\{\#2\}} & \texttt{\textbackslash{}reallenright\{3.2mm\}{]}} & $\reallenright{3mm}]$\tabularnewline
\bottomrule
\end{tabular}
-\end{center}
+\par\end{center}
-\subsection{Exemple with \texttt{\textbackslash{}nthleft}}
+\subsection{Example with \texttt{\textbackslash{}nthleft}}
-\texttt{\footnotesize{\textbackslash{}nthleft0(\textbackslash{}nthleft1(\textbackslash{}nthleft2(\textbackslash{}nthleft3(\textbackslash{}nthleft4(\textbackslash{}nthleft5(}}{\footnotesize \par}
+\texttt{\footnotesize{}\textbackslash{}nrthleft0{[}\textbackslash{}nthleft1{[}\textbackslash{}nthleft2{[}\textbackslash{}nthleft3{[}\textbackslash{}nthleft4{[}\textbackslash{}nthleft5{[}\textbackslash{}nthleft6{[}}{\footnotesize \par}
\[
-\nthleft0(\nthleft1(\nthleft2(\nthleft3(\nthleft4(\nthleft5(
+\nthleft0(\nthleft1(\nthleft2(\nthleft3(\nthleft4(\nthleft5(\nthleft6(
\]
\subsection{Example with \texttt{\textbackslash{}big},\texttt{\textbackslash{}Big},\texttt{\textbackslash{}bigg},\texttt{\textbackslash{}Bigg}}
-\texttt{\footnotesize{(\textbackslash{}big(\textbackslash{}Big(\textbackslash{}bigg(\textbackslash{}Bigg(}}{\footnotesize \par}
+\texttt{\footnotesize{}{[}\textbackslash{}big{[}\textbackslash{}Big{[}\textbackslash{}bigg{[}\textbackslash{}Bigg{[}}{\footnotesize \par}
\[
(\big(\Big(\bigg(\Bigg(
\]
-Note: \texttt{\textbackslash{}big}\texttt{\footnotesize{ }}starts
-at at size 2 in some fonts.
+The above uses the \texttt{\textbackslash{}big} commands from the
+\texttt{amsmath} package. The \texttt{amsmath} package corrects issues
+with the original \TeX{} commands, but I could still notice inconsistencies,
+such as \texttt{\textbackslash{}big} starting at size 2, under some
+font combinations. \texttt{\textbackslash{}nthleft}, \texttt{\textbackslash{}nthright}
+and \texttt{\textbackslash{}nthmiddle} are implemented in a more robust
+way.
\section{License}