Ich habe in einem Dokument ein Inhaltsverzeichnis erstellt und möchte den Titel „Inhalt“ in Großbuchstaben schreiben, also „INHALT“. Bei meiner Suche habe ich nur herausgefunden, wie ich die Einträge in der Tabelle anpassen kann, nicht aber den Titel. Wie kann ich das machen?
Ich arbeite mit ShareLaTeX XeLaTeX
und meine vollständige Präambel lautet:
\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}
Antwort1
Normalerweise touhami's
sollte die Lösung funktionieren, aber die speziellen babel
Einstellungen verhindern diese Lösung.
In diesem Fall sollte die Neudefinition von \contentsname
nach verschoben werden \begin{document}
– dies kann mit erfolgen \AtBeginDocument{...}
.
Eine andere Möglichkeit soll es \addto...
übrigens auch geben. Auch diese werde ich versuchen bereitzustellen.
Alternativ sagen Sie
\selectlanguage{greek}
\let\mtcontentsname\contentsname
\addto\captionsgreek{\typeout{foo}\renewcommand{\contentsname}{\MakeUppercase\mtcontentsname}}
in der Präambel.
Ich glaube, dass die Verwendung in Verbindung mit anstelle von polyglossia
die bessere Variante ist .XeLaTeX
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}
Antwort2
Hier ist
\documentclass{article}
\let\mtcontentsname\contentsname
\renewcommand\contentsname{\MakeUppercase\mtcontentsname}
\begin{document}
\tableofcontents
\end{document}
Antwort3
Am einfachsten geht das, indem Sie den Patch \tableofcontents
so installieren, dass der Titel in Großbuchstaben gedruckt wird:
\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}
Alternativ verwenden Sie
\addto\captionsgreek{%
\edef\contentsname{%
\noexpand\MakeUppercase{\unexpanded\expandafter{\contentsname}}%
}%
}
und das Gleiche gilt, wenn Sie es für Englisch benötigen.
Die gewünschte Großschreibung istFormatierung, anstatt feste Labels neu zu definieren, daher \patchcmd
ist diese Methode besser geeignet. Allerdings kann es kompliziert werden, wenn man mehrere Befehle patchen muss.
In diesem Fall \addto
ist die Methode möglicherweise vorzuziehen und wir können eine Abstraktion bereitstellen. Nehmen wir beispielsweise an, Sie möchten auch, dass die Liste der Abbildungen und Tabellen einen Titel in Großbuchstaben sowie den Namen der Zusammenfassung enthält. Letzterer sollte sowohl für Griechisch als auch für Englisch in Großbuchstaben verfügbar sein.
\newcommand{\upcasebabellabel}[1]{%
\edef#1{\noexpand\MakeUppercase{\unexpanded\expandafter{#1}}}%
}
\addto\captionsgreek{%
\upcasebabellabel\contentsname
\upcasebabellabel\listfigurename
\upcasebabellabel\listtablename
\upcasebabellabel\abstractname
}
\addto\captionsenglish{%
\upcasebabellabel\abstractname
}