数学模式下超链接的正确字距调整

数学模式下超链接的正确字距调整

我在数学模式下使用超链接,这样如果读者没有按顺序阅读我的论文,并在某处发现一个非常神秘的符号,他可能会点击它并转到它的定义位置。但是,添加链接会改变字距,使下标和上标更加分散,并产生其他丑陋的东西。

考虑一下这个MWE:

\documentclass{article}

\usepackage{amsmath, amssymb, fontspec, unicode-math, tikz}
\usepackage[colorlinks=true, linkcolor=black]{hyperref}

\begin{document}

Let \hypertarget{a}{$X\colon[0,1]\times\Omega\to\mathbb{R}$} be a stochastic
process.

\tikz[overlay, baseline, anchor=base west, inner sep=0, blue]
  \node {${X}_t$};%
\tikz[overlay, baseline, anchor=base west, inner sep=0, red, opacity=0.5]
  \node {$\hyperlink{a}{X}_t$};

\end{document}

输出为 字距调整不当

我正在使用 LuaLaTeX 和 texlive 2013。有什么办法可以校正字距吗?

答案1

编辑真正的解决方案是使用这个答案

\documentclass{article}
\usepackage{amsmath, amssymb, tikz}
\usepackage[colorlinks=true, linkcolor=black]{hyperref}

\newcommand\hypersub[2]{\hyperlink{#1}{\vphantom{#2}\smash{#2_{}\kern-\scriptspace}}}

\begin{document}
\tikz[overlay, baseline, anchor=base west, inner sep=0, blue]
  \node {${X}_t$};%
\tikz[overlay, baseline, anchor=base west, inner sep=0, red, opacity=0.5]
  \node {$\hypersub{a}{X}_t$};
\end{document}

结束编辑

这只是一个解决方法,当你想链接主要术语而不使用下标时使用。定义一个特定的超链接,当下标如下时:

\newcommand\hypersub[2]{\hyperlink{#1}{#2}\hspace{-.08em}} 

允许:

\tikz[overlay, baseline, anchor=base west, inner sep=0, blue]
  \node {${X}_t$};%
\tikz[overlay, baseline, anchor=base west, inner sep=0, red, opacity=0.5]
  \node {$\hypersub{a}{X}_t$};

生产:

在此处输入图片描述

不匹配约为笔画宽度的 2%

答案2

解释是超链接的文本必须被 \special 命令包围。这些命令在技术上称为“whatsits”。它们本质上迫使 TeX 结束对文本的处理。在数学模式下,这包括附加斜体校正。由于超链接文本是数学斜体 X,因此斜体校正不为零。如果您在 X 和其下标之间放置任何其他 whatsit,您将获得相同的下标移位。示例包括\write命令和颜色变化。例如,尝试$X\write16{test}_t$$\color{red}X\color{black}_t

相关内容