Most of the times the minus sign in my documents is so thin and so short that I have a hard time seeing it on a printed copy. Is there a way to alter the thickness of the line for the minus sign (and, for matching purposes, the plus sign also)?
[Tex/LaTex] Thicker line for minus sign and plus sign
math-mode
Related Solutions
Would something as simple as a \scalebox
do?
\documentclass{article}
\usepackage{fixltx2e,graphicx,mathpazo}
\begin{document}
\( \sqrt{\scalebox{0.75}[1.0]{\( - \)}\frac{1}{9}} \)
% cf.
\( \sqrt{-\frac{1}{9}} \)
\end{document}
Here, I am using the optional argument to \scalebox
to set the vertical scaling to 1, so that only the horizontal size changes.
The inspection of the math list happens after expansion (and after assignments). It is an extra stage just applicable to math mode that converts the math list into a horizontal list that is then typeset as a normal horizontal list.
So there is no real connection between the macro structure and the math spacing, It does not matter whether the thing to the left of the +
has arguments or not, it just matters what it expands to (nothing in your example) so your example is equivalent to
\noindent
\( +x\) \\ % unary: "+x"
\( +x\) \\ % unary: "+x"
\({} +x\) \\ % binary: " + x"
\( +x\) \\ % unary: "+x"
\({} +x\) \\ % binary: " + x"
and as your comments show a binop like +
gets binary spacing if it is between two mathord atoms such as {}
or x
.
Your example (from elsewhere, with \somecommand
being a zero-argument macro)
\(\somecommand{} {+} x\)
is
\({} {+} x\)
Here the {+}
construct makes a mathord so you get no spacing. My comment that this was probably bad markup was mainly related to the trailing {}
after \somecommand
it is OK to do that habitually in text mode to avoid dropping spaces but in math mode it's usually has an effect.
\(\somecommand{} {+ x}\)
is
\({} {+ x}\)
so here the math list has two, not three, mathord atoms: {}
and +x
. In this simple case it doesn't affect the spacing, but the inner expression is a single atom, so {+x}
(and not x
) would take any superscripts etc, and as it is an inner list linebreaking is suppressed and any white space is forced to its natural width (again not relevant here); basically in math node {...}
is a box command like \hbox{....}
.
There are in fact two choices for a unary math sign, a mathord or a mathop, it's easy to get an ad hoc mathord by using {+}
but it is probably more consistent to declare the operators explicitly.
1 $a-+b$
2 $a-{+}b$
3 $a-\mathord{+}b$
4 $a-\mathop{+}b$
5 $x+y$
6 $x{+}y$
7 $x\mathord{+}y$
8 $x\mathop{+}y$
As you see from (1) if two binop atoms are adjacent the second one effectively turns into a mathord so you get the spacing as in (2) or (3) although arguably as a prefix operator giving it mathop spacing (with a small gap before its argument) is more consistent.
either way you don't want to be filling you document expressions with weird {}
constructs and \mathxx
primitives, just define
\unaryplus{{+}}
or whatever version you like and then use
a + \unaryplus b
and it will all work out OK.
Best Answer
Here's one way to do it:
I used How can I get bold math symbols? for obtaining thicker math symbols and I also used Joining characters in latex with no visible space between them to extend the minus sign (although you can slightly tell it has been overlapped, which doesn't seem perfect). The new command definitions make it more convenient for you to use.