von Stefan K » So 2. Nov 2008, 22:10
In der Hoffnung, euch zu motivieren eure Übungsaufgabenlösungen zu veröffentlichen. Ich selbst nutze/weiterentwickle das Skript seit dem letzten Semester. Wer also seine Übungen sowieso in tex macht und bash und sed installiert hat, kann damit seine Lösung so umwandeln, dass das Forum sie ansprechend anzeigt. Denn den Code einfach reinzukopieren funktioniert leider nicht immer.
Man muss zwar immernoch drübergucken, aber meist sind nur noch Kleinigkeiten manuell zu machen. Und es Ist natürlich auf meinen Schreibstil und meine Abkürzungen angepasst.
- Code: Alles auswählen
#! /bin/bash
#
# Umwandeln von LaTeX-Code in Forum-Code
#
# Ein primitives sed-Script, dass hauptsaechlich an der richtigen Stelle die
# [tex]-Marken einfuegt und einige Befehle in mimeTeX-lesbare Form umwandelt.
#
# Stefan Kriwanek
# rev. 2008-10-18
#
# Was es (z.B.) nicht kann:
# \intertext-Umgebungen, die über mehr als eine Zeile gehen, oder \(\)-Umgebungen enthalten
# $$ $$ anstatt der \[ \] oder $ $ anstatt \( \)
#
# Aufruf mit
# tex2mimetex.sh datei.als.tex [datei.als.mimetex]
#
#
if [ $# -ge 1 ]
then
ff1=$1
if [ $# -eq 2 ]
then
ff2=$2
else
ff2=${ff1}.mimetex.txt
fi
# Das Leerzeichen hinter jedem Eintrag ist wichtig.
# Kommentarzeilen
sstat=$sstat'-e /^%/d '
# Kommentare, die nicht am Anfang stehen.
sstat=$sstat'-e s;[^\]%.*$;; '
# Mathe-Umgebungen
sstat=$sstat'-e s;\\\(\[\|(\);\[tex\];g '
sstat=$sstat'-e s;\\\(\]\|)\);\[/tex\];g '
sstat=$sstat'-e s;\\begin{\(align\|gather\|eqnarray\|equation\)\*\?};\[tex\]&;g '
sstat=$sstat'-e s;\\end{\(align\|gather\|eqnarray\|equation\)\*\?};&\[/tex\];g '
sstat=$sstat'-e s;\\begin{proof};\[i\]Beweis.\[/i\]; '
sstat=$sstat'-e s;\\end{proof};\[i\]q.e.d.\[/i\]; '
sstat=$sstat'-e s;\\begin{itemize};\[list\]; '
sstat=$sstat'-e s;\\end{itemize};\[/list\]; '
sstat=$sstat'-e s;\\item;\[\*\]; '
sstat=$sstat'-e s;\\intertext{\([^{}]*\)};\\\\\\text{\1}\\\\; '
sstat=$sstat'-e s;\\qedhere;; '
#
sstat=$sstat'-e s;\\section{\([^{}]*\)};[size=150]\1[/size]; '
sstat=$sstat'-e s;\\subsection{\([^{}]*\)};[b]\1[/b]; '
sstat=$sstat'-e s;\\subsubsection{\([^{}]*\)};[b][i]\1[/i][/b]; '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]\([^{]\)\([^{]\);\\\1{\2}{\3};g '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]\([^{]\){;\\\1{\2}{;g '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]{\([^{}]*\)}\([^{]\);\\\1{\2}{\3};g '
# '\ ' -> ' '
sstat=$sstat'-e s;\\\x20;\x20;g '
# Umlaute
sstat=$sstat'-e s;\\\"a;ä;g '
sstat=$sstat'-e s;\\\"o;ö;g '
sstat=$sstat'-e s;\\\"u;ü;g '
sstat=$sstat'-e s;\\\"A;Ä;g '
sstat=$sstat'-e s;\\\"O;Ö;g '
sstat=$sstat'-e s;\\\"U;Ü;g '
sstat=$sstat'-e s;\"a;ä;g '
sstat=$sstat'-e s;\"o;ö;g '
sstat=$sstat'-e s;\"u;ü;g '
sstat=$sstat'-e s;\"A;Ä;g '
sstat=$sstat'-e s;\"O;Ö;g '
sstat=$sstat'-e s;\"U;Ü;g '
# (Leerzeichen ist \x20, Tab ist \x09)
sstat=$sstat'-e s;\\ss[\x20\x09\\];ß;g '
sstat=$sstat'-e s;\\ss$;ß;g '
# eigene Kommandos muss er auch wissen
sstat=$sstat'-e s;\\dd\([tx]\);\\frac{\\text{d}}{\\text{d}\1};g '
sstat=$sstat'-e s;\\dd^;\\text{d}^;g '
sstat=$sstat'-e s;\\dd\\;\\text{d}\\;g '
sstat=$sstat'-e s;\\dd\(\x20\|\x09\|$\);\\text{d}\x20;g '
sstat=$sstat'-e s;\\pt\(\x20\|\x09\|$\);\\partial_;g '
sstat=$sstat'-e s;\\pt{};\\partial\x20;g '
sstat=$sstat'-e s;\\pp{\([^{]*\)}{\([^{]*\)};\\frac{\\partial{\1}}{\\partial{\2}};g '
sstat=$sstat'-e s;\\ppt{\([^{]*\)};\\frac{\\partial{\1}}{\\partial{t}};g '
sstat=$sstat'-e s;\\stackvec{\([^{}]*\)};\\begin{pmatrix}\1\\end{pmatrix};g '
# Die Forum-Software möchte immer geschweifte Klammern haben, auch wenn bloß ein Zeichen gemeint ist, sonst gibt's falsche Formatierungen
sstat=$sstat'-e s;\\\(ddot\|dot\|mathbb\|sqrt\|text\|vec\)[\x20\x09]\([^{]\);\\\1{\2};g '
# eigene
sstat=$sstat'-e s;\\\(pt\)[\x20\x09]\([^{]\);\\\1{\2};g '
sed $sstat < $ff1 > $ff2
else
echo "Zu wenig Parameter"
fi
In der Hoffnung, euch zu motivieren eure Übungsaufgabenlösungen zu veröffentlichen. Ich selbst nutze/weiterentwickle das Skript seit dem letzten Semester. Wer also seine Übungen sowieso in tex macht und bash und sed installiert hat, kann damit seine Lösung so umwandeln, dass das Forum sie ansprechend anzeigt. Denn den Code einfach reinzukopieren funktioniert leider nicht immer.
Man muss zwar immernoch drübergucken, aber meist sind nur noch Kleinigkeiten manuell zu machen. Und es Ist natürlich auf meinen Schreibstil und meine Abkürzungen angepasst.
[code]
#! /bin/bash
#
# Umwandeln von LaTeX-Code in Forum-Code
#
# Ein primitives sed-Script, dass hauptsaechlich an der richtigen Stelle die
# [tex]-Marken einfuegt und einige Befehle in mimeTeX-lesbare Form umwandelt.
#
# Stefan Kriwanek
# rev. 2008-10-18
#
# Was es (z.B.) nicht kann:
# \intertext-Umgebungen, die über mehr als eine Zeile gehen, oder \(\)-Umgebungen enthalten
# $$ $$ anstatt der \[ \] oder $ $ anstatt \( \)
#
# Aufruf mit
# tex2mimetex.sh datei.als.tex [datei.als.mimetex]
#
#
if [ $# -ge 1 ]
then
ff1=$1
if [ $# -eq 2 ]
then
ff2=$2
else
ff2=${ff1}.mimetex.txt
fi
# Das Leerzeichen hinter jedem Eintrag ist wichtig.
# Kommentarzeilen
sstat=$sstat'-e /^%/d '
# Kommentare, die nicht am Anfang stehen.
sstat=$sstat'-e s;[^\]%.*$;; '
# Mathe-Umgebungen
sstat=$sstat'-e s;\\\(\[\|(\);\[tex\];g '
sstat=$sstat'-e s;\\\(\]\|)\);\[/tex\];g '
sstat=$sstat'-e s;\\begin{\(align\|gather\|eqnarray\|equation\)\*\?};\[tex\]&;g '
sstat=$sstat'-e s;\\end{\(align\|gather\|eqnarray\|equation\)\*\?};&\[/tex\];g '
sstat=$sstat'-e s;\\begin{proof};\[i\]Beweis.\[/i\]; '
sstat=$sstat'-e s;\\end{proof};\[i\]q.e.d.\[/i\]; '
sstat=$sstat'-e s;\\begin{itemize};\[list\]; '
sstat=$sstat'-e s;\\end{itemize};\[/list\]; '
sstat=$sstat'-e s;\\item;\[\*\]; '
sstat=$sstat'-e s;\\intertext{\([^{}]*\)};\\\\\\text{\1}\\\\; '
sstat=$sstat'-e s;\\qedhere;; '
#
sstat=$sstat'-e s;\\section{\([^{}]*\)};[size=150]\1[/size]; '
sstat=$sstat'-e s;\\subsection{\([^{}]*\)};[b]\1[/b]; '
sstat=$sstat'-e s;\\subsubsection{\([^{}]*\)};[b][i]\1[/i][/b]; '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]\([^{]\)\([^{]\);\\\1{\2}{\3};g '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]\([^{]\){;\\\1{\2}{;g '
sstat=$sstat'-e s;\\\(frac\)[\x20\x09\]{\([^{}]*\)}\([^{]\);\\\1{\2}{\3};g '
# '\ ' -> ' '
sstat=$sstat'-e s;\\\x20;\x20;g '
# Umlaute
sstat=$sstat'-e s;\\\"a;ä;g '
sstat=$sstat'-e s;\\\"o;ö;g '
sstat=$sstat'-e s;\\\"u;ü;g '
sstat=$sstat'-e s;\\\"A;Ä;g '
sstat=$sstat'-e s;\\\"O;Ö;g '
sstat=$sstat'-e s;\\\"U;Ü;g '
sstat=$sstat'-e s;\"a;ä;g '
sstat=$sstat'-e s;\"o;ö;g '
sstat=$sstat'-e s;\"u;ü;g '
sstat=$sstat'-e s;\"A;Ä;g '
sstat=$sstat'-e s;\"O;Ö;g '
sstat=$sstat'-e s;\"U;Ü;g '
# (Leerzeichen ist \x20, Tab ist \x09)
sstat=$sstat'-e s;\\ss[\x20\x09\\];ß;g '
sstat=$sstat'-e s;\\ss$;ß;g '
# eigene Kommandos muss er auch wissen
sstat=$sstat'-e s;\\dd\([tx]\);\\frac{\\text{d}}{\\text{d}\1};g '
sstat=$sstat'-e s;\\dd^;\\text{d}^;g '
sstat=$sstat'-e s;\\dd\\;\\text{d}\\;g '
sstat=$sstat'-e s;\\dd\(\x20\|\x09\|$\);\\text{d}\x20;g '
sstat=$sstat'-e s;\\pt\(\x20\|\x09\|$\);\\partial_;g '
sstat=$sstat'-e s;\\pt{};\\partial\x20;g '
sstat=$sstat'-e s;\\pp{\([^{]*\)}{\([^{]*\)};\\frac{\\partial{\1}}{\\partial{\2}};g '
sstat=$sstat'-e s;\\ppt{\([^{]*\)};\\frac{\\partial{\1}}{\\partial{t}};g '
sstat=$sstat'-e s;\\stackvec{\([^{}]*\)};\\begin{pmatrix}\1\\end{pmatrix};g '
# Die Forum-Software möchte immer geschweifte Klammern haben, auch wenn bloß ein Zeichen gemeint ist, sonst gibt's falsche Formatierungen
sstat=$sstat'-e s;\\\(ddot\|dot\|mathbb\|sqrt\|text\|vec\)[\x20\x09]\([^{]\);\\\1{\2};g '
# eigene
sstat=$sstat'-e s;\\\(pt\)[\x20\x09]\([^{]\);\\\1{\2};g '
sed $sstat < $ff1 > $ff2
else
echo "Zu wenig Parameter"
fi
[/code]