Seite 1 von 2

Bibtex Problem - Verstehe Anwendung nicht.

Verfasst: Sa 24. Dez 2011, 11:58
von Spin
Hallo liebe Community,

vorerst Frohes Fest an alle ;)

Ich habe da folgendes Problem und zwar wollte ich heute noch meine Seminar Arbeit mit BIBTEX ausstatten, aber es funktioniert einfach nicht und verstehe nicht warum man soviel kompilieren muss.
\documentclass[a4paper,german,twoside,openright,11pt,abstracton]{scrartcl}
\usepackage{cite}

\begin{document}
\bibliography{biblio}{}
\bibliographystyle{plain}

\cite{fitzgerald:realigning_research_and_practice}

\end{document}

Beispiel: http://de.wikibooks.org/wiki/LaTeX-Kompendium:_Zitieren_mit_BibTeX

Vielen dank für Hilfe.

Verfasst: Sa 24. Dez 2011, 12:09
von bloodworks
Hallo so kann man sehr wenig sagen. Du solltest ein vollständiges Minimalbeispiel [2] machen.
Was meinst du mit du verstehest das Kompilieren nicht?
BiBTeX ist ein eigenständiges Programm, das aus der Datenbank im
@kategorie{cite, einträge={irgendwas},}
Syntax etwas für LaTeX lesbares macht.
Dazu wendet BiBTeX die Regeln an, die es aus der style Datei bezieht, die man mit \bibliographystyle festlegt. (Es kann zB Einträge weglassen, sortieren etc. ). Der erste LaTeX durchlauf, ist deshalb nötig, weil BibTeX nach cite-Eintragungen im *.aux File sucht. Und dieser wird mit einem LaTeX-Lauf erzeugt. Dann kommt eben der BibTeX Lauf, bei dem BibTeX seine Mystischen Dinge tut. Dieser Lauf muss jedesmal wiederholt werden, wenn man eine neue Quelle hinzugefügt hat (nicht bei jedem neuen cite!). Der letzte LaTeX Lauf wiederum setzt die von BibTeX erzeugte .bbl.
Als eigenständiges Programm, möchte BibTeX auch eigenständig aufgerufen werden. Dh. man muss zunächst latex (oder pdflatex oder xetex oder lualatex) auf die Hauptdatei anwenden. Dann muss man bibtex darauf anwenden und dann wieder latex. Dann hat man ein Literaturverzeichnis, vorausgesetzt, man hat etwas mit \cite zitiert.

Du kannst mehr lesen in der Doku zu bibtex "texdoc bibtex" hier:
[aa] http://www.disk0s1.de/posts/latex/bibtexbeginners/ und hier:
[ab] http://de.wikipedia.org/wiki/Bibtex und hier:
[ac] http://www.golatex.de/wiki/index.php?title=BibTeX


Folgendes Minimalbeispiel aus [aa] geklaut:
\documentclass{report}
\usepackage{filecontents} % Es wird filecontents verwendet,
%anstatt eine eigene. bib Datei  % zu erstellen
\begin{filecontents}{name.bib}
@book{texbook,
Address = {Reading, Mass.},
Author = {Donald Ervin Knuth},
Isbn = {0201134470; 0201134489},
Keywords = {Computerized typesetting; Mathematics printing},
Pages = {483},
Publisher = {Addison-Wesley},
Title = {The TeXbook},
Volume = {A},
Year = {1989; 1986}}
\end{filecontents}
\begin{document}
\nocite{*}% Eine Zitiermarke, die nicht angezeigt wird
% und alle Einträge des .bib files erfasst.
\bibliographystyle{plain}%der einfachste Bibliographen Stil
 \bibliography{name}
\end{document}
darauf jetzt latex, dann bibtex, dann latex anwenden.

Das Paket cite brauch man nicht und \bibliographystyle kennt nur ein Argument.

Verfasst: Sa 24. Dez 2011, 13:28
von Spin
Vielen, vielen lieben Dank :)
Es funktioniert endlich :)

Ich möchte jetzt nur noch das : Literatur auf English haben. Dann bin ich zufrieden und glücklich ;) Jetzt kann Weihnachten starten ^^

grüße Spin

Verfasst: Sa 24. Dez 2011, 13:32
von bloodworks
Spin hat geschrieben: Ich möchte jetzt nur noch das : Literatur auf English haben.
Soll heißen was?

Verfasst: Sa 24. Dez 2011, 22:54
von rais
bloodworks hat geschrieben:Dann kommt eben der BibTeX Lauf, bei dem BibTeX seine Mystischen Dinge tut. Dieser Lauf muss jedesmal wiederholt werden, wenn man eine neue Quelle hinzugefügt hat (nicht bei jedem neuen cite!).
das kannst Du imho nicht so pauschal sagen, vielmehr hast Du es hier der Verwendung von
\nocite{*}
zu verdanken, daß Du den BibTeX-Lauf bei einem neuen cite nicht benötigst. Sobald nur zitierte Dinge im Literaturverzeichnis erscheinen sollen, muß BibTeX auch bei jedem neuen cite aufgerufen werden:
\documentclass{report}
\begin{document}
\cite{article-minimal}
%\cite{book-minimal}
\bibliographystyle{plain}%der einfachste Bibliographen Stil 
\bibliography{xampl}% eine .bib-Datei, die auf jedem System vorhanden sein sollte, auf dem BibTeX funktioniert
\end{document}
Frohes Fest :)
Rainer

Verfasst: Sa 24. Dez 2011, 23:20
von bloodworks
rais hat geschrieben:
bloodworks hat geschrieben:Dann kommt eben der BibTeX Lauf, bei dem BibTeX seine Mystischen Dinge tut. Dieser Lauf muss jedesmal wiederholt werden, wenn man eine neue Quelle hinzugefügt hat (nicht bei jedem neuen cite!).
das kannst Du imho nicht so pauschal sagen, vielmehr hast Du es hier der Verwendung von
Ich meinte damit eine weitere Zitierung des selben Quelle. Also wenn man ein \cite mit dem selben Argument irgendwo im Text nochmal setzt.

Auch ein frohes Fest noch!

Verfasst: So 25. Dez 2011, 10:02
von rais
bloodworks hat geschrieben: Ich meinte damit eine weitere Zitierung des selben Quelle.
Ah, danke, dann ist das natürlich korrekt.
Ich hab den Fehler gemacht, "Quelle hinzufügen" und "Eintrag in .bib ergänzen" gleich zu setzen.:oops:

@Spin: Wozu lädst Du global "german"?

Frohes Fest

Rainer

Verfasst: So 25. Dez 2011, 12:35
von Spin
Moin, moin.

Ich habe überhaupt keine Ahnung von Latex und kopiere stets alles aus dem Internet und probiere rum. ;) Sicher habe ich mir schon den einen oder anderen Handgriff gemerkt, aber damit kann ich noch lange nicht behaupten, dass ich Latex verstanden habe.

Latex ist doch nur ein Werkzeug womit ich meine Arbeiten besser strukturieren und vereinfachen kann. Da ich Informatik studiere und viele Mathe habe ist Latex super geeignet.

Worauf ich hinaus möchte ist, dass ich nicht weiss was man oben im Dokumentenkopf definieren kann.

Bsp.:
\documentclass[
a4paper, % A4 Papier
english,   % Dokumentsprache
twoside,  %  Einseitig
11pt,        % Dokument Schriftgröße
]
{scrartcl}  % KOMA-Script 
Das sind alles globale Variablen? Das heißt was in einem Dokument? Bedeutet dass diese Variablen auch in den /includes verfügbar ist?

Weiter benutze ich KOMA Script weil ich mehr Features bzw dadurch packages benutzen kann. Finde die Standart Formatierung auch schöner. (Sry bin LAIE)


