我希望我的词汇表中有“子部分”,或者只是两个词汇表一个接一个。但是,词汇表之间总是有空白页(或者,因为我使用的是 twoside 和 openright,甚至有两页!)。
我找到了以下主题
简短的版本是(我认为)任何基于“章节”的类都会引入一个清除页,我应该能够使用
\renewcommand*{\glsclearpage}{}
但这对我来说不起作用,或者我没有正确调用它。
我创建了以下小示例:
\documentclass[11pt,a4paper,twoside,openright]{scrreprt}
% Include Glossary Package
\usepackage[style=alttree,nonumberlist,acronym]{glossaries}
\glssetwidest{ABCD}% widest name
\renewcommand*{\glsclearpage}{}
% Create Glossaries
\newglossary{type1}{gls1}{glo1}{Glossary 1}
\newglossary{type2}{gls2}{glo2}{Glossary 2}
% Generate Glossary Entries
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
% Generate Glossaries
\makeglossaries
\begin{document}
% Print Glossaries
\glsaddall
\printglossary[type=type1]
\printglossary[type=type2]
\end{document}
我究竟做错了什么?
非常感谢!干杯
编辑,解决方案: 通过以下建议,我便可以得到一个包含一些特定词汇表“部分”的主要词汇表章节。
\documentclass[11pt,a4paper]{scrreprt}
% Include Glossary Package
\usepackage[toc,style=alttree,nonumberlist,acronym,section=section]{glossaries}
\glssetwidest{ABCD}% widest name[![enter image description here][2]][2]
% Create Glossaries
\newglossary{type1}{gls1}{glo1}{Accronyms}
\newglossary{type2}{gls2}{glo2}{Nomenclature}
% Generate Glossary Entries
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
% Generate Glossaries
\makeglossaries
\glsaddall
\begin{document}
\tableofcontents
% First, start main glossary chapter
\addchap{My Glossaries}
Some introductory text if desired.
% Now print actual glossaries
\printglossary[type=type1]
\printglossary[type=type2]
\bigskip\noindent
Some concluding text if desired.
\end{document}
(我只是为了缩短论坛的输出而删除了“twoside,openright”选项,这没有其他影响)
答案1
您可以使用选项section
或section=section
来处理词汇表包。然后词汇表将获得级别标题section
。
\documentclass[11pt,a4paper,twoside,openright]{scrreprt}
% Include Glossary Package
\usepackage[style=alttree,nonumberlist,acronym,
section=section% <- added
]{glossaries}
\glssetwidest{ABCD}% widest name
% Create Glossaries
\newglossary{type1}{gls1}{glo1}{Glossary 1}
\newglossary{type2}{gls2}{glo2}{Glossary 2}
% Generate Glossary Entries
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
% Generate Glossaries
\makeglossaries
\begin{document}
% Print Glossaries
\glsaddall
\printglossary[type=type1]
\printglossary[type=type2]
\end{document}
如果词汇表标题应该在同chapter
一层,您可以使用 KOMA-Script 命令将for局部\RedeclareSectionCommand
更改为。这样就不会出现分页符,而词汇表标题仍然在同一层,使用字体元素,标题前后的空格相同。此解决方法至少需要 KOMA-Script 版本 3.18(当前为 3.19a)。style
chapter
section
chapter
chapter
\documentclass[11pt,a4paper,twoside,openright]{scrreprt}
% Include Glossary Package
\usepackage[style=alttree,nonumberlist]{glossaries}
\glssetwidest{ABCD}% widest name
% Create Glossaries
\newglossary{type1}{gls1}{glo1}{Glossary 1}
\newglossary{type2}{gls2}{glo2}{Glossary 2}
% Generate Glossary Entries
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
% Generate Glossaries
\makeglossaries
\begin{document}
% Print Glossaries
\glsaddall
\begingroup
\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
\printglossary[type=type1]
\printglossary[type=type2]
\endgroup
\chapter{Chapter}
\end{document}
请注意,在两个示例中,该命令\glsaddall
都会在第一个词汇表的标题前插入额外的水平空间。因此,另请参阅cfr 的答案。
如果您使用cfr 的答案还可以删除词汇表之间的空白页:\KOMAoptions{open=any}
本地使用。
\documentclass[11pt,a4paper,twoside,openright]{scrreprt}
\usepackage{showframe}
% Include Glossary Package
\usepackage[style=alttree,nonumberlist]{glossaries}
\glssetwidest{ABCD}% widest name
% Create Glossaries
\newglossary{type1}{gls1}{glo1}{Glossary 1}
\newglossary{type2}{gls2}{glo2}{Glossary 2}
% Generate Glossary Entries
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
% Generate Glossaries
\makeglossaries\glsaddall% < see https://tex.stackexchange.com/a/300060/43317
\begin{document}
% Print Glossaries
\begingroup
\KOMAoptions{open=any}
\printglossary[type=type1]
\printglossary[type=type2]
\endgroup
\chapter{First Chapter}
\chapter{Second Chapter}
\end{document}
答案2
这里有几件你可能需要的东西:
- 词汇表应分为章节,而不是篇章;
- 词汇表为章节,但采用自定义格式,不会像其他章节那样插入空白页;
- 词汇表应为章节,但当词汇表是文档中唯一的内容时,第一个词汇表之前不应有额外的空白页。
esdd 的回答解决了前两种可能性。
在第三种情况下,问题在于,\glsaddall
虽然实际上没有排版,但似乎被算作内容。我认为这是个错误:据我所知,它不应该导致这种行为。
但是,我没有进一步研究这个问题,因为有一个简单的解决方案:使用序言中的命令而不是文档中的命令,一切就都好了。
\documentclass[11pt,a4paper,twoside,openright]{scrreprt}
\usepackage[style=alttree,nonumberlist,acronym]{glossaries}
\glssetwidest{ABCD}% widest name
\renewcommand*{\glsclearpage}{}
\newglossary{type1}{gls1}{glo1}{Glossary 1}
\newglossary{type2}{gls2}{glo2}{Glossary 2}
\newglossaryentry{Entry1}{type = type1, name = $aaaa$, description = Position}
\newglossaryentry{Entry2}{type = type1, name = $bbbb$, description = Velocity}
\newglossaryentry{Entry3}{type = type2, name = $cccc$, description = Position}
\newglossaryentry{Entry4}{type = type2, name = $dddd$, description = Velocity}
\makeglossaries
\glsaddall
\begin{document}
\printglossary[type=type1]
\printglossary[type=type2]
\end{document}