Glossaries, mehrere Parents unter einer Überschrift

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


Knigge
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Di 9. Sep 2014, 10:56

Glossaries, mehrere Parents unter einer Überschrift

Beitrag von Knigge »

Hallo,

ich versuche gerade in die Welt der Glossaries vorzustoßen und treffe dabei auf massiven Widerstand. Das Problem ist, das ich mehrere Parents unter der Überschrift Nomenklatur darstellen möchte. Diese sollen jedoch unterschiedliche Style's haben.
Ich habe dazu mal ein mini Beispiel generiert, wenn man bei Glosseries von mini sprechen kann....
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc}

\usepackage[nonumberlist,acronym,toc,sanitize=none]{glossaries}
 
% Parent Children
\newglossaryentry{Thema1}{
name={Thema1},
description = {},
sort=a,
}

\newglossaryentry{Thema2}{
name={Thema2},
description = {},
sort=b,
}

% % % % % % % % % % Style 1 % % % % % % % % % % % % % %
\newglossarystyle{mystyle}{
\glossarystyle{index}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}

\renewcommand*{\glossaryentryfield}[5]{
\begin{minipage}[l]{\textwidth}
\hrule
\vspace*{0.3cm}
{\Large \textbf{\glsentryitem{##1}\glstarget{##1}{##2}}}
\vspace*{0.2cm}
\hrule
\end{minipage} \\ [1em]
}

\renewcommand*{\glossarysubentryfield}[6]{
\begin{minipage}[l]{\textwidth}
\makebox[2 cm][l]{\glstarget{##2}{##5}}
\makebox[9.2 cm][l]{\parbox[tt]{9 cm}{##4}}
\makebox[2.6 cm][l]{\glsentryuserii{##2}}
\makebox[1.5 cm][l] {\glsentryuseri{##2}}
\end{minipage} \\ [0.5em]
}
\renewcommand*{\glsgroupskip}{\\}
}
% % % % % % % % % % Style 2 % % % % % % % % % % % % % %
\newglossarystyle{mystyle2}{
\glossarystyle{index}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}

\renewcommand*{\glossaryentryfield}[5]{
\begin{minipage}[l]{\textwidth}
\hrule
\vspace*{0.3cm}
{\Large \textbf{\glsentryitem{##1}\glstarget{##1}{##2}}}
\vspace*{0.2cm}
\hrule
\end{minipage} \\ [1em]
}

\renewcommand*{\glossarysubentryfield}[6]{
\begin{minipage}[l]{\textwidth}
\makebox[2 cm][l]{\glstarget{##2}{##5}}
\makebox[9.2 cm][l]{\parbox[tt]{9 cm}{##4}}
\end{minipage} \\ [0.5em]
}
\renewcommand*{\glsgroupskip}{\\}
}

% Definition Inhaltsverzeichniss
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\renewcommand*{\glspostdescription}{}
\makeglossaries


% % Glosserie Einträge 1
\newglossaryentry{symb:MM1}{
parent=Thema1,
name=MM1,
symbol= \ensuremath{ M_{M1}},
description = {Moment am Motor 1},
sort=MM1,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

\newglossaryentry{symb:MM2}{
parent=Thema1,
name=MM2,
symbol= \ensuremath{ M_{M2}},
description = {Moment am Motor 2},
sort=MM2,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

% % Glosserie Einträge 2
\newglossaryentry{symb:MG1}{
parent=Thema2,
name=MG1,
symbol= \ensuremath{ M_{G1}},
description = {Moment am Getriebe 1},
sort=MG1,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

\newglossaryentry{symb:MG2}{
parent=Thema2,
name=MG2,
symbol= \ensuremath{ M_{G2}},
description = {Moment am Getriebe 2},
sort=MG2,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

\begin{document}

% % Glosseries darstellen
\printglossary[
type=symbolslist,
style=mystyle,
title=Nomenklatur,
]

\printglossary[
type=symbolslist,
style=mystyle2,
title=Nomenklatur
] 

\chapter{test} 
Jetzt kommt viel Text mit \glssymbol{symb:MM1} und \glssymbol{symb:MM2} und außerdem noch \glssymbol{symb:MG1} und \glssymbol{symb:MG2}.

\end{document}

Ich möchte nun, das Thema1 mit dem Style 1 dargestellt wird und Thema 2 entsprechend mit Style 2. Das ganze soll dann noch unter einer Überschrift (Nomenklatur ) sein.
Ich habe mal das PDF Ergebniss des aktuellen Codes mit angehangen. Die jeweiligen Styles von Seite 1 und 2 sollen auf einer Seite zusammengefügt werden.
Dateianhänge
ad.pdf
(56.87 KiB) 454-mal heruntergeladen

Knigge
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Di 9. Sep 2014, 10:56

Beitrag von Knigge »

Dank meiner Kollegen habe ich das Problem nun lösen können. Daher will ich es euch nicht vorenthalten....
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage[utf8]{inputenc}

\usepackage[nonumberlist,acronym,toc,sanitize=none]{glossaries}
\usepackage{xstring}	% If Else
 
% Parent Children
\newglossaryentry{Thema1}{
name={Thema1},
description = {},
sort=a,
}

\newglossaryentry{Thema2}{
name={Thema2},
description = {},
sort=b,
}

% % Style % %
\newglossarystyle{mystyle}{
\glossarystyle{index}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}

\renewcommand*{\glossaryentryfield}[5]{
\begin{minipage}[l]{\textwidth}
\hrule
\vspace*{0.3cm}
{\Large \textbf{\glsentryitem{##1}\glstarget{##1}{##2}}}
\vspace*{0.2cm}
\hrule
\end{minipage} \\ [1em]
}
\renewcommand*{\glossarysubentryfield}[6]{
\begin{minipage}[l]{\textwidth}
	\IfSubStr{\glsentryuseriv{##2}}{RegXYZ}{
		\makebox[2 cm][l]{\glstarget{##2}{##5}}
		% \makebox[2 cm][l]{\glsentryuserii{##2}}
		\makebox[13.2 cm][l]{\parbox[tt]{13 cm}{##4}}
		% \makebox[2 cm][c] {\glsentryuseri{##2}}
		}{
		\makebox[1.8 cm][l]{\glstarget{##2}{##5}}
		\makebox[9.15 cm][l]{\parbox[tt]{9.0 cm}{##4}}
		\makebox[2.1 cm][l]{\glsentryuseriii{##2}}
		\makebox[1.5 cm][l] {\glsentryuseri{##2}}
		}
\end{minipage} \\ [0.5em]
}
\renewcommand*{\glsgroupskip}{\\}
}

% Definition Inhaltsverzeichniss
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\renewcommand*{\glspostdescription}{}
\makeglossaries


% % Glosserie Einträge 1
\newglossaryentry{symb:MM1}{
parent=Thema1,
name=MM1,
symbol= \ensuremath{ M_{M1}},
description = {Moment am Motor 1},
sort=MM1,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

\newglossaryentry{symb:MM2}{
parent=Thema1,
name=MM2,
symbol= \ensuremath{ M_{M2}},
description = {Moment am Motor 2},
sort=MM2,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --
}

% % Glosserie Einträge 2
\newglossaryentry{symb:MG1}{
parent=Thema2,
name=MG1,
symbol= \ensuremath{ M_{G1}},
description = {Moment am Getriebe 1, hier kann auch ein längerer Text stehen...},
sort=MG1,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --,
user4= RegXYZ
}

\newglossaryentry{symb:MG2}{
parent=Thema2,
name=MG2,
symbol= \ensuremath{ M_{G2}},
description = {Moment am Getriebe 2},
sort=MG2,
type=symbolslist,
user1= \ensuremath{Nm},
user2= --,
user4= RegXYZ
}

\begin{document}

% % Glosseries darstellen
\printglossary[
type=symbolslist,
style=mystyle,
title=Nomenklatur,
]


\chapter{test}
Jetzt kommt viel Text mit \glssymbol{symb:MM1} und \glssymbol{symb:MM2} und außerdem noch \glssymbol{symb:MG1} und \glssymbol{symb:MG2}.

\end{document} 
Gelöst wurde es durch die If / Else Anweisung, welche die unterschiedlichen Styles generiert. Als Kriterium wurde user4 gewählt. Man kann dies auch beliebig ändern.
Dateianhänge
abc.pdf
(56.67 KiB) 472-mal heruntergeladen

Antworten