I've defined a couple simple macros to make my life a little easier:

```
\newcommand{\curl}[1]{\ensuremath{\nabla\times #1}}
\renewcommand{\v}[1]{{\ensuremath{\vec{#1}}}}
```

This way, in text mode I can write `\v{F}`

or `\curl{\v{F}}`

, and all is well.

But for simplicity, at least in math mode, I'd like to be able to just write `\curl\v{F}`

, and have it expand to

```
\ensuremath{\nabla\times {\ensuremath\vec{F}}}
```

just like `\curl{\v{F}}`

. Since I've defined `\curl`

in a pretty simple manner, this currently looks right. However, I think I'm actually getting a stranger behavior: if I change the definition of `\curl`

to have parentheses, like `{(\ensuremath{\nabla\times #1})}`

, then the vector symbol shows up over the closing parenthesis, as if the `\v`

(but not its argument) is being captured as an argument to `\curl`

.

Strangely, though, simply typing `\ensuremath{(\nabla\times {\ensuremath\vec})}`

results in errors.

What's going on here? Is there a good way to do this, and is it a good idea?

(By the way, the reason I have an extra pair of `{}`

in the definition of `\v`

is that it allows me to use `\int_\v{x}`

rather than `\int_{\v{x}}`

. This much seems to work, but I'm not really sure why.)

## Best Answer

You can do that in normal math mode if you define

Then

`\curl\v{F}`

will do exactly what you need but, unfortunately, not for subscripts.It's possible to make this work for subscripts, actually, but I don't think it's worthy using it (besides it's wrong because it fixes spaces when not used for a subscript):

Now

`$\int_\curl X$`

or`$\int_\curl\v{F}$`

will work. But only if`\v`

follows`\curl`

, not something like`\curl\mathbf{X}`

. So this is error prone and not recommendable at all.Your overuse of

`\ensuremath`

is wrong: it doesn't add to typing speed being able to write`\curl\v{F}`

instead of`$\curl\v{F}$`

.