summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/delim
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/delim
Initial commit
Diffstat (limited to 'macros/latex/contrib/delim')
-rw-r--r--macros/latex/contrib/delim/README8
-rw-r--r--macros/latex/contrib/delim/delim.dtx224
-rw-r--r--macros/latex/contrib/delim/delim.ins50
-rw-r--r--macros/latex/contrib/delim/delim.pdfbin0 -> 298877 bytes
4 files changed, 282 insertions, 0 deletions
diff --git a/macros/latex/contrib/delim/README b/macros/latex/contrib/delim/README
new file mode 100644
index 0000000000..d84ade3abb
--- /dev/null
+++ b/macros/latex/contrib/delim/README
@@ -0,0 +1,8 @@
+delim.sty:
+ Simplifies formatting of delimiters in mathematical expressions, by
+ providing a syntactically cleaner alternative to \left, \middle, \right
+ and their fixed-size counterparts like \bigl etc.
+
+This material is subject to the LaTeX Project Public License. See
+http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the
+details of that license.
diff --git a/macros/latex/contrib/delim/delim.dtx b/macros/latex/contrib/delim/delim.dtx
new file mode 100644
index 0000000000..b4ce90aebf
--- /dev/null
+++ b/macros/latex/contrib/delim/delim.dtx
@@ -0,0 +1,224 @@
+% \iffalse meta-comment
+%
+% Copyright 2010 by Stefan Majewsky <majewsky.stefan@ages-skripte.org>
+%
+% 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.
+%
+% \fi
+%
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{delim}
+%<package> [2011/09/13 1.0 Typesetting of mathematical delimiters]
+%
+%<*driver>
+\documentclass{ltxdoc}
+ \usepackage[english]{babel}
+ \usepackage[utf8]{inputenc}
+ \usepackage[T1]{fontenc}
+ \usepackage{delim,calc}
+
+ \newenvironment{pexample}
+ {\vspace{1em}\begin{tabular}{@{\hspace{1em}}l}}
+ {\end{tabular}\par}
+ \newenvironment{example}[1]
+ {\vspace{1em}\begin{tabular}{@{\hspace{1em}}p{#1\linewidth}@{\hspace{3em}}l}}
+ {\end{tabular}\vspace{1em}}
+
+ \setlength\parindent{0pt}
+ \EnableCrossrefs
+ \CodelineIndex
+ \RecordChanges
+ \begin{document}
+ \DocInput{delim.dtx}
+ \end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{66}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{v1.0}{2011/09/13}{Simplified user interface}
+% \changes{v0.2}{2010/05/13}{Much simpler implementation without ifthen package}
+% \changes{v0.1}{2010/05/06}{Initial Version}
+%
+% \GetFileInfo{delim.sty}
+%
+% \DoNotIndex{}
+%
+% \title{The \textsf{delim} package\thanks{This document
+% corresponds to \textsf{delim}~\fileversion,
+% dated~\filedate.}}
+% \author{Stefan Majewsky \\ \texttt{majewsky@gmx.net}}
+%
+% \maketitle
+% \begin{abstract}
+% This package simplifies typesetting of variable-size delimiters (like
+% parentheses) in mathematical expressions.
+% \end{abstract}
+%
+% {\LaTeX} provides some commands for the correct typesetting of delimiters in
+% mathematical expressions. Consider the following equation:
+%
+% \begin{example}{0.15}
+% $\displaystyle(a + \frac bc) \cdot d$ &
+% |(a + \frac bc) \cdot d|
+% \end{example}
+%
+% By default, the parentheses will not scale up correctly. The |\left| and |\right| commands fix this problem:
+%
+% \begin{example}{0.15}
+% $\displaystyle\left(a + \frac bc\right) \cdot d$ &
+% |\left(a + \frac bc\right) \cdot d|
+% \end{example}
+%
+% But because it's cumbersome to write |\left| and |\right| every time, we
+% define and use a macro:
+%
+% \delimdef\p#1{\dleft(#1\dright)}
+% \begin{pexample}
+% |\delimdef\p#1{\dleft(#1\dright)}|
+% \end{pexample}
+% \begin{example}{0.15}
+% $\displaystyle\p{a + \frac bc} \cdot d$ &
+% |\p{a + \frac bc} \cdot d|
+% \end{example}
+%
+% \DescribeMacro{\delimdef}
+% \DescribeMacro{\dleft} \DescribeMacro{\dmiddle} \DescribeMacro{\dright}
+% We did not use |\def|, but |\delimdef| which is defined by this package.
+% Also, we substituted |\dleft| and |\dright| for |\left| and |\right|. There's
+% also |\dmiddle|, as in this example:
+%
+% \delimdef\braket#1#2{\dleft\langle#1\dmiddle\vert#2\dright\rangle}
+% \begin{pexample}
+% |\delimdef\braket#1#2{\dleft\langle#1\dmiddle\vert#2\dright\rangle}|
+% \end{pexample}
+% \begin{example}{0.15}
+% $\displaystyle\braket{\psi_n(t)}\psi$ &
+% |\braket{\psi_n(t)}\psi|
+% \end{example}
+%
+% But why wouldn't we want to use |\def|? Because |\left|, |\middle| and
+% |\right| are not always what you want. For example, if you want the delimiters
+% to be a bit bigger in the last example, you would substitute |\bigl|, |\bigm|
+% and |\bigr| for |\left|, |\middle| and |\right|. This is not possible with
+% a simple |\def| macro. Macros defined by |\delimdef| can substitute |\dleft|
+% etc. for any common set of delimiter commands, by using a \emph{size prefix}:
+%
+% \begin{example}{0.15}
+% $\displaystyle\mbig\braket{\psi_n(t)}\psi$ &
+% |\mbig\braket{\psi_n(t)}\psi|
+% \end{example}
+%
+% Let's look at another example:
+%
+% \begin{example}{0.15}
+% $\displaystyle\p{\underbrace{a_1 + a_2}_{=b}}$ &
+% |\p{\underbrace{a_1 + a_2}_{=b}}|
+% \end{example}
+%
+% We want to use our |\p| macro, but the parentheses should be reset to their
+% normal size. The size prefix |\mnorm| does just that:
+%
+% \begin{example}{0.15}
+% $\displaystyle\mnorm\p{\underbrace{a_1 + a_2}_{=b}}$ &
+% |\mnorm\p{\underbrace{a_1 + a_2}_{=b}}|
+% \end{example}
+%
+% \DescribeMacro{\mnorm} \DescribeMacro{\mbig} \DescribeMacro{\mBig}
+% \DescribeMacro{\mbigg} \DescribeMacro{\mBigg} \DescribeMacro{\mauto}
+% The following size prefixes are defined by this package:
+%
+% \begin{example}{0.15}
+% $\displaystyle\mnorm\p{\frac ab}$ & |\mnorm| (normal character size) \\[1em]
+% $\displaystyle\mbig\p{\frac ab}$ & |\mbig = \bigl| etc. \\[1em]
+% $\displaystyle\mBig\p{\frac ab}$ & |\mBig = \Bigl| etc. \\[1em]
+% $\displaystyle\mbigg\p{\frac ab}$ & |\mbigg = \biggl| etc. \\[1em]
+% $\displaystyle\mBigg\p{\frac ab}$ & |\mBigg = \Biggl| etc. \\[1.5em]
+% $\displaystyle\mauto\p{\frac ab}$ & |\mauto = \left| etc. (default behavior)
+% \end{example}
+%
+% \DescribeMacro{\delim@load}
+% If no prefix is given, |\mauto| is used. New size prefixes can be defined
+% using the |\delim@load| macro; refer to the implementation of the existing
+% prefixes for details.
+%
+% \clearpage\section*{Implementation}
+%
+% \begin{macro}{\delim@load}
+% Size prefixes use this macro to enter a new delimiter level and define the
+% delimiter commands for that level. |\delim@loaded| signals that delimiter
+% commands have been provided for this level. Its exact content is irrelevant,
+% only the fact that it is defined is needed (see below).
+% \begin{macrocode}
+\def\delim@load#1#2#3{%
+ \begingroup%
+ \def\dleft{#1}%
+ \def\dmiddle{#2}%
+ \def\dright{#3}%
+ \def\delim@loaded{}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mauto}\begin{macro}{\mnorm}\begin{macro}{\mbig}\begin{macro}{\mBig}\begin{macro}{\mbigg}\begin{macro}{\mBigg}
+% The size prefixes are defined using |\delim@load|.
+% \begin{macrocode}
+\newcommand\mauto{\delim@load\left\middle\right}%
+\newcommand\mnorm{\delim@load\relax\relax\relax}%
+\newcommand\mbig{\delim@load\bigl\bigm\bigr}%
+\newcommand\mBig{\delim@load\Bigl\Bigm\Bigr}%
+\newcommand\mbigg{\delim@load\biggl\biggm\biggr}%
+\newcommand\mBigg{\delim@load\Biggl\Biggm\Biggr}%
+% \end{macrocode}
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \begin{macro}{\delimdef}
+% This defines a new delimiter macro. The macro substitution text is
+% extended by a grouping level, with additional logic being collected in
+% |\delim@begingroup|.
+% \begin{macrocode}
+\def\delimdef#1#{\delim@def{#1}}%
+\def\delim@def#1#2{\def#1{\delim@begingroup#2\endgroup}}%
+% \end{macrocode}
+% Special thanks go to Martin Scharrer for pointing out to me the capabilities
+% of |\def| used in this implementation (see
+% |http://tex.stackexchange.com/questions/28207/|).
+% \end{macro}
+% \begin{macro}{\delim@begingroup}
+% |\delim@begingroup| ensures that delimiters are loaded (default is |\mauto|)
+% and the |\delim@loaded| flag is cleared (for cascaded delimiter macros to work
+% properly). The |\begingroup| is contained in the delimiter macro, see the
+% definition of |\delim@load|.
+% \begin{macrocode}
+\def\delim@begingroup{%
+ \ifx\delim@loaded\undefined\mauto\fi%
+ \let\delim@loaded\undefined%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
diff --git a/macros/latex/contrib/delim/delim.ins b/macros/latex/contrib/delim/delim.ins
new file mode 100644
index 0000000000..2f2e9e234b
--- /dev/null
+++ b/macros/latex/contrib/delim/delim.ins
@@ -0,0 +1,50 @@
+%%
+%% Copyright 2011 Stefan Majewsky <majewsky@gmx.net>
+%%
+%% 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.
+%%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/delim}
+
+\preamble
+
+This is a generated file.
+
+Copyright 2011 Stefan Majewsky <majewsky@gmx.net>
+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.
+
+\endpreamble
+
+\generate{\file{delim.sty}{\from{delim.dtx}{package}}}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space delim.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file delim.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/delim/delim.pdf b/macros/latex/contrib/delim/delim.pdf
new file mode 100644
index 0000000000..4fde1efb44
--- /dev/null
+++ b/macros/latex/contrib/delim/delim.pdf
Binary files differ