summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/perltex/example.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/perltex/example.tex')
-rw-r--r--Master/texmf-dist/doc/latex/perltex/example.tex88
1 files changed, 88 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/perltex/example.tex b/Master/texmf-dist/doc/latex/perltex/example.tex
new file mode 100644
index 00000000000..95de2dc062c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/perltex/example.tex
@@ -0,0 +1,88 @@
+%%
+%% This is file `example.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% perltex.dtx (with options: `example')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2009 Scott Pakin <scott+pt@pakin.org>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2006/05/20 or later.
+%%
+\documentclass{article}
+\usepackage[optional]{perltex}
+\usepackage{environ}
+\usepackage{hyperref}
+
+\ifperl
+
+ \perlnewcommand{\dolinkwords}[3]{
+ # Preprocess our arguments.
+ $url = $_[0];
+ $url =~ s/\\\%s/\%s/g;
+ %stopwords = map {lc $_ => 1} split " ", $_[1];
+ $stopwords{""} = 1;
+ $text = $_[2];
+
+ # Replace LaTeX code in the text with placeholders.
+ $placeholder = "ABCxyz123";
+ %substs = ();
+ $replace = sub {$substs{$placeholder} = $_[0]; $placeholder++};
+ $text =~ s/\\(begin|end)\s+\{[a-z]+\}/$replace->($&)/gse;
+ $text =~ s/\\[a-z]+/$replace->($&)/gse;
+
+ # Hyperlink each word that's not in the stop list.
+ $newtext = "";
+ foreach $word (split /((?<=[-\A\s])[\'a-z]+\b)/i, $text) {
+ $lcword = lc $word;
+ if (defined $stopwords{$lcword} || $lcword =~ /[^a-z]/) {
+ $newtext .= $word;
+ }
+ else {
+ $newtext .= sprintf "\\href{$url}{%s}", $lcword, $word;
+ }
+ }
+
+ # Restore original text from placeholders and return the new text.
+ while (($tag, $orig) = each %substs) {
+ $newtext =~ s/\Q$tag\E/$orig/gs;
+ }
+ return $newtext;
+ }
+
+ \NewEnviron{linkwords}[2][]{\dolinkwords{#2}{#1}{\BODY}}{}
+
+\else
+
+ \newenvironment{linkwords}[2][]{}{}
+
+\fi
+
+\begin{document}
+
+\newcommand{\stopwords}{a an the of in am and or but i we me you us them}
+
+\begin{linkwords}[\stopwords]{http://www.google.com/search?q=define:\%s}
+\begin{verse}
+ I'm very good at integral and differential calculus; \\
+ I know the scientific names of beings animalculous: \\
+ In short, in matters vegetable, animal, and mineral, \\
+ I am the very model of a modern Major-General.
+\end{verse}
+\end{linkwords}
+
+\end{document}
+\endinput
+%%
+%% End of file `example.tex'.