# LuaTeX and the minus / hyphen sign

In light of the explanations given in LuaTeX and em dashes

"\automatichyphenmode=1 avoids the problem by not converting the hyphen to a discretionary in a number of cases."

and the LuaTeX Reference Manual (8.2.7 disc nodes}

''The \discretionary and -, the - character but also the hyphenation mechanism produces these nodes.''

I looked at the node lists in 4 diferent cases involving the hyphen/minus sign, using both \automatichyphenmode=1 and \automatichyphenmode=0

The correct expected behavior (after the bug is fixed) will be that the glyph char 45 [-] nodes in the 4 cases will be produced as disc (automatic) nodes? (that is, mode=node (0) behavior will also be modified? glyph char 45 ==> disc in both columns?)

This a very very basic code. The output will match the table.

\automatichyphenmode=1

Glyph

Glyph ; Glyph

Glyph ; Glyph

Glyph ; Disc > Subtype 2 ; Glyph

\automatichyphenmode=0

Glyph

Glyph ; Glyph

Disc > Subtype 2 ; Glyph

Glyph ; Disc > Subtype 2; Glyph

    % !TeX TS-program = lualatex

\documentclass{minimal}
\usepackage{fontspec}
\directlua{
if head.id == 0 or head.id == 1 then % hlist, vlist
texio.write_nl(" ")
elseif head.id == 7 then             % disc
texio.write_nl("Disc > Subtype " .. head.subtype)
elseif head.id == 29 then             % glyph
texio.write_nl("Glyph ")
end
end

end
}

\begin{document}
\begin{minipage}{20pt}
\automatichyphenmode=1    % good for en dash and em dash
-

A-

-B

A-B
\end{minipage}

\begin{minipage}{20pt}
\automatichyphenmode=0
-

A-

-B

A-B
\end{minipage}

\end{document}

• If you add some code I can test - I have the fix already locally. – Ulrike Fischer Apr 1 at 21:15
• @Mico I would like to know if the fix for the ''en'' and ''em'' dashes bug will change both the mode=base and mode=node, in order to match the Ref Manual. I started \automatichyphenmode=1 as recommend, but it looks that this setting not önly "this suppress line breaking in a number of cases" but has other effects as well. Up to now the incorrect node generation does not have any consequenses, but it could, at a later time. – Simon Dispa Apr 1 at 21:26

The result of your test file is with tl19 and the next luaotfload version for automatichyphenmode=1 is:

Glyph

Glyph
Glyph

Glyph
Glyph

Glyph
Disk > Subtype 2
Glyph


with automatichyphenmode=0 I get:

Glyph

Glyph
Glyph

Disk > Subtype 2
Glyph

Glyph
Disk > Subtype 2
Glyph


This is imho identical to your table, and it is also the expected result. The hyphen is only converted to a discretionary if is is between glyphs (both cases) or before a glyph (0).

The fix you mentioned doesn't change anything here. It only resolves a problem with ligatures consisting of three chars (which affected --- to).

• I do not see why it is "the expected result" nor why they are different. What do you make of the sentence in LuaTeX Reference Manual (8.2.7 disc nodes}? ''The \discretionary and -, the - character but also the hyphenation mechanism produces these nodes.'' I expected to get (always) Disc > Subtype 2 Glyph Disc > Subtype 2 Disc > Subtype 2 Glyph Glyph Disc > Subtype 2 Glyph By the way, the hyphenation mechanism produces Disc > Subtype 3 which is fine imho. – Simon Dispa Apr 2 at 12:04
• You don't always want the hyphen to be a discretionary. E.g. as a german I don't want a breakpoint after the hyphen in -saft. For me the behaviour is sensible, if you want something else you should make a feature request at the luatex mailing list. – Ulrike Fischer Apr 2 at 12:10
• I agree with you, this is the sensible behaviour. Perhaps the wording of the Manual is not explicit enough. I am going to accept your answer. Thank you. – Simon Dispa Apr 2 at 12:32
• The wording of the documentation is in many places unclear (and sometimes even wrong). – Ulrike Fischer Apr 2 at 12:34