Título del índice en letras mayúsculas

Título del índice en letras mayúsculas

He generado una tabla de contenido en un documento y me gustaría que el título "Contenido" esté en letras mayúsculas, es decir, "CONTENIDO". Todo lo que encontré buscando fue cómo personalizar las entradas en la tabla y no el título. ¿Cómo se puede hacer esto?

Trabajo en ShareLaTeX XeLaTeXy mi preámbulo completo es:

\documentclass{article}

\usepackage
[   
    top=0.7in,
    bottom=1.2in,
    left=0.8in,
    right=0.8in,
]{geometry}

\usepackage{parskip}

\setlength{\parindent}{0cm}

\usepackage{amsmath}

\usepackage{unicode-math}

\usepackage{fontspec}


\usepackage[english,greek]{babel}

\setmainfont
[
    Ligatures=TeX,
    Extension=.otf,
    UprightFont=*,
    BoldFont=*Bold,
    ItalicFont=*It,
    BoldItalicFont=*BoldIt,
    Mapping=tex-text
]{GFSArtemisia}

\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}

\setmathfont{latinmodern-math.otf}

\setmathfont[range=\varnothing]{Asana-Math.otf}

\setmathfont[range=\int]{latinmodern-math.otf}

\usepackage{listings}

\usepackage{multicol}

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

\usepackage{tikz}

\usepackage{lipsum}

\usepackage{hyperref}

\usepackage[normalem]{ulem}

\usepackage{mdframed}

Respuesta1

Normalmente, touhami'sla solución debería funcionar, pero la babelconfiguración especial impide su solución.

En este caso, la redefinición de \contentsnamedebe desplazarse después \begin{document}; esto se puede hacer con \AtBeginDocument{...}.

Otra posibilidad debería ser el \addto...camino. Intentaré proporcionar esto también.

Alternativamente, diga

\selectlanguage{greek}
\let\mtcontentsname\contentsname
\addto\captionsgreek{\typeout{foo}\renewcommand{\contentsname}{\MakeUppercase\mtcontentsname}}

en el preámbulo.

Creo que usar polyglossiaes la mejor variante junto con XeLaTeXen lugar de babel.

\documentclass{article}

\usepackage
[   
    top=0.7in,
    bottom=1.2in,
    left=0.8in,
    right=0.8in,
]{geometry}

\usepackage{parskip}

\setlength{\parindent}{0cm}

\usepackage{amsmath}

\usepackage{unicode-math}

\usepackage{fontspec}


\usepackage[english,greek]{babel}

\setmainfont
[
    Ligatures=TeX,
    Extension=.otf,
    UprightFont=*,
    BoldFont=*Bold,
    ItalicFont=*It,
    BoldItalicFont=*BoldIt,
    Mapping=tex-text
]{GFSArtemisia}

\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}

\setmathfont{latinmodern-math.otf}

\setmathfont[range=\varnothing]{Asana-Math.otf}

\setmathfont[range=\int]{latinmodern-math.otf}

\usepackage{listings}

\usepackage{multicol}

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

\usepackage{tikz}

\usepackage{lipsum}

\usepackage{hyperref}

\usepackage[normalem]{ulem}

\usepackage{mdframed}

\AtBeginDocument{%
  \let\mtcontentsname\contentsname
  \renewcommand\contentsname{\MakeUppercase\mtcontentsname}
}
\begin{document}

\tableofcontents
\section{Foo}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Aquí está

\documentclass{article}
\let\mtcontentsname\contentsname
\renewcommand\contentsname{\MakeUppercase\mtcontentsname}
\begin{document}
\tableofcontents

\end{document}

Respuesta3

La forma más sencilla es parchear \tableofcontentspara que imprima el título en mayúsculas:

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}

\usepackage[english,greek]{babel}
\usepackage{etoolbox} % for \patchcmd

\setmainfont[
    Ligatures=TeX,
    Extension=.otf,
    UprightFont=*,
    BoldFont=*Bold,
    ItalicFont=*It,
    BoldItalicFont=*BoldIt,
    Mapping=tex-text
]{GFSArtemisia}

\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}

\setmathfont{latinmodern-math.otf}
\setmathfont[range=\varnothing]{Asana-Math.otf}
\setmathfont[range=\int]{latinmodern-math.otf}

\patchcmd{\tableofcontents}{\contentsname}{\MakeUppercase\contentsname}{}{}

\begin{document}

\tableofcontents

\section{ενότητα τίτλο}

\subsection{ενότητα τίτλο}

\end{document}

ingrese la descripción de la imagen aquí

Alternativamente, use

\addto\captionsgreek{%
  \edef\contentsname{%
    \noexpand\MakeUppercase{\unexpanded\expandafter{\contentsname}}%
  }%
}

y lo mismo si lo necesitas para inglés.

Las mayúsculas que quieres sonformateo, en lugar de redefinir etiquetas fijas, por lo que el \patchcmdmétodo es más adecuado. Sin embargo, puede resultar complicado si necesita parchear varios comandos.

En este caso, el \addtométodo podría ser preferible y podemos proporcionar una abstracción. Por ejemplo, supongamos que también desea que la lista de figuras y tablas tenga el título en mayúsculas y también el nombre del resumen; el último debería estar disponible en mayúsculas tanto para griego como para inglés.

\newcommand{\upcasebabellabel}[1]{%
  \edef#1{\noexpand\MakeUppercase{\unexpanded\expandafter{#1}}}%
}

\addto\captionsgreek{%
  \upcasebabellabel\contentsname
  \upcasebabellabel\listfigurename
  \upcasebabellabel\listtablename
  \upcasebabellabel\abstractname
}
\addto\captionsenglish{%
  \upcasebabellabel\abstractname
}

información relacionada