Multibib Zwei Inhaltsverzeichnisse Seitenzahl zählt falsch

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Gast

Beitrag von Gast »

Um mal nur ein paar Punkte anzusprechen, die in der Vorlage einfach nur schlecht sind:
  • %\usepackage[scaled]{uarial}
    Gut, dass dieses Zeile auskommentiert ist. Vor dem Laden der Klasse würde sie nämlich eine Fehlermeldung ergeben.
  • \usepackage{epsfig}
    Das Paket epsfig ist seit 25 Jahren veraltet. Mit der Einführung von LaTeX2e in dem Jahren 1993/94 wurde nämlich für das Einbinden von externen Abbildungen auch das graphics-Bundle eingeführt, das eine kanonische Schnittstelle für unterschiedliche Dateiformate bereitstellt. Schon seit Jahrzehnten sollte man daher für externe Abbildungen die Anweisung \includegraphics – in der Regel in der von graphicx bereitgestellten Form – verwenden. Das Paket epsfig existiert nur noch aus Gründen der Kompatibilität mit sehr alten LaTeX-2.09-Dokumenten als alternative Schnittstelle zu graphics. Wer es für neue Dokumente verwendet, macht etwas falsch.
  • \usepackage{times}
    Dieses Paket ist ebenfalls seit mehr als 20 Jahren veraltet. Neben Times als reine Textschrift (also nicht für den Mathematiksatz) lädt es außerdem das Helvetica (ohne eigentlich notwendige Skalierung) und Courier. Es ist Bestandteil des psnfss-Pakets, in dessen Anleitung es als obsolet bezeichnet wird. Die dort angegebene Alternative der Verwendung der Pakete mathptmx, helvet (vorzugsweise mit Option scaled) und courier (alle aus psnfss[/p) bringt zwar immerhin eine gewisse Verbesserung, ändert aber nichts daran, dass Helvetica eigentlich eher schlecht zu Times passt. Außerdem gilt mathptmx inzwischen selbst als Veraltet. Stattdessen werden newtxtext und newtxmath aus newtx empfohlen.
    [*][code]\usepackage{mathptmx}[/code] Durch das Laden dieses Pakets wird die vorherige Verwendung von times noch absurder. Trotzdem ist auch das suboptimal (siehe die Erklärungen zu times oben).
    [*][code]\usepackage{geometry}[/code] Es sei lediglich darauf hingewiesen, dass bereits das Laden dieses Pakets die Größe von Textbereich und Rändern verändern kann. Das ist jedoch kein Fehler und spielt hier auch keine Rolle.
    [*][code]\usepackage{helvet}
    \usepackage{courier}[/code] Siehe die Anmerkungen zu mathptmx sowie times oben. Es sei lediglich erwähnt, dass es auch hier inzwischen bessere Alternativen gibt, beispielsweise tgheros aus tex-gyre.
    [*][code]\usepackage[onehalfspacing]{setspace}
    \usepackage{setspace}[/code] Zwar funktioniert es erstaunlich oft, ein Paket mehrfach zu laden, aber man handelt sich damit trotzdem ganz schnell Probleme ein. Das gilt umso mehr, wenn man es auch noch mit unterschiedlichen Optionen lädt. Hier funktioniert es lediglich deshalb ohne Fehlermeldung, weil beim zweiten Laden keine Optionen angegeben sind. Vertauscht man die beiden Zeilen, bekommt man bereits eine Fehlermeldung wegen »option clash«. Natürlich erschwert dieser Umstand dann auch die Wartung eines Dokuments unnötig. Wenn so etwas in einer Vorlage auftritt, ist das ein mehr als deutliches Zeichen, dass die Vorlage nichts taugt.
    [*][code]\usepackage[utf8]{inputenc}[/code] Es sei darauf hingewiesen, dass diese Zeile bei Verwendung einer aktuellen LaTeX-Distribution (mit LaTeX ab Version 2018-04-01) überflüssig ist. Sie ist aber nicht falsch und ich würde sie in einer Vorlage vermutlich ebenfalls verwenden, damit die Vorlage auch mit veralteten Installationen wie auf Overleaf funktioniert. Noch eher würde ich allerdings darüber nachdenken, die Vorlage direkt auf XeLaTeX oder LuaLaTeX basieren zu lassen. Dann wäre die Zeile ebenfalls wegzulassen.
    [*][code]\usepackage{float} % Notwendig fuer figure[h][/code] Der Kommentar ist in zweifacher Hinsicht falsch, denn selbst für \begin{figure}[h] braucht man das nicht, sondern nur für \begin{figure}[H]. Allerdings ist beides in der Regel nicht wirklich zu empfehlen, weil der Satz dadurch in den meisten Fällen schlechter wird und mehr Handarbeit beim Umbruch erfordert. Der Mechanismus von Gleitumgebungen ist eine der großen Errungenschaften bei LaTeX – wenn man ihn erst einmal verstanden hat und nicht bereits beim Schreiben des Dokuments meint, selbst bestimmen zu müssen, wo eine Abbildung oder eine Tabelle ausgegeben werden soll.
    [*][code]\usepackage[utf8]{inputenc}
    \usepackage[ansinew]{inputenc}[/code] Das Laden desselben Pakets mit unterschiedlichen Optionen führt zu einer Fehlermeldung. In diesem Fall wäre das: »Option clash for package inputenc.« Darüber hinaus verwendet kein halbwegs moderner LaTeX-Editor in der Voreinstellung mehr ansinew als Eingabecodierung. Der letzte war AFAIK TeXnicCenter 1, der vor rund zehn Jahren durch TeXnicCenter 2 abgelöst wurde. Falls die Vorlage also tatsächlich noch Dateien in ansinew enthält, so ist das eher ein Stolperstrick, weil neu hinzugefügte Dateien in der Regel in UTF-8 erzeugt werden, was dann mit ansinew beim Laden von inputenc zu typischen Fehlern führt, an denen gerade Anfänger oft verzweifeln. Vorlagen sollten daher immer in UTF-8 codiert sein.
    [*][code]\usepackage{multibib}[/code] Das Paket multibib basiert noch auf der inzwischen veralteten Vorgehensweise mit bibtex. Die Umsetzung mehrerer Literaturverzeichnisse ist dabei recht umständlich und die meisten LaTeX-Editoren sind nicht darauf vorbereitet, so dass man ggf. selbst die richtigen bibtex-Aufrufe in der Konsole durchführen muss. Wesentlich einfacher geht es mit biblatex und biber. Die Verwendung von biblatex und biber hat weitere Vorteile. So muss man sich nicht mehr mit einer umständlichen weiteren Programmiersprache herumschlagen und kann bereits die Literaturdatenbank ebenfalls in UTF-8 codieren statt sich mit einer Codierung herumzuschlagen, die außerdem das Kerning verhindert. Das generelle Vorgehen bei Verwendung von biblatex und biber ist in den wichtigen Hinweisen dieses Forums zu finden. Die Verwendung mehrerer Verzeichnisse ist sowohl in der Anleitung als auch mehreren Fragen in diesem Forum erläutert.
    [*][code]\usepackage{graphicx}[/code] Wird bereits von epsfig (siehe oben) geladen. Lässt man das dort weg (was zu empfehlen wäre), ist die Zeile hier natürlich durchaus von Nutzen.
    [*][code]\usepackage{cite}[/code] Auch dieses Paket wäre nicht notwendig, wenn man biblatex verwenden würde. Genau genommen wäre es dann sogar schädlich.
    [*][code]%Mehrere Inhaltsverzeichnisse integrieren
    \usepackage{multibib}[/code] Wie bereits oben erwähnt, sollte man Pakete besser nicht mehrfach laden.
    [*][code]%\usepackage{biblatex}
    %\usepackage[backend=biber]{biblatex} \\benötigt für biber
    %\addbibresource{literatur.bib} \\benötigt für biber
    %\usepackage[citestyle=verbose,bibstyle=numeric,sorting=none]{biblatex}
    %\usepackage[backend=biber, style=alphabetic]{biblatex}
    %\usepackage[backend=biber, style=alphabetic, backref=true,sorting=none,%
    %arxiv=abs,url=false,doi=true, refsection=chapter
    %]{biblatex}[/code] Leider ist der Weg hier nicht beschritten. backend=biber ist übrigens seit einigen Jahren die Voreinstellung, wenn man biblatex ohne Option lädt. Man spart sich durch die Angabe aber eine entsprechende Meldung. In einer Vorlage wäre es natürlich schön gewesen, wenn dokumentiert wäre, was die unterschiedlichen Zeilen für unterschiedliche Ergebnisse produzieren. So dürfte kaum ein Anfänger etwas mit der reinen Auflistung anfange können.
    [*][code]\usepackage{filecontents}[/code] Vorsicht! Dadurch kann man sich unversehens Dateien überschreiben. Aus dem gezeigten Code ist auch nicht zu erkennen, dass das Paket derzeit verwendet wird.
    [*][code]%\usepackage[hidelinks]{hyperref} %Makes Table of Contents clickable[/code] Es ist gut, dass diese Zeile hier auskommentiert ist, da später noch eine Datei geladen wird, in der ggf. weitere Pakete geladen werden. Von wenig Ausnahmen abgesehen, sollte hyperref nämlich das letzte geladene Paket sein.
    [*][code]%backend=biber[/code] Diese Zeile ist an dieser Stelle komplett unmotiviert und deplatziert.
    [*][code]% Installation der Arial Schriftart unter Linux.
    % wget http://tug.org/fonts/getnonfreefonts/in ... nfreefonts
    % texlua install-getnonfreefonts
    % getnonfreefonts -r
    % getnonfreefonts arial-urw[/code] Dieser Kommentar ist zwar fast richtig (tatsächlich geht das mit aktueller Version von getnonfreefonts etwas anders und wenn man es so macht bekommt man eine Fehlermeldung), aber natürlich an der Stelle total unmotiviert und damit deplatziert. Außerdem passt dazu obige Option ansinew für inputenc so gar nicht.
    [*][code]\newif\ifappendix
    \newif\iflistoffigures
    \newif\iflistoftables
    \newif\ifacronym
    \newif\iflistofformeln[/code] Werden die Schalter noch irgendwo erklärt oder zumindest verwendet? In einer Vorlage ist es ganz schlechter Stil, Dinge einfach so in den Raum zu werfen.
    [*][code]\include{einstellungen}[/code] Der Autor hat offensichtlich den Unterschied zwischen \include und \input nicht verstanden. \include hat in der Dokumentpräambel rein gar nichts verloren. Außerdem sollte man \include niemals für Dinge verwenden, die man nicht per \includeonly deaktivieren können will.
    [*][code]\usepackage[
    pdftitle={\Titel},
    pdfsubject={Laborbericht},
    pdfauthor={Karsten Spangler},
    pdfkeywords={akad, assignment, meta, information, pdf, hyperref, latex}
    hyperfootnotes=false,
    colorlinks=true,
    linkcolor=black,
    urlcolor=black,
    citecolor=black
    ]{hyperref}[/code] Alle Optionen, die Text als Wert erwarten sollte man bei hyperref erst nach dem Laden des Pakets mit hypersetup setzen. Anderenfalls hat hyperref ggf. Schwierigkeiten die Codierung dafür korrekt durchzuführen. Über den Unsinn schwarzer Links wurde hier schon viel diskutiert. Darüber brauche ich mich also nicht weiter auszulassen.
    [*][code]\renewcommand\UrlFont{\color{black}\rmfamily\itshape}[/code] Wozu hier noch einmal explizit Schwarz eingeschaltet wird, obwohl beim Laden von hyperref bereits schwarze Links ausgewählt wurden, erschießt sich mir nicht ganz.
    [*][code]\renewcommand{\familydefault}{\rmdefault}[/code] Das ist Voreinstellung, damit überflüssig und sollte besser weg.
    \renewcommand{\bflabel}[1]{\normalfont{\normalsize{#1}}\hfill}
    [*][code]% Sonstige Hilfsfunktionen
    \include{commands}[/code] Zur Verwendung von \include siehe oben. Außerdem ist leider nicht dokumentiert, was der Unterschied zu einstellungen ist. Hier gehört zumindest erwähnt, dass in commands keine Pakete mehr geladen werden sollten (siehe Hinweis zu hyperref oben).
    [*][code]\pagenumbering{roman}[/code] Hier sei ganz allgemein auf das TOP-Thema im Forum »Richtig Publizieren« hingewiesen. In Artikel-Dokumenten ist es mehr als albern, mit römischen Seitenzahlen zu arbeiten. So etwas gibt es eigentlich nur in Büchern (und ist auch dort eigentlich veraltet).
    [*][code]\begin{center}
    \thispagestyle{empty}[/code] Es sei darauf hingewiesen, dass die center-Umgebung u. U. vertikalen Abstand einfügt. Ob das hier der Fall ist und ein Problem wäre, sei dahin gestellt. Die zweite Zeile wäre jedoch überflüssig, wenn man stattdessen [code]\begin{titlepage}\centering][/code] verwenden würde. Am Ende wäre dann natürlich das [code]\end{center}[/code] durch [code]\end{titlepage}[/code] zu ersetzen.
    [*][code]\Huge{\Titel}[/code] \Huge kein Argument, sondern ist ein Umschalter, der so lange gilt, bis etwas anderes explizit gesagt wird (oder die aktuelle Gruppe/Umgebung endet.
    [*][code]\onehalfspacing[/code] Das wurde oben beim ersten Laden von setspace bereits global aktiviert und ist hier auch sonst recht unmotiviert.
    [*][code]\Large{\Betreff}[/code] siehe \Huge oben.
    [*][code]\Large{\Betreuer \\}
    \normalsize[/code] Hier kommt zum oben bereits erwähnten Fehler hinzu, dass der Absatz vor der Umschaltung auf \normalsize nicht beendet wurde. Deshalb wird der Betreuer mit dem Zeilenabstand von \normalsize statt \Large gesetzt. Das dürfte ein Grund für das \\ sein. Schlecht gemacht.
    [*][code]\end{center}
    \clearpage[/code] Würde man wie oben erwähnt titlepage verwenden, könnte das \clearpage hier natürlich entfallen.
    [*][code]\normalsize[/code] Da mit dem Ende der center-Umgebung etwaige Größenänderungen innerhalb der Umgebung ein Ende gefunden haben, ist die Anweisung hier unsinnig.
    [*][code]\newpage[/code] Der sehr exzessive Gebrauch dieser Anweisung lässt vermuten, dass die falsche Klasse verwendet wurde. Vermutlich wäre report oder book eher angebracht. Natürlich wäre dann als oberste Gliederungsebene \chapter statt \section zu verwenden.
    [*][code]\iflistoffigures
    \listoffigures
    \newpage
    \fi[/code] Aha, hier werden die oben definierten Schalter tatsächlich verwendet. Allerdings frage ich mich gerade, ob es tatsächlich Dokumente im universitären Umfeld gibt, bei denen man die Verzeichnisse nicht setzt. Und wäre es nicht einfacher dann einfach die entsprechende Anweisung wegzulassen, statt dafür extra einen Schalter zu definieren (den man eigentlich auch noch erklären sollte)?
    [*][code]\newcounter{romanPagenumber}
    \setcounter{romanPagenumber}{\value{page}} % Roemische Seitenanzahl speichern.[/code] Sieht mir sehr danach aus, als wollte da jemand auch noch im Endteil des Dokuments römische Seitenzahlen erneut verwenden. Um es deutlich zu sagen: Das ist kompletter Unfug, der leider nicht totzukriegen ist. Im oben erwähnten Forum wird das ausführlich erklärt.
    [*][code]\begin{spacing}{1.5} % Zeilenabstand: 1,5 fuer den Textteil[/code] Davon abgesehen, dass echtes eineinhalbzeilig bereits global eingestellt wurde, sollte man unbedingt vermeiden, den kompletten Textbereich in eine Umgebung=Gruppe zu verpacken. Das kann sogar zu Fehlermeldungen führen. Wenn sollte man hier also besser die Anweisung \setstretch{1.5} verwenden.
    [*][code]\pagenumbering{roman}
    \setcounter{page}{\theromanPagenumber}[/code] siehe oben.
    [*][code]\bibliographystyle{apalike}[/code] Es sei darauf hingewiesen, das apalike nicht wirklich APA ist und dass es ausschließlich für ein englisches Literaturverzeichnis geeignet ist. Es gibt zwar eine deutsche Anpassung davon, aber mit biblatex kommt man im Endeffekt leichter zum Ziel.
    [*][code]
    \clearpage
    \phantomsection
    \addcontentsline{toc}{section}{Eidesstattliche Erklärung}
    %\hspace*{-9cm}
    \includepdf{eides3}[/code] \adcontentsline gefolgt von \includepdf ist nicht unkritisch. Es funktioniert in diesem Fall. Allerdings bietet pdfpages auch eine Option für \includepd, um den Eintrag ins Inhaltsverzeichnis vorzunehmen. Das wäre sicher die bessere Lösung. Ggf. bitte im Forum »Tabellen und Grafiken« danach fragen.
Allein die Behandlung dieses einen Code-Teils hat mich jetzt weit mehr als eine Stunde Arbeit gekostet. Ein Anfänger kann damit in diverse Fallen tappen, deren Lösung ihn dann ggf. Tage kosten. Wer eine solche Vorlage auf die Menschheit los lässt, sollte dann zumindest auch helfen, wenn es damit Probleme gibt. Es ist unfair die dadurch entstehenden Probleme auf die Anwender und Helfer in Internet-Foran abzuwälzen.

Zurück zum Problem: Die ganzen
\pagenumbering{roman}
\setcounter{page}{\theromanPagenumber}
sind der Auslöser. Hier wird immer wieder neu auf römische Seiten umgeschaltet und dann immer wieder dieselbe in \theromanPagenumber gespeicherte Seitenzahl erzwungen. Am besten lässt man all diese Zeilen weg. Wenn man den Unsinn nicht bleiben lassen kann, verwendet man das maximal einmal.

Ich empfehle jedoch dringen, wie in Minimale Vorlage vs. maximale Probleme erklärt, die nähere Befassung mit einer ausführlichen LaTeX-Einführung und dann nur die Teile in das eigene Dokument zu übernehmen, deren Sinn und Notwendigkeit und Korrektheit geklärt sind.

Eigentlich müsste ich mir obiges jetzt noch einmal durchlesen. Da ich aber schon Stunden auf diesen Unfug verschwendet habe, mag man mir nachsehen, das ich das unterlasse und etwaige Tipp- und Kopierfehler und missverständliche Formulierungen darin verbleiben. Eigentlich sollte es ja nicht notwendig sein, dass ich dergleichen alle paar Wochen wieder erkläre. Schließlich finden sich fast alle obigen Erklärungen bereits mehrfach im Forum. Man muss nur einmal nach dem Stichwort »Vorlage« suchen.

papadrellbo
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mi 21. Nov 2018, 11:22

Beitrag von papadrellbo »

Dankeschön,

du hattest die Idee. Zwei zeilen raus und alles geht.

\pagenumbering{roman}
\setcounter{page}{\theromanPagenumber}
\bibliographystyle{apalike}
%Dieser Eintrag macht aus Bibtex Literatur den Namen Literaturverzeichnis
\renewcommand{\refname}{Literaturverzeichnis}
%Pfad an dem Latex das PDF-Dokument sucht und importiert.
\bibliography{literaturverzeichnis}
\newpage


%\pagenumbering{roman} <---- war zuviel
%\setcounter{page}{\theromanPagenumber} <---- war zuviel
\bibliographystyle{apalike}
\renewcommand{\refname}{Internetquellen}
\bibliography{internetverzeichnis}
\newpage
%\onehalfspacing
%\clearpage
%\pagestyle{empty}
%\thispagestyle{empty}

Gast

Beitrag von Gast »

papadrellbo hat geschrieben:du hattest die Idee. Zwei zeilen raus und alles geht.
Schwer zu glauben. Aus den genannten Gründen müsste es noch immer eine Fehlermeldung wegen der doppelten Verwendung von inputenc mit unterschiedlichen Optionen geben. Fehlermeldungen zu ignorieren wäre ein sehr grober ein Fehler …

papadrellbo
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Mi 21. Nov 2018, 11:22

Beitrag von papadrellbo »

Hallo,

ich kann dir nur sagen was mein latex tut. es kommt die zeilennummerierung raus wie ich will......
Also fehler steht nirgendwo.....nur ei bibtex komplieren kommt ein fehler, aber es funktiniert.
Wie kann ich fehler beseitigen...obwohl es geht??

Gast

Beitrag von Gast »

Du hast noch immer nicht verstanden, dass wir keine Hellseher sind.

Was du uns bisher gezeigt hast, liefert bei uns diverse Fehlermeldungen, beispielsweise:
./test.tex:47: LaTeX Error: Option clash for package inputenc.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
\@input{einstellungen.aux}
No file einstellungen.tex.
./test.tex:97: Undefined control sequence.
\reserved@b ...ewithoptions #1[{ pdftitle={\Titel 
                                                  }, pdfsubject={Laborberich...l.97 
./test.tex:103: LaTeX Error: \bflabel undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.103 \renewcommand{\bflabel}
                             [1]{\normalfont{\normalsize{#1}}\hfill}
u. v. m. Alle Fehlermeldungen wörtlich aus der log-Datei kopiert.

Wenn du also außer den bisherigen, allgemeinen Hinweisen, die du besser beachten statt ignorieren solltest, weitere Antworten erwartest, solltest du dir etwas mehr Mühe geben. Wie man ein Minimalbeispiel erstellt und korrekt als Code markiert, ist ja bereits in sehr frühen Kommentaren verlinkt. Das kann ich mir also sparen.

Antworten