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.

Is there any way to remove spaces from in between the words in a text? Something like

\RemoveSpaces{This is   my    sentence.}

which will be converted to

Thisismysentence.

share|improve this question
    
Why would you want to do this? –  User 17670 Mar 6 '13 at 15:48
    
As a deterrent against copy and pasting the real text from the resulting searchable PDF file. –  Reza Mar 6 '13 at 20:18

3 Answers 3

up vote 42 down vote accepted
\makeatletter
\def\RemoveSpaces#1{\zap@space#1 \@empty}
\makeatother
share|improve this answer
    
I didn't believe it, but ... it works! –  tohecz Dec 18 '12 at 14:53

A different approach, that ensures correct hyphenation and line breaks between words is

\newcommand{\RemoveSpaces}[1]{%
  \begingroup
  \spaceskip=1sp
  \xspaceskip=1sp
  #1%
  \endgroup}

This reduces the interword space to the minimum possible positive value (that's not visible to the human eye), but still paragraphs will be built as usual. Complete example:

\documentclass{article}
\usepackage[latin]{babel}
\usepackage{ragged2e}
\usepackage{lipsum}
\def\RemoveSpaces#1{%
  \begingroup
  \spaceskip1sp
  \xspaceskip1sp
  #1%
  \endgroup}

\begin{document}
\parbox{5cm}{\RaggedRight
\RemoveSpaces{\lipsum[2]}
}
\end{document}

enter image description here

share|improve this answer

a solution with lualatex for all spaces between words in a paragraph. Kerning and discretionaries are not affected.

\documentclass[english]{article}
\usepackage{babel,libertine,luacode,blindtext}
\begin{luacode*}
function rSpace(List)
 for line in node.traverse_id(0,List) do -- go through all lines
   for s in node.traverse_id(10,line.head) do node.remove(line.head,s) end 
 end 
 return List
end
\end{luacode*}
\begin{document}
\blindtext \par
\directlua{luatexbase.add_to_callback("post_linebreak_filter",rSpace,"rSpace")}
\blindtext \par

\end{document}

enter image description here

share|improve this answer

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.