問題:
プレゼンテーションでは、\href{}{} 経由の URL を青いテキストで表示する必要があります。ただし、\hypersetup{colorlinks=true,linkcolor = blue} を使用すると、セクション内のテキスト、見出しのサブセクション テキスト、およびフッターのタイトル テキストが変更されます。領域の背景色が青であることを考えると、これらの変更は問題があります。
必要:
\renewcommand\insertshortitle を使用した最初の可能な解決策の順序でセクションとサブセクションをより適切に変更していただくか、少なくとも進むべき方向を示すポインタを提供していただければ幸いです。
目標は、変更を使用して Beamer テーマを作成できるようにすることです。
考えられる修正方法(だいたい):
いくつかのアイデアを見つけ、さまざまな成功を伴って実装したところ、自動カラーリング リンクを無効にするという方法が見つかりました。これにより、\textcolor{blue}{\href{}{}} を実行することになりましたが、これは理想的ではありません。
短いタイトルの提案された解決策があります:
\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 に新しいメソッドを定義するよりも、この代替手段の方が好ましいと思います。
リンクを無効にする方法についての別のアイデアがここにありました:タイトルから脚注のリンクを削除する方法
主なアイデアは、\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%
}
ただし、この方法では、 section および subsection 文字列に secondoftwo が追加されます。
私が見つけて実装した最後のオプションは、新しいパッケージ (etoolbox) を含める必要があるという唯一の欠点を除いて、問題を解決したようです。アイデアの元は次の通りです。
MakeUppercase と Beamer の insertsectionhead のエラー
\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}