我正在尝试从名为 的glossaries
/包中定制词汇表样式。glossaries-extra
altlisthypergroup
下面是它的样子,我已经注释了我想要做的更改:
因此,我希望导航窗格位于页面中央,放大组标题(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
。我对它进行了相当多的修改。
结果图片如下:
希望它能对将来的某人有所帮助。