For a list of bullet-separated items, I want the separator to be swallowed if it is the first or last element of the line. That is, I want something like

  \ifnolinebreak%    <=== HERE'S THE PROBLEM
Aa Bb \and Cc Dd \and veryveryverylongE \and Ff Gg \and H

to end up like

Aa Bb   *   Cc Dd
Ff Gg     *     H

I know that \discretionary can be exploited in the following way:


This does the job, but unfortunately I can't find a way to insert a stretchable skip in the discretionary definition. Thus, it looks awkward in justified mode:

Aa   Bb * Cc   Dd
Ff         Gg * H

Any ideas how to implement the \ifnolinebreak? If it matters, for this project I use LuaLaTeX...

1 Answer 1


Borrowing code by Marcin Woliński published as the TeX pearl "How to make a box disappear at a line break" one can do

  \hskip 2pt plus 1pt minus 1pt
  \hskip 2pt plus 1pt minus 1pt

some text \AND some text \AND
someveryverylongword \AND
text \AND text}

enter image description here

  • I am wowed by the cleverness of how you demonstrated that the code actually works. I will have to keep this in mind as it is a lot easier than what I have used in the past: \usepackage[paperwidth=4.0cm]{geometry} and then tweak the value until it is correct. Commented Feb 18, 2012 at 16:52

You must log in to answer this question.

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