externes Abkürzungsverzeichnis

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


esvaupeee
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Do 27. Jul 2017, 08:10

externes Abkürzungsverzeichnis

Beitrag von esvaupeee »

Hey Leute,

ich steh grade auf dem Schlauch. Ich benötige für meine Dissertation ein Abkürzungsverzeichnis, möchte aber nicht in meinem Hauptdokument alle Abkürzungsdefinitionen stehen haben. Das werden ja extrem viele werden. Kann ich das als externes Verzeichnis erstellen und per \include einfügen? Dachte beim Abkürzungsverzeichnis an das glossaries-package.

Viele Grüße,
Simon

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Warum sollte das nicht funktionieren?

Du solltest allerdings \input verwenden, siehe https://tex.stackexchange.com/questions ... vs-include.

Code hier übernommen.
\documentclass{article}
\begin{filecontents}{glossar.tex}
\newglossaryentry{latex}
{
    name=latex,
    description={Is a mark up language specially suited 
    for scientific documents}
}
 
\newglossaryentry{maths}
{
    name=mathematics,
    description={Mathematics is what mathematicians do}
}
\end{filecontents}
\usepackage[utf8]{inputenc}
\usepackage{glossaries}
\makeglossaries 
\input{glossar.tex}
\title{How to create a glossary}
\author{ }
\date{ }
\begin{document}
\maketitle
The \Gls{latex} typesetting markup language is specially suitable 
for documents that include \gls{maths}. 
\clearpage
\printglossaries
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

esvaupeee
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Do 27. Jul 2017, 08:10

Beitrag von esvaupeee »

Danke für die Antwort. Mein Ziel ist es, das Abkürzungsverzeichnis extern zu laden. Es sollte vor dem eigentlichen Dokument stehen. Hab meinen Code mal verkürzt, um ein Minimalbeispiel anführen zu können:
\documentclass[fontsize=12pt,twoside,a4paper,BCOR=16mm,toc=flat,headsepline=true]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english,ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage{graphicx}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage[acronym]{glossaries}

\begin{filecontents}{abkuerzungsverzeichnis.tex}
\end{filecontents}

\makeglossaries

\graphicspath{{Abbildungen/}}

\usepackage[style=authoryear]{biblatex}
\DeclareNameAlias{sortname}{family-given}
\addbibresource{references.bib}

\begin{document}

\printglossary	


Hallo \acrshort{World}


\printbibliography

\end{document}
Das tex-file "abkuerzungsverzeichnis" liegt im gleichen Ordner. im tex-file "abkuerzungsverzeichnis steht: \newacronym{World}{Welt}{ausgeschriebene Bezeichnung}


