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