Questions tagged [catcodes]
{catcodes} is about "category codes" — an integer number from 0–15 associated to each of the 256 character codes. The category codes indicate the role of a character.
92
questions
797
votes
1answer
177k views
What do \makeatletter and \makeatother do?
Many LaTeX “hacks” begin with \makeatletter and end with \makeatother. What do these commands do?
66
votes
4answers
7k views
What are category codes?
Following on from this question, I'd like to ask a more general question:
What are category codes, and what can I achieve by changing them?
16
votes
2answers
2k views
Removing a backslash from a character sequence
For indexing I wanted to write a macro \macroname that removes leading backslashes from macro names but leaves the names of environments untouched. That is
\macroname{\relax} --> relax
\...
11
votes
2answers
7k views
\makeatletter explained
I am using the following code in my beamer document to make the frame title's appear in the table of contents:
\documentclass{beamer}
\usetheme{default}
\usepackage{bookmark}
\usepackage{etoolbox}
\...
22
votes
4answers
5k views
How to make a real backslash (escape) character?
I just want a good way to make a backslash character (or whatever character(s) any given format uses as escape characters), suitable to \write to a file or pass to a pdfTeX primitive.
Let me ...
8
votes
3answers
662 views
Make Characters Active via Macro in Math Mode
I am trying to make characters active in math mode, but can't seem to get past the most basic of examples. I would like to define a macro which is passed:
the character to make active and
the macro ...
23
votes
4answers
12k views
Underscore in textmode vs mathmode
I use _ character often in text mode, so I changed category of underscore: \catcode\_=12, but that applies also to mathmode and now I'm unable to make subscripts with underscore in mathmode. Is there ...
11
votes
3answers
2k views
Changing the catcode of _ in one command?
In the following code, I would like _ to be a simple letter. How can I achieve this ?
% Source : http://forum.mathematex.net/latex-f6/forcer-le-retour-a-la-ligne-dans-texttt-t13246.html#p127511
\...
17
votes
1answer
1k views
How to change the catcode in a macro
I want to change the catcode in a macro, but it seems it doesn't work. Can anyone help me?
\def\A{\catcode`\|=0 |bf{test}}
|bf{test} would not work as expect.
31
votes
5answers
5k views
Using indentation to automatically begin and end itemize environments
This is a question one might answer with "Why the hell would you want to do it?!", sort of an experiment.
What I am looking for is a way to write lists with many levels of nestings (notes for school) ...
13
votes
1answer
890 views
Using tikzcd in newcommand (for inline arrows)
I’m using tikz-cd for diagrams, and have a medium-sized diagram that I want to re-use several times. However, when I try using a definition like:
\newcommand{\myarrow}{$\begin{tikzcd} A \ar{r} & ...
13
votes
1answer
1k views
Catcodes of unicode characters with \usepackage[utf8]{inputenc}
I don't understand why this is generating an error message...
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
\catcode`ẟ=\active
\end{document}
As the inputenc suggests, I'm ...
63
votes
1answer
8k views
Is it \catcode or \catcode`?
I've noticed that \catcode is poorly documented in the TeXbook. The primitive is defined as \catcode but every time it is used, it is used as \catcode` ... the backquote is never discussed. ` itself ...
32
votes
2answers
2k views
What is the differences between mathcode and catcode and how can I use mathcode?
The command \catcode is often used to change some internals. E.g. the command \makeatletter changes the catcode @. But what is \mathcode and how does it work?
catcodes are well explained here: Wiki ...
26
votes
2answers
2k views
How bad is slack \makeatother discipline really?
Following Will Robertson's admission that Fwiw, i'm not aware of any troubles with a missing \makeatother, but you're right. It's a bad habit of mine to omit it, and my own progressive slackness about ...
13
votes
2answers
1k views
Adding newlines while writing text to a file
Within a custom command, I'm doing the following to write to a file:
\newcommand\mycommand[1]{
\newwrite\file
\immediate\openout\file=foobar.tex
\immediate\write\file{
foo
bar
#1
...
5
votes
2answers
484 views
Viewing a character's catcode, and listing all characters with a given catcode
How can I view the catcode of a character given by its ASCII number?
Is there a way to list all the characters (represented by their ASCII numbers) that are associated with a given catcode? For ...
4
votes
2answers
724 views
Expanding subscript and subscript capabilities
Well, I liked the idea expressed in the question alternative syntax of subscripts using tex. But I want it to work in a sightly different way.
I just want to expand the usual _ and ^. How? So that ...
13
votes
2answers
1k views
“Activate” active characters in argument passed as macro
Let's say I have some macro (\iPrint in the MWE) that internally uses active characters to interpret its argument:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\...
8
votes
1answer
412 views
SplitArgument on colon doesn't work under expl3 syntax
\documentclass{article}
\usepackage{xparse}
\DeclareDocumentCommand\TestA{>{\SplitArgument{1}{:}}m}{%
\Example #1
}
\ExplSyntaxOn
\DeclareDocumentCommand\TestB{>{\SplitArgument{1}{:}}m}{
\...
5
votes
2answers
1k views
Generating a catcode table in Latex (with \typeout to terminal)?
I often need to look up a catcode table, and quick searches on the web are rarely satisfying.
So I thought, it must be (in the long term) easier to use a Latex function of sorts, to loop through all ...
2
votes
1answer
503 views
Is it safe to set underscore to a non-active character?
I am looking for wisdom i.e. potential side-effects that I may not have considered.. Underscores are quite common and irritating for inexperienced LaTeX users to escape. Let's assume that I have no ...
2
votes
1answer
396 views
How can I make LaTeX to recognize spaces in my macro (catcode 10)?
I've been messing with TeX primitives, particularly catcodes, to handle diverse LaTeX situations (and to extend my wings).
I created a token gobbler with the help of https://tex.stackexchange.com/a/...
35
votes
2answers
1k views
No \makeatletter required?
In typing up some small examples that might create errors in LaTeX (for Documents with typical LaTeX errors), I tried the following:
\documentclass{article}
\def\my@macro#1{-#1-}% This is magic
\...
19
votes
3answers
716 views
Can I convert a string to catcode 11?
In the TeX FAQ there's a way to test if the jobname is equal to something (comparing the jobname). The difficulty of the naïve test is that the contents of the \jobname primitive are catcode 12 so to ...
13
votes
4answers
1k views
How do I get the category code of a character that is the value of a control sequence?
How can I get the category code of a character that is the value of a control sequence?
If I do this
The catcode for A is \the\catcode`A.
I get
The catcode for A is 11.
If I do this
\let\abc=A
...
4
votes
2answers
704 views
Save and restore the makeatletter/makeatother state
When posting snippets of latex code that define or modify commands containing @, one commonly includes the \makeatletter...\makeatother wrapper that's necessary if pasting the snippet into an ordinary ...
5
votes
2answers
223 views
Changing catcode for commercial at (@) inside a macro to get it matched in pattern.
This question is related to TikZ: pgfutil-common: pgfutil@in@ - how does it work? and is a result of coping with that problem. I've already read How to change the catcode in a macro, but it didn't ...
22
votes
3answers
2k views
How to get the catcode of a token?
For debugging a complicated macro I would like to print out the catcode of a token. Optimally I would like to have a macro \getcatcode such that, for example, \getcatcode{a} would expand to 10. How ...
7
votes
1answer
489 views
Active characters in linguistics
What are the pros and cons of using active characters instead of macros in text?
Would it make sense to implement a “simplified markup” parser in Latex to make code more readable?
Rationale
Latex-...
20
votes
2answers
1k views
Incompatibility between verbatim and tabu? (Danger of using \scantokens in a package)
With the following MWE
\documentclass{article}
\usepackage{verbatim}
\usepackage{tabu}
\makeatletter
\renewcommand\verbatim@processline
{%
\begin{tabu}to\textwidth{|l|X[-1,l]|}
foo&\the\...
15
votes
2answers
479 views
Macro to take a character as argument, make it active, then \def it.
I have a XeLaTeX document in which I want some unicode symbols to be auto-substituted, like ¼ → 1/4, » → >>, « → <<. But instead of a long list like
\catcode`\¼=\active\def¼{1/4}
\catcode`\«=\...
8
votes
2answers
685 views
Active characters after \begin{document}
I'm using XeLaTeX and I want to do automatic repeating of plus sign after breakline. I've found the unoffical package for this but it seems to me a bit overkill (although didn't try it).
I tried to ...
18
votes
5answers
51k views
Percent signs - “comment” and “active” both at once?
I convert documents from Word a lot, and I often forget to escape %, which leads to pieces of text missing. So I would like the following to happen in the main document body:
escaped \% working as ...
14
votes
3answers
1k views
Hooking every line of the source code
I've been considering a more radical solution to the problem k.t.hagen posed a while back. Would it be possible (perhaps by catcode hijacking) to put hooks on individual lines of the source code? (...
12
votes
1answer
271 views
Is there some reason I can't change catcodes inside a command?
I have a very simple question. When I do this:
\catcode`\@=0
\catcode`\\=11
@mycommand{a}
@catcode`@\=0
\catcode`\@=11
It works perfectly and calls \mycommand correctly. However, when I try to ...
11
votes
1answer
2k views
Is there a counterpart/antidote for \obeylines?
The \obeylines command tells TeX to preserve line endings, which is useful for poetry and various other things. I can limit the effect of \obeylines by wrapping it in a scope, like so:
{\obeylines
...
9
votes
3answers
688 views
Trouble defining a macro that typesets underscore characters as _
I want to define a macro that typesets its argument in typewriter font and
allows for underscore characters in its argument. Within a group, I make _ active, I define \_ to be typeset as an ...
13
votes
1answer
644 views
How to redefine @ and . to obfuscate email addresses?
I am writing a small package containing macros I intend to use regularly. Among those macros, I have \mailto with the following definition:
\@ifpackageloaded{hyperref}{%
\def\mailto#1{%
\href{...
11
votes
1answer
2k views
catchfilebetweentags package swallows end of line
I would like to include only a part of a .tex file into a different .tex file. The part I want to include is delimited by some comment tags, as it is used by catchfilebetweentags package.
I tried the ...
10
votes
3answers
318 views
Macro char `#` doubles when made letter?
If I make a command that takes one argument, and the argument should be allowed to take the unescaped default macro char: # as an argument and then treat it as a letter:
\documentclass{article}
\...
13
votes
1answer
531 views
Can the makeatletter/makeatother mechanics lead to parsing problems?
The reason for using \makeatletter/\makeatother has been discussed in many places, for instance in this question.
However I think that this trick of playing around with the "@" character is itself ...
13
votes
1answer
270 views
Is it reasonable to expect an expl3-compatible release of TikZ/PGF in the future? / Workarounds for using TikZ under expl3 syntax
Keeping in mind:
TikZ uses space tokens significantly, and
expl3 syntax completely disregards whitespace and will only become more prevalent,
is it reasonable to expect a future version of TikZ ...
10
votes
1answer
190 views
real colons in a expl3 context
I'm fighting to find a good way to use colons in an expl3 context. The example uses tcolorbox for a demonstration but I ran into the problem also in other places where a colon was used to delimit an ...
7
votes
1answer
291 views
\scantokens in LuaTeX
The eTeX \scantokens command appears to work differently in LuaTeX than it does in eTeX, pdfTeX and XeTeX. Compiling the following test file with any engine other than LuaTeX performs \show+, which ...
5
votes
2answers
208 views
Repeated “Label(s) may have changed” when using \catcode`_=12 underscore hack with hyperref
This MWE produces repeated Label(s) may have changed warnings despite the output files not changing. The same problem has been discussed in How to diagnose a permanent "Label(s) may have changed&...
5
votes
2answers
762 views
Inserting automatic vertical space between blocks when \obeylines is active
Sometimes as I write a manuscript in LaTeX for speaking, I want to format parts
of it as \obeylines and \obeyspaces permit, so that a single coherent thought
is expressed compactly on each line, and ...
4
votes
1answer
199 views
Accepting special characters in arguments passing them further
I would like to define a macro very similar to \url, that accepts more or less arbitrary strings (including hashes/#) and passes them to other commands (i.e., \href, \url, \nolinkurl). I have tried to ...
3
votes
1answer
165 views
Peek ahead and process characters
I want to replace unicode character pairs in XeTeX similar to Country flags unicode char. I don't want to specify every option (every country code) and want to be flexible for other emoji (skin color ...
0
votes
3answers
1k views
Replace character defined by ASCII code (by something else)
I am trying to replace, in a given string, some characters. The characters to be replaced is given by its ASCII code. So for example, in abc, I want to replace character 97 (which is a, but I don't ...