Is there a new incompatibility between ragged2e an scrlttr2?
My suggestion is to “robustify” \@centercr
(which is the meaning \\
is given under \raggedright
).
\documentclass{scrlttr2}
\makeatletter
\MakeRobust\@centercr
\makeatother
\raggedright
\begin{document}
\begin{letter}{x\\ x \\ x}
\opening{Hi,}
Text
\closing{Bye}
\end{letter}
\end{document}
It's the same if you use \RaggedRight
, because it uses \@centercr
as well.
The KOMA-Script bug is fixed in the current prerelease of the next KOMA-Script Version (will be 3.27a):
\documentclass{scrlttr2}[2019/10/28]% needs at least version 3.27a.3319
\usepackage{lipsum}% only for dummy text
\usepackage{ragged2e}
\RaggedRight
\begin{document}
\begin{letter}{ x \\ x \\ x }
\opening{Hi,}
Recipient: \usekomavar{toname}, \usekomavar[\def\\{, }]{toaddress}
\lipsum[1]
\closing{Bye}
\end{letter}
\end{document}
Possible workarounds for KOMA-Script Version 3.27:
\documentclass{scrlttr2}
\usepackage{lipsum}% only for dummy text
\usepackage{ragged2e}
\AtBeginLetter{\RaggedRight}% <- changed
\begin{document}
\begin{letter}{ x \\ x \\ x }
\opening{Hi,}
Recipient: \usekomavar{toname}, \usekomavar[\def\\{, }]{toaddress}
\lipsum[1]
\closing{Bye}
\end{letter}
\end{document}
or
\documentclass{scrlttr2}
\usepackage{lipsum}% only for dummy text
\usepackage{ragged2e}
\RaggedRight
\begin{document}
\begin{letter}{ x \\ x \protect\\ x }% <- changed
\opening{Hi,}
Recipient: \usekomavar{toname}, \usekomavar[\def\\{, }]{toaddress}
\lipsum[1]
\closing{Bye}
\end{letter}
\end{document}