Problema:
Necesito que las URL a través de \href{}{} estén coloreadas con texto azul en la presentación. Sin embargo, el uso de \hypersetup{colorlinks=true,linkcolor = blue} cambia el texto de la sección, el texto de la subsección en el título y el texto del título en la línea de pie. Estos cambios son problemáticos dado que el color de fondo de las áreas es azul.
Necesidad:
Realmente agradecería una mejor modificación de la sección y la subsección en el orden de la primera solución posible con \renewcommand\insertshortitle o al menos un indicador en la dirección en la que debo ir.
El objetivo es poder utilizar la modificación para crear un tema proyector.
Posibles soluciones (más o menos):
Encontré algunas ideas y las implementé con diferente éxito: deshabilitar los enlaces de coloración automática. Esto me ha llevado a hacer \textcolor{blue}{\href{}{}}, lo cual no es ideal.
EnBeamer: hipervínculos y colores de títulos cortos
Hay una solución propuesta con título corto:
\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
No he podido hacer que esto funcione con \insertsectionhead y \insertsubsectionhead. Preferiría esta alternativa a definir un nuevo método para \href.
Hubo otra idea sobre cómo deshabilitar los enlaces aquí:Cómo eliminar enlace del título a pie
La idea principal era utilizar: \let\hyperlink\@secondoftwo
suprimir la creación del vínculo.
Lo marqué usando el 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%
}
Sin embargo, este enfoque agrega un segundo de dos a las cadenas de sección y subsección.
La última opción que encontré e implementé parece haber resuelto el problema, con el único inconveniente de que tengo que incluir un nuevo paquete (etoolbox). La idea surgió de:
errores con MakeUppercase y el insertsectionhead de 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 de lo que está mal)
\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}
Avance:
Respuesta1
Puedes usar
\hypersetup{colorlinks,urlcolor=blue}
\addtobeamertemplate{headline}{\hypersetup{linkcolor=.}}{}
\addtobeamertemplate{footline}{\hypersetup{linkcolor=.}}{}
para establecer linkcolor
el color actual .
dentro de las plantillas headline
y 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}
Además, existe una posibilidad más corta si solo se colorean las URL:
\hypersetup{colorlinks,allcolors=.,urlcolor=blue}
Respuesta2
Una pregunta similar esaquí.
Defina una nueva macro \newhref
, donde pueda especificar el color del texto o tener el color predeterminado (por ejemplo, azul)
\newcommand{\newhref}[3][blue]{\href{#2}{\textcolor{#1}{#3}}}
y usarlo 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
Entonces en su 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}