Como faço para mostrar glossários no sharelatex?
Aqui está meu documento simplificado.
Meu main.tex
:
\input{header}
\makeglossaries
\input{glossar}
\begin{document}
\frontmatter
\begin{abstract}
In dieser Arbeit wurden die Zusammenhänge zwischen der Knochendichte, Porosität und dielektrischer Permittivität von Spongiosa untersucht.
\end{abstract}
%\listofacronyms
%\listofsymbols
\printglossaries
\tableofcontents
\mainmatter
Die komplexe Permittivität \underline{\gls{Perm}} eines Materials kann in der folgenden Form ausgedrückt werden:
\glsaddall
\backmatter
\listoffigures
\listoftables
\literature
\end{document}
Meu header.tex
:
%!TEX root = main.tex
\documentclass[a4paper,
color,
nocolortitle,
twoside,
german, %nogerman
serifmath,
12pt,
noproprietaryfonts,
thesis,
] {tudbook}
% Typographie
\usepackage{morewrites}
\usepackage{microtype}
\usepackage{multicol}
\usepackage{textcomp}
% Sprachanpassungen
\usepackage[babel]{csquotes}
% Bild- und Tabellenunterschriften
\usepackage[twoside, margin={0.5cm,0.5cm}]{caption}
\usepackage{float}
\usepackage{enumitem}
\setlist{nosep,noitemsep}
% Formeln und Mathe
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{upgreek}
\usepackage{siunitx}
\addto\extrasgerman{\sisetup{locale=DE}}
\def\mathbi#1{\boldsymbol{#1}}
% Tabellen
\usepackage{booktabs}
% Referenzierung
\usepackage[colorlinks,linkcolor=black,citecolor=black,urlcolor=HKS41-30]{hyperref}
\usepackage{nameref}
% Einbindung ganzer PDF-Seiten
\usepackage{pdfpages}
% Farbige Absätze
\usepackage[backend=biber,style=numeric-comp,hyperref=true,backref=true]{biblatex}
\usepackage{lipsum}
\bibliography{bibliographie.bib}
% Zeilenabstand
\renewcommand{\arraystretch}{1.2}
% Spaltenabstand
\setlength{\columnsep}{1.3pc}
\usepackage{enumitem}
\setlist{nosep,noitemsep}
\usepackage[utf8]{inputenc}
\usepackage{glossaries}
Meu glossar.tex
:
\newglossaryentry{Perm}{name=\ensuremath{{\epsilon}},description={Komplexe relative Permittivität des Mediums}
unit={$\frac{F}{m}$},
type=symbolslist}
O exemplo mínimo funciona, mas não aquele com cabeçalho:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{glossaries}
\title{EjGlos}
\begin{abstract}
In dieser Arbeit wurden die Zusammenhänge zwischen der Knochendichte, Porosität und dielektrischer Permittivität von Spongiosa untersucht.
\end{abstract}
\newglossaryentry{Perm}{name=\ensuremath{{\epsilon}},description={Komplexe relative Permittivität des Mediums}
unit={$\frac{F}{m}$}}
\makeglossaries
\begin{document}
\maketitle
\section{1}
Die komplexe Permittivität \underline{\gls{Perm}} eines Materials kann in der folgenden Form ausgedrückt werden:
\printglossaries
\end{document}
Também sharelatex.com/project/5955f9a5ade7f36849037653 É público e editável.
Responder1
Parece que a tudbook
classe carrega automaticamente glossaries
com a xindy
opção (e também \makeglossaries
¹ para que você possa remover \usepackage{glossaries}
e \makeglossaries
do seu header.tex
arquivo).
O .glg
arquivo de transcrição contém o erro:
ERROR: CHAR: index 0 should be less than the length of the string
*** Unable to execute: '"xindy" -L german -C din5007-utf8 -I xindy -M "output" -t "output.glg" -o "output.gls" "output.glo"' ***
Deglossaries
Perguntas frequentes:
O que significa o erro xindy "CHAR: o índice 0 deve ser menor que o comprimento da string"?
xindy
descarta todos os comandos e chaves da string de classificação. Se sua string de classificação (especificada pelasort
chave ou pelaname
chave) consistir apenas em comandos, ela será tratadaxindy
como uma string de classificação vazia, que produz uma mensagem de erro nas versões mais recentes doxindy
. Por exemplo, o seguinte causará um problema:\newglossaryentry{alpha}{name={\ensuremath{\alpha}}, description=alpha}
Use uma chave de classificação diferente para a entrada, por exemplo:
\newglossaryentry{alpha}{sort=alpha, name={\ensuremath{\alpha}}, description=alpha}
ou, se todas as entradas forem assim, você pode preferir usar as opções de pacote
sort=use
ou .sort=def
Veja oOpções de classificaçãoseção do manual do usuário para obter mais detalhes sobre a opção de classificação.
Então você precisa adicionar uma sort
chave à sua entrada:
\newglossaryentry{Perm}{name=\ensuremath{{\epsilon}},description={Komplexe relative Permittivität des Mediums}
unit={$\frac{F}{m}$},
sort={epsilon},
type=symbolslist}
A razão pela qual você não tem problemas com seu MWE é porque ele está usando makeindex
em vez de xindy
.
¹Não recomendo esta prática em arquivos de classe pois existem alguns comandos que devem ser colocados antes de \makeglossaries
, como \newglossary
, portanto esta classe não permitirá que você defina seus próprios glossários customizados.