{parsing} is the process of analysing a string of symbols, either in natural or computer language.
35
votes
4answers
2k views
Is there a BNF grammar of the TeX language?
I'm looking for a BNF grammar of the TeX language, does it exist?
17
votes
3answers
269 views
What are the effects of an empty group, {}?
In order to have a syntactic space after a no-argument command, one is taught to delimit the command token with an empty group ({}), like this: \somecommand{} more LaTeX material.
However an empty ...
16
votes
5answers
415 views
Applying an operation only to capitals
I'd like to apply a function to capitals only so that:
\emphcaps{YaWeH}
Outputs like:
\emph{Y}a\emph{W}e\emph{H}
Preferably without using too many packages (I already use memoir).
NOTES: I use ...
16
votes
4answers
1k views
Syntax of TeX/LaTeX
{} and [] do some kind of grouping, and comma seems to be special as well. Being a programmer I find it frustrating to use Latex on incantation-only basis. I would like to know how does it exactly ...
13
votes
4answers
531 views
Drawing Young tabloids
I would like LaTeX to produce output like the following
(without the 2 a so called Young tabloid), ideally by writing
\ytabloidshort{123,56}
(using one character per cell, ideally allowing ...
12
votes
5answers
733 views
Parse comma-separated list of command names with spaces
Problem
This question is related to How can I specify a long list of math operators? – but with a twist: I want to allow spaces in in the comma-separated list, like so:
\newacronyms{acm, ams, cpu, ...
12
votes
2answers
661 views
Parsing files through LuaTeX
This question has two parts:
How would one generally parse a file with LuaTeX, assuming the file only holds data
that is delimited either by spaces, commas or semicolons.
How would you parse the ...
11
votes
5answers
863 views
How do I write a macro having comma-separated and variable number of arguments?
I want to write a macro in LaTeX2e that can pass \textcolor, which is embedded in another macro, the values of the colour model gray, rgb, or cmyk. The number of arguments specified implies the colour ...
11
votes
1answer
120 views
What is considered a token for non-standard input encodings?
When I use an input encoding to (La)TeX that allows me to directly input characters such as é and ä (such as by declaring \usepackage[utf8]{inputenc}), how is a token defined? Specifically,
is it ...
10
votes
5answers
186 views
Parsing hexadecimal numbers to binary and iterating over bits
I'm currently working on a software for an graphic display, so I recreated it in TikZ for documentation purposes:
I currently use this to set individual pixels on the display:
\setpixel{x}{y}
...
10
votes
2answers
149 views
The different meanings of LaTeX's \stop command
we know that
\stop
will cause LaTeX to stop parsing and output what it has processed up to this command.
But then I discovered another way to use it, as demonstrated in this minimum working ...
10
votes
1answer
307 views
Extract the logically first slide in a Beamer overlay specification?
When writing Beamer slides for a talk, I find that I often want to have some text (usually math) visible on a group of slides and be alerted on only the first slide in the group. For example, I can ...
9
votes
5answers
252 views
Parse dotted string, extracting last part
I want a macro that will separate a string like "1.2.3" into two parts: the part until the last dot (call that the context) and the last number. This seems a pretty basic application of a helper ...
9
votes
3answers
240 views
Implementing car and cdr in TeX
I've been trying to implement a macro that reads and transforms its argument into a different form...but I'm having quite a bit of trouble finding or creating even the most basic parsing tools.
Case ...
9
votes
1answer
59 views
Scan argument for parentheses
I'd like to define a macro which expands to (#1) if #1 does not contain any parentheses, but expands to \big(#1\big) if it does.
I'd choose simplicity over generality: if a solution works in the most ...
8
votes
1answer
3k views
pgfplot: Datafile format for datetime field
I have a datafile (which I may manipulate to any format), it contains a date-time stamp currently in the form "year-month-day hour:min" and a single variable for each recorded time.
When I attempt to ...
8
votes
2answers
62 views
Parsing various types of page ranges with a single command
Having to treat a considerable amount of page ranges, I'd like to have a robust and simple command that would parse and print them correctly.
The most simple case is e.g.
264,15-26
which ...
8
votes
2answers
497 views
\def taking next word as argument?
This question is a variant of my previous question requesting a macro that takes the rest of the line as argument. I would like to write a macro that would take the next word as argument, where word ...
8
votes
2answers
2k views
What parsers for (La)TeX mathematics exist outside of the TeX engines?
Inspired by the author's motivation for asking Is there a BNF grammar of tex language.
Are there any well done libraries that can parse some subset of TeX mathematics independently of the TeX engine? ...
8
votes
1answer
135 views
Replacing Leading Minus Signs in Environment
In this question concerning negative signs and the alignment of entries in matrix environments, Heiko Oberdiek gave a great answer in which he uses a user-defined command called \matminus instead of ...
7
votes
4answers
285 views
Read command with varying input arguments
Out of curiosity I'd like to define a LaTeX command that looks like:
\newcommand{\trigger}{out1,out2,...,outn}
with a rather strange function (at least, I couldn't find anything like this ...
7
votes
4answers
141 views
How to break a line after the n-th word?
Suppose i have a raw text defined as:
\newcommand{\rawtext}{this is some raw text with many words in it}
How to break this line after a given word or position? Of course, i only have access to ...
7
votes
2answers
278 views
Formatting crystallographic indices
I would like to make a command in LaTeX that can be used like this:
\zoneaxis{1 2 -3}
\zoneaxis{2 -1 -1 10}
and would produce this:
$[1\,2\,\overline{3}]$
$[2\,\overline{1}\,\overline{1}\,10]$
...
6
votes
4answers
402 views
Parse a string into tokens of numbers and not numbers
I have a string that I want to parse into to numbers and non-numbers.
For my purposes:
A Number can EITHER be any sequential string of digits OR sequential string of digits with a . followed by ...
6
votes
4answers
299 views
List parsing with special input/optional arguments
I’d like to parse a list where the elements can be given as either [<pre>]<text>[<post>], where <pre> and <post> are optional, or (<special text>). I found a ...
6
votes
2answers
787 views
Iterate over space-separated list
I’ll briefly explain the background in case this can be solved simpler but I’d still be interested in an answer to the actual question, too.
My chapter titles are very narrow and use a large font so ...
6
votes
1answer
116 views
Is it possible to scan until the end of the current `\item`
I do a lot of itemize lists in beamer presentation which, in a later step, I want to format nicely, for instance, typeset everything up to the first colon in boldface and the remaining part scriptsize ...
6
votes
1answer
103 views
Arbitrary text parsing from a separate file
I'm still very new to the world of TeX, so please bear with me if this question is unclear or has been asked before. I'm starting to figure my way through TeX and the millions of plugins and ...
5
votes
3answers
175 views
Cartesian product of two lists as parameters for a command
Friends, I used to suffer a lot when had to iterate through elements of a list, but thanks to egreg's suggestion, I've been successfully using the etoolbox package for that task, e.g.:
...
5
votes
2answers
96 views
Parsing leading hardspaces
This question is related to (but distinct from) this question: Parsing a \$ as part of an improved \getargs command, which I asked earlier.
I am experiencing a residual space in a string result from ...
5
votes
3answers
455 views
How to extract parts of (La)TeX document?
I want to run queries against LaTeX documents like these:
get list of all equations, even if one declares \def\be{\begin{equation}} and uses it;
get list of all arguments of some command (e. g. ...
5
votes
3answers
126 views
String parsing macro fails within custom cite command of biblatex?
I am trying to use the same string parsing macro as in String parsing macro fails within a minipage environment?; but this time in context of biblatex - and I'm having similar problems, I guess.
...
5
votes
1answer
67 views
Parsing a \$ as part of an improved \getargs command
As the author of stringstrings, I am acutely aware of its slowness. For small tasks, that slowness can be annoying. For larger tasks, it can be prohibitive.
Recently, in using data column as ...
5
votes
4answers
1k views
LaTeX parser to perform operations on tags (commands) and its content?
Is there a LaTeX parser available that can be run from a (*nix) command line, and that allows operations on LaTeX tags/commands and its content?
What I am trying to do is, for example:
script-wise ...
5
votes
1answer
129 views
How to skip an `\item` entirely, with no side-effects?
In Ryan Reich's great answer to my question on onlyitems, he had LaTeX ignore an \item by setting it into a box and then not using the box, effectively discarding it:
...SNIP...
...
4
votes
1answer
232 views
String parsing macro fails within a minipage environment? [closed]
I am trying to work with a string parsing macro, found in the answer of TeX capacity exceeded while parsing a date string - TeX - LaTeX.
Basically, I have strings num01, num02... num09 - from these, ...
4
votes
1answer
579 views
Generate a parse tree for TeX
If I google for parse tree and TeX. All I'm getting are how to draw parse trees in TeX.
I want to know if there are programs that can parse TeX, and output a parse tree that's easy to manipulate.
4
votes
1answer
146 views
Parse a file with a regexp and return first match
I need to write a command that searches a file for a string that matches a certain regexp, and inserts that string. I know how to parse a string of text using a regex with
\usepackage{l3regex}
...
3
votes
2answers
174 views
Shell script which parses .tex files for figures
I would like to pull all figures including captions out of multiple .tex files and write them into a single new .tex file. This means I have to parse for
\begin{figure}
. . .
\end{figure}
and ...
3
votes
2answers
657 views
In the siunitx package, how do i get it to produce uncertainties with the \pm symbol instead of parenthesis
Using the siunitx package, if I specify an error with the \pm symbol then it automatically converts it to a form using parenthesis. I would like it to not do this and keep the \pm symbol, but still ...
3
votes
1answer
75 views
pgfparser module and blank spaces
After the question Macro for a code translator, I followed the advice of polgab and used the pgf parser module.
I was very disappointed when I reached the point of trying to parse a blank space.
I ...
3
votes
2answers
170 views
How to stop a block of code from being parsed?
I would like to pass some latex code to lua directly without it being parsed:
\directlua{
PrintPrettyLatexCode("LATEX CODE GOES HERE!")
}
BUT latex tries to parse the "LATEX CODE GOES HERE!". I ...
3
votes
2answers
328 views
Split long string into paragraphs
How can I test a string to see if it has more than one paragraph, and split a string that contains multiple paragraphs into two strings, one with the first paragraph of the original, one with the ...
2
votes
1answer
81 views
How to check if token is a macro?
I am thinking about possibility to parse LaTeX document. What I really need is to track category codes of symbols. As I understand TeX expands all of macros in his mouth and tracks changes of category ...
2
votes
2answers
242 views
Time calculation for task reports
Consider this MWE:
\documentclass{article}
\newenvironment{dayreport}{\begin{tabular}{ll}\hline Task & Time\\\hline}{\hline\end{tabular}}
\newcommand{\task}[2]{#1 & #2\\}
\begin{document}
...
2
votes
1answer
99 views
Parsing some buzzwords in the Latex document and replacing them by link possible?
Is it possible to parse teh whole document automatically,
looking for buzzwords, which I will maintain in a special list,
and replacing the buzzwords by links to a predefined page e.g. a glossary?
2
votes
2answers
133 views
How to automatically insert values into latex code/template
I'm in the process of generating an automated report in pdf from latex. Each report is the same, but has different values/graphs. The graphs is no problem, but what is the best way to process a latex ...
1
vote
1answer
90 views
Using \SplitArgument with r() arguments in xparse
I have been experimenting with using the xparse package for custom document macros with a Markdown-like syntax. For example, I used to write \cut{x}{P}{Q} to produce . With the help of xparse, I ...
1
vote
0answers
75 views
How does 'filecontents' keep LaTeX parsing while temporarily stop writing output
We all know filecontents.sty can do
\documentcalss{article}
\usepackage{filecontents}
\begin{document}
Hello World
\begin{filecontents}{dummy.txt}
No one will read this if I don't use it ...
1
vote
0answers
58 views
Help with verbatim-like environments
I am writing a script for LaTeX shallow parsing (assuming that there are no complicated definitions in the preamble). First of all I decided to check
the document for in-line verbatims and comments, ...