I have been poking at this for a while and I have managed to get the character widths to come out pretty close to right. As a side effect I have corrected positioning problems with some of the characters, in particular, the "i". While doing this I have made some interesting observations. Horizontal position within the 64x64 cell is ignored. A character can be all the way to the right-hand side of the cell and the renderer will treat it the same as if it were on the left. The renderer starts at the first pixel on the left and renders until there are no more pixels in the cell. In the case of the "i", I put a small dot on the right side, created some space, placed the character, created more space, and placed another dot. The dots on the left and right-hand sides define a sort of horizontal bounding for the character. For the majority of characters, it is only necessary to place this bounding marker on the right in order to force the renderer to render empty space between the character and the marker.
In short, all characters are stretched or compressed horizontally to fit the width of the original characters plus the spacing around them. This has some unusual side effects for characters originally 1 pixel wide. Since the spacing between characters is also 1 pixel a character like a period, which is virtually the same in all character sets, is doubled in width and made to be more like a small dash "_" shaped like a rugby ball.
While each character is compressed or stretched horizontally on an individual basis to match character placement in the original game, this is not the case in the vertical. The entire character set is compressed so that the tallest character does not exceed the height of the maximum character height in classic Daggerfall. This, again, creates unexpected side effects. CapHeight and winAscent in classic Daggerfall were equivalent. This means that no character was taller than a capital letter. In modern fonts, this is almost never the case. In these fonts, the winAscent or maximum possible character height is about the same as the winDescent (the lowest possible point on a character) is below the baseline. This allows for the placement of accent marks above capital letters. As a result of this, SDF fonts are squished to allow characters that are likely never to be rendered, to be rendered at a height determined by the height of the capital letters in Classic. The upshot of this is that just about any modern font will be shortened by 10-20%.
As it happens this is what has happened to my font because I included international capital characters. This currently leaves three choices: Deal with the fact that an SDF font with ascendents above CapHeight will be shortened, Edit fonts to remove any marks above the CapHeight, Squish any characters with ascenders down to CapHeight.
In a perfect world, the mean maximum height of capital letters A-Z of an SDF font (discounting small bits that may venture into the ascendent region) should match the CapHeight in Classic. Ascendant characters should be allowed to render above the CapHeight/winAscent defined in classic as this is unlikely to cause any real problems. Line spacing in Daggerfall in more than sufficient to prevent problems.
For those of you who would like to try out the font I have created, I am including it below. For those of you who would like to know more about the technical aspects of fonts and the terminology I have been using, I am
including this link. Note that I have been using the term "character" rather than the more proper term "glyph" to avoid confusion. At some point in the near future, I will upload a font (possibly two) without ascenders above the CapHeight line.
To install the font copy it to ..\DaggerFall Unity\DaggerfallUnity_Data\StreamingAssets\Fonts. You may wish to rename the existing FONT0003-SDF.png to FONT0003-SDF.old or back it up elsewhere, so you can switch back. Happy Fonting.
Edit: One of the problems I ran into while trying to make the Daggerfont size correctly was that no matter what I did it would never render at the full height. My theory is that the SDF bounding box is exactly the same size as the original classic font. Since the SDF Fonts render with antialiased edges there is a sort of halo around each character. This is why there appears to be spacing between characters.
You can see that the SDF font overruns the spacing area but is still about 4 pixels away from the next character. The fact that characters are not touching is a benefit of a limitation in rendering. Because of this characters are rendered about 4-6 pixels smaller than Classic. Because the baseline is corrected for, all the 4-6 pixels of space is at the top, making SDF fonts a bit shorter. As you can see in the example, the descender on the "p" touches the bounding box but the CapHeight is well above where any characters render.