From ce7e3c5a160f4301ec230a05878ddb206ab724f8 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 9 May 2012 21:52:59 +0000 Subject: imakeidx 1.1 (9may12) git-svn-id: svn://tug.org/texlive/trunk@26275 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/imakeidx/README | 21 ++- Master/texmf-dist/doc/latex/imakeidx/imakeidx.pdf | Bin 450671 -> 427512 bytes .../texmf-dist/source/latex/imakeidx/imakeidx.dtx | 143 ++++++++++++--------- Master/texmf-dist/tex/latex/imakeidx/imakeidx.sty | 31 +++-- 4 files changed, 112 insertions(+), 83 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/imakeidx/README b/Master/texmf-dist/doc/latex/imakeidx/README index faead72a68b..6def34aa103 100644 --- a/Master/texmf-dist/doc/latex/imakeidx/README +++ b/Master/texmf-dist/doc/latex/imakeidx/README @@ -1,7 +1,7 @@ -This is the README file relative to package imakeidx version 1.0a -dated 12 July 2010. +This is the README file relative to package imakeidx version 1.1 +dated 2012/05/09 -Copyright 2010 Claudio Beccari and Enrico Gregorio +Copyright 2010--2012 Claudio Beccari and Enrico Gregorio The bundle contains the files: @@ -27,14 +27,13 @@ incarnation set up to process the LaTeX markup) at the \printindex level, so that one or more indices can be typeset in such a way that they are always synchronous with the document they belong to. -With the TeXlive 2010 release the makeindex program can be safely run -within a TeX run; with previous distributions the shell escape feature -must be explicity enabled. With the 2010 distribution the makeindex -program is directly accessible. +With TeX Live (release 2010 and later) the makeindex program can be +safely run within a TeX run; with previous distributions the shell +escape feature must be explicity enabled. With the 2010 or later +distribution the makeindex program is directly accessible. -This bundle is compatible with most existing classes; at present it is -incompatible only with the memoir class, because of its special way of -handling multiple indices. +This bundle is compatible with most existing classes and also with the +idxlayout package for customizing index general formatting. Claudio Beccari claudio dot beccari at gmail.com -Enrico Gregorio enrico dot gregorio at univr.it \ No newline at end of file +Enrico Gregorio enrico dot gregorio at univr.it diff --git a/Master/texmf-dist/doc/latex/imakeidx/imakeidx.pdf b/Master/texmf-dist/doc/latex/imakeidx/imakeidx.pdf index 7e425dfc746..81ad297c9fb 100644 Binary files a/Master/texmf-dist/doc/latex/imakeidx/imakeidx.pdf and b/Master/texmf-dist/doc/latex/imakeidx/imakeidx.pdf differ diff --git a/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx b/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx index ef2f86150e3..e6e31e5ec98 100644 --- a/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx +++ b/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx @@ -5,9 +5,9 @@ \keepsilent \usedir{tex/latex/imakeidx} \preamble - ______________________________________________________ + ___________________________________________________________ The imakeidx package for LaTeX - Copyright (C) 2010 Claudio Beccari and Enrico Gregorio + Copyright (C) 2010-2012 Claudio Beccari and Enrico Gregorio All rights reserved License information appended @@ -15,8 +15,8 @@ \endpreamble \postamble -Copyright 2010 Claudio Beccari -Copyright 2010 Enrico Gregorio +Copyright 2010--2012 Claudio Beccari +Copyright 2010--2012 Enrico Gregorio Distributable under the LaTeX Project Public License, version 1.3c or higher (your choice). The latest version of @@ -43,7 +43,7 @@ and the derived files imakeidx.sty and imakeidx.pdf. %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{imakeidx}% %<*package> - [2010/07/12 v.1.0a Package for typesetting indices in a synchronous mode] + [2012/05/09 v1.1 Package for typesetting indices in a synchronous mode] % %<*driver> \documentclass{ltxdoc} @@ -56,13 +56,13 @@ and the derived files imakeidx.sty and imakeidx.pdf. \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[english]{babel} -\usepackage{textcomp,lmodern,metalogo,booktabs} +\usepackage{textcomp,metalogo,booktabs} \begin{document} \makeatletter \GetFileInfo{imakeidx.dtx}% dtx extension required -\title{Package \pack{imakeidx}\thanks{Version number \fileversion; last +\title{The package \pack{imakeidx}\thanks{Version number \fileversion; last revision \filedate.}} -\author{Claudio Beccari\thanks{\texttt{claudio dot beccari at gmail dot it}} +\author{Claudio Beccari\thanks{\texttt{claudio dot beccari at gmail dot com}} \and Enrico Gregorio\thanks{\texttt{Enrico dot Gregorio at univr dot it}}} \date{} \maketitle @@ -70,11 +70,17 @@ and the derived files imakeidx.sty and imakeidx.pdf. \tableofcontents \end{multicols} \smallskip +\RecordChanges \DocInput{imakeidx.dtx} \end{document} % % \fi -% \CheckSum{737} +% \CheckSum{743} +% +% \changes{v1.0}{2010/07/10}{First public version} +% \changes{v1.0a}{2010/07/12}{Small bug correction} +% \changes{v1.1}{2012/05/09}{Fixed compatibility with \pack{memoir}} +% \changes{v1.1}{2012/05/09}{Modified interaction with Lua\TeX} % % \begin{abstract} % This package exploits the |\write18| facility of modern \TeX\ system @@ -92,17 +98,17 @@ and the derived files imakeidx.sty and imakeidx.pdf. % system is just \prog{pdftex}; the original Knuthian \prog{tex} is % still corrected by D.\,E.~Knuth himself, but is frozen, according to % his will; it is still distributed by every \TeX\ distribution, but -% in practice only \prog{pdftex} is used as the interpreter of every -% macro package and the true typesetter engine. The latter is updated -% with the original \prog{tex} corrections, but it is the only one -% that the \LaTeX3 Team maintains and upgrades. +% in practice only \prog{pdftex}, \prog{xetex} or \prog{luatex} are +% used as the interpreter of every macro package and the true +% typesetter engine. % % This program \prog{pdftex} was originally born with the facility of % producing either a pdf output file, as its name suggests, or a dvi % file. Since then it has been enriched with many upgrades, also with % regard to the evolution of the PDF language itself. It also % incorporates the extensions of \eTeX\ and has the ability to open a -% shell so as to call system commands with their arguments. +% shell so as to call system commands with their arguments. The same +% is true for \prog{xetex} and \prog{luatex}. % % This facility, since the \TeX~Live 2010 distribution, is official, % but is sort of restricted, in the sense that the \TeX\ system @@ -130,8 +136,23 @@ and the derived files imakeidx.sty and imakeidx.pdf. % used to work on a specific document, it is necessary to add % \texttt{-shell-escape} (or \texttt{-\/-enable-write18} for MiK\TeX) % to the command with which \prog{pdftex} is launched, possibly by the -% shell editor. If Lua\LaTeX{} is used, it's necessary to specify the -% \texttt{-shell-escape} command line option. +% shell editor. What's been said for \prog{pdftex} goes without change +% for the \prog{xetex} and \prog{luatex} typesetting engines. +% +% {\medskip\footnotesize If Lua\LaTeX{} is used and \prog{luatex} is +% version 0.42 to 0.66, it's impossible to distinguish whether the +% restricted shell escape is active or not, so the automatic procedure +% will be tried anyway, unless disabled with the \texttt{noautomatic} +% package option. With version 0.68 or later, the behavior is the same +% as with the other engines.\par} +% +% \subsection*{Note} +% +% The first public version of this package was not compatible with the +% \pack{memoir} class. Since version 1.1 it is; however, one has to +% keep in mind that all index processing is done with the methods of +% the present package, and \emph{not} with \pack{memoir}'s; however +% the syntax used is the same and there should be no problem. % %\section{Package usage} % This package is invoked as usual by means of a \cs{usepackage} command: @@ -213,9 +234,9 @@ and the derived files imakeidx.sty and imakeidx.pdf. % \Item[name] is the symbolic name for an index; if this key is not % specified, it defaults to the value of the \cs{jobname} control % sequence, in other words the name of the current main \texttt{.tex} -% program file, i.e., the file that |\input|s and/or |\include|s all -% the files of the complete document. This symbolic name is necessary -% only when doing multiple indices and is used with the \cs{index} +% file, i.e., the file that |\input|s and/or |\include|s all the files +% of the complete document. This symbolic name is necessary only when +% doing multiple indices and is used with the \cs{index} % command to point to the right index.\\* % Example: \texttt{name=nameidx} % \Item[title] is the title that is typeset at the beginning of the @@ -310,7 +331,8 @@ and the derived files imakeidx.sty and imakeidx.pdf. % entries; the \meta{spacing} should be a vertical space command such % as |\vspace{36pt}| (default is \cs{bigskip}), controlling the % spacing between the prologue and the index proper. The command -% affects only the next index produced by \cs{printindex}. +% affects only the next index produced by \cs{printindex} and is best +% placed just before this command. % \Item[printindex] with the syntax:\\*[1ex] % \cs{printindex}\oarg{name}\\[1ex] % is used to typeset the particular index named \meta{name}; if no @@ -368,13 +390,12 @@ and the derived files imakeidx.sty and imakeidx.pdf. % If you use only \prog{makeindex} and \TeX~Live 2010 or later, then % you shouldn't need anything special, since \prog{makeindex} is among % the safe programs allowed to be called during a \LaTeX{} run, be it -% \prog{latex}, \prog{pdflatex} or \prog{xelatex} (or even -% \prog{lualatex}, at present with some glitches). When the options -% \texttt{splitindex}, \texttt{xindy} or \texttt{texindy} are -% specified (globally or locally), the \LaTeX{} run should be called -% with \texttt{-shell-escape} (which is \texttt{--enable-write18} for -% MiK\TeX) or the \texttt{noautomatic} option should be specified when -% loading \pack{imakeidx}. +% \prog{latex}, \prog{pdflatex}, \prog{xelatex}, or \prog{lualatex}. +% When the options \texttt{splitindex}, \texttt{xindy} or +% \texttt{texindy} are specified (globally or locally), the \LaTeX{} +% run should be called with \texttt{-shell-escape} (which is +% \texttt{--enable-write18} for MiK\TeX) or the \texttt{noautomatic} +% option should be specified when loading \pack{imakeidx}. % % Let's look at a couple of examples. In both we suppose that the % document \texttt{mybook.tex} defines two indices through @@ -401,7 +422,8 @@ and the derived files imakeidx.sty and imakeidx.pdf. % where |<...>| stands for the rest of the command line in the % particular case. If this line is not present, then \prog{makeindex} % has not been called; this happens when you didn't specify the shell -% escape command line option for the \LaTeX{} run or if you set the +% escape command line option for the \LaTeX{} run or the restricted +% shell escape is not active; also, of course, if you set the % \texttt{noautomatic} option for the index. % % When using \prog{splitindex}, the situation is different. During the @@ -597,15 +619,15 @@ and the derived files imakeidx.sty and imakeidx.pdf. % humans. Soooooo\dots % \begin{center} HAPPY \TeX{}ING!\end{center} % -% \StopEventually{} +% \StopEventually{\PrintChanges} % \section{Implementation} % The heading to the file is in common with the documentation file, % and has already been taken care of. But we require the % \pack{xkeyval} package, in order to handle the key-value lists. % -% Notice that in order to create e specific name space such as to -% avoid possible conflicts with other packages, all the commands -% defined in this package are prefixed with the string \texttt{imki@}. +% Notice that in order to create a specific name space so as to avoid +% possible conflicts with other packages, all the commands defined in +% this package are prefixed with the string \texttt{imki@}. % \begin{macrocode} \RequirePackage{xkeyval} % \end{macrocode} @@ -616,8 +638,7 @@ and the derived files imakeidx.sty and imakeidx.pdf. % which is incompatible with \pack{multicol}. We define also an % internal alias for |\immediate\write18|, a rudimentary check for the % typesetting engine and a macro for modifying the command line call -% to \prog{splitindex}. Lua\TeX{} is recognized later by the -% value~$255$ to the internal parameter \cs{imki@shellescape}. +% to \prog{splitindex}. % \begin{macrocode} \DeclareOption{xindy}{\def\imki@progdefault{texindy}} \DeclareOption{texindy}{\def\imki@progdefault{texindy}} @@ -643,7 +664,14 @@ and the derived files imakeidx.sty and imakeidx.pdf. \def\imki@engine{(pdf)latex} \ifdefined\XeTeXversion\def\imki@engine{xelatex}\fi \ifdefined\directlua % luatex doesn't have \(pdf)shellescape - \def\imki@engine{lualatex}\chardef\imki@shellescape\@cclv + \def\imki@engine{lualatex} + \ifnum\luatexversion<68 + \chardef\imki@shellescape\@ne % no way to know the value + \else + \RequirePackage{pdftexcmds} % provides \pdf@shellescape + \chardef\imki@shellescape\pdf@shellescape + \fi + \let\imki@exec\pdf@system \fi \edef\imki@splitindexoptions{-m \string"\string"} \def\splitindexoptions#1{\g@addto@macro\imki@splitindexoptions{ #1}} @@ -656,20 +684,16 @@ and the derived files imakeidx.sty and imakeidx.pdf. % either incompatible with this one, or must be faked in order to % pretend they have been loaded. % -% Unfortunately there is a serious incompatibility with the -% \pack{memoir} class. In facts \pack{memoir} puts all index entries -% in the main \texttt{.aux} file and extracts them to the various raw -% index files at |\end{document}| time. This means that no raw index -% file output stream has been defined, and therefore this package -% can't close it; moreover it can't typeset the indices before -% |\end{document}| because they are not yet available. Therefore if -% this one is the active class chosen for typesetting the whole -% document, this package outputs an error message and exits. -% \begin{macrocode} -\@ifclassloaded{memoir}{% - \PackageError{imakeidx}{Incompatible package won't be loaded} - {This package is incompatible with memoir, sorry}\endinput}{} -% \end{macrocode} +% There is a serious incompatibility with the \pack{memoir} class. In +% facts \pack{memoir} puts all index entries in the main \texttt{.aux} +% file and extracts them to the various raw index files at +% |\end{document}| time. This means that no raw index file output +% stream has been defined, and therefore this package can't close it; +% moreover it can't typeset the indices before |\end{document}| +% because they are not yet available. Therefore if \pack{memoir} is +% the active class, we will hijack its index mechanism replacing it +% with ours. +% % On the opposite we pretend that package \pack{makeidx} or package % \pack{multind} have been loaded, so that \pack{hyperref} can play % with their commands, that are substantially the same as those used @@ -725,7 +749,7 @@ and the derived files imakeidx.sty and imakeidx.pdf. } % \end{macrocode} % -% Here are the keys. As usual, the \texttt{imki} prefix is used to +% Here are the keys. As usual, the \texttt{imki@} prefix is used to % distinguish anything that is being defined in this package, even the % keys. % \begin{macrocode} @@ -876,21 +900,17 @@ and the derived files imakeidx.sty and imakeidx.pdf. % \cs{pdfshellescape}, so we take care of this (hoping that users or % packages don't define a \cs{shellescape} command). In any case we % define an internal version of this command. In the case of -% \prog{luatex} we can't emit the proper messages and hope that Heiko -% Oberdiek will update \pack{pdftexcmds}; for the moment we set -% \cs{imki@shellescape} to~$1$. The conditional +% \prog{luatex} we can't emit the proper messages if \prog{luatex} is +% not version 0.68 or later. The conditional % \cs{ifKV@imki@noautomatic} is defined by \cs{define@boolkey} above. % % \begin{macrocode} \def\imki@shellwarn{} -\ifdefined\imki@shellescape % luatex >= 0.60 - \chardef\imki@shellescape=\@ne -% \RequirePackage{pdftexcmds}% -% \chardef\imki@shellescape=\pdf@shellescape +\ifdefined\imki@shellescape % luatex \else \@ifundefined{shellescape} - {\let\imki@shellescape\pdfshellescape} - {\let\imki@shellescape\shellescape} + {\let\imki@shellescape\pdfshellescape} % pdftex + {\let\imki@shellescape\shellescape} % xetex \fi \ifnum\imki@shellescape=\z@ \let\KV@imki@noautomaticfalse\KV@imki@noautomatictrue @@ -1154,5 +1174,10 @@ and the derived files imakeidx.sty and imakeidx.pdf. \let\imki@putindexunique\@undefined \fi % \end{macrocode} +% To end the code, we deal with \pack{memoir}: +% \begin{macrocode} +\@ifclassloaded{memoir}{\let\@wrindexm@m\@wrindex}{} +% \end{macrocode} + % The end. % \Finale diff --git a/Master/texmf-dist/tex/latex/imakeidx/imakeidx.sty b/Master/texmf-dist/tex/latex/imakeidx/imakeidx.sty index 28cfc0538ef..686d541318f 100644 --- a/Master/texmf-dist/tex/latex/imakeidx/imakeidx.sty +++ b/Master/texmf-dist/tex/latex/imakeidx/imakeidx.sty @@ -5,16 +5,16 @@ %% The original source files were: %% %% imakeidx.dtx (with options: `package') -%% ______________________________________________________ +%% ___________________________________________________________ %% The imakeidx package for LaTeX -%% Copyright (C) 2010 Claudio Beccari and Enrico Gregorio +%% Copyright (C) 2010-2012 Claudio Beccari and Enrico Gregorio %% All rights reserved %% %% License information appended %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{imakeidx}% - [2010/07/12 v.1.0a Package for typesetting indices in a synchronous mode] + [2012/05/09 v1.1 Package for typesetting indices in a synchronous mode] \RequirePackage{xkeyval} \DeclareOption{xindy}{\def\imki@progdefault{texindy}} \DeclareOption{texindy}{\def\imki@progdefault{texindy}} @@ -40,14 +40,18 @@ \def\imki@engine{(pdf)latex} \ifdefined\XeTeXversion\def\imki@engine{xelatex}\fi \ifdefined\directlua % luatex doesn't have \(pdf)shellescape - \def\imki@engine{lualatex}\chardef\imki@shellescape\@cclv + \def\imki@engine{lualatex} + \ifnum\luatexversion<68 + \chardef\imki@shellescape\@ne % no way to know the value + \else + \RequirePackage{pdftexcmds} % provides \pdf@shellescape + \chardef\imki@shellescape\pdf@shellescape + \fi + \let\imki@exec\pdf@system \fi \edef\imki@splitindexoptions{-m \string"\string"} \def\splitindexoptions#1{\g@addto@macro\imki@splitindexoptions{ #1}} \@onlypreamble\splitindexoptions -\@ifclassloaded{memoir}{% - \PackageError{imakeidx}{Incompatible package won't be loaded} - {This package is incompatible with memoir, sorry}\endinput}{} \@namedef{ver@makeidx.sty}{3000/12/31} \@ifpackageloaded{multind} {\PackageError{imakeidx}{Incompatible package `multind' loaded} @@ -166,12 +170,11 @@ \endgroup \@esphack} \def\imki@shellwarn{} -\ifdefined\imki@shellescape % luatex >= 0.60 - \chardef\imki@shellescape=\@ne +\ifdefined\imki@shellescape % luatex \else \@ifundefined{shellescape} - {\let\imki@shellescape\pdfshellescape} - {\let\imki@shellescape\shellescape} + {\let\imki@shellescape\pdfshellescape} % pdftex + {\let\imki@shellescape\shellescape} % xetex \fi \ifnum\imki@shellescape=\z@ \let\KV@imki@noautomaticfalse\KV@imki@noautomatictrue @@ -358,9 +361,11 @@ \let\imki@wrindexunique\@undefined \let\imki@putindexunique\@undefined \fi +\@ifclassloaded{memoir}{\let\@wrindexm@m\@wrindex}{} + %% -%% Copyright 2010 Claudio Beccari -%% Copyright 2010 Enrico Gregorio +%% Copyright 2010--2012 Claudio Beccari +%% Copyright 2010--2012 Enrico Gregorio %% %% Distributable under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of -- cgit v1.2.3