PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kile Buildsystem anpassen, BibTeX-Eintrag



mermshaus
02-04-2009, 17:11
Hallo.

Da es manchmal notwendig ist (http://www.mrunix.de/forums/showpost.php?p=290564&postcount=6), während des Buildvorgangs mehrere Dateien von BibTeX verarbeiten zu lassen, wollte ich den Eintrag in den Optionen meines Editors, Kile (2.0.81), unter Tools->Build->BibTeX anpassen.

Die Default-Einstellung besagt:


Command: bibtex
Options: '%S' % Parameter %S ist der Dateiname ohne Endnung,
%"test.tex" -> "test"

Hier (http://article.gmane.org/gmane.comp.kde.devel.kile/781) wird vorgeschlagen, es wie folgt zu ändern:


Command: for i in ${%S-*.aux} ;
Options: do bibtex $i ; done

Das sieht zwar ganz gut aus, führt aber nur dazu, dass der Buildvorgang in einem undefinierten Status hängenbleibt. Außerdem scheint mir ${%S-*.aux} nicht in jedem Fall die richtigen Dateien zu matchen. Ich habe es deshalb etwas umgeschrieben:


Command: for i in `ls *.aux`;
Options: do bibtex $i; done;

Das matched jetzt alle *.aux-Dateien im Verzeichnis (ich glaube, %S*.aux wäre noch etwas besser), aber immerhin funktioniert der Befehl, wenn ich ihn in der Shell ausführe:


$ for i in `ls *.aux`; do bibtex $i; done;

Kile bleibt allerdings noch immer in diesem seltsamen Status hängen, gegen den auch kein "Stop" hilft, sondern nur ein Neustart der Anwendung.

Die letzte Nachricht im Kile-Log vor dem Hänger lautet:


[BibTeX] biblatexbibs.aux => biblatexbibs.bbl (for i in `ls *.aux`;)

(Entschuldigt den etwas verwirrenden Namen des Dokuments: biblatexbibs.tex)

Unter "Output" lauten die letzten paar Zeilen:


LaTeX Warning: There were undefined references.


Package biblatex Warning: Please (re)run BibTeX on the file(s):
(biblatex) biblatexbibs1-blx.aux
(biblatex) biblatexbibs2-blx.aux
(biblatex) and rerun LaTeX afterwards.

)

[...]

Output written on biblatexbibs.pdf (1 page, 32852 bytes).
Transcript written on biblatexbibs.log.
*****
***** BibTeX output:
***** cd "/home/marc/latex/tests/biblatex-bibs"
***** for i in `ls *.aux`; do bibtex $i; done;
*****

Das ist genau der Befehl, der in der Shell klaglos läuft.

Über Ideen, wie ich das auf die Reihe kriege, würde ich mich freuen. Ich wünschte, Kile ließe sich da flexibler scripten, statt alles in GUI zu verpacken...

Viele Grüße

Marc

PS: Ich kopiere hier der Einfachheit halber das Minimalbeispiel, das ich zum Kompilieren bringen will, noch mal mit rein:


\documentclass[a4paper,12pt,ngerman,parskip=half]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[babel]{csquotes}

\usepackage{biblatex}

\begin{filecontents}{bib1.bib}
@book{bogdal2006,
author = {Bogdal, Klaus-Michael},
title = {Literaturdidaktik im Spannungsfeld von Literaturwissenschaft, Schule
und Bildungs- und Lerntheorien}
}
\end{filecontents}

\begin{filecontents}{bib2.bib}
@book{ mittelbach2004,
author = "Frank Mittelbach and Michel Goossens and Johannes Braams and David Carlisle and Chris Rowley and Christine Detig and Joachim Schrod",
title = "The {\L}aTeX Companion",
edition = "2",
year = "2004"
}
\end{filecontents}

\bibliography{bib1,bib2}

\begin{document}

\begin{refsection}
Hier Text.\cite{bogdal2006}

\printbibliography
\end{refsection}

\begin{refsection}
Hier weiterer Text.\cite{mittelbach2004}

\printbibliography
\end{refsection}

\end{document}

cookie170
03-04-2009, 09:47
Hallo,

würde es nicht bereits genügen zu schreiben:


for i in *.aux; do bibtex $i; done;

Soweit ich mich erinnere, beschränkt sich die Schleife auf das lokale Verzeichnis.

Gruß,
Alexander

mermshaus
03-04-2009, 11:16
Hallo.

Ja, der Befehl selbst scheint auch ohne das ls zu funktionieren. Aber auch dann wird er leider nicht von Kile ausgeführt. Auf dem Screenshot (unten) ist zu sehen, was passiert: Kile beginnt, das Dokument zu kompilieren, findet nicht aufgelöste Referenzen, startet BibTeX und bleibt dann hängen (so interpretiere ich den noch aktiven "Stop"-Button rechts unten zumindest).

cookie170
03-04-2009, 12:39
Hallo,

unter welchem Betriebssystem verwendest Du Kile? Woher stammt die Version 2.0.81?

Wieso siehst Du einen Teil des Befehls als Option an? Ich würde die gesamte Zeile, so wie sie ist, als Befehl eintragen.

Tut das?

fragt
Alexander

mermshaus
03-04-2009, 13:27
Ich habe es aus den offiziellen Paketquellen unter Kubuntu 9.04 laufen und bin dieser Anleitung (http://article.gmane.org/gmane.comp.kde.devel.kile/781) gefolgt. Den Code insgesamt in die Command-Zeile zu setzen, klappt aber auch nicht. Gleiches Verhalten. Ich denke, ich schreibe nachher mal zusätzlich an die Kile-Mailinglist bei Sourceforge. Edit: Auf die auch der Link zeigt... Merke ich jetzt erst. ;)

cookie170
03-04-2009, 14:03
meine selbst kompilierte Version von kile unter KDE 4.2 sieht anders aus, auch das Menu ist differenzierter.

Insbesondere werden unter "Advanced" haufenweise weitere Schräubchen zum dran drehen angeboten.

Außerdem irritiert mich Deine Auswahl "compileall", denn eigentlich muss der Befehl außerhalb von Kile ausgeführt werden.

Schau doch mal nach, ob es nicht eine neuere Version von kile für kubuntu gibt und probiere noch ein wenig an den Einstellungen herum,

empfiehlt:
Alexander