PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Befehl in Latex einbinden



Pork-and-Beef
08-03-2009, 21:48
Hallo

Kann man in latex auch Linux Konsolen Befehle einbinden und deren Output dann im Latex Dokument darstellen ?
zb irgendwie so \begin{lstlisting} ls -l \end{lstlisting}

thx

mechanicus
09-03-2009, 08:10
Kann man in latex auch Linux Konsolen Befehle einbinden
Hallo,

ja. Oder willst du, dass Latex die Eingabe in der Konsole für dich macht und dann automatisch die Ausgabe mit in die tex-Datei packt. Hier sage ich mal nein, aber auch nur, weil ich es nicht weiß :D . Aber ansonsten ist Listings dein Freund.

Gruß
Marco

Pork-and-Beef
09-03-2009, 09:09
Oder willst du, dass Latex die Eingabe in der Konsole für dich macht und dann automatisch die Ausgabe mit in die tex-Datei packt
ja genausowas hätte ich mir dann vorgestellt weil wenn ich dann bei der Ordnerstruktur was ändere würde das latex dann automatisch übernehmen dann müsste ich das latex dokument einfach neu builden und das wars - so muss ich den befehl auf der konsole ausführen und den output in mein latex dokument kopieren

bischi
09-03-2009, 09:44
ja genausowas hätte ich mir dann vorgestellt weil wenn ich dann bei der Ordnerstruktur was ändere würde das latex dann automatisch übernehmen dann müsste ich das latex dokument einfach neu builden und das wars - so muss ich den befehl auf der konsole ausführen und den output in mein latex dokument kopieren

Etwas verwirrt... Was genau möchtest du machen? Was willst du ändern und was soll dann automatisch gemerkt werden???

MfG Bischi

Spindoctor
09-03-2009, 10:39
du könntest natürlich ein bash-script schreiben, das beides macht ;)

aber es ist verständlich, dass du das nur machen wirst wollen, wenn dein erster ansatz nicht funktioniert...

rais
09-03-2009, 11:03
Moin moin,

ja genausowas hätte ich mir dann vorgestellt weil wenn ich dann bei der Ordnerstruktur was ändere würde das latex dann automatisch übernehmen dann müsste ich das latex dokument einfach neu builden und das wars - so muss ich den befehl auf der konsole ausführen und den output in mein latex dokument kopieren
schau mal


%run with --shell-escape
\documentclass{article}
\begin{document}
\write18{ls > .\jobname.dli}
derzeit in ./:

\noindent\texttt{\InputIfFileExists{.\jobname.dli} }
\end{document}

mit


latex --shell-escape foo.tex
latex --shell-escape foo.tex

so diese Datei denn `foo.tex' heißt ...

MfG

mechanicus
09-03-2009, 11:54
Hallo Rainer,

das ist ja was feines. Hast du irgendeine Quelle, in der man mehr über write18 lesen kann?

Gruß
Marco

rais
09-03-2009, 14:18
Moin Marco,


das ist ja was feines. Hast du irgendeine Quelle, in der man mehr über write18 lesen kann?

nicht wirklich, `man tex' --> -shell-escape oder indirekt `texdoc epstopdf' -- da wird write18 schließlich verwendet;-)

BTW: pipen funzt damit auch:


%run with --shell-escape
\documentclass[a4paper]{article}
\usepackage{listings}
\begin{document}
\lstinputlisting[basicstyle=\footnotesize,caption={derzeit in ./}]{|"ls -l"}
\end{document}

MfG

Pork-and-Beef
09-03-2009, 16:16
\lstinputlisting[basicstyle=\footnotesize,caption={derzeit in ./}]{|"ls -l"}

Das ist ja geil - genau das was ich gesucht habe!
Wie bist du auf das gekommen - wo steht das?

rais
09-03-2009, 18:26
Moin moin,


Wie bist du auf das gekommen - wo steht das?
Beim Googlen bin ich über http://docs.miktex.org/manual/pdftex.html gestolpert, dort werden ``--enable-pipes'' und ``--enable-write18'' erwähnt.
``latex --help'' deutete nur -- bezogen auf Dein Problem -- auf eben ``--shell-escape''. Bisher hatte ich diesen ``--shell-escape'' nur als Äquivalent zu ``--enable-write18'' angesehen ... aber warum sollte hier unter Linux ein anderer Optionsname als unter MS* verwendet werden? Hmm, die Shell versteht doch auch Pipes ... ``shell-escape'' ... das muß doch irgendwie ... (verstärktes Klicken auf meiner Tastatur) ... Aha!

oder so ähnlich bin ich darauf gekommen;-)

PS: Es ist sicherlich auch andernorts zu finden, aber spätestens jetzt `steht das' genau hier :D

MfG

edico
09-03-2009, 19:00
Die Lösungen haben _leider_ einen kleinen Schönheitsfehler, selbst wenn man 'immediate' einbringt:
Der tree hat z.T. falsche file sizes (aux, datafile), weil noch Veränderungen durch nachfolgende Kompilationsschritte erfolgen.
Eine diesbezügliche Abänderung weiss ich aber auch nicht ...

edico

rais
09-03-2009, 20:25
Moin edico,

Die Lösungen haben _leider_ einen kleinen Schönheitsfehler, selbst wenn man 'immediate' einbringt:
Der tree hat z.T. falsche file sizes (aux, datafile), weil noch Veränderungen durch nachfolgende Kompilationsschritte erfolgen.

erstmal Danke -- darüber war ich gar nicht gestolpert.;(
Einen direkten Ansatz seh ich z. Zt. auch nicht, aber per ``--output-directory=...'' sollte es sich zumindest umgehen lassen können ... na, erstmal sehen, was der OP dazu zu sagen hat, am Ende ging es ihm gar nicht um ls in dem Verzeichnis, in dem gerade seine .tex schlummert.;-)

MfG