2

Yesterday I could swear the horizontal spacing between the end of the item-label (a number followed by dot) of a numbered-list and the item-text following that label is 5.2pt, although the output (\showoutput log) shows 5.0. After running some tests today, it's (surprisingly) not 5.2pt but 5.05. Considering today's code was not a copy of yesterday's (which cannot be recovered by now, unfortunately), most likely explanation is changes in the code. However, 5.05pt is still not 5.0. That's one issue I would like a feedback from you about.

The second issue is that there's no length macro I know of that defines the spacing in question (between a list-label and its item) while such macros are usually available for adjustment (so I can't adjust the spacing of the list).

Now let's go through the following demonstration.

\documentclass[varwidth]{standalone}
\usepackage{fontspec}
\setmainfont{Georgia}
\showoutput
\begin{document}
  \begin{enumerate}
  \item{}hello
  \end{enumerate}
  1.\ hello

  \newlength\spaceWidth
  \settowidth{\spaceWidth}{\ }
  \the\spaceWidth % 2.41211pt
\end{document}

...........\TU/Georgia(0)/m/n/10 1.
.........\glue 5.0
........\penalty 0
........\TU/Georgia(0)/m/n/10 hello

........\TU/Georgia(0)/m/n/10 1.
........\glue 2.41211 plus 1.20605 minus 0.80403
........\TU/Georgia(0)/m/n/10 hello

(Space of 2.41211pt is less than glue of 5.0pt.)

Replace 1.\ hello with 1.\makebox[5.0pt]{}hello (and remove \the\spaceWidth):

\begin{enumerate}
\item{}hello
\end{enumerate}
1.\makebox[5.0pt]{}hello

...........\TU/Georgia(0)/m/n/10 1.
.........\glue 5.0
........\penalty 0
........\TU/Georgia(0)/m/n/10 hello

........\TU/Georgia(0)/m/n/10 1.
........\hbox(0.0+0.0)x5.0, glue set 2.5fil
.........\glue 0.0 plus 1.0fil minus 1.0fil
.........\glue 0.0 plus 1.0fil minus 1.0fil
........\TU/Georgia(0)/m/n/10 hello

Perfect (so far)!

Now remove \setmainfont{Georgia}:

Obviously, 5.0pt is NOT enough.

Let's try 5.05pt: replace 1.\makebox[5.0pt]{}hello with 1.\makebox[5.05pt]{}hello:

Perfect.

What's your take on it? Thank you.

1
  • 1
    Your question is not clear, but the length you allude to has a name: it is \labelsep.
    – Bernard
    Jun 2, 2019 at 21:22

1 Answer 1

6

In your document, both strings start at different horizontal positions. This difference does not account to a whole number of pixels on your screen, so you can't perfectly align the dots. So comparing the position on the h becomes meaningless. If you look closely at your last picture containing both hellos, you see that the red line does not touch both dots in the same way.

To get a more meaningful picture, you can ask TeX to indent your text in the same way it indents the label:

\documentclass[varwidth]{standalone}
\usepackage{fontspec}
\showoutput
\begin{document}
  \begin{enumerate}
  \item{}hello
  \end{enumerate}
  \settowidth\leftskip{1.} % Don't do this in a real document!
  \advance\leftskip -20pt
  \leftskip-\leftskip
  \noindent1.\makebox[5.0pt]{}hello
\end{document}

This moves the 1. hello to the right to align with the label list entry. Now both are perfectly aligned, both the 1. and the hello. So the distance actually is exactly 5pt.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .