Verweise auf einen Abschnitt sind unproblematisch, Verweise auf ein Kapitel führen jedoch zu merkwürdigen Abständen nach der Kapitelnummer. Siehe beigefügtes Bild:
Das ist mein Code
\documentclass[12pt,a4paper,twoside,fleqn,openright]{book}
% use quite a lot of packages
\usepackage{amsfonts,amssymb,amsmath,bm}
\usepackage{enumerate}
\usepackage[section]{placeins}
\usepackage{float}
\usepackage[slovene]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage[customcolors]{hf-tikz}
\usepackage{fancyhdr}
\usepackage{longtable}
\usepackage{hyperref}
\usepackage{ifoddpage}
\usepackage{tikz}
\usepackage{tocloft}
\usepackage{titlesec}
\usepackage{pdfpages}
\usepackage{nameref}
\usepackage{multirow}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{enumitem}
\usepackage[numbib]{tocbibind}
\usepackage{url}
\usepackage{cite}
\usepackage{upgreek}
\usepackage[inner=30mm,
outer=25mm,
top=30mm,
bottom=25mm]{geometry}
% paragraph settings
\setlength\parindent{0pt}
\setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex}
% set equation environment indentation
\setlength{\mathindent}{0.5cm}%
% set itemize environment whitespacing and left margin
\setlist[itemize]{noitemsep,nolistsep, leftmargin=*}
% set table and figure captions
\captionsetup[table]{skip=10pt,singlelinecheck=false}
\captionsetup[figure]{justification=centering}
% set tablename to Preglednica
\AtBeginDocument{%
\renewcommand\tablename{Preglednica}
}
% command for multiline cell in table
\newcommand{\minitab}[2][l]{\begin{tabular}{#1}#2\end{tabular}}
\newcommand{\vect}[1]{\boldsymbol{\mathbf{#1}}}
% set section and tableofcontents depth
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\def\labelitemi{--}
% accordingly format a chapter definition
\titleformat{\chapter}[display]
{\bfseries}{}{0pt}{\Huge\thechapter}
% set fancy_nohead fancy header
\fancypagestyle{fancy_nohead}{
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\chead{}
\cfoot{}
}
% assign no_header
\assignpagestyle{\chapter}{fancy_nohead}
% section and chapter formatting
\renewcommand{\thechapter}{\arabic{chapter}.\quad}
\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}.}
\renewcommand{\thesubsection}{\thesection\arabic{subsection}.}
\renewcommand{\thesubsubsection}{\thesubsection\arabic{subsubsection}.}
\renewcommand{\thetable}{\arabic{chapter}.\arabic{table}}
\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}
\renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}}
\renewcommand\labelenumi{(\theenumi)}
\DeclareMathOperator{\E}{\mathbb{E}}
\def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;}
\begin{document}
\chapter{Test}\label{cha:test}
Something written here.
\chapter{New test}\label{cha:new_test}
Reference to Chapter \ref{cha:test} \nameref{cha:test}.
\end{document}
Und eine Zeile muss problematisch sein, denn das einfache Schreiben
\documentclass[12pt,a4paper,twoside,fleqn,openright]{book}
\usepackage[slovene]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\begin{document}
\chapter{Test}\label{cha:test}
Something written here.
\chapter{New test}\label{cha:new_test}
Reference to Chapter \ref{cha:test} \nameref{cha:test}.
\end{document}
ist kein Problem mehr.
Hat jemand eine Idee, welches der Pakete problematisch ist oder kennt vielleicht einen Workaround?
Antwort1
Hier geht es darum , die chapter
Darstellung des Zählers zu ändern. Das heißt, die Zeile
\renewcommand{\thechapter}{\arabic{chapter}.\quad}
bewirkt, dass der zusätzliche Abstand (a \quad
) zu Ihrer Referenz hinzugefügt wird. Höchstwahrscheinlich haben Sie die Neudefinition vorgenommen, \thechapter
weil Sie in der eigentlichen Kapitelüberschrift etwas mehr Abstand zwischen der Kapitelnummer und dem Titel wünschen. Dies erreichen Sie durch die Verwendung vontitlesec
'S \titleformat
:
\titleformat{\chapter}[display]
{\bfseries}{}{0pt}{\Huge\thechapter.\quad}
Da Ihre anderen Neudefinitionen von Abschnittsnummern mit enden .
, werden Verweise auf diese auch einen Punkt enthalten .
, was nicht ideal ist. Definieren Sie stattdessen diehierarchischUndohneder abschließende Punkt. Fügen Sie den abschließenden Punkt stattdessen als Teil der Abschnittsanzeige hinzu. Eine Möglichkeit besteht darin, ihn neu zu definieren \@seccntformat
(sieheWie füge ich nach der Abschnittsnummer einen Punkt hinzu?):
\makeatletter
\renewcommand{\@seccntformat}[1]{#1.}
\makeatother
Mit hierarchisch meine ich die Verwendung \the...
für jeden übergeordneten Zähler in der untergeordneten Zählerdarstellung:
\renewcommand{\thechapter}{\arabic{chapter}}
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}
\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}
Der obige Befehlssatz ist etwas überflüssig, da dies book
ohnehin die Standardeinstellung für die Klasse ist.
Antwort2
Ihr Problem ist, dass Sie \quad
in Ihrer Definition von ein (das horizontalen Abstand erzeugt) haben \thechapter
. Entfernen Sie es und Sie sind fertig. Wenn Sie innerhalb der Kapitelzeile etwas Abstand hinzufügen möchten, verwenden Sie titlesec
oder ein ähnliches Paket (oder sehen Sie sichHier).
Und die anderen Zeilen, die Befehle erneuern, sollten wahrscheinlich durch ein und dann viele \theX
ersetzt werden .\usepackage{chngcntr}
\counterwithin{X}{chapter}
Vielleicht können Sie auch die Verwendung so vieler Pakete überdenken. Wahrscheinlich nutzen Sie nicht alle davon. Versuchen Sie, die unnötigen zu entfernen. Ein Beispiel ist float
which dient eigentlich nur dazu, die Float-Option bereitzustellen H
, die nicht verwendet werden sollte (sieheHier).