Ending strings with non-break space in lang-txt.lua
Hi! I've got a few unfortunate line breaks in my documents. In particular, breaks are introduced in between the string “page” and the number: See figure 1 at page 2. The reason is that many strings in lang-txt.lua end in a space, rather than a non-break space: ["atpage"]={ ["labels"]={ … ["en"]="at page ", … I fixed this by defining \setuplabeltext [en] [atpage=at page\nbsp] So I wonder: Does it ever make sense to have a regular space at the end of those commands? I just skimmed through the file and most, if not all, strings ending in a space would actually benefit from having it replaced by a non-break space IMO. Example: \def\pageref#1%% {\in{figure}[#1] \labeltext{atpage}\at[#1]} \starttext \hsize 3cm See \pageref{foo}. \page \startplacefigure [reference=foo] \stopplacefigure \stoptext Marco
On Wed, 5 Dec 2018 19:47:31 +0100
Marco Patzer
Hi!
I've got a few unfortunate line breaks in my documents. In particular, breaks are introduced in between the string “page” and the number:
See figure 1 at page 2.
The reason is that many strings in lang-txt.lua end in a space, rather than a non-break space:
["atpage"]={ ["labels"]={ … ["en"]="at page ", …
I fixed this by defining
\setuplabeltext [en] [atpage=at page\nbsp]
So I wonder: Does it ever make sense to have a regular space at the end of those commands? I just skimmed through the file and most, if not all, strings ending in a space would actually benefit from having it replaced by a non-break space IMO.
Example:
\def\pageref#1%% {\in{figure}[#1] \labeltext{atpage}\at[#1]}
\starttext \hsize 3cm See \pageref{foo}.
\page \startplacefigure [reference=foo] \stopplacefigure \stoptext
I agree, it drives me nuts to see p. 5 or in Figure 8 etc. Also, how about: \at{\labeltext{atpage}}[#1] (and does this make the space in the label redundant?) In any case it is a bit sloppy... Alan
On 12/5/2018 10:29 PM, Alan Braslau wrote:
On Wed, 5 Dec 2018 19:47:31 +0100 Marco Patzer
wrote: Hi!
I've got a few unfortunate line breaks in my documents. In particular, breaks are introduced in between the string “page” and the number:
See figure 1 at page 2.
The reason is that many strings in lang-txt.lua end in a space, rather than a non-break space:
["atpage"]={ ["labels"]={ … ["en"]="at page ", …
I fixed this by defining
\setuplabeltext [en] [atpage=at page\nbsp]
So I wonder: Does it ever make sense to have a regular space at the end of those commands? I just skimmed through the file and most, if not all, strings ending in a space would actually benefit from having it replaced by a non-break space IMO.
Example:
\def\pageref#1%% {\in{figure}[#1] \labeltext{atpage}\at[#1]}
\starttext \hsize 3cm See \pageref{foo}.
\page \startplacefigure [reference=foo] \stopplacefigure \stoptext
I agree, it drives me nuts to see p. 5 or in Figure 8 etc.
Also, how about:
\at{\labeltext{atpage}}[#1]
indeed, that is the command to use
(and does this make the space in the label redundant?) In any case it is a bit sloppy... can you experiment with this
\unexpanded\def\leftofreferencecontent {\removeunwantedspaces \nobreakspace \ignorespaces} ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Thu, 6 Dec 2018 09:34:57 +0100
Hans Hagen
Also, how about:
\at{\labeltext{atpage}}[#1]
indeed, that is the command to use
Don't get too hung up on that command. That was just a quick way to demonstrate the point and create an MWE.
can you experiment with this
\unexpanded\def\leftofreferencecontent {\removeunwantedspaces \nobreakspace \ignorespaces}
This fixes the MWE, but it doesn't prevent all "unfortunate" line breaks caused by the spaces. At least it doesn't if \labeltext is used separately to obtain the translated strings. Currently I use (in one of my modules): \def\foo{\labeltext\v!atpage\currentreferencepage} This works (as by your suggestion): \def\foo{\labeltext\v!atpage \removeunwantedspaces\nobreakspace\ignorespaces \currentreferencepage} Which basically replaces the space with a non-break space after the fact. So I wonder if it's not a better solution to fix the initial definitions. But I might be mistaken or I'm overlooking something where this might cause issues. Marco
On 12/6/2018 10:26 AM, Marco Patzer wrote:
On Thu, 6 Dec 2018 09:34:57 +0100 Hans Hagen
wrote: Also, how about:
\at{\labeltext{atpage}}[#1]
indeed, that is the command to use
Don't get too hung up on that command. That was just a quick way to demonstrate the point and create an MWE.
can you experiment with this
\unexpanded\def\leftofreferencecontent {\removeunwantedspaces \nobreakspace \ignorespaces}
This fixes the MWE, but it doesn't prevent all "unfortunate" line breaks caused by the spaces. At least it doesn't if \labeltext is used separately to obtain the translated strings.
Currently I use (in one of my modules):
\def\foo{\labeltext\v!atpage\currentreferencepage}
This works (as by your suggestion):
\def\foo{\labeltext\v!atpage \removeunwantedspaces\nobreakspace\ignorespaces \currentreferencepage}
Which basically replaces the space with a non-break space after the fact.
So I wonder if it's not a better solution to fix the initial definitions. But I might be mistaken or I'm overlooking something where this might cause issues. it then interferes with mechanisms that inject spaces themselves (as \at{...}[]
(i'll add am auto check space and replace by nonbreak space trick) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Alan Braslau
-
Hans Hagen
-
Marco Patzer