-1

Let's assume that we wish to insert some kind of small space inside abbreviations such as i. e., e. g., d. h., z. B., a. C., d. C., и т. д., и т. п., … Above, I entered a hair space “ ” (U+200A). (Whether it's a good decision or not, depends on the language, the styleguide, the editor, and the author. For the purpose of this post, it's just a simple assumption.) In \nonfrenchspacing, we might consider doing this by skipping 1/24 em (1/24 em is mentioned in http://helpx.adobe.com/illustrator/using/special-characters.html ; some folks as in http://forum.glyphsapp.com/t/creating-hair-space-thin-space-figure-space-punctuation-space/12542/6 take 1/25 em; some folks as in http://www.myfonts.com/pages/fontshop-adventures-in-space_spaces take 1/3 of a thin space without saying how wide their “thin” is) and allowing for some stretching/shrinking (just for the rare cases in which there's not enough space to stretch/shrink elsewhere on the line; if you typeset lots of text, you run into them eventually):

(1) First, define

\newcommand{\hairsp}{\hskip.0416666666em plus.0208333333em minus.0208333333em}

or

\newcommand{\hairsp}{\hspace{.0416666666em plus.0208333333em minus.0208333333em}}

(2) Second, say

i.\hairsp e., e.\hairsp g., d.\hairsp h., z.\hairsp B., a.\hairsp C., d.\hairsp C., и т.\hairsp д., и т.\hairsp п.

Or should we say

i.\@\hairsp e., e.\@\hairsp g., d.\@\hairsp h., z.\@\hairsp B., a.\@\hairsp C., d.\@\hairsp C., и т.\@\hairsp д., и т.\@\hairsp п.

in step (2)?

My own tests failed to distinguish between the outcome of the two possibilities in step (2), but, maybe, I didn't do the right tests?

AlMa1r
  • 411

1 Answers1

2

{.0416666666em there is no point using that many decimal digits, tex uses fixed point arithmetic to about 5dp.

As you are adding space via \hskip rather than a word space, \spacefactor and so \@ will have no effect.

Generally if you want to use a skip I would base the values on the font dimensions rather than em (that is fontdimen 2,3,4 rather than 6) see What do different \fontdimen<num> mean

David Carlisle
  • 757,742
  • Alright, thx! Is it about the control sequence or about the amount of skip? I could imagine saying something along the lines of i.\@\hskip\fontdimen2e. (it doesn't compile). Btw., Adobe says that the hair space is 1/24 em (source: https://helpx.adobe.com/illustrator/using/special-characters.html). If you have a different (and presumably better for the usage here) reference for the width of a hair space or think that some linear combination of \fontdimen2, \fontdimen3, and \fontdimen4 should be used inside the abbreviations, I'd like to hear it. – AlMa1r Feb 03 '24 at 19:19
  • 2
    no \@ only affects the space added by a space character it has no effect on any glue added by hskip – David Carlisle Feb 03 '24 at 19:20
  • 1
    I refer to the fontdimens as you (unlike adobe) chose to make it stretchy and if you use the font dimens then it's stretchiness is releated to the stretchiness generally used by the current font. athough with such small values it probably makes no practical difference @AlMa1r – David Carlisle Feb 03 '24 at 19:22
  • On my long texts, introducing the stretch and shrink values into “d.\hspace{…}h.” makes a visible difference in the output compared to having no stretch/shrink there. As for the amount of stretch and shrink, I don't know, since I never tested for what could be more pleasant but simply took stretch = shrink = 50 % of the natural width. Better suggestions for the percentages in the use case here? – AlMa1r Feb 03 '24 at 19:27
  • For cmr10, a thin space (0.16667em) is approximately equal to 1/6em and to half space (=0.5\fontdimen2). However, for newtx, this breaks: 0.16667em is still approximately equal to 1/6em and to 01.66672pt but is blatantly different from half a space (= 1.25pt = 2.5pt/2 = 0.5\fontdimen2). So for newtx, the difference between basing on \fontdimen6 and \fontdimen2 is very noticeable. – AlMa1r Feb 04 '24 at 06:13