ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Εμφάνιση τετραγώνων αντί για ελληνικούς χαρακτήρες: βρέθηκε η αιτία

  • Subject: Εμφάνιση τετραγώνων αντί για ελληνικούς χαρακτήρες: βρέθηκε η αιτία
  • From: Konstantinos Margaritis <markos [ at ] debian [ dot ] gr>
  • Date: Wed, 17 Aug 2005 17:42:00 +0300
Λοιπόν, αφού κάθησα και έψαξα λιγάκι και μίλησα με τους maintainers 
του fontconfig κλπ, για την αιτία που εμφανίζονται τετραγωνάκια σε 
πολλά προγράμματα αντί για τους ελληνικούς χαρακτήρες, τουλ. στο 
Debian, πιθανόν και αλλού, βρέθηκε η αιτία και αυτόματα και οι τρόποι 
επίλυσης του προβλήματος.

Καταρχάς για όσους δεν έχουν καταλάβει ακόμη τί εννοώ, μιλάω για το 
#252014, το οποίο είναι απλώς ένα αποτέλεσμα του προβλήματος και όχι 
το ίδιο το πρόβλημα.

Ο λόγος είναι ότι εσωτερικά το fontconfig και η βιβλιοθήκη pango, 
επιλέγουν την πρώτη διαθέσιμη γραμματοσειρά που υποστηρίζει ένα σετ 
χαρακτήρων και αν δεν το υποστηρίζει, προχωρά στην επόμενη 
γραμματοσειρά. Οι γραμματοσειρές αυτές ορίζονται στο 
αρχείο /etc/fonts/fonts.conf.

Αν δώσει κάποιος την εντολή:

$ fc-match :lang=el_GR

θα διαπιστώσει ότι το default είναι η Bitstream Vera Serif, το οποίο 
είναι και το πρόβλημα καθώς η bitstream, προφανώς λανθασμένα δηλώνει 
ότι υποστηρίζει ελληνικούς χαρακτήρες. Με επεξεργασία του 
αρχείου /etc/fonts/fonts.conf, και απενεργοποίηση της εν λόγω 
οικογένειας γραμματοσειρών, και αφού ανανεώσουμε την cache του 
fontconfig:

$ fc-cache -f

διαπιστώνουμε ότι η επόμενη διαθέσιμη γραμματοσειρά είναι η Nimbus. 
Και πάλι πρόβλημα.

Οπότε το θέμα δεν είναι να φτιάξουμε όλες τις εφαρμογές που 
παρουσιάζουν πρόβλημα, αλλά α) να φτιάξουμε τις γραμματοσειρές που 
δημιουργούν το πρόβλημα ή β) να ορίσουμε ένα φίλτρο στο fontconfig το 
οποίο π.χ. για ελληνικά να δέχεται μόνο τις γραμματοσειρές που θα του 
ορίσουμε (η 2η λύση είναι και αυτή που έχω χρησιμοποιήσει αλλά δε μου 
αρέσει ιδιαίτερα, τη θεωρώ kludge).

Όσον αφορά το 1ο, ξέρει κανείς πώς ορίζουμε κάτι τέτοιο σε μια 
γραμματοσειρά; Έχω σκοπό να στείλω bug report στις γραμματοσειρές 
αυτές αλλά θα προτιμούσα να ξέρω και πώς γίνεται για να πιέσω στην 
περίπτωση που είναι κάτι γελοίο.

Κώστας