summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-11-13 00:21:58 +0000
committerKarl Berry <karl@freefriends.org>2010-11-13 00:21:58 +0000
commitfb507b895f0d286f263cb8e9f26f1245896a4b66 (patch)
treedddb2ebaeff730946125db4052444aed71a6a376 /Master/texmf-dist
parent182a9dd3b7f6ec99100fdc25c621c5854aed8e8f (diff)
lualatex-doc (11nov10)
git-svn-id: svn://tug.org/texlive/trunk@20419 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/lualatex-doc/Makefile41
-rw-r--r--Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.pdfbin116645 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/lualatex-doc/News14
-rw-r--r--Master/texmf-dist/doc/lualatex/lualatex-doc/README (renamed from Master/texmf-dist/doc/latex/lualatex-doc/README)0
-rw-r--r--Master/texmf-dist/doc/lualatex/lualatex-doc/lualatex-doc.pdfbin0 -> 124700 bytes
-rw-r--r--Master/texmf-dist/source/lualatex/lualatex-doc/Makefile46
-rw-r--r--Master/texmf-dist/source/lualatex/lualatex-doc/lltxdoc.cls (renamed from Master/texmf-dist/doc/latex/lualatex-doc/lltxdoc.cls)0
-rw-r--r--Master/texmf-dist/source/lualatex/lualatex-doc/lualatex-doc.tex (renamed from Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.tex)198
8 files changed, 206 insertions, 93 deletions
diff --git a/Master/texmf-dist/doc/latex/lualatex-doc/Makefile b/Master/texmf-dist/doc/latex/lualatex-doc/Makefile
deleted file mode 100644
index ef7bf31f03f..00000000000
--- a/Master/texmf-dist/doc/latex/lualatex-doc/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-NAME = lualatex-doc
-DOC = $(NAME).pdf
-SRC = $(NAME).tex
-README = README
-MKD = $(README).markdown
-
-ALLSRC = $(SRC) Makefile lltxdoc.cls
-ALLGEN = $(DOC) $(README)
-ALL = $(ALLGEN) $(ALLSRC)
-FORMAT = lualatex
-
-all: lualatex-doc.pdf
-world: all ctan
-
-.PHONY: all world
-
-%.pdf: %.tex
- latexmk -silent -pdflatex=lualatex $< >/dev/null
-
-$(README): $(MKD)
- @cp $(MKD) $(README)
-
-ctan: $(NAME).tds.zip -q
- @zip -q $(NAME).zip $(ALL) $(NAME).tds.zip
-
-$(NAME).tds.zip -q: $(ALLGEN) $(ALLSRC)
- @rm -rf texmf
- @mkdir -p texmf/doc/$(FORMAT)
- @cp $(ALLGEN) texmf/doc/$(FORMAT)
- @mkdir -p texmf/source/$(FORMAT)
- @cp $(ALLSRC) texmf/source/$(FORMAT)
- @cd texmf && zip -q -r ../$(NAME).tds.zip .
- @rm -rf texmf
-
-.PHONY: clean mrproper
-
-clean:
- @latexmk -silent -c >/dev/null
-
-mrproper: clean
- @rm -f -- $(ALLGEN) $(NAME)*.zip
diff --git a/Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.pdf b/Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.pdf
deleted file mode 100644
index 2b83c40c967..00000000000
--- a/Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/lualatex-doc/News b/Master/texmf-dist/doc/lualatex/lualatex-doc/News
new file mode 100644
index 00000000000..e0f3967b957
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/lualatex-doc/News
@@ -0,0 +1,14 @@
+2010/11/11
+ * fix a lot of typos, thanks to all readers
+ * add a paragraph about hyphenation and other matric changes, with
+ relevant information provided by Stephan Henning
+ * add a stub paragraph about languages support (suggested by Stephan)
+ * fix euenc/xunicode description thanks to Ulrike Fischer
+ * be more realistic about soul and listings thanks to Ulrike
+ * add a paragraph about luatex-unicode-letters.tex
+ * add a paragraph about modified hyphenation loading
+ * mention LuaTeX's beta status
+ * mention new luacode package, update luatextra description
+
+2010/11/08
+ * initial release
diff --git a/Master/texmf-dist/doc/latex/lualatex-doc/README b/Master/texmf-dist/doc/lualatex/lualatex-doc/README
index 8c5db2745c9..8c5db2745c9 100644
--- a/Master/texmf-dist/doc/latex/lualatex-doc/README
+++ b/Master/texmf-dist/doc/lualatex/lualatex-doc/README
diff --git a/Master/texmf-dist/doc/lualatex/lualatex-doc/lualatex-doc.pdf b/Master/texmf-dist/doc/lualatex/lualatex-doc/lualatex-doc.pdf
new file mode 100644
index 00000000000..75c18ab6bda
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/lualatex-doc/lualatex-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/lualatex/lualatex-doc/Makefile b/Master/texmf-dist/source/lualatex/lualatex-doc/Makefile
new file mode 100644
index 00000000000..7b0e90330aa
--- /dev/null
+++ b/Master/texmf-dist/source/lualatex/lualatex-doc/Makefile
@@ -0,0 +1,46 @@
+NAME = lualatex-doc
+FORMAT = lualatex
+
+DOC = $(NAME).pdf
+SRC = $(NAME).tex
+README = README
+MKD = $(README).markdown
+
+SRCFILES = $(SRC) Makefile lltxdoc.cls
+DOCFILES = $(DOC) $(README) News
+ALL = $(SRCFILES) $(DOCFILES)
+
+GENERATED = $(DOC) $(README)
+
+all: lualatex-doc.pdf
+world: all ctan
+
+.PHONY: all world
+
+%.pdf: %.tex
+ # option -pdflatex will be available in the next release
+ # of latexmk (4.19)
+ latexmk -pdf -silent -pdflatex=lualatex $< >/dev/null
+
+$(README): $(MKD)
+ @cp $(MKD) $(README)
+
+ctan: $(NAME).tds.zip
+ @zip -q $(NAME).zip $(ALL) $(NAME).tds.zip
+
+$(NAME).tds.zip -q: $(ALL)
+ @rm -rf texmf
+ @mkdir -p texmf/doc/$(FORMAT)/$(NAME)
+ @cp $(DOCFILES) texmf/doc/$(FORMAT)/$(NAME)
+ @mkdir -p texmf/source/$(FORMAT)/$(NAME)
+ @cp $(SRCFILES) texmf/source/$(FORMAT)/$(NAME)
+ @cd texmf && zip -q -r ../$(NAME).tds.zip .
+ @rm -rf texmf
+
+.PHONY: clean mrproper
+
+clean:
+ @latexmk -silent -c >/dev/null
+
+mrproper: clean
+ @rm -f -- $(GENERATED) $(NAME)*.zip
diff --git a/Master/texmf-dist/doc/latex/lualatex-doc/lltxdoc.cls b/Master/texmf-dist/source/lualatex/lualatex-doc/lltxdoc.cls
index 13c52ca6e87..13c52ca6e87 100644
--- a/Master/texmf-dist/doc/latex/lualatex-doc/lltxdoc.cls
+++ b/Master/texmf-dist/source/lualatex/lualatex-doc/lltxdoc.cls
diff --git a/Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.tex b/Master/texmf-dist/source/lualatex/lualatex-doc/lualatex-doc.tex
index e28ec7619a0..a150bfb8ffc 100644
--- a/Master/texmf-dist/doc/latex/lualatex-doc/lualatex-doc.tex
+++ b/Master/texmf-dist/source/lualatex/lualatex-doc/lualatex-doc.tex
@@ -26,7 +26,8 @@
sources, gathers information that is otherwise scattered, and adds
introductory material.
- Feedback and suggestions for improvement are most welcome.
+ Feedback and suggestions for improvement are most welcome. This document is
+ work in progress; thanks for your comprehension and patience.
\end{abstract}
\vspace{\stretch{1}}
@@ -104,20 +105,22 @@ We can now answer the title question: \lualatex is the \luatex engine with the
As you probably know, \latex is the general framework
in which documents begin with ©\documentclass©, packages are loaded with
©\usepackage©, fonts are selected in a clever way (so that you can switch to
-boldface while preserving italics), pages are build with complicated algorithm
+boldface while preserving italics), pages are build with complicated
+algorithms
including support for headers, footers, footnotes, margin notes, floating
material, etc. This mostly doesn't change with \lualatex, but new and more
powerful packages are available to make parts of the system work in a better
way.
-Let's look at \luatex now. It is the designated successor of \pdftex and
-includes of all its core features: direct generation of PDF files with support
+So, what's \luatex? Short version: the hottest \tex engine right now!
+Long version: It is the designated successor of \pdftex and
+includes all of its core features: direct generation of PDF files with support
for advanced PDF features and micro-typographic enhancements to \tex
typographic algorithms. The main new features of \luatex are:
\begin{enumerate}
\item Native support of Unicode, the modern standard for character
classification and encoding, supporting all characters in the world, from
- English to traditional Chinese through Arabic, including a lot a
+ English to traditional Chinese through Arabic, including a lot of
mathematical (or otherwise specialised) symbols.
\item Inclusion of Lua as an embedded scripting language (see
section~\ref{luaintex} for details).
@@ -141,7 +144,7 @@ provide you with more powerful commands and other enhancements.
As the previous section explains, \lualatex is mostly like \latex, with a few
differences, and more powerful packages and tools available. Here we present
-absolute minimum you should know to produce a document with \lualatex, while
+an absolute minimum you should know to produce a document with \lualatex, while
the rest of the document provides more details about the available packages.
There are only three differences:
@@ -155,7 +158,7 @@ So, you only need to get familiar with \pf{fontspec}, which is
easy: select the main (serif) font with ©\setmainfont©, the sans serif font
with ©\setsansfont© and the mono-spaced (typewriter) font with ©\setmonofont©.
The argument to these commands is the human-friendly name of the font, for
-example ©Latin modern Roman© rather than ©ec-lmr10©. You probably want to use
+example ©Latin Modern Roman© rather than ©ec-lmr10©. You probably want to use
©\defaultfontfeatures{Ligatures=TeX}© before these commands to keep the usual
\tex substitutions (such as ©---© for an em-dash) working.
@@ -168,7 +171,7 @@ or purchase from an editor and benefit from their full potential.
Now for the bad news: it is not always easy to get a list of all available
fonts. Under Windows with \texlive, the command-line tool \cmd{fc-list} lists
them all, but is not very friendly. Under Mac OS X, the \emph{Fontbook}
-application lists the fonts of your system, but not those of your
+application lists the fonts of your system, but not those of your \tex
distribution. Same with \cmd{fc-list} on Linux. More bad news: it is not easy
to access your old fonts that way. Happily, more fonts are available in modern
formats every day (well, month or year, actually, if you count only good
@@ -224,7 +227,7 @@ argument. Conversely, you can pass information from Lua to \tex with
©tex.sprint©.\footnote{The name probably means ``string print'' as opposed to
``run very fast for a short period of time.''} For example,
\begin{Verbatim}
- the standard approximation $\pi = \direclua{tex.sprint(math.pi)}$
+ the standard approximation $\pi = \directlua{tex.sprint(math.pi)}$
\end{Verbatim}
prints ``the standard approximation $\pi = \directlua{tex.sprint(math.pi)}$''
in your document. See how easy it is to mix \tex and Lua?
@@ -233,9 +236,9 @@ Actually, there are a few gotchas. Let's look at the Lua to \tex way first,
it's the simplest (since it's more Lua than \tex). If you look at the \luatex
manual, you'll see there is another function with a simpler name, ©tex.print©,
to pass information this way. It works by virtually inserting a full line into
-you \tex source, whose contents are its argument. In case you didn't know,
+your \tex source, whose contents are its argument. In case you didn't know,
\tex does all kinds of nasty\footnote{Okay, these are usually nice and helpful
- actions, but it this case they are most probably unexpected so I call them
+ actions, but in this case they are most probably unexpected so I call them
nasty.} things with full lines of the source, like
ignoring spaces at the beginning and end of line and appending an end-of-line
character. Most of the time, you don't want this to happen, so I recommend
@@ -252,7 +255,7 @@ you don't know about catcodes, just skip this paragraph.\footnote{Erf, too
\medskip
-Let's look at ©\direclua© now. To get an idea about how it works, imagine that
+Let's look at ©\directlua© now. To get an idea about how it works, imagine that
it's a ©\write© command, but it writes only to a virtual file and immediately
arranges for this file to be fed to the Lua interpreter. On the Lua end, the
consequence is that each argument of a ©\directlua© command has its own scope:
@@ -263,7 +266,7 @@ Now, the major gotcha is that before being fed to the Lua interpreter, the
argument is first read and tokenised by \tex, then fully expanded and turned
back into a plain string. Being read by \tex has several consequences. One of
them is that end of lines are turned into spaces, so the Lua interpreter sees
-only one (long) line of input. Since Lua is a free-from language, it doesn't
+only one (long) line of input. Since Lua is a free-form language, it doesn't
usually matter, but it does if you use comments:
\begin{Verbatim}
\directlua{a_function()
@@ -281,7 +284,7 @@ correct version of the previous example.
% a comment
another_function()}
\end{Verbatim}
-It is also worth noticing that, since since the argument basically is inside a
+It is also worth noticing that, since the argument basically is inside a
©\write©, it's in expansion-only context. If you don't know what it means, let
me say that expansion issues are mostly what makes \tex programming so
difficult to avoid expanding further on that matter.
@@ -292,7 +295,7 @@ I'm sorry if the last three paragraphs were a bit \tex{}nical in nature but
I thought you had to know. To reward you for staying with me, here is a
debugging trick. Put the following code near the beginning of your document:
\begin{Verbatim}
- \newrite\luadebug
+ \newwrite\luadebug
\immediate\openout\luadebug luadebug.lua
\AtEndDocument{\immediate\closeout\luadebug}
\newcommand\directluadebug{\immediate\write\luadebug}
@@ -302,19 +305,22 @@ Then, when you have a hard time understanding why a particular call to
with ©\directluadebug©, compile as usual and look in the file
\file{luadebug.lua} produced what the Lua interpreter actually read.
-For everything but trivial pieces of Lua code, it is much wiser to use an
-external file containing only Lua code defining functions, then load it and
-use its functions. For example:
+The \pk{luacode} package provides commands and environments that help to
+varying degrees with some of these problems. Hoewever, for everything but
+trivial pieces of Lua code, it is wiser to use an external file containing
+only Lua code defining functions, then load it and use its functions. For
+example:
\begin{Verbatim}
\directlua{dofile("my-lua-functions.lua")}
\newcommand*{\greatmacro}[2]{%
\directlua{my_great_function("\luatexluaescapestring{#1}", #2)}}
\end{Verbatim}
-The example assumes that ©my_great_function© takes a string and a number as
-arguments. Notice that we carefully use the ©\luatexluaescapestring© primitives
-on the string argument to escape any backslash or double-quote it might contain
-and which would confuse the Lua parser.\footnote{If you ever used SQL
- then the concept of escaping strings is hopefully not new to you.}
+The example assumes that ©my_great_function© is defined in
+©my-lua-functions.lua© and takes a string and a number as arguments. Notice
+that we carefully use the ©\luatexluaescapestring© primitives on the string
+argument to escape any backslash or double-quote it might contain and which
+would confuse the Lua parser.\footnote{If you ever used SQL then the concept
+ of escaping strings is hopefully not new to you.}
\medskip
@@ -335,6 +341,25 @@ have been prefixed with ©\luatex© unless they already start with it, so
©\luaescapestring© becomes ©\luatexluaescapetring© while ©\luatexversion©
remains ©\luatexversion©. The rationale is detailed in section~\ref{formats}.
+\medskip
+
+Oh, and by the way, did I mention that \luatex is in beta and version 1.0 is
+expected in late 2012? You can learn more on the roadmap page of
+\href{http://luatex.org/}{the \luatex site}. Stable betas are released
+regularly and are included in \texlive since 2008 and \miktex since 2.9.
+
+Not surprisingly, support for \luatex in \latex is shiny new, which means it
+may be full of (shiny) bugs, and things may change at any point. You might
+want to keep your \tex distribution very up-to-date\footnote{For \texlive,
+ consider using the complementary
+ \href{http://tlcontrib.metatex.org/} {tlcontrib} repository.} and also avoid
+using \lualatex for critical documents at least for some time.
+
+As a general rule, this guide documents things as they are at the time it is
+written or updated, without keeping track of changes. Hopefully, you'll update
+your distribution as a whole so that you always get matching versions of this
+guide and the packages, formats and engine it describes.
+
\section{Essential packages and practices}\label{essential}
@@ -433,12 +458,13 @@ may need to know about them.
\pkdesc{luaotfload}{\ER \& \KH}{\luatex}{\latex, Plain}{%
macros/luatex/generic/luaotfload/}[https://github.com/khaledhosny/luaotfload]
-Low-level OpenType font loading. Basically, it uses the ©fontloader© Lua
-library and the appropriate callbacks to implement a syntax for the ©\font©
-primitive very similar to that of \xetex and implement the corresponding font
-features. It also handles a font database for transparent access to fonts from
-the system and the \tex distribution either by family name or by file name, as
-well as a font cache for faster loading.
+Low-level OpenType font loading, adapted from the generic subset of \context.
+Basically, it uses the ©fontloader© Lua library and the appropriate callbacks
+to implement a syntax for the ©\font© primitive very similar to that of \xetex
+and implement the corresponding font features. It also handles a font database
+for transparent access to fonts from the system and the \tex distribution
+either by family name or by file name, as well as a font cache for faster
+loading.
\pkdesc{euenc}{\WSPR, \ER \& \KH}{\xetex, \luatex}{\latex}{%
macros/latex/contrib/euenc/}[https://github.com/wspr/euenc]
@@ -447,19 +473,23 @@ Currently, \xelatex is using ©EU1© and \luatex is using ©EU2©. Includes
definitions (\file{fd} files) for Latin Modern, the default font loaded by
\pk{fontspec}.
-Also includes a stripped version of \pf{xunicode} so that the usual control
-sequences for non-ASCII characters (such as ©\'e©) do the right thing.
-
\section{Other packages}\label{other}
+Note that the packages are not listed in any particular order.
+
\subsection{User-level}
\pkdesc{luatextra}{\ER \& \MPG}{\luatex}{\latex}{%
- macros/luatex/generic/luatextra/}[https://github.com/mpg/luatextra]
-Loads various packages such as \pk{luatexbase}, \pk{luaotfload}, \pf{metalogo}
-(providing the ©\LuaTeX© and ©\LuaLaTeX© commands) and adds a few goodies,
-such as a ©luacode© environment.
+ macros/luatex/latex/luatextra/}[https://github.com/mpg/luatextra]
+Loads usual packages, currently \pk{fontspec}, \pk{luacode}, \pf{metalogo}
+(commands for logos, including ©\LuaTeX© and ©\LuaLaTeX©), \pk{luatexbase},
+\pk{lualibs}, \pf{fixltx2e} (fixes and enhancements for the \latex core).
+
+\pkdesc{luacode}{\MPG}{\luatex}{\latex}{%
+ macros/luatex/latex/luacode/}[https://github.com/mpg/luacode]
+Provides commands and macros that help including Lua code in a \tex source,
+especially concerning special characters.
\pkdesc{luainputenc}{\ER \& \MPG}{\luatex, \xetex, \pdftex}{\latex}{%
macros/luatex/latex/luainputenc/}[https://github.com/mpg/luainputenc]
@@ -509,12 +539,12 @@ used in command-line Lua scripts such as \cmd{mkluatexfontdb} from
\section{The \cmd{luatex} and \cmd{lualatex} formats}\label{formats}
This section is for developers and curious users only; normal users can safely
-skip it. The following informations apply to \texlive 2010, and most likely to
+skip it. The following information apply to \texlive 2010, and most likely to
\miktex 2.9 too, though I didn't actually check. Earlier versions of \texlive
had slightly different and less complete arrangements.
\para{Primitive names}
-As mentioned in section~\ref{things}, the name of the \luatex-specific
+As mentioned in section~\ref{things}, the names of the \luatex-specific
primitives are not the same in the \cmd{lualatex} format as in the \luatex
manual. In the \cmd{luatex} format (that is, \luatex with the Plain format),
primitives are available with their natural name, but also with the prefixed
@@ -593,6 +623,29 @@ For more details, see
on the \luatex mailing lists, and \file{lualatexquotejobname.tex} for the
implementation of the workaround.
+\para{babel}
+\luatex offers dynamic loading for hyphenation patterns. There is currently no
+support for this in \pf{babel} but some files have been modified to provide
+semi-dynamic loading, to achieve a better loading time of the format. This is
+only an implementation change, nothing should be visible at the user level.
+A modified pattern loading scheme is used for Plain-based formats too.
+
+Documentation and implementation details are included in
+\file{luatex-hyphen.pdf}. The sources are part of the
+\href{http://tug.org/tex-hyphen/}{texhyphen project}.
+
+\para{codes}
+The engine itself does not set ©\catcode©s, ©\lccode©s, etc. for non-ASCII
+characters. Correct ©\lccode©s in particular are essential for hyphenation to
+work. Formats for \luatex now include \file{luatex-unicode-letters.tex}, a
+modified version of \file{unicode-letters.tex} from the \xetex distribution,
+that takes care of settings these values in accordance with the Unicode
+standard.
+
+This was added after \texlive 2010 went out, so you are strongly advised to
+update your installation if you want to enjoy proper hyphenation for non-ASCII
+text.
+
\section{Things that just work, partially work, or don't work (yet)}
\label{workornot}
@@ -603,15 +656,14 @@ implementation of the workaround.
Conventional \latex offers some level of support for UTF-8 in input files.
However, at a low level, non-ASCII characters are not atomic in this case:
they consist of several elementary pieces (known as \emph{tokens} to
-\tex{}nicians). Hence, packages that scan text character by character
-often have problems with UTF-8 in conventional \latex. Such packages include:
-\pf{fancyvrb}, \pf{listings}, \pf{soul} and probably others.
+\tex{}nicians). Hence, some packages that scan text character by character or
+do other atomic operations on characters (such as changing their catcodes)
+often have problems with UTF-8 in conventional \latex. For example, you can't
+use any non-ASCII character for short verbatim with \pf{fancyvrb}, etc.
-The good new is, with \lualatex, these packages start working on arbitrary
-Unicode characters without even being modified. (Disclaimer: I didn't run
-thorough tests, but I'm pretty sure they do.) You don't need to use tricky
-wrapper packages such as \pf{listingsutf8} or \pf{soulutf8} (they won't work
-with \luatex, anyway).
+The good news is, with \lualatex, some of these package's features start
+working on arbitrary Unicode characters without needing to modify the package.
+The bad news is, this isn't always true. Se the next section for details.
\subsection{Partially working}\label{partial}
@@ -619,7 +671,7 @@ with \luatex, anyway).
Package \pf{microtype} has limited support for \luatex: more precisely, as of
version 2.4 2010/01/10, protrusion and expansion are available and activated
by default in PDF mode, but kerning, spacing and tracking are not supported
-(sse table~1 in section~3.1 of \file{microtype.pdf}).
+(see table~1 in section~3.1 of \file{microtype.pdf}).
On the other hand, \pk{luaotfload}, loaded by \pk{fontspec}, supports a lot of
microtypographic features. So the only problem is the lack of a unified
@@ -629,9 +681,46 @@ interface.
Package \pf{xunicode}'s main feature is to ensure that the usual control
sequences for non-ASCII characters (such as ©\'e©) do the right thing in a
Unicode context. It could \emph{probably} work with \luatex, but explicitly
-checks for \xetex only. Since \pk{euenc}, loaded by \pk{fontspec}, includes a
-modified version of this package, you usually don't need \pf{xunicode} so this
-is not a problem.
+checks for \xetex only. However, \pk{fontspec} uses a trick to load it anyway.
+So, you can't load it explicitly, but you don't need to, since \pk{fontspec}
+already took care of it.
+
+\para{encodings}
+As mentioned in the above section, a few things that were problematic with
+UTF-8 on conventional \latex spontaneously works, but not always. For example,
+with the \pf{listings} package on \lualatex, you may use only characters below
+256 (that is, characters from the Latin-1 set), inside your listings (but of
+course the full Unicode range is still available in the rest of your
+document).
+
+\para{metrics}
+This item isn't exactly about working or not working, but rather about not
+working in exactly the same way as \pdftex or \xetex: you may observe minor
+differences in the layout and hyphenation of your text.
+
+They may be due variations between two versions of the same font used by the
+various engines, adjustments made to the hyphenation, ligaturing or kerning
+algorithms (or example, the first word of a paragraph, as well as words
+containing different fonts, can now be hyphenated), or differences in the
+hyphenation patterns used (patterns used by \pdftex are basically frozen, but
+\luatex and \xetex use newer version for some languages) for this language.
+
+If you ever observe a major difference between pdf\latex and \lualatex with
+the same fonts, it is not at all unlikely that a bug in \luatex\footnote{For
+ example, \luatex 0.60 had a bug that prevented any hyphenation after a
+ \code{-{}-{}-} ligature until the end of the paragraph.} or in the font is
+involved. As usual, make sure your distribution is up-to-date before reporting
+such a problem.
+
+\par{babel}
+Short version: working mostly without problems for Latin languages. For other
+languages, your mileage may vary. A more modern, but less complete, package
+for multilingual support, \pf{polyglossia} is available for \xelatex but is
+not ported to \lualatex yet.
+
+Long version: erf, actually I don't know the details yet. I'll try to gather
+more information and update this paragraph. Please let me know if you have
+experience or knowledge to share in this domain.
\subsection{Not working (yet)}\label{notworking}
@@ -643,10 +732,15 @@ anyway. However, not everything is already ported to the shiny new world of
Unicode, so you may have a more limited (or just different) set of choices
available for some time (this is especially true for fonts).
+\para{soul} The \pf{soul} package uses a clever trick with a monospaced font
+to count characters. However, due to differences in font handling (and maybe a
+bug in \luatex), this doesn't work yet with character above 256 (that is,
+outside the Latin-1 set).
+
\para{spaces} Spaces in file names are not really well supported in the \tex
world in general. This doesn't really get better with \luatex. Also, due to
-tricky reasons, things my be worse if you have spaces in the name of your main
-\tex file \emph{and} don't invoke \luatex in the usual way. If you do you
+tricky reasons, things may be worse if you have spaces in the name of your main
+\tex file \emph{and} don't invoke \luatex in the usual way. If you do
invoke it in the usual way, everything should work, and I won't tell you what
the unusual invocation looks like. Otherwise, read the point about
\pararef{jobname} in section~\ref{formats} for a workaround and technical