New answers tagged


LuaLaTeX embeds the Lua scripting language, which provides a powerful and flexible set of string manipulation functions. Via the \directlua macro and the environments provided by the luacode package, LuaLaTeX provides easy access to these string functions. By using LuaLaTeX, it's straightforward to roll one's own text and macro substitution routines. Per ...


It's not really possible for glossaries to provide a warning for all those nested levels of dependency, but adding hyperref does give a warning if an entry has been used but doesn't appear in the glossary. Example: \documentclass{article} \usepackage[hidelinks]{hyperref} \usepackage{glossaries} \makeglossaries \newglossaryentry{animal}{% name ...


Replacing if [[ -f '$1.tex' ]] with if [[ -f "$1.tex" ]] fixed the error. The double quotes were needed to expand the variable.


If you use pdflatex --halt-on-error then it will stop at the first error. One way of introducing an error is to use an illegal character. The only one by default is 0 (ASCII NULL). Normally you can enter that as ^^@ but if you want it to work even in verbatim you need an actual byte 0 in the input stream.


\documentclass{article} \usepackage{amsmath,amsfonts} %[1] to remove spurious {} \newcommand{\mNat}[1]{\mathbb{N}} \newcommand{\mPlus}[1]{+} \newcommand{\mQuot}[1]{\mathbb{Q}} \newcommand{\mLt}[1]{<} \newcommand{\mAnd}[1]{\land} \newcommand{\mImpl}[1]{\Rightarrow} \newcommand\mForall[2]{\forall #1:#2} \begin{document} \[\mForall{a b c : \mNat{} ...


Here's an expl3 version; the first argument to \mForall is split at the colon and the first part is processed as another sequence, adding \, between each item. The second part and the second argument are simply typeset separated by colons. \documentclass{article} \usepackage{amsmath,amssymb} \usepackage{xparse} \ExplSyntaxOn ...

Top 50 recent answers are included