%% %% This is file `luaindex.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% luaindex.dtx (with options: `package') %% %% Copyright (c) 2011 by Markus Kohm %% %% This file was generated from file(s) of luaindex distribution. %% -------------------------------------------------------------- %% %% This work may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, version 1.3c of the license. %% 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 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% The Current Maintainer and author of this work is Markus Kohm. %% %% This file may only be distributed together with the files listed in %% `luaindex.dtx'. You may however distribute the files listed in %% `luaindex.dtx' without this file. %% %% NOTE: THIS IS AN ALPHA-VERSION! %% \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{luaindex} [2011/02/18 v0.1b LuaLaTeX Package index processor]% \RequirePackage{ifluatex} \ifluatex\else \PackageError{luaindex}{lualatex needed}{% Package `luaindex' needs LuaTeX.\MessageBreak So you should use `lualatex' to process you document!\MessageBreak See documentation of `luaindex' for further information.}% \expandafter\expandafter\expandafter\csname endinput\endcsname \fi \RequirePackage{luatexbase-compat}[2010/10/10] \RequirePackage{luatexbase-modutils}[2010/10/10] \luatexbase@ensure@primitive{luaescapestring} \directlua{% if not tex.error then luatexbase.module_error('luaindex', 'undefined function!\string\n% LuaTeX function tex.error() needed but not defined.\string\n% Maybe you are using the wrong version of LuaTeX.') end if not tex.print then luatexbase.module_error('luaindex', 'undefined function!\string\n% LuaTeX function tex.print() needed but not defined.\string\n% Maybe you are using the wrong version of LuaTeX.') end if not tex.sprint then luatexbase.module_error('luaindex', 'undefined function!\string\n% LuaTeX function tex.sprint() needed but not defined.\string\n% Maybe you are using the wrong version of LuaTeX.') end } \RequireLuaModule{luaindex} \newwrite\@indexfile \AtBeginDocument{% \IfFileExists{\jobname.ldx}{\directlua{dofile('\jobname.ldx')}}{}% \openout\@indexfile=\jobname.ldx } \RequirePackage{scrbase} \DefineFamily{luaindex} \DefineFamilyMember{luaindex} \newcommand*{\luaindex@sortorder}{} \DefineFamilyKey{luaindex}{sortorder}{% \edef\luaindex@sortorder{#1}% } \DefineFamilyKey{luaindex}{locale}{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \protected@write\@indexfile{}{% os.setlocale('#1','collate') }% }% } \newcommand*{\luaindex@pageformat}{} \DefineFamilyKey{luaindex}{pageformat}{% \def\luaindex@pageformat{#1}% } \FamilyBoolKey{luaindex}{singlepass}{@luaindexsinglepass} \FamilyProcessOptions{luaindex}\relax \newcommand*{\setupluaindex}{\FamilyOptions{luaindex}} \newcommand*\see[2]{\emph{\seename} #1} \providecommand*\seealso[2]{\emph{\alsoname} #1} \providecommand\seename{see} \providecommand*\alsoname{see also} \newcommand*{\newindex}[2][]{% \directlua{luaindex.newindex('\luatexluaescapestring{#2}')}% \begingroup \setupluaindex{#1}% \ifx\luaindex@sortorder\@empty\else \AtBeginDocument{% \protected@write\@indexfile{}{% luaindex.sortorder('\luatexluaescapestring{#2}', '\luaindex@sortorder') }}% \fi \endgroup } \@onlypreamble\newindex \newcommand*{\luaindex}[1]{% \@bsphack \begingroup \edef\luaindex@name{#1}% \lua@index } \newcommand*{\lua@index}[2][]{% \set@display@protect \edef\luaindex@sort{#2}% \define@key{luaindex.setindex}{sort}{\edef\luaindex@sort{##1}}% \define@key{luaindex.setindex}{pageformat}{\def\luaindex@pageformat{##1}}% \define@key{luaindex.setindex}{locale}{\luaindexsetup{locale=#1}}% \setkeys{luaindex.setindex}{#1}% \protected@write\@indexfile{\let\luatexluaescapestring\relax}{% luaindex.insert('\luatexluaescapestring{\luaindex@name}', '{\luatexluaescapestring{\luaindex@pageformat{\thepage}}}', '\luatexluaescapestring{\luaindex@sort}', '\luatexluaescapestring{#2}') }% \endgroup \@esphack } \newcommand*{\luasubindex}[1]{% \@bsphack \begingroup \edef\luaindex@name{#1}% \lua@subindex } \newcommand*{\lua@subindex}[2][]{% \set@display@protect \edef\luaindex@sort{#2}% \define@key{luaindex.setindex}{sort}{\edef\luaindex@sort{##1}}% \define@key{luaindex.setindex}{pageformat}{\def\luaindex@pageformat{##1}}% \define@key{luaindex.setindex}{locale}{\luaindexsetup{locale=#1}}% \setkeys{luaindex.setindex}{#1}% \protected@write\@indexfile{\let\luatexluaescapestring\relax}{% luaindex.insert('\luatexluaescapestring{\luaindex@name}', '{\luatexluaescapestring{\luaindex@pageformat{\thepage}}}', '\luatexluaescapestring{\luaindex@sort}', '\luatexluaescapestring{#2}', }% \aftergroup\lua@@subindex \endgroup } \newcommand*{\lua@@subindex}[2][]{% \begingroup \set@display@protect \edef\luaindex@sort{#2}% \define@key{luaindex.setindex}{sort}{\edef\luaindex@sort{##1}}% \setkeys{luaindex.setindex}{#1}% \protected@write\@indexfile{\let\luatexluaescapestring\relax}{% \@spaces '\luatexluaescapestring{\luaindex@sort}', '\luatexluaescapestring{#2}') }% \endgroup \@esphack } \newcommand*{\luasubsubindex}[1]{% \@bsphack \begingroup \edef\luaindex@name{#1}% \lua@subsubindex } \newcommand*{\lua@subsubindex}[2][]{% \set@display@protect \edef\luaindex@sort{#2}% \define@key{luaindex.setindex}{sort}{\edef\luaindex@sort{##1}}% \define@key{luaindex.setindex}{pageformat}{\def\luaindex@pageformat{##1}}% \define@key{luaindex.setindex}{locale}{% \luaindexsetup{locale=#1}% } \setkeys{luaindex.setindex}{#1}% \protected@write\@indexfile{\let\luatexluaescapestring\relax}{% luaindex.insert('\luatexluaescapestring{\luaindex@name}', '{\luatexluaescapestring{\luaindex@pageformat{\thepage}}}', '\luatexluaescapestring{\luaindex@sort}', '\luatexluaescapestring{#2}', }% \aftergroup\lua@@@subindex \endgroup } \newcommand*{\lua@@@subindex}[2][]{% \begingroup \set@display@protect \edef\luaindex@sort{#2}% \define@key{luaindex.setindex}{sort}{\edef\luaindex@sort{##1}}% \setkeys{luaindex.setindex}{#1}% \protected@write\@indexfile{\let\luatexluaescapestring\relax}{% \@spaces '\luatexluaescapestring{\luaindex@sort}', '\luatexluaescapestring{#2}', }% \aftergroup\lua@@subindex \endgroup } \renewcommand*{\makeindex}{% \newindex{general}% \renewcommand*\index{\luaindex{general}}% \newcommand*\subindex{\luasubindex{general}}% \newcommand*\subsubindex{\luasubsubindex{general}}% } \newcommand*{\printindex}[1][]{% \begingroup \edef\luaindex@name{general}% \define@key{luaindex.setindex}{index}{\edef\luaindex@name{##1}}% \define@key{luaindex.setindex}{singlepass}[true]{% \setupluaindex{singlepass}{##1}% }% \setkeys{luaindex.setindex}{#1}% \if@luaindexsinglepass \closeout\@indexfile \clearpage \directlua{% luaindex.removeentries('\luatexluaescapestring{\luaindex@name}') dofile('\jobname.ldx') }% \fi \directlua{% luaindex.printindex('\luatexluaescapestring{\luaindex@name}') }% \endgroup } \providecommand*{\indexgroup}[1]{% \indexspace\textbf{#1}\nopagebreak } \providecommand*{\indexspace}{% \def\indexspace{\vskip\baselineskip} } \providecommand*{\symbolsname}{Symbols} \providecommand*{\numbersname}{Numbers} \AtBeginDocument{% \providecaptionname{english}\symbolsname{Symbols}% \providecaptionname{english}\numbersname{Numbers}% \providecaptionname{german}\symbolsname{Symbole}% \providecaptionname{german}\numbersname{Zahlen}% \providecaptionname{ngerman}\symbolsname{Symbole}% \providecaptionname{ngerman}\numbersname{Zahlen}% \providecaptionname{austrian}\symbolsname{Symbole}% \providecaptionname{austrian}\numbersname{Zahlen}% \providecaptionname{naustrian}\symbolsname{Symbole}% \providecaptionname{naustrian}\numbersname{Zahlen}% \providecaptionname{french}\symbolsname{Symbole}% \providecaptionname{french}\numbersname{Chiffres}% \providecaptionname{spanish}\symbolsname{Simbolos}% \providecaptionname{spanish}\numbersname{N\'umeros}% } \providecommand*{\indexpagenumbers}[1]{% \def\index@pagenumbersep{\let\index@pagenumbersep\indexpagenumbersep}% \nobreakspace-- #1} \providecommand*{\indexpagenumber}[1]{\index@pagenumbersep #1} \providecommand*{\indexpagenumbersep}{, } \endinput %% %% End of file `luaindex.sty'.