summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ulqda/ulqda.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-18 18:21:01 +0000
committerKarl Berry <karl@freefriends.org>2009-05-18 18:21:01 +0000
commit9ec59a52efe9f9a4e9dbdfb47f893f66e718ab69 (patch)
tree2ff54e57fd58a4a817db491a90d15766d8595736 /Master/texmf-dist/tex/latex/ulqda/ulqda.sty
parent6b60829e5501e746c1a35a55b1e4883dea9665cd (diff)
new latex package ulqda (15may09)
git-svn-id: svn://tug.org/texlive/trunk@13209 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ulqda/ulqda.sty')
-rw-r--r--Master/texmf-dist/tex/latex/ulqda/ulqda.sty245
1 files changed, 245 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ulqda/ulqda.sty b/Master/texmf-dist/tex/latex/ulqda/ulqda.sty
new file mode 100644
index 00000000000..da0f8ccc5c8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ulqda/ulqda.sty
@@ -0,0 +1,245 @@
+%%
+%% This is file `ulqda.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ulqda.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2009 by Ivan Griffin
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.2 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.2 or later is part of all distributions of
+%% LaTeX version 1999/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{ulqda}
+ [2009/05/15 v1.0 Qualitative Data Analysis package]
+\RequirePackage{soul}
+\RequirePackage{color}
+\RequirePackage{multicols}
+\RequirePackage{tikz}
+\RequirePackage[cache]{dot2texi}
+\usetikzlibrary{backgrounds,shapes,arrows,positioning}
+
+\definecolor{UlQda@lightblue}{rgb}{0.80,0.85,1}
+\sethlcolor{UlQda@lightblue}
+
+\newif\ifUlQda@debug \UlQda@debugfalse
+\newif\ifUlQda@cache \UlQda@cachefalse
+\newif\ifUlQda@cachepresent \UlQda@cachepresentfalse
+\newif\ifUlQda@shellescape \UlQda@shellescapetrue
+\newif\ifUlQda@MiKTeX \UlQda@MiKTeXfalse
+\newif\ifUlQda@active \UlQda@activefalse
+\newif\ifUlQda@counts \UlQda@countsfalse
+
+\DeclareOption{active}{\UlQda@activetrue}
+\DeclareOption{debug}{\UlQda@debugtrue}
+\DeclareOption{cache}{\UlQda@cachetrue}
+\DeclareOption{nocache}{\UlQda@cachefalse}
+\DeclareOption{shell}{\UlQda@shellescapetrue}
+\DeclareOption{noshell}{\UlQda@shellescapefalse}
+\DeclareOption{MiKTeX}{\global\UlQda@MiKTeXtrue}
+\DeclareOption{counts}{\global\UlQda@countstrue}
+
+\DeclareOption*{%
+ \PackageWarning{ulqda}{Unknown option `\CurrentOption'}%
+}
+
+\ExecuteOptions{shell}
+\ProcessOptions\relax
+
+\ifUlQda@counts
+ \def\UlQda@counts{--number }
+\else
+ \def\UlQda@counts{ }
+\fi
+
+%% test if shell escape really works
+\ifUlQda@shellescape
+ \def\tmpfile{/tmp/shellEscapeTest-\the\year\the\month\the\day-\the\time}
+ \immediate\write18{\ifUlQda@MiKTeX rem >"\tmpfile" \else touch \tmpfile \fi}
+ \IfFileExists{\tmpfile}{
+ \UlQda@shellescapetrue
+ \immediate\write18{\ifUlQda@MiKTeX del "\tmpfile" \else rm -f \tmpfile \fi}
+ }{\UlQda@shellescapefalse}
+\fi
+
+\ifUlQda@shellescape
+ \ifUlQda@debug
+ \PackageInfo{ulqda}{TeX Shell escape enabled.}
+ \fi
+\else
+ \PackageWarningNoLine{ulqda} {TeX Shell escape not enabled.\MessageBreak%
+ Manually process the CSV output with ulqda.pl}
+\fi
+
+\newcommand{\ulqdaHighlight}[2]{%
+ \hl{\protect\ul{#2}}%
+ \marginpar%
+ {\raggedright\hbadness=10000\tiny\it \hl{#1}\par}%
+ \par%
+ }
+
+\newcommand{\ulQda}{\textsf{ul\kern -.075em\lower .3ex\hbox {\protect\emph{q}}da}}
+
+\ifUlQda@active
+ \AtBeginDocument{%
+ \typeout{ulqda: Loaded - 2009/05/15 v1.0 Qualitative Data Analysis package}
+ \ifUlQda@cache
+ \IfFileExists{\jobname.csv} %
+ {
+ \ifUlQda@debug
+ \typeout{ulqda: QDA cache file \jobname.csv found}
+ \fi
+ \UlQda@cachepresenttrue
+ }
+ {
+ \ifUlQda@debug
+ \typeout{ulqda: QDA cache file \jobname.csv not found}
+ \fi
+ \UlQda@cachepresentfalse
+ }
+ \else
+ \ifUlQda@debug
+ \typeout{ulqda: caching disabled}
+ \fi
+ \UlQda@cachepresentfalse
+ \fi
+
+ % Code macro
+ \ifUlQda@cachepresent
+ \newcommand{\ulqdaCode}[2]{\ulqdaHighlight{#1}{#2}}
+ \else
+ \ifUlQda@debug
+ \typeout{ulqda: Creating QDA cache file \jobname.csv} %
+ \fi
+ \newwrite\ulqdaCodeFile %
+ \immediate\openout\ulqdaCodeFile=\jobname.csv %
+ \immediate\write\ulqdaCodeFile{Page Number, Section, Code, Text} %
+
+ \def\UlQda@ListIt#1[#2,{%
+ \ifUlQda@debug %
+ \typeout{ulqda: Coding "#2" as "#1" on page \thepage, section \thesection}
+ \fi %
+ \immediate\write\ulqdaCodeFile{\thepage, \thesection, #2, "#1"}
+ \index{#2} %
+ \@ifnextchar]% Look ahead one token.
+ {\eatthesquarebracket}% End of list.
+ {\UlQda@ListIt{#1}[}% Process rest of list.
+ }
+ \def\eatthesquarebracket]{} % Gobble the square bracket.
+ %
+ % Coding macro
+ \newcommand{\ulqdaCode}[2]{\ulqdaHighlight{#1}{#2} \UlQda@ListIt{#2}[#1,]} %
+ \fi
+ } % end of \AtBeginDocument
+
+\newcommand{\UlQda@FirstOfTwo}[1]{
+ \ifx#1\UlQda@MyUndefinedMacro
+ ?\typeout{ulqda: undefined reference, please re-run}
+ \else
+ \expandafter\@firstoftwo#1
+ \fi}
+\newcommand{\UlQda@RefToSectNum}[1]{
+ \expandafter \ifx\csname r@#1\endcsname\relax
+ ?\typeout{ulqda: undefined reference, please re-run}
+ \else
+ \expandafter\UlQda@FirstOfTwo\csname r@#1\endcsname
+ \fi}
+ \def\UlQda@filter{}
+ \newcommand{\ulqdaSetSectFilter}[1]{
+ \ifUlQda@shellescape
+ \immediate\write18{\ifUlQda@MiKTeX del \else rm -f -- \fi \jobname_net.dot}
+ \immediate\write18{\ifUlQda@MiKTeX del \else rm -f -- \fi \jobname_flat.dot}
+ \immediate\write18{\ifUlQda@MiKTeX del \else rm -f -- \fi \jobname_table.tex}
+ \fi
+ \def\UlQda@filter{--filter \UlQda@RefToSectNum{#1}}
+ }
+ \newcommand{\ulqdaClearSectFilter}{\def\UlQda@filter{}}
+ \newcommand{\ulqdaGraph}[2]{\expandafter\csname UlQda@Graph#1\endcsname{#2}}
+ \newcommand\UlQda@Graphflat[1]{\UlQda@GraphFlat{#1}}
+ \newcommand\UlQda@Graphnet[1]{\UlQda@GraphNet{#1}}
+ \newcommand{\UlQda@GraphVizFileName}{}
+ \newsavebox{\UlQda@GraphSaveBox}
+ \newcommand{\UlQda@GraphNet}[1]{%
+ \renewcommand{\UlQda@GraphVizFileName}{\jobname_net.dot}%
+ \ifUlQda@cachepresent
+ \ifUlQda@shellescape
+ \ifUlQda@debug
+ \typeout{ulqda: Converting .csv to hierarchical GraphViz dot file}
+ \fi
+ \immediate\write18{ulqda.pl --graphnet \UlQda@filter \UlQda@counts
+ -- \jobname.csv \jobname_net.dot}
+ \fi
+ \fi
+
+ \UlQda@DoGraph{#1}%
+ }
+ \newcommand{\UlQda@GraphFlat}[1]{%
+ \renewcommand{\UlQda@GraphVizFileName}{\jobname_flat.dot}%
+ \ifUlQda@cachepresent
+ \ifUlQda@shellescape
+ \ifUlQda@debug
+ \typeout{ulqda: Converting .csv to flat GraphViz dot file}
+ \fi
+ \immediate\write18{ulqda.pl --graphflat \UlQda@filter \UlQda@counts
+ -- \jobname.csv \jobname_flat.dot}
+ \fi
+ \fi
+
+ \UlQda@DoGraph{#1}%
+ }
+
+ \newcommand{\UlQda@DoGraph}[1]{
+ \IfFileExists{\UlQda@GraphVizFileName}{
+ \ifUlQda@shellescape
+ \begin{lrbox}{\UlQda@GraphSaveBox}
+ \stepcounter{dtt@fignum}
+ \setkeys{dtt}{#1}
+ \immediate\write18{cp "\UlQda@GraphVizFileName" "\dtt@figname.dot"}
+ \dottotexgraphicsinclude
+ \end{lrbox}
+ \framebox{\usebox{\UlQda@GraphSaveBox}} \par
+ \else
+ \typeout{ulqda: shell escape not enabled}
+ \typeout{ulqda: unable to process \UlQda@GraphVizFileName}
+ \fi
+ }
+ }
+ \newcommand{\ulqdaTable}{
+ \IfFileExists{\jobname_table.tex}{
+ \input{\jobname_table.tex}
+ }{
+ \ifUlQda@cachepresent
+ \ifUlQda@shellescape
+ \ifUlQda@debug
+ \typeout{ulqda: Converting .csv to TeX table}
+ \fi
+ \immediate\write18{ulqda.pl --list \UlQda@filter \UlQda@counts
+ -- \jobname.csv \jobname_table.tex}
+ \fi
+ \fi
+ \IfFileExists{\jobname_table.tex}{
+ \input{\jobname_table.tex}
+ }
+ }
+ }
+\else % UlQda@activefalse
+ \newcommand{\ulqdaTable}{}
+ \newcommand{\ulqdaGraph}[2]{}
+ \newcommand{\ulqdaCode}[2]{}
+ \newcommand{\ulqdaSetSectFilter}[1]{}
+ \newcommand{\ulqdaClearSectFilter}{}
+\fi
+\endinput
+%%
+%% End of file `ulqda.sty'.