The timing in Morse code is based around the length of one "dit" (or "dot" if you like). From the dit length we can derive the length of a "dah" (or "dash") and the various pauses:
Proficiency in Morse code is measured in how many words per minute someone can send or receive. This seems a tricky concept given that you can send more short words per minute than long ones. The work-around is to standardise on the word "PARIS" as the standard word, so if Morse is being sent at 20 words per minute (or "20 wpm") then the word "PARIS" (or, more precisely "PARIS " with a space on the end) could be sent 20 times in a minute.
The neat thing about "PARIS " is that it's a nice even 50 units long. It translates to ".--. .- .-. .. .../" so there are:
A grand total of $10 + 12 + 9 + 12 + 7 = 50$ units.
Given this (and the fact that there are 60 seconds in a minute) we can therefore make a formula to find the length of a dit, $t_{dit}$ in seconds for a given wpm speed, $s_{wpm}$:
\begin{align} \text{words per minute} &= s_{wpm} \nonumber \\ \text{minutes per word} &= {1 \over s_{wpm}} \nonumber \\ \text{seconds per word} &= {60 \over s_{wpm}} \nonumber \\ \text{dits per word} &= 50 \nonumber \\ \text{seconds per dit} = t_{dit} &= {60 \over 50 s_{wpm}} \label{tdit} \end{align}It's clear that this makes sense: we know that for 1 wpm (i.e. $s_{wpm} = 1$) you must fit 50 dits into a minute and the formula says $t_{dit} = 60/50$. As the speed ($s_{wpm}$) goes up, the length of $t_{dit}$ goes down (they are "inversely proportional") which also makes sense.
People learning Morse code often use what is called "Farnsworth" timing to make recognising the sound patterns easier. Rather than slowing down the whole sound, it is better to keep the character sounds at a moderately fast speed and just increase the gaps between the characters and words to give more recognition time. The speed of the characters are determined by the normal WPM speed ($s_{wpm}$) but the Farnsworth speed ($s_{fwpm}$) determines the actual number of words per minute. That is:
where one Farnsworth-unit is longer than the basic unit. How to calculate the inter-character space and the word space though?
Going back to the breakdown of "PARIS " above, we can see that given the characters stay at the $s_{wpm}$ speed, the part that we need to stretch out is the 4 inter-character spaces and the 1 word space (19 units) and the part that needs to stay at the same speed is 31 standard $t_{dit}$ units.
The length of a dit is therefore the same as before (see \eqref{tdit}):
$$ t_{dit} = {60 \over 50 s_{wpm}} \nonumber $$For the length of the word "PARIS " we use the slower Farnsworth words per minute speed, or $s_{fwpm}$. One word ("PARIS ") should take this many seconds:
$$ \text{time to transmit `PARIS '} = {60 \over s_{fwpm}} \text{ seconds} \label{paris} $$The time for the 31 standard units in "PARIS " should be this many seconds:
$$ \text{time for the 31 standard units in `PARIS '} = 31 \times t_{dit} \text{ seconds} \label{paris31} $$Subtracting \eqref{paris31} from \eqref{paris} leaves the amount of seconds for the inter-character spaces and the word space:
$$ \text{time for 19 Farnsworth units} = {60 \over s_{fwpm}} - 31 t_{dit} \text{ seconds} \nonumber $$There are 19 Farnsworth units, so each one takes this many seconds:
$$ \text{time for 1 Farnsworth unit} = t_{fdit} = {(60 / s_{fwpm}) - 31 t_{dit} \over 19} \text{ seconds} \label{tfdit} $$Using \eqref{tfdit} we can then look at the ratio of $t_{fdit} / t_{dit}$
\begin{align} {t_{fdit} \over t_{dit}} &= {(60 / s_{fwpm}) - 31 t_{dit} \over 19 t_{dit}} \nonumber \\ &= {60 / s_{fwpm} \over 19 t_{dit}} - {31 t_{dit} \over 19 t_{dit}} \nonumber \\ &= {60 \over 19 s_{fwpm} t_{dit}} - {31 \over 19} \label{ratio} \end{align}Substituting \eqref{tdit} into \eqref{ratio}:
\begin{align} {t_{fdit} \over t_{dit}} &= {60 \times 50 s_{wpm} \over 19 s_{fwpm} \times 60} - {31 \over 19} \nonumber \\ &= {50 \over 19}\cdot{s_{wpm} \over s_{fwpm}} - {31 \over 19} \nonumber \\ &= {50s_{wpm} - 31s_{fwpm} \over 19s_{fwpm}} \label{ratio2} \end{align}It's easy to check that if $s_{fwpm} = s_{wpm}$ then, using \eqref{ratio2} we see $t_{fdit} / t_{dit} = 1$ which makes sense.
Alternatively, we can substitute \eqref{tdit} into \eqref{tfdit} to get an expression for $t_{fdit}$ in terms of the two speeds:
\begin{align} t_{fdit} &= { {60 \over s_{fwpm}} - 31 t_{dit} \over 19} \nonumber \\ &= { {60 \over s_{fwpm}} - {31 \times {60 \over 50 s_{wpm}}} \over 19} \nonumber \\ &= {60 \times 50 s_{wpm} - 31 \times 60 s_{fwpm} \over 19 \times 50 s_{wpm} s_{fwpm}} \nonumber \\ &= {300 s_{wpm} - 186 s_{fwpm} \over 95 s_{wpm} s_{fwpm}} \text{ seconds}\label{tfdit2} \end{align}We can check that if $s_{fwpm} = s_{wpm}$ then \eqref{tfdit2} works out the same as \eqref{tdit}.
Although this derivation is a little different, you will find it comes out the same as the equations described by Jon Booom (KE3Z) in an ARRL article which Ronald L. pointed me to and which is about as definitive as I can find. ARRL is the (USA) national association for Amateur Radio.