This is indeed annoying and illogical when learning english, especially because other languages get it right.
The french have a different speciality: punctuation marks that consist of two parts(i.e. ? ! ; :) are preceded by a space character. Also very irritating.
Note that em (current point size) and en (½ em) spaces are both wider than the regular space character (typically ¼ em). An espace fine insécable (narrow no-break space) is even smaller, usually as small as a Unicode thin space (⅕ or ⅙ em): https://jkorpela.fi/chars/spaces.html
Word, in French mode, inserts regular no-break spaces where narrow no-break spaces would be appropriate. I find this style rather irritating, but then again, I don’t read nearly enough French to get accustomed to it.
Ah, you're right, my translation of espace fine to En was incorrect, thanks for the correction.
An intriguing problem in typography is the patterns that spaces can form between words on different lines (called rivers); in traditional typography it is checked for but I don't know of any rendering engine that would do that automatically (in a browser, or on an e-reader for example).
I believe that both TeX (Knuth-Plass Line Breaking Algorithm) and InDesign (paragraph composer – expired US Patent 6,510,441) do this, so there is at least one open-source implementation that could be used as a starting point. Unfortunately though, the awareness for good and bad typography seems to be so low that this is probably not a priority for browser and e-reader vendors. It would be wonderful to have this as part of WeasyPrint or something similar.
TeX doesn't do this automatically, but is rare to see "rivers" in TeX produced publications due to the superiority of its paragraph building algorithm.
On the other hand, it was the English who used to have some extra space between sentences compared to the space between words. This is still the default in LaTeX, but I believe everyone turns it off by using the \frenchspacing command in the preamble.
Also German has its own verbs for
"for the insertion of inappropriate spaces before a punctuation mark." and "for the insertion of inappropriate spaces after a punctuation mark."[1] which are often used in a derogatory manner in connection with people who do it wrongly.
> The french have a different speciality: punctuation marks that consist of two parts(i.e. ? ! ; :) are preceded by a space character.
Precision: a non-breaking space (unicode U+00A0) :)
LibreOffice or other word processing software automatically replace normal spaces by non-breaking spaces in that case.
But in text editors (like vim), we must do it manually (Ctrl+Shift+ua0 on Linux), typically when writing a French text in markdown, it's a bit irritating indeed.
This is usually configurable, e.g. Compose-Space-Space inserts a no-break space if the Compose key is set up, or AltGr+Space, Ctrl-Shift+Space etc.
(KDE has a dialog for customizing this under Settings→Input Devices→Keyboard→Advanced, where there are an impressive 16 possible options. It is just options to setxkbmap underneath.)
The french have a different speciality: punctuation marks that consist of two parts(i.e. ? ! ; :) are preceded by a space character. Also very irritating.