From 0391be4d6b6ba0a5bac352cfc7c98b515c0074d8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 13 Jun 2019 19:54:34 +0000 Subject: actuarialsymbol (13jun19) git-svn-id: svn://tug.org/texlive/trunk@51371 c570f23f-e606-0410-a88d-b1316a301751 --- .../latex/actuarialsymbol/actuarialsymbol.dtx | 402 ++++++++++++--------- 1 file changed, 223 insertions(+), 179 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/actuarialsymbol/actuarialsymbol.dtx b/Master/texmf-dist/source/latex/actuarialsymbol/actuarialsymbol.dtx index b19549c144f..7677572f860 100644 --- a/Master/texmf-dist/source/latex/actuarialsymbol/actuarialsymbol.dtx +++ b/Master/texmf-dist/source/latex/actuarialsymbol/actuarialsymbol.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017 David Beauchemin, Vincent Goulet +% Copyright (C) 2019 David Beauchemin, 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 @@ -17,7 +17,7 @@ % The Current Maintainer of this work is Vincent Goulet % . % -% This work consists of the files actuarialsymbol.dtx and the derived +% This work consists of actuarialsymbol.dtx and the derived % files. % % \fi @@ -27,7 +27,7 @@ \ProvidesFile{actuarialsymbol.dtx} % %\NeedsTeXFormat{LaTeX2e}[2009/09/24] -%\ProvidesPackage{actuarialsymbol}[2017/06/14 v1.0a Actuarial symbols] +%\ProvidesPackage{actuarialsymbol}[2019/06/13 v1.1 Actuarial symbols] %<*batchfile> \begingroup \input docstrip.tex @@ -38,7 +38,7 @@ This is a generated file. -Copyright (C) 2017 David Beauchemin, Vincent Goulet +Copyright (C) 2019 David Beauchemin, 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 @@ -87,7 +87,7 @@ This work consists of actuarialsymbol.dtx and the derived files. \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} + \colorlet{shadecolor}{LightYellow1} % code background %% left aligned description list \usepackage{enumitem} @@ -99,25 +99,41 @@ This work consists of actuarialsymbol.dtx and the derived files. \newtheorem*{rem}{Remark} %% single entry for symbol and shortcut lists - %% http://tex.stackexchange.com/a/128441 + %% https://tex.stackexchange.com/a/128441 \usepackage{xparse} \ExplSyntaxOn \NewDocumentCommand{\showcase}{v} { \tl_rescan:nn { } { $#1$ } & \texttt{#1} } \NewDocumentCommand{\rshowcase}{v} { \texttt{#1} & \tl_rescan:nn { } { $#1$ } } \ExplSyntaxOff + %% environment for displayed sample code; hybrid between + %% environments snugshade* and leftbar of framed.sty + \makeatletter + \newenvironment{snugshadebar}{% + \setlength{\topsep}{1pt} + \def\FrameCommand##1{\hskip\@totalleftmargin + \vrule width 2pt\colorbox{shadecolor}{\hspace{3pt}##1}% + % There is no \@totalrightmargin, so: + \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% + \MakeFramed {\advance\hsize-\width + \@totalleftmargin\z@ \linewidth\hsize + \advance\labelsep\fboxsep + \@setminipage}% + }{\par\unskip\@minipagefalse\endMakeFramed} + \makeatother + %% 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}% + \noindent\begin{minipage}{#1\linewidth}\begin{snugshadebar}% + \def\producing{\end{snugshadebar}\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} + \noindent}% }{% \par % Ensure that a lonely \[\] structure doesn't take up width less than @@ -136,11 +152,16 @@ This work consists of actuarialsymbol.dtx and the derived files. %% hyperlinks \usepackage{hyperref} - \hypersetup{colorlinks, linktocpage, - urlcolor=url, linkcolor=link, citecolor=citation, - bookmarksopen, bookmarksnumbered, bookmarksdepth=subsection, + \hypersetup{% pdftitle={actuarialsymbol User Guide}, - pdfauthor={David Beauchemin, Vincent Goulet}} + pdfauthor={David Beauchemin, Vincent Goulet}, + colorlinks = true, + linktocpage = true, + urlcolor = {url}, + linkcolor = {link}, + citecolor = {citation}, + pdfpagemode = {UseOutlines}, + pdfstartview = {Fit}} %% autoref labels \let\subsectionautorefname\sectionautorefname @@ -151,25 +172,29 @@ This work consists of actuarialsymbol.dtx and the derived files. \end{document} % % \fi -% \CheckSum{537} +% \CheckSum{520} % \changes{1.0}{2017-04-11}{Initial release.} +% \changes{1.1}{2019-01-08}{Various improvements to the code +% contributed by Ruixi Zhang.} +% \changes{1.1}{2019-06-13}{Code samples displayed in a box with a +% left bar.} % % \GetFileInfo{actuarialsymbol.sty} % % \title{Actuarial symbols of life contingencies \\ -% and financial mathematics% +% and financial mathematics^^A % \thanks{This document corresponds to % \pkg{actuarialsymbol}~\fileversion, dated~\filedate.}} % \author{David Beauchemin \\ % \url{david.beauchemin.5@ulaval.ca} % \and -% Vincent Goulet\thanks{% +% Vincent Goulet\thanks{^^A % École d'actuariat, Université Laval} \\ % \url{vincent.goulet@act.ulaval.ca}} % \maketitle % % \begin{abstract} -% Package \pkg{actuarialsymbol} provides facilities to compose +% The package \pkg{actuarialsymbol} provides facilities to compose % actuarial symbols of life contingencies and financial mathematics % characterized by subscripts and superscripts on both sides of a % principal symbol. The package also features commands to easily and @@ -211,8 +236,8 @@ This work consists of actuarialsymbol.dtx and the derived files. % the right. Schematically, we thus have: % \begin{equation} % \label{schema1} -% \actsymb[\fbox{\scriptsize I}\!\;][\fbox{\scriptsize II}\!\;]% -% {\framebox[5ex]{$S$}}{\,\fbox{\scriptsize III}}% +% \actsymb[\fbox{\scriptsize I}\!\;][\fbox{\scriptsize II}\!\;]^^A +% {\framebox[5ex]{$S$}}{\,\fbox{\scriptsize III}}^^A % [\,\fbox{\scriptsize IV}] % \end{equation} % @@ -221,35 +246,35 @@ This work consists of actuarialsymbol.dtx and the derived files. % a circle ($\mathring{e}$). When the principal symbol consists of two % letters, they are grouped between parentheses, as in $\IA$ or % $\DA*$. Most commonly, there are alphanumeric statuses in the -% lower-right position \fbox{\small III}. Numerals can be placed above +% lower-right position \fbox{\small III}\,. Numerals can be placed above % or below the individual statuses to show the order of failure; we % will refer to these numerals as \emph{precedence numbers}. Otherwise, -% auxiliary symbols appear lower-left \fbox{\small I}, upper-left -% \fbox{\small II} and upper-right \fbox{\small IV}, in that order of +% auxiliary symbols appear lower-left \fbox{\small I}\,, upper-left +% \fbox{\small II}\, and upper-right \fbox{\small IV}\,, in that order of % frequency. % -% Principle symbols for benefit premiums, reserves and amount of -% reduced paid-up insurance, $P$, $V$ and $W$, are combined with +% Symbols for benefit premiums ($P$), reserves ($V$) and amount of +% reduced paid-up insurance ($W$), are combined with % benefit symbols unless the benefit is a level unit insurance payable % at the end of the year of death. In such cases, we have the % following symbol structure (replace $P$ by $V$ or $W$ as needed): % \begin{equation} % \label{schema2} -% \actsymb[\fbox{\scriptsize I}\!\;][\fbox{\scriptsize II}\!\;]% -% {\framebox[5ex]{$P$}}{}[\,\fbox{\scriptsize IV}]% -% \bigl(\actsymb{\framebox[5ex]{$S$}}{\,\fbox{\scriptsize III}}\bigr)% +% \actsymb[\fbox{\scriptsize I}\!\;][\fbox{\scriptsize II}\!\;]^^A +% {\framebox[5ex]{$P$}}{}[\,\fbox{\scriptsize IV}]^^A +% \bigl(\actsymb{\framebox[5ex]{$S$}}{\,\fbox{\scriptsize III}}\bigr) % \end{equation} % % Perhaps the most commonly used auxiliary symbol not readily % available in {\LaTeX} is the ``angle'' denoting a duration $n$, as -% in $\angln$. Package \pkg{actuarialangle} \citep{actuarialangle} +% in $\angln$. The package \pkg{actuarialangle} \citep{actuarialangle} % provides commands to create this symbol, as well as an overhead % angle bracket\footnote{Starting with version 2.0 dated 2017/04/10.} -% (or ``roof'') used to emphasize joint status when ambiguity is +% (or ``roof'') used to emphasize the joint status when ambiguity is % possible: $\group{xy}$. This package is imported at load time by % \pkg{actuarialsymbol}. % -% Package \pkg{actuarialsymbol} provides a generic command to position +% The package \pkg{actuarialsymbol} provides a generic command to position % all subscripts and superscripts easily and consistently around a % principal symbol; a command to create two-letter symbols; and two % commands to position precedence numbers above and below statuses. @@ -286,11 +311,11 @@ This work consists of actuarialsymbol.dtx and the derived files. % \cmd{\actsymb}\oarg{ll}\oarg{ul}\marg{symbol}\marg{lr}\oarg{ur} % \end{quote} % Above, \meta{ll} identifies the auxiliary symbol in the lower left -% subscript position \fbox{\small I} (following the notation in the +% subscript position \fbox{\small I}\, (following the notation in the % schematic representation \eqref{schema1}); \meta{ul} is the upper -% left superscript \fbox{\small II}; \meta{symbol} is the principal +% left superscript \fbox{\small II}\,; \meta{symbol} is the principal % symbol $S$; \meta{lr} is the lower right subscript \fbox{\small -% III}; \meta{ur} is the upper right superscript $\fbox{\small IV}$. +% III}\,; \meta{ur} is the upper right superscript \fbox{\small IV}\,. % The principal symbol and the right subscript are required, the % other arguments are optional. % \begin{demo} @@ -316,13 +341,13 @@ This work consists of actuarialsymbol.dtx and the derived files. % \end{texample} % \end{demo} % -% The command actually admits one more optional argument to compose +% The command actually supports one more optional argument, for composing % symbols for premiums, reserves and paid-up insurance. The extended % command % \begin{quote} -% \cmd{\actsymb}\oarg{ll}\oarg{ul}\oarg{principle}\marg{symbol}\marg{lr}\oarg{ur} +% \cmd{\actsymb}\oarg{ll}\oarg{ul}\oarg{P}\marg{symbol}\marg{lr}\oarg{ur} % \end{quote} -% puts symbol \meta{principle} outside the parentheses in the +% puts symbol \meta{P} outside the parentheses in the % schematic representation \eqref{schema2}. % \begin{demo} % \begin{texample}[0.7] @@ -364,9 +389,9 @@ This work consists of actuarialsymbol.dtx and the derived files. % $\actsymb{A}{x} \quad \actsymb{A}{x}[2]$ % \end{texample} % \end{demo} -% Furthermore, the package also ensures that the left and right +% Furthermore, the package ensures that the left and right % subscripts, when both present, are at the same level, something -% popular ad~hoc constructions do not provide. +% common ad~hoc constructions do not provide. % \begin{demo} % \begin{texample}[0.7] % |{}_tA_x \quad {}_tA_x^2| @@ -380,9 +405,9 @@ This work consists of actuarialsymbol.dtx and the derived files. % \end{texample} % \end{demo} % In symbols for premiums, reserves and paid-up insurance, -% subscripts and superscripts are aligned only around the principle -% symbol. Authors who would prefer a uniform subscript position -% \emph{throughout their document} should load package +% subscripts and superscripts are aligned only around +% symbol \meta{P}. Authors who would prefer a uniform subscript position +% \emph{throughout their document} can load the package % \pkg{subdepth} \citep{subdepth}. % \end{rem} % @@ -397,7 +422,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \cmd{\twoletsymb}\oarg{length}\marg{symbol\_1}\marg{symbol\_2} % \end{quote} % to group \meta{symbol\_1} and \meta{symbol\_2} between parentheses -% with kerning\footnote{Spacing adjustment between the characters} +% with kerning\footnote{Spacing adjustment between the characters.} % reduced by length \cmd{\twoletkern} (see below). One can also % reduce spacing by \meta{length} for a specific symbol. % \begin{demo} @@ -427,7 +452,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{DescribeMacro}{\twoletkern} % The standard kerning between mathematical symbols defined with % \cmd{\twoletsymb} is \emph{reduced} by the length -% \cmd{\twoletkern}, by default \the\twoletkern. This value can be +% \cmd{\twoletkern}, by default 0.1em. This value can be % changed as usual using \cmd{\setlength}. % \end{DescribeMacro} % @@ -437,18 +462,17 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{DescribeMacro}{\nthtop} % \begin{DescribeMacro}{\nthtop*} % Precedence numbers appear above or below individual statuses in -% the right subscript \fbox{\small III} of a symbol. Commands +% the right subscript \fbox{\small III}\, of a symbol. The commands % \begin{quote} % \cmd{\nthtop}\oarg{length}\marg{number}\marg{status} \\ % \cmd{\nthtop*}\oarg{length}\marg{number}\marg{status} % \end{quote} % put a precedence \meta{number} above a \meta{status}, smashed so -% that the apparent height of the status is its normal height. This is -% normally used in the right subscript \fbox{\small III} of a symbol. With +% that the apparent height of the status is its normal height. With % \cmd{\nthtop}, the spacing between the precedence number and the % status is a constant \cmd{\nthtopsep} (see below). This can result % in precedence numbers placed at different heights if one status -% contains an horizontal rule. +% contains a horizontal rule. % \begin{demo} % \begin{texample}[0.85] % |\actsymb{A}{\nthtop{1}{x}:\angln}| @@ -528,7 +552,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % % \begin{rem} % The fact that top precedence numbers have zero height means they -% will clash with a right superscript \fbox{\small IV}: +% will clash with a right superscript \fbox{\small IV}\,: % \begin{demo} % \begin{texample}[0.7] % |\actsymb{A}{\nthtop{1}{x}:\angln}[(m)]| @@ -557,17 +581,17 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{DescribeMacro}{\nthbottomskip} % The constant spacing between a top precedence number and the status % underneath when using \cmd{\nthtop} is \cmd{\nthtopsep}, by -% default \the\nthtopsep. The constant height of top precedence +% default 0.18em. The constant height of top precedence % numbers when using \cmd{\nthtop*} is achieved by setting the % baseline skip to \cmd{\nthtopskip}, by default -% \the\nthtopskip. +% 0.64em. % % Similarly, the constant spacing between a bottom precedence number % and the status above when using \cmd{\nthbottom} is -% \cmd{\nthbottomsep}, by default \the\nthbottomsep, and the +% \cmd{\nthbottomsep}, by default 0.18em, and the % constant height of bottom precedence numbers when using % \cmd{\nthbottom*} is achieved by setting the baseline skip to -% \cmd{\nthbottomskip}, by default \the\nthbottomskip. +% \cmd{\nthbottomskip}, by default 0.82em. % % These values can be changed as usual using \cmd{\setlength}. % \end{DescribeMacro} @@ -629,10 +653,10 @@ This work consists of actuarialsymbol.dtx and the derived files. % \raggedright % \hspace*{1em}{\footnotesize $^\dagger$ Calligraphic letters % obtained using \cmd{\mathcal}. These specific versions of -% $\mathcal{L}$ and $\mathcal{D}$ require package \pkg{rsfso} +% $\mathcal{L}$ and $\mathcal{D}$ require the package \pkg{rsfso} % \citep{rsfso}. Standard versions are % $\text{\usefont{OMS}{zplm}{m}{n} L}$ and -% $\text{\usefont{OMS}{zplm}{m}{n} D}$.} +% $\text{\usefont{OMS}{zplm}{m}{n} D}$.\par} % \end{table} % % One will note that shortcuts for insurance benefits come in two @@ -659,7 +683,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % provides a single shortcut for \meta{symbol}. % % For example, the package defines the shortcut \cmd{\px} with the -% equivalent of % +% equivalent of ^^A % ^^A below we abuse the texample environment to avoid defining % ^^A another environment just for this purpose % \begin{demo} @@ -691,7 +715,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % benefits $B$ and $\bar{B}$, one would write in the preamble % \begin{demo} % \begin{texample}[1] -% |\makatletter| \\ +% |\makeatletter| \\ % |\newcommand{\Bx}{\@actinssc{B}}| \\ % |\makeatother| \producing % \end{texample} @@ -745,12 +769,12 @@ This work consists of actuarialsymbol.dtx and the derived files. % to the second set of \autoref{tab:premres} using the internal % command % \begin{quote} -% |\@actpremres|\marg{principle} +% |\@actpremres|\marg{P} % \end{quote} % It defines shortcuts for discrete (default) or continuous (|*| % variant) premiums, reserves and paid-up insurance. For example, % the package defines shortcuts \cmd{\premium} and \cmd{\premium*} -% with +% with the equivalent of % \begin{demo} % \begin{texample}[1] % |\newcommand{\premium}{\@actpremres{P}}| \producing @@ -764,7 +788,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \label{sec:shortcuts:aux} % % \autoref{tab:aux} lists shortcuts for a few common auxiliary symbols -% used in the lower right subscript \fbox{\small III}. +% used in the lower right subscript \fbox{\small III}\,. % % \begin{table} % \centering @@ -784,7 +808,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \bottomrule % \end{tabular*} \\ % \raggedright -% \hspace*{1em}{\footnotesize $^\dagger$ alias for \cmd{\overline}} +% \hspace*{1em}{\footnotesize $^\dagger$ Alias for \cmd{\overline}.\par} % \end{table} % % \subsection{Symbols for varying benefit insurance and annuities} @@ -889,7 +913,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % equivalent to \cmd{\nthtop*} and \cmd{\nthbottom*}, % respectively; % \item[\mdseries\ttfamily compactpreced] always put precedence -% numbers close to the corresponding status; makes \cmd{\nthtop*} +% numbers close to the corresponding statuses; makes \cmd{\nthtop*} % and \cmd{\nthbottom*} equivalent to \cmd{\nthtop} and % \cmd{\nthbottom}, respectively. % \end{description} @@ -920,13 +944,12 @@ This work consists of actuarialsymbol.dtx and the derived files. % % Calligraphic letters are typeset using \cmd{\mathcal}. The specific % versions of $\mathcal{L}$ and $\mathcal{D}$ that appear in this -% table require package \pkg{rsfso} \citep{rsfso}, which is \emph{not} +% table require the package \pkg{rsfso} \citep{rsfso}, which is \emph{not} % loaded by \pkg{actuarialsymbol}. Standard versions of the % calligraphic letters are $\text{\usefont{OMS}{zplm}{m}{n} L}$ and % $\text{\usefont{OMS}{zplm}{m}{n} D}$. See Table~299 of % \citet{comprehensive} for other options. % -% % % \begingroup % \catcode`\|=12 ^^A to use | in math, disable as verbatim delimiter % \begin{longtable}{ll} @@ -1361,8 +1384,8 @@ This work consists of actuarialsymbol.dtx and the derived files. % \addcontentsline{toc}{section}{References} % \bibitem[{A}merican~{M}athematical {S}ociety(2002)]{amsmath} % {A}merican~{M}athematical {S}ociety. -% \newblock \emph{User’s Guide for the amsmath Package}, 2002. -% \newblock URL \url{http://www.ctan.org/pkg/amsmath/}. +% \newblock \emph{User's Guide for the amsmath Package}, 2002. +% \newblock URL \url{https://www.ctan.org/pkg/amsmath/}. % % \bibitem[Bowers et~al.(1997)Bowers, Gerber, Hickman, Jones, and % Nesbitt]{Bowers:2e:1997} @@ -1375,27 +1398,27 @@ This work consists of actuarialsymbol.dtx and the derived files. % V. Goulet. % \newblock \emph{Actuarial angle symbol for life contingencies and financial % mathematics}, 2017. -% \newblock URL \url{http://www.ctan.org/pkg/actuarialangle/}. +% \newblock URL \url{https://www.ctan.org/pkg/actuarialangle/}. % % \bibitem[Høgholm and Madsen(2015)]{mathtools} % M. Høgholm and L. Madsen. % \newblock \emph{The mathtools package}, 2015. -% \newblock URL \url{http://www.ctan.org/pkg/mathtools/}. +% \newblock URL \url{https://www.ctan.org/pkg/mathtools/}. % % \bibitem[Pakin(2015)]{comprehensive} % S. Pakin. % \newblock \emph{The Comprehensive {\LaTeX} Symbol List}, 2015. -% \newblock URL \url{http://www.ctan.org/pkg/comprehensive/}. +% \newblock URL \url{https://www.ctan.org/pkg/comprehensive/}. % % \bibitem[Robertson(2007)]{subdepth} % W. Robertson. % \newblock \emph{Unify subscript depths}, 2007. -% \newblock URL \url{http://www.ctan.org/pkg/subdepth/}. +% \newblock URL \url{https://www.ctan.org/pkg/subdepth/}. % % \bibitem[Sharpe(2015)]{rsfso} % M. Sharpe. % \newblock \emph{An acute script font based on {rsfs}}, 2015. -% \newblock URL \url{http://www.ctan.org/pkg/rsfso/}. +% \newblock URL \url{https://www.ctan.org/pkg/rsfso/}. % % \bibitem[Trivedi(2004)]{Trivedi:lifecon:2004} % E. Trivedi. @@ -1408,7 +1431,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \newblock In Jozef Teugels and Bj{\o}rn Sundt, editors, \emph{Encyclopedia of % Actuarial Science}. Wiley, 2004. % \newblock ISBN 978-0-47001250-5. -% \newblock URL \url{http://onlinelibrary.wiley.com/book/10.1002/9780470012505}. +% \newblock URL \url{https://onlinelibrary.wiley.com/book/10.1002/9780470012505}. % \end{thebibliography} % \PrintChanges % } @@ -1426,7 +1449,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \subsection{Required packages} % \label{sec:implementation:packages} % -% \begin{macro}{RequirePackage} +% \begin{macro}{\RequirePackage} % The package depends on packages \pkg{amsmath} \citep{amsmath} and % \pkg{actuarialangle} \citep{actuarialangle}. % \begin{macrocode} @@ -1439,7 +1462,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \label{sec:implementation:options} % % \begin{macro}{\ifacts@alignpreced} -% \begin{macro}{\ifacts@acompactpreced} +% \begin{macro}{\ifacts@compactpreced} % We define two flags to keep track of the type of alignment for % precedence numbers. Both are false by default. % \begin{macrocode} @@ -1469,7 +1492,7 @@ This work consists of actuarialsymbol.dtx and the derived files. % \subsubsection{User level and parsing commands} % \label{sec:implementation:actsymb:user} % -% \begin{macro}{actsymb} +% \begin{macro}{\actsymb} % We first define the user level command. % \begin{macrocode} \DeclareRobustCommand{\actsymb}{\acts@actsymb} @@ -1482,22 +1505,23 @@ This work consists of actuarialsymbol.dtx and the derived files. % With its unusual syntax, \cmd{\actsymb} requires four parsing % macros to pass the arguments to the actual workhorse % \cmd{\@actsymbol}. +% \changes{1.1}{2019-01-08}{Use \pkg{amsmath}'s \cmd{\new@ifnextchar}.} % \begin{macrocode} -\newcommand\acts@actsymb{% - \@ifnextchar[{\acts@@actsymb}% - {\acts@@actsymb[]}} -\newcommand\acts@@actsymb{} +\newcommand*\acts@actsymb{% + \new@ifnextchar[{\acts@@actsymb}% + {\acts@@actsymb[]}} +\newcommand*\acts@@actsymb{} \def\acts@@actsymb[#1]{% - \@ifnextchar[{\acts@@@actsymb[#1]}% - {\acts@@@actsymb[#1][]}} -\newcommand\acts@@@actsymb{} + \new@ifnextchar[{\acts@@@actsymb[#1]}% + {\acts@@@actsymb[#1][]}} +\newcommand*\acts@@@actsymb{} \def\acts@@@actsymb[#1][#2]{% - \@ifnextchar[{\acts@@@@actsymb[#1][#2]}% - {\acts@@@@actsymb[#1][#2][]}} -\newcommand\acts@@@@actsymb{} + \new@ifnextchar[{\acts@@@@actsymb[#1][#2]}% + {\acts@@@@actsymb[#1][#2][]}} +\newcommand*\acts@@@@actsymb{} \def\acts@@@@actsymb[#1][#2][#3]#4#5{% - \@ifnextchar[{\@actsymbol[#1][#2][#3]{#4}{#5}}% - {\@actsymbol[#1][#2][#3]{#4}{#5}[]}} + \new@ifnextchar[{\@actsymbol[#1][#2][#3]{#4}{#5}}% + {\@actsymbol[#1][#2][#3]{#4}{#5}[]}} % \end{macrocode} % \end{macro} % \end{macro} @@ -1514,65 +1538,67 @@ This work consists of actuarialsymbol.dtx and the derived files. % six arguments, using the notation from of the schematics % representations \eqref{schema1} and \eqref{schema2}: % \begin{enumerate}[nosep] -% \item lower left subscript \fbox{\small I}; may be empty; -% \item upper left superscript \fbox{\small II}; may be empty; -% \item principle symbol $P$; when empty a standard symbol is +% \item lower left subscript \fbox{\small I}\,; may be empty; +% \item upper left superscript \fbox{\small II}\,; may be empty; +% \item symbol $P$; when empty a standard symbol is % typeset; % \item principal symbol $S$; assumed present; -% \item lower right subscript \fbox{\small III}; assumed present; -% \item upper right superscript \fbox{\small IV}; may be empty. +% \item lower right subscript \fbox{\small III}\,; assumed present; +% \item upper right superscript \fbox{\small IV}\,; may be empty. % \end{enumerate} % The definition below is heavily inspired by the code of -% \cmd{\prescript} from package \pkg{mathtools} \citep{mathtools} +% \cmd{\prescript} from the package \pkg{mathtools} \citep{mathtools} % which, as reported by the author, is itself based on a posting to % |comp.text.tex| by Michael J.~Downes. Some of the comments below % are still his. % \begin{macrocode} -\def\@actsymbol[#1][#2][#3]#4#5[#6]{ +\newcommand*\@actsymbol{} +\def\@actsymbol[#1][#2][#3]#4#5[#6]{% % \end{macrocode} -% We put the principle symbol and all subscripts and superscript into -% horizontal boxes using \cmd{\@mathmeasure} of package \pkg{amsmath}. +% We put symbol $P$ and all subscripts and superscript into +% horizontal boxes using \cmd{\@mathmeasure} of the package \pkg{amsmath}. +% \changes{1.1}{2019-01-08}{Use local box registers.} % \begin{macrocode} - \@mathmeasure\z@\displaystyle{#3} - \@mathmeasure\@ne\scriptstyle{#1} - \@mathmeasure\tw@\scriptstyle{#2} - \@mathmeasure\thr@@\scriptstyle{#5} - \@mathmeasure4\scriptstyle{#6} + \@mathmeasure\z@\displaystyle{#3}% + \@mathmeasure\tw@\scriptstyle{#1}% + \@mathmeasure4\scriptstyle{#2}% + \@mathmeasure6\scriptstyle{#5}% + \@mathmeasure8\scriptstyle{#6}% % \end{macrocode} % Do not let a preceding mathord symbol approach without any % intervening space. % \begin{macrocode} - \mathord{} + \mathord{}% % \end{macrocode} % Right align the left subscript and superscript (if there is a % superscript) by adjusting the width of their horizontal boxes. % \begin{macrocode} - \ifdim \wd\tw@>\z@ \ifdim \wd\tw@>\wd\@ne - \setbox\@ne\hbox to\wd\tw@{\hfil\unhbox\@ne} + \ifdim \wd4>\z@ \ifdim \wd4>\wd\tw@ + \setbox\tw@\hbox to\wd4{\hfil\unhbox\tw@}% \else - \setbox\tw@\hbox to\wd\@ne{\hfil\unhbox\tw@} + \setbox4\hbox to\wd\tw@{\hfil\unhbox4}% \fi\fi % \end{macrocode} % Bottom align the left and right subscripts by making their heights % equal. % \begin{macrocode} - \ifdim \ht\@ne>\ht\thr@@ - \ht\thr@@=\ht\@ne + \ifdim \ht\tw@>\ht6 + \ht6=\ht\tw@ \else - \ht\@ne=\ht\thr@@ + \ht\tw@=\ht6% \fi % \end{macrocode} % Actual symbol construction. First the case where there is at least % one superscript (the nested conditionals emulate an OR condition). % \begin{macrocode} - \ifnum\ifdim \wd\tw@>\z@ 1\else\ifdim \wd4>\z@ 1\else 0\fi\fi - =1 + \ifnum\ifdim \wd4>\z@ 1\else\ifdim \wd8>\z@ 1\else 0\fi\fi + =1 % % \end{macrocode} % To ensure equal spacing with the subscripts on both sides of the % principal symbol, make the depths of the left and right % supercripts equal. % \begin{macrocode} - \ifdim \dp\tw@>\dp4 \dp4=\dp\tw@\else \dp\tw@=\dp4\fi + \ifdim \dp4>\dp8 \dp8=\dp4\else \dp4=\dp8\fi % \end{macrocode} % Typesetting of the left subscript and superscript. Use % \cmd{\mathopen} to suppress space between those and the principal @@ -1583,18 +1609,19 @@ This work consists of actuarialsymbol.dtx and the derived files. % the discussion} on StackExchange for details.) % \changes{1.0a}{2017-06-14}{Fix left subscript positioning with xetex.} % \begin{macrocode} - \mathopen{\vphantom{\textstyle #4}^{\box\tw@}\sb{\box\@ne}}% + \mathopen{\vphantom{\textstyle #4}\sp{\box4}\sb{\box\tw@}}% % \end{macrocode} % Typesetting of the principal symbol and the right subscript and % superscript. The principal symbol is either a principal symbol alone -% or a principle symbol and a benefit symbol between parentheses. In +% or a premium (or reserve, or paid-up insurance) symbol and a benefit symbol +% between parentheses. In % the latter case, we make sure to align the subscripts and -% superscripts only around the principle symbol. +% superscripts only around the premium symbol. % \begin{macrocode} \ifdim\wd\z@=\z@ - #4^{\box4}\sb{\box\thr@@}% + #4\sp{\box8}\sb{\box6}% \else - #3^{\box4}\sb{\vphantom{\copy\thr@@}}(#4\sb{\box\thr@@})% + #3\sp{\box8}\sb{\vphantom{\copy6}}(#4\sb{\box6})% \fi \else % \end{macrocode} @@ -1602,11 +1629,11 @@ This work consists of actuarialsymbol.dtx and the derived files. % way, {\TeX}'s default placement of subscripts and superscripts is % maintained. % \begin{macrocode} - \mathopen{\vphantom{\textstyle #4}\sb{\box\@ne}}% + \mathopen{\vphantom{\textstyle #4}\sb{\box\tw@}}% \ifdim\wd\z@=\z@ - #4\sb{\box\thr@@}% + #4\sb{\box6}% \else - #3(#4\sb{\box\thr@@})% + #3(#4\sb{\box6})% \fi \fi } @@ -1619,39 +1646,46 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{macro}{\@actinssc} % \begin{macro}{\@actannsc} % \begin{macro}{\@actothersc} +% \begin{macro}{\acts@actsc} +% \begin{macro}{\acts@@actsc} +% \begin{macro}{\acts@@@actsc} % We first define the internal macros and parsing macros used to % define shortcuts for insurance benefits (\cmd{\@actinssc}), % annuity benefits (\cmd{\@actannsc}) and simple symbols % (\cmd{\@actothersc}). % \begin{macrocode} -\newcommand\@actinssc[1]{% +\newcommand*\@actinssc[1]{% \@ifstar{\acts@actsc{\bar{#1}}}% {\acts@actsc{#1}}} -\newcommand\@actannsc[1]{% +\newcommand*\@actannsc[1]{% \@ifstar{\@ifstar{\acts@actsc{\ddot{#1}}}% - {\acts@actsc{\bar{#1}}}} + {\acts@actsc{\bar{#1}}}}% {\acts@actsc{#1}}} -\newcommand\acts@actsc[1]{% - \@ifnextchar[{\acts@@actsc{#1}}% - {\acts@@actsc{#1}[]}} +\newcommand*\acts@actsc[1]{% + \new@ifnextchar[{\acts@@actsc{#1}}% + {\acts@@actsc{#1}[]}} +\newcommand*\@actothersc{} \let\@actothersc\acts@actsc -\newcommand\acts@@actsc{} +\newcommand*\acts@@actsc{} \def\acts@@actsc#1[#2]{% - \@ifnextchar[{\acts@@@actsc{#1}[#2]}% - {\acts@@@actsc{#1}[#2][]}} -\newcommand\acts@@@actsc{} + \new@ifnextchar[{\acts@@@actsc{#1}[#2]}% + {\acts@@@actsc{#1}[#2][]}} +\newcommand*\acts@@@actsc{} \def\acts@@@actsc#1[#2][#3]#4{% - \@ifnextchar[{\@actsymbol[#2][#3][]{#1}{#4}}% - {\@actsymbol[#2][#3][]{#1}{#4}[]}} + \new@ifnextchar[{\@actsymbol[#2][#3][]{#1}{#4}}% + {\@actsymbol[#2][#3][]{#1}{#4}[]}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}{\DeclareRobustCommand} % We can now define all the shortcuts of \autoref{tab:principal}. % \begin{macrocode} -\DeclareRobustCommand{\lx}{\@actothersc {\ell}} -\DeclareRobustCommand{\Lx}{\@actothersc {\mathcal{L}}} +\DeclareRobustCommand{\lx}{\@actothersc\ell} +\DeclareRobustCommand{\Lx}{\@actothersc{\mathcal{L}}} \DeclareRobustCommand{\dx}{\@actothersc d} \DeclareRobustCommand{\Dx}{\@actothersc{\mathcal{D}}} \DeclareRobustCommand{\px}{\@actothersc p} @@ -1669,26 +1703,32 @@ This work consists of actuarialsymbol.dtx and the derived files. % \label{sec:implementation:actsymb:premressc} % % \begin{macro}{\@actpremres} +% \begin{macro}{\acts@actpremres} +% \begin{macro}{\acts@@actpremres} +% \begin{macro}{\acts@@@actpremres} % Not unlike above, we first define the internal and parsing macros % used to create shortcut for premiums, reserves and paid-up insurance % symbols. % \begin{macrocode} -\newcommand\@actpremres[1]{% +\newcommand*\@actpremres[1]{% \@ifstar{\acts@actpremres{\bar{#1}}}% {\acts@actpremres{#1}}} -\newcommand\acts@actpremres[1]{% - \@ifnextchar[{\acts@@actpremres{#1}}% - {\acts@@actpremres{#1}[]}} -\newcommand\acts@@actpremres{} +\newcommand*\acts@actpremres[1]{% + \new@ifnextchar[{\acts@@actpremres{#1}}% + {\acts@@actpremres{#1}[]}} +\newcommand*\acts@@actpremres{} \def\acts@@actpremres#1[#2]{% - \@ifnextchar[{\acts@@@actpremres{#1}[#2]}% - {\acts@@@actpremres{#1}[#2][]}} -\newcommand\acts@@@actpremres{} + \new@ifnextchar[{\acts@@@actpremres{#1}[#2]}% + {\acts@@@actpremres{#1}[#2][]}} +\newcommand*\acts@@@actpremres{} \def\acts@@@actpremres#1[#2][#3]#4{% - \@ifnextchar[{\@actsymbol[#2][#3][#1]{{#4}}{}}% - {\@actsymbol[#2][#3][#1]{{#4}}{}[]}} + \new@ifnextchar[{\@actsymbol[#2][#3][#1]{{#4}}{}}% + {\@actsymbol[#2][#3][#1]{{#4}}{}[]}} % \end{macrocode} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}{\DeclareRobustCommand} % Then we can define the shortcuts of \autoref{tab:premres}. % \begin{macrocode} @@ -1708,13 +1748,14 @@ This work consists of actuarialsymbol.dtx and the derived files. % Here we define the shortcuts for common auxiliary symbols listed in % \autoref{tab:aux}. Command \cmd{\joint} is simply defined as an % alias of \cmd{\overline}. +% \changes{1.1}{2019-01-08}{The colons used here are not \cmd{\mathrel}'s.} % \begin{macrocode} -\DeclareRobustCommand{\term}[2]{\itop{#1}:\angl{#2}} -\DeclareRobustCommand{\termxn}{{\itop{x}:\angln}} -\DeclareRobustCommand{\pureendow}[2]{#1:\itop{\angl{#2}}} -\DeclareRobustCommand{\pureendowxn}{{x:\itop{\angln}}} -\DeclareRobustCommand{\endow}[2]{#1:\angl{#2}} -\DeclareRobustCommand{\endowxn}{{x:\angln}} +\DeclareRobustCommand{\term}[2]{\itop{#1}{:}\angl{#2}} +\DeclareRobustCommand{\termxn}{{\itop{x}{:}\angln}} +\DeclareRobustCommand{\pureendow}[2]{#1{:}\itop{\angl{#2}}} +\DeclareRobustCommand{\pureendowxn}{{x{:}\itop{\angln}}} +\DeclareRobustCommand{\endow}[2]{#1{:}\angl{#2}} +\DeclareRobustCommand{\endowxn}{{x{:}\angln}} \let\joint\overline % \end{macrocode} % \end{macro} @@ -1726,9 +1767,10 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{macro}{\twoletsymb} % The definition of the user level command \cmd{\twoletsymb} is % pretty straighforward. +% \changes{1.1}{2019-01-08}{Use relative length.} % \begin{macrocode} \newlength{\twoletkern} -\setlength{\twoletkern}{1.2pt} +\setlength{\twoletkern}{0.1em} \DeclareRobustCommand{\twoletsymb}[3][\twoletkern]{(#2\kern-#1#3)} % \end{macrocode} % \end{macro} @@ -1739,31 +1781,31 @@ This work consists of actuarialsymbol.dtx and the derived files. % to create shortcuts for two-letter insurance and annuity benefit % symbols. % \begin{macrocode} -\newcommand\@twoletinssc[3][\twoletkern]{% +\newcommand*\@twoletinssc[3][\twoletkern]{% \@ifstar{\twoletsymb[#1]{#2}{\bar{#3}}}% {\twoletsymb[#1]{#2}{#3}}} -\newcommand\@twoletannsc[3][\twoletkern]{% +\newcommand*\@twoletannsc[3][\twoletkern]{% \@ifstar{\@ifstar{\twoletsymb[#1]{#2}{\ddot{#3}}}% {\twoletsymb[#1]{#2}{\bar{#3}}}}% {\twoletsymb[#1]{#2}{#3}}} % \end{macrocode} % \end{macro} % \end{macro} -% \begin{macro}{\newcommand} +% \begin{macro}{\newcommand*} % Follow the shortcuts of \autoref{tab:twoletsymb}. Note that we % used a smaller negative kerning adjustment for symbols annuity % symbols. % \begin{macrocode} -\newcommand{\IA}{\@twoletinssc IA} -\newcommand{\IbA}{\@twoletinssc{\bar{I}}A} -\newcommand{\ImA}{\@twoletinssc{I^{(m)}}A} -\newcommand{\DA}{\@twoletinssc DA} -\newcommand{\DbA}{\@twoletinssc{\bar{D}}A} -\newcommand{\DmA}{\@twoletinssc{D^{(m)}}A} -\newcommand{\Ia}{\@twoletannsc[0.5\twoletkern]Ia} -\newcommand{\Is}{\@twoletannsc[0.5\twoletkern]Is} -\newcommand{\Da}{\@twoletannsc[0.5\twoletkern]Da} -\newcommand{\Ds}{\@twoletannsc[0.5\twoletkern]Ds} +\newcommand*{\IA}{\@twoletinssc IA} +\newcommand*{\IbA}{\@twoletinssc{\bar{I}}A} +\newcommand*{\ImA}{\@twoletinssc{I^{(m)}}A} +\newcommand*{\DA}{\@twoletinssc DA} +\newcommand*{\DbA}{\@twoletinssc{\bar{D}}A} +\newcommand*{\DmA}{\@twoletinssc{D^{(m)}}A} +\newcommand*{\Ia}{\@twoletannsc[0.5\twoletkern]Ia} +\newcommand*{\Is}{\@twoletannsc[0.5\twoletkern]Is} +\newcommand*{\Da}{\@twoletannsc[0.5\twoletkern]Da} +\newcommand*{\Ds}{\@twoletannsc[0.5\twoletkern]Ds} % \end{macrocode} % \end{macro} % @@ -1771,8 +1813,8 @@ This work consists of actuarialsymbol.dtx and the derived files. % \label{sec:implementation:preced} % % The system of precedence numbers builds on a backbone that used to -% be part of package \pkg{actuarialangle}. The author of the code is -% unknown. Some of the comments on \cmd{\@precendence}, below, are his +% be part of the package \pkg{actuarialangle}. The original author of the code is +% unknown. Some of the comments on \cmd{\@precedence}, below, are his % or hers. % % \subsubsection{User level lengths and commands} @@ -1784,15 +1826,16 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{macro}{\nthbottomskip} % Let us start by defining the lengths needed to position the % precedence numbers above or below the statuses. +% \changes{1.1}{2019-01-08}{Use relative lengths.} % \begin{macrocode} \newlength{\nthtopsep} -\setlength{\nthtopsep}{2\p@} +\setlength{\nthtopsep}{0.18em} \newlength{\nthtopskip} -\setlength{\nthtopskip}{7\p@} +\setlength{\nthtopskip}{0.64em} \newlength{\nthbottomsep} -\setlength{\nthbottomsep}{2\p@} +\setlength{\nthbottomsep}{0.18em} \newlength{\nthbottomskip} -\setlength{\nthbottomskip}{9\p@} +\setlength{\nthbottomskip}{0.82em} % \end{macrocode} % \end{macro} % \end{macro} @@ -1805,13 +1848,13 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{macrocode} \DeclareRobustCommand{\nthtop}{\@ifstar\@varnthtop\@nthtop} \DeclareRobustCommand{\nthbottom}{\@ifstar\@varnthbottom\@nthbottom} -\newcommand{\@nthtop}[3][\nthtopsep]{% +\newcommand*{\@nthtop}[3][\nthtopsep]{% \mathpalette{\@precedence t\z@{#1}{#2}}{#3}} -\newcommand{\@varnthtop}[3][\nthtopskip]{% +\newcommand*{\@varnthtop}[3][\nthtopskip]{% \mathpalette{\@precedence t{#1}\z@{#2}}{#3}} -\newcommand{\@nthbottom}[3][\nthbottomsep]{% +\newcommand*{\@nthbottom}[3][\nthbottomsep]{% \mathpalette{\@precedence b\z@{#1}{#2}}{#3}} -\newcommand{\@varnthbottom}[3][\nthbottomskip]{% +\newcommand*{\@varnthbottom}[3][\nthbottomskip]{% \mathpalette{\@precedence b{#1}\z@{#2}}{#3}} % \end{macrocode} % \end{macro} @@ -1834,10 +1877,11 @@ This work consists of actuarialsymbol.dtx and the derived files. % \begin{macro}{\@varnthtop} % \begin{macro}{\@varnthbottom} % Option |compactpreced| does the opposite. +% \changes{1.1}{2019-01-08}{Add missing \texttt{@}'s in macro names.} % \begin{macrocode} \ifacts@compactpreced - \let\@varnthtop\nthtop - \let\@varnthbottom\nthbottom + \let\@varnthtop\@nthtop + \let\@varnthbottom\@nthbottom \fi % \end{macrocode} % \end{macro} @@ -1865,18 +1909,18 @@ This work consists of actuarialsymbol.dtx and the derived files. % restriction of \cmd{\mathpalette} that it only reads two % arguments. % \begin{macrocode} -\def\@precedence#1#2#3#4#5#6{% +\newcommand*\@precedence[6]{% \setbox\tw@\hbox{$\m@th#5#4$}% - \setbox\z@\hbox{$\m@th#5#6$} + \setbox\z@\hbox{$\m@th#5#6$}% \dimen@\wd\z@ \vbox to\ht\z@{% - \baselineskip=#2 - \lineskip=#3 + \baselineskip=#2% + \lineskip=#3% \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{macrocode} % \end{macro} -- cgit v1.2.3