{macros} is for questions specifically concerning TeX's macro processor. Note that, because TeX uses macros ubiquitously, most questions about code that uses macros are not looking for information about how macros work, and so are not appropriate for this tag.

learn more… | top users | synonyms (4)

20
votes
11answers
1k views

Storing an array of strings in a command

I want to store three strings in a variable \mydata like the following: \storedata\mydata{one}{two}{three} Then I want to extract the first/second/third string in the following way: ...
20
votes
5answers
6k views

Test if a command has been defined by another package

I normally use the LaTeX \newcommand to define macros. However, when using delimited macros I use \def. Is there a way that I can get LaTeX to trigger an error if the command defined by \def is being ...
20
votes
2answers
3k views

How to do a recursive renewcommand?

I'm trying to renew a command in terms of its old definition... something similar to this: \renewcommand{\vec}[1]{\vec{\mathbf{#1}}} But this seems to send the interpreter in an infinite loop. How ...
20
votes
2answers
313 views

Defining arithmetic operators that insert brackets according to usual precedence rules

I have a program that generates bits of Tex code like these: $\product{a}{\add{b}{c}}\leftrightarrow \add{\product{a}{b}}{\product{a}{c}}$ $\add{a}{\add{b}{c}}\leftrightarrow \add{\add{a}{b}}{c}$ ...
20
votes
3answers
1k views

Capitalizing strings ignoring closed class words

