我想要一个内容表,其编号与文本中的编号相同。因此,在文本中,每个section / subsection / subsubsection被编号为'1'。或'1.1。'或'1.1.1。'。但是我的目录没有更新它,所以它显示'1'或'1.1'。
我正在回答这个话题:https://superuser.com/questions/811779/how-to-add-a-dot-for-section-subsection-numbering-in-tex 所以我使用'secdot'包。我尝试过使用
\renewcommand{\thechapter}{\arabic{chapter}.}
\renewcommand{\thesection}{\thechapter\arabic{section}.}
但我一直得到'\章未定义','没有计数器章节定义'或'缺少数字,被视为零'错误。
我很感激任何有关错误的提示。
编辑:
\documentclass[11pt, a4paper, twoside]{article}
\usepackage{listings, lstautogobble}
\usepackage{ragged2e}
\usepackage{times}
\usepackage{secdot}
\sectiondot{subsection}
\usepackage{listings}
\usepackage[toc,page]{appendix}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\geometry{a4paper,
left=30mm,
top=25mm,
bottom=25mm,
right=20mm
}
\sectiondot{subsection}
\makenomenclature
\setlength{\parindent}{0.5 cm}
\renewcommand{\baselinestretch}{1.15}
\pagenumbering{roman}
\begin{document}
\setboolean{@twoside}{false}
\begin{figure}[H]
\begin{center}
\includegraphics[width=14cm,height=15cm,keepaspectratio]{./thesis- frontpagedesign}
\end{center}
\end{figure}
\begin{center}
\tableofcontents
\end{center}
\begin{center}
\listoffigures
\end{center}
\section{Introduction}
%sometext
\makeatletter
\def\@seccntformat#1{%
\expandafter\ifx\csname c@#1\endcsname\c@section\else
\csname the#1\endcsname\quad
\fi}
\makeatother
\end{document}
答案 0 :(得分:1)
您当前的设置令人困惑。例如,
\makeatletter
\def\@seccntformat#1{%
\expandafter\ifx\csname c@#1\endcsname\c@section\else
\csname the#1\endcsname\quad
\fi}
\makeatother
删除任何\section
号码的设置。将此与secdot
的使用相混合似乎存在问题。
在文本和ToC中的分段单位数之后获得点的最简单方法是调整各个计数器的表示形式:
\documentclass{article}
\renewcommand{\thesection}{\arabic{section}.}
\renewcommand{\thesubsection}{\thesection\arabic{subsection}.}
\renewcommand{\thesubsubsection}{\thesubsection\arabic{subsubsection}.}
\begin{document}
\tableofcontents
\section{Introduction}
\end{document}
此解决方案已足够,但也会影响\ref
。例如,\ref{sec:introduction}
会返回1.
,这句话在句子中间看起来很奇怪:... from section~\ref{sec:introduction} we can see ...
。
如果您不希望句点结束\ref
,则可以使用
\usepackage{secdot}% Adds . after sectional unit numbers
\usepackage{etoolbox}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\numberline}{\hfil}{.\hfil}{}{}
您已经熟悉了secdot
所做的事情。 \numberline
的补丁归功于etoolbox
,它更改了默认定义
\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
到
\def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}
有效地插入结束时段作为在ToC中打印的数字的一部分。请注意,这也会影响在LoF / LoT中显示数字/表格的方式。但是,可以使用范围来改变它:
\begingroup
% The following patch will only affect entries in the ToC
\patchcmd{\numberline}{\hfil}{.\hfil}{}{}
\tableofcontents
\endgroup
\listoffigures
\listoftables