MakeGlossaries ohne Ausgabe Thema ist als GELÖST markiert

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


Studentler

MakeGlossaries ohne Ausgabe

Beitrag von Studentler »

Hallo liebes Forum,

ich erhalte leider keinen Eintrag in meiner "Nomenklatur".

Ich nutze TeXnicCenter 2.02 und MikeTex 2.9 :

Habe in meinem Ausgabeprofil unter Nachbearbeitung bei LaTex > PDF eingestellt:
C:\Program Files\MiKTeX 2.9\miktex\bin\x64\makeindex.exe

-s "%tm.ist" -t "%tm.glg" -o "%tm.gls" "%tm.glo"
Mein Beispiel, hoffentlich minimal genug:
\documentclass[a4paper,12pt,twoside]{report}

\usepackage[utf8]{inputenc} 

\usepackage{ngerman}

\usepackage{siunitx}

%Nomenklatur
\usepackage[sort=def]{glossaries}
\usepackage{longtable}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nomenklatur

% einen neuen glossary-Style definieren

\newglossarystyle{nomenclature}{%
  \renewenvironment{theglossary}%
    {\begin{longtable}[l]{llp{\glsdescwidth}}}%
    {\end{longtable}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}% 
    \glstarget{##1}{##2}% Symbol
    & \glsentryuseri{##1}% Einheit
    & ##3 % Beschreibung
    \\
  }%
  \renewcommand*{\glsgroupskip}{\\}%
}

\newcommand\nomenclature[5][]{%
  \newglossaryentry{#2}{
    name = {#3},
    description = {#4},
    sort = {#1#2},
    user1 = {\unexpanded{#5}},
    type = \ifblank{#1}{main}{#1}
  }}


% Gruppen:
\newglossary{A}{glai}{glao}{Lateinische Formelzeichen}


% Ausgabe der Nomenklatur:
\newcommand*\printnomenclature{%
   \printglossary[type=A]%
   
   }

\nomenclature[A]{T}{T}{Temperatur}{\si{\kelvin}}

\makeglossaries

 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}


\chapter*{Nomenklatur}
\setglossarysection{section}
\printglossary[type=A]

\end{document}

Weiß jemand woran es hakt? Beim Kompilieren erhalte ich keine Fehlermeldung.
In TeXnicCenter unter Ausgabe > MakeIndex allerdings:

"This is makeindex, Version 2.15 .... Scanning Input file ...idx... done
Noting written in Ausarbeitung.ind
MakeIndex > Transcript written in Ausarbeitung.ilg."

Mehr leider nicht :-(

Danke für Tipps und Tricks!

Moritz

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4267
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Nun, wenn makeindex die idx-bearbeitet, wo du oben eigentlich die glo eingestellt hast, kann irgendwas nicht stimmen. Warum benutzt du nicht makeglossaries?

Studentler

Beitrag von Studentler »

Das habe ich bei der Wahl des Ausgabeprofils auch schon versucht, also die makeglossaries.exe zu wählen.

Doch auch dann ohne Erfolg :-/

Danke u_fischer für deine Hilfe!

Studentler

Beitrag von Studentler »

Muss ich vielleicht das Ausgabeprofil bei "Vorbearbeitung" eingeben ?

Dann meckert er mir aber rum, das Perl.exe nicht installiert ist. Laut meinen Recherchen benötige ich das aber nicht?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Zum einen musst Du die Abkürzungen auch im Dokument verwenden oder zum Beispiel mit \glsaddall ins Verzeichnis einfügen lassen und zum anderen müssen beim Aufruf von makeindex die angegebenen Dateiendungen mit den von Dir fest gelegten übereinstimmen:
-s "%tm.ist" -t "%tm.glg" -o "%tm.glai" "%tm.glao"
Ich würde aber an Deiner Stelle einfach perl installieren, zum Beispiel ActivePerl oder Strawberry Perl und dann makeglossaries nutzen.

Studentler

Beitrag von Studentler »

Tut mir Leid aber es hat nicht zum Erfolg geführt:
This is makeindex, version 2.15 [MiKTeX 2.9 64-bit] (kpathsea + Thai support).
Scanning input file Main_Ausarbeitung.idx...done (0 entries accepted, 0 rejected).
Nothing written in Main_Ausarbeitung.ind.
Transcript written in Main_Ausarbeitung.ilg.
Glossar > Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in ....
...
...
Glossar > makeglossaries version 2.16
Glossar > added glossary type 'main' (glg,gls,glo)
Glossar> added glossary type 'A' (glg,glai,glao)
....
....
Glossar > makeindex -s "Main_Ausarbeitung.ist" -t "Main_Ausarbeitung.glg" -o "Main.Ausarbeitung.gls" "Main Ausarbeitung.glo"
....
....
Glossar > Scanning input file Main_Ausarbeitung.glo ... done (0 entries accepted, 0 rejected)

Glossar > nothing written in Main_Ausarbeitung.gls
Transcript written in ...
Glossar > 4 glossaries ignored
Hmm jetzt bin ich ratlos ...
\glsaddall
\addcontentsline{toc}{chapter}{Nomenklatur} % in Inhaltsverzeichnis aufnehmen
\chapter*{Nomenklatur}
\setglossarysection{section}
\printglossary[type=A]
Hier wird das Glossar ja auch gedruckt.

Danke nochmal für Hilfe!

Studentler

Beitrag von Studentler »

Hat niemand einen Tipp woran es hapern könnte?

Studentler

Beitrag von Studentler »

Wollte nur den Status in "Offen" ändern. Melde mich nun auch richtig im Forum an ;-)

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Studentler hat geschrieben:
Glossar > makeglossaries version 2.16
\glsaddall
\addcontentsline{toc}{chapter}{Nomenklatur} % in Inhaltsverzeichnis aufnehmen
\chapter*{Nomenklatur}
\setglossarysection{section}
\printglossary[type=A]
Hier wird das Glossar ja auch gedruckt.
Das hatte ich jetzt so verstanden, dass Du zum einen tatsächlich makeglossaries verwendest (wobei ich mit der 2.19 eine aktuellere Version habe) und zum anderen mit \glsaddall dein Verzeichnis bekommst?

Wie schon gesagt, reicht es nicht die Einträge nur zu definieren. Du musst sie entweder im Dokument verwenden oder einzeln zum Verzeichnis hinzufügen oder das mit \glsaddall für alle definierten Abkürzungen tun lassen.
\documentclass[a4paper,12pt,twoside]{report} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}% <- geändert
\usepackage{siunitx} 

%Nomenklatur 
\usepackage[
  %sort=def,% <- auskommentiert, damit Einträge sortiert werden
  nomain% <- eingefügt, da in dem Beispiel main nicht verwendet wird
]{glossaries} 
\usepackage{longtable} 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nomenklatur 
% einen neuen glossary-Style definieren 
\newglossarystyle{nomenclature}{% 
   \renewenvironment{theglossary}% 
     {\begin{longtable}[l]{llp{\glsdescwidth}}}% 
     {\end{longtable}}% 
   \renewcommand*{\glossaryheader}{}% 
   \renewcommand*{\glsgroupheading}[1]{}% 
   \renewcommand*{\glossaryentryfield}[5]{% 
     \glsentryitem{##1}%  
     \glstarget{##1}{##2}% Symbol 
     & \glsentryuseri{##1}% Einheit 
     & ##3 % Beschreibung 
     \\ 
   }% 
   \renewcommand*{\glsgroupskip}{\\}% 
} 

\newcommand\nomenclature[5][]{% 
   \newglossaryentry{#2}{ 
     name = {#3}, 
     description = {#4}, 
     sort = {#1#2}, 
     user1 = {\unexpanded{#5}}, 
     type = \ifblank{#1}{main}{#1} 
   }} 

% Gruppen: 
\newglossary{A}{glai}{glao}{Lateinische Formelzeichen} 

 %%Ausgabe der Nomenklatur: auskommentiert, da nicht verwendet
%\newcommand*\printnomenclature{% 
    %\printglossary[type=A]% 
  %%<- Leerzeile entfernt
    %} 

\nomenclature[A]{T}{T}{Temperatur}{\si{\kelvin}} 
\nomenclature[A]{m}{m}{Masse}{\si{\gram}}
\nomenclature[A]{s}{s}{Weg}{\si{\metre}}
\makeglossaries 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\begin{document}
Alles was in das Verzeichnis soll, muss wenigstens einmal im Text verwendet werden: \gls{T}.
%
%%% Alternativen
 %Hinzufügen eines bestimmten Eintrags unabhängig von der Nutzung: \glsadd{m}
%
 %Alles hinzufügen unahängig von Nutzung: \glsaddall

\chapter*{Nomenklatur}
\addcontentsline{toc}{chapter}{Nomenklatur} % muss direkt nach \chapter* stehen
\setglossarysection{section} 
\printglossary[type=A,
  style=nomenclature% <- eingefügt, damit der Stil auch verwendet wird
] 
\end{document}

Studentler

Beitrag von Studentler »

Guten Tag,

ich hätte gedacht, dass nachdem ich dein Minimalbeispiel direkt in ein neues leeres Projekt kopiert habe, unter Nomenklatur die Einträge auch abgebildet hätten werden sollen (dein Beispiel sollte ja funktionieren). Dem ist leider nicht so. Von dem her muss irgendwas in TeXnicCenter nicht stimmen?

Ich drücke lediglich immer Latex > PDF

Als Ausgabeprofil habe ich mir unter Latex > PDF unter dem Reiter "Nachbearbeitung" einen neuen "Prozessor" mit dem Namen "Glossar" erstellt. Darin enthalten sind:

Anwendung: C:\Program Files\MiKTeX 2.9\miktex\bin\x64\makeglossaries.exe

Argumente: -s "%tm.ist" -t "%tm.glg" -o "%tm.gls" "%tm.glo"


So hatte ich mir das aus dem Internet zusammengebastelt.

Im Ordner, in den ich dein Minimalbeispiel gepackt habe, liegt u.a.:

eine .aux Datei
eine .bbl Datei

Die .aux Datei enthält:
\relax
\catcode `"\active
\providecommand\@newglossary[4]{}
\@newglossary{A}{glg}{glai}{glao}
\providecommand\@glsorder[1]{}
\providecommand\@istfilename[1]{}
\@istfilename{Main_Ausarbeitung.ist}
\@glsorder{word}
\select@language{ngerman}
\@writefile{toc}{\select@language{ngerman}}
\@writefile{lof}{\select@language{ngerman}}
\@writefile{lot}{\select@language{ngerman}}
\@writefile{toc}{\contentsline {chapter}{Nomenklatur}{2}}
Die .glao Datei :

\glossaryentry{AT?\glossentry{T}|setentrycounter[]{page}\glsnumberformat}{1}

Ohje :oops:

Antworten