Console font recommendation
Hi, regarding the recommendation to use
lat9w-16 instead of
Lat2-Terminus16 as a console font, originally discussed in .
There were several arguments presented, as I don't know which was the most important, I will take them one by one:
- The README file for Lat2-Terminus16 (here or in
/usr/share/kbd/consolefonts/README.Lat2-Terminus16) indeed states that it supports "about 110 language sets", not character sets as you presented.
- The claim that Lat2-Terminus16 does not support the Euro symbol is false, it is even shown here.
- The README file for lat9 (here or in
/usr/share/kbd/consolefonts/README.lat9) says that it supports unicode mapping, but it is only a subset limited to lat1 (ISO8859-1) and lat9 (ISO8859-15). On the other hand, Lat2-Terminus16 supports all these (from README.Lat2-Terminus16):
ISO8859-1/ISO8859-15/Windows-1252, ISO8859-2/Windows-1250, Windows-1251/ISO8859-5, ISO8859-9/Windows-1254, ISO8859-16, ISO8859-13/Windows-1257, IBM-437, Bulgarian-MIK, KOI8-R, KOI8-U, Paratype-PT154, combined
- The switching between these mappings is done by the
-mswitch passed to setfont utility (again see the README), I don't know why this has been removed .
By looking at the supported mappings, the previous recommendation made more sense. Or is there more to this?
- Hi. The misunderstanding here is that this README file is not specifically for the Lat2-Terminus font file, but for the Terminus font package as a whole - it has just been renamed. The generated console font is a tiny subset; this one supports only ISO-8859-2, which is designed for eastern European languages. It does indeed contain the Euro symbol, which I had not seen. The character map does not work in UTF mode, however, so you cannot use the symbol in the console if using UTF-8 (which pretty much everybody is), at least with the standard set up.
- The relevant line from the README file for this particular font is this:
ter-2* iso02, cp1250 ISO8859-2, Windows-1250
- The Terminus font supports all of these encodings listed when generated separately into different files. The Lat2-Terminus16 file supports just the characters shown in the URL you linked.
- The lat9 font however has a working UTF map with the Euro symbol, and supports western European characters, which is a sensible default.
- Thanks for the quick response, I hope that you can help me clear up even more misunderstandings.
- I have no idea why contains just a single font file from , let alone why it is renamed. From my experience, is quite a mess, so I will probably never find out :(
- To the Unicode mapping: I've been using Unicode locale (
LANG=en_GB.utf8) along with the Lat2-Terminus16 font for the past three years, and never experienced any problems with characters from the ISO8859-2 mapping, including the Euro sign (and since I'm a Czech, I do use the "eastern" characters quite extensively). Even
/usr/share/kbd/consolefonts/README.psfusays "The .psfu files have a built-in Unicode mapping, the .psf files don't." and Lat2-Terminus16 is a .psfu file. Or did you mean something else by "UTF mode"?
- As I see it, there were three reasons for changing the recommendation: 1) the Euro sign, 2) Unicode mapping support, and 3) different character set. 1) is definitely false, 2) is probably false and 3) IMHO deserves more options to be presented (at least in Fonts, not necessarily in the Beginners' guide). Unfortunately these options will be probably hard to get (but this is even another reason to give them), because even in the kbd source tree,
data/consolefonts/contains only generated files and too few READMEs.
- A final question: since each font file has a fixed mapping/charset and setfont loads these files, what is the purpose of the
- -- Lahwaacz (talk) 21:57, 2 July 2014 (UTC)
- I have no idea either why contains just one of the Terminus console fonts, or why the ISO8859-2 version was chosen in particular. The renaming of the README file is vastly confusing, as it does incorrectly imply that the font supports all of the characters that the full Terminus font does. Arch has a package that contains the full set. I believe the default console font/mapping is inherited from whatever the video adapter uses, which would be a standard VGA font with IBM CP437 (or something similar).
- I would not generally recommend people change the console font unless they have a reason to. If you work predominantly in English and Czech, then any of the ISO8859-2 fonts might be a good idea, just as there are alternatives for Greek, and so forth. Changing to any of the other ISO standards is really just for people wanting to work in those languages. The Lat2-Terminus16 file contains (obviously) the full ASCII set, as well as some of the most common western European characters, which is why it'll generally work ok. It will of course consequently lose many common characters supported in the default font, or the lat1/9 fonts. Good reasons for picking lat9: i) it supports the Euro, the default CP437 does not; ii) it is otherwise essentially identical to ISO8859-1, pretty much the universal default before Unicode; iii) the glyphs are mostly compatible with CP437 and other console sets, including the line drawing characters; iv) it is a VGA style font, so looks the same as the default.
- The Lat2-Terminus16 font includes a Unicode mapping, but when I tested a while back I was unable to enter the Euro under the Lat2-Terminus font, but it was fine with other fonts. I could check that again, as I could have confused that.
- I believe that the -m option is redundant for consoles in Unicode mode. When using a large (512 glyph) console font, it can represent characters from several traditional sets (each of which contains only 256 characters), so the console needs to know which of the 512 glyphs to use. In Unicode mode, it doesn't matter since all of the characters in the font are mapped to the appropriate Unicode character automatically. By 'UTF mode', the console can be in one of two modes. The default is UTF-8 and has been for a long time now.
- The topic is complicated and difficult to cover in the beginners' guide in any useful way. Perhaps the page for console fonts needs reworking.
- -- Teppic74 (talk) 23:31, 2 July 2014 (UTC)
- You are absolutely right in the comparison of lat9 to the default CP437 font, I was comparing it to the Lat2-Terminus16 instead, which is another misunderstanding. I agree that lat9w-16 is a good recommendation for the Beginners' guide, and let's expand the Fonts#Console fonts section then. -- Lahwaacz (talk) 13:47, 3 July 2014 (UTC)
- Yeah, the Lat2-Terminus16 (i.e. ter-216n) font is very different from CP437, while lat9 is similar enough that it remains largely compatible with console applications but is more modern and relevant. I thought it might be a good idea to have a separate 'Linux Console' page to cover the background, fonts and keyboard settings, since it's all completely separate from graphical environments. I'd be happy to start putting something together. -- Teppic74 (talk) 15:35, 3 July 2014 (UTC)
Expanding your Linux console article
I was starting to document how to change the Linux console color palette when I stumbled upon your Linux console article. I think it's a good idea to push such an important article to the wiki, and I would like to merge my research with yours since that's the right place for it. Have a look at User:Isacdaavid/Linux_colors and tell me what you think.
Also, is there anything impeding you to publish the page?