Entries Tagged as 'fonts'

Making DocBook XML to PDF work for Greek

<?xml version=”1.0″ encoding=”utf-8″?>
<!DOCTYPE article PUBLIC “-//OASIS//DTD DocBook XML V4.2//EN”
“http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd”>
<article lang=”en”>
<section><title>Title</title>
<para>ëãáâṩẫëĝéõōåőȩçą</para>
<para>ЁЂыњѨѬѺѸѶѦщЖЊЌЍШЩзф</para>
<para>ᾶᾳὰέᾁᾂδϕϟϸϡϸϸαϷϕϲδϕϛ€ϕ©ϖϐͻ©ϖϐ</para>
</section>
</article>

This is an issue that I would appreciate if someone could help in solving.

The above document (mytestfile.xml) is a DocBook XML document with text in many scripts (latin, cyrillic and greek). Normally it was difficult to convert to PDF, until recently.

Now, one can run

dblatex --backend=xetex --verbose mytestfile.xml

(requires to install the dblatex package and any dependencies) and it creates mytestfile.pdf. If you have a fresh installation of Ubuntu 8.10 and you go through the process of installing these packages, please make a list of them, to use as advice for new users.

Generated PDF document with lang=en

Generated PDF document with lang=en

Since we use XeTeX as a backend, we can work with Unicode text directly, which is the proper thing to do. Above you can see that all characters are shown (except a few obscure ones that are not found in DejaVu Sans and are shown as boxes). You can see Latin (+Extended), Cyrillic (+Extended), Greek (+Extended) in the same document.

Generated PDF document with lang=el

Generated PDF document with lang=el

The issue arises when we change the lang modifier in the document above, from en to el. Here you see Τιτλε, which in fact is Title but with the characters replaced with their Greek equivalent. This is a sign for non-Unicode, 8-bit encoding conversion issue. In addition, some of the rest of the characters are shown, and apparently a strange conversion took place.

What we need to do is figure out is how to fix xetex when ‘lang=el’. There is some work to get Greek XeTeX support upstream, and there are instructions on how to add local Greek XeTeX support in your distribution.

What we need is instructions on how to fix the Greek XeTeX support in Ubuntu 8.10, and test that dblatex can generate documents correctly when lang=el.

For your testing, here are the files mytestfile-en.pdf, mytestfile-el.pdf, mytestfile-en.xml, mytestfile-el.xml.

FOSDEM ‘08, summary and comments

I attended FOSDEM ‘08 which took place on the 23rd and 24th of February in Brussels.

Compared to other events, FOSDEM is a big event with over 4000 (?) participants and over 200 lectures (from lightning talks to keynotes). It occupied three buildings at a local university. Many sessions were taking place at the same time and you had to switch from one room to another. What follows is what I remember from the talks. Remember, people recollect <8% of the material they hear in a talk.

The first keynote was by Robin Rowe and Gabrielle Pantera, on using Linux in the motion picture industry. They showed a huge list of movies that were created using Linux farms. The first big item in the list was the movie Titanic (1997). The list stopped at around 2005 and the reason was that since then any significant movie that employs digital editing or 3D animation is created on Linux systems. They showed trailers from popular movies and explained how technology advanced to create realistic scenes. Part of being realistic, a generated scene may need to be blurred so that it does not look too crisp.

Next, Robert Watson gave a keynote on FreeBSD and the development community. He explained lots of things from the community that someone who is not using the distribution does not know about. FreeBSD apparently has a close-knit community, with people having specific roles. To become a developer, you go through a structured mentoring process which is great. I did not see such structured approach described in other open-source projects.

Pieter Hintjens, the former president of the FFII, talked about software patents. Software patents are bad because they describe ideas and not some concrete invention. This has been the view so that the target of the FFII effort fits on software patents. However, Pieter thinks that patents in general are bad, and it would be good to push this idea.

CMake is a build system, similar to what one gets with automake/autoconf/makefile. I have not seen this project before, and from what I saw, they look quite ambitious. Apparently it is very easy to get your compilation results on the web when you use CMake. In order to make their project more visible, they should make effort on migration of existing projects to using CMake. I did not see yet a major open-source package being developed with CMake, apart from CMake itself.

Richard Hughes talked about PackageKit, a layer that removes the complexity of packaging systems. You have GNOME and your distribution is either Debian, Ubuntu, Fedora or something else. PackageKit allows to have a common interface, and simplifies the workflow of managing the installation of packages and the updates.

In the Virtualisation tracks, two talks were really amazing. Xen and VirtualBox. Virtualisation is hot property and both companies were bought recently by Citrix and Sun Microsystems respectively. Xen is a Type 1 (native, bare metal) hypervisor while VirtualBox is a Type 2 (hosted) hypervisor. You would typically use Xen if you want to supply different services on a fast server. VirtualBox is amazingly good when you want to have a desktop running on your computer.

Ian Pratt (Xen) explained well the advantages of using a hypervisor, going into many details. For example, if you have a service that is single-threaded, then it makes sense to use Xen and install it on a dual-core system. Then, you can install some other services on the same system, increasing the utilisation of your investment.

Achim Hasenmueller gave an amazing talk. He started with a joke; I have recently been demoted. From CEO to head of virtualisation department (name?) at Sun Microsystems. He walked through the audience on the steps of his company. The first virtualisation product of his company was sold to Connectix, which then was sold to Microsoft as VirtualPC. Around 2005, he started a new company, Innotek and the product VirtualBox. The first customers were government agencies in Germany and only recently (2007) they started selling to end-users.

Virtualisation is quite complex, and it becomes more complex if your offering is cross platform. They manage the complexity by making VirtualBox modular.

VirtualBox comes in two versions; an open-source version and a binary edition. The difference is that with the binary edition you get USB support and you can use RDP to access the host. If you installed VirtualBox from the repository of your distribution, there is no USB support. He did not commit whether the USB/RDP support would make it to the open-source version, though it might happen since Sun Microsystems bought the company. I think that if enough people request it, then it might happen.

VirtualBox uses QT 3.3 as the cross platform toolkit, and there is a plan to migrate to QT 4.0. GTK+ was considered, though it was not chosen because it does not provide yet good support in Win32 (applications do not look very native on Windows). wxWidgets were considered as well, but also rejected. Apparently, moving from QT 3.3 to QT 4.0 is a lot of effort.

Zeeshan Ali demonstrated GUPnP, a library that allows applications to use the UPnP (Universal Plug n Play) protocol. This protocol is used when your computer tells your ADSL model to open a port so that an external computer can communicate directly with you (bypassing firewall/NAT). UPnP can also be used to access the content of your media station. The gupnp library comes with two interesting tools; gupnp-universal-cp and gupnp-network-light. The first is a browser of UPnP devices; it can show you what devices are available, what functionality they export, and you can control said devices. For example, you can use GUPnP to open a port on your router; when someone connects from the Internet to port 22 on your modem, he is redirected to your server, at port 22.

You can also use the same tool to figure out what port mapping took place already on your modem.

The demo with the network light is that you run the browser on one computer and the network light on another, both on the local LAN (this thing works only on the local LAN). Then, you can use the browser to switch on/off the light using the UPnP protocol.

Dimitris Glezos gave a talk on transifex, the translation management framework that is currently used in Fedora. Translating software is a tedious task, and currently translators spent time on management tasks that have little to do with translation. We see several people dropping from translations due to this. Transifex is an evolving platform to make the work of the translator easier.

Dimitris talked about a command-line version of transifex coming out soon. Apparently, you can use this tool to grab the Greek translation of package gedit, branch HEAD. Do the translation and upload back the file.

What I would like to see here is a tool that you can instruct it to grab all PO files from a collection of projects (such as GNOME 2.22, UI Translations), and then you translate with your scripts/tools/etc. Then, you can use transifex to upload all those files using your SVN account.

The workflow would be something like

$ tfx --project=gnome-2.22 --collection=gnome-desktop --action=get
Reading from http://svn.gnome.org/svn/damned-lies/trunk/releases.xml.in... done.
Getting alacarte... done.
Getting bug-buddy... done.
...
Completed in 4:11s.
$ _

Now we translate any of the files we downloaded, and we push back upstream (of course, only those files that were changed).

$ tfx --project=gnome-2.22 --collection=gnome-desktop --user=simos --action=send
 Reading local files...
Found 6 changed files.
Uploading alacarte... done.
...
Completed uploading translation files to gnome-2.22.
$ _

Berend Cornelius talked about creating OpenOffice.org Wizards. You get such wizards when you click on File/Wizards…, and you can use them to fill in entries in a template document (such as your name, address, etc in a letter), or use to install the spellchecker files. Actually, one of the most common uses is to get those spellchecker files installed.

A wizard is actually an OpenOffice.org extension; once you write it and install it (Tools/Extensions…), you can have it appear as a button on a toolbar or a menu item among other menus.

You write wizards in C++, and one would normally work on an existing wizard as base for new ones.

When people type in a word-processor, they typically abuse it (that’s my statement, not Berend’s) by omitting the use of styles and formatting. This makes documents difficult to maintain. Having a wizard teach a new user how to write a structured document would be a good idea.

