Изменение цветов URL в заголовке/нижней строке шаблона Beamer

Изменение цветов URL в заголовке/нижней строке шаблона Beamer

Проблема:

Мне нужно, чтобы URL-адреса через \href{}{} были окрашены в синий цвет в презентации. Однако использование \hypersetup{colorlinks=true,linkcolor = blue} изменяет текст в разделе, текст подраздела в заголовке и текст заголовка в нижней строке. Эти изменения проблематичны, поскольку цвет фона областей синий.

Нуждаться:

Я был бы очень признателен за более качественное изменение раздела и подраздела в порядке первого возможного решения с помощью \renewcommand\insertshortitle или хотя бы за указатель в направлении, в котором мне следует двигаться.

Цель состоит в том, чтобы иметь возможность использовать модификацию для создания темы для проектора.


Возможные исправления (вроде):

Я нашел несколько идей и реализовал их с переменным успехом, одна из них — отключить автоматическую раскраску ссылок. Это привело меня к тому, что я сделал \textcolor{blue}{\href{}{}}, что не идеально.

ВBeamer: гиперссылки и цвета кратких заголовков

Предлагается решение с коротким заголовком:

\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

Мне не удалось заставить это работать с \insertsectionhead и \insertsubsectionhead. Я бы предпочел эту альтернативу определению нового метода для \href.

Была еще одна идея, как отключить привязку:Как удалить ссылку из заголовка в foot

Основная идея заключалась в использовании: \let\hyperlink\@secondoftwoподавления создания ссылки.

Я разметил это с помощью заголовка

\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%
}

Однако этот подход добавляет secondoftwo к строкам раздела и подраздела.

Последний вариант, с которым я столкнулся и который я реализовал, похоже, решил проблему, единственным недостатком которого является необходимость включения нового пакета (etoolbox). Идея пришла из:

ошибки с MakeUppercase и insertsectionhead от 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 (визуализация того, что не так)

\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}

Предварительный просмотр: МВЭ

решение1

Вы можете использовать

\hypersetup{colorlinks,urlcolor=blue}
\addtobeamertemplate{headline}{\hypersetup{linkcolor=.}}{}
\addtobeamertemplate{footline}{\hypersetup{linkcolor=.}}{}

для установки linkcolorтекущего цвета .внутри шаблонов headlineи footline.

введите описание изображения здесь

Код:

\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}

Кроме того, есть более короткий вариант, если нужно раскрасить только URL-адреса:

\hypersetup{colorlinks,allcolors=.,urlcolor=blue}

решение2

Похожий вопросздесь.

Определите новый макрос \newhref, в котором вы можете указать цвет текста или использовать цвет по умолчанию (например, синий)

\newcommand{\newhref}[3][blue]{\href{#2}{\textcolor{#1}{#3}}}

и используйте его как

\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

Итак, в вашем документе:

\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}

введите описание изображения здесь

Связанный контент