sieversMartin / hausarbeit-jura

Eine LaTeX-Klasse für juristische Hausarbeiten an deutschen Universitäten
12 stars 2 forks source link

Option für Gliederungsebenen #3

Closed seb-mm closed 3 years ago

seb-mm commented 3 years ago

Ich habe bisher nur mit Markdown und noch nicht mit Latex Erfahrung.

Wäre es möglich, für die Gliederungsebenen Optionen bereitzustellen?

Die Gliederung soll wie folgt aussehen: Beispiel 1: A) I) 1) a) aa) (1) (a) (aa) α)

Beispiel 2 (in der Hoffnung, dass mir kein Fehler unterlaufen ist; das soll nur Beispiel 1 verdeutlichen):

A)
I)
1)
2)
a)
b)
aa)
bb)
(1)
(2)
(a)
(aa)
(bb)
(cc)
α)
β)
(b)
(c)
(3)
cc)
c)
3)
4)
II)
III)
IV)
B)
I)
II)
C)

Ich habe das selbst für Markdown schon mit CSS probiert, da sind allerdings nur die ersten vier Gliederungsebenen umsetzbar. Bis auf α), was nur in Ausnahmesituationen verwendet werden sollte, wäre es toll, wenn Sie das umsetzen könnten.

Bitte ziehen Sie das nur in Erwägung, wenn die Umsetzung nicht zu zeitintensiv ist. – Ich möchte nicht, dass Sie wegen mir, einem absoluten Neuling in Latex (bisher konnte ich mich nur für Markdown begeistern, für Latex hatte ich noch keine Verwendung), zu viel Zeit einsetzen. (Wenn noch gar nicht klar ist, ob ich dann mit Latex glücklich würde.) Ansonsten werde ich meine Hausarbeiten von vornherein mit Word verfassen, das ist dann auch kein Beinbruch.

sieversMartin commented 3 years ago

Im Gegensatz zu Markdown oder CSS ist LaTeX bzw. das darunter liegende TeX ja eine echte Programmiersprache. Insofern sind alle Dinge zu ändern. Für die Gliederungsebenen sind intern Zähler definiert, deren Ausgabe sich mit den Makros \Roman, \arabic oder auch \Alph sehr einfach ändern lassen. Letztlich mache ich in der Klasse nichts anderes.

Das bedeutet, dass Sie in Ihrem Vorspann jede Art von Nummerierung selbst festlegen bzw. ändern können:

\documentclass{hausarbeit-jura}
\usepackage{moreenum} %für griechische Zählung

%%% Änderungen für einige Ebenen
\renewcommand{\thesection}{\Roman{section})}
\renewcommand{\thesubsection}{\arabic{subsection})}
\renewcommand{\thesubsevensection}{\greek{subsection})}

\begin{document}
   \chapter{Test}
   \section{Test}
   \subsection{Test}
   \subsubsection{Test}
   \subthreesection{Test}
   \subfoursection{Test}
   \subfivesection{Test}
   \subsixsection{Test}
   \subsevensection{Test}
\end{document}

Es fehlt noch die Fettung der griechischen Zeichen. Da schau ich gerne noch.

seb-mm commented 3 years ago

Vielen Dank für Ihre schnelle Antwort.

Kann ich das insgesamt so umsetzen?:

\documentclass{hausarbeit-jura}
\usepackage{moreenum} %für griechische Zählung

%%% Änderungen
\renewcommand{\thechapter}{\Alph{chapter})}
\renewcommand{\thesection}{\Roman{section})}
\renewcommand{\thesubsection}{\arabic{subsection})}
\renewcommand{\thesubsubsection}{\alph{subsubsection})}
\renewcommand{\thesubthreesection}{\alph{subthreesection}\alph{subthreesection})}
\renewcommand{\thesubfoursection}{(\arabic{subfoursection})}
\renewcommand{\thesubfivesection}{(\alph{subfivesection})}
\renewcommand{\thesubsixsection}{(\alph{subsixsection}\alph{subsixsection})}
\renewcommand{\thesubsevensection}{\greek{subsevensection})}

