用語集のグループタイトルを一元管理する

用語集のグループタイトルを一元管理する

私は論文の記号リストを生成するために を使用していますglossaries-extraが、書式設定の面で苦労しています。具体的には、章のタイトルは中央揃えになっているのに、用語集のグループ タイトルが中央揃えになっていないという問題があります。

私はギャラリーを見てきましたカスタムグループブロックまた、さまざまな書式設定も試しましstyleたが、解決策が見つかりませんでした。理想的には、リストは次のようになりますstyle=long(下の図を参照)。ただし、グループ タイトルが表示され、中央に配置されます。

用語集のグループタイトルを中央揃えにする簡単な方法はありますか?

MWE:

\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 が投稿した回答を含め、いくつかの代替案をテストした結果、この質問に対する最も簡単な解決策は、 に基づいて新しい用語集スタイルを定義することだと考えましたlonglongスタイルは実質的に で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}

ここに画像の説明を入力してください

関連情報