TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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...

share|improve this question
up vote 17 down vote accepted

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

share|improve this answer
Thanks a lot, this works great! – akobel Feb 18 '12 at 16:09
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. – Peter Grill Feb 18 '12 at 16:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.