diff options
Diffstat (limited to 'macros')
17 files changed, 298 insertions, 241 deletions
diff --git a/macros/latex/contrib/leaflet/leaflet-manual.pdf b/macros/latex/contrib/leaflet/leaflet-manual.pdf Binary files differindex 70fdd0348c..fcb4ae6761 100644 --- a/macros/latex/contrib/leaflet/leaflet-manual.pdf +++ b/macros/latex/contrib/leaflet/leaflet-manual.pdf diff --git a/macros/latex/contrib/leaflet/leaflet.dtx b/macros/latex/contrib/leaflet/leaflet.dtx index cc540ca5d5..1e1ead3205 100644 --- a/macros/latex/contrib/leaflet/leaflet.dtx +++ b/macros/latex/contrib/leaflet/leaflet.dtx @@ -21,14 +21,14 @@ % % \iffalse %<class>\ProvidesClass{leaflet} -%<class> [2020/10/25 v2.0d LaTeX document class (JS,WaS,RN,HjG)] +%<class> [2020/11/06 v2.1a LaTeX document class (JS,WaS,RN,HjG)] % %<*driver|manual> %<driver>\def\filename{leaflet.dtx} %<manual>\def\filename{leaflet-manual.tex} -\def\fileversion{v2.0d} % change this when leaflet-manual changed, too. -\def\filedate{2020/10/25} -\def\docdate {2020/10/14} % change this when leaflet-manual changed, too. +\def\fileversion{v2.1a} % change this when leaflet-manual changed, too. +\def\filedate{2020/11/06} +\def\docdate {2020/11/06} % change this when leaflet-manual changed, too. %</driver|manual> %<*driver> \listfiles @@ -51,7 +51,7 @@ %</driver> % \fi % -% \CheckSum{1276} +% \CheckSum{1290} % % \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 @@ -824,31 +824,31 @@ % \end{macro} % \end{macro} % \begin{macro}{\CutLine} +% \changes{v2.1a}{2020/11/06}{Optional parameter for line type} % \begin{macro}{\CutLine*} % \begin{macro}{\Scissors} -% Adds a dotted line with two scissors on the left side of the page given as -% parameter |#1|. -% The starred version draws only the dotted line. +% Adds a line with two scissors on the left side of the page given as +% parameter |#1|. The starred version draws only the line. % \begin{macrocode} \newcommand*\CutLine{% \@ifstar{\@tempswatrue\LL@CutLine}{\@tempswafalse\LL@CutLine}} \@onlypreamble\CutLine -\newcommand*\LL@CutLine[1]{% +\newcommand*\LL@CutLine[2][.]{% \ifLL@combine \ifx\Scissors\@empty\@tempswatrue\fi - \if@tempswa - \AddToBackground{#1}{% - \put(0,0){% - \rotatebox{90}{\makebox(\paperheight,0){% - \normalsize - \dotfill}}}}% - \else - \AddToBackground{#1}{% - \put(0,0){% - \rotatebox{90}{\makebox(\paperheight,0){% - \normalsize - \dotfill\Scissors\dotfill\dotfill\Scissors\dotfill}}}}% - \fi + \if .#1% + \def\@tempa{\dotfill}% + \else\if -#1% + \def\@tempa{\hrulefill}% + \fi\fi + \edef\@tempb{% + \noexpand\AddToBackground{#2}{% + \noexpand\put(0,0){% + \noexpand\rotatebox{90}{\noexpand\makebox(\paperheight,0){% + \noexpand\normalsize\@tempa\if@tempswa\else\noexpand\Scissors% + \@tempa\@tempa\noexpand\Scissors\@tempa\fi}}}}% + }% + \@tempb \fi} \IfFileExists{pifont.sty} {\RequirePackage{pifont}% @@ -1161,8 +1161,8 @@ Hubert G\"a\ss lein} \date{Last updated~\docdate\\printed \today} -\CutLine*{1}% Dotted line without scissors -\CutLine{6}% Dotted line with scissors +\CutLine*{1}% Dotted line without scissors (same as \CutLine*[.]{1}) +\CutLine[-]{6}% Solid line with scissors \AddToBackground{5}{% Background of a small page \put(0,0){\textcolor{LightSkyBlue}{\rule{\paperwidth}{\paperheight}}}} diff --git a/macros/latex/contrib/leaflet/leaflet.pdf b/macros/latex/contrib/leaflet/leaflet.pdf Binary files differindex fb5b491f79..7eb81eb1cc 100644 --- a/macros/latex/contrib/leaflet/leaflet.pdf +++ b/macros/latex/contrib/leaflet/leaflet.pdf diff --git a/macros/latex/contrib/mlacls/mla-example-image.jpg b/macros/latex/contrib/mlacls/mla-example-image.jpg Binary files differnew file mode 100644 index 0000000000..526d944c03 --- /dev/null +++ b/macros/latex/contrib/mlacls/mla-example-image.jpg diff --git a/macros/latex/contrib/mlacls/mla-example.pdf b/macros/latex/contrib/mlacls/mla-example.pdf Binary files differindex 8bebefb590..de61b592bf 100644 --- a/macros/latex/contrib/mlacls/mla-example.pdf +++ b/macros/latex/contrib/mlacls/mla-example.pdf diff --git a/macros/latex/contrib/mlacls/mla-example.tex b/macros/latex/contrib/mlacls/mla-example.tex index 0d7bc93f0f..3d8cc8631f 100644 --- a/macros/latex/contrib/mlacls/mla-example.tex +++ b/macros/latex/contrib/mlacls/mla-example.tex @@ -2,7 +2,7 @@ \title{Sample MLA Document} \author{John Doe} -\professor{Dr. Suzie Que} +\professor{Dr.\ Suzie Que} \course{\LaTeX\ 101} \date{\mladate} % see docs for `\mladate' @@ -26,7 +26,7 @@ Though this paper is short, section headings are employed as an example of the ``mla'' class' capabilities. Some professors may explicitly require or denounce use of headings. -Dr. Suzie Que of Anytown, PA requires they be used for anything +Dr.\ Suzie Que of Anytown, PA requires they be used for anything longer than five pages: \begin{blockquote} John---so help me God---if you turn in another twenty-page research @@ -90,7 +90,7 @@ Endnotes can be easily printed in correct format by calling \section{Using bibliographies} -Dr. Suzie Que was cited in the above blockquote. +Dr.\ Suzie Que was cited in the above blockquote. The ins-and-outs of ``biblatex'' will not be explained in this document, so please refer to online documentation such as the ``BibLaTeX Cheat Sheet''. diff --git a/macros/latex/contrib/mlacls/mla.dtx b/macros/latex/contrib/mlacls/mla.dtx index cefa444991..2ea31fb52f 100644 --- a/macros/latex/contrib/mlacls/mla.dtx +++ b/macros/latex/contrib/mlacls/mla.dtx @@ -27,7 +27,7 @@ %<mla>\NeedsTeXFormat{LaTeX2e} %<mla>\ProvidesClass{mla} %<*mla> - [2020/08/16 v0.8 MLA Paper Class] + [2020/11/07 v0.9 MLA Paper Class] %</mla> %<*driver> @@ -47,7 +47,6 @@ \usepackage{verbatim} %% A couple things are cited in the docs -\usepackage{filecontents} \begin{filecontents}{mla.bib} @book{mlahb, author = {{Modern Language Association of America}}, @@ -92,12 +91,7 @@ \DeclareAcronym{SE}{short=SE,long=Stack Exchange} %% For a few different things -%%\usepackage{semantic-markup} -\usepackage{csquotes} -\newcommand{\foreign}[1]{\textit{#1}} -\newcommand{\term}[1]{\textit{#1}} -\newcommand{\soCalled}[1]{\textquote{#1}} -\newcommand{\mentioned}[1]{\textquote{#1}} +\usepackage{semantic-markup} %% Reset footnotes per page \usepackage[perpage]{footmisc} @@ -106,7 +100,7 @@ \interfootnotelinepenalty=10000 %% Technical info -\def\myemail{ssterling@firemail.cc} +\def\myemail{sprice623@aol.com} %% For the sake of consistency, I guess \GlossaryPrologue{\section{Change history}} @@ -137,7 +131,7 @@ % % \fi % -% \CheckSum{299} +% \CheckSum{401} % % \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 @@ -240,19 +234,37 @@ % \begin{macro}{\MLA@seven} % \begin{macro}{\MLA@eight} % \begin{macro}{\MLA@eightalt} +% \begin{macro}{\MLA@figures} +% \begin{macro}{\MLA@notes} % \begin{macro}{\MLA@microtype} +% \begin{macro}{\MLA@paperheader} +% \begin{macro}{\MLA@pageheader} +% \begin{macro}{\MLA@plainheadings} +% \begin{macro}{\MLA@fullpage} % The following are true/false switches to toggle certain features. % % \begin{macrocode} \newif\ifMLA@seven \newif\ifMLA@eight \newif\ifMLA@eightalt +\newif\ifMLA@figures +\newif\ifMLA@notes \newif\ifMLA@microtype +\newif\ifMLA@paperheader +\newif\ifMLA@pageheader +\newif\ifMLA@plainheadings +\newif\ifMLA@fullpage % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \section{Options} % \label{sec:options} @@ -285,6 +297,17 @@ \DeclareOption{mla8alt}{\MLA@sevenfalse\MLA@eightfalse\MLA@eightalttrue} % \end{macrocode} % +% For those who do not plan on using figures and/or footnotes, +% some time (and dependency disk space) might be saved by using the +% \Dopt{nofigures} and/or \Dopt{nonotes} options, as they are enabled +% by default. +% \begin{macrocode} +\MLA@figurestrue +\MLA@notestrue +\DeclareOption{nofigures}{\MLA@figuresfalse} +\DeclareOption{nonotes}{\MLA@notesfalse} +% \end{macrocode} +% % The \Dpkg{microtype} package can be optionally included % with the \Dopt{microtype} option to offset the pain of using % the Times typeface. @@ -292,6 +315,43 @@ \DeclareOption{microtype}{\MLA@microtypetrue} % \end{macrocode} % +% \changes{v0.9}{2020/10/05}{Added \Dopt{nopaperheader}, +% \Dopt{nopageheader} and \Dopt{noheaders} options to enable +% omission of paper headers, page headers or both paper +% and page headers respectively} +% For rare cases in which the paper and page headers are omitted +% or must be custom, the options \Dopt{nopaperheader} and +% \Dopt{nopageheader} may be used respectively, or +% \Dopt{noheaders} to omit both. +% \begin{macrocode} +\MLA@paperheadertrue +\MLA@pageheadertrue +\DeclareOption{nopaperheader}{\MLA@paperheaderfalse} +\DeclareOption{nopageheader}{\MLA@pageheaderfalse} +\DeclareOption{noheaders}{\MLA@paperheaderfalse\MLA@pageheaderfalse} +% \end{macrocode} +% +% \changes{v0.9}{2020/10/05}{Added \Dopt{plainheadings} option to +% forego small-caps and auto-numbering in section headings} +% For professors and/or writers who desire to format the section +% headings manually and individually (and forego \cs{titleformat\{\}}, +% the \Dopt{plainheadings} option may be used. +% \begin{macrocode} +\MLA@plainheadingsfalse +\DeclareOption{plainheadings}{\MLA@plainheadingstrue} +% \end{macrocode} +% +% \changes{v0.9}{2020/11/07}{Added \Dopt{fullpage} option to explicitly +% allow widows and orphans} +% Another edge case is in which a professor may require strict 24-line +% papers, i.\,e.\ explicitly allowing orphans and widows, enabled using +% the \Dopt{fullpage} option\footnote{In versions of \Dcls{mlacls} +% prior to v0.9, disallowing widows and orphans was default behavior.}. +% \begin{macrocode} +\MLA@fullpagefalse +\DeclareOption{fullpage}{\MLA@fullpagetrue} +% \end{macrocode} +% % \subsection{Processing} % \label{sec:processing} % @@ -330,14 +390,12 @@ % \changes{v0.6}{2019/05/29}{Added \Dpkg{float} package} % \changes{v0.7}{2019/06/01}{Changed \Dpkg{microtype} package % to only load through \Dopt{microtype} class option} +% \changes{v0.9}{2020/08/20}{Added \Dopt{nofigures} and \Dopt{nonotes} +% options to prevent loading unused dependencies} % \begin{macrocode} -\RequirePackage{caption} -\RequirePackage{enotez} \RequirePackage{enumitem} \RequirePackage{fancyhdr} -\RequirePackage{float} \RequirePackage{fullpage} -\RequirePackage{graphicx} \RequirePackage{ragged2e} \RequirePackage{newtxtext} \RequirePackage{titlesec} @@ -373,6 +431,27 @@ \fi % \end{macrocode} % +% The \Dpkg{caption}, \Dpkg{float} and \Dpkg{graphicx} packages +% are loaded by default, but can be disabled using the +% \Dopt{nofigures} option. +% +% \begin{macrocode} +\ifMLA@figures + \RequirePackage{caption} + \RequirePackage{float} + \RequirePackage{graphicx} +\fi +% \end{macrocode} +% +% Likewise, the \Dpkg{enotez} package can be disabled with +% \Dopt{nonotes}. +% +% \begin{macrocode} +\ifMLA@notes + \RequirePackage{enotez} +\fi +% \end{macrocode} +% % The \Dpkg{microtype} package is loaded if the \Dopt{microtype} % option is specified. % @@ -473,16 +552,24 @@ \@afterindenttrue % \end{macrocode} % -% And, for the sake of consistent 24-line papers, -% orphans and widows are explicitly allowed. +% Orphans and widows are explicitly banned\footnote{According to the +% \ac{MLA} itself: \url{https://style.mla.org/orphaned-words/}}. +% For the odd case in which papers must be consistently 24 lines +% (i.\,e.\ explicitly allowing orphans and widows), the +% \Dopt{fullpage} option may be used (see section~\ref{sec:options}). % % \begin{macrocode} -\widowpenalty=0 -\clubpenalty=0 -\interlinepenalty=0 +\ifMLA@fullpage + \widowpenalty=0 + \clubpenalty=0 + \interlinepenalty=0 +\else + \widowpenalty=10000 + \clubpenalty=10000 +\fi % \end{macrocode} % -% For a final heinous crime against typesetting, +% As a heinous crime against the art of typesetting, % the \citetitle{mlahb} advises flush-left/ragged-right alignment. % (This is acheived with the \Dpkg{ragged2e} package.) % @@ -528,7 +615,9 @@ % \label{sec:running_head} % % The running head in \ac{MLA} style is simply the author's surname -% followed by the current page number, right-aligned. +% (if defined) followed by the current page number, right-aligned, +% unless specified otherwise using the \Dopt{nopageheader} option +% (see section~\ref{sec:options}). % This is managed using the \Dpkg{fancyhdr} and \Dpkg{xstring} packages. % % \begin{macrocode} @@ -539,7 +628,13 @@ \fancyhf{} \pagestyle{headings} \pagestyle{norule} -\fancyhead[RO]{{\StrBehind{\@author}{ }[\last]\last} \thepage} +\ifMLA@pageheader + \ifx\@author\@empty + \fancyhead[RO]{\thepage} + \else + \fancyhead[RO]{{\StrBehind{\@author}{ }[\last]\last} \thepage} + \fi +\fi % \end{macrocode} % % The following code is largely a hack to align the header @@ -574,7 +669,7 @@ % % \begin{macro}{\professor} % The instructor who assigned the paper, i.e. -% \mentioned{Dr. Marjorie Stewart}. +% \mentioned{Dr.\ Marjorie Stewart}. % % \begin{macrocode} \newcommand*{\professor}[1]{\gdef\@professor{#1}} @@ -610,15 +705,20 @@ % \term{day month year}} % \changes{v0.4.1}{2019/05/15}{Changed date format back to whatever % is inside \cs{@date}} +% \changes{v0.9}{2020/10/05}{Changed to ignore (not print) undefined +% header macros} +% \changes{v0.9}{2020/10/05}{Fix weird bug where paragraph immediately +% after \cs{begin\{paper\}} (with no newline) is not indented} % \begin{macrocode} \newcommand{\makemlaheader}{% \begin{noindent} - \@author \\ - \@professor \\ - \@course \\ - \@date \\ - \begin{center}\@title\end{center} + \ifx\@author\@empty\else\@author\\\fi + \ifx\@professor\@empty\else\@professor\\\fi + \ifx\@course\@empty\else\@course\\\fi + \ifx\@date\@empty\else\@date\\\fi + \ifx\@title\@empty\else\begin{center}\@title\end{center}\fi \end{noindent} + % for some reason, this blank line is necessary } % \end{macrocode} % \end{macro} @@ -630,12 +730,16 @@ \renewcommand{\maketitle}{\makemlaheader} % \end{macrocode} % -% Finally, the header will print at the beginning of every document. +% Finally, the header will print at the beginning of every document +% unless specified otherwise using the \Dopt{nopaperheader} option +% (see section~\ref{sec:options}). % % \changes{v0.5}{2019/05/18}{Moved header-printing process to % \cs{AtBeginDocument}} % \begin{macrocode} -\AtBeginDocument{\maketitle} +\ifMLA@paperheader + \AtBeginDocument{\maketitle} +\fi % \end{macrocode} % % \subsection{Sectioning} @@ -643,6 +747,8 @@ % % \changes{v0.7}{2019/08/30}{Replaced regular space after dot % in section headings with \cs{enspace}} +% \changes{v0.8}{2020/08/16}{Removed extraneous spacing and newlines +% in section headings} % \begin{macro}{\section} % \changes{v0.2}{2019/05/02}{Changed heading to small-caps} % \begin{macro}{\subsection} @@ -659,7 +765,12 @@ % the popular, oft-referenced \ac{OWL}: \citeurl{owlmla}.}. % % However, for the sake of clarity, the section headings in this class -% will be set in small-caps. +% will be set in small-caps by default. +% Plain, unnumbered and entirely unformatted section headings can +% be acheived using the \Dopt{plainheadings} option +% (see section~\ref{sec:options}). +% For custom headings other than these, refer to the +% \Dpkg{fancyhdr} package documentation. % % \begin{macrocode} \renewcommand{\thesection}{\@arabic\c@section} @@ -670,12 +781,16 @@ % Un-fancifying the headings is acheived using % the \Dpkg{titlesec} package. % -% \changes{v0.8}{2020/08/16}{Removed extraneous spacing and newlines -% in section headings} % \begin{macrocode} -\titleformat{\section}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] -\titleformat{\subsection}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] -\titleformat{\subsubsection}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] +\ifMLA@plainheadings + \titleformat{\section}[block]{\normalsize}{}{0pt}{}[] + \titleformat{\subsection}[block]{\normalsize}{}{0pt}{}[] + \titleformat{\subsubsection}[block]{\normalsize}{}{0pt}{}[] +\else + \titleformat{\section}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] + \titleformat{\subsection}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] + \titleformat{\subsubsection}[block]{\normalsize\sc}{\thetitle.\enspace}{0pt}{}[] +\fi \titlespacing*{\section}{0pt}{0pt}{0pt} \titlespacing*{\subsection}{0pt}{0pt}{0pt} \titlespacing*{\subsubsection}{0pt}{0pt}{0pt} @@ -761,15 +876,17 @@ % seems customary and logical. % % \begin{macrocode} -\setlength{\floatsep}{\baselineskip} -\setlength{\intextsep}{\baselineskip} -\setlength{\textfloatsep}{\baselineskip} -\g@addto@macro\@floatboxreset\centering +\ifMLA@figures + \setlength{\floatsep}{\baselineskip} + \setlength{\intextsep}{\baselineskip} + \setlength{\textfloatsep}{\baselineskip} + \g@addto@macro\@floatboxreset\centering +\fi % \end{macrocode} % % Thanks to a bug inherited from the \Dpkg{here} package % which has remained unfixed since 1987\footnote{See the \cs{par} -% on p. 11, line 249 of \Dfile{ltfloat.dtx} from the \LaTeX\ kernel.}, +% on p.\ 11, line 249 of \Dfile{ltfloat.dtx} from the \LaTeX\ kernel.}, % there is not only extra space after the figure but the inability to % insert a figure within a paragraph. % Miraculously, there is a fix for this\footnote{See David Carlisle's @@ -777,12 +894,14 @@ % \url{https://tex.stackexchange.com/a/310793}}. % % \begin{macrocode} -\renewcommand{\float@endH}{% - \vspace{-12pt} - \@endfloatbox\vskip\intextsep - \if@flstyle\setbox\@currbox\float@makebox\columnwidth\fi - \box\@currbox\vskip\intextsep\relax\@doendpe -} +\ifMLA@figures + \renewcommand{\float@endH}{% + \vspace{-12pt} + \@endfloatbox\vskip\intextsep + \if@flstyle\setbox\@currbox\float@makebox\columnwidth\fi + \box\@currbox\vskip\intextsep\relax\@doendpe + } +\fi % \end{macrocode} % % \end{environment} @@ -795,21 +914,25 @@ % \Dpkg{caption} package. % % \begin{macrocode} -\captionsetup{% - font={normalfont}, - labelformat=simple, - labelsep=period, - position=bottom, - aboveskip=6pt, - belowskip=-10pt -} +\ifMLA@figures + \captionsetup{% + font={normalfont}, + labelformat=simple, + labelsep=period, + position=bottom, + aboveskip=6pt, + belowskip=-10pt + } +\fi % \end{macrocode} % % In the author's personal experience, most \ac{MLA}-style papers % use \mentioned{Fig.} and not \mentioned{Figure}. % % \begin{macrocode} -\captionsetup[figure]{name=Fig.} +\ifMLA@figures + \captionsetup[figure]{name=Fig.} +\fi % \end{macrocode} % % \end{environment} @@ -865,25 +988,29 @@ % This is acheived with the \Dpkg{enumitem} package. % % \begin{macrocode} -\newlist{mlanotes}{description}{1} -\setlist[mlanotes]{% - parsep=0pt, - itemsep=0pt, - topsep=0pt, - leftmargin=\parindent -} +\ifMLA@notes + \newlist{mlanotes}{description}{1} + \setlist[mlanotes]{% + parsep=0pt, + itemsep=0pt, + topsep=0pt, + leftmargin=\parindent + } +\fi % \end{macrocode} % % The following initializes the \Dpkg{enotez} package to use % the \Dlst{mlanotes} list format. % % \begin{macrocode} -\DeclareInstance{enotez-list}{mla}{list}{% - heading = {}, - format = \normalsize\normalfont, - list-type = mlanotes -} -\setenotez{list-name={},list-style=mla,backref} +\ifMLA@notes + \DeclareInstance{enotez-list}{mla}{list}{% + heading = {}, + format = \normalsize\normalfont, + list-type = mlanotes + } + \setenotez{list-name={},list-style=mla,backref} +\fi % \end{macrocode} % % \subsubsection{Bibliography} diff --git a/macros/latex/contrib/mlacls/mla.pdf b/macros/latex/contrib/mlacls/mla.pdf Binary files differindex a351cac71f..89794d68a4 100644 --- a/macros/latex/contrib/mlacls/mla.pdf +++ b/macros/latex/contrib/mlacls/mla.pdf diff --git a/macros/latex/contrib/numspell/README b/macros/latex/contrib/numspell/README index 9afd9185e2..8a3bd49fec 100644 --- a/macros/latex/contrib/numspell/README +++ b/macros/latex/contrib/numspell/README @@ -1,6 +1,6 @@ numspell.sty package -Copyright 2017- by Tibor Tomacs +Copyright 2017-2020 by Tibor Tomacs This package supports the spelling of cardinal and ordinal numbers. Supported languages are English, French, German, Hungarian and Italian. diff --git a/macros/latex/contrib/numspell/numspell-english.sty b/macros/latex/contrib/numspell/numspell-english.sty index 2bf2f69bbf..a3120e3ca8 100644 --- a/macros/latex/contrib/numspell/numspell-english.sty +++ b/macros/latex/contrib/numspell/numspell-english.sty @@ -1,7 +1,7 @@ %% %% `numspell-english.sty' English language package for 'numspell.sty' %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -16,7 +16,7 @@ %% The Current Maintainer of this work is Tibor Tomacs. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{numspell-english}[2017/02/09 v1.0 English language package for numspell] +\ProvidesPackage{numspell-english}[2020/11/07 v1.1 English language package for numspell] %% ----------- %% \numspellGB (Default) @@ -25,7 +25,7 @@ %% \def\numspellGB{% \def\numspell@and@en{\numspell@{ and }}% - \def\numspell@and@@en{\numspell@{ and }}% + \def\numspell@and@@en{\numspell@{, }}% It was 'and' in v1.0 } \numspellGB diff --git a/macros/latex/contrib/numspell/numspell-french.sty b/macros/latex/contrib/numspell/numspell-french.sty index 00426043bf..8f9f1350b9 100644 --- a/macros/latex/contrib/numspell/numspell-french.sty +++ b/macros/latex/contrib/numspell/numspell-french.sty @@ -1,7 +1,7 @@ %% %% `numspell-french.sty' French language package for 'numspell.sty' %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/numspell/numspell-german.sty b/macros/latex/contrib/numspell/numspell-german.sty index bd100313f8..068b7deee9 100644 --- a/macros/latex/contrib/numspell/numspell-german.sty +++ b/macros/latex/contrib/numspell/numspell-german.sty @@ -1,7 +1,7 @@ %% %% `numspell-german.sty' German language package for 'numspell.sty' %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/numspell/numspell-italian.sty b/macros/latex/contrib/numspell/numspell-italian.sty index da1f9dc178..db519e4974 100644 --- a/macros/latex/contrib/numspell/numspell-italian.sty +++ b/macros/latex/contrib/numspell/numspell-italian.sty @@ -1,7 +1,7 @@ %% %% `numspell-italian.sty' Italian language package for 'numspell.sty' %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/numspell/numspell-magyar.sty b/macros/latex/contrib/numspell/numspell-magyar.sty index ce4c1d2442..7634b64f90 100644 --- a/macros/latex/contrib/numspell/numspell-magyar.sty +++ b/macros/latex/contrib/numspell/numspell-magyar.sty @@ -1,7 +1,7 @@ %% %% `numspell-magyar.sty' Hungarian language package for 'numspell.sty' %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/numspell/numspell.pdf b/macros/latex/contrib/numspell/numspell.pdf Binary files differindex 60ea99893f..76152b5074 100644 --- a/macros/latex/contrib/numspell/numspell.pdf +++ b/macros/latex/contrib/numspell/numspell.pdf diff --git a/macros/latex/contrib/numspell/numspell.sty b/macros/latex/contrib/numspell/numspell.sty index 3fd2fcc178..c74912b8d1 100644 --- a/macros/latex/contrib/numspell/numspell.sty +++ b/macros/latex/contrib/numspell/numspell.sty @@ -3,7 +3,7 @@ %% %% Package for spelling the non-negative cardinal and ordinal numbers (maximum 66 digits). %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -18,10 +18,10 @@ %% The Current Maintainer of this work is Tibor Tomacs. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{numspell}[2017/09/30 v1.2 Package for spelling cardinal and ordinal numbers] +\ProvidesPackage{numspell}[2020/11/07 v1.3 Package for spelling cardinal and ordinal numbers] \RequirePackage{xstring} -\RequirePackage{pdftexcmds} +\RequirePackage{iflang} \RequirePackage{etoolbox} \newcounter{numspell@counter@tempa} @@ -226,43 +226,46 @@ %% -------------------- %% \numspell@lang@check %% -------------------- -%% If english is active, then \numspell@langname will be 'en'. -%% If magyar is active, then \numspell@langname will be 'hu'. -%% If german or ngerman is active, then \numspell@langname will be 'de'. -%% If french is active, then \numspell@langname will be 'fr'. -%% If italian is active, then \numspell@langname will be 'it'. -%% Otherwise error. %% \newif\if@numspell@lang@notsupported@ \def\numspell@lang@check{% \@numspell@lang@notsupported@true% - \ifnum\pdf@strcmp{\languagename}{english}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{en}\fi% - \ifnum\pdf@strcmp{\languagename}{magyar}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{hu}\fi% - \ifnum\pdf@strcmp{\languagename}{german}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{de}\fi% - \ifnum\pdf@strcmp{\languagename}{ngerman}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{de}\fi% - \ifnum\pdf@strcmp{\languagename}{french}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{fr}\fi% - \ifnum\pdf@strcmp{\languagename}{italian}=\z@\@numspell@lang@notsupported@false\def\numspell@langname{it}\fi% - \if@numspell@lang@notsupported@\@latexerr{'numspell.sty' error! Not supported language: \languagename}{}\fi% + \def\numspell@langname{en}% + \IfLanguageName{english}{\@numspell@lang@notsupported@false}{}% + \IfLanguageName{british}{\@numspell@lang@notsupported@false}{}% + \IfLanguageName{ukenglish}{\@numspell@lang@notsupported@false}{}% + \IfLanguageName{UKenglish}{\@numspell@lang@notsupported@false}{}% + \IfLanguageName{american}{\@numspell@lang@notsupported@false\numspellUS}{}% + \IfLanguageName{usenglish}{\@numspell@lang@notsupported@false\numspellUS}{}% + \IfLanguageName{USenglish}{\@numspell@lang@notsupported@false\numspellUS}{}% + \IfLanguageName{magyar}{\@numspell@lang@notsupported@false\def\numspell@langname{hu}}{}% + \IfLanguageName{hungarian}{\@numspell@lang@notsupported@false\def\numspell@langname{hu}}{}% + \IfLanguageName{german}{\@numspell@lang@notsupported@false\def\numspell@langname{de}}{}% + \IfLanguageName{ngerman}{\@numspell@lang@notsupported@false\def\numspell@langname{de}}{}% + \IfLanguageName{french}{\@numspell@lang@notsupported@false\def\numspell@langname{fr}}{}% + \IfLanguageName{italian}{\@numspell@lang@notsupported@false\def\numspell@langname{it}}{}% + \if@numspell@lang@notsupported@\PackageWarning{numspell}{Not supported language: \languagename}\fi% } %% ------------------------- %% Loading language packages %% ------------------------- -%% If babel or polyglossia loads english, then numspell loads numspell-english.sty. -%% If babel or polyglossia loads magyar, then numspell loads numspell-magyar.sty. -%% If babel or polyglossia loads german or ngerman, then numspell loads numspell-german.sty. -%% If babel or polyglossia loads french, then numspell loads numspell-french.sty. -%% If babel or polyglossia loads italian, then numspell loads numspell-italian.sty. -%% Otherwise numspell loads numspell-english.sty. %% \AtEndPreamble{% \newif\if@numspell@lang@loaded@ -\bbl@iflanguage\languagename{\expandafter\ifx\csname dateenglish\endcsname\relax\else\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi}% -\bbl@iflanguage\languagename{\expandafter\ifx\csname datemagyar\endcsname\relax\else\RequirePackage{numspell-magyar}\@numspell@lang@loaded@true\fi}% -\bbl@iflanguage\languagename{\expandafter\ifx\csname dategerman\endcsname\relax\else\RequirePackage{numspell-german}\@numspell@lang@loaded@true\fi}% -\bbl@iflanguage\languagename{\expandafter\ifx\csname datengerman\endcsname\relax\else\RequirePackage{numspell-german}\@numspell@lang@loaded@true\fi}% -\bbl@iflanguage\languagename{\expandafter\ifx\csname datefrench\endcsname\relax\else\RequirePackage{numspell-french}\@numspell@lang@loaded@true\fi}% -\bbl@iflanguage\languagename{\expandafter\ifx\csname dateitalian\endcsname\relax\else\RequirePackage{numspell-italian}\@numspell@lang@loaded@true\fi}% +\ifdefined\dateenglish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\datebritish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\dateukenglish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\dateUKenglish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\dateamerican\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\dateusenglish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\dateUSenglish\RequirePackage{numspell-english}\@numspell@lang@loaded@true\fi% +\ifdefined\datemagyar\RequirePackage{numspell-magyar}\@numspell@lang@loaded@true\fi% +\ifdefined\datehungarian\RequirePackage{numspell-magyar}\@numspell@lang@loaded@true\fi% +\ifdefined\dategerman\RequirePackage{numspell-german}\@numspell@lang@loaded@true\fi% +\ifdefined\datengerman\RequirePackage{numspell-german}\@numspell@lang@loaded@true\fi% +\ifdefined\datefrench\RequirePackage{numspell-french}\@numspell@lang@loaded@true\fi% +\ifdefined\dateitalian\RequirePackage{numspell-italian}\@numspell@lang@loaded@true\fi% \if@numspell@lang@loaded@\else\RequirePackage{numspell-english}\fi% } diff --git a/macros/latex/contrib/numspell/numspell.tex b/macros/latex/contrib/numspell/numspell.tex index 5c8186fe48..c28766044d 100644 --- a/macros/latex/contrib/numspell/numspell.tex +++ b/macros/latex/contrib/numspell/numspell.tex @@ -1,7 +1,7 @@ %% %% `numspell.tex' documentation of the numspell package %% -%% Copyright 2017- by Tibor Tomacs +%% Copyright 2017-2020 by Tibor Tomacs %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -16,7 +16,7 @@ %% The Current Maintainer of this work is Tibor Tomacs. %% \documentclass{article} -\usepackage[a4paper,margin=25mm]{geometry} +\usepackage[a4paper]{geometry} \usepackage[pdfstartview=FitH,colorlinks,allcolors=black,bookmarksnumbered]{hyperref} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -52,7 +52,7 @@ keepspaces]} \begin{document} -\title{The {\bfseries\sffamily numspell} package\\{\large v1.2 (2017/09/30)}} +\title{The {\bfseries\sffamily numspell} package\\{\large v1.3 (2020/11/07)}} \author{Tibor Tómács\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}} \date{} \maketitle @@ -60,10 +60,10 @@ keepspaces]} \section{Introduction} The aim of the \texttt{numspell} package is to spell the cardinal and ordinal numbers from 0 to $10^{67}-1$ (i.e.~maximum 66 digits). -Currently, the supported languages are English, French, German, Hungarian and Italian. +The supported languages are English (British and American), French, German, Hungarian and Italian. The spelling will happen in the current language. -The \texttt{numspell} package requires the services of the following packages: \texttt{xstring}, \texttt{etoolbox}, \texttt{pdftexcmds}. +The \texttt{numspell} package requires the services of the following packages: \texttt{xstring}, \texttt{etoolbox}, \texttt{iflang}. Load the package as usual, with \begin{flushleft} @@ -231,25 +231,6 @@ For example \thenumspellMyNum \end{description} -\section{Commands for English language} -\begin{description} -\item\commandinline|\numspellUS|\\ -By default, the number spelling will happen in British English, if the \texttt{english} language is active. -This command changes it to American English. For example -\begin{flushleft} -\verb|\numspellUS\numspell{1012345}| $\to$ \numspellUS\numspell{1012345}\numspellGB -\end{flushleft} - -\item\commandinline|\numspellGB|\\ -Using the \verb|\numspellUS| command, you can rechange it to British English by this command. For example -\begin{verbatim} -\numspellUS\numspell{1012345}\\ -\numspellGB\numspell{1012345} -\end{verbatim} -\numspellUS\numspell{1012345}\\ -\numspellGB\numspell{1012345} -\end{description} - \section{Commands for French language} The following commands only work, if \texttt{french} language is active. \begin{description} @@ -298,34 +279,10 @@ For example \thenumspellMyNum} \item\commandinline|\Anumspell[!<zeros>!]{!<num>!}|\\ -It works like \verb|\anumspell|, but the first letter will be capital. For example -\begin{flushleft} -{\selectlanguage{magyar} -\verb|\Anumspell{1}| $\to$ \Anumspell{1}\\ -\verb|\Anumspell{2}| $\to$ \Anumspell{2}} -\end{flushleft} +It works like \verb|\anumspell|, but the first letter will be capital. \item\commandinline|\Anumspell*[!<zeros>!]{!<num>!}|\\ -It works like \verb|\Anumspell|, but the number spelling will not be printed. -In other words, the following two lines are equivalent: -\begin{flushleft} -\verbinline|\Anumspell[!<zeros>!]{!<num>!}|\\ -\verbinline|\Anumspell*[!<zeros>!]{!<num>!}\thenumspell| -\end{flushleft} -For example -\begin{verbatim} -\Anumspell*{1} -\numspellsave{MyNum} -\Anumspell*{2} -\thenumspell; -\thenumspellMyNum -\end{verbatim} -{\selectlanguage{magyar} -\Anumspell*{1} -\numspellsave{MyNum} -\Anumspell*{2} -\thenumspell; -\thenumspellMyNum} +It works like \verb|\anumspell*|, but the first letter will be capital. \item\commandinline|\aordnumspell[!<zeros>!]{!<num>!}|\\ It works like \verb|\ordnumspell|, but the number spelling will start with Hungarian definite article. For example @@ -358,34 +315,10 @@ For example \thenumspellMyNum} \item\commandinline|\Aordnumspell[!<zeros>!]{!<num>!}|\\ -It works like \verb|\aordnumspell|, but the first letter will be capital. For example -\begin{flushleft} -{\selectlanguage{magyar} -\verb|\Aordnumspell{1}| $\to$ \Aordnumspell{1}\\ -\verb|\Aordnumspell{2}| $\to$ \Aordnumspell{2}} -\end{flushleft} +It works like \verb|\aordnumspell|, but the first letter will be capital. \item\commandinline|\Aordnumspell*[!<zeros>!]{!<num>!}|\\ -It works like \verb|\Aordnumspell|, but the number spelling will not be printed. -In other words, the following two lines are equivalent: -\begin{flushleft} -\verbinline|\Aordnumspell[!<zeros>!]{!<num>!}|\\ -\verbinline|\Aordnumspell*[!<zeros>!]{!<num>!}\thenumspell| -\end{flushleft} -For example -\begin{verbatim} -\Aordnumspell*{1} -\numspellsave{MyNum} -\Aordnumspell*{2} -\thenumspell; -\thenumspellMyNum -\end{verbatim} -{\selectlanguage{magyar} -\Aordnumspell*{1} -\numspellsave{MyNum} -\Aordnumspell*{2} -\thenumspell; -\thenumspellMyNum} +It works like \verb|\aordnumspell*|, but the first letter will be capital. \end{description} \section{Commands for Italian language} @@ -413,44 +346,37 @@ The ordinal numbers will be printed in feminine form. For example\\ \usepackage{numspell} \usepackage[group-separator={,}]{siunitx} \begin{document} - \def\mynum{123456789} - \noindent -In American English the spelling of \num{\mynum} is -{\numspellUS\emph{``\numspell{\mynum}''}}. - -\smallskip\noindent In British English the spelling of \num{\mynum} is \emph{``\numspell{\mynum}''}. - -\smallskip\noindent +\par\smallskip\noindent +In American English the spelling of \num{\mynum} is +{\selectlanguage{american}\emph{``\numspell{\mynum}''}}. +\par\smallskip\noindent In French the spelling of \num{\mynum} is {\selectlanguage{french}\emph{``\numspell{\mynum}''}}. - -\smallskip\noindent +\par\smallskip\noindent In German the spelling of \num{\mynum} is {\selectlanguage{ngerman}\emph{``\numspell{\mynum}''}}. - -\smallskip\noindent +\par\smallskip\noindent In Hungarian the spelling of \num{\mynum} is {\selectlanguage{magyar}\emph{`'\numspell{\mynum}''}}. - -\smallskip\noindent +\par\smallskip\noindent In Italian the spelling of \num{\mynum} is {\selectlanguage{italian}\emph{``\numspell{\mynum}''}}. - \end{document} \end{examplelst} \def\mynum{123456789} \noindent -In American English the spelling of \num{\mynum} is -{\numspellUS\emph{``\numspell{\mynum}''}}. +In British English the spelling of \num{\mynum} is +\emph{``\numspell{\mynum}''}. \smallskip\noindent -In British English the spelling of \num{\mynum} is \emph{``\numspell{\mynum}''}. +In American English the spelling of \num{\mynum} is +{\selectlanguage{american}\emph{``\numspell{\mynum}''}}. \smallskip\noindent In French the spelling of \num{\mynum} is @@ -475,10 +401,8 @@ In Italian the spelling of \num{\mynum} is \usepackage{numspell} \usepackage[group-separator={,}]{siunitx} \begin{document} - \def\mynum{123456789012345678901234567890123456789012345678901234567890123456} \Numspell{\mynum}, that is \num{\mynum}. - \end{document} \end{examplelst} @@ -493,11 +417,9 @@ In Italian the spelling of \num{\mynum} is \newcounter{mycount} \makeatletter \begin{document} - The \@whilenum\value{mycount}<51 \do{\ordnumspell{\themycount}\stepcounter{mycount},\ }\dots - \end{document} \end{examplelst} @@ -517,11 +439,9 @@ The \def\themycount{\numspell{\arabic{mycount}}} \makeatletter \begin{document} - \Numspell{0}, \@whilenum\value{mycount}<30 \do{\stepcounter{mycount}\themycount,\ }\dots - \end{document} \end{examplelst} @@ -535,44 +455,51 @@ The \bigskip \section{Limitations} -Do not use the \verb|\numspell|, \verb|\numspell*|, \verb|\Numspell|, \verb|\Numspell*|, etc.\ commands inside \verb|\MakeUppercase| and sectioning commands. +Do not use the \verb|\numspell|, \verb|\numspell*|, \verb|\Numspell|, \verb|\Numspell*|, etc.\ commands inside sectioning commands and \verb|\MakeUppercase|. An example for the illustration of the problem: \begin{examplelst} \documentclass{article} -\usepackage{hyperref,numspell} +\usepackage{hyperref} +\usepackage{numspell} \pagestyle{headings} \begin{document} - \section{The \ordnumspell{123} factor} \MakeUppercase{\numspell{123}} \newpage Text - \end{document} \end{examplelst} \noindent -The bugs: +\textbf{The bugs} \begin{enumerate} \setlength{\labelsep}{5pt} \item -You can see it on the page 1: ``\numspell{123}''\\ +On the page 1: ``\numspell{123}''\\ Required: \numspell*{123}\MakeUppercase{``\thenumspell''} \item -You can see it on the heading: \emph{``THE \ordnumspell{123} FACTOR''}\\ +On the heading: \emph{``THE \ordnumspell{123} FACTOR''}\\ Required: \ordnumspell*{123}\MakeUppercase{\em``The \thenumspell\ factor''} \item -You can see it on the pdf bookmark: ``The 123 factor''\\ +On the pdf bookmark: ``The 123 factor''\\ Required: ``The \ordnumspell{123} factor'' \end{enumerate} \noindent -The solution is very easy: +\textbf{The solution} \begin{examplelst} +\documentclass{article} +\usepackage{hyperref} +\usepackage{numspell} +\pagestyle{headings} +\begin{document} \ordnumspell*{123} \section{The \thenumspell\ factor} \numspell*{123} \MakeUppercase{\thenumspell} +\newpage +Text +\end{document} \end{examplelst} \end{document}
\ No newline at end of file |