Anhangsverzeichnis nach Kohm mit apa6

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Anhangsverzeichnis nach Kohm mit apa6

Beitrag von MoonKid »

Basierend auf diesem Code
http://www.komascript.de/comment/3447#comment-3447
habe ich nach wenigen Anpassungen ein Dokument mit Anhangsverzeichnis nach meinem (bzw. meiner Dozentin) Bedürfnissen erzeugen können.

Lief mit scrartcl unter XeTeX besser als ich es erwartet hatte.

Nun muss ich das alles mit apa6-Klasse (Dozentin) machen. Prompt gibt es natürlich Probleme, deren Ursache ich nicht völlig erfassen kann.
Fehlermeldung lautet:
01.toc|656 error| Command \l@addto@macro already defined.
btw: In 01.toc gibt es aber keine Zeile 656. ;)
% Achtung: Updates verfügbar 
% http://www.komascript.de/comment/3447#comment-3447% Dies ist Datei `appendixtocexample.tex'
% Copyright (c) Markus Kohm, 2010-2013
% Diese Datei steht unter LPPL 1.3c.
% Wird diese Datei abgeändert, so handelt es sich um ein abgeleitetes Werk
% im Sinne der LPPL. Dies bedeutet u. a. dass in diesem Fall darauf
% hinzuweisen ist, dass der hier im Copyright-Vermerk angegebene Autor,
% Markus Kohm, für den Inhalt nicht verantwortlich und für keinerlei
% Support oder Auskünfte heranzuziehen ist!
%
% Changelog:
% 2013-06-15 (mjk): Funktioniert mit allen Standard- oder KOMA-Script-Klassen.
%
\documentclass[
    man
]{apa6}
   
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

% Sprache
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{filecontents}
\begin{filecontents}{appendixtoc.sty}

%
% appendixtoc.sty
% Copyright (c) Markus Kohm, 2013
% See `appendixtocexample.tex' for license informations. Distribution without
% `appendixtocexample.tex' is forbidden!
\ProvidesPackage{appendixtoc}[2013/06/15 unsupported LaTeX2e package]
\RequirePackage{scrbase}
\RequirePackage{tocstyle}
\usetocstyle{KOMAlike}
% Die folgende Umgebung wird verwendet, um innerhalb der toc-Datei einzelne
% Bereiche ein- und ausschalten zu können. In die toc-Datei wird die Umgebung
% dabei jeweils als \begin{tocconditional}{BEREICH}...\end{tocconditional}
% eingefügt.
\newenvironment*{tocconditional}[1]{%
  \expandafter\ifx\csname if@toccond@#1\expandafter\endcsname
                  \csname iftrue\endcsname
  \else
    \value{tocdepth}=-10000\relax
  \fi
  \typeout{tocdepth in `#1': \the\c@tocdepth}%
}{%
}
 
% Gleich nach dem Öffnen der toc-Datei beginnen wir den Haupt-Bereich "main":
\AtBeginDocument{%
  \addtocontents{toc}{\string\begin{tocconditional}{main}}
}
% Und der letzte Bereich endet am Ende der toc-Datei.
\BeforeClosingMainAux{%
  \addtocontents{toc}{\string\end{tocconditional}}%
}
 
% Hier können nun neue Bereiche definiert (wie man das
% macht zeigen wir gleich im Anschluss) ...
\newcommand*{\newtocconditional}[2][false]{%
  \expandafter\newif\csname if@toccond@#2\endcsname
  \csname @toccond@#2#1\endcsname
}
% ... und ein- oder ausgeschaltet werden.
% (Beispiele für die Verwendung von \settocconditional sind
% weiter unten bei der Definition von \appendixtableofcontents
% zu finden.)
\newcommand*{\settocconditional}[2]{%
  \csname @toccond@#1#2\endcsname
}
 
% Neben dem (bereits aktivierten) Hauptbereich ...
\newtocconditional[true]{main}
% ... definieren wir noch einen (noch nicht aktivierten)
% Bereich für den Anhang.
\newtocconditional{appendix}
 
% Mit dem Anhang geben wir einerseits das Anhangsverzeichnis aus,
% andererseits beenden wir den aktuellen Bereich in der toc-Datei und beginnen
% den neuen Bereich "appendix". Damit im Haupt-Inhaltsverzeichnis ein Eintrag
% für das Anhangsverzeichnis erscheint, verwenden wir \addchap und zwar noch
% bevor der letzte Bereich geschlossen wird. Wenn wir es ganz sicher machen
% wollten, müssten wir die auskommentierten Zeilen noch aktivieren. So
% verlassen wir uns einfach darauf, dass vor dem appendix-Bereich der
% main-Bereich lag.
\g@addto@macro\appendix{%
%  \addtocontents{toc}{\string\end{tocconditional}^^J
%    \string\begin{tocconditional}{main}}%
  \begingroup
    \@ifundefined{tocbasic@listhead}{% Falls \tocbasic@listhead (wird von
                               % KOMA-Script-Klassen verwendet) nicht
                               % definiert ist
      \@ifundefined{chapter}{% und falls \chapter nicht definiert ist,
        \section*{\listofappendixname}% \section* verwenden
      }{% aber falls \chapter definiert ist,
        \chapter*{\listofappendixname}% \chapter* verwenden
      }%
      % und noch die Kolumnentitel passend setzen.
      \@mkboth{\csname MakeMarkcase\endcsname{\listofappendixname}}%
              {\csname MakeMarkcase\endcsname{\listofappendixname}}%
    }{% Falls \toc@heading definiert ist,
      \def\@currext{appendix}% initialisieren
      \tocbasic@listhead{\listofappendixname}% und verwenden
    }%
  \endgroup
  \addtocontents{toc}{\string\end{tocconditional}^^J
    \string\begin{tocconditional}{appendix}}%
  \appendixtableofcontents
}
 
% Jetzt definieren wir das Anhangsverzeichnis selbst als Alias für die
% toc-Datei. Dabei wird aber der Hauptbereich "main" deaktiviert und der
% Anhangsbereich "appendix" aktiviert.
\newcommand*{\appendixtableofcontents}{%
  \showtoc[{ %
    \aliastoc{\tocstyleTOC}{toc}%
    \settocconditional{main}{false}%
    \settocconditional{appendix}{true}%
  }]{toc}%
}
 
% Auch wenn man einen Anhang normalerweise nicht beenden kann, so ist es
% ggf. erwünscht, dass Literaturverzeichnis, Index etc. zwar nach den Kapiteln
% des Anhangs kommen, aber dem Hauptverzeichnis zugeordnet werden sollen. Also
% benötigen wir eine Anweisung, um in der toc-Datei den aktuellen Bereich zu
% beenden und wieder einen Hauptbereich einzuschalten:
\newcommand*{\postappendix}{%
  \addtocontents{toc}{\string\end{tocconditional}^^J%
      \string\begin{tocconditional}{main}}%
}
 
% Den Namen definieren:
\newcommand*{\listofappendixname}{Table of appendices}
\AtBeginDocument{%
  \providecaptionname{english}{\listofappendixname}{Table of appendices}%
  \providecaptionname{USenglish}{\listofappendixname}{Table of appendices}%
  \providecaptionname{UKenglish}{\listofappendixname}{Table of appendices}%
  \providecaptionname{british}{\listofappendixname}{Table of appendices}%
  \providecaptionname{german}\listofappendixname{Anhangsverzeichnis}%
  \providecaptionname{ngerman}\listofappendixname{Anhangsverzeichnis}%
  \providecaptionname{austrian}\listofappendixname{Anhangsverzeichnis}%
  \providecaptionname{austrian}\listofappendixname{Anhangsverzeichnis}%
}%
\end{filecontents}
 
\usepackage{appendixtoc}
% Wir wollen das Anhangsverzeichnis im Inhaltsverzeichnis, also sorgen wir
% dafür, dass das Paket tocbasic geladen ist (auch, wenn keine
% KOMA-Script-Klasse verwendet wird). Das muss unbedingt _vor_ dem Laden von
% appendixtoc passieren!
\usepackage{tocbasic}
\usepackage{appendixtoc}
\setuptoc{appendix}{totoc}% dank tocbasic geht das jetzt so einfach

\title{T}
\shorttitle{ST}
\author{A}

\begin{document}
% -- Inhaltsverzeichnis --
\maketitle
\tableofcontents

% -- Dokument --
\newpage\section{Erste Section}
section section

% -- Anhangsverzeichnis --
\newpage\appendix

% -- Anhang --
\newpage\section{Anhang}
Anhang der erste

\postappendix
 
\end{document}
XeLaTeX, TeX Live, vim-latexsuite


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Ah, vielen Dank.

Hab es jetzt so eingefügt
...
\end{filecontents}
 
\makeatletter
\let\l@addto@macro\relax
\makeatother
 
\usepackage{appendixtoc}
...aber stehe jetzt vor den typischen Problemen des Nixblickers. Ich habe Code, aber verstehe ihn nicht.

Nun sieht das endgültige Dokument mit dem Code von Herr Kohm in Verbindung mit der apa6-Klasse grauenhaft aus. Ich weiß nicht, ob es an dem \let liegt oder einfach daran, dass apa6 soviel spezielle Dinge intern tut, dass der Kohm-Code in der Form tatsächlich nicht laufen kann.

1.
Das Inhaltsverzeichnis ist nicht nach APA-Regeln gestaltet. Hier scheint dieses tocstyle irgndwie zu wirken.

2.
Das Anhangsverzeichnis ist mit "Anhang A" überschrieben und darunter steht ein "*".

3.
Das Anhangsverzeichnis hat nur "Anhangsverzeichnis" selbst als Eintrag drin.

4.
Anhang B, der eigentlich Anhang A sein müsste, ist mit "Anhang" unterschrieben.

Denke gerade darüber nach die ganze apa6-Klasse zu verwerfen und mir auf Basis von scrartcl ein einigermaßen brauchbares apa6-Dokument zu basteln.
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2766
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

MoonKid hat geschrieben:Denke gerade darüber nach die ganze apa6-Klasse zu verwerfen und mir auf Basis von scrartcl ein einigermaßen brauchbares apa6-Dokument zu basteln.
Sehr gute Absicht! Die Klassen von Markus Kohm (inklusive scrartcl) sind ein excellentes Beispiel für hervorragend programmierte und gepflegte Pakete und Klassen. Wenn die Dozentin auf apa6 besteht, wäre das natürlich schade. Ich würde antesten, ob sie weiß, was sie will .. sie fragen, welche Eigenschaften der apa6-Klasse sie gern hätte. Wenn es um die Form geht, und nicht nur um einen Namen, dann lässt es sich ja anders umsetzen.

Stefan

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Wenn meine Dozenten tatsächlich "nur" apa6 wollen würde, hätte ich ja kein Problem. Dann würde ich einfach die apa6-Klasse nehmen und fertig is der Käse. Bin keine APA-Crack, aber bisher ist mir kein nennenswertes Problem mit der Klasse aufgefallen.
Eben nur die ganzen Umbiegungen von APA6 durch meine Dozenten machen das Problem.

Nun habe ich schon viele Wochen Arbeitszeit und Nerven (meine und eure!) in diese Probleme gesteckt, weil meine Dozentin keine Ahnung von Textverarbeitung oder Typografie hat. Sie kann ja nicht mal ihr Word adäquat bedienen.

Dann über soetwas Diskussionen zu führen wäre selbstvernichtent.

Sie selbst biegt APA6 ja nur um, weil sie merkt (es aber nicht zugibt), das APA nie für den Zweck von Haus- und Bachelor-Arbeiten entwickelt wurde. Das ist nur für Journal-Artikel mehr oder weniger sinnvoll (meine Meinung).

Vielleicht schlafe ich ein paar Nächte drüber und mach mir mal ne konkrete Liste der formattechnischen Anforderungen meiner Dozentin, um einen Überblick über die Notwendigkeiten zu haben.

Aber das wird ne Menge Arbeit und Nerven. Auch hier im Forum. ;)

Und vorweg: Die KOMA-Doku hab ich gelesen. Ist aber nicht immer einfach zu verstehen, wenn man vom tex-Kern und den Prinzipien dahinter eigentlich keine Ahnung hat. Aber bei der Saztspiegelberechnung ging mir schon mal ein Licht auf. Das Thema sollte in jede Latex-Einführung rein - für so DAUs wie mich.
XeLaTeX, TeX Live, vim-latexsuite

Beinschuss
Forum-Meister
Forum-Meister
Beiträge: 808
Registriert: Di 2. Okt 2012, 21:42
Wohnort: NRW

Beitrag von Beinschuss »

Hallo Moonkid,

was machen denn Deine Kommiliton/innen, gerade diejenigen, die schon eine entsprechende Arbeit bei dieser Dozentin eingereicht haben (und sich vielleicht um die Form weniger Gedanken gemacht haben als Du)? Wurden Abweichungen von der - vielleicht willkürlich gesetzten - Norm durchgewunken? Dann mach' Dein Ding ordentlich, aber bastel lieber stundenlang an Deinem Text als an der Form.

Helmut

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Die Kommis arbeiten mit Word oder LibreOffice.

Und ja, die Bewertung der äußeren Form ist sehr individuell und flexibel. Da ich meine Gummi-Punkte bei der Obrigkeit aber aufgebraucht habe und in der Regel bei jeder Prüfungs-/Studienleistung etwas auszusetzen habe, wird bei mir alles pingelich genau kontrolliert. :D

Super geiler Laden bei uns, ne. ;)
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Wollte den Thread nur mal auf beantwortet setzen.

Hab die Vorgaben jetzt tatsächlich mit KOMA, diversen Umbiegungen und unersetzlicher Hilfe dieses Forums realisieren können.

Thx.
XeLaTeX, TeX Live, vim-latexsuite

Antworten