%% Sorgt `Alph` dafür, dass es dann großgeschrieben ist? Also dass `alph` den Kleinbuchstaben gibt?
%% Oder mache ich das wie unten mit `\uppercase{\alph{section})}`.

\documentclass{hausarbeit-jura}
\usepackage{moreenum} %für griechische Zählung

%%% Änderungen
\renewcommand{\thechapter}{\uppercase{\alph{section})}}
\renewcommand{\thesection}{\Roman{section})}
\renewcommand{\thesubsection}{\arabic{subsection})}
\renewcommand{\thesubsubsection}{\alph{subsubsection})}
\renewcommand{\thesubthreesection}{\alph{subthreesection}\alph{subthreesection})}
\renewcommand{\thesubfoursection}{(\arabic{subfoursection})}
\renewcommand{\thesubfivesection}{(\alph{subfivesection})}
\renewcommand{\thesubsixsection}{(\alph{subsixsection}\alph{subsixsection})}
\renewcommand{\thesubsevensection}{\greek{subsevensection})}

Und muss ich {\greek{subsevensection})} schreiben, oder reicht {\greek{subsection})}?

sieversMartin commented 3 years ago

Ich hatte nur die drei Ebenen angefasst, die abweichend vom Standard der Klasse gewünscht sind. Der Rest sollte doch schon passen, oder?

Hier zum Vergleich die Definitionen aus der Klasse:

\renewcommand\thechapter{\Alph{chapter})}
\renewcommand\thesection{\Roman{section}.}
\renewcommand\thesubsection{\arabic{subsection}.}
\renewcommand\thesubsubsection{\alph{subsubsection})}
\renewcommand\thesubfoursection{(\arabic{subfoursection})}
\renewcommand\thesubfivesection{(\alph{subfivesection})}
\renewcommand\thesubsixsection{(\alph{subsixsection}\alph{subsixsection})}
\renewcommand\thesubsevensection{(\alph{subsevensection}\alph{subsevensection}\alph{subsevensection})}
\renewcommand\thesubeightsection{(\roman{subeightsection})}
seb-mm commented 3 years ago

Ah genau, ja. Sie haben Recht. Vielen Dank für Ihre Hilfe! Über Weihnachten werde ich mich dann in Latex und Bibtex einfuchsen.

Ich wünsche Ihnen eine schöne Weihnachtszeit.

sieversMartin commented 3 years ago

Fette griechische Zählung mit \renewcommand{\thesubsevensection}{\boldmath\greek{subsection})}

Das kann man evtl. auch noch schöner machen, indem man den entsprechenden Textfont verwendet.

seb-mm commented 3 years ago

Super, herzlichen Dank. Mir ist gerade erst beim Ausprobieren aufgefallen, dass ich das brauche.

Durch das griechische Zeichen ist allerdings auch die Einrückung im Inhaltsverzeichnis nicht mehr korrekt. grafik

Ich habe zwar die Stelle in der Klasse gefunden, die das festlegt, bin aber leider daran gescheitert, das in meinem Dokument neu zu definieren.

\renewcommand{\jubo@settocindents}{%
  \if@chapterprefix%
    \settowidth{\chapternumwidth}{\chaptername~999\chapterextra\space}% warum drei x 9? zweimal ist zu knapp
  \else% chaptersuffix:
    \settowidth{\chapternumwidth}{999.~\chaptername\chapterextra\space}%
  \fi%
  \settowidth{\sectionnumwidth}{III.\ }%
  \settowidth{\subsectionnumwidth}{8.\ }%
  \settowidth{\subsubsectionnumwidth}{b)\ }%
  \settowidth{\subthreesectionnumwidth}{bb)\ }%
  \settowidth{\subfoursectionnumwidth}{(8)\ }%
  \settowidth{\subfivesectionnumwidth}{(b)\ }%
  \settowidth{\subsixsectionnumwidth}{(bb)\ }%
  \settowidth{\subsevensectionnumwidth}{(bbb)\ }% wie ich das in meinem Dokument ändern kann, ist mir nicht klar.
  \settowidth{\subeightsectionnumwidth}{(iii)\ }%

Eine Suche im Internet hat mir auch nicht weitergeholfen.

sieversMartin commented 3 years ago

Man kann das ändern, muss dann aber das gesamte Makro anpassen. Da ein "internes" Makro geändert wird (zu erkenn an @, muss man die Änderung mit \makeatletter ... \makeatother umschließen.

\makeatletter
\renewcommand{\jubo@settocindents}{%
   \if@chapterprefix%
   \settowidth{\chapternumwidth}{\chaptername~999\chapterextra\space}% warum drei x 9? zweimal ist zu knapp
   \else% chaptersuffix:
   \settowidth{\chapternumwidth}{999.~\chaptername\chapterextra\space}%
   \fi%
   \settowidth{\sectionnumwidth}{III)\ }%geändert
   \settowidth{\subsectionnumwidth}{8)\ }%geändert
   \settowidth{\subsubsectionnumwidth}{b)\ }%
   \settowidth{\subthreesectionnumwidth}{bb)\ }%
   \settowidth{\subfoursectionnumwidth}{(8)\ }%
   \settowidth{\subfivesectionnumwidth}{(b)\ }%
   \settowidth{\subsixsectionnumwidth}{(bb)\ }%
   \settowidth{\subsevensectionnumwidth}{$\alpha$)\ }%geändert
   \settowidth{\subeightsectionnumwidth}{(iii)\ }%
   \if@chapterprefix%
   \setlength{\sectiontocindent}{\chapternumwidth}%
   \else%
   \settowidth{\@tempdima}{\bfseries 99.\space}%
   \setlength{\sectiontocindent}{\@tempdima}%
   \fi
   \if@fixtocindent%
   \setlength{\sectiontocindent}{\jb@defaulttocindent@length}% = 1.5em per default
   \fi%
   \setlength{\subsectiontocindent}{\sectiontocindent}%
   \addtolength{\subsectiontocindent}{\sectionnumwidth}%
   \setlength{\subsubsectiontocindent}{\subsectiontocindent}%
   \addtolength{\subsubsectiontocindent}{\subsectionnumwidth}%
   \setlength{\subthreesectiontocindent}{\subsubsectiontocindent}%
   \addtolength{\subthreesectiontocindent}{\subsubsectionnumwidth}%
   \setlength{\subfoursectiontocindent}{\subthreesectiontocindent}%
   \addtolength{\subfoursectiontocindent}{\subthreesectionnumwidth}%
   \setlength{\subfivesectiontocindent}{\subfoursectiontocindent}%
   \addtolength{\subfivesectiontocindent}{\subfoursectionnumwidth}%
   \setlength{\subsixsectiontocindent}{\subfivesectiontocindent}%
   \addtolength{\subsixsectiontocindent}{\subfivesectionnumwidth}%
   \setlength{\subsevensectiontocindent}{\subsixsectiontocindent}%
   \addtolength{\subsevensectiontocindent}{\subsixsectionnumwidth}%
   \setlength{\subeightsectiontocindent}{\subsevensectiontocindent}%
   \addtolength{\subeightsectiontocindent}{\subsevensectionnumwidth}%
   \setlength{\paragraphtocindent}{\subeightsectiontocindent}%
   \addtolength{\paragraphtocindent}{\subeightsectionnumwidth}%
   \setlength{\subparagraphtocindent}{\paragraphtocindent}%
   \addtolength{\subparagraphtocindent}{\jb@defaulttocindent@length}%
}
\makeatother
seb-mm commented 3 years ago

Vielen Dank! 😃