code: function processNumberOnly() {
      var size = parseInt(tokens[0].token);
      tokens.shift();
      if (!currentSetting) {
        warn("Can't set just the size of the font since there is no default value.", str, position);
        return { face: "\"Times New Roman\"", weight: "normal", style: "normal", decoration: "none", size: size};
      }
      if (tokens.length === 0) {
        return { face: currentSetting.face, weight: currentSetting.weight, style: currentSetting.style, decoration: currentSetting.decoration, size: size};
      }
      if (tokens.length === 1 && tokens[0].token === "box" && fontTypeCanHaveBox[cmd])
        return { face: currentSetting.face, weight: currentSetting.weight, style: currentSetting.style, decoration: currentSetting.decoration, size: size, box: true};
      warn("Extra parameters in font definition.", str, position);
      return { face: currentSetting.face, weight: currentSetting.weight, style: currentSetting.style, decoration: currentSetting.decoration, size: size};
    }
docs: Every font parameter has the following format: <face> <utf8> <size> <modifiers> <box> Where: face: either a standard web font name, or a postscript font, enumerated in fontTranslation. This could also be an * or be missing if the face shouldn't change. utf8: This is optional, and specifies utf8. That's all that is supported so the field is just silently ignored. size: The size, in pixels. This may be omitted if the size is not changing. modifiers: zero or more of "bold", "italic", "underline" box: Only applies to the measure numbers, gchords, and the parts. If present, then a box is drawn around the characters. If face is present, then all the modifiers are cleared. If face is absent, then the modifiers are illegal. The face can be a single word, a set of words separated by hyphens, or a quoted string.  So, in practicality, there are three types of font definitions: a number only, an asterisk and a number only, or the full definition (with an optional size).