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 XeLaTeX
y 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's
la solución debería funcionar, pero la babel
configuración especial impide su solución.
En este caso, la redefinición de \contentsname
debe 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 polyglossia
es la mejor variante junto con XeLaTeX
en 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}
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 \tableofcontents
para 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}
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 \patchcmd
método es más adecuado. Sin embargo, puede resultar complicado si necesita parchear varios comandos.
En este caso, el \addto
mé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
}