词汇表定制难题

词汇表定制难题

我正在尝试从名为 的glossaries/包中定制词汇表样式。glossaries-extraaltlisthypergroup

下面是它的样子,我已经注释了我想要做的更改:

注释图像

因此,我希望导航窗格位于页面中央,放大组标题(A、B、C……等),并稍微缩进条目,并将描述与条目名称稍微分开。

我已经阅读了这两个软件包的用户手册和代码手册,并且进行了查看,到目前为止,我已经为我的自定义词汇表样式想出了以下代码:

\newglossarystyle{mygls}
{
\setglossarystyle{altlisthypergroup}
    \renewenvironment{theglossary}{
    \begin{description}[style=standard, labelindent=0pt]}{\end{description}}

    \renewcommand*{\glsgroupheading}[1]{\item[]\makebox[0pt]{\begin{Large}\textbf{\glsgetgrouptitle{##1}}\end{Large}}}
}

结果如下:

图像

但是,导航窗格消失了。更改labelindent(例如 28pt)会移动组标题和条目名称,但不会移动条目描述。

在此处输入图片描述

据我所知,我可能必须使用它\glsnavigation来恢复导航窗格,但不确定如何结合以下操作:

\renewcommand*{\glsgroupheading}[1]{%  
\item[\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}]} 

从手册中。

我如何分别编辑组标题、条目名称和描述?我是否可以使用\renewenvironment{theglossary}来恢复导航窗格?如果可以,该怎么做?

梅威瑟:

\documentclass[12pt]{report}
\usepackage[margin=1in]{geometry}
\usepackage{setspace}
\usepackage[explicit, noindentafter]{titlesec}
\usepackage{enumitem}
\usepackage[english]{babel}
\doublespacing

%Hyperlinks Settings
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,      
    urlcolor=cyan,
    citecolor = orange,
    linktoc=all
}

%Appendices - Acronyms, Definitions, Code
\usepackage[toc,page]{appendix}
\usepackage[nopostdot,acronym,automake=immediate]{glossaries}
\usepackage[stylemods=all]{glossaries-extra}
\preto\chapter{\glsresetall} %reset acronym expansion for every chapter
\setabbreviationstyle[acronym]{long-short}
\setglossarysection{subsubsection}
\renewcommand{\glossarysection}[2][]{}

\newglossarystyle{mygls}
{
\setglossarystyle{altlisthypergroup}
    \renewenvironment{theglossary}
    {\begin{description}[style=standard, labelindent=0pt]}{\end{description}}
\renewcommand*{\glsgroupheading}[1]{\item[]\makebox[0pt]{\begin{Large}\textbf{\glsgetgrouptitle{##1}}\end{Large}}}
}

\makeglossaries

\newacronym{ai}{AI}{Artificial Intelligence}

\newacronym{asl}{ASL}{American Sign Language}

\newacronym{rps}{RPS}{Rock Paper Scissors}

\newacronym{vr}{VR}{Virtual Reality}

%Quick Filler Text
\usepackage{blindtext}
\usepackage{kantlipsum}

%%%Document Begin%%%
\begin{document}

%Chapter Title Format
\titleformat{\chapter}[display]{\bfseries\centering}{\huge Chapter \thechapter}{1em}{\huge #1}
\titlespacing{\chapter}{0pt}{-32pt}{1cm}
\chapter{Custom Glossary Woes}

\blindtext[2]
\gls{ai}
\blindtext[42]
\gls{asl}
\blindtext[12]
\gls{asl}
\kant
\gls{rps}
\kant
\gls{vr}
\kant

\newpage
\appendix
%Appendix Title Format
\titleformat{\chapter}[display]{\bfseries\centering}{\huge Appendix \thechapter}{1em}{\huge #1}
\titlespacing{\chapter}{0pt}{-32pt}{1cm}
\chapter{Acronyms}
\setglossarystyle{mygls}
\printglossary[type=acronym]

\end{document}

谢谢。

答案1

好的,我想我明白了。这是我的自定义词汇表定义的代码:

\usepackage{needspace}
\newglossarystyle{mygls}
{
    \setglossarystyle{altlisthypergroup}
    \renewenvironment{theglossary}
    {
        \label{\thechapter}
        \begin{description}
        [style=standard, labelindent=0pt, itemindent=0pt]
    }
    {\end{description}}

    \renewcommand*{\glsgroupheading}[1]
    {
    \begin{center}
    \vspace{25pt}
    \glsnavhypertarget{##1}{}
    \vspace{25pt}
    \end{center}
    \needspace{6\baselineskip}\item[]\makebox[-85pt]{\begin{Large}\textbf{\glsgetgrouptitle{\hyperref[\thechapter]{##1}}}\end{Large}}
    }
    
\renewcommand*{\glossentry}[2]
{
    \leftskip2em
    \needspace{3\baselineskip}%%%
    \item[\hspace{5pt}\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}}]
    \ \\ \nobreak\glossentrydesc{##1}\glspostdescription\space ##2
}

\renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\vspace{0pt}\fi}
}

虽然不是最优雅的,但是它满足了我的要求。

list我通过阅读和及其所有变体的代码,从 glossaries-code.pdf 第 3.3 节中获取了代码altlist。我对它进行了相当多的修改。

结果图片如下:

在此处输入图片描述

希望它能对将来的某人有所帮助。

相关内容