Da \newcommand selbst ein langes Argument akzeptiert, ist \par in der Definition kein Problem
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{red}{#1}\par}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm}}
\end{minipage}
\end{document}
Einen Fehler gibt es nur mit
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{red}{#1}}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm\par}}
\end{minipage}
\end{document}
Runaway argument?
{Wortbandwurm
! Paragraph ended before \namestyle was complete.
<to be read again>
\par
l.13 {Lorem \namestyle{Wortbandwurm\par
Na gut, machen wir \namestyle also \long
\renewcommand{\namestyle}[1]{{\namefont\textcolor{red}{#1}}}
aber TeX beschwert sich noch immer
Runaway argument?
{Wortbandwurm
! Paragraph ended before \@textcolor was complete.
<to be read again>
\par
l.13 {Lorem \namestyle{Wortbandwurm\par}
die Meldung hat sich aber leicht geändert: Nicht mehr \namestyle ist unzufrieden; diesmal ist es \@textcolor. Denn \textcolor möchte auch kein \par sehen. Lösen kann man das mit \color statt \textcolor.
\renewcommand{\namestyle}[1]{{\namefont\color{red} #1}}
Die eingangs gezeigte Lösung, bei der das \par direkt im Befehl ist, finde ich aber wesentlich schöner, da es ja nur da sein muss, da wir mit \namefont die Schriftgröße umstellen: Das soll ein Nutzer aber gar nicht wissen müssen. Auch da kann man natürlich die \color statt \textcolor nehmen, was sich wegen \namefont vielleicht sogar etwas natürlicher anfühlt
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\color{red} #1\par}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm}}
\end{minipage}
\end{document}
Da [tt]\newcommand[/tt] selbst ein langes Argument akzeptiert, ist [tt]\par[/tt] in der Definition kein Problem
[code]\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{red}{#1}\par}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm}}
\end{minipage}
\end{document}[/code]
Einen Fehler gibt es nur mit
[code]\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\textcolor{red}{#1}}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm\par}}
\end{minipage}
\end{document}[/code]
[code]Runaway argument?
{Wortbandwurm
! Paragraph ended before \namestyle was complete.
<to be read again>
\par
l.13 {Lorem \namestyle{Wortbandwurm\par[/code]
Na gut, machen wir [tt]\namestyle[/tt] also [tt]\long[/tt]
[code]\renewcommand{\namestyle}[1]{{\namefont\textcolor{red}{#1}}}[/code]
aber TeX beschwert sich noch immer
[code]Runaway argument?
{Wortbandwurm
! Paragraph ended before \@textcolor was complete.
<to be read again>
\par
l.13 {Lorem \namestyle{Wortbandwurm\par}[/code]
die Meldung hat sich aber leicht geändert: Nicht mehr [tt]\namestyle[/tt] ist unzufrieden; diesmal ist es [tt]\@textcolor[/tt]. Denn [tt]\textcolor[/tt] möchte auch kein [tt]\par[/tt] sehen. Lösen kann man das mit [tt]\color[/tt] statt [tt]\textcolor[/tt].
[code]\renewcommand{\namestyle}[1]{{\namefont\color{red} #1}}[/code]
Die eingangs gezeigte Lösung, bei der das [tt]\par[/tt] direkt im Befehl ist, finde ich aber wesentlich schöner, da es ja nur da sein muss, da wir mit [tt]\namefont[/tt] die Schriftgröße umstellen: Das soll ein Nutzer aber gar nicht wissen müssen. Auch da kann man natürlich die [tt]\color[/tt] statt [tt]\textcolor[/tt] nehmen, was sich wegen [tt]\namefont[/tt] vielleicht sogar etwas natürlicher anfühlt
[code]\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{xcolor}
\newcommand*{\namefont}{\huge\scshape}
% nur damit \renewcommand geht,
% normalerweise würde man hier natürlich nur \newcommand nehmen
\newcommand*{\namestyle}[1]{}
\renewcommand*{\namestyle}[1]{{\namefont\color{red} #1\par}}
\begin{document}
\begin{minipage}{1em}
{Lorem \namestyle{Wortbandwurm}}
\end{minipage}
\end{document}[/code]