summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2023-01-24 15:11:58 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2023-01-24 15:11:58 +0100
commitb47e8c2cdeeab0bcdb1c4c32328c933f3f8599de (patch)
tree8e32282155744f2b0a812eff2fe88bbc919a70b4 /doc
parent0caec226a633182402b349c3ac5b3bf9e0bc76c2 (diff)
downloadcontext-b47e8c2cdeeab0bcdb1c4c32328c933f3f8599de.tar.gz
2023-01-24 13:50:00
Diffstat (limited to 'doc')
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex.tex3
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-fonts.tex7
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-modifications.tex2
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-nodes.tex6
-rw-r--r--doc/context/sources/general/manuals/musings/musings-toocomplex.tex389
-rw-r--r--doc/context/sources/general/manuals/musings/musings-whytex.tex67
-rw-r--r--doc/context/sources/general/manuals/musings/musings.tex6
7 files changed, 440 insertions, 40 deletions
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex.tex b/doc/context/sources/general/manuals/luametatex/luametatex.tex
index 5b9844fdb..bb20761bc 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex.tex
@@ -2,6 +2,9 @@
% \enabledirectives[backend.pdf.inmemory]
+% \setupalign[profile]
+% \enabletrackers[profiling.lines.show]
+
% ------------------------ ------ ------------------ ------------------------
% 2019-12-17 32bit 64bit 2020-01-10 32bit 64bit 2020-11-30 32bit 64bit
% ------------------------ ------------------------ ------------------------
diff --git a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
index 498792c8c..b0921c70c 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
@@ -728,13 +728,12 @@ font.setfont(<number> n, <table> f)
Note that at the moment, each access to the \type {font.fonts} or call to \type
{font.getfont} creates a \LUA\ table for the whole font unless you cached it.
-If you want a copy of the internal data you can use \type {font.copyfont}:
\startfunctioncall
-<table> f = font.copyfont(<number> n)
+<table> f = font.getfont(<number> n)
\stopfunctioncall
-This one will return a table of the parameters as known to \TEX. These can be
+So, this one will return a table of the parameters as known to \TEX. These can be
different from the ones in the cached table:
\startfunctioncall
@@ -788,7 +787,7 @@ Within reasonable bounds you can extend a font after it has been defined. Becaus
some properties are best left unchanged this is limited to adding characters.
\startfunctioncall
-font.addcharacters(<number n>, <table> f)
+font.addcharacters(<number> n, <table> f)
\stopfunctioncall
The table passed can have the fields \type {characters} which is a (sub)table
diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
index 72b32908d..a8247c1de 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
@@ -667,6 +667,7 @@ The configuration related registers have become:
\edef\pdfomitcidset {\pdfvariable omitcidset}
\edef\pdfomitcharset {\pdfvariable omitcharset}
\edef\pdfomitinfodict {\pdfvariable omitinfodict}
+\edef\pdfomitmediabox {\pdfvariable omitmediabox}
\edef\pdfpagebox {\pdfvariable pagebox}
\edef\pdfminorversion {\pdfvariable minorversion}
\edef\pdfuniqueresname {\pdfvariable uniqueresname}
@@ -917,6 +918,7 @@ The engine sets the following defaults.
\pdfomitcidset 0
\pdfomitcharset 0
\pdfomitinfodict 0
+\pdfomitmediabox 0
\pdfpagebox 0
\pdfminorversion 4
\pdfuniqueresname 0
diff --git a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
index e8a1701a3..5f8c2582c 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
@@ -1250,9 +1250,9 @@ This converts a single type name to its internal numeric representation.
\libindex {type}
\libindex {subtype}
-In the argument is a number, then the next function converts an internal numeric
-representation to an external string representation. Otherwise, it will return
-the string \type {node} if the object represents a node, and \type {nil}
+In the argument is a number, then the \type {type} function converts an internal
+numeric representation to an external string representation. Otherwise, it will
+return the string \type {node} if the object represents a node, and \type {nil}
otherwise.
\startfunctioncall
diff --git a/doc/context/sources/general/manuals/musings/musings-toocomplex.tex b/doc/context/sources/general/manuals/musings/musings-toocomplex.tex
new file mode 100644
index 000000000..103dd1906
--- /dev/null
+++ b/doc/context/sources/general/manuals/musings/musings-toocomplex.tex
@@ -0,0 +1,389 @@
+% language=us runpath=texruns:manuals/musings
+
+\useMPlibrary[dum]
+
+% Extending Darwin's Revolution – David Sloan Wilson & Robert Sapolsky
+
+\startcomponent musings-toocomplex
+
+\environment musings-style
+
+\startchapter[title={False promises}]
+
+\startsection[title={Introduction}]
+
+\startlines \setupalign[flushright]
+Hans Hagen
+Hasselt NL
+July 2019 (public 2023)
+\stoplines
+
+The \TEX\ typesetting system is pretty powerful, and even more so when you
+combine it with \METAPOST\ and \LUA. Add an \XML\ parser, a whole lot of handy
+macros, provide support for fonts and advanced \PDF\ output and you have a hard
+to beat tool. We're talking \CONTEXT.
+
+Such a system is very well suited for fully automated typesetting. There are
+\TEX\ lovers who claim that \TEX\ can do anything better than the competition but
+that's not true. Automated typesetting is quite doable when you accept the
+constraints. When the input is unpredictable you need to play safe!
+
+Some things are easy: turning complex \XML\ into \PDF\ with adaptive graphics,
+fast data processing, colorful layouts, conditional processing, extensive cross
+referencing, you can safely say that it can be done. But in practice there is
+some design involved and those are often specified by people who manipulate a
+layout on the fly and tweak and cheat in an interactive \WYSIWYG\ program. That is
+however not an option in automated typesetting. Traditional thinking with manual
+intervention has to make place for systematic and consistent solutions.
+Limitations can be compensated by clever designs and getting the maximum out of
+the system used.
+
+Unfortunately in practice some habits are hard to get rid of. Inconsistent use of
+colors, fonts, sectioning, image placements are just a few aspects that come to
+mind. When you typeset educational documents you also have to deal with strong
+opinions about how something should be presented and what students can't~(!)
+handle, like for instance cross references. One of the most dominant demands in
+typesetting such documents are so called side floats. In (for instance)
+scientific publishing references to content typeset elsewhere (formulas,
+graphics) is acceptable but in educational documents this is often not an option
+(don't ask me why).
+
+In the next sections I will mention a few aspects of side floats. I will not
+discuss the options because these are covered in manuals. Here we stick to the
+challenges and the main question that you have to ask yourself is: \quotation
+{How would I solve that if it can be solved at all?}. It might make you a bit
+more tolerant for suboptimal outcome.
+
+\stopsection
+
+\startsection[title={The basics}]
+
+We start with a simple example. The result is shown in \in {figure} [demo-1a]. We
+have figures, put at the left, with enough text alongside so that we don't have a
+problem running into the next figure.
+
+\startbuffer[demo-1a]
+\dorecurse {8} {
+ \useMPlibrary[dum]
+ \setuplayout[middle]
+ \setupbodyfont[plex]
+ \startplacefigure[location=left]
+ \externalfigure[dummy][width=3cm]
+ \stopplacefigure
+ \samplefile{sapolsky}
+ \par
+}
+\stopbuffer
+
+\typebuffer[demo-1a]
+
+\startplacefigure[reference=demo-1a,title={A simple example with enough text in a single paragraph.}]
+ \startcombination
+ {\typesetbuffer[demo-1a][width=5cm,frame=on,page=1]} {}
+ {\typesetbuffer[demo-1a][width=5cm,frame=on,page=2]} {}
+ \stopcombination
+\stopplacefigure
+
+Challenge: Anchor some boxed material to the running text and make sure that the
+text runs around that material. When there is not enough room available on the
+page, enforce a page break and move the lot to the next page.
+
+But more often than not, the following paragraph is not long enough to go around
+the insert. The worst case is of course when we end up with one word below the
+insert, for which the solution is to adapt the text or make the insert wider or
+narrower. Forgetting about this for now, we move to the case where there is not
+enough text: \in {figure} [demo-1b].
+
+\startbuffer[demo-1b]
+\dorecurse {8} {
+ \useMPlibrary[dum]
+ \setuplayout[middle]
+ \setupbodyfont[plex]
+ \startplacefigure[location=left]
+ \externalfigure[dummy][width=3cm]
+ \stopplacefigure
+ \samplefile{ward} \par \samplefile{ward}
+ \par
+}
+\stopbuffer
+
+\typebuffer[demo-1b]
+
+\startplacefigure[reference=demo-1b,title={A simple example with enough text but multiple paragraphs.}]
+ \startcombination
+ {\typesetbuffer[demo-1b][width=5cm,frame=on,page=1]} {}
+ {\typesetbuffer[demo-1b][width=5cm,frame=on,page=2]} {}
+ \stopcombination
+\stopplacefigure
+
+Challenge: At every new paragraph, check if we're still not done with the blob
+we're typesetting around and carry on till we are behind the insert.
+
+\startbuffer[demo-1c]
+\dorecurse {8} {
+ \useMPlibrary[dum]
+ \setuplayout[middle]
+ \setupbodyfont[plex]
+ \startplacefigure[location=left]
+ \externalfigure[dummy][width=3cm]
+ \stopplacefigure
+ \samplefile{ward}
+ \par
+}
+\stopbuffer
+
+The next example, shown in \in {figure} [demo-1c], has less text. However, the
+running text is still alongside the figure, so this means that white space need
+to be added till we're beyond.
+
+\typebuffer[demo-1c]
+
+\startplacefigure[reference=demo-1c,title={A simple example with less text}]
+ \startcombination
+ {\typesetbuffer[demo-1c][width=5cm,frame=on,page=1]} {}
+ {\typesetbuffer[demo-1c][width=5cm,frame=on,page=2]} {}
+ \stopcombination
+\stopplacefigure
+
+Challenge: When there is not enough content, and the next insert is coming, we
+add enough whitespace to go around the insert and then start the new one. This is
+typically something that can also be enforced by an option.
+
+Before we move on to the next challenge, let's explain how we run around the
+insert. When \TEX\ typesets a paragraph, it uses dimensions like \typ {\leftskip}
+and \typ {\rightskip} (margins) and shape directives like \typ {\hangindent} and
+\typ {\hangafter}. There is also the possibility to define a \typ {\parshape} but
+we will leave that for now. The with of the image is reflected in the indent and
+the height gets divided by the line height and becomes the \typ {\hangafter}.
+Whenever a new paragraph is started, these parameters have to be set again.
+\footnote {I still consider playing with a third parameter representing hang
+height and add that to the line break routine, but I have to admit that tweaking
+that is tricky. Do I really understand what is going on there?} In \CONTEXT\
+hanging is also available as basic feature.
+
+\startbuffer
+\starthanging[location=left]
+ {\blackrule[color=maincolor,width=3cm,height=1cm]}
+ \samplefile{carrol}
+\stophanging
+\stopbuffer
+
+\typebuffer {\setupalign[tolerant,stretch]\getbuffer}
+
+\startbuffer
+\starthanging[location=right]
+ {\blackrule[color=maincolor,width=10cm,height=1cm]}
+ \samplefile{jojomayer}
+\stophanging
+\stopbuffer
+
+\typebuffer {\setupalign[tolerant,stretch]\getbuffer}
+
+The hanging floats are not implemented this way but are hooked into the
+paragraph start routines. The original approach was a variant of
+the macros by Daniel Comenetz as published in TUGBoat Volume 14 (1993),
+No.~1: Anchored Figures at Either Margin. In the meantime they are far
+from that, so \CONTEXT\ users can safely blame me for any issues.
+
+\stopsection
+
+\startsection[title={Unpredictable dimensions}]
+
+In an ideal world images will be sort of consistent but in practice the dimension
+will differ, even fonts used in graphics can be different, and they can have
+white space around them. When testing a layout it helps to use mockups with a
+clear border. If these look okay, one can argue that worse looking assemblies
+(more visual whitespace above of below) is a matter of making better images. In
+\in {figure} [demo-2a] we demonstrate how different dimensions influence the space
+below the placement.
+
+\startbuffer[demo-2a]
+\dostepwiserecurse {2} {8} {1} {
+ \useMPlibrary[dum]
+ \setuplayout[middle]
+ \setupbodyfont[plex]
+ \setupalign[tolerant,stretch]
+ \startplacefigure[location=left]
+ \externalfigure[dummy][width=#1cm]
+ \stopplacefigure
+ \samplefile{sapolsky}
+ \par
+}
+\stopbuffer
+
+\typebuffer[demo-2a]
+
+\startplacefigure[reference=demo-2a,title={Spacing relates to dimensions.}]
+ \startcombination[3*1]
+ {\typesetbuffer[demo-2a][width=5cm,frame=on,page=1]} {}
+ {\typesetbuffer[demo-2a][width=5cm,frame=on,page=2]} {}
+ {\typesetbuffer[demo-2a][width=5cm,frame=on,page=3]} {}
+ \stopcombination
+\stopplacefigure
+
+In \CONTEXT\ there are plenty of options to add more space above or below the
+image. You can anchor the image to the first line in different ways and you can
+move it some lines down, either or not with text flowing around it. But here we
+stick to simple cases, we only discuss the challenges.
+
+Challenge: Adapt the wrapping to the right dimensions and make sure that the
+(optional) caption doesn't overlap with the text below.
+
+\stopsection
+
+\startsection[title={Moving forward}]
+
+When the insert doesn't fit it has to move, which is why it's called a float. One
+solution is do take it out of the page stream and turn it into a regular
+placement, normally centered horizontally somewhere on the page, and in this case
+probably at the top of one of the next pages. Because we can cross reference this
+is a quite okay solution. But, in educational documents, where authors refer to
+the graphic (picture) on the left or right, that doesn't work out well. The
+following content is bound to the image.
+
+Calculating the amount of available space is a bit tricky due to the way \TEX\
+works. But let's assume that this can be done, in \CONTEXT\ we have seen several
+strategies for this, we then end up at the top of the next page and there
+different spacing rules apply, like: no spacing at the top at all. In our
+examples no whitespace between paragraphs is present. The final solutions are
+complicated by the fact that we need to take this into account.
+
+Challenge: Make sure that we never run off the page but also that we
+don't end up with weird situations at the top of the next page.
+
+Another possibility is that images so tightly fit a whole number of lines, that a
+next one can come too close to a previous one. Again, this demands some analysis.
+Here we use examples with captions but when there are no captions, there is also
+less visual space (no depth in lines).
+
+Challenge: Make sure that a following insert never runs too close to a previous
+insert.
+
+Solutions can be made better when we use multi|-|pass information. Because in a
+typical \TEX\ run there is only looking back, storing information can actually
+make us look forward. But, as in science fiction: when you act upon the future,
+the past becomes different and therefore also the future (after that particular
+future). This means that you can only go forward. Say you have 10 cases: when
+case 5 changes because of some feedback, then case 6 upto 10 also can change. So,
+you might need more than 10 runs to get things right. In a workflow where users
+are waiting for a result, and a few hundred side floats are used this doesn't
+sell well: processing 400 pages with a 20 page per second rate takes 20 seconds
+per run. Normally one needs a few runs to get the references right. Assuming a
+worst case of 60 seconds, 10 extra runs will bring you close to 15 minutes. No
+deal.
+
+Of course one can argue for some load|-|in|-|memory and optimize in one go, but
+although \TEX\ can do that well for paragraphs, it won't work for complex
+documents. Sure, it's a nice academic exercise to explore limited cases but
+those are not what we encounter.
+
+\stopsection
+
+\startsection[title={Cooperation}]
+
+When discussing (on YouTube) \quotation {Extending Darwin's Revolution} David
+Sloan Wilson and Robert Sapolsky touch on the fact that in some disciplines (like
+economics) evolutionary principles are applied. One can apply for instance the
+concept of a \quote {selfish gene}. However, they argue that when doing that, one
+actually lags behind the now accepted group selection (which goes beyond the
+individual benefits). An example is given where aggressive behavior on the short
+term can turn one in a winner (who takes it all) but which can lead to self
+destructive in the long run: cooperating seems to works better than terminal
+competition.
+
+In \TEX\ we have glues and penalties. The machinery likes to break at a glue but
+a severe penalty can prohibit that. The fact that we have penalties and no
+rewards is interesting: a break can be stimulated by a negative penalty. I've
+forgotten most of what I learned about cognitive psychology but I do remember
+that penalty vs reward discussions could get somewhat out of hand.
+
+So, when we have in the node list a mix of glue (you can break here), penalties
+(better not break here) and rewards (consider breaking here) you can imagine that
+these nodes compete. The optimal solution is not really a group process but
+basically a rather selfish game. Building a system around that kind of
+cooperation is not easy. In \CONTEXT\ a lot of attention always went into
+consistent vertical spacing. In \MKII\ there were some \quote {look back} and
+\quote {control forward} mechanisms in place, and in \MKIV\ we use a model of
+weighted glue: a combination of penalties and skips. Again we look back and again
+we also try to control the future. This works reasonable well but what if we end
+up in a real competition?
+
+A section head should not end up at the bottom of a page. Because when it gets
+typeset it is unknown what follows, it does some checking and then tries to make
+sure that there is no page break following. Of course there needs to be a
+provision for the cases that there are many (sub)heads and of course when there
+are only heads on a page (in a concept for instance) you don't want to run of the
+page.
+
+Similar situations arise with for instance itemized lists and the tabulate
+mechanism. There we have some heuristics that keep content together in a way that
+makes sense given the construct: no single table line at the bottom of a page
+etc. But then comes the side float. The available space is checked. When doing
+that the whitespace following the section head has to collapse with the space
+around the image, but of course at the top of a page spacing is different. So,
+calculations are done, but even a small difference between what is possible and
+what is needed can eventually still trigger an unwanted page break. This is
+because you cannot really ask how much has been accumulated so far: the space
+used is influenced by what comes next (like whitespace, maybe interline space,
+the previous depth correction, etc). That in turn means that you have to (sort
+of) trigger these future space related items to be applied already.
+
+Challenge: Let the side float mechanism nicely cooperate with other mechanisms
+that have their own preferences for crossing pages, adding whitespace and being
+bound to following content.
+
+\stopsection
+
+\startsection[title={Easy bits}]
+
+Of course, once there is such a mechanism in place, user demands will trigger
+more features. Most of these are actually not that hard to deal with: renumbering
+due to moved content, automatic anchoring to the inner or outer margin,
+horizontal placement and shifting into margins, etc. Everything that doesn't
+relate to vertical placement is rather trivial to deal with, especially when the
+whole infrastructure for that is already present (as in \CONTEXT). The problem
+with such extensions is that one can easily forget what is possible because most
+are rarely used.
+
+Challenge: Make sure that all fits into an understandable model and is easy to
+control.
+
+\stopsection
+
+\startsection[title={Conclusion}]
+
+The side float mechanism in \CONTEXT\ is complex, has many low level options, and
+its code doesn't look pretty. It is probably the mechanism that has been
+overhauled and touched most in the code base. It is also the mechanism that
+(still) can behave in ways you don't expect when combined with other mechanisms.
+The way we deal with this (if needed) is to add directives to (in our case) \XML\
+files that tells the engine what to do. Because that is a last resort it is only
+needed when making the final product. So in the end, we're still have the
+benefits of automated typesetting.
+
+Of course we can come up with a different model (basically re|-|implement the
+page builder) but apart from much else falling apart, it will just introduce
+other constraints and side effects. Thinking in terms of selfish nodes, glues and
+penalties, works ok for a specific document where one can also impose usage
+rules. If you know that a section head is always followed by regular text, things
+become easier. But in a system like \CONTEXT\ you need to update your thinking to
+group selection: mechanisms have to work together and that can be pretty
+complicated. Some mechanisms can do that better than others. One outcome can be
+that for instance side floats are not really group players, so eventually they
+might become less popular and fade away. Of course, as often, years later they
+get rediscovered and the cycle starts again. Maybe a string argument can be made
+that in fully automated typesetting concepts like side floats should not be used
+anyway.
+
+If I have to summarize this wrap up, the conclusion is that we should be
+realistic: we're not dealing with an expert system, but with a bunch of
+heuristics. You need an intelligent system to help you out of deadlock and
+oscillating solutions. Given the different preferences you need a multiple
+personality system. You might actually need a system that wraps your expectations
+and solutions and that adapts to changes in those over time. But if there is such
+a system (some day) it probably doesn't need you. In fact, maybe even typesetting
+is not needed any more by then.
+
+\stopsection
+
+\stopchapter
diff --git a/doc/context/sources/general/manuals/musings/musings-whytex.tex b/doc/context/sources/general/manuals/musings/musings-whytex.tex
index 6186c4a0f..97dc06285 100644
--- a/doc/context/sources/general/manuals/musings/musings-whytex.tex
+++ b/doc/context/sources/general/manuals/musings/musings-whytex.tex
@@ -6,6 +6,12 @@
\startchapter[title={Why use \TEX ?}]
+\startlines \setupalign[flushright]
+Hans Hagen
+Hasselt NL
+July 2021 (public 2023)
+\stoplines
+
\startsection[title={Introduction}]
Let's assume that you know what \TEX\ is: a program that interprets a language
@@ -15,16 +21,17 @@ a button and get some typeset result in return. After a while you start tweaking
this black box, meet other users (on the web), become more fluent and stick to it
forever.
-But now let's assume that you don't know \TEX\ and are in search of a system
-that helps you create beautiful documents in an efficient way. When your
-documents have a complex structure you are probably willing to spend some time on
-figuring out what the best tool is. Even if a search lets you end up with
-something called \TEX, a three letter word with a dropped E, you still don't
-know what it is. Advertisement for \TEX\ is often pretty weak. It's rather easy
-to point to the numerous documents that can be found on the web. But what exactly
-does \TEX\ do and what are its benefits? In order to answer this we need to know
-who you are: an author, editor, an organization that deals with documents or needs
-to generate readable output, like publishers do.
+But now let's assume that you don't know \TEX\ and are in search of a system that
+helps you create beautiful documents in an efficient way. When your documents
+have a complex structure you are probably willing to spend some time on figuring
+out what the best tool is. Even if a search lets you end up with something called
+\TEX, a three letter word with a dropped E, you still don't know what it is. It
+helps to search for \type {\TeX} which is pronounced as \type {tech}.
+Advertisement for \TEX\ is often pretty weak. It's rather easy to point to the
+numerous documents that can be found on the web. But what exactly does \TEX\ do
+and what are its benefits? In order to answer this we need to know who you are:
+an author, editor, an organization that deals with documents or needs to generate
+readable output, like publishers do.
\stopsection
@@ -37,7 +44,6 @@ by \TEX\ look great.} but they do advocate that for rendering math it is a prett
good system. The source code of these documents often look rather messy and
unattractive and for a non|-|math user it can be intimidating. Choosing some
lightweight click|-|and|-|ping alternative looks attractive.
-lightweight click|-|and|-|ping alternative looks attractive.
Making \TEX\ popular is not going to happen by convincing those who have to write
an occasional letter or report. They should just use whatever suits them. On the
@@ -79,7 +85,7 @@ an obvious choice, but if you're a bit able to use it it's hard to beat in
quality, flexibility and efficiency. I'm often surprised that companies are
willing to pay a fortune for functionality that basically comes for free.
Programmers are accustomed to running commands and working in a code editor with
-syntax highlighting so that helps too. They too recognize when something can be
+syntax highlighting so that helps too. They also recognize when something can be
done more efficiently.
When you need to go from some kind of input (document source, database,
@@ -222,17 +228,17 @@ philosophy and we like the community. It is actually not really giving us an
advantage commercially: it costs way more to develop, support and keep
up|-|to|-|date than it will ever return. We can come up with better, faster and
easier solutions and in the end we pay the price because it takes less time to
-cook up styles. So there is some backslash involved because commercially a
+cook up styles. So there is some back slash involved because commercially a
difficult solution leads to more billable hours. Luckily we tend to avoid wasting
time so we improve when possible and then it ends up in the distributed code.
And, once the solution is there, anyone can use it. Basically also for us it's
-just a tool, like the operating system, editor and viewer are. So, what keep
+just a tool, like the operating system, editor and viewer are. So, what keeps
development going is mostly the interaction with the community. This also means
-that a customer can't really demand functionality for free: either wait for it to
-show up or pay for it (which seldom happens). Open source is not equivalent with
-\quotation {You get immediately what you want because someone out there writes
-the code.}. There has to be a valid reason and often it's just users and meetings
-or just some challenge that drives it.
+that a customer can't really demand functionality for free: either do it
+yourself, wait for it to show up, or pay for it (which seldom happens). Open
+source is not equivalent with \quotation {You get immediately what you want
+because someone out there writes the code.}. There has to be a valid reason and
+often it's just users and meetings or just some challenge that drives it.
This being said, it is hard to convince a company to use \TEX. It has to come
from users in the organization. Or, what we sometimes see with publishers, it
@@ -307,17 +313,18 @@ message.
The \TEX\ ecosystem was among the first in supporting for instance \OPENTYPE, and
the community even made sure that there were free fonts available. A format like
-\PDF\ was supported as soon as it shows up and \TEX\ was the first to demonstrate
-what advanced features were there and how way it was to adapt to changes.
-Processing \XML\ using \TEX\ has never been a big deal and if that is a reason to
-look at this already old and mature technology, then an organization can wonder
-if years and opportunities (for instance for publishing on demand or easy
-updating of manuals) have been lost. Of course there are (and have been)
-alternative tools but the arguments for using \TEX\ or not are not much different
-now. It can be bad marketing of open and free software. It can be that \TEX\ has
-been around too long. It can also be that its message was not understood yet. On
-the other hand, in software development it's quite common to reinvent wheels and
-present old as new. It's never to late to catch on.
+\PDF\ was supported as soon as it showed up and \TEX\ was the first to
+demonstrate what advanced features were there and it shows again how it is
+possible to adapt \TEX\ to changes in its environment. Processing \XML\ using
+\TEX\ has never been a big deal and if that is a reason to look at this already
+old and mature technology, then an organization can wonder if years and
+opportunities (for instance for publishing on demand or easy updating of manuals)
+have been lost. Of course there are (and have been) alternative tools but the
+arguments for using \TEX\ or not are not much different now. It can be bad
+marketing of open and free software. It can be that \TEX\ has been around too
+long. It can also be that its message was not understood yet. On the other hand,
+in software development it's quite common to reinvent wheels and present old as
+new. It's never too late to catch on.
\stopsection
diff --git a/doc/context/sources/general/manuals/musings/musings.tex b/doc/context/sources/general/manuals/musings/musings.tex
index 3e3b35ea0..13bf4f4ef 100644
--- a/doc/context/sources/general/manuals/musings/musings.tex
+++ b/doc/context/sources/general/manuals/musings/musings.tex
@@ -20,14 +20,14 @@
\component musings-roadmap
\component musings-names
\component musings-plain
- % \component musings-toocomplex
+ \component musings-toocomplex
% \component musings-manuals
- % \component musings-performance
+ \component musings-performance
% \component musings-history
% \component musings-treasures
% \component musings-whytex-again
\component musings-dontusetex
- % \component musings-speed
+ \component musings-speed
\stopbodymatter
\stopproduct