LuaTeX is an extended version of pdfTeX using Lua as an embedded scripting language. The LuaTeX project's main objective is to provide an open and configurable variant of TeX while at the same time offering downward compatibility. LuaTeX uses Unicode (as UTF-8) as its default input encoding, and is able to use modern (OpenType) fonts (for both text and mathematics). It should be noted that LuaTeX is still under development; its specification has been declared stable, but absolute stability may not in practice be assumed.
lua-mode provides support for editing Lua, including automatic indentation, syntactical font-locking, running interactive shell, Flymake checks with luacheck, interacting with `hs-minor-mode and online documentation lookup. The following variables are available for customization (see more via `M-x customize-group lua`): - Var `lua-indent-level': indentation offset in spaces - Var `lua-indent-string-contents': set to `t` if you like to have contents of multiline strings to be indented like comments - Var `lua-indent-nested-block-content-align': set to `nil to stop aligning the content of nested blocks with the open parenthesis - Var `lua-indent-close-paren-align': set to `t to align close parenthesis with the open parenthesis, rather than with the beginning of the line - Var `lua-mode-hook': list of functions to execute when lua-mode is initialized - Var `lua-documentation-url': base URL for documentation lookup - Var `lua-documentation-function': function used to show documentation (`eww` is a viable alternative for Emacs 25) These are variables/commands that operate on the Lua process: - Var `lua-default-application': command to start the Lua process (REPL) - Var `lua-default-command-switches': arguments to pass to the Lua process on startup (make sure `-i` is there if you expect working with Lua shell interactively) - Cmd `lua-start-process': start new REPL process, usually happens automatically - Cmd `lua-kill-process': kill current REPL process These are variables/commands for interaction with the Lua process: - Cmd `lua-show-process-buffer': switch to REPL buffer - Cmd `lua-hide-process-buffer': hide window showing REPL buffer - Var `lua-always-show': show REPL buffer after sending something - Cmd `lua-send-buffer': send whole buffer - Cmd `lua-send-current-line': send current line - Cmd `lua-send-defun': send current top-level function - Cmd `lua-send-region': send active region - Cmd `lua-restart-with-whole-file': restart REPL and send whole buffer To enable on-the-fly linting, make sure you have the luacheck program installed (available from luarocks) and activate `flymake-mode'. See "M-x apropos-command ^lua-" for a list of commands. See "M-x customize-group lua" for a list of customizable variables.
This package provides Lua module for nonblocking system shell command executions.
This package provides a Lua grammar for the Tree-sitter library.
The package attempts to emulate the XeTeX bidi package, in the context of LuaTeX.
Libmpack is a small binary serialization and RPC library that implements both the msgpack and msgpack-rpc specifications.
Libmpack is a small binary serialization and RPC library that implements both the msgpack and msgpack-rpc specifications.
This Luanti mod adds new ore types to the game (mithril, silver) as well as swords and tools made of different materials. It also adds copper rails.
This package provides a Lua module that can parse key-value options like the TeX packages keyval, kvsetkeys, kvoptions, xkeyval, pgfkeys, etc.
This Luanti mod provides an API for registering throwable things and throwing things like arrows. However, this mod does not provide an actual arrow and bow, but luanti-throwing-arrows does.
Lualibs is a collection of Lua modules useful for general programming. The bundle is based on lua modules shipped with ConTeXt, and made available in this bundle for use independent of ConTeXt.
The package is an update of the author's sseq package, for use with LuaLaTeX. This version uses less memory, and operates faster than the original; it also offers several enhancements.
The Ethereal Luanti mod uses the v7 map generator to add many new biomes to the world. It adds new trees, plants, food items, tweaks and some special items, intending to make an interesting adventure.
This package provides an extension of the Luanti game that lets you build your island in the sky. Every 30 seconds you will receive a random block or item from the oneblock to expand the island!
This package provides a LaTeX interface to create, modify, and use the Lua data structure tables. Lua tables can be declared with the help of luakeys, and this package provides facilities to set, get, check, iterate, apply, etc., to the table.
This small package provides five commands to make HTTP requests using Lua and LuaTeX. Functionalities include API calls, fetch RSS feeds and the possibility to include images using a link. These commands run during the compilation of the PDF-Document and may require user interaction.
LuaRocks is the package manager for the Lua programming language.
It allows you to install Lua modules as self-contained packages called rocks, which also contain version dependency information. This information can be used both during installation, so that when one rock is requested all rocks it depends on are installed as well, and also optionally at run time, so that when a module is required, the correct version is loaded. LuaRocks supports both local and remote repositories, and multiple local rocks trees.
The Lua-UCA library provides basic support for Unicode Collation Algorithm in Lua. It can be used to sort arrays of strings according to rules of particular languages. It can be used in other Lua projects that need to sort text in a language dependent way, like indexing processors, bibliographic generators, etc.
Executing Lua code from within TeX with directlua can sometimes be tricky: there is no easy way to use the percent character, counting backslashes may be hard, and Lua comments don't work the way you expect. The package provides the \luaexec command and the luacode environments to help with these problems.
Mesecons is a mod for Luanti implementing various items related to digital circuitry, such as wires, buttons, lights and programmable controllers. Among other things, there are also pistons, solar panels, pressure plates and note blocks.
Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics.
This package uses Lua to plot graphs of real-valued functions of a real variable in LaTeX. It furthermore makes use of the MetaPost system as well as the luamplib and luacode packages. It provides an easy way for plotting graphs of standard mathematical functions. It also works inside LaTeX floating environments, like tables and figures.
The package computes and draws 2D Delaunay triangulation. The algorithm is written with Lua, and depending upon the choice of the engine, the drawing is done by MetaPost (with luamplib) or by TikZ. The Delaunay triangulation algorithm is the Bowyer and Watson algorithm. Several macros are provided to draw the global mesh, the set of points, or a particular step of the algorithm.
This package provides a comfort graphics library to work with graphic objects as immutables in the Lua programming language. It writes code for the TikZ package. It overloads operators, so you can use standard math expressions to work with graphical objects. There probably isn't anything that couldn't been done just as well with pgfmath and TikZ directly. However, if a graphic gets more complicated, Lua may just be easier to work with as base.
In some languages, like Czech or Polish, there should be no single letter words at the end of a line, according to typographical norms. This package handles such situations using LuaTeX's callback mechanism. In doing this, the package can detect languages used in the text and insert spaces only in parts of the document where languages requiring this feature are used. Another feature of this package is the inclusion of non-breakable space after initials (like in personal names), after or before academic degrees, and between numbers and units. The package supports both plain LuaTeX and LuaLaTeX.