{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)

24
votes
2answers
3k views

Why don't we always use \long\def instead of \def?

Why don't we always use \long\def instead of \def? It seems that \long\def is more complete than \def. By the way, I know the difference between these two commands.
17
votes
3answers
3k views

Doing maths with distance values in LaTeX source code

I have a sty file with the command \newcommand{\foo}[1]{\noindent\kern#1} but I'd actually like to have something like \newcommand{\foo}[1]{\noindent\kern{#1 *0.5}} meaning that I'd like to have ...
13
votes
2answers
2k views

Define a Macro via Macro if Given Macro is not defined

I want to define a macro if it is not already defined. I can do this inline as the example below shows. But I would like to have a macro to do this functionality for me. My attempt to make this work ...
18
votes
3answers
664 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 ...
17
votes
2answers
1k views

Minimal \protected@edef example

I recently came across \protected@edef in the/a LaTeX2e source. Can anyone give me a minimal or simple example, where I need this? I know this has to do with fragile commands/robustness, but I am ...
6
votes
1answer
1k views

Using \leftroot{}, \uproot{} with closed square root symbol

As mentioned in this answer to Nice-looking p-th roots the amsmath package provides \leftroot{} and \uproot{} which allow you to move the position of the root to the left, and up in small increments. ...
15
votes
1answer
820 views

How do I create a macro which reads the content of a file when the macro is defined?

I am trying to do something like: \newcommand{\sometext}{\input{somefile.txt}} This works, but requires inputting the file every time the macro is used in the document. I would like to know a way ...
11
votes
6answers
1k views

How do I expand a macro into a tabular head?

I would like to be able to define a macro that can be used in the tabular definition. How can I do this? This does not work: \documentclass{article} \begin{document} \gdef\buildtabularhead{|||} ...
4
votes
1answer
1k views

Using Macro Defined Lists in TikZ/PGFplots

I want to be able to use a macro to specify a list (it is a constant list, i.e. will not change throughout the document) and use this macro rather than hard code the list contents in the TikZ/PGFplots ...
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
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}} ...
15
votes
3answers
386 views

Parsing strings containing diacritical marks (macros?)

I apologize that this question may seem very much like several other recent ones I have asked (Parsing leading hardspaces, Parsing a \$ as part of an improved \getargs command). They are all related ...
6
votes
3answers
860 views

\includegraphics optional argument not resolved if macro

\documentclass[a4paper,10pt,twoside]{book} \usepackage[demo]{graphicx} \begin{document} \newcommand{\scalefactor}{scale = 0.25} \begin{figure}[!ht] \centering %Next line does not work ...
4
votes
2answers
2k views

Error with \newcommand and \section

I'm trying to typeset an article. In the preamble, I defined these two things: \newcommand{\leftexp}[2]{{\vphantom{#2}}^{#1}{#2}} \newcommand{\hr}{\leftexp{*}{\mathbb{R}}} However, when I try to ...
3
votes
2answers
159 views

Why linebreaks break the line height within certain environments with size-changing macros?

Why linebreaks break the line height within certain environments with size-changing macros? I'm trying to understand what's the difference between these three approaches: \newenvironment between {} ...
93
votes
4answers
106k views

\vspace vs. \vskip [duplicate]

What is the difference between \vspace{-1em} and \vskip -1em, for example? I guess the first is LaTeX, and the latter is TeX. When is the proper time to use one and not the other, and why?
12
votes
1answer
9k views

Defining New ShortCuts in TexStudio

This is not about new macros like \newcommand, \def and others. This is not about autocompletion like using .cwl (in TexStudio) This is also not about using shortcuts for predefined commands that are ...
23
votes
8answers
1k views

What is the best way to scan over a list of somethings?

It seems that a common operation needed when defining new commands is to scan over a list of arguments (separated e.g. by a comma, but maybe by something else) and do something with each argument in ...
16
votes
3answers
2k views

Expand after all that stuff?

Often I find myself in the need of expanding some macro, whose contents should be given as an argument to another command. The usual solution is to invoke some \expandafter concoctions to somehow ...
15
votes
4answers
6k views

Optional arguments in \def

I want to re-define the \sqrt command (as detailed in Nice-looking p-th roots), and so far I have the following: \documentclass{article} \usepackage{fouriernc} % use the New Century Schoolbook font ...
20
votes
3answers
27k views

\uppercase in \newcommand

I tried to use \uppercase in \newcommand: \newcommand\universidad{My University} \newcommand\Universidad{\uppercase{\universidad}} When I use this I get My University and not MY ...
33
votes
3answers
794 views

Do fontsize environments exist?

Without any doubt there are fontsize switches in the form of control sequences (described here for instance.) But, from time to time I ran into code examples where environment versions of those were ...
24
votes
2answers
6k views

How do I split a string?

I need to split a string into one or more substrings. I know that I could use the xstring package, but I'd like to do it using only inbuilt TeX/LaTeX commands. So, if I say \def\MyTeXKnowledge{Not ...
22
votes
5answers
8k views

new command with cases / conditionals / 'if… then's

Suppose I want to define a command, say, \tree with, say, two arguments. I would like \tree to do different things depending on what my first argument is. For example, if #1 = a, then return ...
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 ...
12
votes
3answers
1k views

