{tex-core} is for questions that are independent of formats and macro packages. Such questions usually relate to low-level TeX programming or the behaviour of TeX at an underlying level. Note that even Plain TeX is a format in itself; for questions about it, use {plain-tex}.
8
votes
4answers
249 views
Does macros get applied to the source code before compilation?
I wonder if this is true.
The latex compiler first run though the document, and search for all the macro declarations.
the compiler then go though the document, apply each macro as a string ...
8
votes
2answers
192 views
What is wrong with this TeX macro
Still soldiering on with trying to learn these macros. Can someone tell me why this isn't working?
The macro \mycline{n-n} is supposed to expand to \cmidrule{1-1} ... \cmidrule{n-n}, but in my code ...
8
votes
4answers
107 views
Partially expanding a command
My \john command is defined like so:
\def\john{\DontExpandMe}
I would now like to repeatedly change its definition, to keep adding some extra stuff on the front.
\foreach\i in {ape,bat,cow,dog} {
...
8
votes
2answers
144 views
Where to find official (!) and extended documentation for tex/latex's commandline options (especially -interaction modes)?
Today I tried to learn more about the several interaction modes for tex/latex/pdflatex etc. The manpages turned out to be not very helpful:
$ man tex
...
-interaction mode
Sets the ...
8
votes
3answers
472 views
\aftergroup a list of tokens
\aftergroup executes the next token after the end of the current group. Is there a variant, \Vaftergroup{\some\tokens\a\b} that would put \some\tokens\a\b after the current group ends? Of course, one ...
8
votes
2answers
518 views
Selecting optical size?
For some time I've seen LaTeX-produced documents that had slight differences in fonts. When you looked at them, they had the same Computer-Modern or Latin-Modern, however, they looked more stylized ...
8
votes
3answers
991 views
How to make a ruler
In The TeXbook (Ch. 10, after exercise 10.3), DEK shows some nice rulers. But I couldn't figure out how he did them. I'm sure I could look it up from the texbook source, but for some reason I'm ...
8
votes
5answers
322 views
Teach me how to use \loop…\repeat constructs, etc
The following code snippet is a part of the solution given here:
\def\IncludeOutput#1{
\parskip=2mm
\def\examplename{#1}
\pdfximage{\Directory/\examplename.pdf}%
...
8
votes
3answers
330 views
How to make a plain TeX conditional which checks if some specific numbers are present?
I need to make a simple conditional in a macro. If #1 is "1", "2", "3", "4", "5", or "6", then print Text: #1, otherwise, do nothing, even if it is empty. I tried this code:
\ifnum#1=1
Text:~#1
...
8
votes
1answer
676 views
Breakable vboxes
In Plain TeX how can I make vboxes breakable, and can I handle/measure them separately? What I'm trying to do, is that I have a portion of text, that is treated separately (no indention, narrower, ...
8
votes
2answers
293 views
Checking whether a file is empty?
Well, the obvious way to do that is with \ifeof, but for some reason, I cannot do this right. I wrote
\newread\reader
\openin\reader=empty \relax
\ifeof\reader\message{empty}\else\message{not ...
8
votes
1answer
126 views
Which commands exist to define new commands?
Which commands are there that one can use to define new commands in (La)TeX?
There are: \let, \def, \[re]newcommand[*], \DeclareRobustCommand[*], and ...?
(And I've seen things like ...
8
votes
3answers
127 views
Questions on macro writing in TeX to modify an existing style file: fancybox.sty
I've decided that I must become more adept at TeX if I'm to become proficient with LaTeX. While this is probably obvious to most readers who pass by, my ability to muddle through has hidden this small ...
8
votes
2answers
116 views
Is it possible to remove (or otherwise nullify) a whatsit node from a box?
I am aware that it is not generally possible to modify the contents of a box (as per http://tex.stackexchange.com/a/49903/17427), though I believe it is sometimes possible to "unbox" material and hack ...
8
votes
2answers
226 views
Normal \relax vs. frozen \relax
With
\edef\x{\ifnum0=0\else\fi}
being \relax and with
\def\y{\relax}
we see that \ifx\x\y is false. Why?
See also \ifcsname when it isn't apparent that the command is \relax'ed.
8
votes
3answers
670 views
`\write` non-printable ASCII characters to a file
\immediate\write\SomeStream{x} writes x to the file open in \SomeStream. I would like to write non-printable ASCII characters, such as ``, to a file. My naive guess is
\begingroup %To keep ...
8
votes
2answers
137 views
Execute non-expandable code inside a tabular environment
As there is no Expandable version of \InputIfFileExists or \IfFileExists, the question arises whether it is possible to execute non-expandable code in a tabular environment after all:
File main.tex:
...
8
votes
1answer
231 views
Is there a \show for catcodes?
In the course of attempting to out-pedant another mathematician, I wanted to \show the catcode of $ to convince myself that it was a "special" character in ordinary TeX as well as LaTeX. I was just ...
8
votes
1answer
58 views
Interactively look up macro definitions
In a TeX document, the primitive command \show will print out the current definition of a macro one level deep (it won't (and can't?) reduce to primitives).
This comes with the restriction of actually ...
8
votes
2answers
61 views
\setbox containing maths interferes with surrounding math mode in XeTeX
I encountered what might be a bug in XeTeX (but I would be glad to be proven wrong) while chasing a strange interaction between bytefield, unicode-math, and mathtools.
In general, I do not expect a ...
8
votes
2answers
171 views
Practical uses for skips with negative stretch or shrink components
I am currently looking somewhat carefully at how TeX manipulates skips, and I am having trouble finding practical use cases for skips with a negative stretch or shrink component, such as \Askip and ...
8
votes
2answers
507 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
3answers
241 views
Detecting catcode in parameter text
Say someone has defined
\documentclass{minimal}
\begin{document}
\def\fooA#1@{}
\makeatletter
\def\fooB#1@{}
\end{document}
It is easy to test and see that the two are different: ...
8
votes
2answers
187 views
Which spaces exactly are ignored by \halign?
Some spaces seem ignored by the \halign primitive. For instance,
\setbox0=\vbox{\halign{ # \cr \space b \cr}}
\showbox0
indicates that there is no glue before b, but that there are two spaces ...
8
votes
2answers
143 views
Are \count1, …, \count9 useful?
To quote TeX by Topic, "whenever a \shipout occurs, TeX also writes the values of counters 0–9 to the dvi file and the terminal."
Do any dvi viewers or converters (e.g., dvips) make use of ...
8
votes
2answers
338 views
Minimum length of last line of a paragraph
There is a more or less equivalent question to this: Ensure minimal length of last line, but I absolutely need a TeX solution. I more or less stumbled upon the problem mentioned in the discussion of ...
8
votes
2answers
225 views
How do I redefine a macro when any group begins, then again when that group ends?
Okay, I know this is a pretty tall order, but I'm working on a package based on my answer here, and I'm including Ahmed Musa's environment which redefines \par. The problems are:
Some environments ...
8
votes
1answer
180 views
Making a character active vs assigning it a specific catcode
My query arises from my answer to Tab not as extra alignment tab and Andrey's rather nicer version. The question at hand involved making the TAB character usable for aligning tables. I assigned it to ...
8
votes
1answer
221 views
Interwoven alignment preambles are not allowed - what exactly does this mean?
I admit that this post is purely idle curiosity. But I recently stumbled upon a little factoid saying that the TeX error "Interwoven alignment preambles are not allowed" has the following explanation ...
8
votes
2answers
244 views
reversing the order of expansion
Is there a non-expl3 expandable function for reversing the order of expansion of an arbitrary number of tokens or macros? For example,
\reverseexpansion<n>\a\b
...
8
votes
2answers
591 views
Reading the contents of a box
Is it possible to take a box and retrieve the following information from it:
A list of all "top level" internal boxes;
All intervening space (kerns and glue: did I forget another type of space?)?
...
8
votes
1answer
304 views
How to adjust the slant angle of a diacritic
I am trying to change the slant angle of an accent. I have used the fontdimen to adjust the quantity. The first portion of the code that follows adjusts fontdimen5 (the x-height). This works as you ...
8
votes
1answer
486 views
Handling \ifnum's “! Missing number, treated as zero.”
Let's say I have a variable, which may - or may NOT - be a number; how can I handle the cases when it isn't a number, without crashing with "! Missing number, treated as zero." ?
In practical terms, ...
8
votes
1answer
173 views
Parsing a file name
What is the precise syntax for file names in various common distributions?
This is relevant for three primitives:
\input<filename> (renamed \@@input in LaTeX)
\openin<4-bit ...
8
votes
1answer
87 views
Why doesn't \mathord work to turn an Acc atom into Ord?
Writing ${\dot X^a}^b$ produces a very cryptic "double superscript" error: this has been explained here on this forum: the reason is that {\dot X}^a generates an Acc atom and that, for a reason that ...
7
votes
5answers
999 views
Can I see a plain TeX source file please?
all the LaTeX-tutorials tell me how LaTeX is an extention simplifying the building of TeX documents. Understandably, no one uses plain TeX anymore, right?
But I seem to learn better when I grasp the ...
7
votes
6answers
199 views
unescaped macros
Is there a way to define a macro that does not start with \? for example, I'd like to have -> expand to \rightarrow since I like reading raw LaTeX and
$\eps -> 0$ reads much nicer (to me...) ...
7
votes
6answers
679 views
Function like macro?
If you have programmed in a high level programming language, you must be familiar with the concept of functions, subroutines which return a value. For example, if you write in C, you can write a ...
7
votes
6answers
314 views
When might it be helpful to use implicit braces instead of explicit braces?
We've covered the question "When can one use implicit braces instead of explicit braces?"; this leads immediately in my mind to the question "Why would one want to?"
(Remember, implicit braces are ...
7
votes
2answers
105 views
Is there a way of defining a command \nullifyifmoved{arg} that will normally act like its argument but act like a no-op if the macro is “moved”?
I'm interested in a macro \nullifyifmoved that takes one argument arg and acts like arg in normal contexts, except it acts like a no-op wherever it is written to a file. Some background:
Martin ...
7
votes
3answers
169 views
When to use or avoid grouping?
For writing my own TeX code, grouping (\begingroup, \endgroup) helps on automatically saving and restoring TeX "variables".
(La)TeX "variables" are either macros or registers. The registers can
...
7
votes
3answers
127 views
How do I get the width of \hfill?
In my LaTeX document, I have a first line with a given spacing obtained using \hfill, then a paragraph, and then a third line in which I would like to use the same spacing as in the first line.
The ...
7
votes
1answer
310 views
Why does \@gobble take one argument
I understand what \@gobble, \@gobbletwo etc. do, but I don't understand why \@gobble allows for an argument.
I believe that the definition of the macro is \long\def\@gobble#1{}. Why is this argument ...
7
votes
2answers
264 views
Force the expansion of a macro parameter without \edef or \xdef
Two days I am looking for a solution but I have no more idea. This is my problem.
I'm trying to create a macro to automatically define new other macros to write references in a document. I want to ...
7
votes
2answers
102 views
Deleting an element from a comma separated list
In this answer we learnt how to remove the n-th element from a comma-separated list.
How can I remove an element from a list by its value, rather than its position? For example: if my global variable ...
7
votes
3answers
124 views
Sorting to match a given list
I am looking for ideas on the following task. I want to sort the entries in \listb to those in \lista. It cannot always be assumed that only the elements of \lista are in \listb; neither can it be ...
7
votes
3answers
193 views
Detecting which version of the LaTeX format is in use
ltxcmds provides \ltx@ifpackagelater, \ltx@ifclasslater, \ltx@iffilelater
and there is \@ifpackagelater - but is there any "if TeX later" or some other way to (automatically) get the used TeX version ...
7
votes
2answers
84 views
Changing the refpoint of splittopskip?
The following example has the setting:
\splittopskip=.3cm
However in the output I can't see any vertical space. It seems that \vsplit starts the computing of the height at the baseline. How can I ...
7
votes
3answers
624 views
How do I put a “#” into a token list without getting two?
Consider this plain TeX file:
\newtoks\t
\t={#}
\showthe\t
\bye
If you compile it (with tex of pdftex), then in the output you get
> ##.
l.3 \showthe\t
Why do I get two of the #s?
(The ...
7
votes
2answers
163 views
Stupid error caused by doing stupid things
When I was writing my thesis I wrote the following two commands which I found useful (and still do). They are both ways of defining other commands.
\usepackage{ifthen}
\makeatletter
\def\optional ...


