我需要有关森林包的帮助。我曾尝试添加缩写链接,但没有成功。你能帮助我吗?
\documentclass[border=0.5cm]{standalone}
\usepackage{hyperref}
\usepackage{forest}
\forestset{
empty nodes/.style={
for tree={calign=fixed edge angles},
delay={where content={}{shape=coordinate,
anchor=north}{}
},
}
}
\begin{forest}
[$\Omega$, empty nodes
[G]
[[B][Z[H][AR]]]]]
\end{forest}
答案1
要链接到任意一段文本,您可以使用\hyperlink
和的组合\hypertarget
。从 hyperref手动的:
使用 创建一个简单的内部链接
\hypertarget
,带有两个参数:锚点名称和锚文本。\hyperlink
有两个参数,由 定义的超文本对象的名称\hypertarget
,以及用作页面上的链接的文本。
如果您想要链接到普通标签,例如部分,那么您可以使用\hyperref[label name]{link text}
。请注意,出于某种原因,标签名称是可选参数[]
。括号具有特殊含义,forest
因此如果您想将其放入节点,则需要用花括号括起来。
梅威瑟:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{forest}
\forestset{
empty nodes/.style={
for tree={calign=fixed edge angles},
delay={where content={}{shape=coordinate,
anchor=north}{}
},
}
}
\begin{document}
\begin{forest}
[{\hyperref[sec:omega]{$\Omega$}}, empty nodes
[\hyperlink{stm:G}{G}]
[[\hyperlink{stm:B}{B}][\hyperlink{stm:Z}{Z}[\hyperlink{stm:H}{H}][\hyperlink{stm:AR}{AR}]]]]
\end{forest}
\section{Abbreviations}
\hypertarget{stm:G}{G -- Goose}\\
\hypertarget{stm:B}{B -- Bear}\\
\hypertarget{stm:Z}{Z -- Zebra}\\
\hypertarget{stm:H}{H -- Horse}\\
\hypertarget{stm:AR}{AR -- Armadillo}
\section{Omega}
\label{sec:omega}
Omega is a big O.
\end{document}
结果:
请注意,在大多数 PDF 查看器中, 的位置\hypertarget
并不完全正确,它链接到行的底部,这意味着链接跳过了行本身(即,行的底部成为视图的顶部,这意味着行本身不可见)。 有一些解决方法超目标似乎瞄准得太低了但是对于这种特殊的用例,可能有必要将一个指向缩写部分的链接放在某处(例如在树的标题中),或者使用单独的(子)部分来解释每个项目。
或者使用词汇表。在这种情况下,链接会自动添加。
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage[acronym,nomain,nonumberlist]{glossaries}
\makeglossaries
\newacronym{abG}{G}{Goose}
\newacronym{abB}{B}{Bear}
\newacronym{abZ}{Z}{Zebra}
\newacronym{abH}{H}{Horse}
\newacronym{abAR}{AR}{Armadillo}
\usepackage{forest}
\forestset{
empty nodes/.style={
for tree={calign=fixed edge angles},
delay={where content={}{shape=coordinate,
anchor=north}{}
},
}
}
\begin{document}
\begin{forest}
[$\Omega$, empty nodes
[\acrshort{abG}]
[[\acrshort{abB}][\acrshort{abZ}[\acrshort{abH}][\acrshort{abAR}]]]]
\end{forest}
\printglossary[type=\acronymtype,title=Stemma abbreviations]
\end{document}
makeglossaries yourfile
请注意,这需要在第一次编译后运行辅助程序。另请注意,此列表是经过排序的。