LaTeX hat ja einfachen ASCII Quelltext als Input. Ich habe mir hier einen eigenen "Präprozessor" gebaut.
Dazu habe ich einfach \i[@ missbraucht.
Wenn ich z.B. \i[@code][cat /path/to/header.h] schreibe, wird die Ausgabe von "cat /path/to/header.h" einfach mit reingezogen. Anstatt cat kann da jedes beliebige Programm aufgerufen werden. Z.B. grep ...
Ich kann mir Teile der Doku also aus anderen Quellen holen, damit das LaTeX Dokument automatisch auf aktuellen Stand ist.
So etwas geht natürlich nicht, wenn ich eine Lösung über einen Provider verwende.
Statt nur cat lässt sich da auch gleich ein Shellskript aufrufen, dass z.B. git pull etc. macht und dann erst cat.
Auf diese Weise kann man z.B. die (vorverarbeitete) Ausgabe von make usw. in ein pdf oder html Dokument einbauen, dass dann z.B. automatisch auf einen Webserver geschoben wird. Statt mit make all wird das Compilieren dann mit latex make.tex gestartet — ungewöhnlich aber funktioniert.
Du hast einen dringenden Bedarf allen auf die Nase zu binden, dass Du ein Sonderfall bist und Du bist es tatsaechlich, denn dein Hack toent, als wuerdest Du LaTeX nicht allzu gut kennen.
Versuch in Zukunft etwas relevantes zu schreiben anstatt Artikel zu missbrauchen um anderen deine vermeintlich brillanten Loesungen aufzudraengen. Nur dein letzter Satz offenbart, um was es in deinem Post eigentlich geht.
Ich verstehe leider nicht einmal was du genau machst. Wenn ich \i[@code][cat /path/to/inhalt.txt] in das latexfile schreibe, bekomme ich als Ausgabe lediglich: i[@code][cat /path/to/inhalt.txt]
Kannst du mir sagen, wie ich das auch hinkriege? Respektive wo ich dies Nachlesen kann.
> Das ist nicht LaTeX sondern sein persoenlicher Hack. > http://stackoverflow.com/questions/3252957/how-to-execute-shell-script-from-latex
So ist es und ich bin scheinbar auch nicht allein mit der Idee.
Ich habe einfach ein Tag/Befehl für meinen Präprozessor in Beschlag genommen und darauf geachtet, dass mir das Syntax Highlighting der Editoren dadurch nicht kaputt geht.
Mein Haupt-Verwendungszweck ist Code-Schnipsel aus einem laufenden Projekt in das Dokument mit einfließen zu lassen, damit der Schnipsel immer up to date ist. Z.B. werte ich die Doxygen Kommentare im Quelltext aus. Das macht wieder ein simples selber geschriebenes "grep"-tool, das anstatt des "cat" eingebunden ist.
Das Paket bashful (http://www.ctan.org/pkg/bashful) bietet eine einfaches Interface, um die Ausgaben von Programmen direkt beim Kompilieren mit einzubinden.
Oder machen das mehr Anwender von LaTeX ?
LaTeX hat ja einfachen ASCII Quelltext als Input.
Ich habe mir hier einen eigenen "Präprozessor" gebaut.
Dazu habe ich einfach
\i[@
missbraucht.
Wenn ich z.B.
\i[@code][cat /path/to/header.h]
schreibe, wird die Ausgabe von "cat /path/to/header.h" einfach mit reingezogen.
Anstatt cat kann da jedes beliebige Programm aufgerufen werden.
Z.B. grep ...
Ich kann mir Teile der Doku also aus anderen Quellen holen,
damit das LaTeX Dokument automatisch auf aktuellen Stand ist.
So etwas geht natürlich nicht, wenn ich eine Lösung über einen Provider verwende.
ich nehme einfach git
Mir ging es aber nicht um git ja/nein,
sondern um einen Präprozessor.
Nein, Du bist kein Sonderfall.
Statt nur cat lässt sich da auch gleich ein Shellskript aufrufen, dass z.B. git pull etc. macht und dann erst cat.
Auf diese Weise kann man z.B. die (vorverarbeitete) Ausgabe von make usw. in ein pdf oder html Dokument einbauen, dass dann z.B. automatisch auf einen Webserver geschoben wird.
Statt mit make all wird das Compilieren dann mit latex make.tex gestartet — ungewöhnlich aber funktioniert.
Du hast einen dringenden Bedarf allen auf die Nase zu binden, dass Du ein Sonderfall bist und Du bist es tatsaechlich, denn dein Hack toent, als wuerdest Du LaTeX nicht allzu gut kennen.
Versuch in Zukunft etwas relevantes zu schreiben anstatt Artikel zu missbrauchen um anderen deine vermeintlich brillanten Loesungen aufzudraengen. Nur dein letzter Satz offenbart, um was es in deinem Post eigentlich geht.
Ich verstehe leider nicht einmal was du genau machst.
Wenn ich
\i[@code][cat /path/to/inhalt.txt]
in das latexfile schreibe, bekomme ich als Ausgabe lediglich:
i[@code][cat /path/to/inhalt.txt]
Kannst du mir sagen, wie ich das auch hinkriege? Respektive wo ich dies Nachlesen kann.
Das ist nicht LaTeX sondern sein persoenlicher Hack.
http://stackoverflow.com/questions/3252957/how-to-execute-shell-script-from-latex
> Das ist nicht LaTeX sondern sein persoenlicher Hack.
> http://stackoverflow.com/questions/3252957/how-to-execute-shell-script-from-latex
So ist es und ich bin scheinbar auch nicht allein mit der Idee.
Ich habe einfach ein Tag/Befehl für meinen Präprozessor in Beschlag genommen und
darauf geachtet, dass mir das Syntax Highlighting der Editoren dadurch nicht kaputt geht.
Mein Haupt-Verwendungszweck ist Code-Schnipsel aus einem laufenden Projekt in das Dokument mit einfließen zu lassen, damit der Schnipsel immer up to date ist.
Z.B. werte ich die Doxygen Kommentare im Quelltext aus.
Das macht wieder ein simples selber geschriebenes "grep"-tool,
das anstatt des "cat" eingebunden ist.
Das Paket bashful (http://www.ctan.org/pkg/bashful) bietet eine einfaches Interface, um die Ausgaben von Programmen direkt beim Kompilieren mit einzubinden.