删除词汇表前的空白页

删除词汇表前的空白页

我希望我的词汇表中有“子部分”,或者只是两个词汇表一个接一个。但是,词汇表之间总是有空白页(或者,因为我使用的是 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

您可以使用选项sectionsection=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)。stylechaptersectionchapterchapter

    \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

这里有几件你可能需要的东西:

  1. 词汇表应分为章节,而不是篇章;
  2. 词汇表为章节,但采用自定义格式,不会像其他章节那样插入空白页;
  3. 词汇表应为章节,但当词汇表是文档中唯一的内容时,第一个词汇表之前不应有额外的空白页。

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}

常规章节,无额外空白

相关内容