LaTeX 用語集参照の問題

LaTeX 用語集参照の問題

修士論文では、略語と記号をすべて記録するために用語集パッケージを使用しています。この 2 つを区別するために、2 つの異なる用語集を作成しました。1 つは標準の略語パッケージを使用したもので、もう 1 つは自分で定義した記号リストです (記号用、単位用、説明用、ページ用の 4 つの列が必要だったため、独自のスタイルを使用しました)。

また、ローマ字とアラビア数字の両方を使用しています。(記号) 用語集の参照をクリックすると、テキスト内の場所に正しくリダイレ​​クトされます。ただし、テキスト内の (記号) 参照をクリックすると、(記号リスト内の正しい場所ではなく) 最初のページにリダイレクトされます。

ただし、略語リストの場合は正しく機能します。エラーは、新しいスタイルの定義にあるはずです。番号の変更を削除しても、最初のページにリダイレクトされます。

hyperrefname問題は解決されないようです。どうすれば解決できますか?

私は最小限の動作例(MWE) は、すべてのパッケージと Perl コンパイラを使用して実行できます。

\documentclass[a4paper]{book}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=Maroon, citecolor=ForestGreen, filecolor=magenta, urlcolor=magenta, hypertexnames=false}

%% Glossary properties
\usepackage[nomain,acronym,toc,section]{glossaries}
\newglossary{symbol}{sbl}{smb}{Symbols}
\usepackage{array}
\makeglossaries
\usepackage[xindy]{imakeidx}
\makeindex

%% My own glossary to display the units
\newglossarystyle{tabx4col}{%
% Put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\begin{longtable}{@{}p{0.12\textwidth}@{}p{0.12\textwidth}@{}p{0.56\textwidth}rp{0.15\textwidth}}}%
{\end{longtable}}%
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{\textbf{##1}}{\textbf{##2}}% Name
 & $[$\glsentryuseri{##1}$]$% Units
 & ##3% Description
 & ##5% Page list
        \\% end of row
}%
%% Nothing between groups:
\renewcommand*{\glsgroupskip}{}%
}

%% Abbreviations
\newacronym{abr1}{ABR1}{Abbreviation 1}
\newacronym{abr2}{ABR2}{Abbreviation 2}

%% Symbols
\newglossaryentry{sym1}
{%
  type=symbol,
  name={\ensuremath{\alpha}},
  description={The first symbol, with a very long description that spans multiple lines},
  user1={kg},
  sort=alpha
}
\newglossaryentry{sym2}
{%
  type=symbol,
  name={\ensuremath{\beta}},
  description={the second symbol},
  user1={m},
  sort=beta
}

\begin{document}
\pagenumbering{roman}
\tableofcontents
{\let\cleardoublepage\clearpage
    \chapter*{List of abbreviations and symbols}
    \addcontentsline{toc}{chapter}{List of abbreviations and Symbols}
    \printglossary[type=\acronymtype,title=Abbreviations,toctitle=Abbreviations]
    \printglossary[type=symbol,style=tabx4col]
}
\chapter{Introduction}
\pagenumbering{arabic}
\gls{abr1} \gls{abr2} \gls{sym1} \gls{sym2}
\chapter{First chapter}
\gls{abr1} \gls{abr2} \gls{sym1} \gls{sym2}
\end{document}

答え1

テスト ファイルは、hyperref次のような複数の警告を生成します。

pdfTeX warning (dest): name{glo:sym1} has been referenced but does not exist, 
replaced by a fixed one

これは少し不可解ですが、ハイパーリンク ターゲット メカニズムglossariesに何らかの問題が発生している可能性があります。このリンクが存在しないために、ハイパーリンクがドキュメントの最初のページに移動します。コマンドは、このハイパーリンクを用語集スタイルで設定します。最初の引数はエントリのラベルである必要があり、ここに問題があります。glossaries\glstarget

\glstarget{\textbf{##1}}{\textbf{##2}}% Name

最初の引数の\textbfはターゲット メカニズムを混乱させます。問題を解決するには、これを削除するだけです。

\glstarget{##1}{\textbf{##2}}% Name

関連情報