Hline nach jedem Titel

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


maxmuster
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 30. Nov 2015, 07:57

Hline nach jedem Titel

Beitrag von maxmuster »

Hallo zusammen,

meine Titelformatierung sieht wie folgt aus:

\section{Einführung}
\vspace{-3mm}\hline \vspace{2mm}

Nun möchte ich dies aber nicht im Mainfile jedesmal schreiben, sondern im stylefile für alle Titel setzen, so dass jede section mit einer Linie versetzt wird.

Im Moment sieht die section im stylefile so aus:
\renewcommand{\thesection}{\arabic{section}\Large }
Kann ich den hline command dort einfügen? Bis jetzt komm ich nur auf Fehler.. und ist es möglich die Hline mit einer von mir definierten Color zu färben?


Gruss

Noch so einer

Beitrag von Noch so einer »

Zunächst einmal ist es eine ganz schlechte Idee, Formatierungsanweisungen wie Schriftgrößenbefehle in \the…-Anweisungen für Zähler einzubauen. Die landen dann nämlich überall, wo der Zähler verwendet wird, bei Zählern zu Gliederungsbefehlen beispielsweise in Querverweisen, Kopfzeilen, Inhaltsverzeichnis etc. Da die \the… teilweise auch in moving arguments verwendet werden, können die Formatierungsanweisungen sogar zerbrechen. Also unbedingt bleiben lassen.

Da Du ansonsten kein Minimalbeispiel mitgeliefert hast, wissen wir leider nicht, welche Klassen und ggf. welche Pakete für Gliederungsbefehle du verwendest. Deshalb sei nur darauf hingewiesen, dass man so etwas bei KOMA-Script vermutlich am einfachsten über Umdefinierung von \sectionlinesformat erreicht:
\documentclass{scrartcl}

\usepackage{mwe}

\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}{% Nur bei Überschriften der section-Ebene
    \underline{\strut\@hangfrom{\hskip #2#3}{#4}}%
  }{% Bei allen anderen Ebenen wie gehabt:
    \@hangfrom{\hskip #2#3}{#4}%
  }%
}
\makeatother

\begin{document}
\tableofcontents
\Blinddocument
\end{document}
oder
\documentclass{scrartcl}

\usepackage{mwe}

\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
  \@hangfrom{\hskip #2#3}{#4}%
  \ifstr{#1}{section}{% Nur bei Überschriften der section-Ebene
    \par\nobreak\vskip-\ht\strutbox\nobreak\hrulefill
  }{}%
}
\makeatother

\begin{document}
\tableofcontents
\Blinddocument
\end{document}
Wie Du an dem Beispiel hoffentlich selbst siehst, sind solche Linien aber in der Regel eher schlecht, weil sie die Überschrift optisch stark vom Inhalt des Abschnitts trennen, zu dem sie eigentlich gehören. Es sieht dann im Beispiel so aus, als würde die Überschrift zu Abschnitt 1 eher zum Inhaltsverzeichnis gehören, das wiederum mit der Überschrift "Contents" eher nichts zu tun hat. Daher mein Rat: Keine derartigen Linien über die gesamte Seitenbreite verwenden. Am besten auf Linien so weit wie möglich verzichten. Sie erschweren gute Typographie erheblich und sind etwas für Typographieexperten.

Noch so einer

Beitrag von Noch so einer »

PS: Dass das ganze im Online-Editor nicht funktioniert, liegt daran, dass dieser ein inzwischen stark veraltetes TeX-Live verwendet, dessen KOMA-Script-Version vieles noch nicht kann, was eine aktuelle KOMA-Script-Release beherrscht.

maxmuster
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 30. Nov 2015, 07:57

Beitrag von maxmuster »

Hi, danke erstmals für deine Antwort. Da ich ziemlich neu mit Latex habe ich den Durchblick noch nicht ganz. Also nochmal zu meinem Code:

Ich habe ein Main File und ein Style File:

Main File:
\documentclass{stylefile}



\begin{document}
 
\tableofcontents



\section{Einführung}
\vspace{-3mm}\hline \vspace{2mm}

In erster Linie geht es darum das Design zu ändern.
 
\section{Einführung}

\marginnote{Dies ist eine Seitenmarginalie}[3cm]



 
\end{document} 

Und das stylefile ( in welchem ich die Style Einstellungen tätigen möchte )
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{stylefile}[27.11.2015 Vorlage]
\LoadClass{book}



\RequirePackage{titlesec}

\usepackage{xcolor} %loads the color package
\usepackage{color}
\usepackage{sectsty}
\usepackage[utf8]{inputenc}%loads the package to use ä/ö/ü
\usepackage{fontspec}
\usepackage{geometry}
\usepackage{marginnote}


\geometry{verbose,a4paper,tmargin=25mm,bmargin=25mm,lmargin=25mm,rmargin=25mm}
\textwidth = 418pt 
\marginparsep = 11pt %distance text - margin





\setmainfont{Segoe UI Semibold}

\renewcommand{\thesection}{\arabic{section}\Large } %Enumeration starts with 1 and not with 0.1


\definecolor{titlegreen}{RGB}{0,79,39}
\definecolor{greenmargin}{RGB}{60,98,74}

\sectionfont{\color{titlegreen}}


Ziel schlussendlich sollte sein ( ich bin erst am Anfang ), dass man sozusagen eine Vorlage für das Dokument hat und man nurnoch Text/Titel ändern muss und es automatisch das Design annimmt, welches ich im Style file angebe...Hoffe habe es genug ausführlich erklärt

PS: Das mit der Linie ist vorgeschrieben, da ich ein Word Dokument bekommen habe und dieses nun in Latex umgeschrieben werden soll

Besserwisser

Beitrag von Besserwisser »

Du wirst das nicht hören wollen, aber mit so wenig Ahnung solltest du keine LaTeX-Vorlage erstellen. Du lädst beispielsweise geometry änderst dann aber doch wieder von Hand an den Parametern, die man mit diesem Paket ändern kann. Du lädst mit titlesec und sectsty gleich zwei Pakete, um Überschriften zu konfigurieren. Zwei Pakete für Änderungen an letztlich derselben Stelle sind meist keine gute Idee. Du verwendest \usepackage wo man normalerweise \RequirePackage einsetzen würde usw. Du verwendest als Basis die Buchklasse book, versuchst aber offenbar \section statt \chapter als oberste Gliederungsebene zu verwenden. Das passt nicht zusammen.

Wenn du es trotzdem machen willst, solltest du neu anfangen, als erstes den [d]clsguide[/d] lesen. Wenn du den schon nicht verstehst solltest, mit einer LaTeX-Einführung beginnen. Natürlich solltest du auch unbedingt die Anleitungen zu den verwendeten Paketen lesen.

Persönlich würde ich übrigens auf Basis einer KOMA-Script-Klasse, beispielsweise scrbook arbeiten, weil man da sehr vieles ohne Zusatzpaket einfach einstellen kann.

style file ist übrigens ein Terminus von LaTeX 2.09, das 1994/95 von LaTeX2e abgelöst wurde. Das mag hier Zufall sein, aber eine Klasse stylefile zu nennen, ist trotzdem keine so tolle Idee. Etwas mehr Bezug wofür die Klasse gedacht ist, ist meist sinnvoll.

Und immer daran denken: Anderen eine Vorlage zur Verfügung zu stellen, ist eine verantwortungsvolle Aufgabe und mit der Bereitstellung nicht erledigt. Man muss dann auch Support leisten und Rede und Antwort stehen.

Antworten