问题
我将命令定义\glsquotation
为:
\newcommand{\glsquotation}[1]{
\paragraph{\gls{#1}:} \glsdesc*{#1}.
}
该命令获取词汇表条目的标签并打印词汇表条目的名称及其描述。名称应链接到词汇表,而描述则不应。
对于第一个条目,它工作正常,但第一个条目之后的每个条目都没有链接到词汇表。我将链接设为蓝色,以便您可以从此屏幕截图中看到它:
此外,词汇表条目描述中包含的链接也丢失了。例如,“Authentizität”定义中的“Objekts”和“Subjekts”,以及“integer”定义中的“unautorisiert”应该链接到不同的词汇表条目。它们在词汇表本身中链接正确。
示例文档
我尽可能地缩减文档的内容,而不破坏任何引用依赖关系,并删除了所有其他命令定义。
\documentclass[a4paper,11pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[a4paper, total={6in, 10in}]{geometry}
\usepackage{booktabs}
\usepackage[colorlinks]{hyperref}
\usepackage[acronym,toc]{glossaries}
\title{UTF-8's Example Document}
\author{UTF-8}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=blue,
urlcolor=black,
pdftitle={\@title},
pdfauthor={\@author},
bookmarks=true
}
\newcommand{\glsquotation}[1]{
\paragraph{\gls{#1}:} \glsdesc*{#1}.
}
\makeglossaries
\newglossaryentry{Objekt}
{
name=Objekt,
plural=Objekte,
description={Siehe \gls{Datenobjekt}},
}
\newglossaryentry{Datenobjekt}
{
name=Datenobjekt,
plural=Datenobjekte,
description={Repräsentiert Informationen},
}
\newglossaryentry{Subjekt}
{
name=Subjekt,
plural=Subjekte,
description={Benutzer eines Systems oder Objekt, das im Auftrag von Benutzern im System aktiv sein kann (z.B. Prozess, Server, Prozedur)},
}
\newglossaryentry{Autorisierung}
{
name=Autorisierung,
plural=Autorisierungen,
description={Besitzt ein \gls{Subjekt} die Berechtigung, auf ein \gls{Objekt} zuzugreifen, so nennt man das Subjekt für diesen Datenzugriff autorisiert},
}
\newglossaryentry{Authentizitaet}
{
name=Authentizität,
plural=Authentizitäten,
description={Echtheit und Glaubwürdigkeit eines \glslink{Objekt}{Objekts} bzw. \glslink{Subjekt}{Subjekts}, die anhand seiner Identität und seiner charakteristischen Eigenschaften überprüfbar ist},
}
\newglossaryentry{vertraulich}
{
name=vertraulich,
description={System ermöglicht keine \glslink{Autorisierung}{unautorisierte} Informationsgewinnung},
}
\newglossaryentry{integer}
{
name=integer,
description={Subjekten ist es nicht möglich, Daten \glslink{Autorisierung}{unautorisiert} und unbemerkt zu manipulieren},
}
\newglossaryentry{verfuegbar}
{
name=verfügbar,
description={Authentifizierte und \glslink{Autorisierung}{autorisierte} \glspl{Subjekt} werden in der Wahrnehmung ihrer Berechtigungen nicht \glslink{Autorisierung}{unautorisiert} beeinträchtigt},
}
\begin{document}
\maketitle
\tableofcontents
\chapter{Chapter}
\section{Section}
\glsquotation{Authentizitaet}\\
Das klassische Schutzziel-Trio besteht aus Vertraulichkeit, Integrität, und Verfügbarkeit:
\glsquotation{vertraulich}
\glsquotation{integer}
\glsquotation{verfuegbar}
\glsaddallunused
\printglossaries
\end{document}
我编写了这个脚本来构建它(但如果没有清理脚本,你显然无法使用清理选项):
# Builds the document specified by 'documentname'.
# Call with option '-c' or '--clean' to clean the top-levl directory before building.
#!/bin/bash
# CONFIGURATION
documentname="ENTER WHAT YOU CALLED THE FILE HERE (WITHOUT FILE EXTENSION)"
# END OF CONFUGURATION
if [ $1 == "-c" ] || [ $1 == "--clean" ]; then
./clean.sh
fi
pdflatex "$documentname.tex"
makeglossaries "$documentname"
pdflatex "$documentname.tex"
pdflatex "$documentname.tex"
makeindex -s "$documentname.ist" -o "$documentname.gls" "$documentname.glo"
pdflatex "$documentname.tex"
echo finished
sleep 2
答案1
这不是一个错误。它是由嵌套链接引起的,glossaries
手册警告了这一点。您的描述包括\gls
和\glslink
,这与相冲突\glsdesc
。
从定义词汇表条目部分:
避免在 、、或键(或它们的复数形式)或您计划通过这些命令访问的任何其他键中使用任何
\gls
-like 或-like 命令。(例如,如果您打算使用 ,则为 键。)否则,您最终会得到嵌套链接,这会导致复杂情况,并且它们无法与大小写更改命令一起使用。您可以在不会通过这些命令访问的键的值中使用它们。例如,如果您不使用 ,则为 键。\glstext
text
first
short
long
symbol
\glssymbol
description
\glsdesc
在这种情况下,没有理由使用\glsdesc*
。只需使用\glsentrydesc
:
\newcommand{\glsquotation}[1]{
\paragraph{\gls{#1}:} \glsentrydesc{#1}.
}