Es resultiert die Fehlermeldung: ! Package glossaries Error: Glossary entry `World' has not been defined.See the glossaries package documentation for explanation.Type H <return> for immediate help.... Hallo \acrshort{World}

Wo liegt jetzt der Fehler? Bin dankbar über jede Hilfe.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Du musst im Hauptdokument sagen, dass du diese Datei einbinden möchtest. Das tust du, indem du in die Präambel die Anweisung
\input{abkuerzungsverzeichnis.tex}
schreibst.

Damit wird der Code, der sich in der Datei befindet, so behandelt, als würdest du ihn an der Stelle im Dokument schreiben.

Die filecontents-Umgebung dient lediglich dazu, "externe" Files zu erzeugen, bspw. online für Minimalbeispiele.
Vorsicht: lädst du das gleichnamige Paket filecontents, überschreibst du mit deiner Anweisung dein richtiges externes File.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

esvaupeee
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Do 27. Jul 2017, 08:10

Beitrag von esvaupeee »

Danke für die Hilfe, dann weiß ich jetzt zumindest schon mal, wie ich es aufbauen muss. Ich liebe Latex, jedoch bin ich absolut unbegabt, was programmieren angeht. Das Programm zeigt jetzt zwar keine Fehlermeldung mehr an, jedoch wird das Abkürzungsverzeichnis nicht ausgegeben. Ich weiß zwar, dass ich beim glossaries-package noch etwas separat kompilieren muss, bin bei der Durchführung aber überfragt.
\documentclass[fontsize=12pt,twoside,a4paper,BCOR=16mm,toc=flat,headsepline=true]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english,ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage{graphicx}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage[acronym]{glossaries}

\makeglossaries
\input{abkuerzungsverzeichnis.tex}


\graphicspath{{Abbildungen/}}

\usepackage[style=authoryear]{biblatex}
\DeclareNameAlias{sortname}{family-given}
\addbibresource{references.bib}

\begin{document}

\printglossary	


Hallo \acrshort{World}


\printbibliography

\end{document}

Gast

Beitrag von Gast »

Du musst entweder makeglossaries ausführen oder passende Aufrufe von makeindex. Näheres dazu steht in der [d]glossaries[/d]-Anleitung aber auch in Abschnitt 4 der [d]glossariesbegin[/d]-Kurz-Anleitung.

esvaupeee
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Do 27. Jul 2017, 08:10

Beitrag von esvaupeee »

Ok danke für die Antwort. Wenn ich es richtig verstanden habe würden die meisten wohl die Verwendung von xindy empfehlen. Ich verwende weiterhin das Beispiel von weiter oben.

Hierfür soll ich zuerst Latex laufen lassen. Anschließend über die Kommandozeile (cmd?)

xindy -L german-C utf8 -I xindy -M myDoc -t myDoc.glg -o myDoc.gls myDoc.glo

ausführen. Dokumentenname habe ich geändert. Daraufhin sagt mir cmd: input file test2.glo does not exist at C:\Program Files\MiKTeX 2.9\scripts\xindy\xindy.pl line 549.

Bei erneutem Ausführen von Latex erscheint kein Abkürzungsverzeichnis. Ich glaube das ist alles etwas zu hoch für mich ;-) Kann mir irgendwer sagen was ich falsch mache?

Gast

Beitrag von Gast »

Mit dem Beispiel oben geht es nicht mit xindy, weil man dazu auch Option xindy angeben muss.

Außerdem passt die Fehlermeldung nicht zum angeblichen Aufruf.

Ob der Aufruf korrekt ist, hängt auch davon ab, welches Beispiel du konkret getestet hast. Da in dieser Diskussion mehrere angegeben sind, ist mir das nicht klar. Für Akronymverzeichnisse lautet der Aufruf AFAIK anders als für das Standard-Glossar.

Natürlich muss man sich für den Aufruf von xindy auch im richtigen Verzeichnis, nämlich im Dokumentverzeichnis, befinden, damit die Dateien gefunden werden und das Ergebnis an der richtigen Stelle landet.

Am einfachsten ist die Verwendung von makeglossaries. Bei Linux funktioniert das out of the box. Windows-Anwender müssen dazu ggf. erst perl installieren. Wobei man für xindy AFAIK auch perl benötigt. Also hast Du das eventuell schon gemacht.

Bei Verwendung von makeindex also ohne Option xindy kann man alternativ zu makeglossaries auch makeglossaries-lite verwenden. Das ist ein Lua-Script und funktioniert daher auch unter Windows out of the box, weil der Lua-Interpreter texlua Teil jeder TeX-Distribution ist.

Sowohl die Verwendung von makeglossaries als auch makeglossaries-lite hat den Vorteil, dass man sich über die Parameter für den Aufruf nicht viele Gedanken machen muss. Man gibt als einzigen Parameter einfach den Basisnamen des Hauptdokuments an. Alles andere sucht sich das Programm dann selbst zusammen.

esvaupeee
Forum-Anfänger
Forum-Anfänger
Beiträge: 22
Registriert: Do 27. Jul 2017, 08:10

Beitrag von esvaupeee »

Ok, das Argument hat mich überzeugt und ich versuche es mit makeindex. Hier nun nochmal mein Beispiel:
\documentclass[fontsize=12pt,twoside,a4paper,BCOR=16mm,toc=flat,headsepline=true]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english,ngerman]{babel}
\usepackage[autostyle]{csquotes}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage[acronym]{glossaries}

\makeglossaries
\input{abkuerzungsverzeichnis.tex}

\usepackage[style=authoryear]{biblatex}
\DeclareNameAlias{sortname}{family-given}
\addbibresource{references.bib}

\begin{document}

\deftranslation[to=German]{Acronyms}{Abkürzungsverzeichnis}
\printglossaries[type=\acronymtype]	


Hallo \acrshort{World}


\printbibliography

\end{document}
Im file abkuerzungsverzeichnis.tex steht
\newacronym{World}{Welt}{ausgeschriebene Bezeichnung}

So nun kommt die Frage aller Fragen: Wo muss ich jetzt noch welche Befehle eingeben, damit das Verzeichnis ausgegeben wird? Und noch wichtiger: Verträgt sich das ganze dann mit biblatex? Da ich im Moment bei schnellem Übersetzen die Folge pdflatex + biblatex + pdflatex(2x) + pdf anzeigen habe.

Gast

Beitrag von Gast »

Ich habe keine Lust mehr auf Bastelbeispiele. Warum zum Kuckuck hältst du dich nicht an die Minimalbeispiel-Anleitung?

Jedenfalls empfehle ich, entweder makeglossaries oder makeglossaries-lite wie oben bereits erwähnt aufzurufen.

Antworten