나는 다음과 같은 ToC를 제작하려고 했습니다.
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
그래서 나는 listof
's glossaries
와 bibliography
ToC를 성공적으로 추가했습니다. 그러나 이제 ToC 링크가 동기화되지 않았습니다. 또한 '의 링크가 listof
더 이상 일치하지 않습니다. 여기에 mwe가 있습니다(참고문헌 없음).
\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}
PDF를 다음과 같이 컴파일합니다.
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
여기서 무엇이 잘못되었나요? ( \cleardoublepage\phantomsection
지금까지 거의 모든 위치를 다른 위치에 두려고 노력했습니다 )
편집 #1:
나는 용어집의 백 링크가 여전히 잘못된 최소한의 mwe로 내장을 제거했습니다.
\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}
편집 #2:
내 컴파일 배치 파일을 공유하고 싶습니다(www에서 좋은 파일을 찾을 수 없습니다).
:: 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
답변1
용어집 및 기타 목록을 삽입하면 페이지 번호가 변경되므로 다음을 수행해야 합니다.
pdflatex
makeglossaries
pdflatex
makeglossaries
pdflatex
최신 정보를 얻으려면.
첫 번째는 makeglossaries
용어집을 생성하지만 첫 번째 LaTeX 실행의 페이지 번호를 사용하므로 페이지 번호를 업데이트하려면 또 다른 LaTeX 실행이 필요하고, 다시 실행하여 makeglossaries
역참조를 업데이트하고 LaTeX를 다시 실행하여 문서를 업데이트해야 합니다.
답변2
다음과 같은 메시지를 받습니다.
pdfTeX warning (ext4): destination with the same identifier (name{chapter.4
}) has been already used, duplicate ignored
무시해서는 안되는 것입니다. 동일한 번호의 챕터가 있기 때문에 발생합니다.
추가하면 해결 가능
\renewcommand\theHchapter{\thechapter}
하고 난 후 \renewcommand{\thechapter}{\Roman{chapter}}
. 이러한 방식으로 hyperref
챕터에 대한 고유한 내부 식별자를 사용하고 동기화된 상태로 반환됩니다.