
He estado usando glossaries-extra
para generar una lista de símbolos en mi tesis, pero he tenido problemas con el formato. Más específicamente, el problema es que los títulos de mis capítulos están centrados, pero los títulos de los grupos del glosario no.
He echado un vistazo a la galería deBloques de grupo personalizadosy también los diferentes formatos style
, pero no he conseguido encontrar solución. Idealmente, la lista debería verse así style=long
(consulte la figura a continuación), pero con títulos de grupo presentes y centrados.
¿Existe una forma sencilla de centrar los títulos de grupo de un glosario?
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}
Respuesta1
Para responder a la pregunta, simplemente puede renovar el formato usando
\renewcommand\glstreegroupheaderfmt[1]{\begin{center}\textbf{#1}\end{center}\vspace{-\parskip}}
y cambiando al alttreegroup
estilo. Por lo tanto también debes utilizar
\glsfindwidesttoplevelname
ante la llamada de \printunsrtglossary
. Al final debería verse así:
Respuesta2
Habiendo probado algunas alternativas, incluida la respuesta publicada por @Venez, creo que la solución más sencilla a esta pregunta es definir un nuevo estilo de glosario basado en long
. El long
estilo es efectivamente lo longtable
que significa que manipulaciones simples de columnas pueden dar como resultado el estilo solicitado, es decir, títulos de grupos centrados y entradas del glosario colocados hacia el centro de la página.
Solución:
\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}