首字母缩略词和词汇表条目的不同格式

首字母缩略词和词汇表条目的不同格式

我正在撰写我的硕士论文,并且我有一个词汇表和一个首字母缩略词列表。

我用的是这个glossaries包。

我希望首字母缩略词和词汇表条目具有不同的格式外观。

  • 缩写:在列表中以粗体显示(在文本中以正常显示)
  • 词汇表条目:在文本中和表格中均以斜体显示。

这是我的 MWE:

\documentclass{book}    

\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        

\usepackage{hyperref}       
\usepackage[toc,acronym,section=section]{glossaries} 

\makeglossaries
\glsenableentrycount

% GLOSSARY
\newglossaryentry{glscard}{
    name=cardinality,
    description={The number of elements in the specified set}}

% ACRONYMS
\newacronym{pc}{PC}{Personal Computer}   
\newacronym{mesh}{MSH}{Mesh Secant Header}      

% Custom Glossary Style
\newglossarystyle{mylong}{%
  \setglossarystyle{long}%
  \renewenvironment{theglossary}%
     {\begin{longtable}[l]{@{}p{\dimexpr 2cm-\tabcolsep}p{0.8\hsize}}}
     {\end{longtable}}%
      \renewcommand{\glossentry}[2]{%
      \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
      \glossentrydesc{##1}\glspostdescription\space 
      \ifnum\glsentryprevcount{##1}=1\relax
        page
      \else
        pages
      \fi
      ##2\tabularnewline
     }%
 }
% End custom Glossary Style
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
\begin{document} 


\printglossary[toctitle=Lexique,type=main, style=mylong]
\printglossary[toctitle=Acronyms,type=acronym, style=mylong]

\mainmatter
\chapter{Introduction}
\section{ab}

\gls{pc}; \gls{pc}; \gls{glscard}; \newpage 
\gls{mesh}

\end{document}

我尝试了以下命令:

  • \renewcommand{\glsnamefont}[1]{\textbf{#1}}, 从这里在列表中以粗体显示,但它适用于两个都列表、缩略词和词汇表。
  • \renewcommand{\glstextformat}[1]{\textit{#1}}这里在文本中以斜体显示它们,但同样,它适用于首字母缩略词和词汇表条目。

有人知道如何解决这个混合问题吗?

编辑 :我添加了自定义词汇表样式(来自这里) 来控制它们在列表中的显示方式。

答案1

你是指这样的吗?

在此处输入图片描述

如果是,则可以通过 来实现\defglsentryfmt[type]{...},其中type参数表示词汇表类型(缩写、主词汇表等),强制参数用于排版命令。

有关这方面的信息,请参阅glossaries-user手册第 6.3 节。

\documentclass{book}    

\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        

\usepackage{hyperref}       
\usepackage[toc,acronym,section=section]{glossaries} 



\defglsentryfmt[acronym]{\textit{\glsentrytext{\glslabel}}}
\defglsentryfmt[main]{\textbf{\glsentrytext{\glslabel}}}
\makeglossaries
\glsenableentrycount

% GLOSSARY
\newglossaryentry{glscard}{
    name=cardinality,
    description={The number of elements in the specified set}}

% ACRONYMS
\newacronym{pc}{PC}{Personal Computer}   
\newacronym{mesh}{MSH}{Mesh Secant Header}      

\renewcommand{\acronymfont}[1]{\textit{#1}}



\setglossarystyle{list}    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
\begin{document} 


\printglossary[toctitle=Lexique,type=main]
\printglossary[toctitle=Acronyms,type=acronym]

\mainmatter
\chapter{Introduction}
\section{ab}

\gls{pc}; \gls{pc}; \gls{glscard}; \newpage 
\gls{mesh}

\end{document}

更新

glossary对于斜体词汇表条目,还具有特殊的词汇表样式。

\documentclass{book}    

\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        

\usepackage{hyperref}       
\usepackage[toc,acronym,section=section]{glossaries} 


\defglsentryfmt[acronym]{\textbf{\glsgenacfmt}}
\defglsentryfmt[main]{\textit{\glsgenentryfmt}}


\makeglossaries
\glsenableentrycount

% GLOSSARY
\newglossaryentry{glscard}{
    name=cardinality,
    description={The number of elements in the specified set}}

% ACRONYMS
\newacronym{pc}{PC}{Personal Computer}   
\newacronym{mesh}{MSH}{Mesh Secant Header}      


\newglossarystyle{mylist}{%
  \setglossarystyle{list}
  \renewcommand*{\glossentry}[2]{%
  \item[\normalfont\itshape \glsentryitem{##1}%  
    \glstarget{##1}{\glossentryname{##1}}]
    \glossentrydesc{##1}\glspostdescription\space ##2}%
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
\begin{document} 


\printglossary[toctitle=Lexique,type=main,style=mylist]
\printglossary[toctitle=Acronyms,type=acronym,style=list]

\mainmatter
\chapter{Introduction}
\section{ab}

\gls{pc}; \gls{pc}; \gls{glscard}; \newpage 
\gls{mesh}

\end{document}

在此处输入图片描述

答案2

有一个更简单的方法,如果你使用glossaries-extra扩展包。这提供了一个额外的键category(独立于type),可用于定制不同类型的术语。

如果您没有指定category,则默认为generalfor \newglossaryentryabbreviationfor\newabbreviationacronymfor \newacronym

使用 来设置给定类别的属性\glssetcategoryattribute。该textformat属性控制术语在文本中的格式化方式。因此,要使所有带有 的术语都category=general以斜体显示:

\glssetcategoryattribute{general}{textformat}{emph}

这将覆盖\glstextformat具有此类别属性的条目。

属性glossnamefont控制描述中名称的格式。它由内部使用\glossentryname并覆盖默认的\glsnamefont。因此,要使category=general词汇表中所有带有名称的术语都以斜体显示:

\glssetcategoryattribute{general}{glossnamefont}{emph}

对于粗体术语也类似category=acronym

\glssetcategoryattribute{acronym}{glossnamefont}{textbf}

顺便说一句,glossaries-extra还有一种更简单的方法,即在位置列表的开头插入“page”/“pages”:

\GlsXtrEnablePreLocationTag{page~}{pages~}

(使用条目计数并不可靠,因为您可能仅在单个页面上使用一个条目,但如果您在该页面上多次使用它,则计数将大于 1,因此您最终会得到单个位置的“页面”。)

toc和包选项nopostdot默认通过 实现glossaries-extra

完成 MWE:

\documentclass{book}    

\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        

\usepackage{hyperref}       
\usepackage[acronym,section=section]{glossaries-extra} 

\makeglossaries

\GlsXtrEnablePreLocationTag{page~}{pages~}

\glssetcategoryattribute{general}{textformat}{emph}
\glssetcategoryattribute{general}{glossnamefont}{emph}
\glssetcategoryattribute{acronym}{glossnamefont}{textbf}

% GLOSSARY
\newglossaryentry{glscard}{
    name=cardinality,
    description={The number of elements in the specified set}}

% ACRONYMS
\newacronym{pc}{PC}{Personal Computer}   
\newacronym{mesh}{MSH}{Mesh Secant Header}      

% Custom Glossary Style
\newglossarystyle{mylong}{%
  \setglossarystyle{long}%
  \renewenvironment{theglossary}%
     {\begin{longtable}[l]{@{}p{\dimexpr 2cm-\tabcolsep}p{0.8\hsize}}}
     {\end{longtable}}%
 }
% End custom Glossary Style
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
\begin{document} 


\printglossary[toctitle=Lexique,type=main, style=mylong]
\printglossary[toctitle=Acronyms,type=acronym, style=mylong]

\mainmatter
\chapter{Introduction}
\section{ab}

\gls{pc}; \gls{pc}; \gls{glscard}; \newpage 
\gls{mesh}

\end{document}

第一页:

词汇表和缩写列表图片

文档正文(第 3 页):

PC;PC;基数;

(第 4 页)

促黑素细胞生成素

相关内容