词汇表标题未显示在 amsart 中

词汇表标题未显示在 amsart 中

在我的问题得到很好的解决后,amsart 带有包含“到”和“来自”超链接的目录,我现在已经花了一天多的时间 - 这就是我通常保留模板的原因 :) - 试图弄清楚为什么我的“词汇表”标题没有显示在文档正文中。它确实完美地显示在目录中。

除了链接的文档(运行良好)之外,我还添加了我试图使词汇表正常工作的内容(在序言和正文中)。我确实发现了一些可能有帮助的东西,但它们依赖于 tocloft,而它与 amsart 配合得不好……

\documentclass{amsart}

%\usepackage{makeidx}

\usepackage[toc,section=section]{glossaries}
\newcommand{\dictentry}[2]{%
  \newglossaryentry{#1}{name=#1,description={#2}}%
  \glslink{#1}{}%
}
%\newglossary[slg]{symbolslist}{syi}{syg}{List of Symbols}
\makeglossaries
\glossarystyle{long3col}
\setlength{\glsdescwidth}{0.6\textwidth}
\setlength{\glspagelistwidth}{0.1\textwidth}
\newglossaryentry{x}{name=x,description={a helpful description of x}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% FROM PREVIOUS LINK IN TEXT - NEW STUFF IS ABOVE THIS LINE %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{etoolbox}

% Modifications to amsart ToC-related macros...
\makeatletter
\let\old@tocline\@tocline
\let\section@tocline\@tocline

% Insert a dotted ToC-line for \subsection and \subsubsection only
\newcommand{\subsection@dotsep}{4.5}
\newcommand{\subsubsection@dotsep}{4.5}
\patchcmd{\@tocline}
  {\hfil}
  {\nobreak
     \leaders\hbox{$\m@th
        \mkern \subsection@dotsep mu\hbox{.}\mkern \subsection@dotsep mu$}\hfill
     \nobreak}{}{}
\let\subsection@tocline\@tocline
\let\@tocline\old@tocline

\patchcmd{\@tocline}
  {\hfil}
  {\nobreak
     \leaders\hbox{$\m@th
        \mkern \subsubsection@dotsep mu\hbox{.}\mkern \subsubsection@dotsep mu$}\hfill
     \nobreak}{}{}
\let\subsubsection@tocline\@tocline
\let\@tocline\old@tocline

\let\old@l@subsection\l@subsection
\let\old@l@subsubsection\l@subsubsection

\def\@tocwriteb#1#2#3{%
  \begingroup
    \@xp\def\csname #2@tocline\endcsname##1##2##3##4##5##6{%
      \ifnum##1>\c@tocdepth
      \else \sbox\z@{##5\let\indentlabel\@tochangmeasure##6}\fi}%
    \csname l@#2\endcsname{#1{\csname#2name\endcsname}{\@secnumber}{}}%
  \endgroup
  \addcontentsline{toc}{#2}%
    {\protect#1{\csname#2name\endcsname}{\@secnumber}{#3}}}%

% Handle section-specific indentation and number width of ToC-related entries
\newlength{\@tocsectionindent}
\newlength{\@tocsubsectionindent}
\newlength{\@tocsubsubsectionindent}
\newlength{\@tocsectionnumwidth}
\newlength{\@tocsubsectionnumwidth}
\newlength{\@tocsubsubsectionnumwidth}
\newcommand{\settocsectionnumwidth}[1]{\setlength{\@tocsectionnumwidth}{#1}}
\newcommand{\settocsubsectionnumwidth}[1]{\setlength{\@tocsubsectionnumwidth}{#1}}
\newcommand{\settocsubsubsectionnumwidth}[1]{\setlength{\@tocsubsubsectionnumwidth}{#1}}
\newcommand{\settocsectionindent}[1]{\setlength{\@tocsectionindent}{#1}}
\newcommand{\settocsubsectionindent}[1]{\setlength{\@tocsubsectionindent}{#1}}
\newcommand{\settocsubsubsectionindent}[1]{\setlength{\@tocsubsubsectionindent}{#1}}

% Handle section-specific formatting and vertical skip of ToC-related entries
% \@tocline{<level>}{<vspace>}{<indent>}{<numberwidth>}{<extra>}{<text>}{<pagenum>}
\renewcommand{\l@section}{\section@tocline{1}{\@tocsectionvskip}{\@tocsectionindent}{\@tocsectionnumwidth}{\@tocsectionformat}}%
\renewcommand{\l@subsection}{\subsection@tocline{1}{\@tocsubsectionvskip}{\@tocsubsectionindent}{\@tocsubsectionnumwidth}{\@tocsubsectionformat}}%
\renewcommand{\l@subsubsection}{\subsubsection@tocline{1}{\@tocsubsubsectionvskip}{\@tocsubsubsectionindent}{\@tocsubsubsectionnumwidth}{\@tocsubsubsectionformat}}%
\newcommand{\@tocsectionformat}{}
\newcommand{\@tocsubsectionformat}{}
\newcommand{\@tocsubsubsectionformat}{}
\expandafter\def\csname toc@1format\endcsname{\@tocsectionformat}
\expandafter\def\csname toc@2format\endcsname{\@tocsubsectionformat}
\expandafter\def\csname toc@3format\endcsname{\@tocsubsubsectionformat}
\newcommand{\settocsectionformat}[1]{\renewcommand{\@tocsectionformat}{#1}}
\newcommand{\settocsubsectionformat}[1]{\renewcommand{\@tocsubsectionformat}{#1}}
\newcommand{\settocsubsubsectionformat}[1]{\renewcommand{\@tocsubsubsectionformat}{#1}}
\newlength{\@tocsectionvskip}
\newcommand{\settocsectionvskip}[1]{\setlength{\@tocsectionvskip}{#1}}
\newlength{\@tocsubsectionvskip}
\newcommand{\settocsubsectionvskip}[1]{\setlength{\@tocsubsectionvskip}{#1}}
\newlength{\@tocsubsubsectionvskip}
\newcommand{\settocsubsubsectionvskip}[1]{\setlength{\@tocsubsubsectionvskip}{#1}}

% Adjust section-specific ToC-related macros to have a fixed-width numbering framework
\patchcmd{\tocsection}{\indentlabel}{\makebox[\@tocsectionnumwidth][l]}{}{}
\patchcmd{\tocsubsection}{\indentlabel}{\makebox[\@tocsubsectionnumwidth][l]}{}{}
\patchcmd{\tocsubsubsection}{\indentlabel}{\makebox[\@tocsubsubsectionnumwidth][l]}{}{}

% Allow for section-specific page numbering format of ToC-related entries
\newcommand{\@sectypepnumformat}{}
\renewcommand{\contentsline}[1]{%
  \expandafter\let\expandafter\@sectypepnumformat\csname @toc#1pnumformat\endcsname%
  \csname l@#1\endcsname}
\newcommand{\@tocsectionpnumformat}{}
\newcommand{\@tocsubsectionpnumformat}{}
\newcommand{\@tocsubsubsectionpnumformat}{}
\newcommand{\setsectionpnumformat}[1]{\renewcommand{\@tocsectionpnumformat}{#1}}
\newcommand{\setsubsectionpnumformat}[1]{\renewcommand{\@tocsubsectionpnumformat}{#1}}
\newcommand{\setsubsubsectionpnumformat}[1]{\renewcommand{\@tocsubsubsectionpnumformat}{#1}}
\renewcommand{\@tocpagenum}[1]{%
  \hfill {\mdseries\@sectypepnumformat #1}}

% Small correction to Appendix, since it's still a \section which should be handled differently
\let\oldappendix\appendix
\renewcommand{\appendix}{%
  \leavevmode\oldappendix%
  \addtocontents{toc}{%
    \protect\settowidth{\protect\@tocsectionnumwidth}{\protect\@tocsectionformat\sectionname\space}%
    \protect\addtolength{\protect\@tocsectionnumwidth}{2em}}%
}
\makeatother


% #1 (default is as required)

% #2

% #3
\makeatletter
\settocsectionnumwidth{2em}
\settocsubsectionnumwidth{2.5em}
\settocsubsubsectionnumwidth{3em}
\settocsectionindent{1pc}%
\settocsubsectionindent{\dimexpr\@tocsectionindent+\@tocsectionnumwidth}%
\settocsubsubsectionindent{\dimexpr\@tocsubsectionindent+\@tocsubsectionnumwidth}%
\makeatother

% #4 & #5
\settocsectionvskip{10pt}
\settocsubsectionvskip{0pt}
\settocsubsubsectionvskip{0pt}

% #6 & #7
% See #3

% #8
\renewcommand{\contentsnamefont}{\bfseries\Large}

% #9
\settocsectionformat{\bfseries}
\settocsubsectionformat{\mdseries}
\settocsubsubsectionformat{\mdseries}
\setsectionpnumformat{\bfseries}
\setsubsectionpnumformat{\mdseries}
\setsubsubsectionpnumformat{\mdseries}

% #10
% Insert the following command inside your text where you want the ToC to have a page break
\newcommand{\tocpagebreak}{\leavevmode\addtocontents{toc}{\protect\clearpage}}

% #11
\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}{%
  \vspace*{-\linespacing}% Default gap to top of CONTENTS is \linespacing.
  \oldtableofcontents}

\setcounter{tocdepth}{3}




 %AMSART STUFF

\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}

\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{xca}[theorem]{Exercise}

\theoremstyle{remark}
\newtheorem{remark}[theorem]{Remark}

\numberwithin{equation}{section}

\usepackage[explicit]{titlesec}
\usepackage{hyperref}
\hypersetup{
    colorlinks,%
    citecolor=black,%
    filecolor=black,%
    linkcolor=black,%
    urlcolor=black
}

% renew \contentsline for toc to include hypertarget
\let\oldcontentsline\contentsline%
\renewcommand\contentsline[4]{%
\hypertarget{toc#4}{}%
\oldcontentsline{#1}{#2}{#3}{#4}}

% renew \section to link to the toc
\titleformat{\section}
{\normalfont\Large\bf}
{{\thesection} \hyperlink{tocsection.\thesection}{#1}}
{1pc}
{}

% renew \subsection to link to the toc
\titleformat{\subsection}
{\normalfont\bf}
{{\thesection} \hyperlink{tocsubsection.\thesubsection}{#1}}
{1pc}
{}

% renew \subsubsection to link to the toc
\titleformat{\subsubsection}
{\normalfont\bf}
{{\thesection} \hyperlink{tocsubsubsection.\thesubsubsection}{#1}}
{1pc}
{}


\begin{document}

\title{Report}

%    Information for first author
\author{Ban}
%    Address of record for the research reported here
\address{5da}
%    Current address

\email{sh@a}
%    \thanks will become a 1st page footnote.
\thanks{The autnt.}

%%    Information for second author
%\author{Author Two}
%\address{Mathematical Research Section, School of Mathematical Sciences, Australian National University, Canberra ACT 2601, Australia}
%\curraddr{Department of Mathematics and Statistics, Case Western Reserve University, Cleveland, Ohio 43403}
%\email{[email protected]}
%\thanks{Support information for the second author.}

%    General info
%\subjclass[2000]{Primary 54C40, 14E20; Secondary 46E25, 20C20}

\date{\today.}

%\dedicatory{Thior.}

\keywords{Matry}

\begin{abstract}
This paper is 
\end{abstract}

\maketitle


\tableofcontents

\section{Introduction, Background, and Motivation}

\section{Tooling}

\subsection{Toion}



\section{Stories}

\subsection{Sion}

\subsubsection{Ky}

\subsubsection{Background}

\begin{itemize}
\item Other Types
\item ming
\end{itemize}

\subsection{odels}

\subsubsection{n}

\subsection{archy}

\subsection{ies - \href{run:./s.pdf}{file}.}

\subsubsection{ink}

\subsubsection{ts)}

\subsubsection{tion}



\dictentry{aardvark}{an animal}%
\dictentry{lion}{another animal, but with
  a really long description that spills over many, many, many, many, many, 
  many, many, many, many, many, many, many, many, many, many, many, many, 
  many, many, many, many, many, many, many, many, many, many lines}
\dictentry{zebra}{yet another animal}%


\setlength{\glsdescwidth}{\textwidth}
\printglossary[title=Glossary]%[style=long]
\end{document}

答案1

我首先将你的代码简化为更接近最小工作示例(MWE)

\documentclass{amsart}

\usepackage[toc,section=section]{glossaries}
\newcommand{\dictentry}[2]{%
  \newglossaryentry{#1}{name=#1,description={#2}}%
  \glslink{#1}{}%
}
\makeglossaries
\glossarystyle{long3col}
\setlength{\glsdescwidth}{0.6\textwidth}
\setlength{\glspagelistwidth}{0.1\textwidth}
\newglossaryentry{x}{name=x,description={a helpful description of x}}

\usepackage[explicit]{titlesec}
\usepackage{hyperref}
\hypersetup{
    colorlinks,%
    citecolor=black,%
    filecolor=black,%
    linkcolor=black,%
    urlcolor=black
}

\titleformat{\section}{\normalfont\Large\bfseries}{\thesection{} \hyperlink{tocsection.\thesection}{#1}}{1pc}{}

\begin{document}

\tableofcontents

\section{Regular Section}

\section*{Starred Section}

\dictentry{aardvark}{an animal}%
\dictentry{lion}{another animal, but with
  a really long description that spills over many, many, many, many, many,
  many, many, many, many, many, many, many, many, many, many, many, many,
  many, many, many, many, many, many, many, many, many, many lines}
\dictentry{zebra}{yet another animal}%


\setlength{\glsdescwidth}{\textwidth}
\printglossary%[title=Glossary]%[style=long]
\end{document}

这表明代码足以重现该问题:

无标题词汇表

事实上,代码可以进一步最小化。glossaries是不必要的。所需的只是带星号的部分命令和titlesec重新定义。

无论如何,这个过程表明,罪魁祸首显然是对章节标题格式的重新定义,而这并非词汇表所特有的问题,因为任何带星号的章节都会出现同样的问题。问题是,您已将章节标题放入章节标签中,但带星号的章节没有标签排版,因此标题不会出现。要纠正此问题,您需要将标题移动到重新定义格式的命令中的相应参数:

\documentclass{amsart}

\usepackage[toc,section=section]{glossaries}
\newcommand{\dictentry}[2]{%
  \newglossaryentry{#1}{name=#1,description={#2}}%
  \glslink{#1}{}%
}
\makeglossaries
\glossarystyle{long3col}
\setlength{\glsdescwidth}{0.6\textwidth}
\setlength{\glspagelistwidth}{0.1\textwidth}
\newglossaryentry{x}{name=x,description={a helpful description of x}}

\usepackage[explicit]{titlesec}
\usepackage{hyperref}
\hypersetup{
    colorlinks,%
    citecolor=black,%
    filecolor=black,%
    linkcolor=black,%
    urlcolor=black
}

\titleformat{\section}{\normalfont\Large\bfseries}{\thesection}{1pc}{\hyperlink{tocsection.\thesection}{#1}}

\begin{document}

\tableofcontents

\section{Regular Section}

\section*{Starred Section}

\dictentry{aardvark}{an animal}%
\dictentry{lion}{another animal, but with
  a really long description that spills over many, many, many, many, many,
  many, many, many, many, many, many, many, many, many, many, many, many,
  many, many, many, many, many, many, many, many, many, many lines}
\dictentry{zebra}{yet another animal}%


\setlength{\glsdescwidth}{\textwidth}
\printglossary%[title=Glossary]%[style=long]
\end{document}

标题为星号部分

相关内容