Zeilenumbruch in Nomencl für Nomgroup

Zeilenumbruch in Nomencl für Nomgroup

Ich verwende nomencl für die Nomenklatur meiner Arbeit.
Die Arbeit besteht aus drei Kapiteln und ich möchte für jedes Kapitel eine eigene Liste haben.
Das erreiche ich derzeit mit dem Code in meinem minimalen Arbeitsbeispiel.
Leider sind die Kapitelnamen recht lang. Sie passen daher nicht in eine Zeile.

Wie kann ich den Kapitelnamen in der nächsten Zeile fortsetzen?
Wie kann ich ihn so ausrichten, dass die zweite Zeile nicht von vorne beginnt (unter „Kapitel …“), sondern unter dem Namen des Kapitels nach dem Bindestrich („Ein recht langer Titel …“).

\documentclass[a4paper,12pt]{book}
\usepackage[british,ngerman]{babel}
\usepackage{longtable} % longtable lets you have tables that span multiple pages

\usepackage{nomencl}
\makenomenclature
\renewcommand{\nomname}{List of Symbols}
\renewcommand{\nompreamble}{just some symbols}

\usepackage{etoolbox}
\renewcommand\nomgroup[1]{%
\item[\bfseries
\ifstrequal{#1}{A}{Common}{%
\ifstrequal{#1}{B}{Chapter 2 - A quite long title, a quite long title, a quite long title, a quite long title, a quite long title}{%
\ifstrequal{#1}{C}{Chapter 3 - A quite long title, a quite long title, a quite long title, a quite long title, a quite long title}{}}}%
]}

\begin{document}
\tableofcontents
\nomenclature[A,  1]{$\gamma$}{text} 
\nomenclature[A,  2]{$B$}{text}
\nomenclature[B,  1]{$\beta$}{text}
\nomenclature[B,  2]{$S$}{text}
\nomenclature[C,  1]{$\alpha$}{text}
\nomenclature[C,  2]{$\beta$}{text}
\printnomenclature[2cm]
\end{document}enter code here

Antwort1

Ich konnte das Problem mit "parbox" lösen:

   \usepackage{etoolbox}
   \renewcommand\nomgroup[1]{%
   \item[\bfseries
   \ifstrequal{#1}{A}{Common}{%
   \ifstrequal{#1}{B}{{\parbox[t]{16cm}{Chapter 2 - A quite long title, a quite long title, a quite long title, a quite long title, a quite long title}}}{%
   \ifstrequal{#1}{C}{{\parbox[t]{16cm}{Chapter 3 - A quite long title, a quite long title, a quite long title, a quite long title, a quite long title}}}{}}}%
   ]}

Antwort2

Ihre Idee \parboxist gut, aber ich schlage einige Verbesserungen vor, vor allem, um das Schätzen der Breite zu vermeiden.

\documentclass[a4paper,12pt]{book}
\usepackage[british,ngerman]{babel}

\usepackage{nomencl}
\usepackage{xparse}

\makenomenclature
\renewcommand{\nomname}{List of Symbols}
\renewcommand{\nompreamble}{just some symbols}

\newcommand{\nomA}{Common}
\newcommand{\nomB}{%
  \parbox[t]{\textwidth}{%
    Chapter 2 - A quite long title, a quite long title, a quite long title,
    a quite long title, a quite long title%
  }\kern-\labelsep
}
\newcommand{\nomC}{%
  \parbox[t]{\textwidth}{%
    Chapter 3 - A quite long title, a quite long title, a quite long title,
    a quite long title, a quite long title%
  }\kern-\labelsep
}
% this is easier than a long list of nested \ifstrequal calls and more easily scalable
\ExplSyntaxOn
\NewDocumentCommand{\nomgroupmake}{m}
 {
  \str_case:nnF { #1 }
   {
    {A}{\nomA}
    {B}{\nomB}
    {C}{\nomC}
   }
   {\ERROR}
 }
\ExplSyntaxOff

\renewcommand\nomgroup[1]{\item[\bfseries\nomgroupmake{#1}]}

\begin{document}

Some text to make the nomenclature appear
\nomenclature[A,1]{$\gamma$}{text} 
\nomenclature[A,2]{$B$}{text}
\nomenclature[B,1]{$\beta$}{text}
\nomenclature[B,2]{$S$}{text}
\nomenclature[C,1]{$\alpha$}{text}
\nomenclature[C,2]{$\beta$}{text}

\printnomenclature[2cm]

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen