diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltplain.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltplain.dtx | 113 |
1 files changed, 105 insertions, 8 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltplain.dtx b/Master/texmf-dist/source/latex/base/ltplain.dtx index f14969b31d0..7f1f5a8eaee 100644 --- a/Master/texmf-dist/source/latex/base/ltplain.dtx +++ b/Master/texmf-dist/source/latex/base/ltplain.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltplain.dtx} - [2015/06/19 v2.0h LaTeX Kernel (Plain TeX)] + [2015/08/30 v2.1a LaTeX Kernel (Plain TeX)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltplain.dtx} @@ -50,7 +50,7 @@ %</driver> % \fi % -% \CheckSum{1204} +% \CheckSum{1343} % % \changes{v1.0a}{1994/03/08} % {Remove need for a driver file.} @@ -533,7 +533,8 @@ % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2015/01/01}{\e@ch@ck}{Extended Allocation}% +%<latexrelease>\IncludeInRelease{2015/10/01} +%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}% % \end{macrocode} % % \begin{macrocode} @@ -551,13 +552,38 @@ \fi % \end{macrocode} % Check we are below the extended limit. +% \changes{v2.0i}{2015/08/06} +% {Add \cs{string} in case argument is not an unexpandable primitive} % \begin{macrocode} \ifnum#1<#3\relax \else - \errmessage{No room for a new #4}% + \errmessage{No room for a new \string#4}% \fi \fi}% - +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2015/01/01}% +%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}% +%<latexrelease>\gdef\e@ch@ck#1#2#3#4{% +%<latexrelease> \ifnum#1<#2\else +%<latexrelease> \ifnum#1=#2\relax +%<latexrelease> #1\@cclvi +%<latexrelease> \ifx\count#4\advance#1 10 \fi +%<latexrelease> \fi +%<latexrelease> \ifnum#1<#3\relax +%<latexrelease> \else +%<latexrelease> \errmessage{No room for a new #4}% +%<latexrelease> \fi +%<latexrelease> \fi}% +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\e@ch@ck}{Extended Allocation (checking)}% +%<latexrelease>\let\e@ch@ck\@undefined +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{2015/01/01}% +%<latexrelease> {\extrafloats}{Extra floats}% % \end{macrocode} % \end{macro} % @@ -614,18 +640,17 @@ %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\e@ch@ck}{Extended Allocation}% -%<latexrelease>\let\e@ch@ck\@undefined +%<latexrelease> {\extrafloats}{Extra floats}% %<latexrelease>\let\float@count\@undefined %<latexrelease>\let\extrafloats\@undefined %<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\alloc@} % \begin{macrocode} -%<*2ekernel> \def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne \ch@ck#1#4#2% make sure there's still room \allocationnumber\count1#1% @@ -635,6 +660,18 @@ % \end{macro} % % \begin{macro}{\newinsert} +% \changes{v2.1a}{2015/08/30}{new \cs{newinsert} implementation} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2015/10/01} +%<latexrelease> {\newinsert}{Extended \newinsert}% +% \end{macrocode} +% \begin{macrocode} +\ifx\numexpr\@undefined +% \end{macrocode} +% If e-\TeX\ is not available use the original plain \TeX\ +% definition of |\newinsert|. % \begin{macrocode} \def\newinsert#1{\global\advance\insc@unt \m@ne \ch@ck0\insc@unt\count @@ -645,6 +682,66 @@ \global\chardef#1\allocationnumber \wlog{\string#1=\string\insert\the\allocationnumber}} % \end{macrocode} +% \begin{macrocode} +\else +% \end{macrocode} +% The highest register allowed with |\insert|. +% \begin{macrocode} +\ifx\directlua\@undefined + \chardef\e@insert@top255 +\else + \chardef\e@insert@top\e@alloc@top +\fi +% \end{macrocode} +% If the classic registers are exausted, take an insert from the free float list +% and use |\extrafloats| to add a new float to that list. +% \begin{macrocode} +\def\newinsert#1{% +\@tempswafalse +\ifnum\count10<\insc@unt +\ifnum\count11<\insc@unt +\ifnum\count12<\insc@unt +\ifnum\count14<\insc@unt + \@tempswatrue +\fi\fi\fi\fi +\if@tempswa +\global\advance\insc@unt\m@ne +\allocationnumber\insc@unt +\else + \extrafloats\@ne + \@next\@currbox\@freelist + {\ifnum\@currbox<\e@insert@top + \allocationnumber\@currbox + \else + \ch@ck0\m@ne\insert + \fi}% + {\ch@ck0\m@ne\insert}% +\fi +\global\chardef#1\allocationnumber +\wlog{\string#1=\string\insert\the\allocationnumber}% +} +% \end{macrocode} +% \begin{macrocode} +\fi +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\newinsert}{Extended \newinsert}% +%<latexrelease>\let\e@insert@top\@undefined +%<latexrelease>\def\newinsert#1{\global\advance\insc@unt \m@ne +%<latexrelease> \ch@ck0\insc@unt\count +%<latexrelease> \ch@ck1\insc@unt\dimen +%<latexrelease> \ch@ck2\insc@unt\skip +%<latexrelease> \ch@ck4\insc@unt\box +%<latexrelease> \allocationnumber\insc@unt +%<latexrelease> \global\chardef#1\allocationnumber +%<latexrelease> \wlog{\string#1=\string\insert\the\allocationnumber}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} % \end{macro} % % \begin{macro}{\ch@ck} |