2

In mydir/subdir, I have

\usepackage{../../latex/lecture/mylecture}

invoking the below mylecture.sty:

\usepackage{fontspec}
\usefonttheme{professionalfonts} % using non standard fonts for beamer
\usefonttheme{serif}
\definecolor{paleyellow}{RGB}{255,255,221}
\definecolor{myblue}{RGB}{0,0,144}
\setbeamercolor{frametitle}{fg=myblue}
\setbeamercolor{itemize item}{fg=myblue}
\setbeamercolor{title}{fg=myblue}
\setmainfont[
  Path           = ./ ,
  Extension      = .ttf ,
  UprightFont    = *-Regular ,
  BoldFont       = *-Bold ,
  ItalicFont     = *-Italic ,
  BoldItalicFont = *-BoldItalic
]{Alegreya}

XeLaTeX says

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
! 
! The font "Alegreya-Regular" cannot be found.   

In lecture/mylecture, there are the various Alegreya ttf files which work when I have mylecture.sty and the ttf files copied to the current directory.

Does XeLaTeX look for the ttf files in mydir/subdir, reading the ./ path specification in \setmainfont, instead of lecture/mylecture, what I expected?

I just do not want to copy mylecture.sty and the ttf files into each dir where I want to write a new lecture slide series.

How can I have mylecture.sty and the ttf files in one dir and refer to it from anywhere in my git repository?

9
  • It's much easier to use the path mechanisms provided by your TeX distribution. So on my MacTeX system, I would install the font as a standard system font and put my style file in the appropriate place in my ~/localtexmf/latex tree. Can you do something similar?
    – Thruston
    Sep 19, 2018 at 7:46
  • As hinted in my last sentence, I would like to use this in a git repository which I synchronise to various machines. I want this to be independent of the local TeX installation,
    – Gergely
    Sep 19, 2018 at 7:50
  • You can still use the standard mechanisms: include your local copy in texinputs or use a symlink in your local texmf tree
    – Joseph Wright
    Sep 19, 2018 at 8:18
  • Another idea: Alegreya should be distributed with TeX Live and MikTeX, so why not simply use a distro package (and then include the font without Path)? For me a OTF version is at texmf-dist/fonts/opentype/huerta/alegreya/Alegreya-Regular.otf
    – TeXnician
    Sep 19, 2018 at 8:19
  • @TeXnician because I want this to be installation-independent.
    – Gergely
    Sep 19, 2018 at 8:24

1 Answer 1

3

I have found various descriptions of this topic, especially

Load font from package directory using fontspec

It writes:

It is seldom senseful to distribute a font automatically along with a class or packages.

I do understand LaTeX's original philosophy on installing fonts on the local machine but my setup, having a git repository and using it on various machines is another take on how things should work. I would like to write lecture slides in different directories without copying style and font files, just referring to a common latex dir in the repository tree.

I use a Google Web Font. It is considered off-topic here:

How do I include google fonts?

but people do use such fonts.

My solution is now that after invoking my style file through a \usepackage command I include my \setmainfont command into my LaTeX file:

\usepackage{../../latex/mylecture/mylecture}
\setmainfont[
  Path           = ../../latex/mylecture/ ,
  Extension      = .ttf ,
  UprightFont    = *-Regular ,
  BoldFont       = *-Bold ,
  ItalicFont     = *-Italic ,
  BoldItalicFont = *-BoldItalic
]{Alegreya}

So I need to copy this \setmainfont command only to my LaTeX files to make it work.

1
  • Just to place my comment at the right spot: The question you link to (about Google web font) is about a completely different topic, i.e. using an opentype font with pdflatex, not with Xe-/LuaLaTeX).
    – TeXnician
    Sep 19, 2018 at 8:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .