von Gast » Sa 8. Sep 2018, 14:17
Von einem
Minimalbeispiel ist der Code weit entfernt. Es ist leider weder vollständig noch minimal. Bitte lies dir die verlinkte Anleitung mal durch und beachte sie auch!
Ein paar Anmerkungen zu dem Code:
\documentclass[12pt,oneside,headsepline]{scrreprt}
%Doppelseitig
Der Kommentar ist falsch! Doppelseitig wäre twoside. Außerdem ist oneside Voreinstellung bei scrreprt. Kann man sich also sparen.
\usepackage[utf8]{inputenc} % damit die Tastatur richtig erkannt wird damit � = �
Bei Verwendung eines aktuellen LaTeX ist das überflüssig. Da ist UTF8 ohnehin Voreinstellung. Der Online-Editor Overleaf braucht das derzeit in der Tat noch. Das wird sich aber sicher irgendwann ändern.
\usepackage{float} % einfacher Weg, um Abb. zu fixieren mit [H]
die KOMA-Script-Klassen bieten mit \captionof selbst einen einfachen Weg. Man braucht float also eigentlich nicht.
- definiert table und figure um und nimmt dabei Änderungen vor, die nicht kompatibel mit KOMA-Script sind. Auch die Kompatibilität mit float ist nicht gegeben. Das ist ggf. zu beachten, falls man Gleitumgebungen mit KOMA-Script-Mitteln oder mit float-Mitteln konfigurieren will.
\usepackage{lscape, pdflscape} % soll Tabellen im Landscape-Format im Reader automatisch drehen, sonst wie landscape
Das Paket pdflscape lädt lscape selbst. Es ist also überflüssig das selbst auch noch zu tun. Übrigens bietet das KOMA-Script-Paket scrhack auch noch eine Verbesserung für lscape und pdflscape.
\usepackage{subfigure} % \subfigure{\includegraphics[...]{...}}
Das Paket ist seit Jahrzehnten veraltet und sollte nicht mehr verwendet werden → subfigure.
- hyperref sollte von wenigen, dokumentierten Ausnahmen abgesehen immer das letzte, geladene Paket sein. Es muss nämlich Definitionen von anderen Paketen ändern und kann das nur, wenn diese bereits geladen sind!
- Ich bezweifle ehrlich gesagt, dass du das bei deiner ansonsten PDF-lastigen Präambel wirklich verwendest, jedenfalls solange keines der Pakete geladen wird, die für die Verwendung von pstricks mit pdflatex eigentlich nahezu zwingend sind.
\usepackage[thickspace,thickqspace,squaren]{SIunits}
Dass das seit über 10 Jahren nicht mehr gepflegt wird, liegt sicher auch daran, dass inzwischen das Paket siunitx die überlegene Lösung sein dürfte.
\usepackage{colortbl}
…
\usepackage{xcolor}
Statt die Pakete getrennt zu laden sollte man xcolor einfach mit Option table laden. Wenn das zu einem option clash führt, kann man die Option wahlweise bei \documentclass angeben oder per \PassOptionsToPackage{table]{xcolor} am besten noch vor \documentclass (damit es ganz sicher vor dem ersten Laden von xcolor ausgeführt wird).
- Das Paket ist begrenzt kompatibel zu KOMA-Script-Klassen. In der Anleitung gibt es ein paar Bemerkungen dazu. Inzwischen ist die Schnittstelle zur Konfiguration der Überschriften in KOMA-Script so mächtig, dass ich kaum einen Grund sehe, das Paket zu verwenden.
\renewcommand{\paragraph}{%
\@startsection{subsubsection}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{paragraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
Diese Umdefinierungen sind nicht kompatibel zu KOMA-Script-Klassen. Verwende besser \RedeclareSectionCommand, um die Abstände zu ändern und ggf. \setkomafont, um die Schrift zu ändern.
% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000 \displaywidowpenalty = 10000
Selbst Toptypografen sehen die absolute Verhinderung von Schusterjunge und Hurenkindern in wissenschaftlichen oder technischen Texten kritisch. Zum einen sind Schusterjungen eher unkritisch und Hurenkinder nur dann solche, wenn die Zeile wenig gefüllt ist, zum anderen erkauft man sich deren Verhinderung oft mit anderen Nachteilen.
- Das hat das Laden von scrlayer-scrpage ohnehin schon erledigt, ist also überflüssig.
- Der Befehl ist veraltet. In der KOMA-Script-Anleitug und im KOMA-Script-Buch findest du stattdessen \clearmainofpairofpagestyles.
\renewcommand{\chapterpagestyle}{scrheadings} % nur bei SCRREPRT/SCRBOOK, sonst uneinheitliche
Es ist ganz schlechter, typografischer Stil, wenn man Kapitelanfangsseiten mit einem lebenden Kolumentitel versieht. Statische Elemente, die auf den Kapitelanfangsseiten (und anderen plain-Seiten) stehen sollen, setzt man besser mit Hilfe der Sternvarianten von \ifoot und \ofoot etc.
\renewcommand\chapterheadstartvskip{\vspace{-4mm}}
Zur Verwendung von \chapterheadstartvskip gibt es in der Anleitung auch einen Hinweis.
\renewcommand{\bottomfraction}{1.0} % k.A. funktioniert aber
\renewcommand{\topfraction}{1.0} % k.A. funktioniert aber
\renewcommand{\textfraction}{0.0} % k.A. funktioniert aber
Eigentlich ist damit nonfloat noch etwas mehr überflüssig. Außerdem sollten \bottomfraction und \topfraction immer kleiner als 1 und \textfraction immer größer als 0 sein. Es sieht einfach Sch… aus, wenn zusammen mit einer Gleitumgebung nur ein bis zwei Zeilen Text auf einer Seite stehen, dann besser gleich eine Gleitumgebungsseite produzieren.
\parindent0mm % Einzug bei neuen Abs�tzen
\parskip3mm % Abstand zwischen Abs�tzen
Sollte man bei KOMA-Script nie, nie machen! Für Absatzabstand verwendet man am besten Option parskip mit einer der vielen dafür gebotenen Einstellungen. Will man wirklich ganz genau einen bestimmten Wert einstellen, verwendet man \setparsizes. Siehe dazu auch die KOMA-Script-Anleitung oder das KOMA-Script-Buch.
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
Komplett überflüssig, da KOMA-Script bereits \cleardoubleemptypage bietet. Siehe dazu auch die Abschnitte zu Vakatseiten in der Anleitung oder im Buch.
- Welche Version davon hast Du denn? Ich habe eine aktuelle Version, die selbst bereits xcolor mit Option table lädt, so dass das bei Dir eigentlich überflüssig wäre. Außerdem lädt diese bereits ulem mit Option normalem, was dann beim Laden von changes in deinem Beispiel zu einer Fehlermeldung führt. Die kannst Du also nicht haben.
Ich habe auch eine andere Version, die fancyhdr verwendet, was zu einer Fehlermeldung führen müsste. Leider fehlen bei beiden Versionen irgendwelche Versionsangaben, was ich unmöglich finde. Außerdem verwenden beide eine center-Umgebung in einer figure-Umgebung, was bekanntlich komplett falsch ist.
Das ganze ist also mal wieder eine Vorlage aus der Hölle (siehe auch »
Minimale Vorlage vs. maximale Probleme«).
Ich kann wegen des doxygen-Problems nicht wirklich zuverlässig mit deinem Code testen. Allerdings stelle ich fest, dass wenn ich das oben erwähnte doxygen-Problem umgehe, ich bei jeder Kapitelüberschrift die Warnung erhalte:
Class scrreprt Warning: usage of \IfUsePrefixLine outside section command
(scrreprt) style makes no sense, because the behaviour not only
(scrreprt) depends on class options but also on the run-time
(scrreprt) section command style.
(scrreprt) Neither the then-code nor the else-code will be
(scrreprt) executed.
(scrreprt) You may change this and avoid the warning by LOCALLY
(scrreprt) setting \IfUsePrefixLine to either \@firstoftwo or
(scrreprt) \@secondoftwo before using it on input line 111.
Ohne
secsty gibt es die Warnung nicht. Also scheint hier das Problem zu liegen. Ich kann das zwar mit \RedeclareSectionCommand{chapter} wieder beheben, aber dann steht \chapter natürlich nicht mehr unter der Kontrolle von
sectsty, sondern wieder unter der Kontrolle von
KOMA-Script. Ich würde empfehlen, stattdessen die Verwendung von
sectsty gleich ganz durch passende KOMA-Script-Befehle zu ersetzen.
Von einem [m][/m] ist der Code weit entfernt. Es ist leider weder vollständig noch minimal. Bitte lies dir die verlinkte Anleitung mal durch und beachte sie auch!
Ein paar Anmerkungen zu dem Code: [list]
[*][code]\documentclass[12pt,oneside,headsepline]{scrreprt}
%Doppelseitig
[/code] Der Kommentar ist falsch! Doppelseitig wäre [tt]twoside[/tt]. Außerdem ist [tt]oneside[/tt] Voreinstellung bei [p]scrreprt[/p]. Kann man sich also sparen.
[*][code]\usepackage[utf8]{inputenc} % damit die Tastatur richtig erkannt wird damit � = �[/code] Bei Verwendung eines aktuellen LaTeX ist das überflüssig. Da ist UTF8 ohnehin Voreinstellung. Der Online-Editor Overleaf braucht das derzeit in der Tat noch. Das wird sich aber sicher irgendwann ändern.
[*][code]\usepackage{float} % einfacher Weg, um Abb. zu fixieren mit [H][/code] die KOMA-Script-Klassen bieten mit [tt]\captionof[/tt] selbst einen einfachen Weg. Man braucht [p]float[/p] also eigentlich nicht.
[*][code]\usepackage{nonfloat}[/code] definiert [tt]table[/tt] und [tt]figure[/tt] um und nimmt dabei Änderungen vor, die nicht kompatibel mit KOMA-Script sind. Auch die Kompatibilität mit [p]float[/p] ist nicht gegeben. Das ist ggf. zu beachten, falls man Gleitumgebungen mit [p]KOMA-Script[/p]-Mitteln oder mit [p]float[/p]-Mitteln konfigurieren will.
[*][code]\usepackage{lscape, pdflscape} % soll Tabellen im Landscape-Format im Reader automatisch drehen, sonst wie landscape[/code] Das Paket [p]pdflscape[/p] lädt [p]lscape[/p] selbst. Es ist also überflüssig das selbst auch noch zu tun. Übrigens bietet das KOMA-Script-Paket [tt]scrhack[/tt] auch noch eine Verbesserung für [p]lscape[/p] und [p]pdflscape[/p].
[*][code]\usepackage{subfigure} % \subfigure{\includegraphics[...]{...}}[/code]
Das Paket ist seit Jahrzehnten veraltet und sollte nicht mehr verwendet werden → [p]subfigure[/p].
[*][code]\usepackage{hyperref}[/code] [p]hyperref[/p] sollte von wenigen, dokumentierten Ausnahmen abgesehen immer das letzte, geladene Paket sein. Es muss nämlich Definitionen von anderen Paketen ändern und kann das nur, wenn diese bereits geladen sind!
[*][code]\usepackage{pstricks}[/code] Ich bezweifle ehrlich gesagt, dass du das bei deiner ansonsten PDF-lastigen Präambel wirklich verwendest, jedenfalls solange keines der Pakete geladen wird, die für die Verwendung von [p]pstricks[/p] mit [tt]pdflatex[/tt] eigentlich nahezu zwingend sind.
[*][code]\usepackage[thickspace,thickqspace,squaren]{SIunits}[/code] Dass das seit über 10 Jahren nicht mehr gepflegt wird, liegt sicher auch daran, dass inzwischen das Paket [p]siunitx[/p] die überlegene Lösung sein dürfte.
[*][code]\usepackage{colortbl}
…
\usepackage{xcolor}[/code] Statt die Pakete getrennt zu laden sollte man [p]xcolor[/p] einfach mit Option [tt]table[/tt] laden. Wenn das zu einem option clash führt, kann man die Option wahlweise bei [tt]\documentclass[/tt] angeben oder per [tt]\PassOptionsToPackage{table]{xcolor}[/tt] am besten noch vor [tt]\documentclass[/tt] (damit es ganz sicher vor dem ersten Laden von [p]xcolor[/p] ausgeführt wird).
[*][code]\usepackage{sectsty}[/code] Das Paket ist begrenzt kompatibel zu KOMA-Script-Klassen. In der Anleitung gibt es ein paar Bemerkungen dazu. Inzwischen ist die Schnittstelle zur Konfiguration der Überschriften in KOMA-Script so mächtig, dass ich kaum einen Grund sehe, das Paket zu verwenden.
[*][code]\renewcommand{\paragraph}{%
\@startsection{subsubsection}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{paragraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}[/code] Diese Umdefinierungen sind nicht kompatibel zu KOMA-Script-Klassen. Verwende besser [tt]\RedeclareSectionCommand[/tt], um die Abstände zu ändern und ggf. [tt]\setkomafont[/tt], um die Schrift zu ändern.
[*][code]% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000 \displaywidowpenalty = 10000[/code] Selbst Toptypografen sehen die absolute Verhinderung von Schusterjunge und Hurenkindern in wissenschaftlichen oder technischen Texten kritisch. Zum einen sind Schusterjungen eher unkritisch und Hurenkinder nur dann solche, wenn die Zeile wenig gefüllt ist, zum anderen erkauft man sich deren Verhinderung oft mit anderen Nachteilen.
[*][code]\pagestyle{scrheadings}[/code] Das hat das Laden von [p]scrlayer-scrpage[/p] ohnehin schon erledigt, ist also überflüssig.
[*][code]\clearscrheadings[/code] Der Befehl ist veraltet. In der [url=https://komascript.de/scrguide]KOMA-Script-Anleitug[/url] und im [url=http://www.dante.de/index/Literatur/KOMA-Script.html]KOMA-Script-Buch[/url] findest du stattdessen [tt]\clearmainofpairofpagestyles[/tt].
[*][code]\renewcommand{\chapterpagestyle}{scrheadings} % nur bei SCRREPRT/SCRBOOK, sonst uneinheitliche [/code] Es ist ganz schlechter, typografischer Stil, wenn man Kapitelanfangsseiten mit einem lebenden Kolumentitel versieht. Statische Elemente, die auf den Kapitelanfangsseiten (und anderen [tt]plain[/tt]-Seiten) stehen sollen, setzt man besser mit Hilfe der Sternvarianten von [tt]\ifoot[/tt] und [tt]\ofoot[/tt] etc.
[*][code]\renewcommand\chapterheadstartvskip{\vspace{-4mm}}[/code] Zur Verwendung von [tt]\chapterheadstartvskip[/tt] gibt es in der Anleitung auch einen Hinweis.
[*][code]\renewcommand{\bottomfraction}{1.0} % k.A. funktioniert aber
\renewcommand{\topfraction}{1.0} % k.A. funktioniert aber
\renewcommand{\textfraction}{0.0} % k.A. funktioniert aber[/code] Eigentlich ist damit [p]nonfloat[/p] noch etwas mehr überflüssig. Außerdem sollten [tt]\bottomfraction[/tt] und [tt]\topfraction[/tt] immer kleiner als 1 und [tt]\textfraction[/tt] immer größer als 0 sein. Es sieht einfach Sch… aus, wenn zusammen mit einer Gleitumgebung nur ein bis zwei Zeilen Text auf einer Seite stehen, dann besser gleich eine Gleitumgebungsseite produzieren.
[*][code]\parindent0mm % Einzug bei neuen Abs�tzen
\parskip3mm % Abstand zwischen Abs�tzen[/code] Sollte man bei KOMA-Script nie, nie machen! Für Absatzabstand verwendet man am besten Option [tt]parskip[/tt] mit einer der vielen dafür gebotenen Einstellungen. Will man wirklich ganz genau einen bestimmten Wert einstellen, verwendet man [tt]\setparsizes[/tt]. Siehe dazu auch die [url=https://komascript.de/scrguide]KOMA-Script-Anleitung[/url] oder das [url=http://www.dante.de/index/Literatur/KOMA-Script.html]KOMA-Script-Buch[/url].
[*][code]\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}[/code] Komplett überflüssig, da KOMA-Script bereits [tt]\cleardoubleemptypage[/tt] bietet. Siehe dazu auch die Abschnitte zu Vakatseiten in der Anleitung oder im Buch.
[*][code]\usepackage{doxygen}[/code] Welche Version davon hast Du denn? Ich habe eine [url=https://github.com/doxygen/doxygen/blob/master/templates/latex/doxygen.sty]aktuelle Version[/url], die selbst bereits [tt]xcolor[/tt] mit Option [tt]table[/tt] lädt, so dass das bei Dir eigentlich überflüssig wäre. Außerdem lädt diese bereits [p]ulem[/p] mit Option [tt]normalem[/tt], was dann beim Laden von [p]changes[/p] in deinem Beispiel zu einer Fehlermeldung führt. Die kannst Du also nicht haben.
Ich habe auch eine andere Version, die [p]fancyhdr[/p] verwendet, was zu einer Fehlermeldung führen müsste. Leider fehlen bei beiden Versionen irgendwelche Versionsangaben, was ich unmöglich finde. Außerdem verwenden beide eine [tt]center[/tt]-Umgebung in einer [tt]figure[/tt]-Umgebung, was bekanntlich komplett falsch ist.[/list]
Das ganze ist also mal wieder eine Vorlage aus der Hölle (siehe auch »[url=https://www.komascript.de/latexvorlage]Minimale Vorlage vs. maximale Probleme[/url]«).
Ich kann wegen des doxygen-Problems nicht wirklich zuverlässig mit deinem Code testen. Allerdings stelle ich fest, dass wenn ich das oben erwähnte doxygen-Problem umgehe, ich bei jeder Kapitelüberschrift die Warnung erhalte: [code]Class scrreprt Warning: usage of \IfUsePrefixLine outside section command
(scrreprt) style makes no sense, because the behaviour not only
(scrreprt) depends on class options but also on the run-time
(scrreprt) section command style.
(scrreprt) Neither the then-code nor the else-code will be
(scrreprt) executed.
(scrreprt) You may change this and avoid the warning by LOCALLY
(scrreprt) setting \IfUsePrefixLine to either \@firstoftwo or
(scrreprt) \@secondoftwo before using it on input line 111.[/code]
Ohne [p]secsty[/p] gibt es die Warnung nicht. Also scheint hier das Problem zu liegen. Ich kann das zwar mit [tt]\RedeclareSectionCommand{chapter}[/tt] wieder beheben, aber dann steht [tt]\chapter[/tt] natürlich nicht mehr unter der Kontrolle von [p]sectsty[/p], sondern wieder unter der Kontrolle von [p]KOMA-Script[/p]. Ich würde empfehlen, stattdessen die Verwendung von [p]sectsty[/p] gleich ganz durch passende KOMA-Script-Befehle zu ersetzen.