我正在尝试制作一个可点击的条形图,一旦点击某个条形图,它就会提供额外的信息。
我看过一些使用它的代码示例,并尝试了自己的代码示例:
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{clickable}
\begin{tikzpicture}
\begin{axis}[
ybar, bar width=3pt,width=14cm, height=7cm,
xmin = 1960, xmax=2020, ymax = 250,
ymajorgrids, ylabel={Count}, xlabel={Year},
clickable coords= {Year \thisrow{year}:\thisrow{count}},
xticklabel style = {rotate=90, anchor=east, align=center},
xticklabel style = {/pgf/number format/1000 sep=},
ticklabel style = {font=\footnotesize},]
\addplot table[x=year,y=count] {
year count
2019 246
2018 234
2017 197
2016 180
2015 181
2014 167
2013 145
2012 144
2011 124
2010 118
2009 103
2008 111
};
\end{axis}
\end{tikzpicture}
但无法使用 overleaf 来编译它们:
File: pgflibraryplotmarks.code.tex 2015/08/03 v3.0.1a (rcs-revision 1.14)
)))
(/usr/share/texlive/texmf-dist/tex/latex/pgfplots/libs/tikzlibrarypgfplots.clic
kable.code.tex
! LaTeX Error: File `insdljs.sty' not found.
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Enter file name:
! Emergency stop.
<read *>
l.145 \RequirePackage
[pdftex]{eforms}^^M
*** (cannot \read from terminal in nonstop modes)
我是不是漏掉了什么?
这个包过时了吗?如果是,还有其他选择吗?
答案1
clickable
由于许可限制,该库的一些依赖项未包含在 TeX Live 中。您可以在软件包的 CTAN 页面:请注意,它是 acrotex 包的一部分,并且仅列为包含在 MikTeX 中,而不是 TeX Live。
Overleaf 使用 TeX Live,因此如果您想clickable
在 Overleaf 上使用该库,则需要手动将 insdljs 包及其一些依赖项添加到您的项目中。这涉及从 CTAN 下载包源并处理文件.ins
以latex
生成所需的文件.sty
和其他文件。这在 Overleaf 上是可能的,但并非完全简单。
如果您的计算机上安装了 TeX 发行版,则可以从中获取所需的文件。这比在 Overleaf 上生成文件要容易得多。如果您恰好安装了 MikTeX,则 acrotex 将在您的系统上可用(假设您已安装该软件包)。因此,您可以复制所需的软件包文件并将其添加到您的 Overleaf 项目中。
如果你的系统上安装了 TeX Live,你可以从以下位置下载该包的源文件https://ctan.org/pkg/insdljs,提取档案,然后从提取的目录中运行以下命令:
latex insdljs.ins
latex eforms.ins
latex taborder.ins
然后获取运行这些命令生成的所有文件并将其上传到您的 Overleaf 项目。如果您愿意,可以使用以下方法将这些文件隐藏在 Overleaf 项目的子文件夹中:如何在单独的子文件夹中保存一个包含自定义 .cls、.sty、.bst 文件的干净文档文件夹?
如果您的电脑上没有安装自己的 TeX 发行版,因此需要在 Overleaf 上执行此过程:可以做到,但不可否认的是有点复杂。:-)
此过程只需执行一次。一旦您在 Overleaf 项目中拥有此过程产生的.sty
文件.def
,您无需重复此操作,只需复制 Overleaf 项目即可获得包含所需文件的新项目。
从AcroTEX 教育套装,下载这些文件并上传到临时的 Overleaf 项目:
insdljs.ins insdljs.dtx eforms.ins eforms.dtx taborder.ins taborder.dtx
在临时 Overleaf 项目的根目录中创建一个名为
latexmkrc
(无扩展名)的新文件,其中包含以下行代码:BEGIN {system ('latex insdljs.ins; latex eforms.ins; latex taborder.ins');}
这将指示 Overleaf 的构建工具( )在下次编译时
latexmk
处理这些文件。.ins
重新编译项目。这将产生一些额外的文件:该
insdljs.sty
文件及其依赖项。下载所有这些额外的文件。你可以在 Overleaf 的输出文件区域。您只需下载具有
.def
或.sty
扩展名的输出文件。将这些文件上传
.sty
到.def
要使用该clickable
库的 Overleaf 项目中。正如我上面提到的,你可能希望将它们放在子文件夹中,并设置一个latexmkrc
文件,以便编译器找到它们:如何在单独的子文件夹中保存一个包含自定义 .cls、.sty、.bst 文件的干净文档文件夹?下载
.sty
和.def
文件后,您可以自由删除用于创建它们的临时 Overleaf 项目。