Überflüssige Seiten löschen (aus Template)

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Überflüssige Seiten löschen (aus Template)

von KOMA » Mi 18. Mai 2011, 08:02

Tambo hat geschrieben:Da Du sagtest, dass Du ein vollstaendiges Minimalbeispiel brauchst, um dem Problem, dass zwei Seiten Tabellenverzeichnis ausgegeben werden (die zweite nur mit Kopfzeile, sonst leer), auf die Schliche zu kommen, postete ich nochmals den header mit hypersetup.
Die fette Hervorhebung stammt von mir, um den Unterschied hervorzuheben. Dass ein Header nicht dasselbe wie ein vollständiges Minimalbeispiel ist, sollte naheliegend sein. Außerdem hatte ich ja bereits erwähnt, dass ein vollständiges Minimalbeispiel das Problem zeigen sollte. Ob das Dein Header leistet, kannst Du selbst feststellen und wirst daran scheitern, dass dieser gar kein DVI oder PDF erzeugt. Jedem potentiellen Helfer wird es genauso gehen! Dazu hatte ich Dich in diesem Zusammenhang auch bereits explizit auf die erste Zeile meiner Signatur hingewiesen, in der das Thema Minimalbeispiel extra fett hervorgehoben ist.

Für den Fall, dass wir hier ein Sprachproblem haben: vollständig = complete; Minimalbeispiel = minimal example = example, that is as small as possible; vollständiges Minimalbeispiel = runable example, that has been minimized as long as it shows the problem and until any additional deletion would result in a file, that does not longer show the problem. Die Forderung lauffähig = runable entfällt nur dann, wenn eine Fehlermeldung Teil des Problems ist. Dann sollte diese natürlich auch vom vollständigen Minimalbeispiel produziert werden.

von Tambo » Di 17. Mai 2011, 19:22

Danke fuer Deine Antwort.
Da Du sagtest, dass Du ein vollstaendiges Minimalbeispiel brauchst, um dem Problem, dass zwei Seiten Tabellenverzeichnis ausgegeben werden (die zweite nur mit Kopfzeile, sonst leer), auf die Schliche zu kommen, postete ich nochmals den header mit hypersetup.
Wenn Du natuerlich denkst, dass der Grund in den von Dir so ausfuehrlich kommentierten Problemchen liegt, hat es natuerlich keinen Sinn gemacht, nochmals den Code reinzustellen, ohne ihn zu verbessern. Genannte Problematik ist, dass ich in den Staaten mit -9h Zeitverschiebung bin, hier keinen Zugriff auf mein Latex Zeug habe und ich das Ding morgen abgeben muss. Aber klar, kanns verstehen, dass mir so nicht geholfen werden kann. Wollte eben den Vesuch nicht unterlassen.


Danke trotzdem,
Gruesse Andi

von KOMA » Di 17. Mai 2011, 18:45

