我对乳胶还很陌生。
我已使用包成功格式化了章节标题、节标题和小节标题titlesec
:
\usepackage{titlesec}
\titleformat {\chapter}
[display]
{\normalfont\bfseries}
{\large\thechapter}
{0ex}
{\LARGE \titlerule[1pt] }
\titleformat{\section}
{\normalfont\large\bfseries}
{\thechapter.\thesection}
{1ex}
{}
\titleformat{\subsection}
{\normalfont\bfseries}
{\thechapter.\thesubsection}
{1ex}
{}
但是在生成的目录中,章节和小节没有章节号,而我想要有它。
有什么提示吗?
编辑:我想避免放上所有的主要文件,因为它是一篇论文的模板,里面全是与问题无关的部分,但我不确定哪些是相关的,哪些是不相关的,所以我会把它全部复制下来。很抱歉。
%\documentclass[12pt,a4paper,oneside, titlepage,fleqn,italian]{book} %stampa
\documentclass[12pt,a4paper,twoside,openright,titlepage,fleqn,italian]{book}
\usepackage[italian]{babel}
\usepackage{graphicx}
\usepackage{natbib}
\usepackage[applemac]{inputenc}
\usepackage{amsmath,amssymb,amsthm,graphicx,bm, color, tikz}
\usepackage{epsfig}
\usepackage{epstopdf}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[colorlinks=false]{hyperref}
\usepackage{longtable}
\renewcommand{\thesection}{\arabic{section}}
\addtolength{\voffset}{-0,5cm}
\addtolength{\textheight}{1cm}
\setlength{\parindent}{0pt}
\frenchspacing
\linespread{1.25}
\usepackage{fancyhdr}
\usepackage{algorithm}
\usepackage{algorithmic}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}%
\renewcommand{\sectionmark}[1]{\markright{\thechapter .\thesection\ #1}}%
\renewcommand{\subsectionmark}[1]{\markright{\thechapter .\thesubsection\ #1}}%
\fancyhf{}
\lhead{\rightmark}%
\chead{}%
\rhead{\bfseries\thepage}%
\renewcommand{\headrulewidth}{0.4pt}%
\renewcommand{\footrulewidth}{0pt}%
\newcommand{\tab}{\hspace*{2em}}
\DeclareMathOperator*{\argmax}{arg\,max}
\setlength{\headheight}{15pt}%
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}%
\fancyhead[RO]{\textbf{\thepage}}
\fancyhead[LO]{\nouppercase{\rightmark}}
\usepackage{frontesp} % see frontesp.sty
\usepackage{atbeginend}
\AfterBegin{itemize}{\addtolength{\parskip}{- 9pt}}
\AfterBegin{description}{\addtolength{\itemsep}{- 9pt}}
\AfterBegin{enumerate}{\addtolength{\itemsep}{- 9pt}}
\usepackage[htt]{hyphenat}
\usepackage{titlesec}
\titleformat {\chapter}
[display]
{\normalfont\bfseries}
{\large\thechapter}
{0ex}
{\LARGE \titlerule[1pt] }
\titleformat{\section}
{\normalfont\large\bfseries}
{\thechapter.\thesection}
{1ex}
{}
\titleformat{\subsection}
{\normalfont\bfseries}
{\thechapter.\thesubsection}
{1ex}
{}
\usepackage[font=footnotesize,labelfont=bf]{caption}
\begin{document}
\frontmatter
\title{ title }
\author{ author }
\date{}
\degreeyear{ 2025/26 }
\principaladviser{ teacher }
\firstreader{ reader }
\maketitle
\textcolor{white}{.}
\addtolength{\oddsidemargin}{+1,3cm}
\addtocounter{tocdepth}{+1} % \subsubsection in the table of content
\tableofcontents
\input{preface}
\mainmatter
\input{cap1}
\input{cap2}
\input{cap3}
\input{cap4}
\addtolength{\parskip}{5pt}
\bibliography{bibliografia}
\bibliographystyle{apalike}
% argument is your BibTeX string definitions and bibliography database(s)
\end{document}
PS:如果您有任何建议,欢迎提出!
答案1
您的 MWE 远非最小......
无论如何,我敢打赌你想消除部分编号,就像0.1
这样
\renewcommand{\thesection}{\arabic{section}}
但这会改变整个文档的行为。
所以,正确的做法应该是:
\makeatletter
\renewcommand{\thesection}{\if@mainmatter\thechapter.\arabic{section}\else\arabic{section}\fi}
\makeatother
这样就消除了不需要的零。
此时,你必须\thechapter
从这些行中删除不需要的内容
\titleformat {\chapter}
[display]
{\normalfont\bfseries}
{\large\thechapter}
{0ex}
{\LARGE \titlerule[1pt] }
\titleformat{\section}
{\normalfont\large\bfseries}
{\thechapter.\thesection}
{1ex}
{}
\titleformat{\subsection}
{\normalfont\bfseries}
{\thechapter.\thesubsection}
{1ex}
{}
也就是说,它们必须是:
\titleformat {\chapter}
[display]
{\normalfont\bfseries}
{\large\thechapter}
{0ex}
{\LARGE \titlerule[1pt] }
\titleformat{\section}
{\normalfont\large\bfseries}
{\thesection}
{1ex}
{}
\titleformat{\subsection}
{\normalfont\bfseries}
{\thesubsection}
{1ex}
{}
现在以下 MWE
\documentclass[12pt,a4paper,twoside,openright,titlepage,fleqn,italian]{book}
\usepackage[italian]{babel}
\makeatletter
\renewcommand{\thesection}{\if@mainmatter\thechapter.\arabic{section}\else\arabic{section}\fi}
\makeatother
\usepackage{titlesec}
\titleformat {\chapter}
[display]
{\normalfont\bfseries}
{\large\thechapter}
{0ex}
{\LARGE \titlerule[1pt] }
\titleformat{\section}
{\normalfont\large\bfseries}
{\thesection}
{1ex}
{}
\titleformat{\subsection}
{\normalfont\bfseries}
{\thesubsection}
{1ex}
{}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Intro}
\section{A section}
\mainmatter
\chapter{1st}
\chapter{2nd}
\section{A section}
\subsection{A subsection}
\end{document}
在目录中给出所需结果
以及文档的其余部分
\thechapter
还要记得从行中删除
\renewcommand{\sectionmark}[1]{\markright{\thechapter .\thesection\ #1}}%
\renewcommand{\subsectionmark}[1]{\markright{\thechapter .\thesubsection\ #1}}%
也就是说,把它们写成
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}%
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}}%
答案2
不幸的是,您的代码不完整 - 没有 \begin{document} 和 \end{document},也没有前言。通常,将这些代码包含在您在此处发布的任何代码中是一个好主意,以便响应者可以立即对其进行编译。这是我的代码示例,它执行了我认为您要尝试执行的操作。
您应该能够将其复制并粘贴到新文档中,然后点击编译/处理。但是,您需要多次处理此代码才能正确显示目录。
我还添加了 \pagenumbering{roman} 代码,它使用罗马数字表示目录页,以及 \pagenumbering{arabic} 代码,它使用阿拉伯数字(例如 1、2、3...)表示章节和节。如果您删除这些代码行,报告文档样式将自动从第一页(在本例中为目录页)开始使用阿拉伯数字对所有页面进行编号。
我希望这能有所帮助。
\documentclass[12pt,a4paper]{report}
\begin{document}
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}
\chapter{Your Chapter 1 Title Here}
\section{Your Section Here}
\subsection{Your Sub-section Here}
\chapter{Your Chapter 2 Title Here}
\section{Your Sub-section Here}
\subsection{Your Sub-section Here}
\end{document}