Emanuel Han via ntg-context schrieb am 28.02.2024 um 20:51:
Thank you all for your suggestions and contributions to the wiki.
I don't intend to nag, but when looking at what ConTeXt is producing,
I need to state that the result is still far away from a properly
typeset Japanese text.
So the nihongo script which comes with ConTeXt handles *line breaks /
line wrapping*. But the line break rules defined in it need a rework,
because they don't follow the standards. The standards are documented
here:
https://www.w3.org/TR/jlreq/#possibilities_for_linebreaking_between_characters
, and all affected characters are listed here:
https://www.w3.org/TR/jlreq/tables/table_en3.pdf
We have different rules, depending what kind of character is
surpassing the text width (or is in its last position).
Rule 1:
Before closing brackets, closing quotation marks, iteration marks, the
Prolonged sound mark and small Kana, line breaking is prohibited.
’”)〕]}〉》」』】ヽヾゝゞ々ーぁぃぅぇぉァィゥェォっゃゅょッャュョ etc.
The actual programmed behaviour by the nihongo script is that, if in
the position which exceeds the line width, these characters jump to
the next line and take the previous character with them. If they're in
the last position of the line, they stay where they are. This
behaviour is correct.
Rule 2:
After opening Brackets and opening quotation marks, line breaking is
prohibited (but not before).
‘“(〔[{〈《「『【
The actual programmed behaviour by the nihongo script is that these
characters jump to the next line and take the previous character with
them. This behaviour is wrong. They should jump to the next line
without taking the previous character with them, just like any regular
character. The difference to a regular character is that they jump
already when still within the line length, and they're in the last
position of the line. The correct behaviour can be seen in LibreOffice
Writer in action.
Can you provide a minimal example because this should be correct and if
not it's a bug.
Rule 3:
Comma (tōten), full width comma, full stop
、,。
The actual programmed behaviour by the nihongo script is that, if in
the position which exceeds the line width, these characters jump to
the next line and take the previous character with them. This
behaviour is wrong.
They have to be put back to the end of the previous line, but beyond
the specified line length. (JIS Z 8125) (Search for "Line adjustment
by hanging punctuation" under https://www.w3.org/TR/jlreq/ )
If they're in the last position of the line, they stay where they are.
The correct behaviour can be seen in LibreOffice Writer in action.
This is handled by the protrusion mechanism and enabled with paragraph
alignment.
Rules 4, 5, ...:
Combinations of inseparable characters... (see
https://www.w3.org/TR/jlreq/#possibilities_for_linebreaking_between_character
) and eventually more, which I didn't test.
It might be useful to define three scripts nihongo_loose,
nihongo_strict and nihongo_very_strict which each implement one of the
3 cases described here: https://www.w3.org/TR/jlreq/#addendum_a
According the *line gap* (Otared uses \setupwhitespace[big], which is
exceeding common line gaps), I'd like to quote from
https://www.w3.org/TR/jlreq/ :
/It is common that the line gap for the kihon-hanmen is set to a value
between half-em spacing and the one em spacing of the character frame
used for the kihon-hanmen. Half-em spacing can be chosen in cases
where the line length is short, but one em spacing or close to it is
more appropriate when the line length is longer than 35 characters./
I like the standard line gap which is provided by ConTeXt, which is
equivalent to \setupwhitespace/[0pt]/. Even when using ruby, it works
well. I found the best voffset for ruby to be -1.7ex.
The \setupwhitespace setting controls the distance between paragraphs
but you're looking for the \setuplinespace command.
The *line adjustment* provided by ConTeXt by default is not meeting
the needs for Japanese (and Chinese) text, which follow a grid
pattern. Especially the last line of a paragraph is squeezed, which is
"hurting the eye".
When characters need to jump to the next line due to previously
discussed line breaking rules, ConTeXt seems to apply "Line adjustment
by inter-character spacing expansion", which is a valid method
according to https://www.w3.org/TR/jlreq/#line_adjustment , although
"Line adjustment by inter-character spacing reduction" is preferred.
The last point which ConTeXt is missing, when talking about Japanese
typesetting, is vertical writing.
Vertical typesetting is possible but only for small text blocks which
fit on a single page. Typesetting text which spans multiple pages isn't
supported yet (it was possible ages ago with MkII) because nobody needed
it yet.
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl /
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________