[Dev-luatex] [luatex] Line breaks

Heiko Oberdiek heiko.oberdiek at googlemail.com
Sat Feb 19 13:38:27 CET 2011


On Sat, Feb 19, 2011 at 12:25:47PM +0100, Paul Isambert wrote:

> Le 19/02/2011 12:12, Dirk Laurie a écrit :
> >The following are not equivalent on my system (texlive, ubuntu lucid):
> >
> >% excerpt from TeX file
> >This is a paragraph
> >with some lines.
> >
> >This is another paragraph,
> >separated from the first
> >by a blank line.
> >% end excerpt
> >
> >% another excerpt
> >\directlua{ text = [[
> >This is a paragraph
> >with some lines.
> >
> >This is another paragraph,
> >separated from the first
> >by a blank line. ]]
> >tex.print(text)}
> >% end excerpt
> >
> >The second excerpt sets as a single paragraph.
> 
> Which confirms something I'd been suspecting for a while but never
> really investigated: blank lines aren't turned into \par in
> \directlua,

No, the conversion is done by TeX, \directlua sees the \par then.
But tex.print removes the \par, perhaps because of

| Each string argument is treated by TEX as a separate input line.

Also interesting:

| The very last string of the very last tex.print() command in a
| \directlua will not have the \endlinechar appended, all others do.

But a statement about \par filtering of tex.print() would be useful
for the documentation.

Minimal example (luatex --ini):

\catcode`\{=1
\catcode`\}=2
\expandafter\def\expandafter\x\expandafter{%
  \directlua{tex.print('a \par b')}%
}\show\x
\csname @@end\endcsname\end

Result: "a b"

Yours sincerely
  Heiko Oberdiek


More information about the dev-luatex mailing list