forked from yihui/knitr-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
037-graphics-hyperlink.tex
103 lines (87 loc) · 3.72 KB
/
037-graphics-hyperlink.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
%% courtesy of Jonathan Kennel
%% library(knitr); knit('links.Rnw')
\documentclass{report}\usepackage[]{graphicx}\usepackage[]{color}
%% maxwidth is the original width if it is less than linewidth
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
\ifdim\Gin@nat@width>\linewidth
\linewidth
\else
\Gin@nat@width
\fi
}
\makeatother
\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%
\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
\def\at@end@of@kframe{}%
\ifinner\ifhmode%
\def\at@end@of@kframe{\end{minipage}}%
\begin{minipage}{\columnwidth}%
\fi\fi%
\def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
\colorbox{shadecolor}{##1}\hskip-\fboxsep
% There is no \\@totalrightmargin, so:
\hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
\MakeFramed {\advance\hsize-\width
\@totalleftmargin\z@ \linewidth\hsize
\@setminipage}}%
{\par\unskip\endMakeFramed%
\at@end@of@kframe}
\makeatother
\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX
\usepackage{alltt}
\usepackage{tikz,hyperref}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\begin{document}
Create link texts in the data:
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlkwd{library}\hlstd{(lattice)}
\hlkwd{data}\hlstd{(iris)}
\hlstd{iris}\hlopt{$}\hlstd{hyperlink} \hlkwb{<-} \hlkwd{paste}\hlstd{(}\hlstr{"\textbackslash{}\textbackslash{}hyperlink\{"}\hlstd{, iris}\hlopt{$}\hlstd{Species,}
\hlstr{"\}\{"}\hlstd{, iris}\hlopt{$}\hlstd{Species,} \hlstr{"\}"}\hlstd{,} \hlkwc{sep} \hlstd{=} \hlstr{""}\hlstd{)}
\hlstd{iris}\hlopt{$}\hlstd{hypertarget} \hlkwb{<-} \hlkwd{paste}\hlstd{(}\hlstr{"\textbackslash{}\textbackslash{}hypertarget\{"}\hlstd{, iris}\hlopt{$}\hlstd{Species,}
\hlstr{"\}\{"}\hlstd{, iris}\hlopt{$}\hlstd{Species,} \hlstr{"\}"}\hlstd{,} \hlkwc{sep} \hlstd{=} \hlstr{""}\hlstd{)}
\end{alltt}
\end{kframe}
\end{knitrout}
Draw these texts in plots (you can click on the labels):
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\begin{kframe}
\begin{alltt}
\hlkwd{xyplot}\hlstd{(Sepal.Length} \hlopt{~} \hlstd{Sepal.Width} \hlopt{|} \hlstd{hyperlink,} \hlkwc{data} \hlstd{= iris)}
\end{alltt}
\end{kframe}
\input{figure/037-graphics-hyperlink-pltFacet-1.tikz}
\end{knitrout}
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\begin{kframe}
\begin{alltt}
\hlkwd{xyplot}\hlstd{(Sepal.Length} \hlopt{~} \hlstd{Sepal.Width} \hlopt{|} \hlstd{hypertarget,} \hlkwc{data} \hlstd{= iris,} \hlkwc{layout} \hlstd{=} \hlkwd{c}\hlstd{(}\hlnum{1}\hlstd{,}
\hlnum{1}\hlstd{))}
\end{alltt}
\end{kframe}
\input{figure/037-graphics-hyperlink-pltInd-1.tikz}
\input{figure/037-graphics-hyperlink-pltInd-2.tikz}
\input{figure/037-graphics-hyperlink-pltInd-3.tikz}
\end{knitrout}
Note the option external has to be FALSE here, otherwise LaTeX will not be able
to find the link target in the document.
\end{document}