我有一个分两列打印的词汇表,但标题打印在第一列:
如果我单独打印标题,则有:
如何避免使用该命令再次打印“Glossario” \printglossary
?我使用包glossary
。
这是我的 MWE:
\documentclass[english,11pt,twoside]{scrbook}
\usepackage[paperwidth=17.5cm,paperheight=25cm, inner=1.25cm,outer=5.75cm,top=3cm,bottom=3cm]{geometry}
\usepackage{multicol}
\usepackage[style=list,glossaryname=false,number=none]{glossary}
\makeglossary
\begin{document}
\glossary{name={Luce}, description={Radiazione elettromagnetica di particolare frequenza, percepibile dall'occhio umano. La lunghezza d'onda dello spettro luminoso varia da 1 nm (violetto estremo) a 1000 nm (rosso).}}
\glossary{name={Numero atomico}, description={Numero utilizzato per caratterizzare chimicamente un atomo. Corrisponde al numero di protoni presenti nel nucleo dell'atomo.}}
%\normalsize
\addcontentsline{toc}{chapter}{Glossario}
\newgeometry{inner=1.25cm,outer=1.25cm}
%\chapter*{Glossario}
\thispagestyle{plain}
\hfill \huge\textbf{Glossario}
\small
\begin{multicols}{2}
\printglossary
\end{multicols}
\restoregeometry
\end{document}
答案1
问题是,无论 的值如何\glossarytitle
,包都会注入\chapter*
命令,这会导致列错位。要解决这个问题,请将\glossarytitle
宏重新定义为空并输入您自己的\chapter*
前环境multicols
。
\documentclass[11pt,twoside]{scrbook}
\usepackage[style=list,number=none]{glossary}
\usepackage{multicol}
\renewcommand\glossaryname{Glossario}
\renewcommand\glossarytitle{}
\makeglossary
\begin{document}
\chapter{The First Chapter}
This is a test\glossary{name={test}, description={test}} of glossary functionality.
\section{The First Section}
Here we will test and check\glossary{name={check}, description={test2}} the glossary.
\chapter*{\glossaryname}
\begin{multicols}{2}
\printglossary
\end{multicols}
\end{document}
给出输出:
您可能会考虑切换到glossaries
包裹,因为glossary
已经过时,而新包的样式更灵活。提供了迁移说明这里。
答案2
首先,该选项glossaryname
对于该包来说不是一个有效的选项glossary
。
我建议您重新定义theglossary
环境,以便词汇表以两列打印。也就是说,在序言中添加以下几行
\makeatletter
\renewenvironment{theglossary}{%
\glossarytitle\glossarypreamble%
\begin{multicols}{2}\@bef@reglos%
}{%
\@ftergl@s\end{multicols}%
\noindent\glossarypostamble}
\makeatother
toc=true
此外,如果您想要目录中的词汇表条目,只需在加载时添加选项即可glossary
(不需要该\addcontentsline
行):
\usepackage[style=list,number=none,toc=true]{glossary}
MWE(我也加载了babel
该italian
选项):
\documentclass[11pt,twoside]{scrbook}
\usepackage[paperwidth=17.5cm,paperheight=25cm, inner=1.25cm,outer=5.75cm,top=3cm,bottom=3cm]{geometry}
\usepackage[english,italian]{babel}
\usepackage{multicol}
\usepackage[style=list,number=none,toc=true]{glossary}
\makeatletter
\renewenvironment{theglossary}{%
\glossarytitle\glossarypreamble%
\begin{multicols}{2}\@bef@reglos%
}{%
\@ftergl@s\end{multicols}%
\noindent\glossarypostamble}
\makeatother
\makeglossary
\begin{document}
\tableofcontents
\glossary{name={Luce}, description={Radiazione elettromagnetica di particolare frequenza, percepibile dall'occhio umano. La lunghezza d'onda dello spettro luminoso varia da 1 nm (violetto estremo) a 1000 nm (rosso).}}
\glossary{name={Numero atomico}, description={Numero utilizzato per caratterizzare chimicamente un atomo. Corrisponde al numero di protoni presenti nel nucleo dell'atomo.}}
%\normalsize
\newgeometry{inner=1.25cm,outer=1.25cm}
%\chapter*{Glossario}
\thispagestyle{plain}
\small
\printglossary
\restoregeometry
\end{document}
输出: