From the front lines:
I switched to LuaLaTeX in mid 2013 because I wanted TTF fonts. I am strictly using *TeX through a Makefile that has been evolving for 20 years (actually 22, if memory serves correctly).
To make the switch I ultimately converted all my framework's files to UTF8 and switched to using UTF8 only. First of course I changed the Makefile to use lualatex
instead of pdftex
.
To make it work I had to add:
\RequirePackage{ifluatex}
\ifluatex
\PassOptionsToPackage{usenames,dvipsnames}{color}
\RequirePackage{fontspec} % will load color
\RequirePackage[latin1]{luainputenc}
\else
\RequirePackage[latin1]{inputenc}
\RequirePackage{times}
\fi
and then of course the font thingy:
\ifluatex
\setmainfont[%
UprightFont = *-regular,
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = LMRoman10-Bolditalic,
SmallCapsFont = lmromancaps10-regular,
SmallCapsFeatures = {Scale=MatchUppercase},
SlantedFont = LMRomanslant12-Regular,
BoldSlantedFont = LMRomanslant10-Bold,
Renderer=Basic
]{lmroman12}
\fontspec[FakeBold=4]{Latin Modern Roman Caps}
\setsansfont[Scale=MatchUppercase,
UprightFont = {* Regular},
BoldFont = {* Bold},
ItalicFont = {* Regular Italic},
BoldItalicFont = {* Bold Italic}
]{Nimbus Sans L}
\setmonofont[Scale=MatchLowercase]{Source Code Pro Light}
\else
\usepackage[scaled=.9]{helvet}
\fi
That's it. My framework has been working ever since. There is only one thing I haven't fixed yet (too minor): With lualatex I always get a little space in the result when I do --
.
So for me it has been serving as a drop in replacement for 3 years already. Yes it can always squeak a little when UTF8 vs latin1 happens, but apart from that it just works.
A compile run with lualatex takes considerably longer than pdftex. Therefore I often used to use pdftex while writing and switch to lualatex when appearance becomes more important. However, my new Laptop has an SSD. Haven't used pdftex since ...
Edit 2016-06-07
I found some other caveat(s) I apparently came across while using LaTeX beamer.
\iflualatex
\RequirePackage{newunicodechar}
\newcommand{\DeclareUnicodeCharacter[2]{%
\begingroup\lccode`|=\string"#1\relax
\lowercase{\endgroup\newunicodechar{|}}{#2}%
}
\LoadClass[color={usenames,dvipsnames},17pt,xcolor=table]{beamer}
\else
\LoadClass[utf8,color={usenames,dvipsnames},17pt,xcolor=table]{beamer}
\fi
\RequirePackage{eurosym}
\DeclareUnicodeCharacter{20AC}{\euro}
So when using LaTeX beamer the utf8 issue is solved differently and apparently pdftex knows \DelcareUnicodeCharacter
while lualatex does not. Chances are I got the solution from this site ...
lualatex-doc
.