Perry Ismangil talked about pjsip, the portable open-source SIP and media stack. This means that you can have Internet telephony on different devices. Considering that Internet Telephony is a commodity, this is very cool. He demonstrated pjsip running two small devices, a Nintendo DS and an iPhone. Apparently pjsip can go on your OpenWRT router as well, giving you many more exciting opportunities.

Clutter is a library to create fast animations and other effects on the GNOME desktop. It uses hardware acceleration to make up for the speed. You don’t need to learn OpenGL stuff; Clutter is there to provide the glue.

Gutsy has Clutter 0.4.0 in the repositories and the latest version is 0.6.0. To try out, you need at least the clutter tarball from the Clutter website. To start programming for your desktop, you need to try some of the bindings packages.

I had the chance to spend time with the DejaVu guys (Hi Denis, Ben!). Also met up with Alexios, Dimitris x2, Serafeim, Markos and others from the Greek mission.

Overall, FOSDEM is a cool event. In two days there is so much material and interesting talks. It’s a recommended technical event.

Droid fonts from Google (Android SDK)

Two years ago, Google bought a start-up called Android in order to deliver an open platform for mobile applications. A few days ago the Android SDK has been released and you can develop now Android applications that can run in the emulator. Android handsets are expected at some point next year.

Even if you do not plan to develop applications for Android, you can still run the emulator which is functional, includes quite a few samples, and comes with a browser shown above. To get it, download the Android SDK for your system, uncompress it and run

./android_sdk_linux_m3-rc20a/tools/emulator

An interesting aspect of Android is that it comes with a set of fonts that have been specially designed for mobile devices, the Droid fonts. The fonts are embedded in the Android image, in android_sdk_linux_m3-rc20a/tools/lib/images/system.img, a clever guy managed to extract them and a modest guy corrected me (Damien’s blog to download).

The fonts are probably licensed under the same license as the SDK (Apache License), however it is better to hear from Google first.

In the meantime, here is a screenshot of Ubuntu 7.10 with Droid.

Update: To extract the fonts from the SDK, run the emulator with the -console parameter. The emulator starts and at the same time you get a shell to the filesystem of the running emulator. You can locate the fonts in system/fonts/. Once located the full path of a file, you can extract with ./adb pull system/fonts/DroidSans.ttf /tmp/DroidSans.ttf (thanks cosmix for the tip).

StixFonts, finally available (beta)!

The STIX Fonts project (website) has been developing for over 10 years a font suitable to be used in academic publications. It boasts support from Elsevier, IEEE and other academic publishers or associations.

A few days ago, they published a beta version of the font in an effort to get public feedback. The beta period runs until the 15th December.

STIX Fonts Beta showing Greek (Regular), from STIX Fonts Beta

STIX Fonts Beta currently support modern Greek. An effort to get support for Greek Polytonic did not work out well a few years back.

STIX Fonts Beta showing Greek (Italic), from STIX Fonts Beta

The main benefit of STIX Fonts is the support for mathematical and other technical symbols. This helps when writing academic publications and other technical documents.

STIX Fonts Beta showing Greek (Bold), from STIX Fonts Beta

STIX Fonts have extensive support of mathematical symbols, symbols that exist in Unicode Plane-1.

STIX Fonts Beta showing Greek (Bold Italic), from STIX Fonts Beta

If there is any modification that we would like to have in STIX fonts, we should do now. Once they are released, they will be widely distributed. Currently, Fedora has packaged STIX Fonts and made them available already.

Unicode Fonts for Ancient Scripts

George Douros created a set of Unicode fonts that cover the part of the Unicode standard for ancient scripts and symbols.


Linear B Ideograms; Ιδεογράμματα Γραμμικής Β


Ancient Greek numbers; Αρχαίοι ελληνικοί αριθμοί

Click here to see more screenshots on
the Ancient fonts gallery.

Convert your legacy font to Unicode

There exist quite a few legacy fonts, from the time that 8-bit-style encodings was the norm. Nowdays, most (if not all) spoken and ancient scripts have been added to the Unicode standard.
Therefore, if you have a legacy font, you can convert to Unicode using a guide by William J Poser. The guide uses Linear B as an example.

The program mentioned in the guide is pfaedit, which is now known as FontForge. FontForge is available in your Ubuntu distribution; simply search using the package manager.

Once you have a Unicode font, the next step is to prepare an input method so that you can write in this script. But that’s another blog post.

Improving DejaVu Serif for Greek

Vangelis Karageorgos  sent an e-mail to the DejaVu Fonts mailing list regarding his work on the Greek glyphs for the DejaVu Serif face.

The original Greek glyphs from DejaVu Serif 2.12 look like

The edition of DejaVu Serif (Greek) by Vangelis  Karageorgos look like

Ben Laenen from the DejaVu project, an  gave the following comments/advice