@thema
Ich habe jetzt meine Dokument-Sprache auf english gesetzt und mein Inhaltsverzeichnis wurde zu Contents und meine Literatur wurde zu References.

Schick :)
Ich habe trotzdem noch ein Problem:
\begin{filecontents}{scala.bib}
@book{scala,
	Author = {Martin Odersky, Lex Spoon and Bill Venners},
	Date-Added = {2011-12-20 20:45:14 +0000},
	Date-Modified = {2011-12-20 20:55:34 +0000},
	Publisher = {Artima Press},
	Title = {Programming in Scala Second Edition},
	Year = {2010}}
	
@BOOK{strunk,
   author = "Strunk, Jr., William and E. B. White",
   title = "The Elements of Style",
   publisher = "Macmillan",
   edition = "Third",
   year = 1979
   }
@misc
{
test,
URL={http://www.google.de},
title={Testtitel}
}
\end{filecontents}
Das ist mein Code für meine Referenzen.

References
[1] Testtitel.
[2] Lex Spoon Martin Odersky and Bill Venners. Programming in Scala Second Edition. Artima Press, 2010.
[3] William Strunk, Jr. and E. B. White. The Elements of Style. Macmillan, third edition, 1979.

Und das kommt dabei raus :(
Warum wird die URL von Test nicht angezeigt?

Was bedeutet?
Overfull \hbox (34.73093pt too wide) in paragraph at lines 407--408
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 

und ...
Class scrartcl Warning: Usage of deprecated \float@listhead!
(scrartcl)              You should use the features of package `tocbasic'
(scrartcl)              instead of \float@listhead.
(scrartcl)              Definition of \float@listhead my be removed from
(scrartcl)              `scrartcl' soon, so it should not be used  on input line 167.
Ich schätze das Fehlermeldungen in Latex ohne ein Minimalbeispiel schwer zu entdecken sind. Leider kann ich aus einem 25 seitigen Dokument nicht schnell ein kleines machen.

Ich bin euch sehr dankbar für Feedback. grüße Spin :)


Verfasst: So 25. Dez 2011, 13:24
von bloodworks
Spin hat geschrieben:Moin, moin.

Ich habe überhaupt keine Ahnung von Latex und kopiere stets alles aus dem Internet und probiere rum. ;) Sicher habe ich mir schon den einen oder anderen Handgriff gemerkt, aber damit kann ich noch lange nicht behaupten, dass ich Latex verstanden habe.

Latex ist doch nur ein Werkzeug womit ich meine Arbeiten besser strukturieren und vereinfachen kann. Da ich Informatik studiere und viele Mathe habe ist Latex super geeignet.

Worauf ich hinaus möchte ist, dass ich nicht weiss was man oben im Dokumentenkopf definieren kann.

Bsp.:
\documentclass[
a4paper, % A4 Papier
english,   % Dokumentsprache
twoside,  %  Einseitig
11pt,        % Dokument Schriftgröße
]
{scrartcl}  % KOMA-Script 
Hallo dies sind sogenannte Dokumentenklassen-Optionen. Was die machen ist abhänig von der verwendeten Klasse. Du kannst in der Anleitung zu KOMA-Skript ("texdoc koma-de") nachlesen, was sie bedeuten. Abgesehen davon wirst du Sie nicht brauchen: paper=a4 (ist heißt die richitg) ist default, twoside macht bei einer Artikel Klasse eigentlich keinen Sinn, english : würde ich auf jeden babel verwenden und fontsize=11pt (so heißt die Option richtig) ist aimho auch default. Alles weitere siehe Doku.
Spin hat geschrieben: Weiter benutze ich KOMA Script weil ich mehr Features bzw dadurch packages benutzen kann. Finde die Standart Formatierung auch schöner. (Sry bin LAIE)
HÄ?
Wieso solltest du durch eine Klasse mehr Pakete benutzen können. Solange keine Inkompatibilitäten bestehen (zB wenn eine Klasse und ein Paket die gleichen Befehle definieren und auf eine bestimmte Definition angewiesen sind) kannst du jedes Paket mit jeder Klasse benutzen. KOMA-Skript kann man im übrigen sehr gut anpassen. -> KOMASkript Doku.
Spin hat geschrieben:
\begin{filecontents}{scala.bib}
@book{scala,
	Author = {Martin Odersky, Lex Spoon and Bill Venners},
	Date-Added = {2011-12-20 20:45:14 +0000},
	Date-Modified = {2011-12-20 20:55:34 +0000},
	Publisher = {Artima Press},
	Title = {Programming in Scala Second Edition},
	Year = {2010}}
	
