{latex-kernel} is about the inner workings of the LaTeX kernel. Do not use this tag for general questions about LaTeX or {macros}.
3
votes
1answer
50 views
Setting initial value of a storage macro
When I create a "storage macro" I often initialize it to be empty with
\newcommand{\@mymacro}{}
\newcommand{\mymacro}[1]{\renewcommand{\@mymacro}{#1}}
Instead of initializing it to empty I could do ...
2
votes
0answers
46 views
Value from LaTeX package to plain TeX [closed]
If I say \usepackage{lastpage} I got \xdef\lastpage@lastpage{53} at the end of .aux-file. I tested and
\xdef\sometest@sometest{53}
\newcount\tmp
\advance\tmp \sometest@sometest \relax
\advance\tmp ...
8
votes
2answers
84 views
What the first argument for `\l@subsection` actually is?
Consider for example the code
\makeatletter
\renewcommand{\l@subsection}[2]{\@dottedtocline{2}{1.6em}{1.6em}{\S#1}{#2}}
\makeatother
It allows me to obtain in my table of contents records ...
7
votes
1answer
57 views
What's the differences between the kernel commands \trivlist and \list?
LaTeX defines the two environments \trivlist and \list. Both can be used creating own environments.
What exactly is the differences between \trivlist and \list?
23
votes
2answers
242 views
Redefining \include
A puzzling choice made by Leslie Lamport was to define \include in such a way as to issue a \clearpage before reading the file. This has been puzzling me for sometime as it is not a very good choice ...
7
votes
1answer
66 views
LaTeX2e \makebox !=\hbox?
The source2e documentation (pg. 233) when describing \makebox states:
... If wid is missing, then pos is also missing and obj is put
in an \hbox of its natural width...
This, ...
6
votes
1answer
64 views
Strange behaviour with \AtEndDocument
I'm creating a document class that has draft and final versions. The final version has a front page generated by \maketitle, but in draft mode \maketitle is \let to \relax. I decided to insert a test ...
12
votes
2answers
137 views
Why is \thepage set to \relax in a \protected@write?
In the kernel the definition of protected@write includes the setting of the \thepage to
\relax. Why is this and are there other means to ensure that thepage is not expanded?
\long\def ...
4
votes
1answer
176 views
Why does LaTeX make \DeclareMathSymbol and \DeclareSymbolFont preamble-only?
Is there any good and convincing reason to explain why LaTeX restricts usage of \DeclareSymbolFont and \DeclareMathSymbol to the preamble? and I could also ask the question for many other macros.
...
20
votes
3answers
312 views
@tempdima, reserved@a, @tempcnta, what else?
I'm aware that some "temporary" LaTeX dimensions etc. exist. I would, however, like to know all of them.
I know \reserved@a (macro), \@tempdima (dimension) and \@tempcnta (counter).
9
votes
1answer
60 views
\@ifnextchar inside pmatrix?
I created a function which handles a superscript followed after the function. I do that by using \@ifnextchar^. Everything works well, except in any pmatrix environment. Why?
As a quick-and-dirty ...
12
votes
1answer
164 views
Counters and their “partners”
A counter created via \newcounter{<counter>} is stored internally as \c@<counter>, just like a reference made using \label{<label>} is stored internally using \r@<label>. ...
5
votes
1answer
150 views
Some assignments in the definition of \parbox
Why are these assignments necessary in the LaTeX's definition of \parbox?
\let\hss\vss\let\unhbox\unvbox
EDIT
I should have added that I wondered if the assignments will affect any in-parbox calls ...
7
votes
4answers
131 views
Restore the original array code
The arraypackage redefines array in various ways. I was woundering if anyone had made a package containing a localized (prefixed) version of the kernel array?
I have a document were we have a simple ...
9
votes
3answers
338 views
Are commands defined by \newcommand[.][.]{.} robust?
This question is from the comments at the foot of Abbreviations for AM, PM (small caps) for use within \textbf. Readers will get the remaining gist from there.
With
...
19
votes
6answers
434 views
\@ifnextchar and friends documentation
While reading this question and its answers I tried to find where, for instance, \@ifnextchar is documented. I'm afraid I couldn't... I looked in TeX: The Program and TeX for the Impatient which can ...
25
votes
2answers
927 views
Understanding \@ifnextchar
I understand the definitions of the \makeatletter and \makeatother commands and also \def and \newcommand somewhat. But, explained in a simple way, what is happening in the following line?
...
7
votes
2answers
200 views
What exactly does \DeclareOldFontCommand and \DeclareRobustCommand do?
In the article class appears the following code related with the font selection:
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
...
24
votes
1answer
174 views
Why is there no \provideenvironment?
LaTeX2e provides a \providecommand but there is no \provideenvironment which defines an environment only if it (or a macro with the same name) was not defined before. Is there a specific reason why it ...
13
votes
2answers
194 views
What does the command \@dblarg in a class?
In the definition of a command appears the declaration of \@dblarg, as follows: \def\title{\@dblarg\CJ@title}. What exactly does \@dblarg do?
23
votes
4answers
542 views
Why does the LaTeX kernel define \usepackage *and* \RequirePackage?
The ubiquitous \usepackage command is used to load packages in the preamble of a document; the command syntax is
\usepackage[<package-option-list>]{<package-list>}[<version>]
...
12
votes
2answers
166 views
\if@minipage purpose in floats
In floating environments such as the captions of figures, LaTeX has a \global\@minipagefalse, why is this necessary and what does this switch do?
\long\def\@makecaption#1#2{%
...
58
votes
2answers
2k views
What are penalties and which ones are defined?
Very often you can find solutions by changing the penalty. One is widowpenalty. However what are penalties and is there a small list of every defined penalty.
There is a German site which does ...
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. ...
9
votes
1answer
197 views
How to illustrate and execute a MWE within another document
In Show output of a full LaTeX document I provided a partial solution to a similar question. The following code is an attempt to simulate the running of a full MWE within another document as for ...
8
votes
1answer
470 views
Use of \trivlist and \list in defining environments
I did ask a similar question a bit back here but never really had a satisfactory technical answer. Reading through the documentation of xdoc Lars Hellstrom pretty much asked the same question and ...
12
votes
1answer
305 views
Why is \input not expandable?
In latex.ltx I found \def\input{\@ifnextchar\bgroup\@iinput\@@input} where \@@inputis expandable. I would like to know if there is an expandable version of \input.
The problem comes from an example ...
10
votes
1answer
301 views
Use of \@texttop and \@textbottom for vertical positioning
There are two macros defined in the LaTeX kernel named \@texttop and its opposite \@textbottom. The first is a bit of a mystery command in that in the source it is let to \relax. There is a note that ...
6
votes
2answers
437 views
What do \m@ne‎ and \@M do in the definition of \@makechapterhead?
What do \m@ne‎ and \@M do in the definition of \@makechapterhead in book class?
I took a quick look at latex.ltx and couldn't find any explanation.
12
votes
1answer
278 views
What does \p@ mean in some code?
I have found the source code within octavo.dtx (from the octavo package) and it has some parts called \p@. I have searched throughout the document, but cannot understand what this is defined as or ...
10
votes
2answers
153 views
What is autoload?
In the LaTeX kernel you see this often:
%<*2ekernel|autoload>
What does it do? There are other similar marks. Is there any documentation for these?
1
vote
1answer
57 views
Finding Information about Class Level Commands [duplicate]
Possible Duplicate:
Documentation reference for LaTeX internal commands?
I'm working on writing a company-specific class file for reports in LaTeX and I thought I would start by reading ...
14
votes
4answers
695 views
Understanding a \@for loop
I'm having trouble with a \@for loop. I've got a macro that takes a comma delimited list and puts each element into a row of an array. When I do this using a \@for loop, I get an extra row that I ...
22
votes
1answer
952 views
Check if next char is {
Using \@ifnextchar one can detect if e.g. the next Character is a [, e.g.:
\@ifnextchar[%
{
%% code to execute if [ scanned.
}{
%% code to execute if [ scanned.
}
However, I can’t seem to ...
14
votes
1answer
296 views
What is a BANG float?
This question follows up on What is the exact purpose of \ftype@<TYPE>?. The LaTeX kernel source refers to a BANG float in the ltoutput.dtx, but there is no explanation for it. Anybody knows ...
17
votes
3answers
357 views
What is the exact purpose of \ftype@<TYPE>?
I currently working on some float related code an saw that the standard float environments figure and table define (beside others) the macros \def\ftype@figure{1} and \def\ftype@table{2}.
The LaTeX ...
15
votes
3answers
296 views
What's the use of the @compatibility condition?
All of the standard LaTeX document classes (article, book and report) declare some basic functionality and parameters based on the condition @compatibility. Here's an extract from from article.cls ...
18
votes
1answer
308 views
What does \@let@token do?
In source2e.pdf I've seen \@let@token used in several places, for example in the definition of \@ifnextchar:
\long\def\@ifnextchar#1#2#3{%
\let\reserved@d=#1%
\def\reserved@a{#2}%
...
16
votes
2answers
225 views
How can I detect if I'm inside or outside of a float environment?
I am trying to detect whether I am inside or outside a float. I know the way how caption works. It uses the internal \@captype. But in the example below you see that this test failed by using ...
15
votes
1answer
392 views
What exactly does \@doendpe do?
Quoting from the LaTeX2e sources:
[\@endparenv, \@doendpe]
To suppress the paragraph indentation in text immediately following a
paragraph-making environment, \everypar is changed to remove ...
5
votes
2answers
375 views
Where can I find an online manual for low-level LaTeX commands?
Is there an online manual for low-level LaTeX commands I can download?
I am looking for something which would have, for example:
\newif\ifportrait
\newif\ifcustomsize
\newif\ifdebug
\makeatletter
...
17
votes
4answers
840 views
What do \@firstoftwo and \@secondoftwo do?
The LaTeX kernel uses these two all over the place. For example, apparently the correct way of defining something like \ifeq{\macro 1}{\macro 2}{true}{false} is (note Martin's response: each case ...
9
votes
1answer
256 views
When is \if@nobreak set to \iftrue or \iffalse?
In my answer to a question on page breaking, I used a private switch that the user had to set by hand to prevent tables which start just after a section from breaking (at the first line).
It seems ...
12
votes
3answers
1k views
What is the default \parskip in memoir?
Everywhere the usual word is that it is 0. But that is clearly wrong, it is 0 + some rubber length. But how is that rubber length defined?
In my search I found the following definition in the memoir ...
17
votes
1answer
397 views
Why \( and \) were not defined as robust commands in the first place?
I am aware of the difference between using \(...\) and $...$ (in moving arguments, for example), and yes, I've read the answers to this question: Are \( and \) preferable to $?). I also know the ...
10
votes
2answers
403 views
Is there a list of general use LaTeX kernel macros?
Here are a few cases in which one could use such a list:
Is there a "prepend" version of \g@addto@macro? A "local" version?
What's the most efficient way of gobbling n characters?
Can I use LaTeX's ...
34
votes
1answer
1k views
An explanation of LaTeX's output routine
Is there a good reference for LaTeX's output routine? The documented source is confused and confusing. The authors seem confused as to why parts are the way they are and wonder if maybe things should ...
5
votes
2answers
709 views
Equation environment definition
Where is the full definition of the equation environment? I cannot find it in the .cls files. Is this in latex.ltx? Or something?
23
votes
3answers
486 views
Saving a 100 tokens worth, is it worth it?
The LaTeX kernel defines a number of tokens that are used throughout the LaTeX source and the standard LaTeX classes. For example:
\def\hb@xt@{\hbox to}
This particular one is commented as:
...
18
votes
4answers
520 views
How exactly does \def\p@figure{Figure~} work?
I took this line from my thesis style and added it into my document (preceded by \makeatletter) and what it does that whenever I used \ref{figureid} instead of putting just the figure number, it puts ...