Tambo hat geschrieben:Ach, ich poste gleich nochmals meinen header, nicht, dass Du/ihr dann antwortet und ich hier nicht mehr zum antworten komme...
Wozu das denn? Zweimal dieselben Fehler und Unsauberkeiten machen es nicht besser, sondern eher schlimmer. Mir ist lediglich aufgefallen, dass ich eines vielleicht noch übersehen hatte:
Tambo hat geschrieben:
%% durchg?ngiges Hoch-Tiefstellen
 \makeatletter   
    \DeclareRobustCommand*\textsubscript[1]{% 
      \@textsubscript{\selectfont#1}} 
    \def\@textsubscript#1{% 
      {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
Sieht so aus, als habe da jemand Code entweder aus KOMA-Script oder aus fixltx2e (und damit eigentlich auch wieder aus KOMA-Script) geklaut. Da eine KOMA-Script-Klasse verwendet wird, kann man sich das natürlich absoluto completto sparen.

von Tambo » Di 17. Mai 2011, 17:52

Ach, ich poste gleich nochmals meinen header, nicht, dass Du/ihr dann antwortet und ich hier nicht mehr zum antworten komme...
\documentclass[
	...
]
%{thesis}
{scrartcl}


%% Kapitelnummerierung mit vier Ebenen erm?glichen 
\setcounter{secnumdepth}{4}
%% Erstzeileneinzug bei neuem Absatz verhindern, egal bei Layout mit scrpage2
\setlength{\parindent}{0mm} 
%% Abstand zwischen Abs?tzen einstellen 
\setlength{\parskip}{8pt}
\setcapindent{4	em} % Zeilenumbruch bei Bildbeschreibungen.
\setcounter{secnumdepth}{3} %  Parameterm, wie weit ?berschriften durchnummeriert werden
\setcounter{tocdepth}{3} % Eintrag ins Inhaltsverzeichnis bis Ebene X

\clubpenalty = 10000 % schliesst Schusterjungen aus
\widowpenalty = 10000 % schliesst Hurenkinder aus

%%%%%% Pakete %%%%%%


\usepackage[final]{pdfpages} %PDF Dateien einf?gen erm?glichen
\usepackage{color} % Farben erm?glichen
%\usepackage{type1ec} %CM-Super Schriften
\usepackage{scrpage2} % Seitenlayout KOMA-Script
\usepackage[ngerman]{babel} % erm?glicht deutsche Silbentrennung und direkte Eingabe von Umlauten
  \addto\captionsngerman{%
    \renewcommand{\figurename}{Bild}%    %Ermöglichen, dass Caption von figure und table umbenannt werden kann
    \renewcommand{\tablename}{Tabelle}%
    \renewcommand{\listfigurename}{Bildverzeichnis}}
\usepackage[latin1]{inputenc} % teilt LaTeX die Texcodierung mit. Bei Windowssystemen: ansinew
\usepackage[T1]{fontenc} % erm?glicht die Silbentrennung von W?rtern mit Umlauten
\usepackage{hyperref} % PDF wird mit Lesezeichen (verlinktes Inhaltsverzeichnis) versehen (bei Betrachtung mit Acrobat Reader sichtbar)
\usepackage{array} % erweitern Tabelleneigenschaften
\usepackage{longtable} %Tabellen ?ber mehrere Seiten
\usepackage{graphicx} % Grafiken einbinden
\usepackage{amsmath, amstext, amsfonts, mathrsfs, amssymb, amsthm}
%\usepackage{amsmath}
%\usepackage[squaren]{SIunits}
\usepackage[left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry} %Seitenr?nder
%\usepackage[includeheadfoot]{geometry}
%\geometry{verbose,a4paper,tmargin=1.5cm,bmargin=1.5cm,lmargin=2.5cm,rmargin=2.5cm}
\usepackage{setspace} %Zeilenabstand
\usepackage{url} %Darstellung von Weblinks mit dem \url{http://www.seite.de} Parameter
\usepackage{subfig} %Erm?glicht Darstellung mehrerer Bilder nebeneinander



%%%%%% Kopf und Fusszeile %%%%%%

...


%%%%%% Eigene Deklarationen %%%%%%

\DeclareMathOperator*{\grad}{grad}
\DeclareMathOperator*{\Div}{div}
\DeclareMathOperator*{\rot}{rot}
...
\usepackage{upgreek}

\usepackage{hyperref} 
%% PDF Dokuinfo 
  \hypersetup{ 
    pdftitle={Semesterarbeit}, 
    pdfauthor={\textcopyright\ }, 
    pdfsubject = {Semesterarbeit}, 
    pdfcreator = {pdfLaTeX}, 
    pdfkeywords = {}, 
    plainpages=false, 
    pdfstartview=Fit, 
    bookmarksopen=true, 
    colorlinks=true, 
    linkcolor=black,
    urlcolor=black,
    citecolor=black,
    pdftoolbar=true,
    bookmarksnumbered,
    bookmarksopenlevel=2,
    %pdfstartpage=3,
    pdfstartview=Fit,
    %pdfpagemode=FullScreen
  }

%% durchg?ngiges Hoch-Tiefstellen
 \makeatletter   
    \DeclareRobustCommand*\textsubscript[1]{% 
      \@textsubscript{\selectfont#1}} 
    \def\@textsubscript#1{% 
      {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} 
  \usepackage{babel}
  \makeatother 
  
%% Vorgaben %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \graphicspath{{Bilder/}}  %%Standardpfad f?r Bilder/Grafiken festlegen
  \DeclareGraphicsExtensions{.pdf,.jpg,.png}
%  \nocite{*} 
\bibliographystyle{alphadin}
  %\bibliographystyle{abstract}
  %\bibliographystyle{unsrtdin}
 \renewcommand{\figurename}{Bild}
  \renewcommand{\refname}{Literatur} 
 \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
  \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
  \renewcommand{\listfigurename}{Bildverzeichnis} 
\makeatletter \@addtoreset{figure}{section}

 \makeatother
 

Vielen Dank!
Gruesse Andi

von Tambo » Di 17. Mai 2011, 17:47

Hi KOMA,

wow, besten Dank fuer Deine Antwort. Ich dachte nicht, dass so viele Bugs im Template sind. Ich werde fuer meine anstehende Diplomarbeit Deinen und vielgesagten Tipp beherzigen und mich mittels KOMA-Script einmal "anstaendig" in Tex einarbeiten und nicht nur immer wieder halbhezige Adaptionen machen, wenn was nicht funktioniert. Wenn man das Template selber schreibt, dann weiss man naemlich auch, was was bedeutet und was welche Auswirkungen hat...

Da ich nun auf der Arbeit bin und wenn ich heute Abend nach Hause komme ihr alle schlafen werdet, ich aber die Arbeit fertig machen muss, wollte ich kurz rueckfragen, was in meinem Minimalbeispiel (sollte es auch immernoch die von Dir, KOMA, oben angekreideten Fehler aufweisen) enthalten sein sollte. Ist der hypersetup-Befehl wichtig?

Argh, genau so ein Geschuster (das ich bei Word so hasse!) wollte ich mit Latex umgehen - meine unsaubere Herangehensweise hat aber genau zu dem wieder gefuehrt.. Grosser Vorsatz fuer die DA!

Daaanke!
Andi

von KOMA » Di 17. Mai 2011, 08:42

Tambo hat geschrieben:Das KOMA-Script sagt, dass die Befehle \cleardoublepage etc. bei scrartcl nicht gehen, da "Bei der Klasse scrartcl ist die oberste Gliederungsebene unter dem Teil der Abschnitt. Daher unterstützt scrartcl diese Option nicht.".
Du verwechselst hier Optionen und Befehle, wobei scrartcl sogar die Option cleardoublepage unterstützt und nur die Option open nicht unterstützt. Der Befehl \cleardoublepage (und die anderen \cleardouble…page-Befehle, die KOMA-Script bereit stellt) können allerdings nur bei doppelseitigen Dokumenten eine Wirkung zeigen, die über \clearpage hinaus geht.
Tambo hat geschrieben:
\documentclass[%
	 % Zeilenabstand
	liststotocnumbered,%	Listen nummeriert einf?gen
	pdftex,%              		PDFTex verwenden
	a4paper,%             		A4 Papier
	oneside,%             		Einseitig
	BCOR1cm,%			Randzugabe bei Duplex
	bibtotocnumbered,%    	Literaturverzeichnis nummeriert einf?gen
	headsepline,%         		Linie nach Kopfzeile
	footsepline,%         		Linie vor Fusszeile
	12pt,%               			 Schriftgr??e, besser lesbar am Bildschirm	
	%smallheadings
	ngerman,
	%draft	
]
%{thesis}
{scrartcl}
Du verwendest hier diverse überholte Optionen. scrartcl gibt dazu jeweils eine Warnung aus, in der auch drin steht, wie man die Option ggf. ersetzen sollte. Darüber hinaus, ist es ungünstig die Option pdftex zu verwenden. Besser: pagesize.
Tambo hat geschrieben:
%% Erstzeileneinzug bei neuem Absatz verhindern, egal bei Layout mit scrpage2
\setlength{\parindent}{0mm} 
%% Abstand zwischen Abs?tzen einstellen 
\setlength{\parskip}{8pt}
Erstzeileneinzug und scrpage2 haben nichts miteinander zu tun. Also ist der Kommentar falsch. Außerdem sollte man niemals auf diese Weise von Erstzeileneinzug auf Absatzabstand umschalten, sondern die Option parskip verwenden! Der Absatzabstand sollte übrigens immer in ein Zeilen- oder Halbzeilenraster passen, weil man sonst extrem viele Seiten mit vertikalem Ausgleich hat.
Tambo hat geschrieben:
\setcounter{secnumdepth}{3} %  Parameterm, wie weit ?berschriften durchnummeriert werden
\setcounter{tocdepth}{3} % Eintrag ins Inhaltsverzeichnis bis Ebene X
Wenn Du weiter oben secnumdepth nicht auf 4 setzen würdest, bräuchtest Du hier auch nicht die Standardeinstellung wiederherzustellen. Die Anweisung für tocdepth ist - da ebenfalls Standardeinstellung - ebenfalls überflüssig.
Tambo hat geschrieben:
\clubpenalty = 10000 % schliesst Schusterjungen aus
\widowpenalty = 10000 % schliesst Hurenkinder aus
Davon habe ich ebenfalls schon so oft mit Begründung abgeraten, dass ich mir die Begründung hier sparen werde.
Tambo hat geschrieben:
\usepackage[latin1]{inputenc} % teilt LaTeX die Texcodierung mit. Bei Windowssystemen: ansinew
Das ist keine Frage des Systems, sondern eine Frage des verwendeten Editors und der gewählten Einstellungen desselben. Ich verwende unter allen Systemen utf8.
Tambo hat geschrieben:
\usepackage[left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry} %Seitenr?nder
und zwar nicht die besten.
Tambo hat geschrieben:
\usepackage{url} %Darstellung von Weblinks mit dem \url{http://www.seite.de} Parameter
wird bereits von hyperref geladen.
Tambo hat geschrieben:
\usepackage{hyperref}
Das wird bereits oben geladen. Es ist für die Wartbarkeit eines Dokuments sehr unpraktisch, wenn man Pakete mehrfach lädt.
Tambo hat geschrieben:
\hypersetup{ 
   ...
  }
Pünktchen sind keine Optionen, die hyperref kennt. Das ist für ein vollständiges Minimalbeispiel natürlich sehr ungünstig.
Tambo hat geschrieben:
\graphicspath{{Bilder/}}  %%Standardpfad f?r Bilder/Grafiken festlegen
Das LaTeX-Team empfiehlt, \graphicspath nicht zu verwenden, sondern alle Eingabeverzeichnisse via Umgebungsvariable TEXINPUTS zu setzen. Man kann das aber so machen, insbesondere, wenn man als typischer Windows-Anwender (und langsam aber sicher auch als Linux-Anwender) keine Ahnung hat, was eine Umgebungsvariable ist und wie man die setzt.
Tambo hat geschrieben:
\DeclareGraphicsExtensions{.pdf,.jpg,.png}
Der Grafiktreiber weiß selbst eigentlich besser, welche Endungen er verarbeiten kann. Wenn man die Reihenfolge selbst unbedingt ändern will, sollte man (ggf. mit Hilfe von Paketen wie ifpdf absichern), dass das auch nur beim Laden des entsprechenden Treibers erfolgt. Für ein vollständiges Minimalbeispiel ist das extrem unpraktisch!
Tambo hat geschrieben:
\renewcommand{\figurename}{Bild}
  \renewcommand{\refname}{Literatur}
Das ist so falsch. Wie man bei Verwendung mit babel richtig macht, ist weiter oben im Code mit \addto gezeigt. Allerdings gibt es mit KOMA-Script die alternative Möglichkeit, die auch ohne Babel funktioniert: \renewcaptionname.
Tambo hat geschrieben:
\renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
  \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
Hier sollte man natürlich statt \arabic{section} jeweils \thesection verwenden, damit es dann auch im Anhang funktioniert.
Tambo hat geschrieben:
\renewcommand{\listfigurename}{Bildverzeichnis}
Siehe oben.
Tambo hat geschrieben:
\makeatletter \@addtoreset{figure}{section}\makeatother
Mit \counterwithin hätte man sich das Leben leichter machen können.
Könnt ihr mir weiterhelfen? Das wäre wirklich super. Das Dokument ist bis auf die Leerseite nach dem Tabellenverzeichnis fertig.
Aus Deiner Präambel geht nicht hervor, warum eine Leerseite gemacht wird. Dazu bräuchten wir schon ein vollständiges Minimalbeispiel, das genau dieses Problem auch zeigt. Siehe dazu auch die erste Zeile meiner Signatur.

von Tambo » Di 17. Mai 2011, 06:06

Hey ihr,

ich habe mir diesen Thread angeschaut und habe einen riesen Respekt davor, wieviel Zeit ihr Euch für die Beantwortung von Fragen nehmt.

Ich habe das gleiche Problem und konnte trotz KOMA-Script keine Lösung finden. Ich sage es gleich: ich bin ebenfalls bestenfalls ein Latex-Halbwissender, habe zwar schon eine Studienarbeit erfolgreich mit Latex angefertigt, habe hierfür jedoch wie auch für meine jetzige, eigentlich schon fertige zweite Studienarbeit eine Vorlage (Template) von meinem Betreuer bekommen, die allerdings schon 4 Jahre alt ist. Daher sind sicherlich auch hier Schnitzer drin, die man nicht (mehr) machen sollte. Ich habe den header soweit angepasst, dass nun alles nach meinen Wünschen funktioniert, bis auf die Tatsache, dass nach dem Tabellenverzeichnis immer eine leere Seite eingefügt wird (dass die Erstellung des Abkürzungsverzeichnisses so eigentlich nicht korrekt ist, ist mir bewusst). Ich verwende scrartcl.
Das KOMA-Script sagt, dass die Befehle \cleardoublepage etc. bei scrartcl nicht gehen, da "Bei der Klasse scrartcl ist die oberste Gliederungsebene unter dem Teil der Abschnitt. Daher unterstützt scrartcl diese Option nicht.".

Hier habe ich ein Minimalbeispiel angehängt, bei dem ich hoffentlich alles Unwichtige entfernt habe, um Eure Lesezeit nicht zu überbeanspruchen:
\documentclass[%
	 % Zeilenabstand
	liststotocnumbered,%	Listen nummeriert einf?gen
	pdftex,%              		PDFTex verwenden
	a4paper,%             		A4 Papier
	oneside,%             		Einseitig
	BCOR1cm,%			Randzugabe bei Duplex
	bibtotocnumbered,%    	Literaturverzeichnis nummeriert einf?gen
	headsepline,%         		Linie nach Kopfzeile
	footsepline,%         		Linie vor Fusszeile
	12pt,%               			 Schriftgr??e, besser lesbar am Bildschirm	
	%smallheadings
	ngerman,
	%draft	
]
%{thesis}
{scrartcl}

%% Kapitelnummerierung mit vier Ebenen erm?glichen 
\setcounter{secnumdepth}{4}
%% Erstzeileneinzug bei neuem Absatz verhindern, egal bei Layout mit scrpage2
\setlength{\parindent}{0mm} 
%% Abstand zwischen Abs?tzen einstellen 
\setlength{\parskip}{8pt}
\setcapindent{1em} % Zeilenumbruch bei Bildbeschreibungen.
\setcounter{secnumdepth}{3} %  Parameterm, wie weit ?berschriften durchnummeriert werden
\setcounter{tocdepth}{3} % Eintrag ins Inhaltsverzeichnis bis Ebene X

\clubpenalty = 10000 % schliesst Schusterjungen aus
\widowpenalty = 10000 % schliesst Hurenkinder aus

%%%%%% Pakete %%%%%%


\usepackage[final]{pdfpages} %PDF Dateien einf?gen erm?glichen
\usepackage{color} % Farben erm?glichen
\usepackage{scrpage2} % Seitenlayout KOMA-Script
\usepackage[ngerman]{babel} % erm?glicht deutsche Silbentrennung und direkte Eingabe von Umlauten
  \addto\captionsngerman{%
    \renewcommand{\figurename}{Bild}%    %Ermöglichen, dass Caption von figure und table umbenannt werden kann
    \renewcommand{\tablename}{Tabelle}%
    \renewcommand{\listfigurename}{Bildverzeichnis}}
\usepackage[latin1]{inputenc} % teilt LaTeX die Texcodierung mit. Bei Windowssystemen: ansinew
\usepackage[T1]{fontenc} % erm?glicht die Silbentrennung von W?rtern mit Umlauten
\usepackage{hyperref} % PDF wird mit Lesezeichen (verlinktes Inhaltsverzeichnis) versehen (bei Betrachtung mit Acrobat Reader sichtbar)
\usepackage{array} % erweitern Tabelleneigenschaften
\usepackage{longtable} %Tabellen ?ber mehrere Seiten
\usepackage{graphicx} % Grafiken einbinden
\usepackage{amsmath, amstext, amsfonts, mathrsfs, amssymb, amsthm}
\usepackage[left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry} %Seitenr?nder
\usepackage{setspace} %Zeilenabstand
\usepackage{url} %Darstellung von Weblinks mit dem \url{http://www.seite.de} Parameter
\usepackage{subfig} %Erm?glicht Darstellung mehrerer Bilder nebeneinander


%%%%%% Eigene Deklarationen %%%%%%
...

\usepackage{upgreek}

\usepackage{hyperref} 
%% PDF Dokuinfo 
  \hypersetup{ 
   ...
  }

  
%% Vorgaben %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\graphicspath{{Bilder/}}  %%Standardpfad f?r Bilder/Grafiken festlegen
\DeclareGraphicsExtensions{.pdf,.jpg,.png}
\bibliographystyle{alphadin}
 \renewcommand{\figurename}{Bild}
  \renewcommand{\refname}{Literatur} 
 \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
  \renewcommand{\thetable}{\arabic{section}.\arabic{table}}
  \renewcommand{\listfigurename}{Bildverzeichnis} 
\makeatletter \@addtoreset{figure}{section}

 \makeatother
Könnt ihr mir weiterhelfen? Das wäre wirklich super. Das Dokument ist bis auf die Leerseite nach dem Tabellenverzeichnis fertig. Zur morgigen Abgabe sollte das mit dem Tabellenverzeichnis aber noch geklärt sein (wenngleich das meiner Betreuerin auch egal sein dürfte).

Vielen Dank für Eure Hilfe und viele Grüße aus Portland/Oregon!
Tambo

von sommerfee » Di 24. Aug 2010, 07:36

Ich kann mich dem obrigen Fazit nur voll und ganz anschließen.

Wenn man sich mit der KOMA-Script-Anleitung[1] einen Nachmittag in den Liegestuhl setzt, ist man IMHO hundertmal besser bedient als wenn man versucht, sich mit einer solchen Vorlage herumzuschlagen.

Liebe Grüße,
Axel

[1] Die gibt es übrigens auch in gedruckter Form: http://www.dante.de/index/Literatur/KOMA-Script.html

von Nerd 032F » Fr 20. Aug 2010, 11:32

Ich wollte schon früher etwas zu dem Template schreiben, was im der anderen Diskussion aber leider nicht möglich war. Deshalb das nun hier (ohne quote, weil mir das auf Dauer zu aufwändig wird):
\documentclass[twoside,11pt]{Latex/Classes/PhDthesisPSnPDF}
bzw.
\ProvidesClass{Latex/Classes/PhDthesisPSnPDF}[2007/09/06 v2 PhD thesis class]
Eine Klasse mit einer Pfadangabe zu laden und als Namen für eine Klasse einen Pfad zu verwenden, ist IMO sehr ungünstig. Zum einen besitzt LaTeX einen Dateinamen-Parser, der je nach System unterschiedlich sein kann. Deshalb sollte man sich auf dessen Eigenschaften eigentlich nicht verlassen. Tatsächlich ist nicht definiert, ob dieser Trick überhaupt problemlos funktioniert. Er kann also schon morgen auf demselben System zu der gleichen Warnung führen, zu der er auch führt, sobald man die Klasse an einen anderen Ort. Tatsächlich funktioniert obiges allenfalls dann, wenn man an der Verzeichnisstruktur nichts ändert. Das wiederum ist unpraktisch, wenn man die Klasse desöfteren verwenden will und deshalb gedenkt, sie ordentlich im System zu installieren. Eine bessere Lösung wäre gewesen, die Klasse selbst zusammen mit der Hauptdatei des Dokuments im Hauptverzeichnis abzulegen.
\include{Latex/Macros/MacroFile1}
Das ist nun sogar ein grober Fehler! Niemals sollte man Dateien in der Dokumentpräambel mit \include laden! Mit \include lädt man nur Dateien, die Text ausgeben, der auf einer neuen Seite beginnt und nachdem eine neue Seite begonnen wird! Hier könnte man stattdessen \input verwenden. Allerdings stellt sich die Frage: Wenn man schon eine eigene Klasse verwendet, wozu braucht man dann noch eine Makro-Datei? Eigentlich gehören dann nämlich all diese Definitionen in die eigene Klasse. Alternativ kann man als Ergänzung zu der eigenen Klasse auch ein eigenes Paket schreiben, das man dann mit \usepackage lädt. Beide Lösungen wären sinnvoll. Obiges ist hingegen nicht nur nicht sinnvoll, sondern falsch.
\ifpdf  
    \pdfinfo { /Title  (PhD and MPhil Thesis Classes)
               /Creator (TeX)
               /Producer (pdfTeX)
               /Author (YourName your@email.net)
               /CreationDate (D:YYYYMMDDhhmmss)  %format D:YYYYMMDDhhmmss
               /ModDate (D:YYYYMMDDhhmm)
               /Subject (xyz)
               /Keywords (add, your, keywords, here) }
    \pdfcatalog { /PageMode (/UseOutlines)
                  /OpenAction (fitbh)  }
\fi
Statt das auf die direkte pdf-Erzeugung zu beschränken, wäre es sinnvoll gewesen, die Informationen via hyperref zu setzen. Das hat dann den Vorteil, dass einige der Informationen ggf. auch auf dem Umweg über DVI (und ggf. dvips) in die PDF-Datei gelangen können.
\ifpdf
  \author{\href{mailto:your@email.net}{YourName}}
%  \cityofbirth{born in XYZ} % uncomment this if your university requires this
%  % If city of birth is required, also uncomment 2 sections in PhDthesisPSnPDF
%  % Just search for the "city" and you'll find them.
  \collegeordept{\href{http://www.something.net}{CollegeOrDepartment}}
  \university{\href{http://www.something.net}{University}}

  % The crest is a graphics file of the logo of your research institution.
  % Place it in ./0_frontmatter/figures and specify the width
  \crest{\includegraphics[width=4cm]{logo}}
 
% If you are not creating a PDF then use the following. The default is PDF.
\else
  \author{YourName}
%  \cityofbirth{born in XYZ}
  \collegeordept{CollegeOrDept}
  \university{University}
  \crest{\includegraphics[width=4cm]{logo}}
\fi
Hier sei darauf hingewiesen, dass die Unterscheidung überflüssig und kontraproduktiv ist. Direkte PDF-Ausgabe ist nicht das einzige Format, das Links mit \href unterstützt und hyperref ist selbst sehr gut in der Lage, das abhängig vom Ausgabetreiber selbst richtig zu machen.

Übrigens empfehle ich, \title, \author etc. erst nach \begin{document} zu setzen, weil man dann auch problemlos babel-shorthands darin verwenden kann, ohne ggf. daran denken zu müssen, die vorher zu aktivieren und ggf. danach wieder zu deaktivieren.
% turn of those nasty overfull and underfull hboxes
\hbadness=10000
\hfuzz=50pt
Dinge, deren Sinn und Nützlichkeit man nicht verstanden hat, einfach irgendwie abzuschalten und als nasty zu bezeichnen, ist nicht gerade etwas, was die Kompetenz eines Template-Autors unterstreicht. Hier wäre die Verwendung von microtype und ggf. \emergencystretch sicher eine bessere Lösung gewesen, die auch weit mehr Vertrauen in die Kompetenz des Autors geschaffen hätte.
% sets line spacing
\renewcommand\baselinestretch{1.2}
\baselineskip=18pt plus1pt
Das gehört zu dem grauenvollsten Code, den ich je gesehen habe. Der Urheber hat offensichtlich nicht einmal
l2tabu gelesen, geschweige denn große Ahnung von Typografie. Schon das Umdefinieren von \baselinestretch statt der Verwendung von setspace oder zumindest der Verwendung der Anweisung \linespread ist ein sträflicher Fehler. Dann die damit gewählte Einstellung noch einmal per explizitem Setzen von \baselineskip zu überschreiben ist kompletter Unfug. Dabei dann auch noch Leim in den Zeilenabstand einzufügen ist typografisch schlicht das Grauen! Kein vernünftiger Mensch will bei einem halbwegs normalen Dokument variablen Durchschuss! Es bleibt zu hoffen, dass irgendwo ein implizites \normalsize diese mehr als ungeschickte Einstellung wieder aufhebt!
\newpage
\vspace{10mm}
Hoffentlich hat sich der Urheber wenigstens gefragt, warum das \vspace nicht funktioniert. \vspace am Seitenfang wird nämlich schlicht ignoriert. Will man am Seitenanfang einen vertikalen Abstand einfügen, so benötigt man die Sternvariante \vspace*{10mm}. Das ist übrigens Anfängerwissen.
% levels are: 0 - chapter, 1 - section, 2 - subsection, 3 - subsection
Das stimmt nur bedingt. toclevel und secnumlevel sind nicht für alle Klassen und alle Gliederungsanweisungen deckungsgleich. Es gibt dazu sogar einen Eintrag in der LaTeX-Bug-Datenbank.
\begin{multicols}{2} % \begin{multicols}{#columns}[header text][space]
\begin{footnotesize} % scriptsize(7) < footnotesize(Cool < small (9) < normal (10)

\printnomenclature[1.5cm] % [] = distance between entry and description
\label{nom} % target name for links to glossary

\end{footnotesize}
\end{multicols}
Vorsicht! Der Missbrauch von \footnotesize als Umgebung kann auch daneben gehen, nämlich dann, wenn der aktuelle Abstatz vor dem Ende der Umgebung versehentlich nicht beendet wird. Da hier die gesamte multicols-Umgebung in \footnotesize gesetzt werden soll, hätte man dieses Risiko umgehen können, indem man statt der footnotesize-Umgebung ein schlichtes \footnotesize gesetzt hätte. Allerdings halte ich aus typografischer Sicht eine komplett in \footnotesize gesetzte Nomenklatur für einen Fehler! Was für Fußnoten noch erträglich ist, ist für seitenweise Informationen deutlich zu klein.
BTW: Die Bedeutung des Kommentars erschließt sich mir nicht.
\renewcommand{\chaptername}{} % uncomment to print only "1" not "Chapter 
Das funktioniert aber nur bis zu \appendix. Wenn das so gewollt ist, kann man das sicher so machen. Die KOMA-Script-Klassen bieten hier übrigens deutlich mehr Eingriffs-Möglichkeiten.
\begin{multicols}{2} % \begin{multicols}{ # columns}[ header text][ space]
\begin{tiny} % tiny(5) < scriptsize(7) < footnotesize(Cool < small (9)

\bibliographystyle{Latex/Classes/PhDbiblio-url2} % Title is link if provided
\renewcommand{\bibname}{References} % changes the header; default: Bibliography

\bibliography{9_backmatter/references} % adjust this to fit your BibTex file

\end{tiny}
\end{multicols}
Generell gleicher Hinweis wie oben. Wer allerdings das kompette Literaturverzeichnis in \tiny setzt, sollte es besser gleich ganz weg lassen. Dann spart er sich, zu jedem Exemplar des Dokuments noch eine Leselupe beizulegen. Ich sage es mal ganz direkt: Das ist grauenvoll!
\ifx\pdfoutput\undefined
   \LoadClass[dvips, a4paper]{book}
\else
   \LoadClass[pdftex, a4paper]{book}
\fi
Das ist wieder ein Zeichen dafür, dass der Urheber sich nicht auskennt. Mit \LoadClass gesetzte Optionen sind keine globalen Optionen wie es die Optionen von \documentclass wären. Die Optionen werden also nur an die Klasse übergeben. book kennt aber keine Option dvips und keine Option pdftex. Damit ist die Fallunterscheidung schon aus dem Grund unsinnig, dass die dafür verwendet wird, Optionen an book zu übergeben, die book gar nicht kennt. Aber selbst, wenn dem nicht so wäre, wäre die Fallunterscheidung und die Übergabe dieser Optionen überflüssig, weil Pakete wie hyperref und graphics (letzteres über graphics.cfg) selbst zwischen den Treibern für pdftex und dvips (und nebenbei bemerkt auch ein paar anderen beispielsweise für VTeX) wählen.
BTW: Man sollte sich an der Stelle überlegen, ob die KOMA-Script-Klasse scrbook nicht eine bessere Grundlage wäre. Flexibler als book wäre sie in jedem Fall.
\usepackage[english]{babel}
Davon abgesehen, dass man in Klassen nicht \usepackage, sondern \RequirePackage verwendet (und das am besten ohne Optionen, um option clash mit Einstellungen des Anwender zu vermeiden), soll die Klasse also ausschließlich für Dokumente in englischer Sprache verwendet werden? Anderenfalls wäre die Übergabe der Option an dieser Stelle eher unpraktisch.
\usepackage[nottoc]{tocbibind} % correct page numbers for bib in TOC, nottoc suppresses an entry for TOC itself
Das ist beispielsweise etwas, was bei Verwendung einer KOMA-Script-Klasse kein zusätzliches Paket benötigt, sondern einfach per Option (auch nachträglich per \KOMAoptions oder \KOMAoption) geregelt werden kann.
\ifpdf
%-->
%--> Google.com search "hyperref options"
%-->
%--> http://www.ai.mit.edu/lab/sysadmin/.....latex/hyperref/manual.pdf
%--> http://www.chemie.unibas.ch/~vogtp/LaTeX2PDFLaTeX.pdf
%--> http://www.uni-giessen.de/partosch/eurotex99/ oberdiek/print/sli4a4col.pdf
%--> http://me.in-berlin.de/~miwie/tex-refs/html/latex-packages.html
%-->
    \usepackage[ pdftex, plainpages = false, pdfpagelabels,
...
Die komplette Fallunterscheidung hier könnte darauf reduziert werden, ob man \pdfcompresslevel setzt oder nicht.
    \DeclareGraphicsExtensions{.png, .jpg, .jpeg, .pdf, .gif} %GIF doesn't work??
Ja, ganz genau. PDFTeX kann kein GIF bei der direkten PDF-Ausgabe. Wie man sieht, weiß der Ausgabetreiber von graphicx bzw. die graphics.cfg selbst sehr viel besser als der Urheber dieser Zeile, welche Dateiendungen verarbeitet werden können. Deshalb sollte man ihnen auch nichts ins Handwerk pfuschen und diese Zeile weglassen. \DeclareGraphicsExtensions braucht man überhaupt nur, wenn man selbst Handler für weitere Endungen hinzufügt. Das wird hier aber nicht gemacht, also ist die Definition bestenfalls überflüssigen, schlechtesten Falls ein grober Fehler.
    \graphicspath{{0_frontmatter/figures/PNG/}{0_frontmatter/figures/PDF/}{0_frontmatter/figures/}}
Wenn man schon in der Klasse vorgibt, in welchen Verzeichnissen Abbildungen gefunden werden sollen, sollte man das vermutlich etwas allgemeiner machen.
:-------------------------- page layout -----------------------

%A4 settings
\ifpdf
   \pdfpageheight=297mm
   \pdfpagewidth=210mm
\else
   \setlength{\paperheight}{297mm}
   \setlength{\paperwidth}{210mm}
\fi

\setlength{\hoffset}{0.00cm}
\setlength{\voffset}{0.00cm}

%: Uncomment this secion for two-sided printing
% ------------------------------
\setlength{\oddsidemargin}{1.5cm}
\setlength{\evensidemargin}{0cm}
\setlength{\topmargin}{1mm}
\setlength{\headheight}{1.36cm}
\setlength{\headsep}{1.00cm}
\setlength{\textheight}{20.84cm}
\setlength{\textwidth}{14.5cm}
\setlength{\marginparsep}{1mm}
\setlength{\marginparwidth}{3cm}
\setlength{\footskip}{2.36cm}


%: Uncomment this secion for one-sided printing
% taken from the original file, but with the first two lanes modified
% ------------------------------
%\setlength{\evensidemargin}{1.9cm} % was 1.96cm in original
%\setlength{\oddsidemargin}{-0.001cm} % was -0.54cm in original file
%\setlength{\topmargin}{1mm}
%\setlength{\headheight}{1.36cm}
%\setlength{\headsep}{1.00cm}
%\setlength{\textheight}{20.84cm}
%\setlength{\textwidth}{14.5cm}
%\setlength{\marginparsep}{1mm}
%\setlength{\marginparwidth}{3cm}
%\setlength{\footskip}{2.36cm}
Pakete wie typearea und geometry existieren und sollten auch verwendet werden! Werte wie -0.001cm sehen mir eher wie irgendwie optisch abgeschätzt, statt mathematisch begründet aus. Vermutlich wurde irgendwas nachgemessen, nachdem man mit falschen Druckdialog-Einstellungen (Stichwort: fit-to-paper) einen Probedruck gemacht hat.
\renewcommand{\thepage}{\roman{page}}
Da kennt offensichtlich jemand \pagenumbering nicht! Nach Möglichkeit sollte man solche Schnittstellen aber nutzen, weil nur sie Paketen die Möglichkeit geben, sich ggf. sauber einzuklinken.
{ \Huge {\bfseries {\@title}} \par}
Das lässt irgendwie vermuten, der Urheber wäre davon ausgegangen, dass \Huge und \bfseries Anweisungen mit Argument sind. Das ist aber nicht der Fall, weshalb man schlicht {\Huge\bfseries\@title\par} hätte schreiben können.
  \null\vfill 
Den Sinn von \vfill\null kenne ich ja (ähnlich \vspace bs. \vspace*), der von \null\vfill erschließt sich mir aber nicht so recht. Naja, irgendwas wird sich der Template-Autor dabei hoffentlich gedacht haben …
\newcommand{\InsertFig}[3]{
  \begin{figure}[!htbp]
    \begin{center}
      \leavevmode
      #1
      \caption{#2}
      \label{#3}
    \end{center}
  \end{figure}
}
Ja, genau, wenn man l2tabu (Link, oben) nicht gelesen hat und nicht weiß, dass center eigentlich eine Listenumgebung ist, dann macht man solche Fehler.

Nachdem ich nun eine halbe Ewigkeit allein mit dem Teil des mehr als fragwürdigen Codes verbracht habe, breche ich das hier ab. Es ist einfach zu viel misserabler Code, um auf alles einzugehen. Es bleibt das Fazit: Wenn man direkt aufbauend von einer guten, erprobten Klasse wie scrbook oder memoir ausgehend ein Dokument erstellen würde, wäre das mit Sicherheit besser und einfacher, als all die Unwägbarkeiten eines solchen Templates zu beseitigen! Die Frage, wie man irgendwelche leeren Seiten los wird, findet man dann übrigens ganz einfach in der Anleitung. In der KOMA-Script-Anleitung, scrguide.pdf, beispielsweise bei der Erklärung zur Option "open" (leicht über das Stichwortverzeichnis zu finden).

Anmerkungen

von skater » Fr 20. Aug 2010, 00:17

  1. Wenn man einmal etwas mit LaTeX umgesetzt hat, dann kann man immer im Quelltext nachschauen. Bei MS-Word sitzt man vorm .doc und sieht nicht, in welchem der Tausend Menüs man was angeklickt hat. Man lernt hier nachhaltig.
  2. Mit LaTeX lernt man (automatisch) auch viel über Lese-Typografie.
  3. Lernt man Fotografieren besser mit einer camera obscura, oder besser mit einer Digicam? Wobei das Wunderwerk der Technik tausend Programme bis hin zur Motiv-Klingel hat.
  4. Am Anfang braucht man kein Template, sondern eher ein Minimal-Beispiel.
  5. Spring vom Hochhaus – und schrei bei jedem Stockwerk: »Ay alda, funktioniert doch.« ;-)
  6. Wenn nur die Dokumentation ein Argument wäre, da könnte ich dir sogar das flight manual für die 747 organisieren.
  7. Dieses Template ist eher eine ganze Sammlung von Templates für Tausend verschiedene Dinge. Was soll der Hund mit einem Wald anfangen, wo er doch nur an einen Baum pinkeln möchte?
  8. Die Zeit zum Übersetzen eines großen Manuskriptes ist nearly gleich der Zeit zum Übersetzen viele kleiner Manuskripte. Das Aufteilen macht man nur zum besseren Durchblick.

Nach oben