Steffen Schwigon schrieb:
Wenn Du willst können wir aber ein Thema zu einem PerlMongers-Treffen draus machen. Bzw. gibt's den TeX-Stammtisch noch? Dann gerne auch da. Dann schaue ich es mir mal genauer an. Damals ist es beim Webseiten-Lesen geblieben. Ich hätte aber Lust, das mal zu eruieren.
Ich will folgendes Beispiel ausbauen. Das enstand, weil LaTeX zwar ein \ifthenelse{}{}{} hat, aber keine regular expressions kennt. Jetzt waere meine Frage, ob Du vielleicht eine nette Idee hast, was man mit Perl und LaTeX noch so anstellen koennte. Am Ende dieser E-Mail steht uebrigens die Adresse von PerlTeX.
%%%%%%%%%%%%%%%%%%%%%%%%%% Beginn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\listfiles \documentclass[a4paper]{article} \usepackage{perlmacros}
%% arg0 ist eine Zeichenkette %% arg1 ist eine regular expression %% Wenn arg0 =~ arg1 : dann fuehre die %% LaTeX-Kommandos aus arg2 aus, sonst %% die LaTeX-Kommandos aus arg3.
\perlnewcommand{\wenn}[4]{ if ($_[0] =~ /$_[1]/){ return $_[2] } else { return $_[3] } }
\begin{document} \section{Perl\TeX} \subsection{Beispiel} \begin{tabular}{@{}ll@{}} Ist 1000 eine ganze Zahl? & \wenn{1000}{^[+-]?[0-9]+$}{Ja}{Nein}\ Ist -1000 eine ganze Zahl? & \wenn{1000}{^[+-]?[0-9]+$}{Ja}{Nein}\ Ist 100x eine ganze Zahl? & \wenn{100x}{^[+-]?[0-9]+$}{Ja}{Nein}\ Ist x2 ein Variablenname? & \wenn{x2}{[a-zA-Z_][a-zA-Z_0-9]}{Ja}{Nein}\ Ist 2x ein Variablenname? & \wenn{2x}{[a-zA-Z_][a-zA-Z_0-9]}{Ja}{Nein}\ \end{tabular}
\subsection{\LaTeX{}-Nutzerhinweis} Die Argumente der perl-Kommandos werden von 0 bis (n-1) ausgewertet.
\subsection{Fazit} \wenn{Superlativ}{perl}{Perl ist \emph{gut}}{} :-)
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ende %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
http://tug.ctan.org/tex-archive/macros/latex/contrib/perltex/ http://tug.ctan.org/tex-archive/macros/latex/contrib/perltex/perltex.pdf
Im Perl-Teil kann man sich zu Kontrollzwecken Variablen auf die Konsole ausgeben lassen.
Normaler Aufruf: perltex ptex2.tex pdfLaTeX-Aufruf: perltex -latex=pdflatex beispiel.tex
Stefan
.