我已修改glossaries
indexgroup
样式以满足我的需求,其中包括一些换行符。但是,这会导致条目在分页符处被拆分。我该如何解决这个问题?
梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[nopostdot,style=indexgroup,nolist,nonumberlist]{glossaries}
\makenoidxglossaries
\newglossaryentry{res}
{
name={resource-awareness},
description={Foo foo bar}
}
\renewcommand{\glstreeitem}{%
\parindent0pt\par\hangindent40pt
\everypar{\parindent50pt\hangindent40pt}}
\renewcommand{\glstreepredesc}{\par
\glstreeitem\parindent\hangindent}
\renewcommand{\glsnamefont}[1]{\textnormal{\itshape #1}}
\renewcommand*{\glsgroupheading}[1]{\parindent0pt\textnormal{\glsgetgrouptitle{#1}}\\}%
\begin{document}
This is not \gls{res}.
\vspace{16cm}
\printnoidxglossary
\end{document}
indexgroup
顺便说一句,由于我的文档中的其他样式与其他包存在一些冲突,所以我需要使用该样式。
答案1
您可以使用\nopagebreak
来防止分页符。我对您的 MWE 做了一些修改。我\nopagebreak
在名称和描述之间添加了分隔符。这可以防止您遇到的分页符,但会导致页眉和组的第一个项目之间出现分页符,这看起来也不太正确。所以我还调整了页眉后的分页符。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[nopostdot,style=indexgroup,nolist,nonumberlist]{glossaries}
\makenoidxglossaries
\newglossaryentry{res}
{
name={resource-awareness},
description={Foo foo bar}
}
\renewcommand{\glstreeitem}{%
\parindent0pt\par\hangindent40pt
\everypar{\parindent50pt\hangindent40pt}}
\renewcommand{\glstreepredesc}{\par\nopagebreak % <-- modified
\glstreeitem\parindent\hangindent}
\renewcommand{\glsnamefont}[1]{\textnormal{\itshape #1}}
\renewcommand*{\glsgroupheading}[1]{\parindent0pt\textnormal{\glsgetgrouptitle{#1}}%
\par\nopagebreak % <-- modified
}%
\begin{document}
This is not \gls{res}.
\vspace{16cm}
\printnoidxglossary
\end{document}
最终得到一份单页文档: