制作带有可点击图表的 PDF

制作带有可点击图表的 PDF

问候。

约翰·库克提供了可点击的图表具有不同互连的概率分布。每个节点都链接到定义,每个箭头都链接到互连的简要描述。

我对制作具有类似功能的 PDF 感兴趣。即,我想要一个带有箭头的图表,箭头与各种(文本)定义和描述相互关联。

使用 LaTeX/ConTeXt/其他什么都可以吗?

答案1

使用 Tikz 包,可以将节点与定义连接起来,但我找不到如何将箭头与定义连接起来的方法。

所以这只是对你的问题的部分回答:

\documentclass[a4paper]{article}
\usepackage[latin2]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tgschola}
\usepackage{glossaries}
\usepackage[hidelinks]{hyperref}
\glsenablehyper
\usepackage{tikz}
\usetikzlibrary{scopes,chains, positioning}
\tikzset{clickable/.style={draw, rectangle,rounded corners, inner sep = 2pt,fill= blue!20}}
\tikzaddtikzonlycommandshortcutdef{\clickable}{\node[clickable]}
\begin{document}
\makeglossaries
\newglossaryentry{geometric}{
   name={geometric}
  ,description={$f(x) = p (1-p)^x$ for non-negative integers $x$.}
}
\newglossaryentry{discrete}{
   name={Discrete uniform}
  ,description={$(x) = \frac{1}{n}$ for $x = 1, 2, ..., n$}
}
\newglossaryentry{negative}{
   name={Negative binomial}
  ,description={$f(x) = C(r + x - 1, x) p^r(1-p)^x$ for non-negative integers $x$}
}
\begin{tikzpicture}
\clickable  (or) {\gls{geometric}} edge [loop right, ->] (or);
\clickable [below of=or] (bn) {\gls{discrete}} edge [dashed,<-] (or);
\clickable [right= 0.5cm of bn] (oo) {\gls{negative}} edge [<->] (bn);
\end{tikzpicture}
\printglossary
\end{document}

带有词汇表链接的图表 词汇表条目使用宏定义\newglossaryentry。例如:

\newglossaryentry{discrete}{
       name={Discrete uniform}
      ,description={$(x) = \frac{1}{n}$ for $x = 1, 2, ..., n$}
    }

discrete是您在图表中链接到的名称,name是词汇表标题。

要获取词汇表,您必须在编译文档后运行脚本makeglossaries nameofthedocumentwithoutextension

您可以使用宏来引用词汇表条目\gls{},例如命令\gls{discrete}将打印离散均匀

要了解 tikz,请texdoc tikz在 shell 中运行命令。以下是关于我的代码的一些说明:

\begin{tikzpicture}
\clickable  (or) {\gls{geometric}} edge [loop right, ->] (or);
\clickable [below of=or] (bn) {\gls{discrete}} edge [dashed,<-] (or);
\clickable [right= 0.5cm of bn] (oo) {\gls{negative}} edge [<->] (bn);
\end{tikzpicture}

我们的图表是在tikzpicture环境中定义的。宏\clickable是的快捷方式\node [clickable]。花括号中的是标签文本,因为我们引用的是词汇表条目,所以我们称之为\gls宏。(or)是节点的名称,用于从其他节点引用该节点。它对于放置其他节点(below of=or)和箭头很有用。edge用于定义箭头。在[]括号中我们设置它的样式。

相关内容