![目录中的大写部分(带有 hyperref)](https://linux22.com/image/422481/%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%A4%A7%E5%86%99%E9%83%A8%E5%88%86%EF%BC%88%E5%B8%A6%E6%9C%89%20hyperref%EF%BC%89.png)
我已经在 StackOverFlow 上看到了有关此问题的所有链接,但它们都无法帮助我。我尝试使用 hyperref 包将 ToC 中的部分名称更改为大写,但它不起作用。
这是我的代码:
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage{geometry}
\usepackage{caption}
\usepackage{indentfirst}
\linespread{1.5}
\usepackage{afterpage}
\usepackage{listofitems}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{lipsum}
\usepackage{array,mathtools}
\usepackage{graphicx}
\usepackage{float}
\usepackage{tikz}
\usepackage{pgfplots}
%\usepackage{xstring}
\usepackage{lastpage}
\pgfplotsset{compat=1.15}
\usepackage{geometry}
\usepackage{enumerate}
\usepackage[labelsep=endash,format=hang,font=small]{caption}
\geometry{a4paper,
top=3cm,
left=3cm,
right=2cm,
bottom=2cm,
}
\usepackage[num]{abntex2cite}
% MODIFICAR TÍTULOS DAS SEÇÕES DE FIGURAS, TABELAS E SUMÁRIO
\addto\captionsbrazil{%
\renewcommand\contentsname{\hspace*{\fill}\bfseries\large\sffamily SUMÁRIO\hspace*{\fill}}
\renewcommand\listfigurename{\hspace*{\fill}\bfseries\large\sffamily LISTA DE FIGURAS\hspace*{\fill}}
\renewcommand\listtablename{\hspace*{\fill}\bfseries\large\sffamily LISTA DE TABELAS\hspace*{\fill}}
}
% AJUSTAR AS SEÇÕES E SUBSEÇÕES
\usepackage{titlesec}
\usepackage{titletoc}
\titlespacing*{\section}{0pt}{0pt}{1.5cm}
\titleformat{\section}[hang]
{\bf\sffamily\large}{\thesection}{20pt}{\MakeUppercase}
\titlespacing*{\subsection}{0pt}{1.5cm}{1.5cm}
\titlespacing*{\subsubsection}{0pt}{1.5cm}{1.5cm}
% MODIFICAR O SUMÁRIO
\titlecontents{section}[1cm]{\bfseries\sffamily}{\contentslabel{3em}}
{\hspace{0em}}{\titlerule*[1pc]{.}\contentspage}
\titlecontents{subsection}[1cm]{\sffamily}{\contentslabel{3em}}
{\hspace{0em}}{\titlerule*[1pc]{.}\contentspage}
\titlecontents{subsubsection}[1cm]{\sffamily}{\contentslabel{3em}}
{\hspace{0em}}{\titlerule*[1pc]{.}\contentspage}
% MODIFICAR A LISTA DE FIGURAS
\titlecontents{figure}[0em]{
Figura~\thecontentslabel \enspace - \enspace
}{}{\hspace{0em}}{\titlerule*[1pc]{.}\contentspage}
% MODIFICAR LISTA DE TABELAS
\titlecontents{table}[0em]{
Tabela~\thecontentslabel \enspace - \enspace
}{}{\hspace{0em}}{\titlerule*[1pc]{.}\contentspage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[RE,LO]{}
\renewcommand{\headrulewidth}{0pt}
\usepackage[colorlinks=true, linkcolor=blue, citecolor=blue, filecolor=blue, urlcolor=blue]{hyperref}
答案1
我无法理解你的 MWE;没有\documentclass
和 没有\begin{document}
或\end{document}
。我没有看到任何提及hyperref
。
最简单的方法可能是使用\section
命令的可选参数,该参数被放入目录和标题中。下面我重新定义了\section
大写目录条目,但消除了使用可选参数的机会。
% sectocprob.tex SE 566966
\documentclass{book}
\usepackage{lipsum}
\let\oldsec\section
\renewcommand{\section}[1]{\oldsec[\MakeUppercase{#1}]{#1}}
\begin{document}
\tableofcontents
\chapter{One}
\section{First section}
\lipsum[1]
\clearpage
\lipsum[2]
\clearpage
\lipsum[3]
\end{document}
如果您需要在目录中使用大写字母但在标题中不需要大写字母,请考虑使用提供memoir
两个可选部分参数的类,一个用于目录,另一个用于标题。
答案2
@BlackBird 给了我最简单的解决方案,而且效果很好。我只需要将选项放在部分命令中:
\section[INTRODUCTION]{Introduction}
谢谢你们所有人。