Escape sequences are inserted into the ouput as appropriate:
?- writeq('hel\nlo').
'hel\nlo'
true.
But
?- write('hel\nlo').
hel
lo
true.
Same as for strings, as expected:
?- write("hel\nlo").
hel
lo
true.
and
?- writeq("hel\nlo").
"hel\nlo"
true.
Note that the \n is translated by the Prolog reader into a single newline, it is NOT in the atom or string as such
?- A='hel\nlo',atom_length(A,L). A = 'hel\nlo', L = 6.