6

I'm trying to typeset a relation. The following should read "< equals {...}", just in the same sense as one would use "x = {...}".

\documentclass{article}
\begin{document}
$< = \{(x, y), (y, z)\}$
\end{document}

However, the spacing seems to be off: there is too little spacing left of the =:

enter image description here

Now, I could play around with \, and its friends to try to get the spacing right, but I guess there has to be some clear way that does not involve explicitly modifying the space. I read something along the lines of $<{} = \{...\}$ somewhere, but that results in the space being too wide.

I guess this has been answered here before, but I couldn't find anything...

7

Use \mathord before the < to indicate that it is a symbol.

$\mathord< = \{(x, y), (y, z)\}$

For more information, see the quote in this answer.

  • Thanks, your answer works just as well -- sometimes it would really be nice if one could accept two answers here :). – rainer Jul 26 '13 at 8:08
  • 1
    @rainer This one is the correct answer; Jagath's one has better explanations of what's going on, though. No space is inserted between consecutive relation symbols, which are treated like a single one. – egreg Jul 26 '13 at 8:53
  • just putting braces around the symbol -- {<} -- will have the effect of making it a \mathord without specifying that explicitly. this was pointed out in a comment on another answer, but i thought it useful to put the information closer to an answer with a good explanation, – barbara beeton Jul 26 '13 at 13:51
3

The symbols < and = are both relational operators. You can see their definition in fontmath.ltx as given below:

\DeclareMathSymbol{=}{\mathrel}{operators}{"3D}
\DeclareMathSymbol{<}{\mathrel}{letters}{"3C}

They are declared as \mathrel (relational operators). My understanding is that, if they came adjacent, then the space will be closed up. To make < behave like a normal character, it should be treated as \mathalpha. So:

\documentclass{article}
\begin{document}
$\mathalpha{<} = \{(x, y), (y, z)\}$
\end{document}

In the above example, you will get space between < and = symbols.

  • 3
    The diagnosis is correct, but the cure is wrong: \mathalpha is not the correct command, which is \mathord (or just a pair of braces around <). – egreg Jul 26 '13 at 8:51
  • @egreg: I thought of considering < as math alphabet. – Jagath Jul 26 '13 at 9:16
  • 3
    The normal definition of \mathalpha is \relax; it's actually simply a place holder. Your code works because of the braces around <. – egreg Jul 26 '13 at 9:24
1

The easiest way to do this is to simply add a thick space \; after <. See the comparison with Jagath and ChrisS' answers:

enter image description here

  • Thanks for this, but I was trying to avoid fiddling around with explicit spacing to get what LaTeX deems correct instead of what looks nice to me. – rainer Jul 26 '13 at 9:25
  • Adding \; would still leave < considered as a binary relation symbol; if it comes first in a formula, no problem, but if it's not the first object … – egreg Jul 26 '13 at 9:29
  • You type the least stuff using \;, that's my point :) – Francis Jul 26 '13 at 9:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.