diff options
Diffstat (limited to 'Master/texmf-dist/source')
18 files changed, 3023 insertions, 1641 deletions
diff --git a/Master/texmf-dist/source/latex/afparticle/afparticle.dtx b/Master/texmf-dist/source/latex/afparticle/afparticle.dtx deleted file mode 100644 index 6b3e9aa60d4..00000000000 --- a/Master/texmf-dist/source/latex/afparticle/afparticle.dtx +++ /dev/null @@ -1,1069 +0,0 @@ -% \iffalse -%<*gobble> -% $Id: afparticle.dtx,v 1.14 2014-12-23 17:13:00 boris Exp $ -% -% Copyright 2014, Boris Veytsman <boris@varphi.com> -% 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. -% The latest version of the license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of -% LaTeX version 2005/12/01 or later. -% -% This work has the LPPL maintenance status `maintained'. -% -% The Current Maintainer of this work is Boris Veytsman -% -% This work consists of the file afparticle.dtx and the -% derived file afparticle.cls -% -% \fi -% \CheckSum{689} -% -%% \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 \~} -% -% \iffalse -% -% -%\section{Identification} -%\label{sec:ident} -% -% We start with the declaration who we are -% \begin{macrocode} -%</gobble> -%<class>\NeedsTeXFormat{LaTeX2e} -%<*gobble> -\ProvidesFile{afparticle.dtx} -%</gobble> -%<class>\ProvidesClass{afparticle} -[2014/12/23 v1.3 Typesetting articles for Archives of Forensic Psychology] -%<*gobble> -% \end{macrocode} -% -% -% \fi -% -%\iffalse -% \begin{macrocode} -\documentclass{ltxdoc} -\usepackage{array} -\usepackage{url} -\usepackage{hypdoc} -\hypersetup{breaklinks,colorlinks,linkcolor=black,citecolor=black, - pagecolor=black,urlcolor=black,hyperindex=false} -\PageIndex -\CodelineIndex -\RecordChanges -\EnableCrossrefs -\begin{document} - \DocInput{afparticle.dtx} -\end{document} -% \end{macrocode} -%</gobble> -%<*class> -% \fi -% \MakeShortVerb{|} -% \GetFileInfo{afparticle.dtx} -% \title{Typesetting Articles for \emph{Archives of Forensic Psychology}\thanks{\copyright 2014, Boris Veytsman}} -% \author{Boris Veytsman\thanks{% -% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}}, -% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}} -% \date{\filedate, \fileversion} -% \maketitle -% \begin{abstract} -% This package provides a class for typesetting articles for the -% journal \emph{Archives of Forensic Psychology}, -% \url{http://www.archivesofforensicpsychology.com}. -% \end{abstract} -% \tableofcontents -% -% \clearpage -% -% -%\section{Introduction} -%\label{sec:intro} -% -% \emph{Archives of Forensic Psychology} is an Open Access journal. -% It is described on its Web -% page\footnote{\url{http://www.archivesofforensicpsychology.com}} in -% the following way: -% \begin{quotation} -% Archives of Forensic Psychology (AFP) is an innovative, -% peer-reviewed journal published twice per year. Our mission is to -% link the science and practice of forensic psychology, by making -% research and clinical resources freely available to all mental -% health, correctional, and legal professionals. AFP welcomes -% empirical research, book and instrument reviews, case studies, -% commentaries, literature reviews, and policy -% recommendations. Particularly encouraged is the submission of -% non-significant results as well as the findings of government -% reports, conference presentations, Master's theses, and -% doctoral dissertations. -% \end{quotation} -% -% The class |afparticle| is based on the |elsarticle| -% class~\cite{elsarticle} with the following changes: -% \begin{enumerate} -% \item Some formatting changes: unnumbered sections and paragraphs -% and others. -% \item A different formatting of the title page. -% \item Creation of the special file with the metadata used for the -% Crossref submission. -% \item Consistent use of APA~6 citation style. -% \end{enumerate} -% Most of these changes should be transparent for the user; in the -% next section we discuss the user-visible ones in more detail. -% -% -%\section{User Manual} -%\label{sec:manual} -% -% The user should consult the manual of -% |elsarticle|~\cite{elsarticle}; below we describe only the features -% different for |afparticle| class. -% -%\subsection{Invocation} -%\label{sec:invocation} -% -% -% To use the class put in the preamble of your document -% \begin{verbatim} -% \documentclass{afparticle} -% \end{verbatim} -% The class supports the same options as |elsarticles| with the -% following restrictions: -% \begin{enumerate} -% \item Options |3p| and |5p| are suppressed. The -% journal uses only |1p| one-column design. Use options |preprint| and -% |review| to typeset the article for submission, and |1p| for the -% final typesetting. -% \item Options |authoryear|, |number|, |sort&compress| are -% suppressed. The journal uses |apacite| package~\cite{Meijer:Apacite} for the -% bibliography (see below). -% \end{enumerate} -% -% -% To add line numbers to the manuscript, use -% \begin{verbatim} -% \usepackage{lineno} -% \end{verbatim} -% and then either -% \begin{verbatim} -% \begin{linenumbers} -% ... -% \end{linenumbers} -% \end{verbatim} -% or the global command -% \begin{verbatim} -% \linenumbers -% \end{verbatim} -% -% -%\subsection{Front Matter} -%\label{sec:ug:frontmatter} -% -% \DescribeMacro{\maketitle} -% Unlike |elsartclass|, |afparticle| does \emph{not} usesthe -% environment |frontmatter|. Instead, use \cs{maketitle} like you do -% in the standard \LaTeX\ article. -% -% \emph{Archives of Forensic Psychology} normally uses the -% ``second type of frontmatter coding''~\cite{elsarticle}: the authors -% with the same affiliation are grouped together, and the affiliation -% follows the group. -% -% \DescribeMacro{\tnoteref} -% \DescribeMacro{\corref} -% \DescribeMacro{\fnref} -% As different from |elsarticle|, the frontmatter commands -% \emph{do not allow footnotes inside their arguments.} Thus the commands -% \cs{tnoteref}, \cs{corref}, \cs{fnref} are not allowed and produce -% errors. Please do not use them. -% -% \DescribeMacro{\author*} -% Of course, there should be a way to show the corresponding author of -% the manuscript. For this purpose the command \cs{author} has a -% starred form \cs{author}: -% \begin{verbatim} -% \author*{John Doe} % Corresponding author -% \address{George Mason University, Mailstop 76A12, -% Fairfax, VA, 22030, USA, -% \path{jdoe@gmu.edu}} -% \author{Alexander Hamilton} % Other author -% \address{George Washington University} -% \end{verbatim} -% Please note that the journal requires the corresponding author to -% indicate her full mailing address and e-mail. -% -% \DescribeMacro{\shortauthors} -% \LaTeX\ automatically puts the names of the authors into a running -% head on even pages. Sometimes when the list of authors is too -% large, it does not fit there. In this case put after all -% \cs{author} definitions the line -% \begin{verbatim} -% \renewcommand{\shortauthors}{SHORT LIST} -% \end{verbatim} -% for example, -% \begin{verbatim} -% \renewcommand{\shortauthors}{John Doe et. al.} -% \end{verbatim} -% -% \DescribeMacro{\title} -% Unlike \cs{title} in the standard \LaTeX\ and |elsarticle|, our -% \cs{title} has two arguments: the mandatory one and the optional -% one. The reason is, the class uses title for running heads on odd -% pages. If the title is too long, it may not fit, and then the -% optional argument is used for running heads: -% \begin{verbatim} -% \title{Notes on evidence} % Running head and title coincide -% \title[Notes on evidence]{Some notes on evidence as presented to the -% juries} % Running head and title are different -% \end{verbatim} -% -% \DescribeMacro{\volumenumber} -% \DescribeMacro{\issuenumber} -% \DescribeMacro{\publicationyear} -% \DescribeMacro{\publicationmonth} -% \DescribeMacro{\papernumber} -% \DescribeMacro{\startpage} -% \DescribeMacro{\endpage} -% The macros |\volumenumber|, |\issuenumber|, |\publicationyear|, -% |\publicationmonth|, |\papernumber|, |\startpage|, |\endpage| set up the -% corresponding -% data for the paper, for example: -% \begin{verbatim} -% \volumenumber{88} -% \issuenumber{1--2} -% \publicationyear{2012} -% \publicationmonth{January--February} -% \papernumber{2} -% \startpage{1} -% \endpage{39} -% \end{verbatim} -% Note that if the argument of |\endpage| is empty, \LaTeX{} tries to -% calculate the last page number as best as it can. -% -% \DescribeMacro{\received} -% \DescribeMacro{\revised} -% \DescribeMacro{\accepted} -% The macros \cs{received}\marg{date}, \cs{revised}\marg{date}, -% \cs{accepted}\marg{date} are used by the editorial staff for -% techincal information about the paper. These macros can be -% repeated. -% -% -% \DescribeMacro{\doinumber} -% Normally you do not need to set the DOI of the paper: \TeX{} will -% construct the number using the paper data (including paper number in -% the current issue). However, you \emph{may} override its decision -% using the command |\doinumber| which sets the DOI explicitly, for -% example, |\doinumber|\marg{12.234/afp.2013.01.01}. -% You probably should not use this macro. -% -% \DescribeMacro{\prevpaper} -% Instead of setting |\startpage|, one can use the the command -% |\prevpaper|\marg{previous paper}, with the argument being the -% location and file name of the previous paper in the journal, for example: -% \begin{verbatim} -% \prevpaper{../evidence/rules_of_evidence} -% \end{verbatim} -% Note that the |.tex| suffix should \emph{not} be used. The previous -% paper must be processed by |latex| prior to the current one. In -% this case |latex| will read the last page of the previous paper, and -% start the current one from the proper page number. -% -% -%\subsection{Back matter} -%\label{sec:ug_back} -% -% \DescribeMacro{\printbackmatter} -% The last command of the article must be \cs{printbackmatter}. It -% prints the technical information about the paper. -% -%\subsection{Sectioning} -%\label{sec:ug:sectioning} -% -% The class uses unnumbered sections, subsections and subsubsections. -% Never use period (.) at the end of the title: it is not allowed for -% sections and subsections and is automatically added by -% subsubsectons. -% -% -%\subsubsection{Tables and Figures} -%\label{sec:ug_floats} -% -% You may use tables and figures in the manuscript. Remember that -% table caption must \emph{precede} the table while figure captions -% follow the contents. -% -% -% -%\subsection{Bibliography} -%\label{sec:biblio} -% -% The class uses |apacite|~\cite{Meijer:Apacite} for bibliography with -% |natbibapa| option. The format of the bibliographic commands is -% described in the manuals~\cite{Meijer:Apacite} -% and~\cite{Daly07:Natbib}. Basically you need the commands -% \cs{citet}\marg{key} for textual citations like ``John Doe (2012) wrote -% that\ldots'' and \cs{citep}\marg{key} for parentetical citations -% like ``As shown in the literature (John Doe, 2012)\ldots''. -% -% If you use \textsc{Bib}\TeX, add to your file -% \cs{bibliography}\marg{bibfiles} and |\bibliography{apacite}|. For -% manual bibliographies you must use APA6 citation style. -% -% \StopEventually{\clearpage -% \bibliography{tex} -% \bibliographystyle{unsrt}} -% -% \clearpage -% -% -%\section{Implementation} -%\label{sec:impl} -% -% -% -%\subsection{Auxillary Macros} -%\label{sec:aux} -% -% \begin{macro}{AFP@DisableMacro} -% Some commands are disabled -% \begin{macrocode} -\def\AFP@DisableMacro#1{\ClassError{afparticle}{The macro - \expandafter\protect\csname#1\endcsname\space - is disabled}{The command - \expandafter\protect\csname#1\endcsname\space - is introduced in the - elsarticle class.\MessageBreak It is disabled in afpartcile - class}} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\@nx} -% \begin{macro}{\@xp} -% \begin{macro}{\@ifnotempty} -% From |amsart| -% \begin{macrocode} -\let\@xp=\expandafter -\let\@nx=\noexpand -\long\def\@ifempty#1{\@xifempty#1@@..\@nil} -\long\def\@xifempty#1#2@#3#4#5\@nil{% - \ifx#3#4\@xp\@firstoftwo\else\@xp\@secondoftwo\fi} -\long\def\@ifnotempty#1{\@ifempty{#1}{}} -% \end{macrocode} -% -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\nxandlist} -% This is from |amsart|: -% \begin{macrocode} -\newtoks\@emptytoks -\def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{% - \@andlistb#1{#3}}} -\def\@andlistb#1#2#3#4#5\and{% - \@ifempty{#5}{% - \@andlistc{#2#4}% - }{% - \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}% - }} -\let\@andlistc\@iden -\newcommand{\nxandlist}[4]{% - \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}% - \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}% - \the\@xp\toks@#4\and\and - \edef#4{\the\toks@}% - \let\@andlistc\@iden} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\@@and} -% The final `and' in the list -% \begin{macrocode} -\def\@@and{and} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\author@andify} -% Again |amsart| -% \begin{macrocode} -\def\author@andify{% - \nxandlist {\unskip ,\penalty-1 \space\ignorespaces}% - {\unskip {} \@@and~}% - {\unskip ,\penalty-2 \space\@@and~}% -} -% \end{macrocode} -% -% \end{macro} -% -% -%\subsection{Options} -%\label{sec:options} -% -% We use |xkeyval|: right now our options do not have values, but we -% may change this. -% \begin{macrocode} -\RequirePackage{xkeyval} -% \end{macrocode} -% -% \begin{macro}{AFP@OptionWarning} -% We disable some options and issue a warning: -% \begin{macrocode} -\def\AFP@OptionWarning#1{\ClassWarning{afparticle}{The option #1 is - not used for afparticle. I will silently ignore it}} -% \end{macrocode} -% \end{macro} -% -% -% The suppressed options: -% \begin{macrocode} -\DeclareOptionX{3p}{\AFP@OptionWarning{\CurrentOption}}% -\DeclareOptionX{5p}{\AFP@OptionWarning{\CurrentOption}}% -\DeclareOptionX{authoryear}{\AFP@OptionWarning{\CurrentOption}}% -\DeclareOptionX{number}{\AFP@OptionWarning{\CurrentOption}}% -\DeclareOptionX{sort&compress}{\AFP@OptionWarning{\CurrentOption}}% -% \end{macrocode} -% -% All non-suppressed options are passed to |elsarticle|: -% \begin{macrocode} -\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{elsarticle}} -% \end{macrocode} -% -% -% And executing options: -% \begin{macrocode} -\ProcessOptionsX -% \end{macrocode} -% -% -%\subsection{Loading Classes and Packages} -%\label{sec:classes} -% -% We want to prevent loading of natbib -% \begin{macrocode} -\@namedef{ver@natbib.sty}{} -\@namedef{opt@natbib.sty}{round,authoryear} -\newlength\bibsep -% \end{macrocode} -% -% We use |elasrticle| since it has nice features for front matter: -% \begin{macrocode} -\LoadClass[1p,authoryear,round]{elsarticle} -% \end{macrocode} -% -% We need |lastpage| for last page calculations, |fancyhdr| for our -% headings, |hyperref| for references and |caption| for caption -% formatting. -% \begin{macrocode} -\RequirePackage{lastpage,fancyhdr} -\RequirePackage{caption} -\RequirePackage{booktabs} -\RequirePackage{graphicx} -\RequirePackage[hyperfootnotes=false,colorlinks,allcolors=blue]{hyperref} -% \end{macrocode} -% -% And now we do want natbib! -% \begin{macrocode} -\expandafter\let\csname ver@natbib.sty\endcsname=\@undefined -\let\bibsep=\@undefined -\RequirePackage[natbibapa]{apacite} -% \end{macrocode} -% -% -%\subsection{Front Matter} -%\label{sec:frontmatter} -% -% \begin{macro}{\abstract} -% We do not use the word ``abstract'' for abstract -\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup - \hsize=\textwidth\def\baselinestretch{1}% - \noindent\unskip\ignorespaces} - {\egroup} -% \end{macro} -% -% \begin{macro}{\tnoteref} -% This macro is disabled. -% \begin{macrocode} -\def\tnoteref#1{\AFP@DisableMacro{tnoteref}} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\corref} -% This macro is disabled. -% \begin{macrocode} -\def\corref#1{\AFP@DisableMacro{corref}} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\fnref} -% This macro is disabled. -% \begin{macrocode} -\def\fnref#1{\AFP@DisableMacro{fnref}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\title} -% This is from |amsart|: -% \begin{macrocode} -\renewcommand*{\title}[2][]{\gdef\shorttitle{#1}\gdef\@title{#2}} -\edef\title{\@nx\@dblarg - \@xp\@nx\csname\string\title\endcsname} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\ifAFP@corrauthor} -% This checks whether this author is the coresponding author -% \begin{macrocode} -\newif\ifAFP@corrauthor -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\authors} -% We store in \cs{authors} the list of authors separated by -% \cs{and}. -% \begin{macrocode} -\def\authors{} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\shortauthors} -% Initially we define \cs{shortauthors} as \cs{authors}, but the -% user can redefine it. -% \begin{macrocode} -\def\shortauthors{\authors} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\author} -% First, check whether this author is the corresponding author. -% \begin{macrocode} -\def\author{% - \@ifstar{\AFP@corrauthortrue\AFP@author}{\AFP@corrauthorfalse\AFP@author}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\AFP@author} -% The macro \cs{AFP@author} is our version of the standard -% \cs{autor} macro -% \begin{macrocode} -\def\AFP@author{\@ifnextchar[{\@@author}{\@author}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\@@author} -% This typesets an author with some footnotes -% \begin{macrocode} -\def\@@author[#1]#2{% - \ifx\@empty\authors - \gdef\authors{#2}% - \else - \g@addto@macro\authors{\and#2}% - \fi - \g@addto@macro\elsauthors{% - \normalsize\upshape - \def\baselinestretch{1}% - \authorsep#2\unskip}% - \ifAFP@corrauthor - \g@addto@macro\elsauthors{\textsuperscript{$\ast$,}}\fi - \g@addto@macro\elsauthors{% - \textsuperscript{%#1% - \@for\@@affmark:=#1\do{% - \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}% - \unskip\sep\affnum\let\sep=,}% - \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi - \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi - }% - \def\authorsep{\unskip,\space}% - \global\let\sep\@empty\global\let\@corref\@empty - \global\let\@fnmark\@empty}% - \@eadauthor={#2} -} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\@author} -% No footnote marks after the author: -% \begin{macrocode} -\def\@author#1{% - \ifx\@empty\authors - \gdef\authors{#1}% - \else - \g@addto@macro\authors{\and#1}% - \fi - \g@addto@macro\elsauthors{\normalsize% - \def\baselinestretch{1}% - \upshape\authorsep#1} - \ifAFP@corrauthor - \g@addto@macro\elsauthors{\textsuperscript{$\ast$}}\fi - \g@addto@macro\elsauthors{% - \def\authorsep{\unskip,\space}% - \global\let\@fnmark\@empty - \global\let\sep\@empty}% - \@eadauthor={#1} -} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\@address} -% \changes{v1.0}{2014/08/18}{Added macro} -% We redefine |elsarticle| macro to change the vertical spacing -% \begin{macrocode} -\long\def\@address#1{\g@addto@macro\elsauthors{% - \def\baselinestretch{1}\def\addsep{\par\vskip4pt}% - \addsep\footnotesize\itshape#1% - \def\authorsep{\par\vskip16pt}}} -% \end{macrocode} -% -% \end{macro} -% -% -% The next lines are from |resphilosophica| class -% \begin{macro}{\paperUrl} -% The url to submit to crossref -% \begin{macrocode} -\def\paperUrl#1{\gdef\@paperUrl{#1}} -\paperUrl{} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\@mainrpi} -% The stream for the rpi file: -% \begin{macrocode} -\newwrite\@mainrpi -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\RESP@write@paper@info} -% This writes the information about the paper into the file -% |jobname.rpi|. Note that hyperref makes our life a little bit -% more complex -% \begin{macrocode} -\def\RESP@write@paper@info{% - \bgroup - \if@filesw - \openout\@mainrpi\jobname.rpi% - \write\@mainrpi{\relax}% - \ifx\r@LastPage\@undefined - \edef\@tempa{\start@page}% - \else - \def\@tempb##1##2##3##4##5{##2}% - \edef\@tempa{\expandafter\@tempb\r@LastPage}% - \fi - \def\and{\string\and\space}% - \protected@write\@mainrpi{}% - {\string\articleentry{\authors}{\@title}{\start@page}{\@tempa}}% -% \end{macrocode} -% The next lines are for crossref software -% \begin{macrocode} - \protected@write\@mainrpi{}% - {\@percentchar authors=\authors}% - \protected@write\@mainrpi{}% - {\@percentchar title=\@title}% - \protected@write\@mainrpi{}% - {\@percentchar year=\currentyear}% - \protected@write\@mainrpi{}% - {\@percentchar volume=\currentvolume}% - \protected@write\@mainrpi{}% - {\@percentchar issue=\currentissue}% - \protected@write\@mainrpi{}% - {\@percentchar paper=\currentpaper}% - \protected@write\@mainrpi{}% - {\@percentchar startpage=\start@page}% - \protected@write\@mainrpi{}% - {\@percentchar endpage=\@tempa}% - \protected@write\@mainrpi{}% - {\@percentchar doi=\@doinumber}% - \ifx\@paperUrl\@empty\else - \protected@write\@mainrpi{}% - {\@percentchar paperUrl=\@paperUrl}% - \fi - \closeout\@mainrpi - \fi -\egroup} -% \end{macrocode} -% -% \end{macro} -% -% -% \begin{macro}{\maketitle} -% \changes{v1.0}{2014/08/18}{Moved the text down} -% Our macro is simpler than that of |elsarticle|, since we have -% fewer options. -% \begin{macrocode} -\def\maketitle{% - \null\bigskip\par - \iflongmktitle\getSpaceLeft - \global\setbox\els@boxa=\vsplit0 to \@tempdima - \box\els@boxa\par\resetTitleCounters - \printFirstPageNotes - \box0% - \else - \finalMaketitle\printFirstPageNotes - \fi - \RESP@write@paper@info - \author@andify\authors - \xdef\authors{\authors}% - \gdef\thefootnote{\arabic{footnote}}% - \thispagestyle{firstpagestyle}% -} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\volumenumber} -% This sets the volume of the paper -% \begin{macrocode} -\def\volumenumber#1{\gdef\currentvolume{#1}} -\volumenumber{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\issuenumber} -% This sets the issue of the paper: -% \begin{macrocode} -\def\issuenumber#1{\gdef\currentissue{#1}} -\issuenumber{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\publicationyear} -% This sets the year of the paper -% \begin{macrocode} -\def\publicationyear#1{\gdef\currentyear{#1}} -\publicationyear{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\publicationmonth} -% This sets the month of the paper -% \begin{macrocode} -\newcommand\publicationmonth[2][]{\gdef\currentmonth{#2}% - \gdef\abbrevcurrentmonth{#1}% - \ifx\abbrevcurrentmonth\@empty\gdef\abbrevcurrentmonth{#2}\fi} -\publicationmonth{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\papernumber} -% This is absent from the |\issueinfo|. -% \begin{macrocode} -\def\papernumber#1{\gdef\currentpaper{#1}} -\papernumber{0000} -% -% \end{macro} -% -% -% \begin{macro}{\doinumber} -% \begin{macrocode} -\def\doinumber#1{\gdef\@doinumber{#1}} -\doinumber{123.4567/archivesforensicpsychology.\currentyear.\currentvolume.\currentissue.\currentpaper} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\startpage} -% This defines the starting page of the paper. We have some nice -% features to set up roman page numbers for editorial -% stuff---probably not needed for this journal at this time\dots -% \begin{macrocode} -\def\startpage#1{\pagenumbering{arabic}\setcounter{page}{#1}% - \gdef\start@page{#1}% - \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}% - \gdef\start@page{\romannumeral#1}% - \fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\endpage} -% This macro again has a twist in it: if the argument is not set, it -% calculates the last page number itself. -% \begin{macrocode} -\def\endpage#1{\def\@tempa{#1}% - \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}% - \else\def\end@page{#1}\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\pagespan} -% This macro is different from the one provided by |amsart| -% because we want to have the option of automatic calculation of the -% last page number. -% \begin{macrocode} -\def\pagespan#1#2{\startpage{#1}\endpage{#2}} -\pagespan{1}{} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\articleentry} -% This is necessary for |\prevpaper| command. We read the TOC entry -% from the previous paper and increment it by 1. Note that we -% always start with on an odd page, since the additional check -% \begin{macrocode} -\def\articleentry#1#2#3#4{\@tempcnta=#4\relax - \advance\@tempcnta by 1\relax - \ifodd\the\@tempcnta\else\advance\@tempcnta by 1\relax\fi - \startpage{\the\@tempcnta}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\prevpaper} -% This sets the previous paper location and reads the information -% from the previous paper -% \begin{macrocode} -\def\prevpaper#1{\IfFileExists{#1.rpi}{% - \ClassInfo{afparticle}{% - Reading first page number from the file #1.rpi}% - \input{#1.rpi}% - }{\ClassWarning{afparticle}{Cannot find the file #1.rpi. - Did you run latex on the previous paper?}}} -% \end{macrocode} -% -% \end{macro} -% -% -%\subsection{Back Matter} -%\label{sec:back} -% -% \begin{macro}{\AFP@backmatter} -% The technical information about the paper. -% \begin{macrocode} -\def\AFP@backmatter{} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\received} -% Date of receiving -% \begin{macrocode} -\def\received#1{\g@addto@macro\AFP@backmatter{Received: #1\\}} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\revised} -% Date of receiving a revision -% \begin{macrocode} -\def\revised#1{\g@addto@macro\AFP@backmatter{Revision Received: #1\\}} -% \end{macrocode} -% -% \end{macro} -% \begin{macro}{\accepted} -% Date of acceptance -% \begin{macrocode} -\def\accepted#1{\g@addto@macro\AFP@backmatter{Accepted: #1\\}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macrocode} -% \end{macrocode} -% -% \begin{macro}{\printbackmatter} -% Print the back matter -% \begin{macrocode} -\def\printbackmatter{\ifx\AFP@backmatter\@empty\else\medskip - \begin{flushright}% - \AFP@backmatter - \end{flushright}% -\fi} -% \end{macrocode} -% -% \end{macro} -% -%\subsection{Page styles} -%\label{sec:styles} -% -% In |preprint| mode |elsarticle| uses one side style. We want to -% override this: -% \begin{macrocode} -\AtBeginDocument{\@twosidetrue} -% \end{macrocode} -% -% \begin{macro}{\footskip} -% We want generous \cs{footskip} -% \begin{macrocode} -\setlength\footskip{40\p@} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\headrulewidth} -% \begin{macro}{\footrulewidth} -% We do not want decorative rules in the journal: -% \begin{macrocode} -\renewcommand{\headrulewidth}{0pt} -\renewcommand{\footrulewidth}{0pt} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{standardpagestyle} -% The page style for all pages but the first one -% \begin{macrocode} -\fancypagestyle{standardpagestyle}{% - \fancyhead{}% - \fancyfoot{}% - \fancyfoot[R]{\thepage}% - \fancyhead[CE]{\scshape\MakeLowercase{\shortauthors}}% - \fancyhead[CO]{\scshape\MakeLowercase{\shorttitle}}% -} -\pagestyle{standardpagestyle} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{firstpagestyle} -% \changes{v1.2}{2014/10/22}{Corrected masthead} -% \changes{v1.3}{2014/12/23}{Corrected another typo in masthead} -% The page style for the first page -% \begin{macrocode} -\fancypagestyle{firstpagestyle}{% - \fancyhead{}% - \fancyfoot{}% - \fancyfoot[R]{\thepage}% - \fancyhead[L]{\small Archives of Forensic Psychology\\ - \currentyear, Vol.~\currentvolume, No.~\currentissue, - \thepage--\end@page}% - \fancyhead[R]{\small\textcopyright~\currentyear\ Global Institute of - Forensic Psychology\\ISSN~2334-2749}% -} -% \end{macrocode} -% \end{macro} -% -% -%\subsection{Paragraphing} -%\label{sec:paras} -% -% \begin{macro}{\parindent} -% We want generous indents -% \begin{macrocode} -\setlength\parindent{2em} -% \end{macrocode} -% -% \end{macro} -% -% -%\subsection{Sectioning} -%\label{sec:sectioning} -% -% \begin{macro}{secnumdepth} -% We do not number sections -% \begin{macrocode} -\setcounter{secnumdepth}{-1} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\section} -% We center our sections: -% \begin{macrocode} -\renewcommand\section{\@startsection {section}{1}{\z@}% - {18\p@ \@plus 6\p@ \@minus 3\p@}% - {9\p@ \@plus 6\p@ \@minus 3\p@}% - {\centering\normalsize\bfseries\boldmath}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\subsection} -% Our subsections look like sections, but flushed left -% \begin{macrocode} -\renewcommand\subsection{\@startsection {subsection}{2}{\z@}% - {18\p@ \@plus 6\p@ \@minus 3\p@}% - {9\p@ \@plus 6\p@ \@minus 3\p@}% - {\normalsize\bfseries\boldmath}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\subsubsection} -% Our subsubsections are italicized and written on the same line as -% the text. Also, they end with dots. -% \begin{macrocode} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{0\z@}% - {0\z@}% - {-6\p@}% - {\normalfont\hspace*{\parindent}\itshape\@addfinaldot}} -% \end{macrocode} -% -% \end{macro} -% -% \begin{macro}{\@addfinaldot} -% Add a dot after a text -% \begin{macrocode} -\def\@addfinaldot#1{#1.} -% \end{macrocode} -% -% \end{macro} -% -% -%\subsection{Floats} -%\label{sec:floats} -% \changes{v1.0}{2014/08/18}{Centered captions} -% Setting up table captions -% \begin{macrocode} -\DeclareCaptionLabelSeparator{periodNewline}{.\\} -\captionsetup[table]{position=top, format=plain, - labelsep=periodNewline, justification=centering, - singlelinecheck=off, font=normalsize, textfont=it} -% \end{macrocode} -% -% Setting up figure captions -% \begin{macrocode} -\captionsetup[figure]{position=bottom, format=plain, - labelsep=period, justification=centering, - singlelinecheck=off, font=normalsize, labelfont=it} -% \end{macrocode} -% -% -%\subsection{Final Words} -%\label{sec:finis} -% -% \changes{v1.1}{2014/10/20}{Added changes requested by the editor and -% implemented by David Latchman, -% david.latchman@texnical-designs.com: no hyphenation throughout the -% entire manuscript} -% -% \begin{macrocode} -\tolerance=1 -\emergencystretch=\maxdimen -\hyphenpenalty=10000 -\hbadness=10000 -\normalsize\normalfont -%</class> -% \end{macrocode} -% -%\Finale -%\clearpage -% -%\PrintChanges -%\clearpage -%\PrintIndex -% -\endinput diff --git a/Master/texmf-dist/source/latex/afparticle/afparticle.ins b/Master/texmf-dist/source/latex/afparticle/afparticle.ins deleted file mode 100644 index 3badd737973..00000000000 --- a/Master/texmf-dist/source/latex/afparticle/afparticle.ins +++ /dev/null @@ -1,29 +0,0 @@ -% -% Docstrip file for afparticle -% This file is in public domain -% $Id: afparticle.ins,v 1.1 2014-07-16 22:18:28 boris Exp $ -% -\def\batchfile{afparticle.ins} -\input docstrip -\keepsilent -\showprogress - - -\askforoverwritefalse - -\generate{% - \file{afparticle.cls}{\from{afparticle.dtx}{class}}} - -\obeyspaces -\Msg{*****************************************************}% -\Msg{* Congratulations! You successfully generated the *}% -\Msg{* afparticle package. *}% -\Msg{* *}% -\Msg{* Please move afparticle.cls to the place for LaTeX *}% -\Msg{* files in your system. The manual is in the file *}% -\Msg{* afparticle.pdf. *}% -\Msg{* *}% -\Msg{* The package is released under LPPL *}% -\Msg{* *}% -\Msg{* Happy TeXing! *}% -\Msg{*****************************************************}%
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.dtx b/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.dtx new file mode 100644 index 00000000000..885d0209edd --- /dev/null +++ b/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.dtx @@ -0,0 +1,327 @@ +% \iffalse +%<*internal> +\iffalse +%</internal> +%<*readme> +___________________ +The complexpolylongdiv package +v0.2 + +This package provides a simple interface for typesetting +(complex) polynomial long division. + +If you want to report any bugs or typos and corrections in the +documentation, or ask for any new features, or suggest any +improvements, or ask any questions about the package, then +please use the issue tracker: + + <https://github.com/xepersian/complexpolylongdiv/issues> + +In doing so, please always explain your issue well enough, +and always include a minimal working example showing the +issue. + +You may also have conversations, ask questions and post answers +without opening issues using the Discussions space: + + <https://github.com/xepersian/complexpolylongdiv/discussions> + +The announcements for the new releases of the package will +also appear in the Discussions space under the Announcements +category. + +Current version release date: 2024/12/30 + +___________________________________________ +Vafa Khalighi + +Copyright (c) Vafa Khalighi 2024--2025 + +It may be distributed and/or modified under the LaTeX Project Public License, +version 1.3c or higher (your choice). The latest version of +this license is at: http://www.latex-project.org/lppl.txt + +This work is “author-maintained” (as per LPPL maintenance status) +by Vafa Khalighi. +%</readme> +%<*internal> +\fi +\begingroup +%</internal> +%<*batchfile> +\input docstrip.tex +\keepsilent +\preamble + + __________________________________________________ + Vafa Khalighi + + Copyright (c) 2024--2025 Vafa Khalighi + + It may be distributed and/or modified under the LaTeX Project Public License, + version 1.3c or higher (your choice). The latest version of + this license is at: http://www.latex-project.org/lppl.txt + + This work is “author-maintained” (as per LPPL maintenance status) + by Vafa Khalighi. + + +\endpreamble +\askforoverwritefalse +\generate{\file{complexpolylongdiv.sty}{\from{\jobname.dtx}{table,complexpolylongdiv.sty}}} +%</batchfile> +%<batchfile>\endbatchfile +%<*internal> +\generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}} +\nopreamble\nopostamble +\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}} +\generate{\file{complexpolylongdiv-example.tex}{\from{\jobname.dtx}{complexpolylongdiv-example.tex}}} +\endgroup +\immediate\write18{mv README.txt README} +\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx} +\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo} +%</internal> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{complexpolylongdiv} +\usepackage{bidicode} +\usepackage{microtype} +\definecolor{niceblue}{rgb}{0.2,0.4,0.8} +\usepackage[numbered]{hypdoc} +\hypersetup{% + pdfauthor={Vafa Khalighi},% + linkcolor=niceblue,% + urlcolor=niceblue,% + citecolor=niceblue% +} +\pdfstringdefDisableCommands{% +\renewcommand\Lcs[1]{\textbackslash#1} +} +\EnableCrossrefs +\CodelineIndex +%\RecordChanges +\begin{document} + \DocInput{\jobname.dtx} + \PrintIndex +% \PrintChanges +\end{document} +%</driver> +% +% +% \fi +% +% \GetFileInfo{\jobname.dtx} +% \title{The \textsf{complexpolylongdiv} Package} +% \author{Vafa Khalighi} +%\maketitle +% +%\begingroup +%\parindent 0pt +%\vskip 0pt plus 3fill +%{\color{red!85!black}\fbox{\begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule} +%If you want to report any bugs or typos and corrections in the documentation, +%or ask for any new features, or suggest any improvements, or ask any questions about the package, then please use the issue tracker: +% +%\medskip +% \centerline{\url{https://github.com/xepersian/complexpolylongdiv/issues}} +% +%\medskip +%In doing so, please always explain your issue well enough, and always include +%a minimal working example showing the issue. +% +%\bigskip +%You may also have conversations, ask questions and post answers +%without opening issues using the Discussions space: +% +%\medskip +% \centerline{\url{https://github.com/xepersian/complexpolylongdiv/discussions}} +% +%\medskip +%The announcements for the new releases of the package will +%also appear in the Discussions space under the Announcements +%category. +%\end{minipage} +%}} +% +%\vskip 0pt plus 3fill +% +%Copyright (c) 2024--2025 Vafa Khalighi +% +%\medskip +%Permission is granted to distribute and/or modify \emph{both the documentation and the code} under the conditions of the \LaTeX{} Project Public License, either version 1.3c of this license or (at your option) any later version. +%\endgroup +% +%\clearpage +% \tableofcontents +% \section{Introduction} +%To the best of my knowledge, there is no {\TeX} package for +%typesetting (complex) polynomial long division. The +%\textsf{complexpolylongdiv} package provides a simple interface +%for typesetting (complex) polynomial long division. +% +%The package does not provide automatic (complex) polynomial long +%division at present and the long division should be done by hand. +%However, if there is enough interest in the package, I will add this +%feature in the next version. +% +%\section{Using the package} +%\subsection{Loading The Package} +%You can load the package in the ordinary way: +%\begin{BDef} +%\Lcs{usepackage}\Largb{complexpolylongdiv} +%\end{BDef} +%\subsection{The user interface} +%The package provides the environment \texttt{complexpolylongdiv} +%and the control sequence \Lcs{complexpolyquotient} for +%typesetting (complex) polynomial long division. +%\subsubsection{The \texttt{complexpolylongdiv} environment} +%\begin{BDef} +%\LBEG{complexpolylongdiv}\OptArg{pos}\quad\Larga{content}\quad\LEND{complexpolylongdiv} +%\end{BDef} +% +%The \OptArg{pos} is optional and determines the vertical alignment of +%the (complex) polynomial long division. If \texttt{pos} is \texttt{t}, then +%the \Larga{content} is placed vertically at the top and if \texttt{pos} is \texttt{b}, then +%the \Larga{content} is placed vertically at the bottom; otherwise, +%the \Larga{content} is placed vertically at the center (the default +%when the optional \OptArg{pos} is omitted). +% +%\subsubsection{The control sequence \Lcs{complexpolyquotient}} +%\begin{BDef} +%\Lcs{complexpolyquotient}\Largb{\Larga{quotient}} +%\end{BDef} +% +%The control sequence \Lcs{complexpolyquotient} typesets \Larga{quotient}. +% +%\subsection{An Example} +%\begin{lstlisting}[gobble=1] +%\documentclass{article} +%\usepackage{complexpolylongdiv} +%\begin{document} +%\begin{equation} +%\begin{complexpolylongdiv} +%&x+1-2i \\ +%x-1&\complexpolyquotient{x^2-2ix+6}\\ +%-&\underline{x^2-x}\\ +% -&(1-2i)x+6\\ +% -&\underline{(1-2i)x-(1-2i)}\\ +% &7-2i +%\end{complexpolylongdiv} +%\end{equation} +%\end{document} +%\end{lstlisting} +% +%\begin{equation} +%\begin{complexpolylongdiv} +%&x+1-2i \\ +%x-1&\complexpolyquotient{x^2-2ix+6}\\ +%-&\underline{x^2-x}\\ +% -&(1-2i)x+6\\ +% -&\underline{(1-2i)x-(1-2i)}\\ +% &7-2i\\ +%\end{complexpolylongdiv} +%\end{equation} +% +% \StopEventually{} +% \section{Implementation} +%\iffalse +%<*table> +%\fi +%% \CheckSum{52} +%% \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 \~} +%% +% \iffalse +%</table> +%<*complexpolylongdiv.sty> +%\fi +% +% +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{complexpolylongdiv}[2024/12/30 v0.2 Typesetting (complex) polynomial long division] +\newenvironment{complexpolylongdiv}[1][c]{% + \let\\\@arraycr + \if #1t + \vtop + \else + \if#1b + \vbox + \else + \vcenter + \fi + \fi + \bgroup + \normalbaselines + \offinterlineskip + \setbox\strutbox\hbox{% + \vrule height 2.1ex depth .5ex width0ex}% + \tabskip=0pt + \halign\bgroup + \hfil$##$&$\,\hphantom{\big)}\mkern2mu ##$\hfil\strut\cr +}{% + \crcr + \egroup + \egroup +} +\newcommand*{\complexpolyquotient}[1]{% + \omit$\, + \overline{% + \vphantom{\big)}% + \hbox{% + \smash{% + \raise3.5\fontdimen8\textfont3\hbox{$\big)$}% + }% + }% + \mkern2mu #1 + }$% +} +% \end{macrocode} +% \iffalse +%</complexpolylongdiv.sty> +%\fi +% +% \Finale +% +% +%\iffalse +%<*complexpolylongdiv-example.tex> +\documentclass{article} +\usepackage{complexpolylongdiv} +\begin{document} +\begin{equation} +\begin{complexpolylongdiv} +&x+1-2i \\ +x-1&\complexpolyquotient{x^2-2ix+6}\\ +-&\underline{x^2-x}\\ + -&(1-2i)x+6\\ + -&\underline{(1-2i)x-(1-2i)}\\ + &7-2i +\end{complexpolylongdiv} +\end{equation} +\end{document} +%</complexpolylongdiv-example.tex> +%\fi +% +% \typeout{*************************************************************} +% \typeout{*} +% \typeout{* To finish the installation you have to move the file} +% \typeout{* `complexpolylongdiv.sty' into a directory searched by TeX.} +% \typeout{*************************************************************} +% +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.ins b/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.ins new file mode 100644 index 00000000000..55bfb7ce1e2 --- /dev/null +++ b/Master/texmf-dist/source/latex/complexpolylongdiv/complexpolylongdiv.ins @@ -0,0 +1,44 @@ +%% +%% This is file `complexpolylongdiv.ins', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% complexpolylongdiv.dtx (with options: `batchfile') +%% +%% __________________________________________________ +%% Vafa Khalighi +%% +%% Copyright (c) 2024--2025 Vafa Khalighi +%% +%% It may be distributed and/or modified under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is “author-maintained” (as per LPPL maintenance status) +%% by Vafa Khalighi. +%% +%% +\input docstrip.tex +\keepsilent +\preamble + + __________________________________________________ + Vafa Khalighi + + Copyright (c) 2024--2025 Vafa Khalighi + + It may be distributed and/or modified under the LaTeX Project Public License, + version 1.3c or higher (your choice). The latest version of + this license is at: http://www.latex-project.org/lppl.txt + + This work is “author-maintained” (as per LPPL maintenance status) + by Vafa Khalighi. + +\endpreamble +\askforoverwritefalse +\generate{\file{complexpolylongdiv.sty}{\from{\jobname.dtx}{table,complexpolylongdiv.sty}}} +\endbatchfile +\endinput +%% +%% End of file `complexpolylongdiv.ins'. diff --git a/Master/texmf-dist/source/latex/exesheet/exesheet.dtx b/Master/texmf-dist/source/latex/exesheet/exesheet.dtx index d3c92b9ef35..00a2b3afd88 100644 --- a/Master/texmf-dist/source/latex/exesheet/exesheet.dtx +++ b/Master/texmf-dist/source/latex/exesheet/exesheet.dtx @@ -23,16 +23,17 @@ %<class>\ProvidesClass{exesheet} %<package>\ProvidesPackage{exesheet} %<*class|package> -[2024/02/13 v2.7 .dtx Typesetting exercise or exam sheets] +[2024/12/22 v2.8 Typesetting exercise or exam sheets] %</class|package> %<*driver> -\documentclass{ltxdoc} -% -% uncomment the following lines if you want to use the exesheet class instead of ltxdoc -%\usepackage{doc} -%\AtBeginDocument{\MakeShortVerb{\|}} -%\providecommand\marg[1]{{\ttfamily\{}\meta{#1}{\ttfamily\}}} -%\providecommand\oarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}} +\documentclass{article} + +% comment the following lines to use the ltxdoc class instead of the doc package +\usepackage{hypdoc} +\AtBeginDocument{\MakeShortVerb{\|}} +\providecommand\marg[1]{{\ttfamily\{}\meta{#1}{\ttfamily\}}} +\providecommand\oarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}} + \usepackage[exetoc=false,marginwidth=unset,display=notes]{exesheet} \usepackage{schooldocs} \usepackage[utf8]{inputenc} @@ -85,24 +86,6 @@ %</driver> % \fi % -% \CheckSum{1206} -% -% \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{v0.0}{2010/09/01}{Initial personal version} % \changes{v0.9}{2020/01/02}{Initial documentation in French} % \changes{v1.0}{2020/07/22}{Initial public version with documentation in English} @@ -184,6 +167,11 @@ % - babel-french option 'StandardLists=true' works now if french is passed in documentclass % - completion of the comparison with other packages} % +% \changes{v2.8}{2024/12/22}{ +% - improvements in answers environment +% - starred environments tablenuma* and tablitem* no longer supported +% - character table and checksum removed from dtx file (useless)} +% % \GetFileInfo{exesheet.dtx} % % \maketitle @@ -259,6 +247,7 @@ % \psframe(-0.25,1.3)(12.75,-0.3) % Try this first command; easy! % +% \bigskip % To bring optional text closer to the exercise number, % you can employ |\unskip| which removes any preceding space. % Take a look at the following example, achieved with @@ -269,13 +258,13 @@ % % \bigskip % \DescribeMacro{\exercisename} -% The term ``\exercisename'' is automatically translated into various languages +% The word ``\exercisename'' is automatically translated into various languages % \footnote{Currently, translation is integrated into the package % for the following languages: French, German, Spanish, Italian, and Portuguese.} % depending on the language that is loaded (via \textsf{babel} or \textsf{polyglossia}). % You can alter it by modifying |\exercisename|. -% A better approach is to use macros from the \textsf{translations} -% package by Clemens Niederberger~\cite{TRAN} (which allows dynamic language switching), +% A better approach is to use macros from the \mbox{\textsf{translations}} +% package by Clemens Niederberger~\cite{TRAN} (which allows language switching), % \eg |\DeclareTranslation{swedish}{exesheet-exercise}{\"Ovning}}|. % % \smallskip @@ -288,7 +277,7 @@ % \smallskip % \DescribeMacro{\theexercise} % If you wish to alter only the numbering style, you can redefine -% the |\theexercise| command based on the |exercise| counter. +% |\theexercise| which is based on the |exercise| counter. % % \smallskip % \DescribeMacro{\labelexercisestyle} @@ -442,7 +431,7 @@ % that allows, among others things, % the typesetting of alternative list labels. For instance, typing % |\begin{enumerate}[label=\alph*),font=\itshape\normalfont]| -% will yield the labels ``\emph{a)}, \emph{b)}, \emph{c)}\ldots''. +% will produce the labels ``\emph{a)}, \emph{b)}, \emph{c)}\ldots''. % There are many other options available % (see the \textsf{enumitem}~\cite{ENUM} package documentation) % \footnote{Labels can also be modified using a ``shortlabel'' argument, @@ -522,7 +511,7 @@ % Clemens Niederberger~\cite{TASK}. % The usage of the optional argument \meta{opt} is % explained in the documentation of this package. -% For example, similar to the \textsf{enumitem} package~\cite{ENUM}, +% For example, similar to the \mbox{\textsf{enumitem}} package~\cite{ENUM}, % |label=\arabic*)| produces an Arabic numbering % followed by a closing parenthesis. % Additionally there are numerous possibilities for arranging items in original ways. @@ -534,7 +523,7 @@ % Notice that numbering occurs line by line in this context. % % \exercise -% \psframe(-0.25,1.3)(12.75,-2.8) +% \psframe(-0.25,1.3)(12.75,-2.7) % Calculate the derivative of the following functions: % \begin{tablenum1}(3) % \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$, @@ -568,26 +557,31 @@ % When \texttt{setlist=true}, place these commands \emph{after} |\begin{document}|. % % \medskip -% \DescribeEnv{tablenuma*} \DescribeEnv{tablitem*} % When you intend to utilize \texttt{tablenuma} (or \texttt{tablitem}) % immediately after inserting the |\item| command % within an \texttt{enumerate} environment, -% a vertical misplacement may occur. -% To achieve proper vertical spacing in such cases, we offer -% the starred environments \texttt{tablenuma*} and \texttt{tablitem*}, -% with corrected alignment as shown below: -% -% \noindent\psframe(-0.25,0.05)(12.75,-0.97) -% \psline[linewidth=0.1pt,linecolor=green,linestyle=dashed](0, -0.6)(10.5, -0.6) +% a vertical misplacement may occur as shown below: % \begin{enumerate} % \item -% \begin{tablenuma*}(3) \item One \item Two \item Three \end{tablenuma*} +% \begin{tablenuma}(3) \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$ +% \item $\ds g(x) = \ln \left( \frac{1-x}{1+x^2}\right)$, +% \item $\ds h(x) = \int_{0}^{1}\mathrm{e}^{xy}\, \mathrm{d}y$. +% \end{tablenuma} % \end{enumerate} +% To adjust the vertical alignment, include +% |\mbox{}\vspace|\marg{height} just after |\item| and before invoking |\begin{tablenuma}| +% (or |\begin{tablitem}|), where \meta{height} can be a positive or negative length. +% Here we used |\vspace{-5.4ex}|. % -% \medskip -% If the vertical alignment is still not perfect, include -% |\mbox{}\vspace|\marg{height} just after |\item| and before invoking |\begin{tablenuma*}| -% (or |\begin{tablitem*}|), where \meta{height} can be a positive or negative length. +% \noindent\psframe(-0.25,0.15)(12.75,-1.05) +% \psline[linewidth=0.1pt,linecolor=green,linestyle=dashed](0,-0.57)(12,-0.57) +% \begin{enumerate} +% \item \mbox{}\vspace{-5.4ex} +% \begin{tablenuma}(3) \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$ +% \item $\ds g(x) = \ln \left( \frac{1-x}{1+x^2}\right)$, +% \item $\ds h(x) = \int_{0}^{1}\mathrm{e}^{xy}\, \mathrm{d}y$. +% \end{tablenuma} +% \end{enumerate} % % \subsection{Items aligned by column: \texttt{colsenum}, \texttt{colsitem}} % \DescribeEnv{colsenum} @@ -602,7 +596,7 @@ % Here's an example with |\begin{colsenum}{3}|: % % \exercise -% \psframe(-0.25,1.3)(12.75,-2.65) +% \psframe(-0.25,1.3)(12.75,-2.7) % Calculate the derivative of the following functions: % \begin{colsenum}{3} % \item $\ds f(x) = \frac{1-x^2}{\mathrm{e}^x +\mathrm{e}^{-x}}$, @@ -731,21 +725,21 @@ % % \subsection{More about \texttt{answers} environments} % Internally, we have utilized the |\comment| and |\endcomment| macros -% from the \textsf{versions} package by Uwe Lück~\cite{VERS}. -% ^^A Several other packages also enable selective management of code portions. -% ^^A Notably, the \textsf{verbatim} package by Rainer Schöpf, -% ^^A \textsf{comment} by Victor Eijkhout, -% ^^A \textsf{version} by Donald Arseneau and Stephen Bellantoni, -% ^^A \textsf{optional} by Donald Arseneau -% ^^A and \textsf{codesection} by Matthias Pospiech. +% from the \mbox{\textsf{versions}} package by Uwe Lück~\cite{VERS}. +% Several other packages also enable selective management of code portions. +% Notably, the \textsf{verbatim} package by Rainer Schöpf, +% \textsf{comment} by Victor Eijkhout, +% \textsf{version} by Donald Arseneau and Stephen Bellantoni, +% \textsf{optional} by Donald Arseneau +% and \textsf{codesection} by Matthias Pospiech. % Moreover, the \textsf{versions} package~\cite{VERS} offers % the |\excludeversion|\marg{env} and % |\includeversion|\marg{env} macros which allow for the exclusion or inclusion of % any environment \meta{env}. These ``optional'' environments -% can be nested. -% ^^A \footnote{The \textsf{codesection} package also supports -% ^^A such nesting, including within the preamble, as well as the \textsf{optional} package, -% ^^A but the latter manages only short sections of optional code.}. +% can be nested +% \footnote{The \textsf{codesection} package also supports +% such nesting, including within the preamble, as well as the \textsf{optional} package, +% but the latter manages only short sections of optional code.}. % % However the \texttt{questions} and \texttt{answers} environments % serve a broader purpose beyond merely displaying or hiding text. @@ -769,15 +763,6 @@ % other numbers for lower levels % (which won't appear in the table of contents or in the PDF file’s summary). % -% Caution should be taken that, if the \texttt{questions} environment is not used -% beforehand in the same exercise (or part), -% the \texttt{answers} environment will consider the correction as global -% for the entire sheet (or exercise) and will reset the \texttt{exercise} -% (or \texttt{part}) counter. -% This can be managed properly with the optional argument. -% For example, use |\begin{answers}[2]| to prevent \texttt{exercise} counter reset, -% or |\begin{answers}[3]| to prevent \texttt{subpart} counter reset. -% % \medskip % \DescribeMacro{answers*} % The starred version \texttt{answers*} doesn't display the @@ -840,7 +825,7 @@ % In the following example, we used % |\exercise[\points{5}]|: % \exercise[\points{5}] -% \psframe(-0.25,1.3)(12.75,-0.4) +% \psframe(-0.25,1.3)(12.75,-0.35) % Try to read this document to the end without drinking tea and you get five points. % % \bigskip @@ -965,7 +950,7 @@ % single one by specifying the number of points as an optional argument of the |\note| command: % |\note|\oarg{num}\marg{comment}. % -% The initial comment in the following example is generated (immediately after |\item|) using +% The first comment in the following example is obtained using (immediately after |\item|) % |\note[1]{0.5 for the anti-derivative\\0.5 for simplifying}|. % % \exercise[\totalexe{4}] \label{totalexe} @@ -1266,7 +1251,8 @@ % % \subsection{Comparison with other packages}\label{comparison} % -% In this section, we will provide an overview of the functionalities (as of today \today) +% In this section, we will provide an overview of the functionalities (when version 2.7 of +% this package was published, at February 13, 2024) % of various packages or classes found in the `Exercise' or `Exam' sections % of the CTAN archives % (Comprehensive \TeX\ Archive Network). @@ -1751,7 +1737,8 @@ \@ifundefined{frenchsetup}{}{\frenchsetup{StandardLists=true}} % executed at begin doc if loaded before babel \setlist[enumerate]{font=\enumfont} - \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex,leftmargin=1.5em} + \setlist[enumerate,1]{topsep=1.5ex plus 1ex minus 1ex, + leftmargin=1.5em} \fi % \end{macrocode} @@ -1795,22 +1782,6 @@ label-align=right, item-indent=2.5em,label-offset=0.5em, after-item-skip=0.5ex plus 0.5ex minus 0.5ex]{tablitem}[\item](2) - -% \end{macrocode} -% \DescribeEnv{tablenuma*} \DescribeEnv{tablitem*} -% The starred environments \texttt{tablenuma*} and \texttt{tablitem*} -% are designed to be employed within an \texttt{enumerate} environment, -% precisely at the outset of an |\item|, in order to achieve correct horizontal -% alignment. -% The length of |-1.667\baselineskip| has been tested with various font families and sizes. -% The alignment is generally good. -% \begin{macrocode} -\newenvironment{tablenuma*}{% - \mbox{}\vspace{-1.667\baselineskip}\begin{tablenuma}}{ - \end{tablenuma}} -\newenvironment{tablitem*}{% - \mbox{}\vspace{-1.667\baselineskip}\begin{tablitem}}{ - \end{tablitem}} % \end{macrocode} % \DescribeEnv{colsenum}\DescribeEnv{colsenum*} @@ -1946,7 +1917,8 @@ \newcounter{@toclevel} \newcommand{\set@toclevel}[1][]{ \ifthenelse{\equal{#1}{}}{ - \ifthenelse{\value{exercise} > \value{exe@ini}}{ + \ifthenelse{\(\value{exercise} > \value{exe@ini}\) + \and \(\value{exe@ini} > 0 \)}{ \setcounter{@toclevel}{1} }{% else \ifthenelse{\equal{\the\@enumdepth}{0}}{ @@ -1971,14 +1943,14 @@ \ifexesheet@exetoc \addcontentsline{toc}{section}{\correctionname} \fi - \setcounter{exercise}{0} + \setcounter{exercise}{\value{exe@ini}} }{% else if \ifthenelse{\value{@toclevel} = 2}{% \subsection*{\correctionstyle\correctionname} \ifexesheet@exetoc \addcontentsline{toc}{subsection}{\correctionname} \fi - \setcounter{subpart}{0} + \setcounter{subpart}{\value{subpart@ini}} }{% else if \ifthenelse{\value{@toclevel} = 3}{% \subsubsection*{\correctionstyle\correctionname} @@ -1997,9 +1969,9 @@ % \begin{macrocode} \newenvironment{answers}[1][]{% #1 is the optional level \ifthenelse{\boolean{exesheet@answers}}{% - \ifthenelse{\boolean{exesheet@questions}}{ - \set@toclevel[#1] - \typeset@correctionname + \ifthenelse{\boolean{exesheet@questions}}{% + \set@toclevel[#1]% + \typeset@correctionname% \correctionstyle% \ifexesheet@setlist \settasks{ @@ -2016,9 +1988,12 @@ \renewcommand{\columnseprulecolor}{% \color{correctioncolor}} \fi% - }{} + }{}% }{\comment} -}{\ifthenelse{\boolean{exesheet@answers}}{}{\endcomment}} +}{\ifthenelse{\boolean{exesheet@answers}}{% + \setcounter{exe@ini}{0} + \setcounter{subpart@ini}{0} + }{\endcomment}} \newenvironment{answers*}{ \ifthenelse{\boolean{exesheet@answers}}{\correctionstyle}{\comment} @@ -2096,7 +2071,7 @@ % and \texttt{noteragged} are handled using the following internal commands. % % \medskip -% The \texttt{display} key option determines the value of the two booleans +% The \texttt{display} key option determines the value of the booleans % |exesheet@pts| and |exesheet@notes|. % The |exesheet@pts| boolean controls the display of the content of |\pts| % and optional arguments of |\note|, @@ -2477,7 +2452,7 @@ % The test |#1 < 2| doesn't work with decimal numbers without |\lengthtest|, % but it works with lengths. % \end{macro} -% \DescribeMacro{\pts} +% \begin{macro}{\pts} % \begin{macrocode} \definecolor{ptscolor}{named}{red} \newcommand{\ptsstyle}[1]{% @@ -2496,7 +2471,7 @@ } % \end{macrocode} -% +% \end{macro} % \begin{macro}{\totalexe} % In the subsequent macros that utilize % |\marginpar|, the presence of percent symbols and |\ignorespaces| is essential diff --git a/Master/texmf-dist/source/latex/fixltxhyph/fixltxhyph.dtx b/Master/texmf-dist/source/latex/fixltxhyph/fixltxhyph.dtx index ab888913a03..a3f57eeed42 100644 --- a/Master/texmf-dist/source/latex/fixltxhyph/fixltxhyph.dtx +++ b/Master/texmf-dist/source/latex/fixltxhyph/fixltxhyph.dtx @@ -1,13 +1,13 @@ % \iffalse meta-comment -% !TEX encoding = IsoLatin +% !TEX encoding = UTF-8 Unicode %<*internal> \begingroup \input docstrip.tex \keepsilent \preamble - ______________________________________________________ + ____________________________________________________ The FiXLtxHyph package - Copyright (C) 2011-2012 Claudio Beccari + Copyright (C) 2011-2024 Claudio Beccari All rights reserved License information appended @@ -15,11 +15,12 @@ \endpreamble \postamble -Copyright 2011-2012 Claudio Beccari +Copyright 2011-2024 Claudio Beccari -Distributable under the LaTeX Project Public License, -version 1.3c or higher (your choice). The latest version of -this license is at: http://www.latex-project.org/lppl.txt +Distributable under the LaTeX Project Public +License, version 1.3c or higher (your choice). +The latest version of this license is at: +http://www.latex-project.org/lppl.txt This work is "author-maintained" @@ -28,13 +29,15 @@ the derived file fixltxhyph.sty, and the English documentation fixltxhyph.pdf. -By running pdflatex on fixltxhyph.dtx the user gets the .sty file, -and the English documentation file in pdf format. +By running pdflatex on fixltxhyph.dtx the user gets +the .sty file, and the English documentation file in PDF format. \endpostamble + \askforoverwritefalse -\generateFile{fixltxhyph.sty}{t}{\from{fixltxhyph.dtx}{style}} +\generateFile{fixltxhyph.sty}{f}% + {\from{fixltxhyph.dtx}{style}} \def\tmpa{plain} \ifx\tmpa\fmtname\endgroup\expandafter\bye\fi @@ -46,22 +49,22 @@ and the English documentation file in pdf format. % \iffalse %<*driver> \documentclass{ltxdoc} -\ProvidesFile{fixltxhyph.dtx}[2012/04/02 v.0.4 Documented TeX file for -the FixLtxHyph package] +\ProvidesFile{fixltxhyph.dtx}[2024-12-28 v.0.5 Documented TeX file for the FixLtxHyph package] \GetFileInfo{fixltxhyph.dtx} -\usepackage[latin1]{inputenc} +\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{color} \usepackage{multicol} \title{\centering The FixLtxHyph package\protect\\ -A small fix in order to hyphenate emphasized words after a vocalic elision\protect\\ -in Catalan, French, Italian, Romansh, and Friulan} +A small fix in order to hyphenate emphasised words after a vocalic elision\protect} \date{\fileversion\space\filedate} \author{Claudio Beccari} \usepackage{array} \usepackage{metalogo} \def\prog#1{\textsf{#1}} +\def\amb#1{\textsf{\slshape#1}} +\def\omissis{[\dots\!]} \begin{document}\errorcontextlines=9 \maketitle \begin{multicols}{2} @@ -72,268 +75,382 @@ in Catalan, French, Italian, Romansh, and Friulan} \end{document} %</driver> % \fi -% \CheckSum{84} +% \CheckSum{16} % % \begin{abstract} -% This file fixes a small feature of the hyphenation algorithm used by the \TeX\ system -% typesetting engines that manifests itself only with those languages that use the -% apostrophe for marking a vocalic elision. This small package was set up to fix this -% little undesirable feature in Italian, but it was extended to Catalan, French, the -% future implementation of the fourth official Swiss language Rumantsch Grischun (Romansh -% in English) and the future implementation of the Regional Language Friulan, spoken -% and written in North Eastern Italy. This fix operates correctly with both \prog{pdflatex} and \prog{xelatex}. +% This file fixes a small feature of the hyphenation +% algorithm used by the \TeX\ system typesetting +% engines that manifests itself only with those +% languages that use the apostrophe for marking a +% vocalic elision. This small package was set up to +% fix this little undesirable feature in Italian, +% but it was extended to Catalan, French, the +% fourth official Swiss language Rumantsch Grischun +% (Romansh in English) and the Regional Language +% Friulan, spoken and written in North Eastern +% Italy. This fix operates correctly with +% \prog{pdflatex}, \prog{lualate}, and +% \prog{xelatex}. % \end{abstract} +% % \section{What is the feature to be fixed} -% The five languages Catalan, French, Italian, Romansh, and Friulan use the apostrophe -% for marking the vocalic elision of the ending vowel at the end of prepositions, articles, -% articulated prepositions, definite adjectives, and other words playing similar rles when -% they just precede nouns, adjectives, verbs, numerals, that start with a vowel. Probably -% there are other languages that use the apostrophe in a similar way. I can easily upgrade -% this small package if \LaTeX\ users of other languages let me know about such languages. +% The five languages Catalan, French, Italian, +% Romansh, and Friulian use the apostrophe for +% marking the vocalic elision of the ending vowel +% at the end of prepositions, articles, articulated +% prepositions, definite adjectives, and other words +% playing similar rôles when they just precede +% nouns, adjectives, verbs, numerals, that start +% with a vowel. Probably there are other languages +% that use the apostrophe in a similar way. I can +% easily upgrade this small package if \LaTeX\ users +% of other languages let me know about such +% languages. % -% This feature is common to most Romance languages (from West to East) from Catalan and -% Valencian, to French, Langue d'oc, Occitan, Provenal, Vivaroalpin, Italian, Piedmontese, -% Lombard, Romansh, Ladin, Friulian; up to now only Catalan, French and Italian are handled -% by the \TeX\ system programs; at the same time most of these languages are minority ones -% and are being protected by local legislation or are supported by specific cultural or -% linguistic institutions; Romansh has got a national/federal legal status in -% Switzerland and is being used in legal and official documents in the whole Swiss -% Confederation, not only in its area of everyday use, the Kanton Graubunden or Canton -% Grigioni or Chantun Grischun (where seven Romansh varieties are being spoken, besides -% Swiss German, Italian, and other languages). The Friulan language has an official -% regional status in the North-eastern Italian Region Friuli\,-Venezia Giulia. +% This feature is common to most Romance languages +% (from West to East) from Catalan and Valencian, +% to French, Langue d'oc, Occitan, Provençal, +% Vivaroalpin, Italian, Piedmontese, Lombard, +% Romansh, Ladin, Friulian; up to now only Catalan, +% French, Italian, Romansh, Friulian, Piedmontese, +% and Occitan are handled by the \TeX-system +% programs; at the same time most of these languages +% are minority ones and are being protected by local +% legislation or are supported by specific cultural +% or linguistic institutions; Romansh has got a +% national/federal legal status in Switzerland and +% is being used in legal and official documents in +% the whole Swiss Confederation, not only in its +% area of everyday use, the Kanton Graubunden or +% Canton Grigioni or Chantun Grischun (where seven +% Romansh varieties are being spoken, besides +% Swiss German, Italian, and other languages). The +% Friulian language has an official regional status +% in the North-eastern Italian Region +% Friuli\,-Venezia Giulia. % -% This spelling rule is very rigorous in French; I suppose it is also a rigorous rule in -% Catalan, Romansh, and Friulan but I am not that familiar with these languages even if I -% can understand their written forms. In Italian it used to be a rigorous rule many years -% ago, but nowadays it is less frequently used when plurals are involved. -% Nevertheless apostrophes are practically the only analphabetic sign you see in an -% Italian text except for letters and punctuation and quotation marks. +% This spelling rule is very rigorous in French; +% I suppose it is also a rigorous rule in Catalan, +% Romansh, and Friulian but I am not so familiar +% with these languages even if I can understand them +% while reading texts written in these languages. +% In Italian it used to be a rigorous rule many +% years ago, but nowadays it is less frequently +% used when plurals are involved. Nevertheless +% apostrophes are practically the only analphabetic +% sign you see in an Italian texts besides +% punctuation and quotation marks. % -% In order to hyphenate correctly these word combinations all five languages have to -% declare the apostrophe, that has a category code of~12, as a glyph with non zero lower -% case code. In facts all five languages declare: +% In order to hyphenate correctly these word +% combinations all such languages have to declare +% the apostrophe, that has a category code of~12, +% as a glyph with non zero lower case code. In facts +% all such languages declare: %\begin{verbatim} %\lccode`\'=`\' %\end{verbatim} -% or something equivalent. With this little trick, the typesetting engine considers the -% apostrophe as a valid word character and treats the whole string as a single word; the -% patterns of these languages, of course, take into consideration also the apostrophe so -% that the resulting correct line breaks are easily found: +% or something equivalent. With this little trick, +% the typesetting engine considers the apostrophe as +% a valid word character and treats the whole string +% as a single word; the hyphenation patterns of +% these languages, of course, take into +% consideration also the apostrophe so that the +% resulting correct line breaks are easily found: %\begin{center} %\begin{tabular}{l>{\ttfamily}ll} -%Catalan & d'aquesta & d'a-ques-ta \\ -%French & l'lectricit & l'lec-tri-ci-t \\ +%Catalan & d'aquesta & d'a-ques-ta \\ +%French & l'électricité & l'élec-tri-ci-té \\ +%Friulian & l'arbul & l'ar-bul \\ %Italian & dell'eleganza & del-l'e-le-gan-za \\ -%Romansh & l'identitad & l'i-den-ti-tad \\ -%Friulan & l'arbul & l'ar-bul +%Romansh & l'identitad & l'i-den-ti-tad %\end{tabular} %\end{center} % -% So where is the problem? It emerges when the second part of the string is emphasized, +% So where is the problem? It emerges when the +% second part of the string is emphasised, % because in this case no hyphenation takes place: %\begin{center} %\begin{tabular}{l>{\ttfamily}ll} -%Catalan & d'\string\emph\{aquesta\} & d'\emph{aquesta} \\ -%French & l'\string\emph\{lectricit\} & l'\emph{lectricit} \\ -%Italian & dell'\string\emph\{eleganza\} & dell'\emph{eleganza} \\ -%Romansh & l'\string\emph\{identitad\} & l'\emph{identitad} \\ -%Friulan & l'\string\emph\{arbul\} & l'\emph{arbul} +%Catalan & d'\string\emph\{aquesta\} & d'\emph{aquesta} \\ +%French & l'\string\emph\{électricité\} & l'\emph{électricité} \\ +%Friulian & l'\string\emph\{arbul\} & l'\emph{arbul}\\ +%Italian & dell'\string\emph\{eleganza\} & dell'\emph{eleganza} \\ +%Romansh & l'\string\emph\{identitad\} & l'\emph{identitad} %\end{tabular} %\end{center} % -% This behavior is easily explained, so that it is not to be considered a bug, but a -% feature; a feature that is annoying only when using the above five named languages. -% The point is that all \TeX\ system typesetting engines consider a word to be that -% character string starting after a character invalid in a word and finishing with the -% first token invalid in a word. Notice that when the hyphenating algorithm comes to work -% the command |\emph| has already been expanded and it ends up with the qualifications of -% the selected font; therefore a string such as \verb*| d'aquesta | (starting after -% a space and ending before the following space) is made up of valid characters; but -% \verb*| d'\emph{aquesta} | is a ``word'' starting after a space and ending before -% a space, but containing a font change. And this makes the word invalid for hyphenation. -% The \TeX\-book is clear on this respect: ``If a suitable letter is found [as a starting -% character], let it be in font $f$. \dots\ \TeX\ continues to scan forward until coming -% to something that's not one of the following three ``admissible items'': (1) a character -% in font $f$ whose |\lccode| is not zero; (2) a ligature formed entirely from characters -% of type (1); (3) an implicit kern. \dots\ Notice that all these letters are -% in font~$f$.'' +% This behaviour is easily explained, so that it is +% not to be considered a bug, but a feature; a +% feature that is annoying only when using the +% above named languages. +% +% The point is that all \TeX\ system typesetting +% engines consider a word to be that character +% string starting after a character invalid in a +% word and finishing with the first token invalid +% in a word. Notice that when the hyphenating +% algorithm comes to work the command |\emph| has +% already been expanded and it ends up with the +% qualifications of the selected font; therefore a +% string such as \verb*| d'aquesta | (starting after +% a space and ending before the following space) is +% made up of valid characters; but +% \verb*| d'\emph{aquesta} | is a “word” starting +% after a space and ending before a space, but +% containing a font change. And this makes the word +% invalid for hyphenation. % -% This was a specific programming choice decided by Donald~E.\ Knuth together with Frank -% Liang, his PhD student who developed the hyphenation algorithm implemented in the -% typesetting engines of the \TeX\ system\footnote{I have been told that Lua\TeX\ is -% developing a different algorithm that eliminates this feature.}. -% As all such decisions, it is a compromise between accuracy and speed. And remember that -% at the beginning \prog{tex} the program was used essentially with English, a language -% that does not use accented letters and uses elision in a much different way as the one we -% are speaking here. The problem did non exist and, I suppose, it will never exist in -% English. +% The \TeX\-book is clear on this respect: +% \begin{quote}If a suitable letter is found [as a +% starting character], let it be in font $f$. +% \omissis\ \TeX\ continues to scan forward until +% coming to something that's not one of the +% following three “admissible items”: (1) a +% character in font $f$ whose |\lccode| is not zero; +% (2) a ligature formed entirely from characters of +% type (1); (3) an implicit kern. \omissis\ Notice +% that all these items are in font~$f$.\end{quote} +% +% This was a specific programming choice decided by +% Donald~E.\ Knuth together with Frank Liang, his +% PhD student who developed the hyphenation +% algorithm implemented in the typesetting engines +% of the \TeX\ system\footnote{I have been told that +% Lua\TeX\ developed a different algorithm that +% eliminates this feature.}. +% All such decisions are a compromise between +% accuracy and speed. Remember also that at the +% beginning \prog{tex} the program was used +% essentially with English, a language that does not +% use accented letters and uses elision in a much +% different way as the ones we are speaking here. +% The problem did non exist and, I suppose, it will +% never exist in English. % % \section{The solutions} -% As a compromise I decided to solve the problem in an automatic way only when the second -% part of the ``word'' to be hyphenated is emphasized. I suppose it is the most frequent -% situation, although no one can avoid thinking to other situations; for example: the -% second part of such ``word'' after the apostrophe is bolded, is colored, is written -% in another font selected on purpose or is in another alphabet, is in italics (with -% no automatic inclination switching); in such cases the solution is manual and remains -% manual, because there are too many possibilities and it is cumbersome to deal with all -% of them. +% As a compromise I decided to solve the problem in +% an automatic way only when the second part of the +% “word” to be hyphenated is \emph{emphasised}. I +% assume it is the most frequent situation, although +% no one can avoid thinking to other situations; for +% example: the second part of such “word” after the +% apostrophe is bolded, is coloured, is written in +% another font selected on purpose or is in another +% alphabet, is in italics (with no automatic +% inclination switching); in such cases the solution +% is manual and remains manual, because there are +% too many possibilities and it is cumbersome to +% deal with all of them. % -% But manual or automatic, how should we proceed? Simply we must convince that the -% starting letter must not be the start of the part preceding the apostrophe, but what +% But manual or automatic, how should we proceed? +% Simply we must convince the typesetting program +% that the starting letter must not be the start of +% the part preceding the apostrophe, but what % follows it. -% This is simple: it suffices to put after the apostrophe an unbreakable, zero width glob -% of glue; \TeX\ starts looking for a potential starting letter after the glue. -% Therefore the manual solution consists in defining a short macro such as the following -% one: +% +% This is simple: it suffices to put after the +% apostrophe an unbreakable, zero width glob of +% glue so that \TeX\ starts looking for a potential +% starting letter after the glue. Therefore the +% manual solution consists in defining a short macro +% such as the following one: %\begin{verbatim} %\newcommand\hz{\nobreak\hskip\z@skip} %\end{verbatim} -% or, if you want to avoid setting this short command into a personal \texttt{.sty} file, -% simple change |\z@skip| with |0pt|. You will then have to modify the font changing +% or, if you want to avoid setting this short +% command into a personal \texttt{.sty} file, +% simply change |\z@skip| with |0pt|. You will then +% have to modify the font changing % phrase into something such as: %\begin{verbatim} %... d'\hz\textbf{aquesta} ... %\end{verbatim} -% The |\hz|, whose name reminds the phrase ``Horizontal skip of an unbreakable Zero width -% glob of glue'', finishes the preceding word and sets the grounds for starting the search -% of a new starting letter of another word; it will be found after the font selections code -% introduced in the horizontal list by the selected font identification. +% The |\hz|, whose name reminds the phrase +% “Horizontal skip of an unbreakable Zero width +% glob of glue”, finishes the preceding word and +% sets the grounds for starting the search of a new +% starting letter of another word; it will be found +% after the font selection code introduced in the +% horizontal list by the selected font +% identification. % -% The automatic solution, on the opposite, implies a small but substantial modification of -% the |\emph| command. In facts the text command uses the text declaration |\em|; on turn -% |\em| is a robust command, that is it is defined as \verb*|\protect\em |: it would be -% very unwise to modify a protected command, so it is necessary to modify the -% \texttt{protect}ed one, and this operation is not trivial because of the space in this macro name. -% In any case if we find out how, we must add |\hz| to the definition of \verb*|\em | -% before its argument, the real text to emphasize, is processed. +% The automatic solution, on the opposite, implies +% a small but substantial modification of the +% |\emph| command. In facts the text command uses +% the text declaration |\em|; on turn |\em| is a +% robust command, that is defined as +% \verb*|\protect\em |: it would be very unwise to +% modify a protected command, so it is necessary to +% modify the \texttt{protect}ed one, and this +% operation is not trivial because of the space in +% this macro name. % -% This small package does exactly this, only for the five named languages, and only if -% they are used, and only with the |\emph| command. The |\hz| command is available to the -% user in a global way, so that when this package is loaded, the manual solution remains -% valid for every language, although in very unlikely situations. +% In any case if we find out how, we must add |\hz| +% to the definition of \verb*|\em | before its +% substitution text, so that the \TeX\ search of the +% first character of a real word starts at the end +% of the substitution code. % -% It has been tested with the five languages with both \prog{pdflatex} and \prog{xelatex}, -% and apparently it works as expected; it has been throughly tested in all situations with -% Italian; it should work properly also in French, in Romansh, and in Friulan. The adopted -% solution does not fiddle with active characters and therefore it does not interfere with -% the internal workings and settings of Catalan and the other languages. +% This small package does exactly this only with +% the |\emph| command. Its functionalities actually +% are in force for any language, non only for the +% above named languages. + +% The |\hz| command is globally available to the +% user, so that when this package is loaded, the +% manual solution remains valid in any situation, +% as, for example, for the first line of a list +% item for the text that follows the \cs{item} +% command and its argument. +% It is necessary, especially within a +% \amb{description} environment, because sometimes +% the item mandatory argument entry might be pretty +% long and the first line might require hyphenation +% at its end. +% +% It has been tested with the above named five +% languages with both \prog{pdflatex}, +% \prog{xelatex}, and also with \prog{lualatex}; and +% apparently it works as expected; it has been +% throughly tested in all situations with Italian; +% it should work properly also in French, in +% Romansh, and in Friulian; certainly it works with +% \texttt{utf8} text encoding. The adopted solution +% does not fiddle with active characters and +% therefore it does not interfere with the internal +% workings and settings of Catalan and other +% languages. % % \section{Installation} -% With modern \TeX\ distributions these instructions are superfluous; should you need to -% install by hand, download from \textsc{ctan} in a scratch directory (possibly create one, -% and after finishing, delete the whole directory with its contents) run this file -% \texttt{fixltxhyph.dtx} through \prog{pdflatex}; you get two files and move them -% as follows: +% With modern \TeX\ distributions these instructions +% are superfluous; should you need to manually +% install this package, download from \textsc{ctan} +% in a scratch directory (possibly create one, and +% after finishing, delete the whole directory with +% its contents) run this file +% \texttt{fixltxhyph.dtx} through \prog{pdflatex}; +% you get two files and move them as follows: %\begin{itemize} -%\item Move all the files in the following directories on your disk; if you don't already -% have those directories, create them. -%\item These directories should be created in your personal \texttt{texmf} tree; if you -% don't have one, create it; how to do this and where to root it depends on your operating -% system; before doing any change to your hard disk, please read carefully the TeX Live -% or the MiKTeX documentations in order to find out what a personal tree is. -%\item Move \texttt{fixltxhyph.dtx} to \texttt{.../texmf/source/latex/FixLtxHyph/}; -%\item Move \texttt{fixltxhyph.pdf} to \texttt{.../texmf/doc/latex/FixLtxHyph/}; -%\item Move \texttt{fixltxhyph.sty} to \texttt{.../texmf/tex/latex/FixLtxHyph/}; -%\item if your distribution requires it, refresh the file name database. +%\item +% Move all the files in the following directories +% on your disk; if you don't already have those +% directories, create them. +%\item +% These directories should be created in your +% personal \texttt{texmf} tree; if you don't have +% one, create it; how to do this and where to root +% it depends on your operating system; before doing +% any change to your hard disk, please read +% carefully the TeX Live or the MiKTeX +% documentations in order to find out what a +% personal tree is. +%\item +% Move \texttt{fixltxhyph.dtx} to \texttt{.../texmf/source/latex/FixLtxHyph/}; +%\item +% Move \texttt{fixltxhyph.pdf} to \texttt{.../texmf/doc/latex/FixLtxHyph/}; +%\item +% Move \texttt{fixltxhyph.sty} to \texttt{.../texmf/tex/latex/FixLtxHyph/}; +%\item +% if your distribution requires it, refresh the file name database. %\end{itemize} -% You are now ready to use the package by simply invoking it in the preamble of your +% You are now ready to use the package by simply +% invoking it in the preamble of your % documents: %\begin{verbatim} %\usepackage{fixltxhyph} %\end{verbatim} % %\section{Aknowledgements} -%I wish to thank Lorenzo Pantieri who tested the preliminary and the actual versions of -% this package and directly or indirectly helped debugging the code, especially in the -% preliminary version that used active characters and was particularly buggy. Another -% big thank to Enrico Gregorio who spotted the protection problem of the |\em| command. +% I wish to thank Lorenzo Pantieri who tested the +% preliminary and the actual versions of this +% package and directly or indirectly helped +% debugging the code, especially in the preliminary +% version that used active characters and was +% particularly buggy. Another big thank you to +% Enrico Gregorio who spotted the protection problem +% of the |\em| command. % % \StopEventually{} % %\section{The documented code} -% We start by identifying the package and the necessary format file: -% \begin{macrocode} +% We start by identifying the package and the +% necessary format file: +%\iffalse %<*style> -\ProvidesPackage{fixltxhyph}[2011/04/02 v.0.4 Small fix for hyphenating -emphasized words preceded by vocalic elision] -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -% \end{macrocode} -% Then we make sure that the package \texttt{babel} or \texttt{polyglossia} has already -% been loaded; otherwise we warn the user and exit; no patches can be made to an unknown -% package. +%\fi % \begin{macrocode} -\@ifpackageloaded{babel}{}{\@ifpackageloaded{polyglossia}{}{% -\PackageWarning{FixLtXHyph}{This package must be loaded after babel - or polyglossia}% -\endinput}} +\ProvidesPackage{fixltxhyph}[2024/12/01 v.0.5 + Small fix for hyphenating emphasised words] +\NeedsTeXFormat{LaTeX2e}[2022/01/01] % \end{macrocode} % -% We need the package |etoolbox| in order to perform any action on control sequences -% that contain spaces in their names; we do not need any means to test if we are working -% with \texttt{babel} or with \texttt{polyglossia} because, thanks to the previous -% tests, one of the two packages has certainly been loaded. -% \begin{macrocode} -\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} -% \end{macrocode} -% We define a very short command |\hz| in order to have available a handy command -% for inserting an unbreakable zero-width glob of glue in case we needed to do some -% sort of patching by hand. +% We need the package |etoolbox| in order to perform +% any action on control sequences that contain +% spaces in their names. We keep the old +% \verb|\@ifpackageloaded| command, not because we +% love vintage commands, because since 2024 +% it is available the \verb|\IfPackageLoadedF| +% command, that is more easily maintainable +% and does not require the empty argument, +% but because users sometimes work with vintage +% \TeX-system installations. +% +% First we define a very short command |\hz| in +% order to have available a handy command for +% inserting an unbreakable zero-width glob of glue +% in case we needed to manually do some sort of +% patching. % \begin{macrocode} \newcommand\hz{\nobreak\hskip\z@skip} % \end{macrocode} -% We make patches only if one or more of the five languages Catalan, French, Italian, -% Romansh, or Friulan (or its alias Furlan) has been invoked as an option to \texttt{babel} -% or specified to \texttt{polyglossia}; if none of these options had been selected, -% evidently the user was thinking to other details and missed the point that this patch is -% necessary only for the above mentioned five languages. In any case no harm takes place -% if from now on nothing else gets done, except for the definition of |hz| that remains -% available to the user. % -% The next bit of code defines some aliases in order to keep the original meaning of the -% declaration |\em|; in order to patch an alias, so as to be able to set the proper -% definitions only for the named five languages and to restore the original situation when -% a change of language takes place. +% Next we patch the \cs{em\textvisiblespace} +% command. To do so in an efficient way we need +% the |etooolbox| package. % \begin{macrocode} -\letcs{\FLH@originalem}{em } -\let\FLH@newem\FLH@originalem -\preto\FLH@newem{\hz} +\IfPackageLoadedF{etoolbox}{\RequirePackage{etoolbox}} % \end{macrocode} +% In a previous version we tested if one of the +% certainly (vulnerable languages that use the +% vocalic elision replaced by an apostrophe) was +% the current language; in this new package version +% 0.5 we omit such test because the patch is +% harmless even if the apostrophe does not imply any +% vocalic elision. % -% We then use a repetition cycle based on a list of language names; if the -% language with one of the listed names has been invoked as an option to \texttt{babel}, -% or specified to \texttt{polyglossia} then the patched \verb*|\em | definition is made -% the default, while when changing language the original definition is restored; we define a macro that contains the language names: -% \begin{macrocode} -\def\@tempB{catalan,french,italian,romansh,friulan,furlan} -% \end{macrocode} -% then we perform the above mentioned cycles; we have to distinguish if we are using -% \texttt{polyglossia} or \texttt{babel} because the internal setting and resetting macros -% of these two packages have different names; they are all made up by the agglutination of -% a prefixx to the language name, so we have to build the macro names to patch with the -% usual deferred name contraction by means of |\expandafter| and |\csname| with its -% companion |\endcsname|. +% The next bit of code defines an alias in +% order to keep the original meaning of the +% declaration |\em|; in order to patch an alias to +% be used only in the redefinition of the same named new macro. % \begin{macrocode} -\@ifpackageloaded{polyglossia}% -{\@for\@tempA:=\@tempB\do{% - \expandafter\ifx\csname captions\@tempA\endcsname\relax\else - \expandafter\addto\csname noextras@\@tempA\endcsname{\cslet{em }{\FLH@originalem}}% - \expandafter\addto\csname blockextras@\@tempA\endcsname{\cslet{em }{\FLH@newem}}% - \expandafter\addto\csname inlineextras@\@tempA\endcsname{\cslet{em }{\FLH@newem}}% - \fi}% -}{\@for\@tempA:=\@tempB\do{% - \expandafter\ifx\csname captions\@tempA\endcsname\relax\else - \expandafter\addto\csname extras\@tempA\endcsname{\cslet{em }{\FLH@newem}}% - \expandafter\addto\csname noextras\@tempA\endcsname{\cslet{em }{\FLH@originalem}}% - \fi}% -} +\letcs{\FLH@originalem}{em } +\RenewDocumentCommand{\em }{m}{\FLH@originalem\hz} % \end{macrocode} +% Notice that the \cs{em\textvisiblespace} defined +% by means of the \LaTeX3 \cs{RenewDocumentCommand} +% is robust as all commands defined by means of this +% kind of \LaTeX3 commands. +% +% Eventually let us conclude with a comment: +% compared with the previous version 0.4 of this +% package the number of control sequences contained +% in this new version is drastically diminished +% from 84 to 16. This is one of the advantages +% gained by using the \LaTeX3 language besides the +% \texttt{etoolbox} facilities. +% % -% This documented file is now terminated and its final commands are issued. +% This documented file is now finished and its +% final commands are issued: % \begin{macrocode} \endinput -%</style> % \end{macrocode} +% together with the |docstrip| command \cs{Finale} +% that allows to control if the final extracted code +% is complete. +%\iffalse +%</style> +%\fi % % \Finale % \endinput diff --git a/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.dtx b/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.dtx index 48dad58b76f..471d41e981c 100644 --- a/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.dtx +++ b/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2023 by Mario Fantini <marfant7@gmail.com> +% Copyright (C) 2024 by Mario Fantini <ing.mariofantini@gmail.com> % --------------------------------------------------------- % % This work may be distributed and/or modified under the @@ -29,7 +29,7 @@ %<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01] %<package>\ProvidesPackage{isphysicalmath} %<*package> -[2024/01/03 v1.1.0 .dtx isphysicalmath file] +[2024/12/27 v2.0.0 .dtx isphysicalmath file] %</package> %<package>\RequirePackage{xstring} %<package>% @@ -40,9 +40,10 @@ %<package>\def\ispmrc#1,#2{{#1.#2}} %<package>} %<package>% -%<package>% option [comma]: scientific international notation for thousands and their multiples. -%<package>\DeclareOption{comma}{ -%<package>\def\ispmc#1{% +%<package>\ExecuteOptions{dc} +%<package>% +%<package>% command \ispmcomma: scientific international notation for thousands and their multiples. +%<package>\newcommand{\ispmcomma}[1]{% %<package>\StrLen{#1}[\temp]% %<package>\ifnum\temp=4% %<package>\StrChar{#1}{1}[\unoq]% @@ -102,29 +103,727 @@ %<package>\unoq\dueq\treq,\quattroq\cinqueq\seiq,\setteq\ottoq\noveq% %<package>\fi% %<package>} +%<package>% +%<package>% +%<package>% Formatting section: +%<package>% a small space between value and measurement unit +%<package>\newcommand{\ispms}{\,} +%<package>% normal text rendering for first measurement unit +%<package>\newcommand{\ispmntone}[1]{\textnormal{#1}} +%<package>% jolly: the default setting consists in --- a $0.15\ispmone{mm}$ of space +%<package>% and normal text rendering for a generic 'entity'. +%<package>% If you are a developer, you can modify it when and how you want. +%<package>\newcommand{\ispm}[1]{\hspace{0.15mm}\textnormal{#1}} +%<package>% normal text rendering for first and second measurement units +%<package>\newcommand{\ispmnttwo}[2]{\textnormal{#1}\textnormal{#2}} +%<package>% space between first and second measurement units +%<package>\newcommand{\ispmss}{\hspace{0.15mm}} +%<package>% \ispm if you have only a measurement unit +%<package>% e.g. $F = 20 \ispmone{N}$ +%<package>\newcommand{\ispmone}{\ispms\ispmntone} +%<package>% \ispm if you have two measurement units +%<package>% e.g. $L = 20 \ispmtwo{N}{m}$ +%<package>\newcommand{\ispmtwo}[2]{\ispms\ispmnttwo\ispmss{#1}\ispmnttwo\ispmss{#2}} +%<package>% ispm if you have three measurement units +%<package>% e.g. $V = 8 \ispmtwo{m}{m}\ispmthird{m}$ +%<package>\newcommand{\ispmthird}[1]{\ispmss\ispm{#1}} +%<package>% and so on until ninth measurement unit +%<package>\newcommand{\ispmfourth}[1]{\ispmss\ispm{#1}} +%<package>\newcommand{\ispmfifth}[1]{\ispmss\ispm{#1}} +%<package>\newcommand{\ispmsixth}[1]{\ispmss\ispm{#1}} +%<package>\newcommand{\ispmseventh}[1]{\ispmss\ispm{#1}} +%<package>\newcommand{\ispmeighth}[1]{\ispmss\ispm{#1}} +%<package>\newcommand{\ispmninth}[1]{\ispmss\ispm{#1}} +%<package>% If you don't want numerical order, you could use generic \ispmn command +%<package>\newcommand{\ispmn}[1]{\ispmss\ispm{#1}} +%<package> +%<package> +%<package>%% Delete digits after dot +%<package>\DeclareOption{flushpostdot}{ +%<package>% e.g. \ispmflushpd 1.2 = 1 +%<package>\def\ispmflushpd#1.#2{{#1}} %<package>} -%<package>\ExecuteOptions{dc} -%<package>\ExecuteOptions{comma} -%<package>\ProcessOptions\relax +%<package>\ExecuteOptions{flushpostdot} +%<package> +%<package> +%<package>%% Potenze del numero dieci +%<package>\newcommand{\ispmpl}{(} +%<package>\newcommand{\ispmpr}{)} +%<package>\newcommand{\ispmten}{10} +%<package>\newcommand{\ispmtenf}{\ispmpl\ispmten\ispmpr} +%<package> +%<package>%% Esponenti positivi con la prima cifra "leading": numeri interi +%<package>% commentato perché limitante, quello per i numeri reali è invece completo (universale) +%<package>%\newcommand{\ispmdexpp}[1]{% +%<package>%\StrLen{#1}[\temp]% +%<package>%\ifnum\temp=2% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\ispmpl{\unoq}.{\dueq}\ispmpr\ispmtenf% +%<package>%\fi% +%<package>%\ifnum\temp=3% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}\ispmpr\ispmtenf$^2$% +%<package>%\fi% +%<package>%\ifnum\temp=4% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}\ispmpr\ispmtenf$^3$% +%<package>%\fi% +%<package>%\ifnum\temp=5% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}\ispmpr\ispmtenf$^4$% +%<package>%\fi% +%<package>%\ifnum\temp=6% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}\ispmpr\ispmtenf$^5$% +%<package>%\fi% +%<package>%\ifnum\temp=7% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}\ispmpr\ispmtenf$^6$% +%<package>%\fi% +%<package>%\ifnum\temp=8% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\StrChar{#1}{8}[\ottoq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}{\ottoq}\ispmpr\ispmtenf$^7$% +%<package>%\fi% +%<package>%\ifnum\temp=9% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\StrChar{#1}{8}[\ottoq]% +%<package>%\StrChar{#1}{9}[\noveq]% +%<package>%\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}{\ottoq}{\noveq}\ispmpr\ispmtenf$^8$% +%<package>%\fi% +%<package>%} %<package>% -%<package>% command \ispmcomma: scientific international notation for thousands and their multiples. -%<package>\newcommand{\ispmcomma}[1]{% +%<package>%% Esponenti positivi Reali con la prima cifra "leading" +%<package>\newcommand{\ispmdexpp}[1]{% +%<package>% +%<package>%% Two digits, two arguments %<package>\StrLen{#1}[\temp]% +%<package>\ifnum\temp=2% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\ispmpl{\unoq}.{\dueq}\ispmpr\ispmtenf% +%<package>\fi% +%<package>% +%<package>% Three arguments +%<package>\ifnum\temp=3% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% Two digits, three arguments \\ +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq% +%<package>% else A.1.1 +%<package>\else +%<package>% Three digits, three arguments \\ +%<package>\ispmpl{\unoq}.{\dueq}{\treq}\ispmpr\ispmtenf$^2$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>% +%<package>% if A %<package>\ifnum\temp=4% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% %<package>\StrChar{#1}{3}[\treq]% %<package>\StrChar{#1}{4}[\quattroq]% -%<package>\unoq,\dueq\treq\quattroq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}\ispmpr\ispmtenf$^3$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% +%<package>% if A %<package>\ifnum\temp=5% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% %<package>\StrChar{#1}{3}[\treq]% %<package>\StrChar{#1}{4}[\quattroq]% %<package>\StrChar{#1}{5}[\cinqueq]% -%<package>\unoq\dueq,\treq\quattroq\cinqueq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq\cinqueq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>% 12.3 -> 1.23(10) +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\cinqueq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}\ispmpr\ispmtenf$^4$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>\ifnum\temp=6% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq\cinqueq\seiq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>% 12.3 -> 1.23(10) +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>%123.4 -> 1.234(10)^2 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\cinqueq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>%1234.5 -> 1.2345(10)^3 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\seiq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}\ispmpr\ispmtenf$^5$% +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=7% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq\cinqueq\seiq\setteq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>% 12.3 -> 1.23(10) +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>%123.4 -> 1.234(10)^2 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\cinqueq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>%1234.5 -> 1.2345(10)^3 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\seiq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>%12345.6 -> 1.23456(10)^4 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\setteq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}\ispmpr\ispmtenf$^6$% +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=8% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq\cinqueq\seiq\setteq\ottoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>% 12.3 -> 1.23(10) +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\cinqueq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\seiq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>%12345.6 -> 1.23456(10)^4 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\setteq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1 +%<package>\if\setteq. +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\ottoq}\ispmpr\ispmtenf$^5$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}{\ottoq}\ispmpr\ispmtenf$^7$% +%<package>% fi A.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=9% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>\StrChar{#1}{9}[\noveq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq\dueq\treq\quattroq\cinqueq\seiq\setteq\ottoq\noveq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>% 12.3 -> 1.23(10) +%<package>\ispmpl{\unoq}.{\dueq}{\quattroq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>%123.4 -> 1.234(10)^2 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\cinqueq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>%1234.5 -> 1.2345(10)^3 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\seiq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>%12345.6 -> 1.23456(10)^4 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\setteq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1 +%<package>\if\setteq. +%<package>%123456.7 -> 1.234567(10)^5 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\ottoq}\ispmpr\ispmtenf$^5$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\if\ottoq. +%<package>%1234567.8 -> 1.2345678(10)^6 +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}{\noveq}\ispmpr\ispmtenf$^6$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}.{\dueq}{\treq}{\quattroq}{\cinqueq}{\seiq}{\setteq}{\ottoq}{\noveq}\ispmpr\ispmtenf$^8$% +%<package>% fi A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>} +%<package>% +%<package>% +%<package>% +%<package>%% Esponenti positivi Reali con la prima cifra "leading", quelle a dx invece troncate +%<package>\newcommand{\ispmdexppt}[1]{% +%<package>% +%<package>%% Two digits, two arguments +%<package>\StrLen{#1}[\temp]% +%<package>\ifnum\temp=2% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>\fi% +%<package>% +%<package>% Three arguments +%<package>\ifnum\temp=3% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% Two digits, three arguments \\ +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% Three digits, three arguments \\ +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=4% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi% +%<package>% +%<package>% if A +%<package>\ifnum\temp=5% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^4$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% %<package>\ifnum\temp=6% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% @@ -132,8 +831,68 @@ %<package>\StrChar{#1}{4}[\quattroq]% %<package>\StrChar{#1}{5}[\cinqueq]% %<package>\StrChar{#1}{6}[\seiq]% -%<package>\unoq\dueq\treq,\quattroq\cinqueq\seiq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^5$% +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% +%<package>% +%<package>% if A %<package>\ifnum\temp=7% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% @@ -142,8 +901,75 @@ %<package>\StrChar{#1}{5}[\cinqueq]% %<package>\StrChar{#1}{6}[\seiq]% %<package>\StrChar{#1}{7}[\setteq]% -%<package>\unoq,\dueq\treq\quattroq,\cinqueq\seiq\setteq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^6$% +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% +%<package>% +%<package>% if A %<package>\ifnum\temp=8% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% @@ -153,8 +979,82 @@ %<package>\StrChar{#1}{6}[\seiq]% %<package>\StrChar{#1}{7}[\setteq]% %<package>\StrChar{#1}{8}[\ottoq]% -%<package>\unoq\dueq,\treq\quattroq\cinqueq,\seiq\setteq\ottoq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1 +%<package>\if\setteq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^5$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^7$% +%<package>% fi A.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% +%<package>% +%<package>% if A %<package>\ifnum\temp=9% %<package>\StrChar{#1}{1}[\unoq]% %<package>\StrChar{#1}{2}[\dueq]% @@ -165,45 +1065,711 @@ %<package>\StrChar{#1}{7}[\setteq]% %<package>\StrChar{#1}{8}[\ottoq]% %<package>\StrChar{#1}{9}[\noveq]% -%<package>\unoq\dueq\treq,\quattroq\cinqueq\seiq,\setteq\ottoq\noveq% +%<package>% if A.1 +%<package>\ifx\dueq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\dueq. +%<package>\unoq% +%<package>% else A.1.1 +%<package>\else +%<package>% if A.1.1.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1 +%<package>\if\treq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1 +%<package>\ifx\quattroq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1 +%<package>\if\quattroq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1 +%<package>\ifx\cinqueq\undefined +%<package>indefinito +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1 +%<package>\if\cinqueq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>% else A.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1 +%<package>\if\seiq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^4$% +%<package>% else A.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1 +%<package>\if\setteq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^5$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>% if A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\if\ottoq. +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^6$% +%<package>% else A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\unoq}\ispmpr\ispmtenf$^8$% +%<package>% fi A.1.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A %<package>\fi% +%<package>% %<package>} +%<package> +%<package>%% Esponenti positivi con la prima cifra "leading", cifre troncate a dx +%<package>% Commentato perché limitante, quello per i numeri reali invece è completo (universale). +%<package>%\newcommand{\ispmdexppt}[1]{% +%<package>%\StrLen{#1}[\temp]% +%<package>%\ifnum\temp=2% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf% +%<package>%\fi% +%<package>%\ifnum\temp=3% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^2$% +%<package>%\fi% +%<package>%\ifnum\temp=4% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^3$% +%<package>%\fi% +%<package>%\ifnum\temp=5% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^4$% +%<package>%\fi% +%<package>%\ifnum\temp=6% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^5$% +%<package>%\fi% +%<package>%\ifnum\temp=7% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^6$% +%<package>%\fi% +%<package>%\ifnum\temp=8% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\StrChar{#1}{8}[\ottoq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^7$% +%<package>%\fi% +%<package>%\ifnum\temp=9% +%<package>%\StrChar{#1}{1}[\unoq]% +%<package>%\StrChar{#1}{2}[\dueq]% +%<package>%\StrChar{#1}{3}[\treq]% +%<package>%\StrChar{#1}{4}[\quattroq]% +%<package>%\StrChar{#1}{5}[\cinqueq]% +%<package>%\StrChar{#1}{6}[\seiq]% +%<package>%\StrChar{#1}{7}[\setteq]% +%<package>%\StrChar{#1}{8}[\ottoq]% +%<package>%\StrChar{#1}{9}[\noveq]% +%<package>%\ispmpl{\unoq}\ispmpr\ispmtenf$^8$% +%<package>%\fi% +%<package>%} +%<package> +%<package>%% Esponenti negativi di numeri razionali (che si risolvono in numeri non interi) +%<package>% senza cifre troncate a dx del punto +%<package>\newcommand{\ispmdexpm}[1]{% +%<package>\StrLen{#1}[\temp]% +%<package>%% Inizio con 3 perché il punto è considerato argomento, +%<package>% quindi e.g. 0.1 ha tre argomenti. +%<package>\ifnum\temp=3% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>\fi% +%<package>\ifnum\temp=4% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>\else +%<package> \if\treq0 +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package> \else +%<package>\ispmpl{\treq.\quattroq}\ispmpr\ispmtenf$^{-1}$% +%<package> \fi +%<package>\fi +%<package>\fi% +%<package>% if A +%<package>\ifnum\temp=5% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq.\cinqueq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq.\quattroq\cinqueq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi %<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=6% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>\ispmpl{\seiq}\ispmpr\ispmtenf$^{-4}$% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq.\seiq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq.\cinqueq\seiq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq.\quattroq\cinqueq\seiq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi %<package>% -%<package>% Formatting section: -%<package>% a small space between value and measurement unit -%<package>\newcommand{\ispms}{\,} -%<package>% normal text rendering for first measurement unit -%<package>\newcommand{\ispmntone}[1]{\textnormal{#1}} -%<package>% jolly: the default setting consists in --- a $0.15\ispmone{mm}$ of space -%<package>% and normal text rendering for a generic 'entity'. -%<package>% If you are a developer, you can modify it when and how you want. -%<package>\newcommand{\ispm}[1]{\hspace{0.15mm}\textnormal{#1}} -%<package>% normal text rendering for first and second measurement units -%<package>\newcommand{\ispmnttwo}[2]{\textnormal{#1}\textnormal{#2}} -%<package>% space between first and second measurement units -%<package>\newcommand{\ispmss}{\hspace{0.15mm}} -%<package>% \ispm if you have only a measurement unit -%<package>% e.g. $F = 20 \ispmone{N}$ -%<package>\newcommand{\ispmone}{\ispms\ispmntone} -%<package>% \ispm if you have two measurement units -%<package>% e.g. $L = 20 \ispmtwo{N}{m}$ -%<package>\newcommand{\ispmtwo}[2]{\ispms\ispmnttwo\ispmss{#1}\ispmnttwo\ispmss{#2}} -%<package>% ispm if you have three measurement units -%<package>% e.g. $V = 8 \ispmtwo{m}{m}\ispmthird{m}$ -%<package>\newcommand{\ispmthird}[1]{\ispmss\ispm{#1}} -%<package>% and so on until ninth measurement unit -%<package>\newcommand{\ispmfourth}[1]{\ispmss\ispm{#1}} -%<package>\newcommand{\ispmfifth}[1]{\ispmss\ispm{#1}} -%<package>\newcommand{\ispmsixth}[1]{\ispmss\ispm{#1}} -%<package>\newcommand{\ispmseventh}[1]{\ispmss\ispm{#1}} -%<package>\newcommand{\ispmeighth}[1]{\ispmss\ispm{#1}} -%<package>\newcommand{\ispmninth}[1]{\ispmss\ispm{#1}} -%<package>% If you don't want numerical order, you could use generic \ispmn command -%<package>\newcommand{\ispmn}[1]{\ispmss\ispm{#1}} +%<package>% +%<package>% if A +%<package>\ifnum\temp=7% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>\ispmpl{\setteq}\ispmpr\ispmtenf$^{-5}$% +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq.\setteq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq.\seiq\setteq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq.\cinqueq\seiq\setteq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq.\quattroq\cinqueq\seiq\setteq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=8% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>% if A.1.1.1.1.1.1 +%<package>\if\setteq0 +%<package>\ispmpl{\ottoq}\ispmpr\ispmtenf$^{-6}$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\setteq.\ottoq}\ispmpr\ispmtenf$^{-5}$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq.\setteq\ottoq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq.\seiq\setteq\ottoq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq.\cinqueq\seiq\setteq\ottoq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq.\quattroq\cinqueq\seiq\setteq\ottoq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=9% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>\StrChar{#1}{9}[\noveq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>% if A.1.1.1.1.1.1 +%<package>\if\setteq0 +%<package>% if A.1.1.1.1.1.1.1 +%<package>\if\ottoq0 +%<package>\ispmpl{\noveq}\ispmpr\ispmtenf$^{-7}$% +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\ottoq.\noveq}\ispmpr\ispmtenf$^{-6}$% +%<package>% if A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\setteq.\ottoq\noveq}\ispmpr\ispmtenf$^{-5}$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq.\setteq\ottoq\noveq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq.\seiq\setteq\ottoq\noveq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq.\cinqueq\seiq\setteq\ottoq\noveq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq.\quattroq\cinqueq\seiq\setteq\ottoq\noveq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>} +%<package>% +%<package>% Esponenti negativi di numeri razionali (che si risolvono in numeri non interi), con cifre troncate a dx del punto +%<package>\newcommand{\ispmdexpmt}[1]{% +%<package>\StrLen{#1}[\temp]% +%<package>%% Inizio con 3 perché il punto è considerato argomento, +%<package>% quindi e.g. 0.1 ha tre argomenti. +%<package>\ifnum\temp=3% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>\fi% +%<package>\ifnum\temp=4% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>\else +%<package> \if\treq0 +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package> \else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package> \fi +%<package>\fi +%<package>\fi% +%<package>% if A +%<package>\ifnum\temp=5% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=6% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>\ispmpl{\seiq}\ispmpr\ispmtenf$^{-4}$% +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=7% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>\ispmpl{\setteq}\ispmpr\ispmtenf$^{-5}$% +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=8% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>% if A.1.1.1.1.1.1 +%<package>\if\setteq0 +%<package>\ispmpl{\ottoq}\ispmpr\ispmtenf$^{-6}$% +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\setteq}\ispmpr\ispmtenf$^{-5}$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>% +%<package>% if A +%<package>\ifnum\temp=9% +%<package>\StrChar{#1}{1}[\unoq]% +%<package>\StrChar{#1}{2}[\dueq]% +%<package>\StrChar{#1}{3}[\treq]% +%<package>\StrChar{#1}{4}[\quattroq]% +%<package>\StrChar{#1}{5}[\cinqueq]% +%<package>\StrChar{#1}{6}[\seiq]% +%<package>\StrChar{#1}{7}[\setteq]% +%<package>\StrChar{#1}{8}[\ottoq]% +%<package>\StrChar{#1}{9}[\noveq]% +%<package>% if A.1 +%<package>\ifx\treq\undefined +%<package>indefinito +%<package>% else A.1 +%<package>\else +%<package>% if A.1.1 +%<package>\if\treq0 +%<package>% if A.1.1.1 +%<package>\if\quattroq0 +%<package>% if A.1.1.1.1 +%<package>\if\cinqueq0 +%<package>% if A.1.1.1.1.1 +%<package>\if\seiq0 +%<package>% if A.1.1.1.1.1.1 +%<package>\if\setteq0 +%<package>% if A.1.1.1.1.1.1.1 +%<package>\if\ottoq0 +%<package>\ispmpl{\noveq}\ispmpr\ispmtenf$^{-7}$% +%<package>% else A.1.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\ottoq}\ispmpr\ispmtenf$^{-6}$% +%<package>% if A.1.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\setteq}\ispmpr\ispmtenf$^{-5}$% +%<package>% fi A.1.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1.1 +%<package>\else +%<package>\ispmpl{\seiq}\ispmpr\ispmtenf$^{-4}$% +%<package>% fi A.1.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1.1 +%<package>\else +%<package>\ispmpl{\cinqueq}\ispmpr\ispmtenf$^{-3}$% +%<package>% fi A.1.1.1.1 +%<package>\fi +%<package>% else A.1.1.1 +%<package>\else +%<package>\ispmpl{\quattroq}\ispmpr\ispmtenf$^{-2}$% +%<package>% fi A.1.1.1 +%<package>\fi +%<package>% else A.1.1 +%<package>\else +%<package>\ispmpl{\treq}\ispmpr\ispmtenf$^{-1}$% +%<package>% fi A.1.1 +%<package>\fi +%<package>% fi A.1 +%<package>\fi +%<package>% fi A +%<package>\fi +%<package>% +%<package>} +%<package>\ProcessOptions\relax %<*driver> \documentclass{ltxdoc} -\usepackage{isphysicalmath}[2024/01/03] +\usepackage{isphysicalmath}[2024/12/27] \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{lmodern} @@ -215,10 +1781,13 @@ \renewcommand*\contentsname{General index}% \tableofcontents% \clearpage} + \EnableCrossrefs \CodelineIndex +\RecordChanges \begin{document} -\DocInput{isphysicalmath.dtx} + \DocInput{isphysicalmath.dtx} + \PrintChanges \end{document} %</driver> % \fi @@ -239,13 +1808,17 @@ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % +% +% +%\changes{v2.0.0}{2024/12/27}{third version} +% %\indice % %\GetFileInfo{isphysicalmath.dtx} % %\title{The \textsf{isphysicalmath} package\thanks{This document %corresponds to \textsf{isphysicalmath}~\fileversion, dated \filedate.}} -%\author{Mario Fantini \\ \texttt{marfant7@gmail.com}} +%\author{Mario Fantini \\ \texttt{ing.mariofantini@gmail.com}} % %\maketitle % @@ -253,9 +1826,10 @@ %This package helps user to write mathematical and physical formulas %-- their numerical values, their measurement units, their factors, their %dimensions -- in a -%scientific way (international mainly), by an elegant formatting. +%scientific way (international mainly), by an elegant formatting and notation. %\end{abstract} %\section{Introduction} +%The name \textsl{isphysicalmath} means: Physics is Math's daughter. % %\LaTeX{} is a powerful language, but to take advantage of it, to respect %its quality and to observe the discipline of matters that \LaTeX{} interacts with---it @@ -265,33 +1839,33 @@ %as far as international scientific notation and formatting of formulas, % quantities, numerical values, factors, dimensions, measurement units. \\ % -%The name \textsl{isphysicalmath} means either: -%\begin{itemize} -% \item Physics is Math's daughter; -% \item International System of units (SI) is observed. -%\end{itemize} -% +%I respect Donald Knuth limit of nine arguments. I know that is possible to break this limit, +%but I prefer to respect Knuth's limit for pureness reasons. %\section{Conventions} %To have a clear doc text, I'll not refer to physical quantities %dimensions every times; for them, the measurement units %\textsl{isphysicalmath} acting is valid too. % +%\textit{hp.} stands for \textsl{hypothesis}, \textit{th.} stands for \textsl{thesis}. +% %\section{Dependencies} %\label{sec:dependencies} -%\textsl{isphysicalmath} has \textsl{xstring} package dependency. +%\textsl{isphysicalmath} has \textsl{xstring} package dependency, but you don't need to specify it +%in your document preamble. % %Internally, it uses standard \LaTeX{} built-in commands like: \texttt{\textbackslash textnormal}, -%\texttt{\textbackslash hspace\{\}}, \texttt{\textbackslash ,}; +%\texttt{\textbackslash hspace\{\}}, \texttt{\textbackslash ,}, etc.; % however, it performs its activity in complex math environment too. %\newpage %\section{Usage} +%\subsection{Formatting} %\label{sec:usage} %\DescribeMacro{\ispm} % %\textit{hp.} It is a jolly command. -%The default setting consists in --- a $0.15\ispmone{mm}$ of space and normal text rendering for a generic 'entity'. +%The default setting consists in --- a $0.15\ispmone{mm}$ of space and normal text rendering for a generic ``entity''. %In other words <\texttt{\textbackslash textnormal}> and <0.15mm> are the values of \texttt{\textbackslash ispm} -% variable. So, if you are a developer you can modify this variable how and when you want. +% ``variable''. So, if you are a developer you can modify this ``variable'' how and when you want. % I use it for generic ``entities''. \\ %\textit{th.} Default setting: normal text rendering for a generic ``entity''.\\ %|\ispm|\marg{generic ``entity'' in place of argument} \\ \\ @@ -322,7 +1896,7 @@ %|\ispmtwo|\marg{the first measurement unit in place of the I argument}\marg{the second %measurement unit in place of the II argument}% %|\ispmthird|\marg{third measurement unit in place of III argument} \\ -% Or, e.g. if you have a fraction [see In-depth formatting' +% Or, e.g. if you have a fraction [see `In-depth formatting' %(\autoref{subsec:inDepthFormatting})]:\\ %|\ispmone|\marg{the first measurement unit in place of the I argument (numerator)} %|\ispmone|\marg{the second %measurement unit in place of the II argument (denominator)} @@ -337,7 +1911,8 @@ %\DescribeMacro{\ispmninth} ~\ \\ \\ %\DescribeMacro{\ispmn} % -%If you don't want to follow a numerical order, you can use this command. +%If you don't want to follow a numerical order, useful in some cases to have the visual control and +%in complex environments always, you can use this command. % %\textit{hp.} You have three measurement units. \\ %\textit{th.} Horizontal space between the first measurement unit @@ -346,38 +1921,68 @@ %the second measurement unit and third measurement unit; normal text %rendering for all the measurement units.\\ %|\ispmtwo|\marg{the first measurement unit in place of the I argument}\marg{the second -%measurement unit in place of the II argument}% +%measurement unit in place of the II argument} %|\ispmn|\marg{third measurement unit in place of III argument} \\ -% Or, e.g. if you have a fraction [see In-depth formatting' +% Or, e.g. if you have a fraction [see `In-depth formatting' %(\autoref{subsec:inDepthFormatting})]:\\ %|\ispmone|\marg{the first measurement unit in place of the I argument (numerator)} -%|\ispmn|\marg{the second %measurement unit in place of the II argument (denominator)} -%|\ispmn|\marg{third measurement unit in place of III argument} \\ \\ +%|\ispmn|\marg{the second measurement unit in place of the II argument (denominator)} +%|\ispmn|\marg{third measurement unit in place of III argument} \\ +% aka: \\ +%|\ispmn|\marg{the first measurement unit in place of the I argument (numerator)} +%|\ispmn|\marg{the second measurement unit in place of the II argument (denominator)} +%|\ispmn|\marg{third measurement unit in place of III argument} \\\\ +% +% +%\subsection{Notation} +% +%\DescribeMacro{\ispmdexpp} +% +%It concerns rendering of a number as it multiplied by number ten raised to positive exponents of power, +%within real numbers field. +%The order sees first digit as leading digit, without truncated digits on the right of it. \\ +%|\ispmdexpp|\marg{number to render} \\ \\ % +%\DescribeMacro{\ispmdexppt} % -%\begin{environment}{dc} -% option \textit{dc} \\ -%\textbackslash usepackage\oarg{dc}\{isphysicalmath\} \\ +%It's about rendering of a number as it multiplied by number ten raised to positive exponents of power, +%within real numbers field. +%The order sees first digit as leading digit, with truncated digits on the right of it. \\ +%|\ispmdexppt|\marg{number to render} \\ \\ % -%$\forall x,y,\ldots,+\infty \in \mathbb{N}$:\\ +%\DescribeMacro{\ispmdexpm} +% +%It concerns rendering of a number as it multiplied by number ten raised to negative exponents of power, +%within real numbers field. +%The order sees first digit as leading digit, without truncated digits on the right of it. \\ +%|\ispmdexpm|\marg{number to render} \\ \\ +% +%\DescribeMacro{\ispmdexpmt} +% +%It concerns rendering of a number as it multiplied by number ten raised to negative exponents of power, +%within real numbers field. +%The order sees first digit as leading digit, with truncated digits on the right of it. \\ +%|\ispmdexpmt|\marg{number to render} +% +%\textbf{Option} \textit{flushpostdot} \\ \\ +%$\forall x,y,\ldots,+\infty \in \mathbb{R}$:\\ +%|\ispmflushpd| \meta{x.y} \\ +%It deletes all digits that are after dot. \\ \\ +% +%\textbf{Option} \textit{dc} \\ \\ +%$\forall x,y,\ldots,+\infty \in \mathbb{R}$:\\ %|\ispmc| \meta{x.y} \\ -%|\ispmrc| \meta{x,y} \\ -%\end{environment} +%It changes commas in dots. \\ \\ % -%\begin{environment}{comma} -% option \textit{comma} \\ -%\textbackslash usepackage\oarg{comma}\{isphysicalmath\} \\ +%$\forall x,y,\ldots,+\infty \in \mathbb{Z}$:\\ +%|\ispmrc| \meta{x,y} \\ +%It changes dots in commas. \\ \\ % -%$\forall a,b,c,d,e,f,g,h,i \in \mathbb{N}$ [0,9]: \\ -%|\ispmc|\{abcdefghi\} \\ -%|\ispmc|\{abcdefghi\}.aa \\ -%\end{environment} -%\newpage -% \section{In-depth usage} +%\section{In-depth usage} %\subsection{In-depth formatting} %\label{subsec:inDepthFormatting} -% \textsl{isphysicalmath} command, in mathematical environments, can be joined or detached to previous term; -%while, in not mathematical environments, \textsl{isphysicalmath} command must be joined to previous term. \\ \\ +% \textsl{isphysicalmath} formatting commands, inside mathematical environments, can be joined or detached to previous term; +%while, outside mathematical environments, \textsl{isphysicalmath} commands must be joined to previous term. \\ \\ % \textsl{isphysicalmath} automatical settings: % \begin{itemize} % \item a small space between numerical value and first @@ -395,8 +2000,7 @@ % F = 1 N % \end{center} %I don't like this style, and it has not a logical meaning. -% \item By mathematical environment: -% +% \item By mathematical environment: \\ %\[F = 1 N\] % %I don't like this style, and it has not a logical meaning. @@ -516,7 +2120,7 @@ %\item With inner mathematical environments (d). % %The following is a trascendental physical example, but it could be useful like -%material for some mathematical need; however, this case demonstrates +%material for some mathematical needs; however, this case demonstrates %\LaTeX{} power and \textsl{isphysicalmath}. % % \[u = 7 \ispmtwo{$\alpha$m}{$\beta$m$^2$} @@ -567,6 +2171,7 @@ %e.g. %\[1\ispmtwo{a}{b}\ispmthird{c}\ispmfourth{d}\ispmfifth{e}\ispmsixth{f}\ispmseventh{g}\ispmeighth{h}\ispmninth{i}\] %\[1\ispmone{a}\ispmn{b}\ispmn{c}\ispmn{d}\ispmn{e}\ispmn{f}\ispmn{g}\ispmn{h}\ispmn{i}\] +%\[1\ispmn{a}\ispmn{b}\ispmn{c}\ispmn{d}\ispmn{e}\ispmn{f}\ispmn{g}\ispmn{h}\ispmn{i}\] %The code: %\begin{center} %\begin{verbatim} @@ -575,33 +2180,462 @@ % %\[1\ispmone{a}\ispmn{b}\ispmn{c}\ispmn{d}\ispmn{e} %\ispmn{f}\ispmn{g}\ispmn{h}\ispmn{i}\] +% +%\[1\ispmn{a}\ispmn{b}\ispmn{c}\ispmn{d}\ispmn{e} +%\ispmn{f}\ispmn{g}\ispmn{h}\ispmn{i}\] %\end{verbatim} %\end{center} % %\end{itemize} %\end{description} % -%\newpage %\subsection{In-depth notation} %\label{subsec:in-depthNotation} -%Option \textsl{dc} and option \textsl{comma} are not compatible, but you can use option \textsl{dc} and -%\texttt{\textbackslash ispmcomma} command, both in the same document. \\ \\ -%\texttt{\textbackslash usepackage[dc]\{isphysicalmath\}} \\ -%\texttt{\textbackslash usepackage[comma]\{isphysicalmath\}} \\ \\ -%In a document by \textsl{dc} option: \\ -%1,234 \\ \\ -%In an other document by \textsl{comma} option: \\ -%1,234,567 \\ \\ -%Both in the same document, by \textsl{dc} option and \texttt{\textbackslash ispmcomma} command:\\ -%1,234 1,234,567 \\ \\ +%\subsubsection{command \textbackslash ispmcomma} +%\label{subsubsec:commandComma} +%It adds comma after every three digits, according to international +%scientific notation. It is independent of \textsl{dc}, option but +%compatible with it. +% +%$\forall a,b,c,d,e,f,g,h,i \in \mathbb{Z}$ [0,9]: +%\begin{center} +% \ispmcomma{100000000} \\ +% \ispmcomma{100000000}.00\\ +% \ispmcomma{10000000}.00 \\ +% \ispmcomma{1000000}.00 \\ +% \ispmcomma{100000}.00 \\ +% \ispmcomma{10000}.00 \\ +% \ispmcomma{1000}.00 +%\end{center} +% %The code: +%\begin{center} %\begin{verbatim} -%\ispmc 1.234 \\ -%\ispmc{1234567} \\ -%\ispmc 1.234 \ispmcomma{1234567} +%\ispmcomma{100000000} \\ +%\ispmcomma{100000000}.00 \\ +%\ispmcomma{10000000}.00 \\ +%\ispmcomma{1000000}.00 \\ +%\ispmcomma{100000}.00 \\ +%\ispmcomma{10000}.00 \\ +%\ispmcomma{1000}.00 %\end{verbatim} +%\end{center} +% +%\newpage +% +%\subsubsection{Rendering by positive exponents of number ten powers} +%Rendering of a number as it multiplied by number ten raised to positive exponents of power. +% +%\paragraph{By first digit as leading digit, without truncated digits on the right of it} ~\ \\ +% +%\textsc{Two arguments} \\ +% +%Two digits, two arguments: \\ +%input: \texttt{\textbackslash{}ispmdexpp\{12\}} \\ +%output: \ispmdexpp{12} \\ +% +%Inside mathematical environment: \\ +%input: \texttt{\$F = \textbackslash{}ispmdexpp\{12\} \textbackslash{}ispmone\{N\}\$} \\ +%output: $F = \ispmdexpp{12} \ispmone{N}$\\ +%And so on for other \texttt{\textbackslash{}ispmdexp$^{\ast}$} commands. \\ +% +%\textsc{Three arguments} \\ +% +%Two digits, three arguments: \\ +%input: \texttt{\textbackslash{}ispmdexpp\{1.2\}} \\ +%output: \ispmdexpp{1.2} \\ +% +%Three digits, three arguments: \\ +%input: \texttt{\textbackslash{}ispmdexpp\{123\}} \\ +%output: \ispmdexpp{123} \\ +% +%\textsc{Four arguments} \\ +% +%Three digits, four arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.23\}} \\ +%\ispmdexpp{1.23} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.3\}} \\ +%\ispmdexpp{12.3} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234\}} \\ +%\ispmdexpp{1234} \\ +% +%\textsc{Five arguments} \\ +% +%Four digits, five arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.234\}} \\ +%\ispmdexpp{1.234} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.34\}} \\ +%\ispmdexpp{12.34} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123.4\}} \\ +%\ispmdexpp{123.4} \\ +% +%Five digits, five arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{12345\}} \\ +%\ispmdexpp{12345} \\ +% +%\textsc{Six arguments} \\ +% +%Five digits, six arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.2345\}} \\ +%\ispmdexpp{1.2345} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.345\}} \\ +%\ispmdexpp{12.345} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123.45\}} \\ +%\ispmdexpp{123.45} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234.5\}} \\ +%\ispmdexpp{1234.5} \\ +% +%Six digits, six arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{123456\}} \\ +%\ispmdexpp{123456} \\ +% +%\textsc{Seven arguments} \\ +% +%Six digits, seven arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.23456\}} \\ +%\ispmdexpp{1.23456} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.3456\}} \\ +%\ispmdexpp{12.3456} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123.456\}} \\ +%\ispmdexpp{123.456} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234.56\}} \\ +%\ispmdexpp{1234.56} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12345.6\}} \\ +%\ispmdexpp{12345.6} \\ +% +%Seven digits, seven arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1234567\}} \\ +%\ispmdexpp{1234567} \\ +% +%\newpage +% +%\textsc{Eight arguments} \\ +% +%Seven digits, eight arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.234567\}} \\ +%\ispmdexpp{1.234567} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.34567\}} \\ +%\ispmdexpp{12.34567} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123.4567\}} \\ +%\ispmdexpp{123.4567} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234.567\}} \\ +%\ispmdexpp{1234.567} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12345.67\}} \\ +%\ispmdexpp{12345.67} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123456.7\}} \\ +%\ispmdexpp{123456.7} \\ +% +%Eight digits, eight arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{12345678\}} \\ +%\ispmdexpp{12345678} \\ +% +%\textsc{Nine arguments} \\ +% +%Eight digits, nine arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{1.2345678\}} \\ +%\ispmdexpp{1.2345678} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12.345678\}} \\ +%\ispmdexpp{12.345678} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123.45678\}} \\ +%\ispmdexpp{123.45678} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234.5678\}} \\ +%\ispmdexpp{1234.5678} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{12345.678\}} \\ +%\ispmdexpp{12345.678} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{123456.78\}} \\ +%\ispmdexpp{123456.78} \\\\ +%\texttt{\textbackslash{}ispmdexpp\{1234567.8\}} \\ +%\ispmdexpp{1234567.8} \\ +% +%\newpage +% +%Nine digits, nine arguments: \\ +%\texttt{\textbackslash{}ispmdexpp\{123456789\}} \\ +%\ispmdexpp{123456789} \\ \\ % -%\subsubsection{option <dc>} +%\paragraph{By first digit as leading digit, with truncated digits on the right of it} ~\ \\ +% +%\textsc{Two arguments} \\ +% +%Two digits, two arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{12\}} \\ +%\ispmdexppt{12} \\ +% +%\textsc{Three arguments} \\ +% +%Two digits, three arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.2\}} \\ +%\ispmdexppt{1.2} \\ +% +%Three digits, three arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{123\}} \\ +%\ispmdexppt{123} \\ +% +%\textsc{Four arguments} \\ +% +%Three digits, four arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.23\}} \\ +%\ispmdexppt{1.23} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.3\}} \\ +%\ispmdexppt{12.3} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234\}} \\ +%\ispmdexppt{1234} \\ +% +%\textsc{Five arguments} \\ +% +%Four digits, five arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.234\}} \\ +%\ispmdexppt{1.234} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.34\}} \\ +%\ispmdexppt{12.34} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123.4\}} \\ +%\ispmdexppt{123.4} \\ +% +%\newpage +% +%Five digits, five arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{12345\}} \\ +%\ispmdexppt{12345} \\ +% +%\textsc{Six arguments} \\ +% +%Five digits, six arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.2345\}} \\ +%\ispmdexppt{1.2345} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.345\}} \\ +%\ispmdexppt{12.345} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123.45\}} \\ +%\ispmdexppt{123.45} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234.5\}} \\ +%\ispmdexppt{1234.5} \\ +% +%Six digits, six arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{123456\}} \\ +%\ispmdexppt{123456} \\ +% +%\textsc{Seven arguments} \\ +% +%Six digits, seven arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.23456\}} \\ +%\ispmdexppt{1.23456} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.3456\}} \\ +%\ispmdexppt{12.3456} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123.456\}} \\ +%\ispmdexppt{123.456} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234.56\}} \\ +%\ispmdexppt{1234.56} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12345.6\}} \\ +%\ispmdexppt{12345.6} \\ +% +%Seven digits, seven arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1234567\}} \\ +%\ispmdexppt{1234567} \\ +% +%\textsc{Eight arguments} \\ +% +%Seven digits, eight arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.234567\}} \\ +%\ispmdexppt{1.234567} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.34567\}} \\ +%\ispmdexppt{12.34567} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123.4567\}} \\ +%\ispmdexppt{123.4567} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234.567\}} \\ +%\ispmdexppt{1234.567} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12345.67\}} \\ +%\ispmdexppt{12345.67} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123456.7\}} \\ +%\ispmdexppt{123456.7} \\ +% +%Eight digits, eight arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{12345678\}} \\ +%\ispmdexppt{12345678} \\ +% +%\textsc{Nine arguments} \\ +% +%Eight digits, nine arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{1.2345678\}} \\ +%\ispmdexppt{1.2345678} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12.345678\}} \\ +%\ispmdexppt{12.345678} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123.45678\}} \\ +%\ispmdexppt{123.45678} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234.5678\}} \\ +%\ispmdexppt{1234.5678} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{12345.678\}} \\ +%\ispmdexppt{12345.678} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{123456.78\}} \\ +%\ispmdexpp{123456.78} \\\\ +%\texttt{\textbackslash{}ispmdexppt\{1234567.8\}} \\ +%\ispmdexppt{1234567.8} \\ +% +%Nine digits, nine arguments: \\ +%\texttt{\textbackslash{}ispmdexppt\{123456789\}} \\ +%\ispmdexppt{123456789} \\ \\ +% +% +%%\subsubsection{Rendering by negative exponents of number ten powers} +%Rendering of a number as it multiplied by number ten raised to negative exponents of power. +%\paragraph{By first digit as leading digit, without truncated digits on the right of it} ~\ \\ +% +%\textsc{One digit after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.1\}}\\ +%\ispmdexpm{0.1} \\ +% +%\textsc{Two digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.12\}}\\ +%\ispmdexpm{0.12} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.01\}}\\ +%\ispmdexpm{0.01} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.10\}}\\ +%\ispmdexpm{0.10} \\ +% +%\textsc{Three digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.123\}}\\ +%\ispmdexpm{0.123} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.012\}}\\ +%\ispmdexpm{0.012} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.001\}}\\ +%\ispmdexpm{0.001} \\ +% +%\textsc{Four digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.1234\}}\\ +%\ispmdexpm{0.1234} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.0123\}}\\ +%\ispmdexpm{0.0123} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.0012\}}\\ +%\ispmdexpm{0.0012} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.0001\}}\\ +%\ispmdexpm{0.0001} \\ +% +%\textsc{Five digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.12345\}}\\ +%\ispmdexpm{0.12345} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.01234\}}\\ +%\ispmdexpm{0.01234} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.00123\}}\\ +%\ispmdexpm{0.00123} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.00012\}}\\ +%\ispmdexpm{0.00012} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.00001\}}\\ +%\ispmdexpm{0.00001} \\ +% +%\textsc{Six digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.123456\}}\\ +%\ispmdexpm{0.123456} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.012345\}}\\ +%\ispmdexpm{0.012345} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.001234\}}\\ +%\ispmdexpm{0.001234} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.000123\}}\\ +%\ispmdexpm{0.000123} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.000012\}}\\ +%\ispmdexpm{0.000012} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.000001\}}\\ +%\ispmdexpm{0.000001} \\ +% +%\textsc{Seven digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpm\{0.1234567\}}\\ +%\ispmdexpm{0.1234567} \\\\ +%\texttt{\textbackslash{}ispmdexpm\{0.0123456\}}\\ +%\ispmdexpm{0.0123456} \\\\ +%\texttt{\textbackslash{}ispmdexpm\{0.0012345\}}\\ +%\ispmdexpm{0.0012345} \\\\ +%\texttt{\textbackslash{}ispmdexpm\{0.0001234\}}\\ +%\ispmdexpm{0.0001234} \\\\ +%\texttt{\textbackslash{}ispmdexpm\{0.0000123\}}\\ +%\ispmdexpm{0.0000123} \\\\ +%\texttt{\textbackslash{}ispmdexpm\{0.0000012\}}\\ +%\ispmdexpm{0.0000012} \\ \\ +%\texttt{\textbackslash{}ispmdexpm\{0.0000001\}}\\ +%\ispmdexpm{0.0000001} +% +%\paragraph{By first digit as leading digit, with truncated digits on the right of it} ~\ \\ +% +%\textsc{One digit after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.1\}}\\ +%\ispmdexpmt{0.1} \\ +% +%\textsc{Two digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.12\}}\\ +%\ispmdexpmt{0.12} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.01\}}\\ +%\ispmdexpmt{0.01} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.10\}}\\ +%\ispmdexpmt{0.10} \\ +% +%\textsc{Three digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.123\}}\\ +%\ispmdexpmt{0.123} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.012\}}\\ +%\ispmdexpmt{0.012} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.001\}}\\ +%\ispmdexpmt{0.001} \\ +% +%\textsc{Four digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.1234\}}\\ +%\ispmdexpmt{0.1234} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0123\}}\\ +%\ispmdexpmt{0.0123} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0012\}}\\ +%\ispmdexpmt{0.0012} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0001\}}\\ +%\ispmdexpmt{0.0001} \\ +% +%\textsc{Five digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.12345\}}\\ +%\ispmdexpmt{0.12345} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.01234\}}\\ +%\ispmdexpmt{0.01234} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.00123\}}\\ +%\ispmdexpmt{0.00123} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.00012\}}\\ +%\ispmdexpmt{0.00012} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.00001\}}\\ +%\ispmdexpmt{0.00001} \\ +% +%\textsc{Six digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.123456\}}\\ +%\ispmdexpmt{0.123456} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.012345\}}\\ +%\ispmdexpmt{0.012345} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.001234\}}\\ +%\ispmdexpmt{0.001234} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.000123\}}\\ +%\ispmdexpmt{0.000123} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.000012\}}\\ +%\ispmdexpmt{0.000012} \\ \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.000001\}}\\ +%\ispmdexpmt{0.000001} \\ +% +%\textsc{Seven digits after dot} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.1234567\}}\\ +%\ispmdexpmt{0.1234567} \\\\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0123456\}}\\ +%\ispmdexpmt{0.0123456} \\\\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0012345\}}\\ +%\ispmdexpmt{0.0012345} \\\\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0001234\}}\\ +%\ispmdexpmt{0.0001234} \\\\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0000123\}}\\ +%\ispmdexpmt{0.0000123} \\\\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0000012\}}\\ +%\ispmdexpmt{0.0000012} \\ +%\texttt{\textbackslash{}ispmdexpmt\{0.0000001\}}\\ +%\ispmdexpmt{0.0000001} +% +%\subsubsection{option `flushpostdot'} +%\textsl{Usage}: \texttt{\textbackslash usepackage[flushpostdot]\{isphysicalmath\}} \\ +% +%Outside mathematical environment:\\ +%\texttt{\textbackslash{}ispmflushpd 12.3} \\ +%\ispmflushpd 12.3 \\ \\ +%Inside mathematical environment:\\ +%\texttt{\$\textbackslash{}ispmflushpd 12.3\$} \\ +%$\ispmflushpd 12.3$ +% +% +%\subsubsection{option `dc'} %\label{subsubsec:optionDc} %\textsl{Usage}: \texttt{\textbackslash usepackage[dc]\{isphysicalmath\}} \\ % @@ -640,84 +2674,19 @@ %\end{verbatim} %\end{center} % -%\subsubsection{option <comma>} -%\label{subsubsec:optionComma} -%\textsl{Usage}: \texttt{\textbackslash -%\{usepackage\}[comma]\{isphysicalmath\}} \\ -% -%It adds comma after every three digits, according to international -%scientific notation. -% -%\begin{center} -% 100,000,000 \\ -% 100,000,000.00\\ -% 10,000,000.00 \\ -% 1,000,000.00 \\ -% 100,000.00 \\ -% 10,000.00 \\ -% 1,000.00 -%\end{center} -% -%The code: -%\begin{center} -%\begin{verbatim} -%\ispmc{100000000} \\ -%\ispmc{100000000}.00 \\ -%\ispmc{10000000}.00 \\ -%\ispmc{1000000}.00 \\ -%\ispmc{100000}.00 \\ -%\ispmc{10000}.00 \\ -%\ispmc{1000}.00 -%\end{verbatim} -%\end{center} -%\subsubsection{command <comma>} -%\label{subsubsec:commandComma} -%\textsl{Usage}: \texttt{\textbackslash -%\{usepackage\}[dc]\{isphysicalmath\}} \\ -%or \\ -%\texttt{\textbackslash \{usepackage\}\{isphysicalmath\}} \\ -%It adds comma after every three digits, according to international -%scientific notation. -% -%\begin{center} -% 100,000,000 \\ -% 100,000,000.00\\ -% 10,000,000.00 \\ -% 1,000,000.00 \\ -% 100,000.00 \\ -% 10,000.00 \\ -% 1,000.00 -%\end{center} -% -%The code: -%\begin{center} -%\begin{verbatim} -%\ispmcomma{100000000} \\ -%\ispmcomma{100000000}.00 \\ -%\ispmcomma{10000000}.00 \\ -%\ispmcomma{1000000}.00 \\ -%\ispmcomma{100000}.00 \\ -%\ispmcomma{10000}.00 \\ -%\ispmcomma{1000}.00 -%\end{verbatim} -%\end{center} -%\newpage -% %\section{isphysicalmath url}% %Package home URL: -%\tiny \url{https://ctan.org/pkg/isphysicalmath} \\ -%\url{https://github.com/MartDiVenus/LaTeX/tree/isphysicalmath} \normalsize% +%\tiny \url{https://ctan.org/pkg/isphysicalmath} \normalsize % %\section{Copyright} -% -%Copyright (C) 2024 by Mario Fantini <marfant7@gmail.com> +%Copyright \copyright{} 2024 by Mario Fantini <ing.mariofantini@gmail.com>. % %This file may be distributed and/or modified under the conditions of -%the \LaTeX\ Project Public License, either version 1.3 of this license +%the \LaTeX{} Project Public License, either version 1.3 of this license %or (at your option) any later version. The latest version of this %license is in: \\ -%\url{http://www.latex-project.org/lppl.txt} \\ -%and version 1.3 or later is part of all distributions of \LaTeX\ version +%\tiny \url{http://www.latex-project.org/lppl.txt} \normalsize \\ +%and version 1.3 or later is part of all distributions of \LaTeX{} version %2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. @@ -742,7 +2711,7 @@ %\item Doc \textsl{comma} option improved in \autoref{sec:usage}. %\item Doc \textsl{comma} option changed in \autoref{subsec:in-depthNotation}. %\item Option \textsl{comma} improved, now the goal is reached by a single command. -%\item \autoref{subsubsec:optionComma} changed. +%\item Option \textsl{comma} changed. %\item \autoref{subsubsec:commandComma} added. %\item Following commands added: %\begin{itemize} @@ -773,5 +2742,21 @@ %\end{itemize} %\end{enumerate} % +%\subsection{v2.0.0} +%2024.12.24 Following corrections, improvements and new features have been brought: +%\begin{enumerate} +%\item I have corrected some distraction mistakes. However, perfect operation of \textsl{isphysicalmath} was guarenteed +% before these corrections too. +%\item I have removed \textit{comma option}. +%\item I have changed the order of \textit{options} in the documentation index. +%\item I have added the following new features: +%\begin{itemize} +%\item \texttt{\textbackslash ispmdexpp} command; +%\item \texttt{\textbackslash ispmdexppt} command; +%\item \texttt{\textbackslash ispmdexpm} command; +%\item \texttt{flushpostdot} option. +%\end{itemize} +%\item I have changed my e-mail contact. +%\end{enumerate} % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.ins b/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.ins index 2cbd19533c8..336204f7b48 100644 --- a/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.ins +++ b/Master/texmf-dist/source/latex/isphysicalmath/isphysicalmath.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2024 by Mario Fantini <marfant7@gmail.com> +%% Copyright (C) 2024 by Mario Fantini <ing.mariofantini@gmail.com> %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3 of this license @@ -28,7 +28,7 @@ This is a generated file. -Copyright (C) 2024 by Mario Fantini <marfant7@gmail.com> +Copyright (C) 2024 by Mario Fantini <ing.mariofantini@gmail.com> This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license diff --git a/Master/texmf-dist/source/xelatex/bidi/bidi-doc-intro.ltx b/Master/texmf-dist/source/xelatex/bidi/bidi-doc-intro.ltx index 1164704124b..71950a49c1a 100644 --- a/Master/texmf-dist/source/xelatex/bidi/bidi-doc-intro.ltx +++ b/Master/texmf-dist/source/xelatex/bidi/bidi-doc-intro.ltx @@ -17,10 +17,10 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run * and LaTeX. The package includes adaptations * for use with many other commonly-used packages. * -* Copyright (c) 2007--2024 Vafa Khalighi +* Copyright (c) 2007--2025 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v40.6 (Release John Willard Milnor), 2024/12/20 +* v40.8 (Release William Paul Thurston), 2024/12/28 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/Master/texmf-dist/source/xelatex/bidi/bidi-doc-title.ltx b/Master/texmf-dist/source/xelatex/bidi/bidi-doc-title.ltx index db1d367e040..bcf2d3fe5b2 100644 --- a/Master/texmf-dist/source/xelatex/bidi/bidi-doc-title.ltx +++ b/Master/texmf-dist/source/xelatex/bidi/bidi-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{bidiblue}{\Huge The \textsf{bidi} \textit{Package}}\\ \LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -\large User documentation for \textcolor{bidiblue}{version 40.6}} +\large User documentation for \textcolor{bidiblue}{version 40.8}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}} \setcounter{page}{0} \thispagestyle{empty} @@ -13,7 +13,7 @@ \textcolor{bidiblue}{\Huge The \textsf{bidi} \textit{Package}} \Large -User documentation for \textcolor{bidiblue}{version 40.6}} +User documentation for \textcolor{bidiblue}{version 40.8}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} diff --git a/Master/texmf-dist/source/xelatex/bidi/bidi-doc.ltx b/Master/texmf-dist/source/xelatex/bidi/bidi-doc.ltx index c4c5b370345..5529f006f2f 100644 --- a/Master/texmf-dist/source/xelatex/bidi/bidi-doc.ltx +++ b/Master/texmf-dist/source/xelatex/bidi/bidi-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 40.6 of the bidi + pdftitle={User documentation for version 40.8 of the bidi package}% } \begin{document} diff --git a/Master/texmf-dist/source/xelatex/bidi/bidi.dtx b/Master/texmf-dist/source/xelatex/bidi/bidi.dtx index 6951ec8721d..40087a54282 100644 --- a/Master/texmf-dist/source/xelatex/bidi/bidi.dtx +++ b/Master/texmf-dist/source/xelatex/bidi/bidi.dtx @@ -5,7 +5,7 @@ %<*readme> ___________________ The bidi package -v40.6 +v40.8 This package provides a convenient interface for typesetting bidirectional texts in Plain TeX and LaTeX, using XeTeX engine. @@ -30,12 +30,12 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2024/12/20 +Current version release date: 2024/12/28 ___________________________________________ Vafa Khalighi -Copyright (c) Vafa Khalighi 2007--2024 +Copyright (c) Vafa Khalighi 2007--2025 Copyright (c) bidi-tex GitHub Organization 2018--2020 It may be distributed and/or modified under the LaTeX Project Public License, @@ -57,7 +57,7 @@ by Vafa Khalighi. __________________________________________________ Vafa Khalighi - Copyright (c) 2007--2024 Vafa Khalighi + Copyright (c) 2007--2025 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified under the LaTeX Project Public License, @@ -267,7 +267,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 40.6 of the bidi + pdftitle={Source documentation for version 40.8 of the bidi package}% } \EnableCrossrefs @@ -286,7 +286,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{bidiblue}{\Huge The \textsf{bidi} \textit{Package}}\\ %\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -%\large Source documentation for \textcolor{bidiblue}{version 40.6}} +%\large Source documentation for \textcolor{bidiblue}{version 40.8}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} @@ -296,7 +296,7 @@ by Vafa Khalighi. %\textcolor{bidiblue}{\Huge The \textsf{bidi} \textit{Package}} % %\Large -%Source documentation for \textcolor{bidiblue}{version 40.6}} +%Source documentation for \textcolor{bidiblue}{version 40.8}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -329,7 +329,7 @@ by Vafa Khalighi. % %\vskip 0pt plus 3fill % -%Copyright (c) 2007--2024 Vafa Khalighi +%Copyright (c) 2007--2025 Vafa Khalighi % %Copyright (c) 2018--2020 bidi-tex GitHub Organization % @@ -345,7 +345,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{58558} +%% \CheckSum{58641} %% \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 @@ -2551,7 +2551,7 @@ by Vafa Khalighi. %\fi % \section{File \texttt{beamerbaseframecomponents-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{beamerbaseframecomponents-xetex-bidi.def}[2023/08/02 v0.6 bidi adaptations for beamerbaseframecomponents package for XeTeX engine] +\ProvidesFile{beamerbaseframecomponents-xetex-bidi.def}[2024/12/28 v0.7 bidi adaptations for beamerbaseframecomponents package for XeTeX engine] \renewcommand{\setbeamersize}[1]{% \beamer@dogeometryfalse% \setkeys{beamer@margin}{#1}% @@ -2715,6 +2715,15 @@ by Vafa Khalighi. \dp\beamer@tempbox=0pt% \box\beamer@tempbox}}} \let\@evenhead\@oddhead\let\@evenfoot\@oddfoot} + +\renewenvironment<>{beamer@columnenv}[2][\beamer@colmode]{% + \beamer@colclose\def\beamer@colclose{}% + \begin{actionenv}#3% + \setkeys{beamer@col}{#1}% + \begin{minipage}[\beamer@colalign]{#2}% + \leavevmode\bidi@beamer@ragged\beamer@colheadskip\ignorespaces} + {\end{minipage}\hfill\end{actionenv}\@ignoretrue} +\let\endcolumn\endbeamer@columnenv \renewcommand<>\beamer@columncom[2][\beamer@colmode]{% \beamer@colclose% @@ -4710,9 +4719,9 @@ by Vafa Khalighi. % \section{File \texttt{bidi.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\bididate{2024/12/20} -\def\bidi@version{40.6} -\def\bidi@releasename{John Willard Milnor} +\def\bididate{2024/12/28} +\def\bidi@version{40.8} +\def\bidi@releasename{William Paul Thurston} \newcommand*{\bidireleasename}{\bidi@releasename} \ProvidesPackage{bidi}[\bididate\space v\bidi@version\space (Release \bidi@releasename)\space Bidirectional typesetting in plain TeX and LaTeX] @@ -4858,7 +4867,7 @@ Bidirectional typesetting in plain TeX and LaTeX] * and LaTeX. The package includes adaptations^^J% * for use with many other commonly-used packages.^^J% * ^^J% -* Copyright (c) 2007--2024 Vafa Khalighi^^J% +* Copyright (c) 2007--2025 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub organization^^J% * ^^J% * v\bidi@version\space (Release \bidi@releasename), \bididate^^J% @@ -4929,7 +4938,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \newcommand*{\@bidi@pdfcustomproperties}{% This is the bidi package, Version \bidi@version\space (Release \bidi@releasename), - Released December 20, 2024. + Released December 28, 2024. } \newcommand*{\bidi@beamer@ragged}{} \@RTLmainfalse @@ -4983,9 +4992,19 @@ Bidirectional typesetting in plain TeX and LaTeX] }% \the\toks@ } +\newcount\bidi@typesethour +\newcount\bidi@typesetminute +\bidi@typesethour=\time +\divide\bidi@typesethour 60 +\bidi@typesetminute=-\bidi@typesethour +\multiply\bidi@typesetminute 60 +\advance\bidi@typesetminute \time +\newcommand*{\TypesetHour}{\two@digits\bidi@typesethour} +\newcommand*{\TypesetMinute}{\two@digits\bidi@typesetminute} +\newcommand*{\TypesetTime}{\TypesetHour:\TypesetMinute} \newcommand*{\@bidi@logo@}{% \@bidi@logo@hb@xt@columnwidth - {\hss\LRE{\bfseries Typeset by the \textsf{bidi} + {\hss\LRE{\bfseries Typeset {\today} at {\TypesetTime} by the \textsf{bidi} package\quad\@bidi@logo{bidi-logo.pdf}}}} \ExplSyntaxOn \keys_define:nn { bidi / pdfencrypt } @@ -5103,10 +5122,10 @@ Bidirectional typesetting in plain TeX and LaTeX] %\fi % \section{File \texttt{bidi.tex}} % \begin{macrocode} -\def\bididate{2024/12/20} +\def\bididate{2024/12/28} \catcode`@=11 -\def\bidi@version{40.6} -\def\bidi@releasename{John Willard Milnor} +\def\bidi@version{40.8} +\def\bidi@releasename{William Paul Thurston} \def\bidireleasename{\bidi@releasename} \let \protect \relax \newlinechar`\^^J @@ -5120,7 +5139,7 @@ Bidirectional typesetting in plain TeX and LaTeX] * and LaTeX. The package includes adaptations^^J% * for use with many other commonly-used packages.^^J% * ^^J% -* Copyright (c) 2007--2024 Vafa Khalighi^^J% +* Copyright (c) 2007--2025 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub organization^^J% * ^^J% * v\bidi@version\space (Release \bidi@releasename), \bididate^^J% @@ -5199,7 +5218,18 @@ Bidirectional typesetting in plain TeX and LaTeX] }% \the\toks@ } -\def\@bidi@logo@{\@bidi@logo@hb@xt@\hsize{\hss\LRE{\bf Typeset by the bidi package\quad\@bidi@logo{bidi-logo.pdf}}}} +\def\two@digits#1{\ifnum#1<10 0\fi\number#1} +\newcount\bidi@typesethour +\newcount\bidi@typesetminute +\bidi@typesethour=\time +\divide\bidi@typesethour 60 +\bidi@typesetminute=-\bidi@typesethour +\multiply\bidi@typesetminute 60 +\advance\bidi@typesetminute \time +\def\TypesetHour{\two@digits\bidi@typesethour} +\def\TypesetMinute{\two@digits\bidi@typesetminute} +\def\TypesetTime{\TypesetHour:\TypesetMinute} +\def\@bidi@logo@{\@bidi@logo@hb@xt@\hsize{\hss\LRE{\bf Typeset {\today} at {\TypesetTime} by the bidi package\quad\@bidi@logo{bidi-logo.pdf}}}} \def\nobidilogo{\let\@bidi@logo@\@empty \let\@bidi@inslogo@\@empty} \def\@bidi@pdfcreator{% The bidi package, v\bidi@version\space (Release \bidi@releasename), \bididate @@ -5209,7 +5239,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \def\@bidi@pdfcustomproperties{% This is the bidi package, Version \bidi@version\space (Release \bidi@releasename), - Released December 20, 2024. + Released December 28, 2024. } \def\bidi@pdfm@mark{% \special{pdf:% diff --git a/Master/texmf-dist/source/xelatex/bidi/bidi.ins b/Master/texmf-dist/source/xelatex/bidi/bidi.ins index c2c404702ea..2cffc147059 100644 --- a/Master/texmf-dist/source/xelatex/bidi/bidi.ins +++ b/Master/texmf-dist/source/xelatex/bidi/bidi.ins @@ -9,7 +9,7 @@ %% __________________________________________________ %% Vafa Khalighi %% -%% Copyright (c) 2007--2024 Vafa Khalighi +%% Copyright (c) 2007--2025 Vafa Khalighi %% Copyright (c) 2018--2020 bidi-tex GitHub Organization %% %% It may be distributed and/or modified under the LaTeX Project Public License, @@ -27,7 +27,7 @@ __________________________________________________ Vafa Khalighi - Copyright (c) 2007--2024 Vafa Khalighi + Copyright (c) 2007--2025 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified under the LaTeX Project Public License, diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx index fd9e569406e..9b1584c6611 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx @@ -22,10 +22,10 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th * typesetting, using fonts provided in the * distribution. * -* Copyright (c) 2008--2024 Vafa Khalighi +* Copyright (c) 2008--2025 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v25.5 (Release Mount Damavand), 2024/12/20 +* v25.8 (Release Mount Alvand), 2025/01/01 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx index 17fc16882a1..91bde7d40d9 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\ \LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -\large User documentation for \textcolor{xepersianblue}{version 25.5}} +\large User documentation for \textcolor{xepersianblue}{version 25.8}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}} \setcounter{page}{0} \thispagestyle{empty} @@ -13,7 +13,7 @@ \textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}} \Large -User documentation for \textcolor{xepersianblue}{version 25.5}} +User documentation for \textcolor{xepersianblue}{version 25.8}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -47,7 +47,7 @@ category. \vskip 0pt plus 3fill -Copyright (c) 2008--2024 Vafa Khalighi +Copyright (c) 2008--2025 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx index af63eddb98b..25e953db29f 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 25.5 of the XePersian + pdftitle={User documentation for version 25.8 of the XePersian package}% } \begin{document} diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx index d47d10a0184..5002a90c056 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx @@ -5,7 +5,7 @@ %<*readme> ____________________ The XePersian package -v25.5 +v25.8 The xepersian package provides a convenient interface for typesetting Persian and English texts in LaTeX, using XeTeX @@ -31,11 +31,11 @@ also appear in the Discussions space under the Announcements category. -Current version release date: 2024/12/20 +Current version release date: 2025/01/01 ___________________________________________ Vafa Khalighi -Copyright (c) Vafa Khalighi 2008--2024 +Copyright (c) Vafa Khalighi 2008--2025 Copyright (c) bidi-tex GitHub Organization 2018--2020 Distributed under the LaTeX Project Public License @@ -59,7 +59,7 @@ by Vafa Khalighi. __________________________________________________ Vafa Khalighi - Copyright (c) 2008--2024 Vafa Khalighi + Copyright (c) 2008--2025 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified under the LaTeX Project Public License, @@ -168,7 +168,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 25.5 of the XePersian + pdftitle={Source documentation for version 25.8 of the XePersian package}% } \EnableCrossrefs @@ -187,7 +187,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\ %\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -%\large Source documentation for \textcolor{xepersianblue}{version 25.5}} +%\large Source documentation for \textcolor{xepersianblue}{version 25.8}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} @@ -197,7 +197,7 @@ by Vafa Khalighi. %\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}} % %\Large -%Source documentation for \textcolor{xepersianblue}{version 25.5}} +%Source documentation for \textcolor{xepersianblue}{version 25.8}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -230,7 +230,7 @@ by Vafa Khalighi. % %\vskip 0pt plus 3fill % -%Copyright (c) 2008--2024 Vafa Khalighi +%Copyright (c) 2008--2025 Vafa Khalighi % %Copyright (c) 2018--2020 bidi-tex GitHub Organization % @@ -245,7 +245,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{10981} +%% \CheckSum{10999} %% \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 @@ -3568,10 +3568,10 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET % \section{File \texttt{xepersian.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\xepersian@version{25.5} -\def\xepersiandate{2024/12/20} -\def\xepersian@releasename{Mount Damavand} -\def\xepersian@persian@@releasename{دماوند} +\def\xepersian@version{25.8} +\def\xepersiandate{2025/01/01} +\def\xepersian@releasename{Mount Alvand} +\def\xepersian@persian@@releasename{کوه الوند} \newcommand*{\xepersianreleasename}{\if@RTL\xepersian@persian@@releasename\else\xepersian@releasename\fi} \ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space (Release \xepersian@releasename)\space Persian typesetting in XeLaTeX] @@ -3736,7 +3736,7 @@ Persian typesetting in XeLaTeX] * typesetting, using fonts provided in the^^J% * distribution.^^J% * ^^J% -* Copyright (c) 2008--2024 Vafa Khalighi^^J% +* Copyright (c) 2008--2025 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub Organization^^J% * ^^J% * v\xepersian@version\space (Release \xepersian@releasename), \xepersiandate^^J% @@ -4572,7 +4572,7 @@ Persian typesetting in XeLaTeX] \renewcommand*{\@bidi@logo@}{% \@bidi@logo@hb@xt@columnwidth {\hss\bfseries -حروفچینی شده با +حروفچینی شده {\today} در {\TypesetTime} با \textsf{\XePersian}\quad\@bidi@logo{xepersian-logo.pdf}}} \renewcommand*{\@bidi@pdfcreator}{% @@ -4581,7 +4581,7 @@ Persian typesetting in XeLaTeX] \newcommand*{\@xepersian@pdfcustomproperties}{% This is the xepersian package, Version \xepersian@version\space (Release \xepersian@releasename), - Released December 20, 2024. + Released January 1, 2025. } \newcommand\twocolumnstableofcontents{% @@ -4942,6 +4942,7 @@ number is 999,999,999.}% \@ifclassloaded{refrep}{\input{refrep-xepersian.def}}{} \@ifclassloaded{memoir}{\input{memoir-xepersian.def}}{} \@ifclassloaded{imsproc}{\input{imsproc-xepersian.def}}{} +\@ifdefinitionfileloaded{extrafootnotefeatures-xetex-bidi}{\input{extrafootnotefeatures-xepersian.def}}{} \newtoks\xepersian@toks \def\xepersian@tempa#1{% @@ -4970,11 +4971,6 @@ number is 999,999,999.}% \advance\@tempcnta\@ne}% } -\if@extrafootnotefeatures - \input{extrafootnotefeatures-xetex-bidi.def}% - \input{extrafootnotefeatures-xepersian.def}% -\fi - \bidi@patchcmd{\set@fontsize}{\@tempdimb#2pt}{% \@tempdimb\xepersian@@fontsize@scale\dimexpr#2pt\relax }{}{} @@ -5925,7 +5921,7 @@ indexblock environment may only appear inside frontpage environment. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-mathdigitspec} - [2022/05/20 v1.2.0 Unicode Persian math digits in XeLaTeX] + [2025/01/01 v1.2.1 Unicode Persian math digits in XeLaTeX] \def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} \let\newfam\new@mathgroup \def\select@group#1#2#3#4{% @@ -6212,7 +6208,7 @@ indexblock environment may only appear inside frontpage environment. \fi \fi \fi} -\mathcode`.="8000\relax +\AtBeginDocument{\mathcode`.="8000\relax} \def\MathDecimalSeparator{\ifx\persiandecimalseparator\undefined .\else \persiandecimalseparator\fi} \def\DefaultMathDecimalSeparator{.} \def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}} @@ -6435,7 +6431,7 @@ indexblock environment may only appear inside frontpage environment. % \section{File \texttt{xepersian-persiancal.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{xepersian-persiancal}[2012/07/25 v0.2 provides Persian calendar] +\ProvidesPackage{xepersian-persiancal}[2025/01/01 v0.3 provides Persian calendar] \newif\ifXePersian@leap \newif\ifXePersian@kabiseh \newcount\XePersian@i \newcount\XePersian@y \newcount\XePersian@m \newcount\XePersian@d @@ -6606,6 +6602,12 @@ indexblock environment may only appear inside frontpage environment. آبان\or آذر\or دی\or بهمن\or اسفند\fi} + +\newcommand*{\persianseason}{% + \ifcase\persianmonth\or + بهار\or بهار\or بهار\or تابستان\or تابستان\or تابستان\or + پاییز\or پاییز\or پاییز\or زمستان\or زمستان\or زمستان\fi +} % \end{macrocode} % \iffalse %</xepersian-persiancal.sty> diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins b/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins index 6aa2a121b56..278f8699971 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins @@ -9,7 +9,7 @@ %% __________________________________________________ %% Vafa Khalighi %% -%% Copyright (c) 2008--2024 Vafa Khalighi +%% Copyright (c) 2008--2025 Vafa Khalighi %% Copyright (c) 2018--2020 bidi-tex GitHub Organization %% %% It may be distributed and/or modified under the LaTeX Project Public License, @@ -28,7 +28,7 @@ __________________________________________________ Vafa Khalighi - Copyright (c) 2008--2024 Vafa Khalighi + Copyright (c) 2008--2025 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified under the LaTeX Project Public License, |