From 2a8f95100cbc46b8462f7f4f8a665edd9faa6ce3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 11 Jul 2013 22:53:33 +0000 Subject: csplain (11jul13) git-svn-id: svn://tug.org/texlive/trunk@31160 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/csplain/base/csplain.ini | 18 +- Master/texmf-dist/tex/csplain/fonts/chars-8z.tex | 3 + Master/texmf-dist/tex/csplain/fonts/lmfonts.tex | 14 +- Master/texmf-dist/tex/csplain/opmac/opmac.tex | 199 +++++++++++++---------- 4 files changed, 139 insertions(+), 95 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/tex/csplain/base/csplain.ini b/Master/texmf-dist/tex/csplain/base/csplain.ini index fbdac4e9891..4eb0e15e924 100644 --- a/Master/texmf-dist/tex/csplain/base/csplain.ini +++ b/Master/texmf-dist/tex/csplain/base/csplain.ini @@ -16,7 +16,17 @@ \ifx\enc\undefined \else \input csenc-\enc.tex \fi % re-encoding using encTeX \ifx\directlua\undefined \else\input luatexiniconfig.tex \fi % LuaTeX specific -\ifx\XeTeXuseglyphmetrics\undefined \else\XeTeXuseglyphmetrics=1 \fi % XeTeX specific + +\ifx\XeTeXuseglyphmetrics\undefined \else % XeTeX specific: + \csname newcount\endcsname \XeTeXallocatorG \XeTeXallocatorG=3 + \def\newXeTeXintercharclass#1{% \newXeTeXintercharclas is documented + \global\advance\XeTeXallocatorG by1 % in xetex-reference.pdf + \ifnum\XeTeXallocatorG<255 + \global\chardef#1=\XeTeXallocatorG + \wlog{\string#1=\string\XeTeXintercharclass\the\XeTeXallocatorG}% + \else \errmessage{No room for a new \XeTeXintercharclass}\fi} + \XeTeXuseglyphmetrics=1 +\fi \ifx\pdfoutput\undefined \else % added in Feb. 2005 \def\tmpa{\pdfcsplain} @@ -124,6 +134,12 @@ file extcode.tex renamed to il2code.tex (suggested by Jan Kasprzak) * \letfont macro introduced. * lmfonts.tex: \ifx\font\corkencoded \def\tmp{rm} corrected. + Jul. 2013: +* \newXeTeXintercharclass defined for XeTeX. +* chars-8z.tex: twice loading is protected. +* lmfonts.tex: cs-lmtt10 loaded, encoding is OK. + + COPYRIGHT ========= diff --git a/Master/texmf-dist/tex/csplain/fonts/chars-8z.tex b/Master/texmf-dist/tex/csplain/fonts/chars-8z.tex index f774361d72a..ae39441aa6a 100644 --- a/Master/texmf-dist/tex/csplain/fonts/chars-8z.tex +++ b/Master/texmf-dist/tex/csplain/fonts/chars-8z.tex @@ -3,6 +3,9 @@ % The simple declarations of more characters from 8z encoded fonts. +\ifx\charsEightZ\undefined \else \endinput \fi +\def\charsEightZ{} + \chardef\ellipsis 128 \chardef\dag 129 % plain macro redefined \chardef\ddag 130 % plain macro redefined diff --git a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex index f78990fbdb3..6dcdc926d81 100644 --- a/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex +++ b/Master/texmf-dist/tex/csplain/fonts/lmfonts.tex @@ -15,15 +15,11 @@ \ifx\font\unicoded \def\famname{lmroman10} \input unifam \font\tentt="[lmmono10-regular]" \sizespec \else - \font\tenrm=\tmp-lmr10 \sizespec - \font\tenbf=\tmp-lmbx10 \sizespec - \font\tenit=\tmp-lmri10 \sizespec - \font\tenbi=\tmp-lmbxi10 \sizespec - \ifx\font\corkencoded - \font\tentt=\tmp-lmtt10 \sizespec - \else - \font\tentt=cstt10 \sizespec % there is no right-encoded LMfont - \fi + \font\tenrm=\tmp-lmr10 \sizespec + \font\tenbf=\tmp-lmbx10 \sizespec + \font\tenit=\tmp-lmri10 \sizespec + \font\tenbi=\tmp-lmbxi10 \sizespec + \font\tentt=\tmp-lmtt10 \sizespec \font\tenrmc=\tmp-lmcsc10 \sizespec \font\tenitc=\tmp-lmcsco10 \sizespec \fi diff --git a/Master/texmf-dist/tex/csplain/opmac/opmac.tex b/Master/texmf-dist/tex/csplain/opmac/opmac.tex index 42dc999a998..89cceb21682 100644 --- a/Master/texmf-dist/tex/csplain/opmac/opmac.tex +++ b/Master/texmf-dist/tex/csplain/opmac/opmac.tex @@ -5,7 +5,7 @@ %% The history of versions is at the end of this file, after \endpinput \ifx\OPmacversion\undefined \else \endinput \fi -\def\OPmacversion{May 2013} +\def\OPmacversion{Jul. 2013} \immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>} @@ -16,7 +16,7 @@ \def\opwarning#1{\immediate\write16{l.\the\inputlineno\space OPmac WARNING: #1.}} -\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}} +\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}} \def\protectlist{} \def\addprotect#1{\addto\protectlist{\doprotect#1}} @@ -44,7 +44,7 @@ \def\isinlist#1#2#3{\def\tmp##1#2##2\end{\def\tmp{##2}% \ifx\tmp\empty \csname iffalse\expandafter\endcsname \else \csname iftrue\expandafter\endcsname \fi}% - \expandafter\tmp#1#2\end + \expandafter\tmp#1\endlistsep#2\end } \def\isnextchar#1#2#3{\def\tmpa{#2}\def\tmpb{#3}% \let\tmp=#1\futurelet\next\isnextcharA @@ -267,7 +267,7 @@ \def\wlabel#1{% \ifx\lastlabel\undefined \else - \dest[ref:\lastlabel]{2.1em}% + \dest[ref:\lastlabel]% \edef\tmp{\wref\Xlabel{{\lastlabel}{#1}}}\tmp \isdefined{lab:\lastlabel}\iftrue \else \sxdef{lab:\lastlabel}{#1}% @@ -290,66 +290,80 @@ %%%%%%%%%%%%%% Chapters, sections, subsections -- sec. 3.8 in opmac-d.pdf +\def\printchap#1{\vfil\break + {\chapfont \noindent \mtext{chap} \dotocnum{\thetocnum}\par + \nobreak\smallskip\noindent #1\nbpar}\mark{}% + \nobreak \remskip\bigskipamount \firstnoindent +} +\def\printsec#1{\par \norempenalty-400 \bigskip + {\secfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}\insertmark{#1}% + \nobreak \remskip\medskipamount \firstnoindent +} +\def\printsecc#1{\par \norempenalty-200 \medskip + {\seccfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}% + \nobreak \remskip\medskipamount \firstnoindent +} +\def\tit#1\par{\vglue4em + {\leftskip=0pt plus1fill \rightskip=\leftskip + \titfont \noindent #1\unskip\par}% + \nobreak\bigskip +} \def\titfont{\typoscale[\magstep4/\magstep4]\bf} \def\chapfont{\typoscale[\magstep3/\magstep3]\bfshape} \def\secfont{\typoscale[\magstep2/\magstep2]\bfshape} \def\seccfont{\typoscale[\magstep1/\magstep2]\bfshape} \def\bfshape{\let\tenit=\tenbi \boldmath \bf} -\newcount\chapnum \newcount\secnum \newcount\seccnum - -\def\tit#1\par{\vglue4em - {\leftskip=0pt plus1fill \rightskip=\leftskip - \titfont \noindent #1\unskip\par}% - \nobreak\bigskip -} -\def\chap#1\par{\global\advance\chapnum by1 - \chaphook \secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0 \relax - \edef\thechapnum{\the\chapnum}% - \printchap{#1\unskip}% - \wlabel\thechapnum \wcontents\Xchap\thechapnum{#1}\nobreak -} -\def\sec#1\par{\par\global\advance\secnum by1 - \sechook \seccnum=0 \tnum=0 \fnum=0 \dnum=0 \relax - \edef\thesecnum{\othe\chapnum.\the\secnum}% - \printsec{#1\unskip}% - \insertmark\thesecnum{#1\unskip}% - \wlabel\thesecnum \wcontents\Xsec\thesecnum{#1}\nobreak -} -\def\secc#1\par{\global\advance\seccnum by1 - \secchook \relax - \edef\theseccnum{\othe\chapnum.\othe\secnum.\the\seccnum}% - \printsecc{#1\unskip}% - \wlabel\theseccnum \wcontents\Xsecc\theseccnum{#1}\nobreak -} -\def\wcontents#1#2#3{% - \expandafter\wref\expandafter#1\expandafter - {\expandafter{#2}{#3}{\the\pageno}}% +\newcount\chapnum \newcount\secnum \newcount\seccnum \newcount\nonumnum +\newif\ifnotoc \notocfalse \def\notoc{\global\notoctrue} +\newif\ifnonum \nonumfalse \def\nonum{\global\nonumtrue} + +\def\chap#1\par{\ifnonum\else \global\advance\chapnum by1 \fi + \chaphook {\globaldefs=1 \secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax + \edef\thechapnum{\the\chapnum}\let\thetocnum=\thechapnum + \def\dotocnumafter{\wcontents\Xchap{#1}}% + \printchap{#1\unskip}\resetnonumnotoc +} +\def\sec#1\par{\ifnonum\else \global\advance\secnum by1 \fi + \sechook {\globaldefs=1 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax + \edef\thesecnum{\othe\chapnum.\the\secnum}\let\thetocnum=\thesecnum + \def\dotocnumafter{\wcontents\Xsec{#1}}% + \printsec{#1\unskip}\resetnonumnotoc +} +\def\secc#1\par{\ifnonum\else \global\advance\seccnum by1 \fi + \secchook {}\relax + \edef\theseccnum{\othe\chapnum.\the\secnum.\the\seccnum}\let\thetocnum=\theseccnum + \def\dotocnumafter{\wcontents\Xsecc{#1}}% + \printsecc{#1\unskip}\resetnonumnotoc +} +\def\wcontents#1#2{% #1: sequence to REF, #2: titletext + \ifnotoc\else + \expandafter\wref\expandafter#1\expandafter + {\expandafter{\thetocnum}{#2}{\the\pageno}}% + \fi +} +\def\dotocnum#1{% + \leavevmode + {\ifnonum \global\advance\nonumnum by1 \edef\thetocnum{!\the\nonumnum}\fi + \wlabel\thetocnum \dest[toc:\thetocnum]% + \dotocnumafter}\ifnonum\else#1\fi + \global\let\dotocnumafter=\relax +} +\def\resetnonumnotoc{\global\notocfalse \global\nonumfalse + \ifx\dotocnumafter\relax \else + \opwarning{\noexpand\dotocnum unused in printchap/printsec/printsecc}\fi } +\def\insertmark#1{\toks0={#1}\mark{{\thetocnum} {\the\toks0}}} + +\newskip\remskipamount +\def\remskip{\afterassignment\remskipA \global\remskipamount} +\def\remskipA{\vskip\remskipamount \penalty11333 } +\def\norempenalty{\ifnum\lastpenalty=11333 + \vskip-\remskipamount \tmpnum=\else \removelastskip \penalty \fi} + \def\othe#1.{\ifnum#1>0 \the#1.\fi} \def\thechapnum{} \def\thesecnum{} \def\theseccnum{} -\def\insertmark#1#2{\toks0={#2}\mark{{#1} {\the\toks0}}} - -\def\printchap#1{\vfil\break - {\chapfont \noindent \dest[toc:\thechapnum]{1.3em}% - \mtext{chap} \thechapnum.\par\nobreak\smallskip\noindent #1\nbpar}% - \nobreak\bigskip - \firstnoindent -} -\def\printsec#1{\removelastskip - \ifnum \lastpenalty<1000 \goodbreak \fi \bigskip - {\secfont \noindent \dest[toc:\thesecnum]{1.3em}\thesecnum\quad #1\nbpar}% - \nobreak\medskip - \firstnoindent -} -\def\printsecc#1{\removelastskip - \ifnum \lastpenalty<1000 \goodbreak \fi \medskip - {\seccfont \noindent - \dest[toc:\theseccnum]{1.3em}\theseccnum\quad #1\nbpar}% - \nobreak\medskip - \firstnoindent -} \def\afternoindent{\global\everypar={\wipeepar\setbox0=\lastbox}} \def\wipeepar{\global\everypar={}} \let\firstnoindent=\afternoindent @@ -374,20 +388,22 @@ \rightskip=\iindent plus-1fil \parfillskip=0pt plus2fil \def\par{\endgraf\egroup}% - \captionhook{#1}\noindent \wlabel{\csname the#1num\endcsname}% + \captionhook{#1}\noindent + {\def\destheight{2.1em}\wlabel{\csname the#1num\endcsname}}% \printcaption{\mtext{#1}}{\csname the#1num\endcsname}% } \def\printcaption#1#2{{\bf#1 #2}\enspace} \def\eqmark{\global\advance\dnum by1 - \ifinner\else\eqno \fi \wlabel\thednum \thednum + \ifinner\else\eqno \fi + {\def\destheight{2.1em}\wlabel\thednum}\thednum } %%%%%%%%%%%%%% Items -- sec. 3.10 in opmac-d.pdf \newcount\itemnum \itemnum=0 -\def\begitems{\iiskip\bgroup +\def\begitems{\par\iiskip\bgroup \itemnum=0 \adef*{\startitem} \advance\leftskip by\iindent \let\printitem=\normalitem @@ -437,6 +453,7 @@ \opwarning{\noexpand\maketoc -- data unavailable, TeX me again}\openref \else \toclist \fi} +\def\toclinkA#1{\def\tmp##1!##2\end{\if&##1&\kern.8em \else##1\fi}\tmp#1!\end} %%%%%%%%%%%%%% Index -- sec. 3.12 on opmac-d.pdf @@ -893,14 +910,15 @@ %%%%%%%%%%%%%% Hyperrefs -- sec. 3.16 in opmac-d.pdf -\def\destactive[#1:#2]#3{\if$#2$\else\ifvmode +\def\destactive[#1:#2]{\if$#2$\else\ifvmode \tmpdim=\prevdepth \prevdepth=-1000pt - \destbox[#1:#2]{#3}\prevdepth=\tmpdim - \else \destbox[#1:#2]{#3}% + \destbox[#1:#2]\prevdepth=\tmpdim + \else \destbox[#1:#2]% \fi\fi } -\def\destbox[#1]#2{\vbox to0pt{\kern-#2 \pdfdest name{#1} xyz\vss}} -\def\dest[#1]#2{} +\def\destbox[#1]{\vbox to0pt{\kern-\destheight \pdfdest name{#1} xyz\vss}} +\def\destheight{1.3em} +\def\dest[#1]{} \def\link[#1:#2]#3#4{\leavevmode\pdfstartlink height.9em depth.3em \pdfborder{#1} goto name{#1:#2}\relax {#3#4}\pdfendlink @@ -910,7 +928,7 @@ \pdfborder{#1}user{/Subtype/Link/A <>}\relax {\def~{\nobreak\space}\urlcolor#3}\pdfendlink}% } -\def\toclink#1{#1} +\def\toclink#1{\toclinkA{#1}} \def\pglink#1{#1} \def\citelink#1{#1} \def\reflink[#1]#2{#2} @@ -919,7 +937,7 @@ \def\hyperlinks#1#2{% \let\dest=\destactive - \def\toclink##1{\link[toc:##1]{\localcolor#1}{##1}}% + \def\toclink##1{\link[toc:##1]{\localcolor#1}{\toclinkA{##1}}}% \def\pglink##1{\link[pg:##1]{\localcolor#1}{##1}}% \def\citelink##1{\link[cite:##1]{\localcolor#1}{##1}}% \def\reflink[##1]##2{\link[ref:##1]{\localcolor#1}{##2}}% @@ -934,7 +952,6 @@ } \ifpdftex \else - \def\dest[#1]#2{} \def\link[#1]#2#3{#3} \def\urllink[#1]#2{#2} \def\hyperlinks#1#2{} @@ -1038,7 +1055,7 @@ \newread\vifile \def\setverb{\frenchspacing\def\do##1{\catcode`##1=12}\dospecials \catcode`\*=12 } -\def\begtt{\ttskip\bgroup \wipeepar +\def\begtt{\par\ttskip\bgroup \wipeepar \setverb \adef{ }{ }% \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi \parindent=\ttindent @@ -1050,7 +1067,7 @@ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1} \obeylines \startverb} {\catcode`\|=0 \catcode`\\=12 -|gdef|startverb#1\endtt{|tt#1|egroup|ttskip|testparA}} +|gdef|startverb#1\endtt{|tt#1|egroup|par|ttskip|testparA}} \def\testparA{\afterassignment\testparB\let\tmpa= } \def\testparB{\futurelet\tmpa\testparC} \def\testparC{\ifx\tmpa\par\else\afternoindent\fi} @@ -1112,7 +1129,7 @@ \else \edef\vinolines{\the\tmpnum}% \fi - \ttskip\bgroup \wipeepar + \par\ttskip\bgroup \wipeepar \setverb \adef{ }{ }% \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi \parindent=\ttindent @@ -1128,7 +1145,7 @@ \ifnum\tmpnum<\vidolines\space \vireadline \penalty\ttpenalty \viprintline %% print line \ifnum\vidolines=0 \else\advance\tmpnum by1 \fi \repeat - \egroup\ttskip\testparB + \egroup\par\ttskip\testparB } \def\vireadline{\read\vifile to \tmp \global\advance\viline by1 } \def\viprintline{\indent @@ -1200,15 +1217,14 @@ %%%%%%%%%%%%%% \inspic -- sec. 3.20 in opmac-d.pdf -\newdimen\picw \picw=0pt +\newdimen\picwidth \picwidth=0pt \let\picw=\picwidth +\newdimen\picheight \picheight=0pt \ifpdftex - \def\inspic #1 {\relax\ifdim\picw=0pt - \opwarning{\noexpand\inspic -- the width \noexpand\picw is not set}% - \else - \hbox{\pdfximage width\picw {\picdir#1}\pdfrefximage\pdflastximage}% - \fi - } + \def\inspic #1 {\hbox{% + \pdfximage \ifdim\picwidth=0pt \else width\picwidth\fi + \ifdim\picheight=0pt \else height\picheight\fi {\picdir#1}% + \pdfrefximage\pdflastximage}} \else \def\inspic #1 {\opwarning {The \noexpand\inspic is supported for PDF output only}} @@ -1263,11 +1279,12 @@ \newcount\fnotenum \fnotenum=0 \newcount\fnotenumlocal +\newif\iflocfnum \locfnumtrue \def\fnote#1{\global\advance \fnotenum by1 - \leavevmode\openref\wref\Xfnote{}% - \isdefined{fn:\the\fnotenum}\iftrue - \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi + \iflocfnum \leavevmode\openref\wref\Xfnote{}% + \isdefined{fn:\the\fnotenum}\iftrue + \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi\fi \fnmarkx{\typoscale[800/800]\vfootnote\fnmarkx{#1}}% } \def\fnotemark#1{{\advance\fnotenum by#1\relax @@ -1275,7 +1292,7 @@ \else$^?$\opwarning{unknown \string\fnotemark. TeX me again}\fi}% } \def\fnotetext#1{\global\advance \fnotenum by1 \openref\wref\Xfnote{}% - {\typoscale[800/800]\vfootnote\fnmarkx{#1}} + {\typoscale[800/800]\vfootnote\fnmarkx{#1}}% } \def\fnmarkx{\isdefined{fn:\the\fnotenum}\iftrue\thefnote\else$^?$\fi} \def\thefnote{$^{\locfnum}$)} @@ -1284,6 +1301,8 @@ \def\Xfnote{\advance\fnotenumlocal by1 \advance\fnotenum by1 \sxdef{fn:\the\fnotenum}{\the\fnotenumlocal}} +\def\runningfnotes{\locfnumfalse\def\locfnum{\the\fnotenum}\def\fnmarkx{\thefnote}} + \newcount\mnotenum \mnotenum=0 % global counter of mnotes \newdimen\mnoteskip \mnoteskip=0pt @@ -1376,7 +1395,7 @@ \advance\bibnum by1 \wbib{#1}{\the\bibnum}% \hangindent=\iindent - \noindent \dest[cite:\the\bibnum]{1.2em}% + \noindent \def\tmpb{#1}\dest[cite:\the\bibnum]% \indent \llap{[\the\bibnum] }\ignorespaces } \def\wbib#1#2{\edef\tmp{\wref\Xbib{{#1}{#2}}}% @@ -1423,9 +1442,9 @@ \def\bibitem{\isnextchar[{\bibitemB}{\def\tmpa{}\bibitemC}} \def\bibitemB[#1]{\def\tmpa{#1}\bibitemC} \def\bibitemC#1{\bibitemD{#1}} -\def\bibitemD#1{\ifnum\bibnum>0 \bibskip \fi +\def\bibitemD#1{\par\ifnum\bibnum>0 \bibskip \fi \advance\bibnum by1 - \noindent \dest[cite:\if$\tmpa$\the\bibnum\else\tmpa\fi]{1.2em}% + \noindent \def\tmpb{#1}\dest[cite:\if$\tmpa$\the\bibnum\else\tmpa\fi]% \hangindent=\parindent \if$\tmpa$\indent\llap{[\the\bibnum] }\wbib{#1}{\the\bibnum}% \else [\tmpa]\wbib{#1}{\tmpa}\enskip @@ -1436,7 +1455,7 @@ \immediate\write\auxfile{\string\citation{*}}% \bgroup \iindent=4em - \def\bibitemC##1{\ifnum\bibnum>0 \bibskip \fi + \def\bibitemC##1{\par\ifnum\bibnum>0 \bibskip \fi \advance\bibnum by1 \noindent \hangindent=\parindent \indent \llap{[##1]\enspace}\ignorespaces @@ -1489,7 +1508,7 @@ } \def\doprotect#1{\let#1=\relax} \addto\begoutput{\def\nl{ }} -\def\prepage{\dest[pg:\the\pageno]{25pt}} +\def\prepage{\def\destheight{25pt}\dest[pg:\the\pageno]} {\catcode`\@=11 \gdef\pagecontents{\prepage % dest of pageno @@ -1596,6 +1615,16 @@ Apr. 2013 \table in \table allowed, \catcode`\|=12 set in \table. {\em text}\macro error corrected. May 2013 \margins (2pages laylout) can be redefined by new \margins \outlines use \pdfcatalog{/PageMode/UseOutlines} +Jul. 2013 \fnotetext unwanted space - corrected + \picw=0pt prints picture in natural size, \picheight introduced + \isinlist corrected, + \othe\secnum in \secc removed + \dotocnum, \remskip, \reminsert introduced + \nonum, \notoc implemented + \destheight introduced + \runningfnotes introduced + \addto defined as \long + \iiskip, \ttskip, \bibskip precedes by \par %%%%%%%%%%%%%% End of opmac.tex -- cgit v1.2.3