# Which expression is more common and defining for LaTeX commands - command or macro?

I've seen many questions using the word command or commands. There are also questions writing macro or macros. Regarding tagging, which should be the master and which the synonym mapped to it? Until now, the tag [macros] is widely used. But it won't be a problem to merge it with [commands] if we desire. Or do you think, those terms may be separated?

Pro [commands]:

• searching for "commands" gives 19 pages, searching for "macros" just 2. The latter is a result of the "macros" tag. (The search feature switches to tag search automatically.)

• LaTeX is a macro language. Does [macros] tell anything specific? Though we could distinguish between commands, environments, lengths, counters, ifs and more. I prefer to have [commands], [environments], [lengts] and so on.


I don't wish to make a great fuss about just one tag, though commands and macros are a very basic concept and I'm interested in opinions.

If you agree, please vote the question up or tell it by a comment or an anwer.

If you disagree, please tell it in an answer (or comment) which may be voted up.

• Wouldn’t it be likely that new users add a commands tag to just about every question? – Caramdir Aug 22 '10 at 9:48
• Since you're proposing a definite change to the site, I think the [feature-request] tag would be appropriate here. – Charles Stewart Aug 24 '10 at 10:36
• @Charles: this concerns just tagging, no feature. I though at first, you mean the questions regarding commands and environments and if we introcuce a visual sign in tags (backslash or curly braces). – Stefan Kottwitz Aug 24 '10 at 12:59
• @Caramdir: avoiding this by using macros instead of commands is a bit 'security through obscurity' ;-) But you're right, adding commands (but also macros) (to not general commands-related questions) might be tempting. – Stefan Kottwitz Aug 24 '10 at 15:40
• @Stefan: Take a look at meta.stackexchange.com/questions/tagged/retag-request - on meta.SO, use of [feature-request] and [retag-request] is used to build support for complex or controversial changes to tags. A point for using [feature-request], even though moderators might not be needed to make the change happen, is that it signals that voting is supporting or opposing the idea, rather than saying the idea is worth discussing. – Charles Stewart Aug 25 '10 at 8:04
• Somebody seems to have created the custom-command tag. Should that be merged? – Caramdir Aug 27 '10 at 9:29
• Yes, I merged it. – Stefan Kottwitz Aug 27 '10 at 18:40

For me, a macros tag would imply that the submitter has a question regarding a custom \newcommand that he\she is constructing, and it doesn't work as expected (does that happen often?). Otherwise, if said user has problems with an "official" command from widely available third-party package, a commands tag would seem more natural.

So, I think macros should stay, but its intended use should be clear.

• In that case the commands tag is about as superfluous as the latex tag. – Caramdir Aug 22 '10 at 9:45
• You're right, of course. Apparently I haven't paid enough attention to what Stefan said. – Martin Tapankov Aug 22 '10 at 10:55
• So, \*command commands might imply the tag macros, not commands. :-D Well, such general tags might be confusing. But introducing macro-definition wouldn't be of much help. But we will see. At least here's a place to talk about. – Stefan Kottwitz Aug 24 '10 at 15:46

Two points of programming language terminology:

1. Not all commands are macros: \input is a command, but as a Tex primitive, it is not a macro.
2. Not all macro uses are command invocations: you can assign contents to macros, and use them with \ifx conditionals without ever expanding them.

The second seems a rather thin point: macro expansions are (potentially imperative) command executions, and \ifx can be seen as an introspective equality test.

So, commands are macros plus primitives. And so the case is strengthened that [macros] should be a synonym for [commands].

According to this answer by user Sašo Živanović to my question "What is “plain TeX”?", a command can be a primitive (from "virgin TeX") or a macro.

How about [command-creation] or something similar that contains “command“ but is more specific than [commands]?