Censor text spanning multiple lines

I'd like to censor or hide some text while replacing it with the appropriate amount of white-space. The replacement text cannot be searchable. The text to be hidden usually exists in the LR mode. The ...
9
votes
4answers
2k views

Latex tag for making a comment appear or disappear in pdf?

Is it possible to tag sections of your .tex file so that you can make text appear or not? I have a long document and would like to be able to comment a certain section in each chapter, and produce ...
24
votes
4answers
3k views

On testing two fully expanded character strings for equality

I know three macros that test two fully expanded character strings for equality: \ifthenelse{\equal{<op1>}{<op2>}}{<true>}{<false>} (ifthen package) ...
15
votes
2answers
856 views

Equivalent of \show to display the LaTeX code in the document

I am looking for a command similar to show, but want the output in the document itself. All the examples I have found produce the output in the terminal, not the document. So, I want to replace the ...
14
votes
3answers
3k views

How to draw a irregular circle(shape)?

I want to draw some irregular circle(shape) in my wireless scenario. with a basestation in the center. around is some irregular circle(shape). I find something(could be used) in this web(but I feel ...
12
votes
2answers
155 views

How do you peer into the definition of a robust command?

I know that, whenever I want to see how some control sequence, say \mycontrolsequence, is defined, I can use \show\mycontrolsequence then compile my code and look up the .log file. However, robust ...
26
votes
2answers
2k views

Arguments for TikZ style

Motivation To put arrows inside of a TikZ path I have defined myself a TikZ style arrow inside. To make it even more portable I want it to take arguments like this \draw[arrow inside={pos = 0.1, end ...
24
votes
3answers
7k views

\DeclareMathOperator won't take arguments

I'd like to define a family of math operators that have the same superscript, but different subscripts. My first attempt was: \DeclareMathOperator{\Upd}[1]{U^M_{#1}} But the log tells me that: l.3 ...
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 ...
13
votes
5answers
1k views

Push/Pop or save a length/dimension?

Is it possible to push or pop a length like parindent? I want to change it temporarily but reset it soon after. I have a solution but looking for something a little nicer. I'll post it as an answer.
12
votes
4answers
3k views

How to replace text

I'd like to write something like this: \replace{Text should be replaced here, here and here}{here}{Latex} It should output Text should be replaced Latex, Latex and Latex How can this be done? ...
12
votes
3answers
7k views

How to change dot spacing in \dotfill?

I'm using the \dotfill command in a nomenclature to add units at the end of each line. Here is the code I'm using: \usepackage[refpage]{nomencl} \newcommand{\nomunit}[1]{% ...
9
votes
1answer
1k views

Highlighting line ranges in a lstlisting: partial solution, but expansion issues

In my quest for a better solution for How to change appearance of a particular line when using \lstincludelisting, I came across the linebackground= option Martin Scharrer added to the listings ...
20
votes
2answers
328 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 ...
17
votes
3answers
3k views

\newcommand: How to determine if in math mode (and then include $ $)?

I would like to define a new command which should determine (within a tikz plot) whether its argument is in math mode or not. If so, it should wrap the argument with $ $. I found \ifmode to do this, ...
15
votes
3answers
986 views

\def taking rest of the line as argument

I know how to define a macro that will take the rest of the paragraph as parameter. Simply write \def\a#1\par{\textbf{#1}}. But, how do I write a macro whose argument will extend to the end of the ...
14
votes
3answers
1k views

Command with variable number of arguments to format menu sequences

I would like to define a command that accepts a variable number of arguments: \menu{foo} % would result in \emph{foo} \menu{foo}{bar} % would result in \emph{foo} $\to$ \emph{bar} ...
10
votes
2answers
475 views

How do others manage their footnotes?

Sometimes I find footnotes either annoying or distracting when trying to edit the body of a text: particularly one which is heavily annotated with footnotes. One solution I've come up with is to ...
8
votes
1answer
3k views

Is there a LaTeX/TeX preprocessor/inliner that replaces only selected macros with their definitions?

I have the following situation: Like most LaTeX users that write much, I have my own header files where the packages I use normally are required and the macros I use often are defined. So if I write ...
7
votes
3answers
505 views

Looking for an \ignorespacesandpars

Is there an analogue of \ignorespaces which will also ignore the following \pars?
4
votes
3answers
2k views

Can (pdf)LaTeX recognize text strings and replace (expand) them?

I'd like LaTeX to replace e^ with \mathrm{e}^. I know I could just make a macro \e that does this, but I know I'll forget using it.. Can LaTeX find and replace and replace letter combinations (I ...
25
votes
3answers
781 views

Does \newenvironment have a \provideenvironment cousin, as \newcommand has \providecommand?

To avoid the problem of having to decide whether to use \newcommand or \renewcommand, LaTeX has the option of \providecommand. Is there something corresponding to this for environments? I'd like to ...
19
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: ...
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 ...
16
votes
1answer
2k views

How to redefine a command using \DeclareMathOperator

I'd like to declare some new operators using \DeclareMathOperator and some of the names are already taken by other commands (that I do not want to use). Is there an equivalent to the \renewcommand ...