这是来自更大文档的最小(不)工作示例:
\documentclass{article}
\usepackage{adjustbox}
\usepackage{hyperref}
\begin{document}
\newcommand\hreftt[2]{%
\href{#1}{\texttt{#2}}%
}
\newcommand{\rubylink}{\href{https://en.wikipedia.org/wiki/Ruby_(programming_language)}{Ruby}}
\newcommand{\erlanglink}{\href{https://en.wikipedia.org/wiki/Erlang_(programming_language)}{Erlang}}
\newcommand{\pythonlink}{\href{https://en.wikipedia.org/wiki/Python_(programming_language)}{Python}}
\newcommand{\powershelllink}{\href{https://en.wikipedia.org/wiki/PowerShell}{PowerShell}}
\begin{table}
\begin{adjustbox}{max width=\textwidth}
\begin{tabular}{l|l|l|l|l}
Programming language & \rubylink & \rubylink, \erlanglink & \pythonlink, \powershelllink & \pythonlink \\\hline
Something & aaaaaaaaaaaaaaaaa & bbbbbbbbbbbbb & ccccccccccccc & dddddddddddddddddddd
\end{tabular}
\end{adjustbox}
\caption{This is test}
\end{table}
\end{document}
当我使用该命令编译它时,latexmk -pdf
它会生成正确的 PDF:
但是当我编译时西拉特克斯,就像这样:latexmk -pdf -pdflatex=xelatex
它产生:
不幸的是我需要使用西拉特克斯并且上述示例需要生成正确的 PDF。我该如何修复放错位置的超链接?
答案1
缩放表格是一种糟糕的排版方式。它会导致字体大小不均匀。
您的问题是由于 xetex.def 的更改导致链接区域滑动中断。此问题影响当前的 texlive 2016、texlive 2017 预测试版和当前的 miktex。
作为一种解决方法,在问题解决之前,您可以尝试通过添加到文档来恢复到旧的定义。
\makeatletter
\def\Gscale@start{%
\special{x:gsave}\special{x:scale \Gscale@x\space\Gscale@y}}
\makeatletter
您也可以使用 tikz,因为当正确使用 xelatex 时它会缩放链接区域(但 pdflatex 不会这样做)
\documentclass{article}
\usepackage{adjustbox,tikz}
\usepackage{hyperref}
\begin{document}\parskip1cm
\newcommand{\rubylink}{\href{https://en.wikipedia.org/wiki/Ruby_(programming_language)}{Ruby}}
abc \rubylink cde
\scalebox{2}{abc \rubylink cde}
\tikz[scale=2,transform shape]\node[inner sep=0]{abc \rubylink cde};
\end{document}