Централизовать групповые заголовки глоссария

Централизовать групповые заголовки глоссария

Я использовал glossaries-extraдля генерации списка символов в своей диссертации, но у меня возникли проблемы с форматированием. А именно, проблема в том, что мои названия глав центрированы, а названия групп глоссария — нет.

Я посмотрел галереюПользовательские групповые блокии также разное форматирование styles, но мне не удалось найти решение. В идеале список должен выглядеть примерно так style=long(см. рис. ниже), но с присутствующими заголовками групп, которые центрированы.

Есть ли простой способ центрировать названия групп в глоссарии?

МВЭ:

\documentclass[parskip,12pt,oneside,a4paper]{scrbook}
\usepackage[record,symbols,nomain,stylemods={tree},shortcuts=other]{glossaries-extra}

\renewcommand*{\raggedchapter}{\centering}% Make chapters centred
\addtokomafont{disposition}{\rmfamily}% Roman fonts for Ch

\glsxtrsetgrouptitle{bte}{Neutron transport}
\glsxtrsetgrouptitle{angdisc}{Angular discretisations}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newentry{r}{
  name={\ensuremath{\mathbf{r}}},
  description={Position},
  group={bte},
  type={symbols}
}
\newentry{S2}{
  name={\ensuremath{\mathit{S_2}}},
  description={Angular domain: the unit sphere},
  group={bte},
  type={symbols}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newentry{SN}{
  name={\ensuremath{S_N}},
  description={Discrete Ordinates discretisation of \gls{S2}},
  group={angdisc},
  type={symbols}
}
\newentry{PN}{
  name={\ensuremath{P_N}},
  description={Spherical Harmonics discretisation of \gls{S2}},
  group={angdisc},
  type={symbols}
}

% \printunsrtglossary[type=symbols,style=long,title={List of Symbols}]
\printunsrtglossary[type=symbols,style=indexgroup,title={List of Symbols}]
\clearpage

\end{document}

решение1

Чтобы ответить на вопрос, вы можете просто обновить формат, используя

\renewcommand\glstreegroupheaderfmt[1]{\begin{center}\textbf{#1}\end{center}\vspace{-\parskip}}

и переход на alttreegroupстиль. Поэтому вы также должны использовать

\glsfindwidesttoplevelname

перед вызовом \printunsrtglossary. В итоге должно получиться так:

введите описание изображения здесь

решение2

Протестировав несколько альтернатив, включая ответ, опубликованный @Venez, я думаю, что самым простым решением этого вопроса является определение нового стиля глоссария на основе long. longСтиль фактически является , longtableчто означает, что простые манипуляции со столбцами могут привести к запрошенному стилю, т. е. центрированные заголовки групп и записи глоссария будут размещены по центру страницы.

Решение:

\documentclass[parskip,12pt,oneside,a4paper]{scrbook}
\usepackage[record,symbols,nomain,stylemods={tree},shortcuts=other]{glossaries-extra}% list of symbols

\renewcommand*{\raggedchapter}{\centering}% Make chapters centred
\addtokomafont{disposition}{\rmfamily}% Roman fonts for Ch

\glsxtrsetgrouptitle{bte}{Neutron transport}
\glsxtrsetgrouptitle{angdisc}{Angular discretisations}

% Define a custom long style for groups; style=long uses longtables
\newglossarystyle{longgroup}{%
    \setglossarystyle{long}%
  \renewcommand*{\glsgroupheading}[1]{%
    &%  Add empty column in longtable 
    \multicolumn{1}{c}{% Change the alignment just for the group title to centre
          \glsxtrgetgrouptitle{##1}{\glsxtrgrptitle}%
          % \glstreePreHeader{##1}{\glsxtrgrptitle}%
      \glstreegroupheaderfmt{\glsxtrgrptitle}%
    }%
    \cr% newline in table
    %\glsgroupskip% Uncomment for additional spacing below group title
    }%
}%

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newentry{r}{
  name={\ensuremath{\mathbf{r}}},
  description={Position},
  group={bte},
  type={symbols}
}
\newentry{S2}{
  name={\ensuremath{\mathit{S_2}}},
  description={Angular domain: the unit sphere},
  group={bte},
  type={symbols}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newentry{SN}{
  name={\ensuremath{S_N}},
  description={Discrete Ordinates discretisation of \gls{S2}},
  group={angdisc},
  type={symbols}
}
\newentry{PN}{
  name={\ensuremath{P_N}},
  description={Spherical Harmonics discretisation of \gls{S2}},
  group={angdisc},
  type={symbols}
}

% \printunsrtglossary[type=symbols,style=long,title={List of Symbols}]
\printunsrtglossary[type=symbols,style=longgroup,title={List of Symbols}]
\clearpage

\end{document}

введите описание изображения здесь

Связанный контент