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

It seems to be impossible to combine \obeyspaces and \read in the following manner:

  \obeyspaces  % Deleting this line removes the error
  \read\myread to \myinput

The \tracingall doesn't really help me for understanding the problem.

share|improve this question
Your example has no \obeyspaces: please edit your example so we can see what you are doing (probably including an example myfile.txt). – Joseph Wright Jan 6 '13 at 10:03
up vote 6 down vote accepted

You just need to preserve normal spaces around the \read syntax:

  \def\doread#1#2{\immediate\read#1 to #2}


1 1
2  2
3   3


This is TeX, Version 3.1415926 (TeX Live 2012)
1 1 
2  2 
3   3 
No pages of output.
share|improve this answer
Thanks for your answer, which answers my question. How could I have found out that I need to preserve "normal" (what is the differences to the \obeyspaces?) spaces around the \read syntax to solve problems like this on my own in the future? – Penguin Nurse Jan 6 '13 at 12:07
obeyspaces makes space into an active character with a definition similar to ~ so that it always typesets as a real space and is never dropped by the input scanner. spaces around tex primitives need to delimit the arguments but be dropped... not sure where best to learn these things other than asking here (after 25 years of using tex it's not always easy to remember how you pick these things up at the start:-) – David Carlisle Jan 6 '13 at 12:20
from the TeXbook perhaps? ;-) – jfbu Jan 6 '13 at 16:20
@jfbu not really. TeXBook, or actually more simply just looking at the plain or latex sources will tell you the definition of \obeyspaces, but it takes some experience to spot the implications of that definition on other macros. – David Carlisle Jan 6 '13 at 16:29

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.