Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Seltsames Section-Verhalten nach Anpassung der article.cls

  1. #1
    Registrierter Benutzer
    Registriert seit
    27.08.2007
    Beiträge
    5

    Seltsames Section-Verhalten nach Anpassung der article.cls

    Hallo zusammen,

    Ich bin erst vor kurzem in die Latex-Welt eingestiegen und habe jetzt ein Problem das ich nicht lösen kann:

    Ich habe Latex-Templates entworfen (von article abgeleitet). Nun musste ich doch Überschrifthierarchien bis Level 8 unterstützen und habe deshalb die article.cls angepasst: Habe einfach die counter und commands für subsection bzw. subsubsection kopiert und meine neuen Levels eingefügt.

    Das funktioniert auch so weit. Die Sektionen werden auf korrektem Level angezeigt und nummeriert. PROBLEM: die Sektionsüberschrift wird im Body des Ebschnitts nocheinmal widerholt! Warum ist das so und wie kann man das ändern?

    Muster:

    \subsubsubsection{Überschrift}
    restlicher Body-Text

    erzeugt:

    1.1.1.1 Überschrift
    Überschrift
    restlicher Body-Text

    Kann mir hier wer helfen?
    Wäre wirklich dankbar.

    Grüße,
    Stefan


    Details - anpassungen in article.cls:

    \newcounter {subsubsubsection}[subsubsection]
    \renewcommand \thesubsubsubsection{\thesubsubsection .\@arabic\c@subsubsubsection}
    \newcommand\subsubsubsection{\@startsection{subsub subsection}{4}{\z@}%
    {-3.25ex\@plus -1ex \@minus -.2ex}%
    {1.5ex \@plus .2ex}%
    {\normalfont\large\bfseries}}
    \newcommand*\l@subsubsubsection{\@dottedtocline{4} {3.8em}{3.2em}}

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.08.2007
    Beiträge
    5
    Hallo nochmal,

    Ich habe jetzt etwas herumprobiert und der Fehler liegt definitiv nur am geschriebenen Code und nicht an der article.cls.

    Anstatt die article.cls zu verändern habe ich jetzt ein eigenes file erzeugt (myheadings.sty) und das eingebunden - mit dem gleichen Ergebnis.

    Code in myheadings.sty:

    \NeedsTeXFormat{LaTeX2e}
    \ProvidesPackage{myheadings}[2007/08/28]

    \newcounter {subsubsubsection}[subsubsection]
    \newcounter {subXsection}[subsubsubsection]
    \newcounter {subXsubsection}[subXsection]
    \newcounter {subXsubsubsection}[subXsubsection]
    \renewcommand \thesubsubsubsection{\thesubsubsection .\@arabic\c@subsubsubsection}
    \renewcommand \thesubXsection{\thesubsubsubsection .\@arabic\c@subXsection}
    \renewcommand \thesubXsubsection{\thesubXsection .\@arabic\c@subXsubsection}
    \renewcommand \thesubXsubsubsection{\thesubXsubsection .\@arabic\c@subXsubsubsection}
    \newcommand\subsubsubsection{\@startsection{subsub subsection}{4}{\z@}%
    {-3.25ex\@plus -1ex \@minus -.2ex}%
    {1.5ex \@plus .2ex}%
    {\normalfont\large\bfseries}}
    \newcommand\subXsection{\@startsection{subXsection }{5}{\z@}%
    {-2.25ex\@plus -1ex \@minus -.2ex}%
    {1.0ex \@plus .2ex}%
    {\normalfont\large\bfseries}}
    \newcommand\subXsubsection{\@startsection{subXsubs ection}{6}{\z@}%
    {-2.25ex\@plus -1ex \@minus -.2ex}%
    {1.0ex \@plus .2ex}%
    {\normalfont\normalsize\bfseries}}
    \newcommand\subXsubsubsection{\@startsection{subXs ubsubsection}{7}{\z@}%
    {-2.25ex\@plus -1ex \@minus -.2ex}%
    {1.0ex \@plus .2ex}%
    {\normalfont\normalsize}}

    Dieser Code erzeugt immer:

    1.1.1.1 Überschrift
    Überschrift
    Body

    1.1.1.1.1 Überschrift
    Überschrift
    Body

    ...u.s.w.

    Wieso erzeugt der obige code dieses Verhalten? Wie kann man das Wiederholen der Überschrift abstellen?
    Danke für jegliche Hilfe!

    Stefan

  3. #3
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Hallo Stefan,

    Du hast vergessen, die passenden "mark"-Befehle zu definieren. Sind sie nicht vorhanden, so werden sie intern in \@startsection als \relax interpretiert, was zur Folge hat, daß das Argument ausgegeben anstatt ausgewertet wird - was deine doppelte Ausgabe erklärt.

    Hast du dir schon'mal ftp://ftp.dante.de/tex-archive/macro...se/classes.dtx angeschaut? In diesem Dokument sind die Zusammenhänge dargelegt. Auch ftp://ftp.dante.de/tex-archive/macro...c/clsguide.pdf dürfte für dich interessant sein.

    Auch kannst du dich wegen \subsubsubsection etc. an \paragraph und \subparagraph orientieren, die ja im Prinzip das gleiche in grün sind, also immerhin 2 weitere Gliederungsebenen bereitstellen.

    Liebe Grüße,
    Axel

  4. #4
    Registrierter Benutzer
    Registriert seit
    27.08.2007
    Beiträge
    5
    Erst Mal danke für Antwort!

    Habe mir jetzt die classes.dtx Mal angesehen. Ins Auge gestochen sind dabei vor allem 2 Stellen:
    Die Definitionen von sectionmark und subsectionmark (\def\subsectionmark##1 etc.)
    Der Verweis auf die latex.dtx für die \subsubsection{Mark commands} (in einem macro: \newcommand*\subsectionmark[1]{} etc.)

    Außerdem gibt es @gobble commands und in article.cls kommen auch marks für section und subsection vor.

    Ich bin mir leider nicht im Klaren wo ich ansetzen soll. Wo soll die markdefinition hin, wie sieht sie aus und wie wird sie mit den neu definierten Kapiteln verbunden?

    sorry falls ich zu sehr auf der Leitung stehe...

    P.S. paragraph und subparagraph mit Kapitelnummern zu versehen habe ich auch schon versucht, allerdings brauche ich dann doch noch mehr Unterebenen...

  5. #5
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Hallo Stefan,

    Zitat Zitat von Stoppl11 Beitrag anzeigen
    Ich bin mir leider nicht im Klaren wo ich ansetzen soll. Wo soll die markdefinition hin, wie sieht sie aus und wie wird sie mit den neu definierten Kapiteln verbunden?
    Definiere einfach \subsubsubsectionmark analog zu \subsubsectionmark aus classes.dtx/article.cls etc. Diese Makros werden automatisch von \@startsection verwendet, so führt z.B.
    Code:
    \@startsection{subsubsubsection}...
    dazu, daß intern \subsubsubsectionmark verwendet wird. Wenn es nicht definiert ist, kommt es zu dem von dir beobachteten Fehlverhalten, also brauchst du einfach für jedes \@startsection{xxx} auch einen \xxxmark-Befehl.

    Eine Art "Verbindung" brauchst du also nicht herzustellen, die ist schon in \@startsection eingebaut.

    Was mir in dem Zusammenhang gerade einfällt: Vielleicht ist auch der Zähler "secnumdepth" für dich von Interesse, der gibt AFAIK vor, bis zu welcher Ebene durchnummeriert wird.

    Liebe Grüße,
    Axel

  6. #6
    Registrierter Benutzer
    Registriert seit
    27.08.2007
    Beiträge
    5
    Danke danke danke für die Antworten! Das waren die entscheidenden Hinweise (auf mark wäre ich nie gekommen)...

    Hab das jetzt hinbekommen. Aus einem anderen Thema heraus habe ich übrigens auch im Internet eine Musterlösung für Gliederungsebenen unter subparagraph gefunden :

    Code:
    \usepackage{alnumsec}
    \makeatletter \let\size@abschnitt\normalsize
    \newcounter{abschnitt}[subparagraph]
    \newcommand\abschnitt{\@startsection{abschnitt}{6}{\parindent}%
      {3.25ex \@plus1ex \@minus .2ex}%
      {-1em}%
      {\setlength{\parfillskip}{\z@ \@plus 1fil}%
        \raggedsection\normalfont\sectfont\nobreak\size@abschnitt\nobreak}}
    \newcommand*{\scr@fnt@abschnitt}{\size@abschnitt}
    \newcommand*\l@abschnitt{\@dottedtocline{5}{10em}{5em}}
    \let\abschnittmark\@gobble
    \makeatother
    \alnumsectionlevels{1}{section,subsection,subsubsection,paragraph,subparagraph,abschnitt}
    \alnumsecstyle{Rnldng

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Hallo Stefan,

    Schön, daß es jetzt klappt!

    Hierzu eine Frage:

    Zitat Zitat von Stoppl11 Beitrag anzeigen
    \newcommand*{\scr@fnt@abschnitt}{\size@abschnitt}
    Weißt du, wozu das gut sein soll? "scr@" hört sich verdächtig nach KOMA-Script an, ich würde daher naiv denken, dies sei dafür da, daß man auch \setkomafont{abschnitt} bzw. \addtokomafont{abschnitt} benutzen kann (habe das jetzt aber nicht nachgeschaut ), aber was nützt das, wenn innerhalb von abschnitt dann \size@abschnitt und nicht \scr@fnt@abschnitt zur Anwendung kommt?

    Gruß,
    Axel

Lesezeichen

Berechtigungen

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