Ich befinde mich momentan im Bachelorstudium und ich nutze Latex seit ca. 3 Monaten - ich bin mittlerweile auch (gefühlt) recht gut drin und das, obwohl ich eigentlich kein Programmieren gelernt habe.
Ich habe mittlerweile auch schon ein fertiges Dokument mit dem sich - rein theoretisch - schon eine fertige Bachelorarbeit aufsetzen lässt. Ich bin lediglich nicht ganz damit zufrieden, dass sich mein Literaturverzeichnis nicht personalisieren lässt (die Implementierung von biblatex oder Alternativen wie natbib o.ä. ist kein Problem). Ich habe mich mit dem Thema lange beschäftigt und ich glaube einen Weg gefunden zu haben, das Verzeichnis weitgehend personalisierbar zu gestalten (ohne gleich neue Bibliographystyles zu schreiben, was ich ohnehin nicht könnte); wobei sich mein Stil zunächst an Stilen wie alphadin oder alphabetic-verb (biblatex) orientiert.
Ich stehe aber noch am Anfang und an einem wichtigen Schritt hapert's leider momentan - sobald dieser getan ist, werde ich dann (hoffentlich) weniger Probleme haben und das ganze Projekt alleine fertigstellen können.
Dieser Punkt betrifft die Verknüpfung der einzelnen Literatureinträge (ähnlich dem Package backref).
Ziel:
- Verknüpfung einzelner Zitationen im Text mit dem Verzeichnis am Ende
- Querverweis (wenn möglich Seiten) am Ende jedes Eintrages des Verzeichnisses zur Zitationsstelle
Problemfrage: Was passiert mit mehreren Zitationen eines Autors, wie lassen sich diese mit einem Eintrag verknüpfen (einzelne Zitationen sind eher das kleinere Problem)?
Lösungsansatz (findet sich im Anhang des Beitrags)
- if - conditions (z.B. Packages wie etoolbox) (ich arbeite momentan viel mit MatLab, wo ich viel mit if - Schleifen arbeite, von daher die Idee solche Strukturen zu verwenden)
- hyperlink{}{} und hypertarget{}{} für die Einträge im Text und im Verzeichnis
- \pageref{} zum Verweis auf die einzelnen Seiten
Kurze Erläuterung dazu:
Letztendlich soll er immer überprüfen ob ein bestimmter Toggle / Bootlean (oder wie auch immer man das nennen möchte) existiert.
Wenn ja, dann soll er überprüfen, ob der nächste existiert.
Wenn nein, soll er einen dementsprechenden Switch erstellen und mit \label{} verknüpfen, um später mit \pageref{} darauf zu verweisen. Außerdem soll er gleich einen hyperlink{}{} verwenden, um eine Brücke zum Eintrag im Verzeichnis zu schaffen.
Die \ifdef{}{}{} bzw. \ifundef{}{}{} Struktur ist so aufgebaut, dass er einfach immer in tiefere Äste springen soll, wenn ein Switch bereits existiert (analog zu bereits existierenden Zitationen im Text).
Vorhandene Probleme
- Verweis bislang nur im Text und das auch nur auf eine Zitation (er scheint wohl nur einen Switch zu erstellen)
- \hypertarget{}{} scheint im Literatureintrag nicht zu greifen; die Frage ist auch, ob man hier mehrere Ziele anwenden kann (dazu habe ich bislang keine Antwort gefunden)
- außerdem werden die Seiten am Ende des Eintrags nicht angezeigt (\pageref{} scheint aber zumindest bei der ersten Zitation zu funktionieren).
- eher nebensächlich und vergleichsweise einfach zu lösen: Verschiebung zwischen den Zeilen des Literatureintrages (hierfür wüsste ich nur gerne den Grund)
Ist schon echt ne Menge - ich hoffe aber, dass ihr mir dabei behilflich sein könnt. Bin offen für Anregungen und Verbesserungen (beachtet nur, dass ich kein Programmierer bin)! :D
Vielen Dank, beste Grüße und noch ein schööönes Restwochende,
Marius
\documentclass[12pt]{scrartcl} \usepackage{hyperref} \usepackage{etoolbox} \usepackage{tabularx} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}%leftragged columns with flexible width \begin{document} \newcommand{\Source}[1]{% \ifundef{\toggle{#1 1}}{\hyperlink{#1 1}{[#1]}\label{#1 1}\providetoggle{#1 1}\global\toggletrue{#1 1}}{% \ifundef{\toggle{#1 2}}{\hyperlink{#1 2}{[#1]}\label{#1 2}\providetoggle{#1 2}\global\toggletrue{#1 2}}{% \ifundef{\toggle{#1 3}}{\hyperlink{#1 3}{[#1]}\label{#1 3}\providetoggle{#1 3}\global\toggletrue{#1 3}}{% \ifundef{\toggle{#1 4}}{\hyperlink{#1 4}{[#1]}\label{#1 4}\providetoggle{#1 4}\global\toggletrue{#1 4} }{% \ifundef{\toggle{#1 5}}{\hyperlink{#1 5}{[#1]}\label{#1 5}\providetoggle{#1 5}\global\toggletrue{#1 5}}{% \ifundef{\toggle{#1 6}}{\hyperlink{#1 6}{[#1]}\label{#1 6}\providetoggle{#1 6}\global\toggletrue{#1 6}}{% \ifundef{\toggle{#1 7}}{\hyperlink{#1 7}{[#1]}\label{#1 7}\providetoggle{#1 7}\global\toggletrue{#1 7}}{% \ifundef{\toggle{#1 8}}{\hyperlink{#1 8}{[#1]}\label{#1 8}\providetoggle{#1 8}\global\toggletrue{#1 8}}{% \ifundef{\toggle{#1 9}}{\hyperlink{#1 9}{[#1]}\label{#1 9}\providetoggle{#1 9}\global\toggletrue{#1 9}}{% \ifundef{\toggle{#1 10}}{\hyperlink{#1 10}{[#1]}\label{#1 10}\providetoggle{#1 10}\global\toggletrue{#1 10}}}}}}}}}}}} \newcommand{\Literatur}[2]{\hypertarget{% Ist es möglich ein hypertarget mit mehreren Zielen zu definieren? \ifdef{\toggle{#1 1}}{% \ifundef{\toggle{#1 2}}{#1 1}{% \ifundef{\toggle{#1 3}}{#1 1,#1 2}{% \ifundef{\toggle{#1 4}}{#1 1,#1 2,#1 3}{% \ifundef{\toggle{#1 5}}{#1 1,#1 2,#1 3,#1 4}{% \ifundef{\toggle{#1 6}}{#1 1,#1 2,#1 3,#1 4,#1 5}{% \ifundef{\toggle{#1 7}}{#1 1,#1 2,#1 3,#1 4,#1 5,#1 6}{% \ifundef{\toggle{#1 8}}{#1 1,#1 2,#1 3,#1 4,#1 5,#1 6,#1 7}{% \ifundef{\toggle{#1 9}}{#1 1,#1 2,#1 3,#1 4,#1 5,#1 6,#1 7,#1 8}{% \ifundef{\toggle{#1 10}}{#1 1,#1 2,#1 3,#1 4,#1 5,#1 6,#1 7,#1 8,#1 9}{% #1 1,#1 2,#1 3,#1 4,#1 5,#1 6,#1 7,#1 8,#1 9,#1 10}}}}}}}}}}{}} {[#1]}  {\ifdef{\toggle{#1 1}}{% \ifundef{\toggle{#1 2}}{ (zitiert auf Seite~\pageref{#1 1})}{% \ifundef{\toggle{#1 3}}{ (zitiert auf Seite~\pageref{#1 1} und \pageref{#1 1})}{% \ifundef{\toggle{#1 4}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2} und \pageref{#1 3})}{% \ifundef{\toggle{#1 5}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3} und \pageref{#1 4})}{% \ifundef{\toggle{#1 6}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4} und \pageref{#1 5})}{% \ifundef{\toggle{#1 7}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4}, \pageref{#1 5} und \pageref{#1 6})}{% \ifundef{\toggle{#1 8}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4}, \pageref{#1 5}, \pageref{#1 6} und \pageref{#1 7})}{% \ifundef{\toggle{#1 9}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4}, \pageref{#1 5}, \pageref{#1 6}, \pageref{#1 7} und \pageref{#1 8})}{% \ifundef{\toggle{#1 10}}{ (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4}, \pageref{#1 5}, \pageref{#1 6}, \pageref{#1 7}, \pageref{#1 8} und \pageref{#1 9})}{% (zitiert auf Seite~\pageref{#1 1}, \pageref{#1 2}, \pageref{#1 3}, \pageref{#1 4}, \pageref{#1 5}, \pageref{#1 6}, \pageref{#1 7}, \pageref{#1 8}, \pageref{#1 9} und \pageref{#1 10})}}}}}}}}}}{}}} Erste Zitation \Source{shortcut} \newpage Zweite Zitation \Source{shortcut}\\[24pt] Dritte Zitation \Source{shortcut} \newpage \noindent \textbf{References}\\[12pt] \raggedright \begin{tabular}{L{5cm}L{5cm}} \Literatur{shortcut}{Book. Citation City, 2009.} \end{tabular} \end{document}