# automatic spacing between words in math mode

In math mode, something like $if f x > 3 then 42 else y$ typesets to this:

Obviously, spacing is wrong here, and I need to correct manually: $if \: f \: x > 3 \: then \: 42 \: else \: y$ typesets to

1. Which is the correct amount of space to insert?
2. Is there a way to automate this process, i.e. automatically insert a space between "words" separates by spaces in the source?
-
Please read some LaTeX tutorial before you start typing, e.g., tobi.oetiker.ch/lshort/lshort.pdf chapter 3. – Alex Jun 2 '13 at 12:59
I'm not new to LaTeX - just new to functional-programming-style expressions in math mode :-) – fefrei Jun 2 '13 at 13:19

the spacing is the least of the problems, the letters are all wrong as well. The math italic font has wide side-bearings specifically so that adjacent letters do not look like letters forming a word but rather the usual mathematical use as implied multiplication of separate variables. To use a multi-letter identifier you need to use a text font, then inter-word spacing will automatically work as well, although you would need to use \quad or a similar space if embedding the text in math mode..

if  $f x > 3$  then $42$  else $y$


or if you need to embed it in display math

$\textrm{if} \quad f x > 3 \quad \textrm{then} \quad 42 \textrm{else} \quad y$

-
Which spacing would you use for $f x$? – fefrei Jun 2 '13 at 12:55
@felix-freiberger: What is f x? Do you mean f(x)? – Marco Daniel Jun 2 '13 at 12:56
@felix-freiberger sorry I dropped the f by mistake, babara just put them back so see edited answer. – David Carlisle Jun 2 '13 at 12:57
f x is a functional application in a functional programming language like Haskell. – fefrei Jun 2 '13 at 12:58
@felix-freiberger either fx as above or perhaps \mathop{f{}}x which would give the same spacing as a mult-letter identifier like \log – David Carlisle Jun 2 '13 at 13:02