Changes

Jump to navigation Jump to search
1,570 bytes added ,  23:02, 18 July 2019
Paragraph in a group issue
will cause ConTeXt to break the page.
Ordinarily this works as expected, unless, however, the heading
immediately follows a previous section heading with no text in between.
The rationale behind this is that consecutive headings are conceived of
collectively as one single structural element.
as in the Plain format) and the more familiar {{cmd|dontleavehmode}}
({{src|syst-aux.mkiv}}).
Just use the chosen macro immediately before the <code>\framed</code> macro and
everything should be fine:
\stoptext
</context>
 
=== The “paragraph in a group” problem ===
 
Another common issue with sidefloats is starting a paragraph in a group.
 
<context source="yes" mode="mkiv">
\placefigure[right,none]{}{\externalfigure[cow][width=0.25\textwidth]}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 
{\bf Oeps} \samplefile{lorem}
</context>
As you can see the paragraph starting with “Oeps” just overflows into the picture.
That is a well-known problem and there are posts about it on the mailing
list every once in a while. The sidefigure mechanism uses <code>\parshape</code> to
make the paragraph flow around the figure. The <code>\parshape</code> primitive only
applies to a single paragraph, so ConTeXt communicates the current
<code>\parshape</code> settings to the next paragraph using <code>\everypar</code>. However, when
a new paragraph starts in a group, i.e.
<texcode>
{\bf Oeps} ...
</texcode>
TeX inserts the <code>\everypar</code> tokens inside that group because only the
first letter starts the paragraph. That is to say is effectively looks
like this
<texcode>
% \everypar inserted inside the group
% ~~~v
{\bf \the\everypar Opes} ...
% ~~~~~~~~~~~~~~~~~~~~~^
% Setting of \everypar are discarded again when leaving the group and \parshape is lost.
</texcode>
You have to explicitly start a new paragraph before opening a group.
The easiest way to do this is
<texcode>
\dontleavehmode{\bf Oeps} ...
</texcode>
Now the <code>\everypar</code> tokens are inserted directly after {{cmd|dontleavehmode}}
outside the group and the problem goes away.
= Syntax =
== Multipass ==
In some circumstances, portions of code are evaluated two or more
important.
=== Trialtypesetting ===
Often the size of elements must be calculated prior to determining the
=== Tables ===
In addition to trial typesetting Context also knows a ''table'' state:
</context>
=== Metapost ===
As with TeX, Metapost sometimes requires multiple passes,
28

edits

Navigation menu