> as Simos mentioned, Serif already has Greek since a very long
> time now.
>
> however, I’ve never been really too happy about it [current state of Greek in Serif --simos], and some
> improvements are still pending. I also must say that I like the style
> of Vangelis’ glyphs, even though it has some things I’ve personally
> never been too keen about, like the ita and chi without descender. In
> the glyphs I designed I also removed the serifs on the descenders,
> but they seem to work in Vangelis’ style.
>
> Now, before we start thinking about replacing the glyphs in DejaVu: I
> first want to see some feedback from the Greek users to see which
> style they would like more, and what would have to be changed before
> they would accept them.
>
> Also, if these new glyphs get included, the Greek Extended block
> should be altered as well (work I’m not very keen on doing myself
> since I know how boring that work is :-) Some other glyphs in the
> main Greek block may need changes as well.

Now, the question is, do you like the Greek edition of DejaVu Serif by Vangelis Karageorgos? If you do like it or you do not, please say so. It would also be good to specify what elements are better in the proposed version.

The Junicode Greek Project

Specimen of Wilson's Greek Type

What’s Junicode? Well,

Junicode (short for Junius-Unicode) is a Unicode font for medievalists. The current version is a beta; the selection of characters and the arrangement of the Private Use Area are subject to change. Your comments, suggestions and bug reports will be a great help to me as I complete the project.

Source: http://junicode.sourceforge.net/

If you look at the font coverage of Junicode, you will notice that Greek is missing. There is a new project to add Greek support in Junicode, and the font designer asks for feedback from Greek-speaking users,

You can help with this project, if you know Greek better than I do, by providing feedback. Some questions that occur to me:

  • Wilson’s font does not have the k-style kappa. Should I include this, or just use the x-style kappa?
  • The shapes of zeta, rho, phi and perhaps others differ markedly from what one usually sees in modern Greek fonts. Should these be modernized, or will they do as-is?

I welcome any and all suggestions. Please write to the address below.

Source (and contact e-mail): http://junicode.sourceforge.net/greek.html

The new (experimental) Greek glyphs look like

Greek Font Society fonts (re-)released under the Open Font License

Several of the Greek Font Society fonts have been released under the Open Font License.

This includes GFSDidotOT, GFSOlgaOT and GFSPortonOT.

Thank you Greek Font Society!

Διάθεση των γραμματοσειρών DejaVu 2.8

Πριν από λίγο ανακοινώθηκε η νέα έκδοση των γραμματοσειρών DejaVu 2.8.

Μεταξύ των βελτιώσεων είναι η προσθήκη hinting στη DejaVu Sans Bold για τα ελληνικά. Όπως ήταν μέχρι τώρα, είχαμε hinting μόνο στη DejaVu Sans.

Το hinting στη DejaVu Sans Bold έγινε από τον Ben Laenen ενώ για τη DejaVu Sans από τον Keenan Pepper.

Είναι πολύ σημαντικό που έχουμε τις DejaVu Sans (Book) και DejaVu Sans Bold με πληροφορίες hinting διότι αυτές οι δύο είναι οι πιο βασικές γραμματοσειρές στο γραφικό περιβάλλον στο Linux. Στους τίτλους των παραθύρων καθώς και στους τίτλους στο Evolution εμφανίζονται χαρακτήρες στη μορφή bold. Τώρα, οι ελληνόφωνοι χρήστες θα έχουν ένα ποιοτικό αποτέλεσμα σε ένα τυπικό γραφικό περιβάλλον. Δίχως πληροφορίες hinting στην ίδια τη γραμματοσειρά, οι ελληνικοί χαρακτήρες bold φαίνονται αχνοί σε οθόνες TFT (π.χ. φορητοί) όταν το μέγεθος της γραμματοσειράς είναι ~12pt ή μικρότερο.

Αυτό το θάμπωμα στους χαρακτήρες προέρχεται από το αυτόματο hinting που κάνει το σύστημα οπότε αν δεν μπορείτε να αναβαθμίσετε, δοκιμάστε να μειώσετε το επίπεδο αυτόματου hinting που κάνει το σύστημα από Σύστημα/Προτιμήσεις/Γραμματοσειρά/Λεπτομέρειες…/Hinting (από Πλήρες σε π.χ. Ελαφρύ).
Άλλη σημαντική προσθήκη στις γραμματοσειρές DejaVu είναι η προσθήκη περισσότερων dingbats στη DejaVu Sans Mono.

Στη Fedora Core 6 κατά πάσα πιθανότητα θα μπει η DejaVu LGC 2.8, που δεν περιλαμβάνει κάποιο μέρος από τους χαρακτήρες (αραβικά). LGC σημαίνει Latin, Greek και Cyrillic.