I was just reviewing my "capitalization standards" for titles and such and was wondering if there's a macro to do the same thing I'm forced to do by hand nowadays. My personal rules (feel free to ...
20
votes
1answer
5k views

Comparing an argument to a string when argument is a result of a command with etoolbox

I've got an example like that: \documentclass{article} \usepackage{etoolbox} \newcommand{\ab}{a} \newcommand{\aORb}[1]{% \ifstrequal{#1}{a}{"a" was given}{not a}, % ...
20
votes
1answer
9k views

Error: Missing \begin{document}

I wanted to make a command that outputs a number in math mode. This is how my file looks like: \documentclass{scrartcl} %\usepackage{epsdice} %\newcommand{dice}[1]{\epsdice{#1}} ...
20
votes
2answers
329 views

“Grab to #{” macro arguments

In How to create a macro with two or three ;-separated arguments?, Herbert uses a macro definition \def\defpoint#1#{\expandafter\defpoint@i#1;;\@nil} which Joseph Wright reports as having a "grab ...
20
votes
3answers
2k views

Is there a way to measure the remaining space of a line of text?

I'd like to write the following: Some long paragraph of text \measureremainder{\whatsleft}\begin{mimipage}{\whatsleft} stuff \end{minipage} so that the minipage takes up exactly the remaining ...
20
votes
1answer
7k views

Problem with \newcommand, no space after calling new command in the compiled text [duplicate]

Possible Duplicate: \newcommand and spacing In my latex document I have defined a new command to force a consistency in naming of a product I talk in my document: ...
20
votes
5answers
4k views

Proper way to detect empty/blank text

I am attempting to ignore a command if it is passed with empty/blank text. My use case is not as complicated as one Expand away empty macros within ifthenelse where @egreg provides what seems like a ...
20
votes
1answer
335 views

Defining multiple shorthands quickly

Most of the bloated preambles I see have dozens of lines like \newcommand{\Acal}{\mathcal{A}} \newcommand{\Bcal}{\mathcal{B}} %... \newcommand{\Gcal}{\mathcal{G}} While I can easily code a macro to ...
20
votes
1answer
2k views

How to test if a directory exists

The command \IfFileExists works great to test is a file exists. Is there an equivalent to test if a directory exists? \IfFileExists does not seem to work for directories. \documentclass{article} ...
20
votes
1answer
606 views

A flexible derivative macro with LaTeX3

In an earlier post I asked a question about writing a flexible derivative macro, and someone suggested that a LaTeX3 version might be easier to understand, so I decided to try my hand at writing one. ...
19
votes
7answers
983 views

How to define a command to feed the contents of a list into an \ifcase construct?

It's common to use an \ifcase construct to redefine a command depending on the value of a counter. The following example illustrates this: \documentclass{article} \usepackage{xcolor} ...
19
votes
7answers
1k views

How to create a command that automatically escapes curly braces?

How could I create a command that will automatically escape all curly braces within the current environment? For instance, I would like a command (or environment, I suppose) that allows me to write ...
19
votes
5answers
2k views

Wrapping long lines that contain no spaces

I need to format extremely long strings of text. I would like to be able to specify their width, and have them wrap, with or without some special symbol to indicate that the line is wrapped. The ...
19
votes
4answers
3k views

No space present after ensuremath

When I insert a short maths section in a sentence, it renders fine with a space each side as expected: ...returned $\mathcal{P}$ from... If I define a command to do the same thing, it also renders ...
19
votes
4answers
10k views

\span as a math operator

I'd like \span to be a math operator (for the span of a set of vectors), but apparently it's already a TeX command. What do you guys recommend I do instead? (I don't really want a strange capital ...
19
votes
2answers
375 views

Difficulty with macro expansion

I'm not getting the output I want from my LaTeX code, and I think the problem is that I'm not expanding things at the right times. Code \documentclass{article} \usepackage{tikz} ...
19
votes
1answer
313 views

Is it possible to define a command taking an optional star and working in a subscript?

Note: this is more or less a cross-post from my blog. I hope this is acceptable, especially that this is a genuine question! I’m currently writing a (longish) document on mathematics. Among other ...
19
votes
2answers
371 views

Is it okay for a command to slurp more arguments than it is passed to?

Is it okay for a control sequence \foo to include another control sequence \slurp which slurps more arguments than \foo actually passes to it? For example, is it okay to do this: ...
19
votes
1answer
2k views

What does the # symbol do in LaTeX?

I know most of the effects of the special characters in LaTeX, like \ is used for most commands, or $ is used for opening or closing the math ambience, but I don't know what the symbol # does, and I ...
19
votes
1answer
589 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 ...
19
votes
3answers
913 views

LaTeX cookbook?

Has anyone written, or is anyone working on, a LaTeX cookbook? Specifically, a guide to writing intermediate/advanced LaTeX macros and solutions to other common tasks? I found a handful of resources ...
19
votes
1answer
3k views

Define same command with different amount of parameters

I want to define two versions of the command \Set, depending if I provide one or two parameters. I.e. like this: \newcommand{\Set}[1]{\bigl\{ #1 \bigr\}} \newcommand{\Set}[2]{\bigl\{ #1 \bigm| #2 ...
18
votes
9answers
2k views

fibonacci numbers

Hi I am trying to do Fibonacci below is the code but I am getting some error \newcount\n \newcount\np \newcount\npp \newcount\m \newcount\f \def\fibonacci#1{{\ifnum #1<3 1\else \np=1\npp=1\m=3 ...
18
votes
4answers
1k views

Is there a way to eliminate the “\” in frequently used LaTeX commands?

The "\" in all of the commands requires frequent finger gymnastics of the pinky of the right hand in LaTeX, at least for the touch typist. It occurred to me that although it makes things more ...
18
votes
4answers
1k views

On/Off switch (redefine a macro at each use)

I try do define a macro \onoff, which alternatively prints "on" and "off" each time it's used. For example the sequence \onoff \onoff \onoff would print on off on My first guess would be to use the ...
18
votes
5answers
361 views

How retrieve items in a list of words by number?

I'm working on a character sheet for the Fate RPG, which rates its skills with a numerical scale that corresponds to an adjective scale. I've been trying to write a macro that will take \skillAdj{4} ...
18
votes
4answers
1k views

How to define a command that bolds the first letter of each word in the input argument?

I want to define a command that takes a sentence, a word or several words as input and bolds the first letter of each word. I need this mostly for abbreviations and so far I have done it manually in ...
18
votes
3answers
3k views

What is the deal about these semantic vs syntactic commands?

I keep hearing people on this site talking about "semantic" vs "syntactic" commands and that the "semantic" ones are somehow better. I don't really get what they are talking about, could you explain ...
18
votes
3answers
678 views

What is the difference between local and global in a TeX meaning?

In tikz declare function and babel french option it came to the question about the difference between local and global in a TeX meaning. In the liked question the babel shorthand ; should be ...
18
votes
4answers
592 views

Detect whether running on pdfTeX or Knuth's TeX for conditional include

Does anyone know a way to detect whether one is running in pdfTeX or Knuth's TeX? I want to be able to conditionally include extra features when a document is being built using pdfTex, but also ...
18
votes
4answers
737 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 ...
18
votes
3answers
2k views

How to check if the value of a parameter is a number?

I have a command with a parameter. I want to check if its value is a positive number and perform actions based on that. \newcommand{\mycommand}[1]{ \ifnum#1>0% %some actions \fi } ...
18
votes
3answers
2k views

\global\renewcommand equivalent of \global\def

The following MWE works just fine, but I had to resort to using \global\def (not that there's anything wrong with it). The intent of the MWE is to provide access to the value of macro as set in an ...
18
votes
2answers
2k views

Problem with defining shortcuts for TikZ matrices.

For answering a question yesterday I wanted to define a shortcut for creating a matrix inside a tikzpicture. As a minimal example, consider \newcommand\mymatrix[1]{ \begin{tikzpicture} ...
18
votes
3answers
2k views

Defining commands that are scoped to a particular environment

Is it possible to define commands in a separate namespace so that they only work within a particular environment? For example, can I create a package named foo that defines a foo environment and a ...
18
votes
2answers
9k views

Remove space after command

To simplify some text I created some commands. One command has no arguments. It uses math mode but is used inside normal text. I would like to remove any trailing space between the command and ...
18
votes
5answers
9k views

\vec{x} but with arrow from right to left?

I have two variables: \vec{x} and another one which is somehow dual to the first. Therefore I would like to symbolize the second with something similar but a leftarrow on top of the x. I already tried ...
18
votes
2answers
1k views

How to display command name and its value

Latex displays the command values by default - I am finding it more difficult to display the command names along with the values. I have a list of commands that I would like to loop over and print ...
18
votes
1answer
17k views

Optional argument for newcommand? [duplicate]

Possible Duplicate: Different command definitions with and without optional argument I would like to define a macro which takes an optional argument, and behaves in different ways depending ...
18
votes
2answers
330 views

How can I improve my “hands-on”/ “working” knowledge of TeX's low/middle/high/higher -level control sequences?

I am not an experienced TeX/LaTeX user. I know just about enough to write my thesis. As my interest grows, I'd like to continue improving on my TeX/LaTeX knowledge, more specifically, my "working" ...
18
votes
2answers
529 views

How can I redefine my macro to accept a charcode instead of a character?

I recently posted this answer to How to highlight all words of the form [0-9][A-Za-z0-9]* immediately following an equal sign?. It works, but it suffers from (a lot) of code duplication. What I have ...
18
votes
1answer
488 views

Why doesn't \makeatletter work inside \newcommand?

After hours of banging my brain against my skull, I narrowed down an issue I'm having to the fact that \makeatletter doesn't work inside \newcommand. Commands that I call after \makeatletter are ...
18
votes
2answers
12k views

How to make \hl (highlighting) to automatically place incompatible commands in \mbox?

The soul package provides a useful command \hl for highlighting text. However, \cite, \ref, and some other commands (maybe equations too) must be placed within an \mbox in order for \hl to work ...
18
votes
1answer
875 views

Abbreviations and full stop--how to avoid double dots?

I have trouble with macros expanding to an abbreviated expression. Say I have \WHP which expands to "with high prob." (artificial example). I want to avoid the dot after the abbreviation colliding ...
18
votes
2answers
788 views

The scope of LaTeX commands

This is a very basic question. However, I didn't find simple rules for it, so I asked it here. Some LaTeX commands (like \noindent) affect the whole paragraph. Some of them (like \emph) affect their ...
18
votes
1answer
805 views

Dos and Don'ts of \countdef\mycount=<number> and \newcount vs \newcounter{} in LaTeX

Let's clarify that countdef\mycount=<number> is a bad idea in LaTeX, then clarify appropriate usage of \newcount\mycount vs \newcounter{mycount} in LaTeX. Background: I only started with TeX ...