From fe42f14592a869d9eb04e6bedbf28054c7c2559d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 11 Apr 2017 21:13:38 +0000 Subject: actuarialangle (11apr17) git-svn-id: svn://tug.org/texlive/trunk@43751 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/actuarialangle/README.md | 64 +-- .../doc/latex/actuarialangle/actuarialangle.pdf | Bin 0 -> 104499 bytes .../source/latex/actuarialangle/actuarialangle.dtx | 544 +++++++++++++++++++++ .../tex/latex/actuarialangle/actuarialangle.sty | 203 ++++---- 4 files changed, 654 insertions(+), 157 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/actuarialangle/actuarialangle.pdf create mode 100644 Master/texmf-dist/source/latex/actuarialangle/actuarialangle.dtx (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/actuarialangle/README.md b/Master/texmf-dist/doc/latex/actuarialangle/README.md index 22b8edfb6fa..55eb5881480 100644 --- a/Master/texmf-dist/doc/latex/actuarialangle/README.md +++ b/Master/texmf-dist/doc/latex/actuarialangle/README.md @@ -1,59 +1,45 @@ # actuarialangle -This package defines a single command `\actuarialangle` to typeset -nice looking "angles" in actuarial and financial notation, such as in -symbols for the present value of an annuity. +Package `actuarialangle` provides commands to typeset the "angle" +symbol denoting a duration in actuarial notation, such as in symbols +for the present value of certain or life annuities and an overhead +square bracket used to emphasize joint status in symbols of life +contingencies. ## Licence -Public Domain +LaTeX Project Public License, version 1.3c or (at your option) any +later version. -## Author +## Version + +2.0 (2017-04-10) -The code in this package was given to me (Vincent Goulet -) by a former colleague who would simply -copy it in the preamble of all his documents needing an "angle" -symbol. The actual author of the code is unknown. +## Author -My sole contribution was to make a package out of the code. +Vincent Goulet , based on code from an +unknown author for `\actuarialangle` and friends. ## Installation The package is part of TeX Live and MiKTeX. If it is not already -installed on your system, copy `actuarialangle.sty` where LaTeX can -find it. - -## Usage - -Load the package as usual with - - \usepackage{actuarialangle} +installed on your system, run `actuarialangle.dtx` through LaTeX with, +for example, -Then, in math mode, use + pdflatex actuarialangle.dtx - \actuarialangle{n} +and copy `actuarialangle.sty` where LaTeX can find it. -to typeset "angle n". For a complete present value symbol, use -something like +## Documentation - a_{\actuarialangle{n}} - -You will most likely want to use the following shortcuts: - -- `\angl` for `\actuarialangle` -- `\angln` for `\angl{n}` -- `\anglr` for `\angl{r}` +File `actuarialangle.pdf` contains the complete documentation of the +package. If needed, the documentation can be generated from the +sources using the following commands: + pdflatex actuarialangle.dtx + makeindex -s gglo.ist -o actuarialangle.gls actuarialangle.glo + pdflatex actuarialangle.dtx ## Version history -### 2017-02-01 - -- Various improvements to the `README` file. -- `README` file converted to markdown format (and therefore renamed - `README.md`) after the project was moved to - [GitHub](https://github.com/vigou3/actuarialangle). - -### 2012-10-16 - -- First version on CRAN. +See the documentation. diff --git a/Master/texmf-dist/doc/latex/actuarialangle/actuarialangle.pdf b/Master/texmf-dist/doc/latex/actuarialangle/actuarialangle.pdf new file mode 100644 index 00000000000..a4bd0b3a4f7 Binary files /dev/null and b/Master/texmf-dist/doc/latex/actuarialangle/actuarialangle.pdf differ diff --git a/Master/texmf-dist/source/latex/actuarialangle/actuarialangle.dtx b/Master/texmf-dist/source/latex/actuarialangle/actuarialangle.dtx new file mode 100644 index 00000000000..703a4383c73 --- /dev/null +++ b/Master/texmf-dist/source/latex/actuarialangle/actuarialangle.dtx @@ -0,0 +1,544 @@ +% \iffalse meta-comment +% +% Copyright (C) 2017 Vincent Goulet +% +% This file may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +% version 2006/05/20 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Vincent Goulet +% . +% +% This work consists of the files actuarialangle.dtx and +% actuarialangle.ins and the derived files listed in the README.md +% file. +% +% \fi +% +% \iffalse +%<*dtx> + \ProvidesFile{actuarialangle.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[2009/09/24] +%\ProvidesPackage{actuarialangle}[2017/04/10 v2.0 Actuarial angle] +%<*batchfile> +\begingroup +\input docstrip.tex +\keepsilent +\askforoverwritefalse + +\preamble + +This is a generated file. + +Copyright (C) 2017 Vincent Goulet + +This file may be distributed and/or modified under the conditions +of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +version 2006/05/20 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Vincent Goulet +. + +This work consists of the files actuarialangle.dtx and +actuarialangle.ins and the derived files listed in the README.md file. + +\endpreamble +\generate{\file{actuarialangle.sty}{\from{actuarialangle.dtx}{package}}} +\endgroup +% +%<*driver> +\documentclass[11pt,x11names]{ltxdoc} + \usepackage[utf8]{inputenc} + \usepackage[T1]{fontenc} + \usepackage{natbib} + \usepackage{microtype} + \usepackage[scaled=0.90]{helvet} + \usepackage[scaled=1.02]{inconsolata} + \usepackage[sc]{mathpazo} + \usepackage{actuarialangle} + \usepackage{framed} + \DisableCrossrefs + \CodelineNumbered + \RecordChanges + \GlossaryPrologue{\section*{Version history}% + \addcontentsline{toc}{section}{Version history}} + + %% colors + \usepackage{xcolor} + \definecolor{link}{rgb}{0,0.4,0.6} % ~dvips RoyalBlue + \definecolor{url}{rgb}{0.6,0,0} % dark red + \definecolor{citation}{rgb}{0,0.5,0} % dark green + \colorlet{shadecolor}{LightYellow1} + + %% left aligned description list + \usepackage{enumitem} + \setlist[description]{leftmargin=*,align=left} + + %% environments for demo code; 'texample' mostly lifted from + %% documentation of amsmath + \newenvironment{demo}{\begin{trivlist}\item}{\end{trivlist}} + \newenvironment{texample}[1][0.5]{% + \noindent\begin{minipage}{#1\linewidth}\begin{snugshade*}% + \def\producing{\end{snugshade*}\end{minipage}\hfill\begin{minipage}{\dimexpr0.97\linewidth-#1\linewidth}% + \hbox\bgroup\kern-.2pt% + \vbox\bgroup\parindent0pt\relax + % The 3pt is to cancel the -\lineskip from \displ@y + \abovedisplayskip3pt \abovedisplayshortskip\abovedisplayskip + \belowdisplayskip0pt \belowdisplayshortskip\belowdisplayskip + \noindent} + }{% + \par + % Ensure that a lonely \[\] structure doesn't take up width less than + % \hsize. + \hrule height0pt width\hsize + \egroup\kern-.2pt\egroup + \end{minipage}% + \par + } + + %% utility macro + \newcommand{\pkg}[1]{\textsf{#1}} + + %% hyperlinks + \usepackage{hyperref} + \hypersetup{colorlinks, linktocpage, + urlcolor=url, linkcolor=link, citecolor=citation, + bookmarksopen, bookmarksnumbered, bookmarksdepth=subsection, + pdftitle={actuarialangle User Guide}, + pdfauthor={Vincent Goulet}} + + %% autoref labels + \let\subsectionautorefname\sectionautorefname + \let\subsubsectionautorefname\sectionautorefname + +\begin{document} + \DocInput{actuarialangle.dtx} +\end{document} +% +% \fi +% \CheckSum{126} +% \changes{v1.0}{2012-10-16}{Initial release.} +% \changes{v1.1}{2017-02-01}{Various improvements to the README +% file, including conversion to markdown format after the project was +% moved to GitHub.} +% \changes{v2.0}{2017-04-09}{Complete new documentation.} +% +% \GetFileInfo{actuarialangle.sty} +% +% \title{Actuarial angle symbol for life contingencies \\ +% and financial mathematics% +% \thanks{This document corresponds to +% \pkg{actuarialangle}~\fileversion, dated~\filedate.}} +% \author{Vincent Goulet\thanks{% +% École d'actuariat, Université Laval.} \\ +% \url{vincent.goulet@act.ulaval.ca}} +% \maketitle +% +% \begin{abstract} +% Package \pkg{actuarialangle} provides commands to typeset the +% ``angle'' symbol denoting a duration $n$ in actuarial notation, as +% in $\angln$, and an overhead angle bracket, as in $\group{xy}$. +% \end{abstract} +% +% \section{Introduction} +% +% This package defines commands to typeset two symbols used in +% actuarial notation for life contingencies and financial mathematics. +% The first is the ``angle'' denoting a duration in the present value +% of an insurance or annuity: $\angln$. The second is an overhead +% angle bracket (or ``roof'') used to emphasize joint status when +% ambiguity is possible: $\group{xy}$. The bracket is normally used +% with a precedence number above. Facilities to position such numbers +% are provided by package \pkg{actuarialsymbol} +% \citep{actuarialsymbol}. +% +% For additional details on actuarial notation for life contingencies, +% see \citet{Bowers:2e:1997}. +% +% \section{Package options} +% \label{sec:options} +% +% The package offers the following options: +% \begin{description} +% \item[\mdseries\ttfamily thinspace] insert a thin space of 1mu +% between the material under the angle and the right descender; this +% is the default starting with version 2.0 of the package; +% \item[\mdseries\ttfamily thickspace] insert a thicker space of 2mu +% between the material under the angle and the right descender; this +% was the value used in versions of the package prior to 2.0; +% \item[\mdseries\ttfamily nobracket] do not define command +% \cmd{\overanglebracket}; this option also prevents loading of +% package \pkg{pict2e}. +% \end{description} +% We provide option |nobracket| in case the bracket symbol is not +% needed and \pkg{pict2e} \citep{pict2e} interferes with other +% packages. Loading the package with +% \begin{quote} +% |\usepackage[thickspace,nobracket]{actuarialangle}| +% \end{quote} +% yields the behaviour of versions prior to 2.0, but for the defunct +% features mentioned in \autoref{sec:defunct}. +% +% \section{Package features} +%\label{sec:features} +% +% \begin{DescribeMacro}{\actuarialangle} +% In math mode, the command +% \begin{quote} +% |\actuarialangle|\marg{duration} +% \end{quote} +% composes an angle symbol around \meta{duration}. This is the +% ``raw'' command that does not insert any space between +% \meta{duration} and the right descender of the angle. The symbol +% scales gracefully if the command is ever used outside of a +% first-level subscript. +% \begin{demo} +% \begin{texample} +% |\actuarialangle{n} \quad| \\ +% |a_{\actuarialangle{n}}| +% \producing +% $\actuarialangle{n} \quad a_{\actuarialangle{n}}$ +% \end{texample} +% \end{demo} +% \end{DescribeMacro} +% +% \begin{DescribeMacro}{\angl} +% \begin{DescribeMacro}{\angln} +% \begin{DescribeMacro}{\anglr} +% \begin{DescribeMacro}{\anglk} +% Users are expected to typeset angle symbols with the command +% \begin{quote} +% |\angl|\marg{duration} +% \end{quote} +% In contrast to \cmd{\actuarialangle}, this command inserts some +% thin space (by default or with package option |thinspace|) or +% thick space (with package option |thinkspace|) between +% \marg{duration} and the right descender. +% \begin{demo} +% \begin{texample} +% |% with option thinspace:| \\ +% |\angl{n} \quad a_{\angl{n}}| +% \producing +% $\angl{n} \quad a_{\angl{n}}$ +% \end{texample} +% \begin{texample} +% |% with option thickspace| \\ +% |\angl{n} \quad a_{\angl{n}}| +% \producing +% $\angl{n\mkern1mu} \quad a_{\angl{n\mkern1mu}}$ +% \end{texample} +% \end{demo} +% Commands \cmd{\angln}, \cmd{\anglr} and \cmd{\anglk} are shortcuts +% for the common cases \cmd{\angl}|{n}|, \cmd{\angl}|{r}| and +% \cmd{\angl}|{k}|, respectively. +% \end{DescribeMacro} +% \end{DescribeMacro} +% \end{DescribeMacro} +% \end{DescribeMacro} +% +% \begin{DescribeMacro}{\overanglebracket} +% \begin{DescribeMacro}{\group} +% The command +% \begin{quote} +% \cmd{\overanglebracket}\marg{statuses} +% \end{quote} +% composes an angle bracket (``roof'') above \meta{statuses}. The +% rule thickness and spacing relative to the statuses match those of +% the angle symbol. Command \cmd{\group} is a convenient alias for +% \cmd{\overanglebracket}. +% \begin{demo} +% \begin{texample} +% |\group{xy} \quad| \\ +% |A_{\group{xy}:\angln}| +% \producing +% $\group{xy} \quad A_{\group{xy}:\angln}$ +% \end{texample} +% \end{demo} +% \end{DescribeMacro} +% \end{DescribeMacro} +% +% \section{Defunct features} +% \label{sec:defunct} +% +% Versions prior to 2.0 of the package included the undocumented +% commands +% \begin{quote} +% \cmd{\topprecedence} (with alias \cmd{\lift}) \\ +% \cmd{\vartopprecedence} \\ +% \cmd{\bottomprecedence} \\ +% \cmd{\varbottomprecedence} +% \end{quote} +% to typeset precedence numbers above and below statuses in subscript +% of an actuarial symbol. These features have been moved --- and +% improved on the way --- to package \pkg{actuarialsymbol} +% \citep{actuarialsymbol}. +% +% \StopEventually{ +% \begin{thebibliography}{3} +% \bibitem[Beauchemin and Goulet(2017)]{actuarialsymbol} +% D.~Beauchemin and V.~Goulet. +% \newblock \emph{Actuarial symbols of life contingencies and financial +% mathematics}, 2017. +% \newblock URL \url{http://www.ctan.org/pkg/actuarialsymbol/}. +% +% \bibitem[Bowers et~al.(1997)Bowers, Gerber, Hickman, Jones, and +% Nesbitt]{Bowers:2e:1997} +% N.~L. Bowers, H.~U. Gerber, J.~C. Hickman, D.~A. Jones, and C.~J. Nesbitt. +% \newblock \emph{Actuarial Mathematics}. +% \newblock Society of Actuaries, Shaumburg, IL, second edition, 1997. +% \newblock ISBN 0-9389594-6-8. +% +% \bibitem[Gä{\ss}lein et~al.(2016)Gä{\ss}lein, Niepraschk, and Tkadlec]{pict2e} +% H.~Gä{\ss}lein, R.~Niepraschk, and J.~Tkadlec. +% \newblock \emph{The pict2e package}, 2016. +% \newblock URL \url{http://www.ctan.org/pkg/pict2e/}. +% \end{thebibliography} +% \PrintChanges +% } +% +% \appendix +% \section{Implementation} +% \label{sec:implementation} +% +% This appendix contains the annotated source code of the package. +% Most readers can stop reading here. +%\iffalse +%<*package> +%\fi +% +% \subsection{Package options} +% \label{sec:implementation:options} +% +% \begin{macro}{\ifacta@thinspace} +% \changes{v2.0}{2017-04-07}{Options |thinspace| and |thickspace| +% added to control spacing between material under the angle and +% right descender.} % +% \begin{macro}{\ifacta@nobracket} +% \changes{v2.0}{2017-04-09}{Added option |nobracket| to prevent +% definition of the command to typeset the over angle bracket and +% loading of package \pkg{pict2e}.} % +% Two flags are defined to keep track of the spacing between the +% material under the angle and right descender, and whether or not +% the package should define the command \cmd{\overanglebracket} and +% load package \pkg{pict2e}. +% \begin{macrocode} +\newif\ifacta@thinspace \acta@thinspacetrue +\newif\ifacta@bracket \acta@brackettrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DeclareOption} +% Declaration of the package options and processing. Defaults are +% |thinspace| and to define the bracket. +% \begin{macrocode} +\DeclareOption{thinspace}{\acta@thinspacetrue} +\DeclareOption{thickspace}{\acta@thinspacefalse} +\DeclareOption{nobracket}{\acta@bracketfalse} +\ProcessOptions +% \end{macrocode} +% \end{macro} +% +% \subsection{Actuarial angle} +% \label{sec:implementation:actuarialangle} +% +% The original author of macros \cmd{\actuarialangle} and +% |\acta@angle| is unknown. Some of the comments below are his or +% hers. +% +% \begin{macro}{\actuarialangle} +% We first define the ``raw'' user level command. +% \begin{macrocode} +\DeclareRobustCommand{\actuarialangle}{\mathpalette\acta@angle} +% \end{macrocode} +% The operation of \cmd{\mathpalette} ensures that proper sizing the +% command is ever used outside of a first-level subscript. +% \end{macro} +% +% \begin{macro}{\acta@angle} +% Next we define the real workhorse. +% \begin{macrocode} +\def\acta@angle#1#2{% + \mathord{% +% \end{macrocode} +% Add a bit of preceding space. +% \begin{macrocode} + \mkern1mu +% \end{macrocode} +% We need many nested boxes here: first a vbox to stack the horizontal +% rule of the angle and the symbol; second an hbox position the symbol +% and the right descender of the angle side-to-side; third a vbox to +% insert spacing between the horizontal rule and the symbol. +% \begin{macrocode} + \vbox{\hrule \hbox{% + \vbox{% +% \end{macrocode} +% The amount of vertical space below is the normal space for +% \cmd{\overline} in a subscript. +% \begin{macrocode} + \kern3\fontdimen8\scriptfont\thr@@ + \hbox{$#1#2\m@th$}}% +% \end{macrocode} +% Make the right-hand rule extend down to the depth of a parenthesis +% even if the symbol under the angle does not have a descender. +% \begin{macrocode} + \setbox\z@\hbox{$#1()$}\vrule depth\dp\z@}}% +% \end{macrocode} +% Finishing touch is a bit of following space. +% \begin{macrocode} + \mkern1mu}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\angl} +% \begin{macro}{\angln} +% \begin{macro}{\anglr} +% \begin{macro}{\anglk} +% \changes{v2.0}{2017-04-07}{Added an \cmd{\anglk} shortcut.} % +% Finally, we define the main user level function \cmd{\angl} and +% shortcuts for common cases. +% \begin{macrocode} +\ifacta@thinspace + \def\angl#1{{\actuarialangle{{#1}\mkern1mu}}} +\else + \def\angl#1{{\actuarialangle{{#1}\mkern2mu}}} +\fi +\def\angln{{\angl n}} +\def\anglr{{\angl r}} +\def\anglk{{\angl k}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{Over angle bracket} +% \label{sec:implementation:overanglebracket} +% +% The code of this section is executed only if |\acta@bracket| is +% |true|, that is when the package is \emph{not} loaded with option +% |nobracket|. +% \begin{macrocode} +\ifacta@bracket +% \end{macrocode} +% Drawing the angle bracket requires package \pkg{pict2e} +% \citep{pict2e} to get arbitrary slopes and neat line joins in paths. +% \begin{macrocode} + \RequirePackage{pict2e} +% \end{macrocode} +% +% \begin{macro}{\overanglebracket} +% \changes{v2.0}{2017-04-08}{Command \cmd{\overanglebracket} added to +% typeset an angle bracket (``roof'') above statuses.} % +% Here is the user level command. +% \begin{macrocode} + \DeclareRobustCommand{\overanglebracket}{% + \mathpalette\acta@anglebracket} +% \end{macrocode} +% We use \cmd{\mathpalette} as above. +% \end{macro} +% +% \begin{macro}{\acta@anglebracket} +% The workhorse is |\acta@anglebracket|. It builds the bracket +% symbol with path lines. +% \begin{macrocode} + \def\acta@anglebracket#1#2{% +% \end{macrocode} +% Box zero contains the material under the bracket. The width of this +% box will determine the width of the flat part of the bracket and the +% height, the length of the descenders. Hence we store these values. +% \begin{macrocode} + \setbox\z@\hbox{$\m@th#1#2$} + \dimen0\wd\z@ \dimen1\ht\z@ +% \end{macrocode} +% Box two contains the bracket itself. It is drawn in three parts +% stitched together; the first and third parts are expressed in a +% dimension relative |\dimen1|, above, whereas the central part is +% expressed relative |\dimen0|. +% \begin{macrocode} + \setbox\tw@\hbox{% + \setlength{\unitlength}{\dimen1}% + \begin{picture}(0.4,0) + \polyline(0.4001,0)(0.4,0)(0,-0.8) + \end{picture}% + \setlength{\unitlength}{\dimen0}% + \begin{picture}(1,0) + \put(0,0){\line(1,0){1}} + \end{picture}% + \setlength{\unitlength}{\dimen1}% + \begin{picture}(0.4,0) + \polyline(-0.0001,0)(0,0)(0.4,-0.8) + \end{picture}} +% \end{macrocode} +% We store the width of the total width of the backet to center the +% material under it, below. +% \begin{macrocode} + \dimen@\wd\tw@ +% \end{macrocode} +% Box containing the whole symbol. The lineskip between the bracket +% and the statuses is the same as in |\acta@angle|, plus half the +% default rule thickness. +% \begin{macrocode} + \vbox to\dimen1{% + \baselineskip\z@ + \lineskip3\fontdimen8\scriptfont\thr@@ + \advance\lineskip by 0.2pt + \lineskiplimit\lineskip + \vss + \box\tw@% + \hbox to\dimen@{\hss\unhbox\z@\hss} + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\group} +% Alias for \cmd{\overanglebracket}. +% \begin{macrocode} + \let\group\overanglebracket +\fi +% \end{macrocode} +% \end{macro} +% +%\iffalse +% +%\fi +% +% \Finale +% \obeyspaces +% \typeout{*************************************************************} +% \typeout{* *} +% \typeout{* To finish the installation you have to move the following *} +% \typeout{* file into a directory searched by TeX: *} +% \typeout{* *} +% \typeout{* actuarialangle.sty *} +% \typeout{* *} +% \typeout{* To produce the documentation, run actuarialangle.dtx *} +% \typeout{* through LaTeX. *} +% \typeout{* *} +% \typeout{* Happy actuarial TeXing! *} +% \typeout{* *} +% \typeout{*************************************************************} +% +% ^^A Local Variables: +% ^^A mode: doctex +% ^^A TeX-master: t +% ^^A End: +\endinput diff --git a/Master/texmf-dist/tex/latex/actuarialangle/actuarialangle.sty b/Master/texmf-dist/tex/latex/actuarialangle/actuarialangle.sty index 6c79423ec53..23d426b3d3e 100644 --- a/Master/texmf-dist/tex/latex/actuarialangle/actuarialangle.sty +++ b/Master/texmf-dist/tex/latex/actuarialangle/actuarialangle.sty @@ -1,125 +1,92 @@ %% -%% This file is put in the Public Domain by Vincent Goulet. +%% This is file `actuarialangle.sty', +%% generated with the docstrip utility. %% -%% Original author of the code (and comments past this header) is -%% unknown. +%% The original source files were: %% -%% This package defines a single command \actuarialangle to typeset -%% nice looking "angles" in present value of an annuity symbols common -%% in actuarial and financial notation. -%% -%% USAGE -%% -%% In math mode -%% -%% \actuarialangle{n} -%% -%% to typeset "angle n". For a complete present value symbol, -%% something like -%% -%% a_{\actuarialangle{n}} -%% -%% SHORTCUTS -%% -%% You will most likely want to use the following shortcuts: -%% -%% \angl for \actuarialangle -%% \angln for \angl{n} -%% \anglr for \angl{r} -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{actuarialangle} - -\catcode`\@=11 -\def\actuarialangle{\mathpalette\act@angle} -% -% The operation of \mathpalette causes \actuarialangle{30} to expand -% to a mathchoice. This ensures that proper sizing will be done if -% \angle is ever used outside of a first-level subscript: -% -% \mathchoice{% -% {\act@angle\displaystyle{30}}% -% {\act@angle\textstyle{30}}% -% {\act@angle\scriptstyle{30}}% -% {\act@angle\scriptscriptstyle{30}}% -% } -% -\def\act@angle#1#2{% -\mathord{% -\mkern1mu % Add a bit of preceding space -\vbox{\hrule \hbox{\vbox{% -% This amount of vertical space is the normal space for \overline in a -% subscript: -\kern3\fontdimen8\scriptfont\thr@@ -\hbox{$#1#2\m@th$}}% -% Make the right-hand rule extend down to the depth of a parenthesis -% even if the symbol under the angle does not have a descender: -\setbox\z@\hbox{$#1()$}\vrule depth\dp\z@}}% -\mkern1mu}% Add a bit of following space -}% end \act@angle -% -% \topprecedence puts a precedence number above an item, smashed so -% that the apparent height of the item is its normal height. -% -\def\topprecedence#1#2{\mathpalette{\preced@ t{}{#1}}{#2}} -% -% Put a multiplier in the empty set of braces to increase -% the spacing between the precedence number and the -% symbol to which it applies, e.g. -% -% \def\topprecedence#1#2{\mathpalette{\preced@ t{2.5}{#1}}{#2}} -% -% This also applies for \botprecedence and \vartopprecedence. -% If it is desired that all precedence numbers fall at the -% same height, regardless of whether there is an hrule between -% them and the symbol to which they apply, then make -% \topprecedence the same as \vartopprecedence. -% -\def\botprecedence#1#2{\mathpalette{\preced@ b{}{#1}}{#2}} -% -% \vartopprecedence provides extra space below the top -% symbol, to accommodate an intervening hrule. -% -\def\vartopprecedence#1#2{\mathpalette{\preced@ t3{#1}}{#2}} -% -% In \preced@, #1 is `t' for top or `b' for bottom, #2 is a -% multiplier for the space between the top and bottom symbols (may -% be empty), #3 is the first argument from the user, #4 is -% \displaystyle or \textstyle or \scriptstyle or -% \scriptscriptstyle, from \mathpalette, and #5 is the second -% argument given by the user. This peculiar ordering of the -% arguments is done to work around the restriction of \mathpalette -% that it only reads 2 arguments. -% -\def\preced@#1#2#3#4#5{% -% Measure the arguments: -\setbox\tw@\hbox{$\m@th#4#3$}% -\setbox\z@\hbox{$\m@th#4#5$}\dimen@\wd\z@ -\vbox{% to\ht\z@{% -\baselineskip\z@skip -% \lineskip is set using AMSTeX's \ex@, if available, for a slight -% refinement in the spacing if this macro is used in eightpoint -% text. If \ex@ is not available, \p@ is used. -\lineskip#2\ifx\UNDEFINED\ex@\p@\else\ex@\fi\relax -\lineskiplimit\lineskip -\if b#1\relax\box\z@\else\vss\fi -\hbox to\dimen@{\hss\unhbox\tw@\hss}% -\if t#1\relax\box\z@\else\vss\fi -}% end \vbox -}% end \preced@ -% Restore the category code of the @ character: -\catcode`\@=11 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%To get a little more space after stuff under the angle, define \angl -% in the following way: -% -\def\angl#1{{\actuarialangle{{#1}\mkern2mu}}} -% -% +%% actuarialangle.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2017 Vincent Goulet +%% +%% This file may be distributed and/or modified under the conditions +%% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Vincent Goulet +%% . +%% +%% This work consists of the files actuarialangle.dtx and +%% actuarialangle.ins and the derived files listed in the README.md file. +%% +\NeedsTeXFormat{LaTeX2e}[2009/09/24] +\ProvidesPackage{actuarialangle}[2017/04/10 v2.0 Actuarial angle] +\newif\ifacta@thinspace \acta@thinspacetrue +\newif\ifacta@bracket \acta@brackettrue +\DeclareOption{thinspace}{\acta@thinspacetrue} +\DeclareOption{thickspace}{\acta@thinspacefalse} +\DeclareOption{nobracket}{\acta@bracketfalse} +\ProcessOptions +\DeclareRobustCommand{\actuarialangle}{\mathpalette\acta@angle} +\def\acta@angle#1#2{% + \mathord{% + \mkern1mu + \vbox{\hrule \hbox{% + \vbox{% + \kern3\fontdimen8\scriptfont\thr@@ + \hbox{$#1#2\m@th$}}% + \setbox\z@\hbox{$#1()$}\vrule depth\dp\z@}}% + \mkern1mu}} +\ifacta@thinspace + \def\angl#1{{\actuarialangle{{#1}\mkern1mu}}} +\else + \def\angl#1{{\actuarialangle{{#1}\mkern2mu}}} +\fi \def\angln{{\angl n}} -% \def\anglr{{\angl r}} -% -\def\lift#1#2{{\topprecedence{#1}{#2}}} +\def\anglk{{\angl k}} +\ifacta@bracket + \RequirePackage{pict2e} + \DeclareRobustCommand{\overanglebracket}{% + \mathpalette\acta@anglebracket} + \def\acta@anglebracket#1#2{% + \setbox\z@\hbox{$\m@th#1#2$} + \dimen0\wd\z@ \dimen1\ht\z@ + \setbox\tw@\hbox{% + \setlength{\unitlength}{\dimen1}% + \begin{picture}(0.4,0) + \polyline(0.4001,0)(0.4,0)(0,-0.8) + \end{picture}% + \setlength{\unitlength}{\dimen0}% + \begin{picture}(1,0) + \put(0,0){\line(1,0){1}} + \end{picture}% + \setlength{\unitlength}{\dimen1}% + \begin{picture}(0.4,0) + \polyline(-0.0001,0)(0,0)(0.4,-0.8) + \end{picture}} + \dimen@\wd\tw@ + \vbox to\dimen1{% + \baselineskip\z@ + \lineskip3\fontdimen8\scriptfont\thr@@ + \advance\lineskip by 0.2pt + \lineskiplimit\lineskip + \vss + \box\tw@% + \hbox to\dimen@{\hss\unhbox\z@\hss} + } + } + \let\group\overanglebracket +\fi +\endinput %% %% End of file `actuarialangle.sty'. -- cgit v1.2.3