Pasando por permutaciones de sustantivos y verbos.

Pasando por permutaciones de sustantivos y verbos.

Mi hija está aprendiendo a leer; Estoy aprendiendo TeX. Entonces necesito tu ayuda en esto:

Tengo una serie/una lista de sustantivos (básicamente nombres de personas y dos criaturas míticas llamadasFara y Fu:

noun = ["Fu", "Fara", "Uta", "Mama", "Mami", "Ralf", "Lara", "Mara", "Murat", "Marta", "Mamut", "Ira", "Mira", "Maria" ]

Junto a esto va una lista de verbos que puede leer:

verb = ["malt", "ruft", "umarmt" ]

Estoy buscando una manera de componer automáticamente todas las permutaciones posibles y sensatas de sustantivos y verbos, como esta lista que mi simple script Ruby ya genera:

Maria umarmt Mama.
Maria malt Uta mit mir.
Mara malt Maria.
Fu malt Mamut.
Marta malt Mama.

Por "sensible" quiero decirnotener cosas como

Fu umarmt Fu.

ya que es físicamente imposible abrazarse a uno mismo (a menos que seas James Bond).

A cada frase se le puede añadir aleatoriamente el texto "mit mir" (junto conmigo).

¿Por qué látex? rubysolo genera texto, y aquí viene la solicitud número dos:

Las sílabas de las palabras deben colorearse blue-red-blue-red-....por first-second-third-...sílaba, como esta:

lista de trabajo

En nombre de mi hija (y del mío, por supuesto) - ¡Gracias!


Mi configuración actual según mi comentario a continuación:

\documentclass[18pt,oneside,a4paper]{scrartcl}

\usepackage{pgfmath,color}
\usepackage[doublespacing]{setspace}

%Einstellungen der Seitenrnder
\renewcommand{\familydefault}{\sfdefault}
\usepackage{helvet}
\usepackage[left=4cm,right=3cm,top=3cm,bottom=3cm,includeheadfoot]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0.5pt}

%Fu§zeile mittig
\fancyfoot[C]{\thepage}
%Linie unten
\renewcommand{\footrulewidth}{0.5pt}

%neue Rechtschreibung
\usepackage{ngerman}

\def\noun{%
{{Fu}},{{Fa}{ra}},{{U}{ta}},{{Ma}{ma}},%
{{Ma}{mi}},{{Ralf}},{{La}{ra}},%
{Ma}{ra},{{Mu}{rat}},{{Mar}{ta}},%
{{Ma}{mut}},{I}{ra},{Mi}{ra},{{Ma}{ri}{a}}%
}

\def\verb{{{malt}},{{ruft}},{{um}{armt}}%
}

\def\zc{\expandafter\zzblue}
\def\zzblue#1{%
\ifx\relax#1\else\textcolor{blue}{#1}%
\expandafter\zzred
\fi}

\def\zzred#1{%
\ifx\relax#1\else\textcolor{red}{#1}%
\expandafter\zzblue
\fi}

\begin{document}

\makeatletter


\@for\za:=\noun\do{%
\@for\zb:=\noun\do{%
\ifx\za\zb\else
\@for\v:=\verb\do{
\par\zc\za\relax\ \zc\v\relax\ \zc\zb\relax
\pgfmathparse{random(2)}%
\ifnum\pgfmathresult=1\ \textcolor{blue}{mit mir}\fi.

}%
\fi
}}

\end{document}


\pgfmathparse{random(8)}%
\let\zza\pgfmathresult

\pgfmathparse{random(8)}%
\show\pgfmathresult

Respuesta1

\documentclass{article}
\usepackage{pgfmath,color}
\def\noun{%
{{Fu}},{Fa}{ra},{{Uta}},{Ma}{ma},%
{Ma}{mi},{{Ralf}},{La}{ra},%
{Ma}{ra},{Mu}{rat},{Mar}{ta},%
{Ma}{mut},{Ir}{a},{Mir}{a},{Ma}{ri}{a}%
}

\def\verb{{{malt}},{{ruft}},{um}{armt}%
}

\def\zc{\expandafter\zzblue}
\def\zzblue#1{%
\ifx\relax#1\else\textcolor{blue}{#1}%
\expandafter\zzred
\fi}

\def\zzred#1{%
\ifx\relax#1\else\textcolor{red}{#1}%
\expandafter\zzblue
\fi}

\begin{document}

\makeatletter


\@for\za:=\noun\do{%
\@for\zb:=\noun\do{%
\ifx\za\zb\else
\@for\v:=\verb\do{
\par\zc\za\relax\ \zc\v\relax\ \zc\zb\relax
\pgfmathparse{random(2)}%
\ifnum\pgfmathresult=1\ \textcolor{blue}{mit mir}\fi.

}%
\fi
}}

\end{document}


\pgfmathparse{random(8)}%
\let\zza\pgfmathresult

\pgfmathparse{random(8)}%
\show\pgfmathresult

información relacionada