Anzeige:
Ergebnis 1 bis 11 von 11

Thema: Abstand Überschrift <--> Text

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    65

    Abstand Überschrift <--> Text

    Hallo,
    ich wollte mit Hilfe dieses Beitrags http://www.mrunix.de/forums/showthread.php?t=59943 den Abstand zwischen Text und Überschrift ändern, also habe ich
    Code:
    \def\section{\@startsection{section}{1}{\z@}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\Large\bf}}
    \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}}
    ins Dokument kopiert und {-3.5ex plus -1ex minus -.2ex} in {-2.5ex plus -1ex minus -.2ex} verändert.
    Ich bekomme aber die Fehlermeldung
    Code:
    Arbeit_II_komplett.tex:238:You can't use `\spacefactor' in vertical mode. \section
    (Den kriege ich auch ohne das ich etwas verändere)
    Hab auch schon \z@ in 0pt geändert, passiert dasselbe.

    Hat jemand eine Ahnung woran das liegt?

  2. #2
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Paket benutzen

    Auch dort wurde titlesec vorgeschlagen. Versuche doch erst mal diese einfachere Methode.


    MfG
    Thorsten¹
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  3. #3
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    Hasst du die Anweisung eigentlich auch in makeatletter und makeatother gesetzt?

    Gruß
    Marco

  4. #4
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Einfaches Beispiel

    So, um mal die Einfachheit von titlesec gegenüber den anderen beiden doch sehr kryptischen Zeilen zu zeigen.
    Code:
    \documentclass[11pt,a4paper,ngerman]{article}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{babel}
    \usepackage{titlesec}
    \usepackage{lmodern}
    \usepackage{blindtext}
    
    \parindent0em
    \parskip\medskipamount
    \titlespacing{\section}{0pt}{*4}{*1.5}
    
    \begin{document}
      \Blinddocument
    \end{document}
    Die gekennzeichneten Stellen sind Faktoren zu vordefinierten Werten. Da muss ein bisschen probiert werden. Ausführliche Auskunft darüber und über die anderen Möglichkeiten des Pakets gibt dessen Anleitung.
    Geändert von localghost (18-01-2009 um 20:43 Uhr) Grund: Ergänzung.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  5. #5
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    65
    Danke, mit titlesec funktioniert es bestens!

  6. #6
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    titlesec erlaubt zwar das bequeme Umstellen der Abstände vor und nach Überschriften, hat aber den Nachteil, nicht kompatibel zum Paket hyperref zu sein. Insbesondere werden Hyperlinks auf Überschriften ohne Nummer (z.B. section*) nicht mehr korrekt gesetzt. Bei Verwendung von hyperref empfiehlt es sich also durchaus, die (entsprechend modifizierten) Definitionen der Überschriftenbefehle in die eigene Präambel zu übernehmen.

    lockstep

  7. #7
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Beleg

    Zitat Zitat von lockstep Beitrag anzeigen
    titlesec erlaubt zwar das bequeme Umstellen der Abstände vor und nach Überschriften, hat aber den Nachteil, nicht kompatibel zum Paket hyperref zu sein. Insbesondere werden Hyperlinks auf Überschriften ohne Nummer (z.B. section*) nicht mehr korrekt gesetzt. Bei Verwendung von hyperref empfiehlt es sich also durchaus, die (entsprechend modifizierten) Definitionen der Überschriftenbefehle in die eigene Präambel zu übernehmen. [...]
    Zeige das doch bitte mal an einem Beispiel. Hyperlinks auf unnummerierte Abschnitte funktionieren generell nicht, weil kein Anker erzeugt. Wenn es dieses Problem tatsächlich gibt, solltest Du nicht zögern und dies dem Autor melden.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  8. #8
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von localghost Beitrag anzeigen
    Zeige das doch bitte mal an einem Beispiel. Hyperlinks auf unnummerierte Abschnitte funktionieren generell nicht, weil kein Anker erzeugt. Wenn es dieses Problem tatsächlich gibt, solltest Du nicht zögern und dies dem Autor melden.
    mit \phantomsection sollte es aber gehen.

    Herbert

  9. #9
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Ich muss mich entschuldigen, da ich mich missverständlich ausgedrückt habe bzw. mindestens zum Teil unrecht hatte. Unnummerierte Abschnitte (section*) erzeugen natürlich von selbst keine Hyperlinks - ich hatte an den Befehl \addsec (aus KOMA-Script) gedacht, der dies doch tut (und den ich auch aufgrund seiner Einträge in die Dokument-Kopfzeile bevorzuge). Definiert man bei Verwendung einer KOMA-Script-Klasse die \section-Abstände mittels titlesec um, beeinflusst dies auch \addsec, führt dort jedoch zu unkorrekten Hyperlinks. Minimalbeispiel:

    Code:
    \documentclass{scrartcl}
    
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    
    \usepackage{titlesec}% Führt zu unkorrekten Hyperlinks bei \addsec
    \titlespacing{\section}{0pt}{10pt}{2pt}% Beeinflusst auch \addsec
    
    \usepackage{hyperref}
    
    \begin{document}
    
    \tableofcontents
    
    \section{Ein Abschnitt}
    
    Dieser Satz ist nur ein Platzhalter.
    
    \clearpage
    \addsec{Ein Abschnitt ohne Nummer}
    
    Dieser Satz ist nur ein Platzhalter.
    
    \end{document}
    Zu \phantomsection als Workaround: Ein Fall, für den ich keine Lösung gefunden habe, ist ein Literaturverzeichnis in Artikel-Klassen -- setze ich \phantomsection vor den Befehl zum Ausdruck der Bibliographie, beginnt diese eventuell auf einer neuen Seite, setze ich \phantomsection nach den Druckbefehl, kann eine längere Bibliographie ebenfalls zu einem unkorrekten Hyperlink führen.

    (Immer noch ziemlich zerknirscht)
    lockstep

  10. #10
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Ach, so

    Es wäre gut gewesen, von Du vorn herein die Dokumentklasse anzugeben. Ich kann mir die Problem bei Klassen aus KOMA Script gut vorstellen. Viele Pakete, die ähnlich in die Struktur eingreifen, sind eben nicht daran angepasst. Ich verwende titlesec auch hauptsächlich mit Standardklassen und dort auch nicht primär zu Veränderung von Abständen vor und nach Überschriften. Das Paket kann noch eine ganze Menge anderer Sachen. Aber auch bei Standardklassen tritt das von dir beschriebene Problem auf, wird allerdings durch den Vorschlag von Herbert vollständig behoben.
    Geändert von localghost (19-01-2009 um 23:48 Uhr) Grund: Ergänzung.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  11. #11
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Zitat Zitat von lockstep Beitrag anzeigen
    Definiert man bei Verwendung einer KOMA-Script-Klasse die \section-Abstände mittels titlesec um, beeinflusst dies auch \addsec, führt dort jedoch zu unkorrekten Hyperlinks.
    Aufgrund einer Anfrage eines Forum-Mitglieds zu einem anderen Problem habe ich mich nach längerer Zeit wieder mit dem Paket titlesec beschäftigt und dabei eine Lösung (bzw. zumindest einen Workaround) für das oben beschriebene Problem gefunden: Neben den Abständen muss auch das Format von \section umdefiniert werden, und dabei kann im before-Code der (aus dem Paket hyperref stammende) Befehl \phantomsection eingesetzt werden.

    Code:
    \documentclass{scrartcl}
    
    \usepackage[latin9]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    
    \usepackage{titlesec}
    \titlespacing*{\section}{0pt}{10pt}{2pt}
    
    % Die Variante ohne \phantomsection führt zu unkorrekten Hyperlinks bei \addsec
    \titleformat{\section}{\Large\bfseries\sffamily}{\thesection}{0.5em}{\phantomsection}
    % \titleformat{\section}{\Large\bfseries\sffamily}{\thesection}{0.5em}{}
    
    \usepackage{hyperref}
    
    \begin{document}
    
    \tableofcontents
    
    \section{Ein Abschnitt}
    
    Dieser Satz ist nur ein Platzhalter.
    
    \clearpage
    \addsec{Ein Abschnitt ohne Nummer}
    
    Dieser Satz ist nur ein Platzhalter.
    
    \end{document}
    So gesehen, ist es Zeit, sich mit titlesec wieder anzufreunden.

    lockstep
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •