Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm writing a text in spanish, and I have a phrase wrote between em-dashes (that work like parentheses). The problem is that if the "opening" em-dash is too near the end of the line, then it may happen that it remains in that line but the next word falls to the next:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
libero ---accumsan vulputate---. Praesent pretium dapibus est interdum 
hendrerit.

bad result

What I need to get in this example, is the opening em-dash and its next word to be in the same line, like this:

good result

where I had to use

\mbox{---accumsan}

Is there a simple way to make LaTex not to break the opening em-dash with its next word, and also the ending em-dash with its previous word?

share|improve this question
    
I am not sure about the specifics of the spanish language when compared to french. Could you have a look if this link to a similar question works for you as well: tex.stackexchange.com/questions/16156/babel-frenchb-and-em-dash –  Andy Oct 25 '11 at 4:54
add comment

1 Answer 1

up vote 9 down vote accepted

Since you are writing in Spanish, you surely are using the spanish option for babel. If this is the case, then you can use the shorthand "+-- to prevent a possible line break. A little example:

\documentclass{article}
\usepackage[spanish]{babel}

\begin{document}

%wrong output:
\noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
 ---accumsan vulputate---. Praesent pretium dapibus est interdum 
hendrerit.

%right output:
\noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
 "+--accumsan vulputate"+--. Praesent pretium dapibus est interdum 
hendrerit.

\end{document}

enter image description here

Another option is to use the \nobreakdash command implemented by the amsmath package; this command suppresses any line break after the dash (or hyphen). Of course, if you are going to use this a lot, you can define a new command to simplify the writing. In the following example I defined two commands using \nobreakdash: the first variant will prevent hyphenation of the word following the em-dash; the second variant will allow normal hyphenation in the following word:

\documentclass{article}
\usepackage{amsmath}

\newcommand\RayaN{\nobreakdash---}
\newcommand\Rayan{\nobreakdash---\hspace{0pt}}

\begin{document}

\noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
 ---accumsan vulputate---. Praesent pretium dapibus est interdum 
hendrerit.

\noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
 \RayaN accumsan vulputate\RayaN. Praesent pretium dapibus est interdum 
hendrerit.

\noindent Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam a leo quis 
 \Rayan accumsan vulputate\Rayan. Praesent pretium dapibus est interdum 
hendrerit.

\end{document}​

enter image description here

share|improve this answer
    
I would suggest the addition of xspace to accommodate for the following scenario the requires an end-of-command-sequence space: ...a leo quis \Rayan accumsan vulputate\Rayan lorem ipsum.... This OP did mention that the em-dashes act like parentheses. –  Werner Oct 25 '11 at 5:30
    
Thank you Gonzalo, it worked perfectly using "+-- with babel (which I was already using, as you correctly thought). –  Nicolás Oct 26 '11 at 2:54
add comment

Your Answer

 
discard

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.