{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

6
votes
1answer
193 views

Apply command list to argument correctly

I have a clist filled with values I want to use as commands and apply them all successively e.g. \cmda{\cmdb{\cmdc{arg}}} to the argument of the \apply function. I added an example but it doesn't ...
5
votes
2answers
231 views

regexp capturing issue

The following regexp code gives the result \documentclass[11pt]{book} % use larger type; default would be 10pt \usepackage{pgffor} \usepackage{l3regex,xparse} \usepackage{etextools} ...
4
votes
2answers
403 views

Use the \SplitArgument function to pass an array of token-separated values as a single argument

In my work with linear algebra and matrices I have been quite restricted by LaTeX2 and its maximum of 9 arguments that may be passed to a \newcommand. While LaTeX3 imposes that same limitation for the ...
6
votes
2answers
386 views

formatting real numbers using LaTeX3

I want to format real numbers, which are the result of lengthy calculations using the l3fp package, for output as values to keys in PDF objects. The formatted numbers should have at most 9 figures ...
2
votes
0answers
200 views

Nesting of case-selecting functions [closed]

Can case-selecting functions like \prg_case_int or \prg_case_str be nested? If so I will provide some examples of very weird results I observe with nesting. REVISION: I messed up the syntax ...
117
votes
5answers
10k views

LaTeX3 versus pure Lua

Reading this site for the last nearly two years I've learned a lot about LaTeX3 (which I had previously understood to be a defunct pipe dream) and LuaTeX (of which I was previously totally unaware). ...
19
votes
1answer
340 views

Vim Configuration for expl3

I've started with programming in expl3 and vim doesn't realise that underscores are now part of LaTeX identifiers. I'd be much obliged if somebody could explain how to best configure vim so it has ...
29
votes
1answer
360 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
158 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
349 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
761 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
1k 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, ...
4
votes
3answers
9k 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} ...
20
votes
2answers
503 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
360 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 ...
30
votes
2answers
867 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
840 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
478 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
279 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
735 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
488 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
215 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
436 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. ...
12
votes
1answer
927 views

A LaTeX 3 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 the mhchem manual) looks like? I have found examples in TeX and LuaTeX in ...
20
votes
7answers
2k 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 ...
16
votes
3answers
644 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 ...