How can the Ubuntu font be used with LyX or LaTeX?

I use LyX for creating documents and would like to be able to format the output of my documents so that they use the Ubuntu font.

In the LyX document settings, it appears that there are only a fixed number of fonts available.

LyX: Document Settings

Is it possible to add the Ubuntu font to this list?

If not, is there a way to use the Ubuntu font in LaTeX? I can export the LyX document to LaTeX, make my changes and then use pdflatex & co. to create a formatted document.


Solution 1:

To use the Ubuntu font (or any other system font), use XeTeX

sudo apt-get install texlive-xetex

Once you have created your document in LyX, add some TeX code at the start of the document (using the TeX button): \fontspec{Ubuntu}. This makes the whole document use the Ubuntu font. If you want to switch to another font at some point use the \fontspec command again with the font name of the other font.

LyX document

To allow this to render to a DVI/PDF/etc., some settings need to be changed in Document>Settings.

Click on 'LaTeX Preamble' and enter this into the text box:

\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}

LaTeX Preamble

Also, under 'Language', set the encoding to Unicode (XeTeX) (utf8).

Language

Now export the document as LaTeX(pdflatex):

export

This will appear to do nothing but will actually output to DOCUMENT_NAME.tex.

Now open a teminal (Applications->Accessories->Terminal) and enter:

cd ~/Documents
xelatex ubuntu.tex
xdg-open ubuntu.pdf

Replace ~/Documents with the path of the folder containing your document and ubuntu with the name of the document. This should create a PDF file of the output of your document and open it in the default PDF reader:

PDF output

Doesn't it look pretty? :D

Thanks to Marcel Stimberg for suggesting XeTeX and providing the useful links to resources. I suggest people to have a look at those for more details.

Solution 2:

Converting a font in the true type format (like the Ubuntu font) to the format LaTeX understands is possible with tools such as ttf2afm, ttf2pk etc. but involves a lot of work. There are many howtos on the net (e.g. this one).

An alternative is using XeTeX instead of LaTeX/pdfLaTeX, which is capable of using any system font. It's also not too difficult to get LyX working with XeTeX, the LyX wiki has a howto: http://wiki.lyx.org/LyX/XeTeX

Update: Vincent-Xavier Jumel posted a very concise summary of how you can convert the Ubuntu fonts to a LaTeX package in a blog post. You can then simply use \usepackage{Ubuntu} in LaTeX or LyX.

Solution 3:

I've made a bundle of the Ubuntu Font Family for LaTeX2e. You can download it from github:

https://github.com/tzwenn/ubuntu-latex-fonts

For installation just run:

sudo make install

and then type \usepackage{ubuntu} in your LaTeX file.

Solution 4:

On 12.04 I enabled in the Lyx UI as follows:

  • install packages: texlive-xetex and etoolbox
  • in Lyx: Tools > Reconfigure
  • close Lyx and restart
  • Document > Settings > Fonts > Use non-Tex fonts