{expl3} is the programming "language" written for the LaTeX3 project. It is a library of common functions for storing and manipulating data and performing higher-level logical tasks than commonly provided for in TeX and LaTeX.

learn more… | top users | synonyms

28
votes
1answer
322 views

LaTeX3 — What is the difference between the modules l3seq and l3clist?

LaTeX3 provides the two modules seq and clist. What is the difference? The module clist is introduced by Comma lists contain ordered data where items can be added to the left or right end of ...
10
votes
3answers
147 views

What is the difference between \cs_if_exist:NTF and \cs_if_free:NTF?

I don't understand what difference of existance and being free means. Consider this example: \documentclass{article} \usepackage{expl3} \begin{document} \ExplSyntaxOn \cs_new:Npn \my_cs: {} ...
7
votes
2answers
320 views

Why does this protection not work?

The answers to this question explain in detail what protection is so I'm not wondering about that. My question is why a certain command definition with expl3 does not give a protected command. ...
16
votes
4answers
695 views

Is this branching code I wrote a bit obfuscated?

I've been away for a while and I forget if this sort of question is appropriate, but here goes. Recently I wrote some code (in expl3 but I hope it's clear enough) and in hindsight I wonder on its ...
0
votes
1answer
975 views

TeX Live manager 2011 database corruption?

TeX Live 2011, up to date, on Windows XP. Example: \listfiles \documentclass{article} \usepackage{fontspec} \begin{document} A \end{document} LuaTeX first error: LaTeX Warning: You have requested, ...
3
votes
3answers
8k views

TeX Live (and MiKTeX) + Windows 7 + Texmaker problem with expl3.sty

I recently updated MiKTeX and I can't compile anymore xelatex through Texmaker simple multilingual tex e.g. \documentclass{article} \usepackage{xltxtra} \usepackage{xgreek} ...
19
votes
2answers
458 views

Usage of \lastbox

As part of our LaTeX3 work, we provide a consistent interface to TeX programming through the expl3 package. We've recently been discussing the TeX primitive \lastbox, which is used to inspect or ...
10
votes
2answers
326 views

How do I pass an expanded optional argument using expl3/xparse?

I have a command defined using xparse syntax: \DeclareDocumentCommand \foo { O{} m } {} Inside some other command (say, \bar), I want to call this command. The calling command (\bar) has to ...
28
votes
2answers
792 views

Moving to LaTeX3 for package authors

I would like to write a package using as much of LaTeX3 stuff as possible (in particular expl3, xparse and xtemplate). What should I read to learn these? In particular: I know that there are good ...
16
votes
2answers
766 views

Where can I find the LaTeX3 manual?

Few month ago I saw a big pdf-manual of all LaTeX3-packages and the new syntax. I think it was bigger than 300 pages. I can't find it on the web. Does anyone have a link?
7
votes
1answer
2k views

Latest MiKTeX-Update broke XeLaTeX with fontspec

I updated MiKTeX a few days ago and since then I cannot compile XeLaTeX with fontspec anymore. \documentclass{article} \usepackage{fontspec} \begin{document} Hello world! \end{document} When I try ...
4
votes
1answer
455 views

LaTeX3: Defining key to set boolean variable

I want to define a key, which, if set, sets a boolean variable to false. The documentation is not clear on that point. It states (source3.pdf, sect. 87, p. 134): Defines <key> to set ...
4
votes
1answer
268 views

LaTeX3: expansion of argument to function

I would like to define functions which extract the PDF object number from a PDF object reference, such as 12 from 12 0 R. I defined two versions of such a function, a low level one and a high level ...
4
votes
2answers
5k views

What's the deal with Tex Live and expl3.sty?

I've installed Tex Live 2010 on a mac, and when trying to use xelatex, I get the error: !Latex Error: File `expl3.sty' not found What is this package, and how can I get it installed on tex live? ...
10
votes
1answer
654 views

How can I define NaN in LaTeX3

LaTeX3 l3fp offers a way to check if a variable has a an infinite value. The following code defines a number and then sets its value to π/2. It then calculates tan(π/2) to get a large result. ...
8
votes
1answer
454 views

How do I use the sin function in LaTeX3

I am exploring some of the LaTeX3 routines and syntax. How do I get to use functions such as sin etc. I get an error with the sin function in the following (please uncomment sin function to view the ...
6
votes
3answers
4k views

What LaTeX Lab packages use expl3?

I am trying to migrate documents to http://latexlab.org, but they won't compile because they require expl3.sty. Yesterday I started by uploading all of the expl3 sty files but then latex demanded even ...
2
votes
2answers
208 views

How can I make RHEL server libraries compatible with tex/Rnw documents created on my Ubuntu desktop, re: pgf, tikz, expl3

I want to compile tex and Sweave documents written on a server that is redhat, but I get errors linked to pgf/tikz. The documents compile fine on my I have already used wget to download the expl3 ...
17
votes
1answer
420 views

What are expl3 quarks? When, where, why and how should I use them?

I feel particularly bombarded by sub-atomic particles right now (and it's mostly Will's fault :)). First, in Will's answer to this question today, he referred to expl3's \prg_case_str:nnn command. ...
11
votes
1answer
857 views

A LaTeX3 macro to typeset chemical compounds?

Out of curiosity I wonder how would a macro coded in expl3 that does the basics of mhchem (as in section basics in mhchem manual) looks like? I have found examples in TeX and LuaTeX in ...
19
votes
7answers
1k views

Pros and cons of the LaTeX3 syntax?

The programming language introduced by expl3 in LaTeX3 is a bit unusual compared to other TeX macro languages in that it uses both _ and : for function names. Could someone provide some technical ...
15
votes
3answers
631 views

Will LaTeX3 have proper support for hooks? Does LuaTeX?

Tex has powerful support for extensions triggered by events happen in generating output, by running one of six token lists appropriately: \everycr \everydisplay \everyhbox \everymath \everypar ...