更改西班牙语目录标题时出现的问题

更改西班牙语目录标题时出现的问题

如果有人能为我的问题提供一些答案,我将不胜感激。我已经阅读和搜索了 Web 和 StackExchange 一段时间,并尝试了几种可能的解决方案,但是,它们都不起作用。

我正在尝试更改西班牙语目录的标题(顺便说一下,我正在使用 babel 包),默认情况下该标题为“Contenido”,我想将其更改为“Índice”。我阅读了 babel 包文档,但仍然无法更改它。

在我的情况下,phstylee.cls 是必需的,因为我正在写论文。下面您可以看到初始化和有问题的部分。

\documentclass[11pt,letterpaper,twoside]{phstylee}
\usepackage{array}
\usepackage{epsfig}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsxtra}
\usepackage{varioref}
\usepackage{multicol}
\usepackage{float}
\usepackage{rotate}
\usepackage{color}
\usepackage{subcaption}     %para usar multiples figuras con multiples captions
% \usepackage{subfigure}
\usepackage{enumerate}
\usepackage[mathscr]{eucal}
\usepackage{xfrac}
\usepackage{mathrsfs}
\usepackage[spanish,es-tabla]{babel}
\usepackage[latin1]{inputenc}
\usepackage[font={small}]{caption}
\usepackage{mathtools}  % para subequations
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage[flushleft]{threeparttable}
\usepackage{color, colortbl}
\definecolor{Gray}{gray}{0.8}
\usepackage[algoruled,linesnumbered,noline,algosection]{algorithm2e}

\renewcommand{\arraystretch}{1.1} % Changes Tabular's box size. Ojo que cambia tambien el 

\addto\captionsspanish{%
\def\bibname{Referencias}%
\def\tablename{Tabla}%
\def\listfigurename{ÍNDICE DE FIGURAS}
\def\listtablename{ÍNDICE DE TABLAS}
\def\spanishcontentsname{ÍNDICE}
\def\contentsname{ÍNDICE}
}
\renewcommand{\listfigurename}{ÍNDICE DE FIGURAS}
\renewcommand{\listtablename}{ÍNDICE DE TABLAS}
\renewcommand{\spanishcontentsname}{ÍNDICE}
\renewcommand{\contentsname}{ÍNDICE}

\renewcommand{\floatpagefraction}{0.99} % figures using 90% or more of the available space in a page will become in a new pure-image page. 

\allowdisplaybreaks

\addtolength{\textheight}{00mm}\addtolength{\voffset}{-20mm}
 \linespread{1.2}


\begin{document}
%\renewcommand{\spanishcontentsname}{\'Indice}
%=============================================================================
%------------------------- TITLE ---------------------------
%\setcounter{tocdepth}{2}
%
%\cleardoublepage
%\input{0_FirstPage.tex}
%
%\cleardoublepage
%\input{0_Title.tex}
%\cleardoublepage
%
%\pagestyle{fancyplain}
\pagenumbering{roman}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------------------- ACKNOWLEDGMENT ---------------------
%\onehalfspacing
%\cleardoublepage
%\input{Acknowledgment.tex}
%------------------------- ABSTRACT ------------------------
%\linespread{1.2}
%\cleardoublepage
%\input{Abstract.tex}
%-------------------------- INDEX --------------------------
\linespread{1.4}

\cleardoublepage
\tableofcontents

\cleardoublepage
\listoffigures

\cleardoublepage
\listoftables

\linespread{1.3}
%------------------------- CHAPTERS ------------------------
\cleardoublepage
\pagenumbering{arabic}

\end{document}

到目前为止,我发现的可能的解决方案是 \renewcommand{\spanishcontentsname}{ÍNDICE}\renewcommand{\contentsname}{ÍNDICE}对于旧的 babel,以及\addto\captionsspanish{% \def\spanishcontentsname{ÍNDICE} \def\contentsname{ÍNDICE} }

有趣的是,我设法更改了图表列表和表格列表的名称,但没有更改目录的名称。我提前为问题的长度以及拼写和语法错误道歉。任何评论、建议和帮助都将不胜感激。谢谢

更新:我的一个朋友也遇到了同样的问题,并给我发送了另一个phstylee.cls文件。我刚刚把它放入我的主文件夹,然后就出现了,它改变了目录名称和其他几个小的美观问题。所以现在解决了。

附言:非常感谢 Mico 抽出时间。

答案1

文档类phstyle提供了以下相当特殊的宏重新定义\tableofcontents

\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
 \fi\thispagestyle{plain} \@makeschapterhead{Contents} 
 \@afterheading
 \@starttoc{toc}\if@restonecol\twocolumn\fi}

观察硬编码的字符串Contents。关于这个重新定义,也许最好的说法是它不可能从babel用户的需求出发。

解决办法是什么?只需将以下代码添加到文档的序言中:

\usepackage{etoolbox}
\patchcmd{\tableofcontents}{Contents}{\'Indice}{}{}

完整的 MWE:

在此处输入图片描述

\documentclass{phstyle} 
\usepackage{etoolbox} % for '\patchcmd' macro
\patchcmd{\tableofcontents}{Contents}{\'Indice}{}{}
\usepackage[spanish]{babel} 
\addto\captionsspanish{%
    \renewcommand{\listtablename}{\'Indice de tablas} 
    \renewcommand{\listfigurename}{\'Indice de figuras}
}

\begin{document}
\tableofcontents
\listoftables
\listoffigures

\chapter{Uno dos tres}
\section{Ola}
\section{Adios}

\end{document}

相关内容