Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/RMarkdown/rticles/elsevier_article/numcompress.sty
Views: 1083
%%1%% This is file 'numcompress'.2%%3%% Copyright (C) 2009-2012 River Valley Technologies4%% <latex.support@river-valley.com>5%%6%% This package may be distributed under the terms of the LaTeX Project7%% Public License, as described in lppl.txt in the base LaTeX distribution.8%% Either version 1.0 or, at your option, any later version.9%%10%% $Id: numcompress.sty 187 2012-08-18 09:36:35Z rishi $11%% $URL: http://lenova.river-valley.com/svn/elsbst/trunk/numcompress.sty $12%%13\NeedsTeXFormat{LaTeX2e}14\def\Fileversion$#1: #2 ${\gdef\fileversion{#2}}15\def\Filedate$#1: #2-#3-#4 #5 #6 #7 ${\gdef\filedate{#2/#3/#4}}16\Fileversion$Rev: 187 $17\Filedate$LastChangedDate: 2012-08-18 15:06:35 +0530 (Sat, 18 Aug 2012) $18\ProvidesPackage{numcompress}19[\filedate\space\fileversion\space numcompress (CVR)]20\PackageWarningNoLine{numcompress}21{****************************************\MessageBreak22Package numcompress v,\fileversion\space loaded\MessageBreak23[Compress numbers (CVR)]\MessageBreak24****************************************}25\newif\ifdots \dotsfalse26\newif\ifnumcompress \numcompresstrue2728\DeclareOption{dots}{\global\dotstrue}29\DeclareOption{nodots}{\global\dotsfalse}30\DeclareOption{compress}{\global\numcompresstrue}31\DeclareOption{nocompress}{\global\numcompressfalse}3233\ProcessOptions3435\def\removeDot#1{\def\tmp{#1}%36\ifx\tmp\@empty\else\@removeDot#1\@nil\fi}3738\def\@removeDot#1\@nil{\edef\fchar{\expandafter\@car#1\@nil}%39\edef\rchar{\expandafter\@cdr#1!\@nil}%40\def\@xmltempa{.}\def\@xmltempb{!}%41\ifx\fchar\@xmltempb\relax\else%42\ifx\fchar\@xmltempa\relax\else%43\fchar\ignorespaces\fi\removeDot{\rchar}\fi}4445\def\First[#1]{\csname First#1\endcsname}46\def\Second[#1]{\csname Second#1\endcsname}4748\def\parseFirstPage#1{\@tempcnta=049\@tfor\@digits:=#1\do{%50{\global\advance\@tempcnta by 151\expandafter\xdef\csname52First\the\@tempcnta\endcsname{\@digits}%53\xdef\flength{\the\@tempcnta}}}}5455\def\parseSecondPage#1{\@tempcnta=056\@tfor\@digits:=#1\do{%57{\global\advance\@tempcnta by 158\expandafter\xdef\csname59Second\the\@tempcnta\endcsname{\@digits}%60\xdef\llength{\the\@tempcnta}}}}6162\newif\ifdissimilar\dissimilarfalse63\def\checkequal#1#2{\edef\Farg{#1}\edef\Sarg{#2}%64\edef\One{A}%65\ifcat\One\Farg \relax\else%66\ifdissimilar\Sarg\else%67\ifnum\Farg=\Sarg\relax\else\Sarg\dissimilartrue\fi\fi\fi}68%69\let\@@fpage\@empty70\let\@@lpage\@empty71\def\fpage@compress#1{%72\gdef\@@fpage{#1}%73\edef\llength{0}%74\parseFirstPage{#1}%75\ifnum\flength=\llength%76\gdef\@fpage{\@@fpage}%77\gdef\@lpage{%78\@ifundefined{Second1}{}{\checkequal{\First[1]}{\Second[1]}}%79\@ifundefined{Second2}{}{\checkequal{\First[2]}{\Second[2]}}%80\@ifundefined{Second3}{}{\checkequal{\First[3]}{\Second[3]}}%81\@ifundefined{Second4}{}{\checkequal{\First[4]}{\Second[4]}}%82\@ifundefined{Second5}{}{\checkequal{\First[5]}{\Second[5]}}%83}%84\else%85\gdef\@fpage{\@@fpage}%86\gdef\@lpage{\@@lpage}%87\fi}8889\def\lpage@compress#1{%90\gdef\@@lpage{#1}%91\parseSecondPage{#1}%92\ifnum\flength=\llength%93\gdef\@fpage{\@@fpage}%94\gdef\@lpage{%95\edef\One{A}%96\edef\xFirst{\First[1]}%97\edef\xSecond{\Second[1]}%98\ifcat\One\xSecond\relax%99\ifx\xFirst\xSecond%100\@ifundefined{Second1}{}{\checkequal{\First[1]}{\Second[1]}}%101\@ifundefined{Second2}{}{\checkequal{\First[2]}{\Second[2]}}%102\@ifundefined{Second3}{}{\checkequal{\First[3]}{\Second[3]}}%103\@ifundefined{Second4}{}{\checkequal{\First[4]}{\Second[4]}}%104\@ifundefined{Second5}{}{\checkequal{\First[5]}{\Second[5]}}%105\else#1\fi%106\else%107\ifx\xFirst\xSecond%108\@ifundefined{Second1}{}{\checkequal{\First[1]}{\Second[1]}}%109\@ifundefined{Second2}{}{\checkequal{\First[2]}{\Second[2]}}%110\@ifundefined{Second3}{}{\checkequal{\First[3]}{\Second[3]}}%111\@ifundefined{Second4}{}{\checkequal{\First[4]}{\Second[4]}}%112\@ifundefined{Second5}{}{\checkequal{\First[5]}{\Second[5]}}%113\else#1\fi%114\fi%115}%116\else117\gdef\@fpage{\@@fpage}%118\gdef\@lpage{%119\edef\Targ{#1}%120\edef\One{A}%121\edef\xFirst{\First[1]}%122\edef\xSecond{\Second[1]}%123\ifx\xFirst\xSecond124\ifcat\One\xSecond\relax\else\@@lpage\fi%125\else#1\fi%126}%127\fi}128129%\newwrite\xx130%\immediate\openout\xx=tmpbib.tex131\gdef\@@lpage@compress#1--#2\@nil{\lpage@compress{#1}}132\gdef\@@@pages#1#2{\def\next{#2}%133% \immediate\write\xx{[\the\c@NAT@ctr.]\space [#1][#2]}%134\fpage@compress{#1}%\ifx\next\@empty\relax\else135\@@lpage@compress#2\@nil%\fi136{\@fpage\ifx\next\@empty\relax\else137--\@lpage\fi}\resetall}138139\gdef\@@@page#1{#1\resetall}140141\def\mk@empty#1{\@tempcnta=1142\loop\ifnum\@tempcnta<6143\expandafter\let\csname#1\the\@tempcnta\endcsname\relax144\advance\@tempcnta by 1 \repeat}145\def\resetall{\let\@lpage\@empty\let\@fpage\@empty146\def\flength{0}\def\llength{0}%147\let\@@fpage\@empty\let\@@lpage\@empty148\mk@empty{First}\mk@empty{Second}}149150151\ifdots152\gdef\xfnm[#1]{\unskip\space#1}153\def\bibinfo#1#2{\@ifnextchar.{\@@bibinfo{#1}{#2}}{\@@@bibinfo{#1}{#2}}}154\def\@@@bibinfo#1#2{\def\next{#1}%155\def\@@@pg{pages}\def\@@@au{author}%156\ifx\next\@@@pg\bibpages{#2}\else157\ifx\next\@@@au\bibauthor{#2}\else158#2\fi\fi}159\def\@@bibinfo#1#2.{\def\next{#1}%160\def\@@@pg{pages}\def\@@@au{author}%161\ifx\next\@@@pg\bibpages{#2}.\else162\ifx\next\@@@au\bibauthor{#2}\else163#2.\fi\fi}164\else165\gdef\xfnm[#1]{\unskip\space\removeDot{#1}}166\def\bibinfo#1#2{\def\next{#1}%167\def\@@@pg{pages}\def\@@@au{author}%168\ifx\next\@@@pg\bibpages{#2}\else169\ifx\next\@@@au\bibauthor{#2}\else170#2\fi\fi}171\fi172173\ifnumcompress174\def\bibpages#1{\@@bibpages#1--\\\@nil}175\def\@@bibpages#1--#2\@nil{%176\ifx\\#2\relax\@@@page{#1}\else177\@@@pages{#1}{#2}\fi}178\else179\def\bibpages#1{#1}180\fi181182\def\bibauthor#1{#1}183184\endinput185186%%187%% End of package 'numcompress.sty'188%%189190191