问题
我有以下词汇表条目:
我刚刚创建了该文档,除了测试文本和一些定义外,它是空的。词汇表在第 3 页。如您所见,页码前有一个逗号,链接到引用Datenobjekt
和的条目的位置Objekt
。您还可以看到Objekt
引用Datenobjekt
。
在寻找解决方案的过程中,我遇到了这个问题.\glsaddallunused
已经在文档末尾,当我创建引用的测试文本passives Objekt
(未被其他词汇表条目引用)时,页码前没有出现逗号。因此,这似乎是由于在词汇表条目中引用词汇表条目并\glsaddallunused
在文档中调用而导致的。
如何删除逗号?
示例文档
我尽可能地缩减文档的内容,而不破坏任何引用依赖关系,并删除了所有其他命令定义。
\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
实际上你不必使用\glsaddallunused
。据我所知你也不需要。
您发现某些术语Datenobjekt
未出现在您的词汇表中,因为它没有被明确使用,仅用于另一个术语的初始化。
这里唯一的问题是这makeindex
不是一个无限递归/迭代过程。
如果你只是添加makeindex
对使用递归术语的任何词汇表的调用,你可以继续使用\gls{Datenobjekt}
或\glslink{Datenobjekt}{Datenobjekt}
在你的\newglossaryentry
例如,我可以编译您的文档(仅注释掉)并使用我自己的小编译脚本%\glsaddallunused
进行编译(在我的计算机上):MikTeX
:CheckOS
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (GOTO 32BIT) ELSE (GOTO 64BIT)
:64BIT
ECHO 64-bit compiling
SET MikTexPath=C:\Program Files\MiKTeX 2.9\miktex\bin\x64\
GOTO END
:32BIT
ECHO 32-bit compiling
SET MikTexPath=C:\Program Files\MiKTeX 2.9\miktex\bin\
GOTO END
:END
SET TeXCompilier=xelatex.exe
FOR %%A IN (*.tex) DO (
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
call BibTeXBuild.bat &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.glg" -o "%%~nA.gls" "%%~nA.glo" &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.alg" -o "%%~nA.acr" "%%~nA.acn" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.glg" -o "%%~nA.gls" "%%~nA.glo" &_
"%MikTexPath%makeindex.exe" -s "%%~nA.ist" -t "%%~nA.alg" -o "%%~nA.acr" "%%~nA.acn" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
"%MikTexPath%%TeXCompilier%" "%%~nxA" &_
)
我对运行我的脚本的页面引用没有任何问题,因此将您的脚本更改为以下内容(未经测试)可能会起作用:
# 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"
makeindex -s "$documentname.ist" -o "$documentname.gls" "$documentname.glo"
pdflatex "$documentname.tex"
makeglossaries "$documentname"
makeindex -s "$documentname.ist" -o "$documentname.gls" "$documentname.glo"
pdflatex "$documentname.tex"
pdflatex "$documentname.tex"
pdflatex "$documentname.tex"
echo finished
sleep 2