summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2006-04-23 23:55:00 +0200
committerHans Hagen <pragma@wxs.nl>2006-04-23 23:55:00 +0200
commite0ee7b45d9ca5201a01036ad44ee3c262da938ab (patch)
treee64dff28aa1c05fde6dea3e66aa9ee271c63e0c3
parent344364dee440fb66701665e8389445755c7d00f2 (diff)
downloadcontext-e0ee7b45d9ca5201a01036ad44ee3c262da938ab.tar.gz
stable 2006.04.23 23:55
-rw-r--r--metapost/context/base/mp-core.mp27
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-lnt.tex2
-rw-r--r--tex/context/base/core-new.tex15
-rw-r--r--tex/context/base/core-not.tex48
-rw-r--r--tex/context/base/core-ntb.tex45
-rw-r--r--tex/context/base/core-pgr.tex1
-rw-r--r--tex/context/base/spec-dvi.tex2
-rw-r--r--tex/context/base/spec-ini.tex15
-rw-r--r--tex/context/base/supp-mps.tex3
-rw-r--r--tex/context/base/syst-ext.tex2
-rw-r--r--tex/context/base/unic-251.tex34
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-fr.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
20 files changed, 144 insertions, 68 deletions
diff --git a/metapost/context/base/mp-core.mp b/metapost/context/base/mp-core.mp
index 7845649fc..6c3ed0523 100644
--- a/metapost/context/base/mp-core.mp
+++ b/metapost/context/base/mp-core.mp
@@ -350,13 +350,14 @@ enddef ;
numeric nofmultipars ; nofmultipars := 0 ;
-boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
-boolean obey_multi_par_more ; obey_multi_par_more := true ;
-boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
-boolean local_multi_par_area ; local_multi_par_area := false ;
-boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
-
-boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
+boolean obey_multi_par_more ; obey_multi_par_more := true ;
+boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
+boolean local_multi_par_area ; local_multi_par_area := false ;
+boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
+boolean force_multi_par_chain ; force_multi_par_chain := true ;
+boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean check_multi_par_chain ; check_multi_par_chain := true ; % extra page check
def simplify_multi_pars = % boundingbox ipv shape als optie
for i := 1 upto nofmultipars :
@@ -753,7 +754,6 @@ fi ;
if (nxy[fpos]=RealPageNumber) and (InsideTextArea(i,par_start_pos)) :
-
% first one in chain
ii := i ;
@@ -940,11 +940,16 @@ snapped_multi_pos(ulxy[tpos]) --
% second loop
+if force_multi_par_chain or (ii > 1) :
+
for i=ii+1 upto nn-1 :
% rest of chain / todo : hang
-%if (nxy[fpos]<=RealPageNumber) and (nxy[tpos]>=RealPageNumber) :
+% we need to test, else we get a <lineheight bottom one
+% triggering a whole text frame; weird
+
+if (not check_multi_par_chain) or ((nxy[fpos]<RealPageNumber) and (nxy[tpos]>RealPageNumber)) :
multipar := set_multipar(i) ;
@@ -961,10 +966,12 @@ snapped_multi_pos(ulxy[tpos]) --
save_multipar(i,2,multipar) ;
-%fi ;
+fi ;
endfor ;
+fi ;
+
% end of normal/fallback
fi ;
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 5138aed32..4f332abe9 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2006.04.22 10:41}
+\newcontextversion{2006.04.23 23:55}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 2c99a187e..b2c5f6c25 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2006.04.22 10:41}
+\def\contextversion{2006.04.23 23:55}
%D For those who want to use this:
diff --git a/tex/context/base/core-lnt.tex b/tex/context/base/core-lnt.tex
index 9c215c992..b19019bb8 100644
--- a/tex/context/base/core-lnt.tex
+++ b/tex/context/base/core-lnt.tex
@@ -106,6 +106,8 @@
% \stoplinenumbering
% \stopbuffer
%
+% \setupnotedefinition[linenote] [location=serried,distance=.5em]
+%
% {\typebuffer[test] \getbuffer[test]} \page
%
% \startbuffer[setup]
diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex
index 4a255fca3..908c824b8 100644
--- a/tex/context/base/core-new.tex
+++ b/tex/context/base/core-new.tex
@@ -325,21 +325,6 @@
\def\env {\getvariable \s!environment}
\def\envvar {\getvariabledefault\s!environment}
-%D \macros
-%D {jobsuffix}
-%D
-%D By default, \TEX\ produces \DVI\ files which can be
-%D converted to other filetypes. Sometimes it is handy to
-%D know what the target file will be. In other driver
-%D modules we wil set \type {\jobsuffix} to \type {pdf}.
-
-\def\jobsuffix{dvi}
-
-\def\setjobsuffix#1%
- {\resetsystemmode\jobsuffix
- \edef\jobsuffix{#1}%
- \setsystemmode\jobsuffix}
-
\bgroup
\gdef\cleanedupcolon{:} \catcode`:=\@@active
diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex
index 40159c803..410df6e47 100644
--- a/tex/context/base/core-not.tex
+++ b/tex/context/base/core-not.tex
@@ -160,6 +160,9 @@
% maybe we should inherit (todo)
+\def\@@defaultnotedefloc{\v!inleft}
+\def\@@defaultnotedefdis{\!!zeropoint}
+
\def\dodefinenote[#1][#2]%
{\def\currentnote{#1}%
\ifundefined{\??vn:\currentnote}%
@@ -172,7 +175,8 @@
\fi
\definedescription
[\??vn\??vn\currentnote]
- [\c!location=\v!inleft,
+ [\c!location=\@@defaultnotedefloc,
+ \c!distance=\@@defaultnotedefdis,
\c!width=\v!fit,
\c!headstyle=\noteparameter\c!style,
\c!headcolor=\noteparameter\c!color,
@@ -269,6 +273,10 @@
{\edef\noteinsertions{#1}}%
\fi\fi}
+% redefined:
+
+% so that it matches:
+
\def\dochecknote % only to be called locally, some bools will become class-ones
{% for the moment no mixed text/endnotes modes, so we use
% \footnoteparameter and not \noteparameter (**)
@@ -416,25 +424,43 @@
%
% this was wrong (for ages)
+% \def\settextnotes
+% {\def\startpushnote {\startvboxtohbox
+% \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}%
+% \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em
+% \dostopattributes
+% \stopvboxtohbox}%
+% %\def\startpopnotes {\vbox\bgroup
+% % \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize}
+% %\def\stoppopnotes {\convertvboxtohbox
+% % \egroup}%
+% \def\startpopnotes {\vbox\bgroup
+% \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
+% \beginofshapebox}%
+% \def\stoppopnotes {\endofshapebox
+% \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
+% \innerflushshapebox
+% \convertvboxtohbox
+% \egroup}%
+% }
+
\def\settextnotes
{\def\startpushnote {\startvboxtohbox
- \dostartattributes{\??vn\currentnote}\c!style\c!color\empty}%
- \def\stoppushnote {\hskip\noteparameter\c!columndistance % plus.5em minus.5em
- \dostopattributes
+ \startnotedef}%
+ \def\stoppushnote {\stopnotedef
+ \hskip\noteparameter\c!columndistance % plus.5em minus.5em
\stopvboxtohbox}%
-% \def\startpopnotes {\vbox\bgroup
-% \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize}
-% \def\stoppopnotes {\convertvboxtohbox
-% \egroup}%
\def\startpopnotes {\vbox\bgroup
+ % here, else problems in preroll
+ \edef\@@defaultnotedefloc{\ifnum\noteparameter\c!n=\zerocount\v!serried\else\v!inleft \fi}%
+ \edef\@@defaultnotedefdis{\ifnum\noteparameter\c!n=\zerocount .5em\else\!!zeropoint\fi}%
\doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
\beginofshapebox}%
\def\stoppopnotes {\endofshapebox
\doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
\innerflushshapebox
\convertvboxtohbox
- \egroup}%
- }
+ \egroup}}
%D The formatting depends on the width of the table, so we
%D have to set \type {n} to zero.
@@ -791,7 +817,7 @@
\setnotebodyfont
% % this should be checked, smells like a mix-up
% % does not split: \ifcase\noteparameter\c!n\unvbox\else\box\fi\currentnoteins
- \ifnum\noteparameter\c!n=\zerocount % no ifcase
+ \ifcase\noteparameter\c!n\relax
\unvbox\currentnoteins
\or
\box\currentnoteins
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index 914b55e65..2e424c2b7 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -1354,10 +1354,11 @@
% new, needed for icare first col of 'doeltabel', experimental
-\long\def\dohandleTBLcellA#1#2[#3]#4%
- {\setbox\scratchbox\hbox
- {\setupTBLcell{#1}{#2}%
- \scratchdimen\tbltbldistance\relax
+\long\def\dohandleTBLcellA#1#2[#3]#4% grouping added ! ! !
+ {\bgroup
+ \setupTBLcell{#1}{#2}%
+ \setbox\scratchbox\hbox
+ {\scratchdimen\tbltbldistance\relax
\ifdim\scratchdimen>\gettbldis{#2}\relax
\settbldis{#2}{\the\scratchdimen}%
\fi
@@ -1368,21 +1369,21 @@
\scratchdimen\gettblwid\colTBL\relax
\ifdim\wd\scratchbox>\scratchdimen
\ifsqueezeTBLspan
-% \doifinset\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}{%
-% \ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
-% }%
-\ifautosqueezeTBLspan
-\doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}
- \donetrue \donefalse
-\else
- \donetrue
-\fi
-\ifdone
- \ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
-\fi
+ \ifautosqueezeTBLspan
+ \doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}
+ \donetrue \donefalse
+ \else
+ \donetrue
+ \fi
+ \ifdone
+ \ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
+ \fi
\fi
\doifelsetblspn\colTBL
- \donothing{\ifdim\gettblwid\colTBL<\wd\scratchbox\settblwid\colTBL{\the\wd\scratchbox}\fi}% auto set
+ \donothing
+ {\ifdim\gettblwid\colTBL<\wd\scratchbox
+ \settblwid\colTBL{\the\wd\scratchbox}%
+ \fi}% auto set
\fi
\let\rowTBLx\rowTBL\increment\rowTBLx
\scratchdimen\gettblhei\rowTBLx\relax
@@ -1393,8 +1394,8 @@
\settblwd{#1}{#2}{\the\wd\scratchbox}%
\ifautoTBLcheckwidth
\ifdim\wd\scratchbox<.75\hsize
- \ifdim\ht\scratchbox>2\openlineheight % honor width since this can be a
- \scratchdimen\gettblaut\colTBL\relax % figure or so
+ \ifdim\ht\scratchbox>2\openlineheight % honor width since this
+ \scratchdimen\gettblaut\colTBL\relax % can be a figure or so
\ifdim\scratchdimen=\zeropoint
% side effect: when width is set to 0pt,
% we can force a span that fits the sum of spans widths
@@ -1403,14 +1404,16 @@
% unless span
\settblaut\colTBL{\the\wd\scratchbox}%
% to be translated
- \writestatus\m!TABLE{no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
+ \writestatus\m!TABLE
+ {no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
\fi\fi
\fi
\fi
\fi
\setbox2\null
\wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
- \box2}
+ \box2
+ \egroup}
\long\def\dohandleTBLcellBC#1#2#3[#4]#5%
{\setbox\scratchbox\hbox
diff --git a/tex/context/base/core-pgr.tex b/tex/context/base/core-pgr.tex
index 832135434..e6a56093b 100644
--- a/tex/context/base/core-pgr.tex
+++ b/tex/context/base/core-pgr.tex
@@ -844,6 +844,7 @@
%
\dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
\nowhitespace
+\nobreak % new per 23/04/2006 (else potential break when whitespace)
\seteffectivehsize
\doinhibitblank % \blank[\v!disable]% new
\par}
diff --git a/tex/context/base/spec-dvi.tex b/tex/context/base/spec-dvi.tex
index b84d3c3b7..e13698cf3 100644
--- a/tex/context/base/spec-dvi.tex
+++ b/tex/context/base/spec-dvi.tex
@@ -21,6 +21,8 @@
%D Reuse of object is not supported by the \DVI\ format. We
%D therefore just duplicate them using boxes.
+\setjobsuffix{dvi} % can be overloaded in other spec's
+
\startspecials[tex]
\newbox\DVIobjects \newcounter\DVIobjectcounter
diff --git a/tex/context/base/spec-ini.tex b/tex/context/base/spec-ini.tex
index 4a7299266..e455a6f21 100644
--- a/tex/context/base/spec-ini.tex
+++ b/tex/context/base/spec-ini.tex
@@ -182,6 +182,21 @@
%D output.
%D \macros
+%D {jobsuffix}
+%D
+%D By default, \TEX\ produces \DVI\ files which can be
+%D converted to other filetypes. Sometimes it is handy to
+%D know what the target file will be. In other driver
+%D modules we wil set \type {\jobsuffix} to \type {pdf}.
+
+\def\jobsuffix{dvi}
+
+\def\setjobsuffix#1%
+ {\resetsystemmode\jobsuffix
+ \edef\jobsuffix{#1}%
+ \setsystemmode\jobsuffix}
+
+%D \macros
%D {everyresetspecials}
%D
%D Now what will this one do? We'll see in a few lines.
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index d36a90c87..4b89a37d5 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -354,7 +354,8 @@
\bgroup
\let\par\space
\iflongMPlines
- \immediate\write\MPwrite{#1;}%
+ %\immediate\write\MPwrite{#1;}% oeps, ; invalid
+ \immediate\write\MPwrite{#1}%
\else
\long\edef\ascii{#1}%
\expandafter\flushMPgraphicline\ascii\empty;\relax;%
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index 44c46f02d..b903a2778 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -3777,7 +3777,7 @@
%D \processlist(){=>}\docommando(a=>b=>c=>d)
%D \stoptyping
-\def\processlist#1#2#3#4%
+\long\def\processlist#1#2#3#4%
{\def\doprocesslist##1#2%
{\def\dodoprocesslist####1####2#3%
{\ifx#2####1%
diff --git a/tex/context/base/unic-251.tex b/tex/context/base/unic-251.tex
new file mode 100644
index 000000000..150ade456
--- /dev/null
+++ b/tex/context/base/unic-251.tex
@@ -0,0 +1,34 @@
+%D \module
+%D [ file=unic-251,
+%D version=2006.04.20,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 251,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+
+\unprotect
+
+\def\ffligature {ff}
+\def\filigature {fi}
+\def\flligature {fl}
+\def\ffiligature {ffi}
+\def\fflligature {ffl}
+\def\ftligature {ft}
+\def\stligature {st}
+
+\startunicodevector 251
+ \expandafter\strippedcsname
+ \ifcase\numexpr#1\relax
+ \ffligature \or % LATIN SMALL LIGATURE FF
+ \filigature \or % LATIN SMALL LIGATURE FI
+ \flligature \or % LATIN SMALL LIGATURE FL
+ \ffiligature \or % LATIN SMALL LIGATURE FFI
+ \fflligature \or % LATIN SMALL LIGATURE FFL
+ \ftligature \or % LATIN SMALL LIGATURE FT
+ \stligature \else % LATIN SMALL LIGATURE ST
+ \unknownchar
+ \fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index e7cba225f..9f2ff1790 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index c8a1c07f2..58688600d 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 6d2cd76dd..d40557aa5 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 1a609efe4..9f0740bce 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="un"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 8b2dbe167..408fb3211 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 5ecab0ff8..0a62e9780 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index b2e71bcd2..5137fd255 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.04.22 10:41">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.04.23 23:55">
<cd:variables>
<cd:variable name="one" value="unu"/>