Ich habe versucht, ein Inhaltsverzeichnis wie dieses zu erstellen:
I Symbol Glossary
II Acronyms
1. Chapter 1
1.1 Section 1
2. Chapter 2...
...
III List of Figures
IV List of Tables
V Bibliography
Also habe ich die listof
's glossaries
und bibliography
erfolgreich zum Inhaltsverzeichnis hinzugefügt. Aber jetzt sind die Inhaltsverzeichnis-Links nicht mehr synchron. Auch die Links in den listof
's stimmen nicht mehr überein. Hier ist ein mwe (ohne Bibliographie)
\RequirePackage[l2tabu,orthodox]{nag}
\documentclass
[
pdftex ,
a4paper ,
oneside ,
12pt ,
halfparskip ,
headsepline ,
footsepline ,
listof=totocnumbered ,
bibliography=totocnumbered ,
numbers=noenddot ,
]{scrbook}
\usepackage[]{amsmath,amssymb}
\usepackage[]{graphicx}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[]{color}
\usepackage
[
a4paper ,
top=3.6cm ,
bottom=3.6cm ,
left=3.6cm ,
right=3.6cm ,
]{geometry}
\usepackage[]{microtype}
\usepackage{setspace}
\usepackage[]{ftnxtra}
\usepackage{hyperref}
\usepackage
[
nomain ,
toc ,
indexonlyfirst ,
numberedsection ,
]{glossaries}
\usepackage
[
block=par ,
backend=biber ,
safeinputenc ,
backref ,
]{biblatex}
\onehalfspacing
\KOMAoptions{draft=on}
\setlength\parindent{0pt}
\definecolor{blue}{rgb}{ 0.0 , 0.0 , 1.0 }
\hypersetup
{
colorlinks = true ,
linkcolor = blue ,
citecolor = blue ,
filecolor = blue ,
menucolor = blue ,
urlcolor = blue ,
bookmarksnumbered = true ,
}
\newglossary[sym.glg]{sym}{sym.gls}{sym.glo}{Symbolverzeichnis}
\newglossary[acr.glg]{acr}{acr.gls}{acr.glo}{Abkürzungsverzeichnis}
\makeglossaries
\newglossaryentry{bla2}
{
text = {bla2} ,
name = {bla2} ,
plural = {bla2} ,
description = {bla2bla2bla2bla2bla2} ,
type = {acr} ,
sort = {bla2} ,
}
\newglossaryentry{bla1}
{
text = {bla1} ,
name = {bla1} ,
plural = {bla1} ,
description = {bla1bla1bla1bla1bla1} ,
type = {sym} ,
sort = {bla1} ,
}
% \addbibresource{eli_bib.bib}
\title{\textbf{Title}}
\begin{document}
\pagenumbering{arabic}
\maketitle
\thispagestyle{empty}
\renewcommand{\contentsname}{Inhaltsverzeichnis}
\renewcommand\thechapter{\Roman{chapter}}
\cleardoublepage\phantomsection
\tableofcontents
\cleardoublepage\phantomsection
\printglossary[type=acr,title=Abkürzungsverzeichnis]
\cleardoublepage\phantomsection
\printglossary[type=sym,title=Symbolverzeichnis]
\renewcommand\thechapter{\arabic{chapter}}
\setcounter{chapter}{0}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\gls{bla1} blablabla \gls{bla2}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\chapter{test}\section{test}
\renewcommand\thechapter{\Roman{chapter}}
\setcounter{chapter}{3}
\cleardoublepage\phantomsection
\listoftables
\cleardoublepage\phantomsection
\listoffigures
\cleardoublepage\phantomsection
\printbibliography[title=Literaturverzeichnis]
\end{document}
Ich kompiliere das PDF folgendermaßen:
pdflatex -interaction=batchmode -draftmode %doc%.tex
makeindex -s %doc%.ist -t %doc%.sym.glg -o %doc%.sym.gls %doc%.sym.glo
makeindex -s %doc%.ist -t %doc%.acr.glg -o %doc%.acr.gls %doc%.acr.glo
biber %doc%
pdflatex -interaction=batchmode -draftmode %doc%.tex
pdflatex -interaction=batchmode -synctex=1 %doc%.tex
Was ist hier schiefgelaufen? (Ich habe \cleardoublepage\phantomsection
bisher sogar versucht, fast alles an eine andere Position zu bringen)
BEARBEITEN #1:
Ich habe das Wesentliche auf ein minimales MWE reduziert, wobei die Backlinks in den Glossaren immer noch falsch sind:
\documentclass[oneside]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{color,hyperref}
\usepackage[nomain]{glossaries}
\newglossary[sym.glg]{sym}{sym.gls}{sym.glo}{Symbolverzeichnis}
\newglossary[acr.glg]{acr}{acr.gls}{acr.glo}{Abkürzungsverzeichnis}
\makeglossaries
\newglossaryentry{bla2}{name={bla2},description={bla2bla2bla2bla2bla2},type={acr}}
\newglossaryentry{bla1}{name={bla1},description={bla1bla1bla1bla1bla1},type={sym}}
\begin{document}
\printglossary[type=acr]\printglossary[type=sym]
\chapter{test}\section{test}\chapter{test}\section{test}
\gls{bla1} blablabla \gls{bla2}
\chapter{test}\section{test}\chapter{test}\section{test}
\end{document}
BEARBEITEN #2:
Ich möchte meine Kompilierungs-Batchdatei freigeben (ich konnte im WWW keine gute finden):
:: sumatrapdf.exe is in miktex/miktex/bin
:: biber.exe in miktex/miktex/bin
:: sumatrapdf: einstellungen > optionen : 'pfad/zu/sublime_text.exe %f:%l:100000' eintragen
:: call this batch file like: 'tex.bat myTexFile' (myTexFile without any extension)
@echo off
setlocal
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
set path=%path%;%miktexpath%;
call :deletetemporaries
call :compile
goto final
:compile
echo ! Begin Compilation
call :buildtex
if errorlevel 1 (
call :syntaxerror
) else (
call :buildglossaries
call :buildbib
call :buildtex
call :buildglossaries
call :buildpdf
call :showpdf
call :deletetemporaries
)
:deletetemporaries
echo ! Delete temporaries
del /s *glg >nul 2>&1
del /s *gls >nul 2>&1
del /s *glo >nul 2>&1
del /s *blg >nul 2>&1
del /s *bbl >nul 2>&1
del /s *toc >nul 2>&1
del /s *out >nul 2>&1
del /s *log >nul 2>&1
del /s *lot >nul 2>&1
del /s *lof >nul 2>&1
del /s *ist >nul 2>&1
del /s *bcf >nul 2>&1
del /s *aux >nul 2>&1
del /s *run.xml >nul 2>&1
goto end
:buildglossaries
makeindex -s %document%.ist -t %document%.sym.glg -o %document%.sym.gls %document%.sym.glo 2>nul
makeindex -s %document%.ist -t %document%.acr.glg -o %document%.acr.gls %document%.acr.glo 2>nul
makeindex -s %document%.ist -t %document%.idx.glg -o %document%.idx.gls %document%.idx.glo 2>nul
goto end
:buildpdf
pdflatex -interaction=batchmode -synctex=1 %document%.tex 1>nul
echo.
goto end
:buildtex
pdflatex -interaction=batchmode -draftmode %document%.tex 1>nul
goto end
:buildbib
biber %document% 2>nul
goto end
:syntaxerror
pdflatex -draftmode %document%.tex
echo ! Compilation failed
goto end
:showpdf
SumatraPDF -reuse-instance %document%.pdf 1>nul
goto end
:final
echo ! Compile done
echo.
exit
:end
goto:eof
Antwort1
Durch das Einfügen der Glossare und anderer Listen ändern sich die Seitenzahlen. Daher müssen Sie Folgendes tun:
pdflatex
makeglossaries
pdflatex
makeglossaries
pdflatex
um sie auf den neuesten Stand zu bringen.
Der erste makeglossaries
generiert die Glossare, verwendet jedoch die Seitenzahlen aus dem ersten LaTeX-Durchlauf. Sie benötigen daher einen weiteren LaTeX-Durchlauf, um die Seitenzahlen zu aktualisieren. Anschließend müssen Sie den Durchlauf erneut ausführen, makeglossaries
um die Rückverweise zu aktualisieren, und LaTeX erneut ausführen, um das Dokument zu aktualisieren.
Antwort2
Sie erhalten Nachrichten mit etwa folgendem Inhalt:
pdfTeX warning (ext4): destination with the same identifier (name{chapter.4
}) has been already used, duplicate ignored
die nicht ignoriert werden sollten. Sie werden durch Kapitel mit der gleichen Nummer verursacht.
Sie können es lösen, indem Sie hinzufügen
\renewcommand\theHchapter{\thechapter}
nachdem Sie dies getan haben \renewcommand{\thechapter}{\Roman{chapter}}
. Auf diese Weise hyperref
wird eine eindeutige interne Kennung für die Kapitel verwendet und die Rückkehr erfolgt synchron.