根据评论进行更新

根据评论进行更新

假设您有一个带有一些标签的 tex 文件(我们称之为 B),还有另一个文件(称之为 A), xr 包将允许我们从 A->B 进行超引用,但我之前发现了几种情况(我不知道 LaTeX 是否做到了),单击文件 A 中的链接将自动打开文件 B(如果它们在同一个目录中)并跳转到该文件 B 中的特定标签,这可以在 LaTeX 中以某种方式完成吗?

PS-1 目前,如果我们执行该外部引用,单击链接只会跳转到当前文件的开头(我的意思是文件 A),并且不会打开任何内容(除非我做错了什么)

PS-2 在其他问题中我得到了这个答案:

LyX 用户邮件列表上最近有一篇关于此问题的帖子。目前还没有答案,但你可以看看是否有任何内容出现。mail-archive.com/[电子邮件保护]/msg93271.html – Torbjørn T.

但是那封信件已经很旧了 (可以追溯到 2010 年),有什么区别吗?

答案1

是的,这当然是可能的,hypertarget使用hrefhyperref包裹。

假设fileA.tex

\documentclass{article}
\usepackage{lipsum}
\usepackage{hyperref}
\begin{document}

\lipsum

\hypertarget{fileAhypertarget}{Should come to this}

\end{document}

然后你可以fileB.tex写成

\documentclass{article}
\usepackage{hyperref}
\begin{document}

\href{fileA.pdf#fileAhypertarget}{Let's go to file A!}

\end{document}

请注意,并非所有pdf查看器都支持这一点 - 例如evince没有给出正确的行为,但acroread确实如此。

根据评论进行更新

lipsum包用于生成示例文本 - 大多数文档不需要它,但您会看到它在 tex 交换中被大量使用,只是为了演示 MWE。

您可以hypertarget通过多种方式自动化每个部分的机制 - 这里有一种使用titlesec包来帮助的方法;请注意,我已经注释掉了该showlabels包,但您可能想在调试期间使用它,它真的很有帮助!

fileA.tex

\documentclass{article}
\usepackage{lipsum}         % for sample text
\usepackage{titlesec}       % to change headings

% very useful during debugging!
%\usepackage[left]{showlabels}
%\showlabels{hypertarget}

% usually load the hyperref package last, 
% see this for reference http://tex.stackexchange.com/questions/1863/which-packages-should-be-loaded-after-hyperref-instead-of-before
\usepackage{hyperref}

% renew \section to set a hypertarget
\titleformat{\section}
{\normalfont\Large\bfseries}
{\thesection}
{1pc}
{\hypertarget{myhypertarget\thesection}}


\begin{document}

\lipsum[1]

\section{First section}
\lipsum

\section{Second section}
\lipsum

\section{Third section}
\lipsum

\end{document}

fileB.tex

\documentclass{article}
\usepackage{hyperref}
\begin{document}

\href{fileA.pdf#myhypertarget1}{Let's go to Section 1!}

\href{fileA.pdf#myhypertarget2}{Let's go to Section 2!}

\href{fileA.pdf#myhypertarget3}{Let's go to Section 3!}

\end{document}

相关内容