From 707e19bbe7f732068f5e535e9c82fcf26c321bb7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 7 Apr 2014 20:56:43 +0000 Subject: seealso (7apr14) git-svn-id: svn://tug.org/texlive/trunk@33400 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/seealso/seealso.sty | 125 ++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/seealso/seealso.sty (limited to 'Master/texmf-dist/tex/latex/seealso') diff --git a/Master/texmf-dist/tex/latex/seealso/seealso.sty b/Master/texmf-dist/tex/latex/seealso/seealso.sty new file mode 100644 index 00000000000..ae67167b76f --- /dev/null +++ b/Master/texmf-dist/tex/latex/seealso/seealso.sty @@ -0,0 +1,125 @@ +%% +%% This is file `seealso.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% seealso.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2014 by Leo Liu +%% -------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{seealso} + [2014/04/06 v1.0 makeidx's see and seealso with page number support.] +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{ + family=seealso@opt, + prefix=seealso@} +\DeclareBoolOption[true]{override} +\DeclareBoolOption[true]{activecr} +\ProcessKeyvalOptions* +\def\seealso@charlet#1{% + \begingroup\lccode`\~=`#1\lowercase{\endgroup\let~}} +\let\seealso@macrolist\empty +\def\seealso@clearlists{% + \def\do##1{\cslet{seealso@##1@list}\empty}% + \dolistloop\seealso@macrolist} +\AtBeginDocument{\seealso@clearlists} +\newcommand\SeealsoPrintList{% + \forlistloop\seealso@printlist\seealso@macrolist + \seealso@clearlists} +\newif\ifseealso@firstitem +\def\seealso@printlist#1{% + \ifcsempty{seealso@#1@list} + {} + {\csuse{seealso@#1@listsep}% + \csuse{seealso@#1@nameformat}{\csuse{#1name}}% + \seealso@firstitemtrue + \forlistcsloop{\seealso@listitem{#1}}{seealso@#1@list}}} +\def\seealso@listitem#1#2{% + \ifseealso@firstitem + \seealso@firstitemfalse + \else + \csuse{seealso@#1@itemsep}% + \fi + \csuse{seealso@#1@itemformat}{#2}} +\newcommand\DeclareSeealsoMacro[3]{% + \newcommand#1[2]{% + \seealso@setactivecr + \ifinlistcs{##1}{seealso@#2@list} + {} + {\listcsgadd{seealso@#2@list}{##1}}% + \csuse{seealso@#2@pageformat}{##2}}% + \listadd\seealso@macrolist{#2}% + \define@key{seealso@#2}{name}{% + \csdef{#2name}{##1}}% + \ifcsdef{#2name} + {} + {\setkeys{seealso@#2}{name=#3}}% + \def\do##1{% + \define@key{seealso@#2}{##1}{% + \csdef{seealso@#2@##1}{####1}}% + \setkeys{seealso@#2}{##1=\csuse{seealso@##1}}}% + \docsvlist{listsep,itemsep}% + \def\do##1{% + \define@key{seealso@#2}{##1}{% + \csdef{seealso@#2@##1}########1{####1}}% + \setkeys{seealso@#2}{##1=\csuse{seealso@##1}{####1}}}% + \docsvlist{nameformat,itemformat,pageformat}} +\@onlypreamble{\DeclareSeealsoMacro} +\newif\ifseealso@iscractive +\def\seealso@setactivecr{% + \ifseealso@activecr + \unless\ifseealso@iscractive + \catcode`\^^M=\active + \seealso@charlet\^^M\seealso@cr + \seealso@iscractivetrue + \fi + \fi} +\def\seealso@cr{% + \catcode`\^^M=5 + \seealso@iscractivefalse + \SeealsoPrintList} +\def\seealso@listsep{,\space} +\def\seealso@itemsep{,\space} +\def\seealso@nameformat#1{\emph{#1}\space} +\def\seealso@itemformat#1{#1} +\def\seealso@pageformat#1{#1} +\def\seealso@define@key#1{% + \define@key{seealso}{#1}{% + \csdef{seealso@#1}{##1}}} +\def\seealso@define@keyarg#1{% + \define@key{seealso}{#1}{% + \csdef{seealso@#1}####1{##1}}} +\forcsvlist\seealso@define@key{listsep,itemsep} +\forcsvlist\seealso@define@keyarg{nameformat,itemformat,pageformat} +\def\SeealsoGobble#1{\@ifnextchar#1{\seealso@gobbleignorespaces}{}} +\def\seealso@gobbleignorespaces#1{\ignorespaces} +\newcommand\seealsosetup[2][]{% + \ifstrempty{#1}{% + \setkeys{seealso}{#2}% + }{% + \def\do##1{\setkeys{seealso@##1}{#2}}% + \forcsvlist{\do}{#1}}} +\let\seenopage\see +\let\seealsonopage\seealso +\DeclareSeealsoMacro\seepage{see}{see} +\DeclareSeealsoMacro\seealsopage{also}{see also} +\ifseealso@override + \def\see{\seepage} + \def\seealso{\seealsopage} +\fi +\endinput +%% +%% End of file `seealso.sty'. -- cgit v1.2.3