我的意思是有如下目录:
第十章 引言
第十章 摘要
第十章 问候
其中“X”是 LaTex 自动输入的数字。
我所得到的只是以下输出,但我手动添加了“Capítulo 1。”
以下是我导入到项目中的所有包,以及我的\documentclass
\documentclass[12pt, letterpaper, twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[top=25mm, bottom=25mm,right=25mm,left=30mm]{geometry}
\usepackage{ragged2e}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage{import}
\usepackage{enumerate}
\usepackage{tabularx,ragged2e,booktabs,caption}
\usepackage{multirow}
\graphicspath{{images/}}
\usepackage[babel]{csquotes}
\usepackage[backend=biber,style=apa]{biblatex}
\DeclareLanguageMapping{spanish}{spanish-apa}
\addbibresource{Bibliography.bib}
我正在按如下方式导入.tex
文件\import{pathtofile}{filename}
\import{part_1_introduction/}{introduction.tex}
\import{part_1_introduction/}{issue_statement.tex}
\import{part_1_introduction/}{justification.tex}
\import{part_1_introduction/}{general_objective.tex}
每个文件的最开头都包含以下命令
\part{Parte II. Estado del arte}
或者
\chapter{Marco conceptual}
答案1
您可以修补宏以在章节号前\chapter
写入。只需将其添加到您的序言中:Capítulo~
\usepackage{etoolbox}
\makeatletter
\patchcmd\@chapter
{\numberline {\thechapter }}
{\@chapapp~ \numberline {\thechapter }}
{}{\FAIL}
\makeatother
上面的代码使用了\patchcmd
来自的命令etoolbox
。\patchcmd
它接受四个参数:
\patchcmd{<command>}{<find>}{<replace>}{<success>}{<fail>}
它搜索<find>
定义的第一次出现<command>
,如果找到,则替换为<replace>
并执行<success>
代码。否则执行<fail>
代码。
我将上面的补丁应用到\@chapter
宏中,该宏在book
类中包含
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
在文件中写入一行,.toc
将当前章节添加到目录中。
补丁程序搜索\numberline{\thechapter}
(将章节号变白)并\@chapapp~
在其前面插入。当您用西班牙语写作时\@chapapp
是一个单词,但在其他语言中则是其他内容,并且是一个空格。Capítulo
~
代码<success>
为空,因为我们不想\patchcmd
执行任何其他操作。另一方面,失败代码包含\FAIL
(未定义),因此如果由于任何原因补丁失败,则会\patchcmd
向您发出警告,而不是默默忽略失败的补丁。
可编译示例:
\documentclass[12pt, letterpaper, twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[top=25mm, bottom=25mm,right=25mm,left=30mm]{geometry}
\usepackage{ragged2e}
\usepackage{graphicx}
\usepackage[table]{xcolor}
\usepackage{import}
\usepackage{enumerate}
\usepackage{tabularx,booktabs,caption}
\usepackage{multirow}
\graphicspath{{images/}}
\usepackage[babel]{csquotes}
\usepackage[backend=biber,style=apa]{biblatex}
\DeclareLanguageMapping{spanish}{spanish-apa}
% \addbibresource{Bibliography.bib}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@chapter
{\numberline {\thechapter }}
{\@chapapp~ \numberline {\thechapter }}
{}{\FAIL}
\makeatother
\usepackage{blindtext}% Dummy text for the example
\begin{document}
\tableofcontents
\blinddocument
\end{document}
答案2
以下是使用包的另一个建议tocbasic
:
\documentclass{book}
\usepackage{blindtext}% only for dummy text
\usepackage{tocbasic}
\DeclareTOCStyleEntry[
entrynumberformat=\entryprefix{\chaptername},% adds the prefix
dynnumwidth% calculates the needed numberwidth
]{tocline}{chapter}
\newcommand*\entryprefix[2]{#1~#2~}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\chapter{Chapter title with many words, so it is longer than one line and needs a second line}
\end{document}
运行三次即可获得
请注意,条目的第二行与第一行的文本对齐。
答案3
使用tocloft
包:
\usepackage{tocloft}
\renewcommand{\cftchappresnum}{Capitulo }
将在目录中的章节号前放置 Capitulo 和一个空格。