最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Latex中改变文献、图表、外部网址等超链接的颜色命令

维修 admin 336浏览 0评论

Latex中改变文献、图表、外部网址等超链接的颜色命令

目录嗨

  • 常规设置
  • 异常显示
  • 结果

常规设置

在导言区(\begin{document}前面)的最后面加入以下代码,正常情况下编译运行即可成功。

\definecolor{mycustompurple}{RGB}{154, 36, 79} % 定义自己的颜色
\usepackage[utf8]{inputenc}
% \usepackage{xcolor} % 引入颜色宏包
\usepackage{hyperref} % 引入超链接宏包\hypersetup{colorlinks=true,            % 激活链接颜色,去掉链接边框linkcolor=red,              % 文档内部链接颜色(如图表等引用)citecolor=green,            % 文献引用链接颜色filecolor=mycustompurple,   % 文件链接颜色urlcolor=magenta            % 外部URL链接颜色
}

异常显示

如果没有正常显示或者显示成其他颜色的话,可能是你使用的文档类强制更改了相关设置,例如elsarticle文档类中有如下代码

\AtBeginDocument{\@ifpackageloaded{hyperref}{\def\@linkcolor{blue}\def\@anchorcolor{blue}\def\@citecolor{blue}\def\@filecolor{blue}\def\@urlcolor{blue}\def\@menucolor{blue}\def\@pagecolor{blue}
\begingroup\@makeother\`%\@makeother\=%\edef\x{%\edef\noexpand\x{%\endgroup\noexpand\toks@{%\catcode 96=\noexpand\the\catcode`\noexpand\`\relax\catcode 61=\noexpand\the\catcode`\noexpand\=\relax}%}%\noexpand\x}%
\x
\@makeother\`
\@makeother\=
}{}}

2023.11.8 ChatGPT-4解读如下:

elsarticle文档类中,这个\AtBeginDocument命令在文档开始时检查hyperref宏包是否已加载。如果已加载,它将设置所有超链接的颜色为蓝色。
这段代码中的\def命令重新定义了一系列与超链接相关的颜色设置命令(比如\@linkcolor\@citecolor\@urlcolor等),将它们都设置为蓝色。由于这些命令是在\AtBeginDocument中定义的,它们会在文档正文开始前生效,这意味着即使你在导言区通过\hypersetup命令设置了不同的颜色,这些颜色也可能会被这段代码重置为蓝色。
要解决这个问题,你可以在导言区的\hypersetup命令后面再次调用\AtBeginDocument,以确保你的颜色设置能够覆盖elsarticle的默认设置:

\AtBeginDocument{\hypersetup{linkcolor=red,      % 重新设置内部链接颜色为红色citecolor=green,    % 重新设置引用链接颜色为绿色filecolor=mycustompurple,  % 重新设置文件链接颜色为品红urlcolor=magenta       % 重新设置URL链接颜色为蓝色}
}

结果

Latex中改变文献、图表、外部网址等超链接的颜色命令

目录嗨

  • 常规设置
  • 异常显示
  • 结果

常规设置

在导言区(\begin{document}前面)的最后面加入以下代码,正常情况下编译运行即可成功。

\definecolor{mycustompurple}{RGB}{154, 36, 79} % 定义自己的颜色
\usepackage[utf8]{inputenc}
% \usepackage{xcolor} % 引入颜色宏包
\usepackage{hyperref} % 引入超链接宏包\hypersetup{colorlinks=true,            % 激活链接颜色,去掉链接边框linkcolor=red,              % 文档内部链接颜色(如图表等引用)citecolor=green,            % 文献引用链接颜色filecolor=mycustompurple,   % 文件链接颜色urlcolor=magenta            % 外部URL链接颜色
}

异常显示

如果没有正常显示或者显示成其他颜色的话,可能是你使用的文档类强制更改了相关设置,例如elsarticle文档类中有如下代码

\AtBeginDocument{\@ifpackageloaded{hyperref}{\def\@linkcolor{blue}\def\@anchorcolor{blue}\def\@citecolor{blue}\def\@filecolor{blue}\def\@urlcolor{blue}\def\@menucolor{blue}\def\@pagecolor{blue}
\begingroup\@makeother\`%\@makeother\=%\edef\x{%\edef\noexpand\x{%\endgroup\noexpand\toks@{%\catcode 96=\noexpand\the\catcode`\noexpand\`\relax\catcode 61=\noexpand\the\catcode`\noexpand\=\relax}%}%\noexpand\x}%
\x
\@makeother\`
\@makeother\=
}{}}

2023.11.8 ChatGPT-4解读如下:

elsarticle文档类中,这个\AtBeginDocument命令在文档开始时检查hyperref宏包是否已加载。如果已加载,它将设置所有超链接的颜色为蓝色。
这段代码中的\def命令重新定义了一系列与超链接相关的颜色设置命令(比如\@linkcolor\@citecolor\@urlcolor等),将它们都设置为蓝色。由于这些命令是在\AtBeginDocument中定义的,它们会在文档正文开始前生效,这意味着即使你在导言区通过\hypersetup命令设置了不同的颜色,这些颜色也可能会被这段代码重置为蓝色。
要解决这个问题,你可以在导言区的\hypersetup命令后面再次调用\AtBeginDocument,以确保你的颜色设置能够覆盖elsarticle的默认设置:

\AtBeginDocument{\hypersetup{linkcolor=red,      % 重新设置内部链接颜色为红色citecolor=green,    % 重新设置引用链接颜色为绿色filecolor=mycustompurple,  % 重新设置文件链接颜色为品红urlcolor=magenta       % 重新设置URL链接颜色为蓝色}
}

结果

发布评论

评论列表 (0)

  1. 暂无评论