@BOOK{strunk,
   author = "Strunk, Jr., William and E. B. White",
   title = "The Elements of Style",
   publisher = "Macmillan",
   edition = "Third",
   year = 1979
   }
@misc
{
test,
URL={http://www.google.de},
title={Testtitel}
}
\end{filecontents}
Also ersten ist die Filecontens Umgebung nicht so gut für den produktiven Einsatz geeigent, weil sie ggf die Datenbank mit dem namem *.bib bei jeden Lauf neu erzeugt, was das ganze sehr langsam macht. Zur Einstellung eines Minimalbeispiels [2] ist sie aber sehr gut geeignet.
Spin hat geschrieben: Das ist mein Code für meine Referenzen.

References
[1] Testtitel.
[2] Lex Spoon Martin Odersky and Bill Venners. Programming in Scala Second Edition. Artima Press, 2010.
[3] William Strunk, Jr. and E. B. White. The Elements of Style. Macmillan, third edition, 1979.

Und das kommt dabei raus :(
Warum wird die URL von Test nicht angezeigt?

Das hängt mit dem bibliograpystyle zusammen. Mache bitte ein vollständiges Minimalbeispiel [2].
Spin hat geschrieben: Was bedeutet?
Overfull \hbox (34.73093pt too wide) in paragraph at lines 407--408
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 
Das bedeutet, dass LaTeX die Zeile (hbox) in den loc 407-408 zu lang findet. Jetzt musst du schauen, was da steht und ob das was über den Randhinaus ragt und es ggf. beheben.
und ...
Spin hat geschrieben:
Class scrartcl Warning: Usage of deprecated \float@listhead!
(scrartcl)              You should use the features of package `tocbasic'
(scrartcl)              instead of \float@listhead.
(scrartcl)              Definition of \float@listhead my be removed from
(scrartcl)              `scrartcl' soon, so it should not be used  on input line 167.
Naja was hast du in loc 167 stehen?

Verfasst: So 25. Dez 2011, 16:21
von Spin
Danke für deine Antwort.

Ich habe alle deine Gedanken umgesetzt und lese nun meine Bib Sachen aus einem anderen Verzeichnis :) Das funktioniert super, danke euch allen.

Nun habe ich fest gestellt, dass viele Fehler auftreten bzw. "Warnings" beim compilieren. Und es liegt an :
\begin{center}
  \begin{minipage}{0.5\textwidth}
\begin{lstlisting}[caption=Inheritance, captionpos=b,label=Inheritance.scala]
class Student(firstName:String, lastName:String, age:Int)
  extends Person(firstName, lastName, age){
    
    override def firstName = "Scala"
    override def age = 6
}
\end{lstlisting}
\end{minipage}
\end{center}
Ich benutze Listings für Quellcode und eine minipage damit der Quellcode mittig ist. Dass macht aber die Warnings und ich weis nicht wie ich Listings sonst anders mittig bekomme. Das begin "center" will nicht ohne minipage funktionieren.

Weiss einer da einen besseren Ansatz?
:)

In loc 167:
\begin{center}
  \begin{minipage}{.5\textwidth}
\begin{lstlisting}[caption=Main method, captionpos=b,label=HelloWorld.scala]
object HelloWorld {
    def main(args: Array[String]) {
        println("Hello, world!")
    }
}
\end{lstlisting}
\end{minipage}
\end{center}
Liegt es hier auch in der minipage?
Vielen dank.