Problema:
Preciso que os URLs via \href{}{} sejam coloridos em texto azul na apresentação. No entanto, usar \hypersetup{colorlinks=true,linkcolor = blue} altera o texto na seção, o texto da subseção no título e o texto do título no rodapé. Essas alterações são problemáticas visto que a cor de fundo das áreas é azul.
Precisar:
Eu realmente apreciaria uma modificação melhor para seção e subseção na ordem da primeira solução possível com \renewcommand\insertshortitle ou pelo menos um ponteiro na direção que devo seguir.
O objetivo é poder usar a modificação para criar um tema beamer.
Possíveis correções (mais ou menos):
Encontrei algumas idéias e as implementei com sucesso variável. Descobri que é desativar links de coloração automática. Isso me levou a fazer \textcolor{blue}{\href{}{}}, o que não é o ideal.
EmBeamer: hiperlinks e cores de títulos curtos
Existe uma solução proposta com título abreviado:
\makeatletter
\renewcommand\insertshorttitle[1][]{%
\beamer@setupshort{#1}%
\let\thanks=\@gobble%
\ifnum\c@page=1%
\hyperlinkpresentationend{\beamer@insertshort{\usebeamercolor*[fg]{title in head/foot}\beamer@shorttitle}}%
\else%
\hyperlinkpresentationstart{\beamer@insertshort{\usebeamercolor*[fg]{title in head/foot}\beamer@shorttitle}}%
\fi}
\makeatother
Não consegui fazer isso funcionar com \insertsectionhead e \insertsubsectionhead. Eu preferiria esta alternativa a definir um novo método para \href's.
Houve outra ideia sobre como desativar a vinculação aqui:Como remover link do título no pé
A ideia principal era usar: \let\hyperlink\@secondoftwo
suprimir a criação do link.
Eu marquei usando o título
\setbeamertemplate{headline}
{
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,right,rightskip=1em]{section in head/foot}%
\usebeamerfont{subsection in head/foot}\hspace*{2ex} \let\hyperlink\@secondoftwo\insertsectionhead
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,left,leftskip=1em]{subsection in head/foot}%
\usebeamerfont{section in head/foot} \let\hyperlink\@secondoftwo\insertsubsectionhead \hspace*{2ex}
\end{beamercolorbox}}%
\vskip0pt%
}
No entanto, esta abordagem anexa secondoftwo às strings de seção e subseção.
A última opção que encontrei e implementei parece ter resolvido o problema, com a única desvantagem de ter que incluir um novo pacote (etoolbox). A ideia veio de:
erros com MakeUppercase e insertsectionhead do Beamer
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@section}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{\usebeamercolor*[fg]{section in head/foot}#1}}}
{}{}
\patchcmd{\beamer@subsection}
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{\usebeamercolor*[fg]{subsection in head/foot}#1}}}
{}{}
\makeatother
MWE (visual do que está errado)
\documentclass{beamer}
%normal
\usepackage{color}
\usepackage{beamerthemebars}
\usepackage{lmodern}
\usetheme{AnnArbor}
\usecolortheme{wolverine}
\setbeamercolor{palette tertiary}{bg=blue,fg=white}
\setbeamercolor{palette secondary}{bg=gray,fg=white}
\setbeamercolor{palette primary}{bg=pink,fg=white}
\beamertemplatenavigationsymbolsempty %hides navigation.
\usepackage{hyperref}
\usepackage{amssymb,amsmath}
\author[Coatless]{Lack of Coat}
\institute[Uni]{Uni All}
\date[Date]{\today}
\title[Title]{Fake Presentation}
\begin{document}
\section{Section naught}
\subsection{Subsection Ya}
\hypersetup{colorlinks=true,urlcolor=blue,linkcolor = blue}
% link color causes the section, subsection, and title to fg (font color) to be blue
\frame{\titlepage}
\hypersetup{colorlinks=false,urlcolor=blue,linkcolor = white}
% link color causes the section, subsection, and title to fg (font color) to be white
\frame{\titlepage}
\end{document}
Visualização:
Responder1
Você pode usar
\hypersetup{colorlinks,urlcolor=blue}
\addtobeamertemplate{headline}{\hypersetup{linkcolor=.}}{}
\addtobeamertemplate{footline}{\hypersetup{linkcolor=.}}{}
para definir linkcolor
a cor atual .
dentro dos modelos headline
e footline
.
Código:
\documentclass[]{beamer}
\usepackage{beamerthemebars}
\usepackage{lmodern}
\usetheme{AnnArbor}
\usecolortheme{wolverine}
\setbeamercolor{palette tertiary}{bg=blue,fg=white}
\setbeamercolor{palette secondary}{bg=gray,fg=white}
\setbeamercolor{palette primary}{bg=pink,fg=white}
\beamertemplatenavigationsymbolsempty %hides navigation.
\hypersetup{colorlinks,urlcolor=blue}
\addtobeamertemplate{headline}{\hypersetup{linkcolor=.}}{}
\addtobeamertemplate{footline}{\hypersetup{linkcolor=.}}{}
\author[Coatless]{Lack of Coat}
\institute[Uni]{Uni All}
\date[Date]{\today}
\title[Title]{Fake Presentation}
\begin{document}
\section{Section naught}
\subsection{Subsection Ya}
\frame{\titlepage}
\begin{frame}{First Frame}
\href{http://tex.stackexchange.com/}{StackExchange}
\end{frame}
\end{document}
Além disso, há uma possibilidade mais curta se apenas os URLs forem coloridos:
\hypersetup{colorlinks,allcolors=.,urlcolor=blue}
Responder2
Pergunta semelhante éaqui.
Defina uma nova macro \newhref
, onde você pode especificar a cor do texto, ou ter a cor padrão (por exemplo, azul)
\newcommand{\newhref}[3][blue]{\href{#2}{\textcolor{#1}{#3}}}
e use-o como
\newhref{https://tex.stackexchange.com/}{StackExchange} % to get the default (blue) link - 2nd line
\newhref[red]{https://tex.stackexchange.com/}{StackExchange} % to get red link - 1st line
Então, no seu documento:
\documentclass{beamer}
\usepackage{color}
\usepackage{beamerthemebars}
\usepackage{lmodern}
\usetheme{AnnArbor}
\usecolortheme{wolverine}
\setbeamercolor{palette tertiary}{bg=blue,fg=white}
\setbeamercolor{palette secondary}{bg=gray,fg=white}
\setbeamercolor{palette primary}{bg=pink,fg=white}
\beamertemplatenavigationsymbolsempty %hides navigation.
\usepackage{hyperref}
\usepackage{amssymb}
\usepackage{amsmath}
% HERE IS THE DEFINITION
\newcommand{\newhref}[3][blue]{\href{#2}{\textcolor{#1}{#3}}}
\author[Coatless]{Lack of Coat}
\institute[Uni]{Uni All}
\date[Date]{\today}
\title[Title]{Fake Presentation}
\begin{document}
\section{Section naught}
\subsection{Subsection Ya}
% HERE IS THE TEXT
\newhref[red]{https://tex.stackexchange.com/}{StackExchange}
\newhref{https://tex.stackexchange.com/}{StackExchange}
\frame{\titlepage}
\end{document}