diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:55:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:55:19 +0000 |
commit | 2b7dae085debe65e07af06b66461f5b1a020a76f (patch) | |
tree | 3786af091177b6a2365021881f6d5ae62b0b420b | |
parent | eb73427e02ac95f0663818a5b63e7a225e23f641 (diff) |
trunk/Master/texmf-dist/source/latex/multibbl
git-svn-id: svn://tug.org/texlive/trunk@398 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/source/latex/multibbl/multibbl.dtx | 194 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/multibbl/multibbl.ins | 57 |
2 files changed, 251 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/multibbl/multibbl.dtx b/Master/texmf-dist/source/latex/multibbl/multibbl.dtx new file mode 100644 index 00000000000..523867dd0d0 --- /dev/null +++ b/Master/texmf-dist/source/latex/multibbl/multibbl.dtx @@ -0,0 +1,194 @@ +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%\iffalse +% +% (c) copyright 2001-2004 Apostolos Syropoulos +% This software is derived from original software by the LaTeX3 Project. +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% Please report errors or suggestions for improvement to +% +% Apostolos Syropoulos +% 366, 28th October Str. +% GR-671 00 Xanthi, GREECE +% apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr +%\changes{v1.1}{2004/07/27}{Added percent symbols to avoid unnecessary +% wait space.} +%\fi +% \CheckSum{125} +% \iffalse This is a Metacomment +% +% \begin{macrocode} +%<*driver> +\documentclass{ltxdoc} +\GetFileInfo{multibbl.drv} +\begin{document} + \DocInput{multibbl.dtx} +\end{document} +%</driver> +% \end{macrocode} +% \fi +% +%\title{The ``multibbl'' package} +%\author{Apostolos Syropoulos\\366, 28th October Str.\\ +%GR-671 00 Xanthi, HELLAS\\ +%Email:\texttt{apostolo@obelix.ee.duth.gr}\\ or \\ +%\hphantom{Email:}\texttt{apostolo@ocean1.ee.duth.gr}} +% \date{2004/07/27} +%\maketitle +% \begin{abstract} +% The package ``multibbl'' redefines the standard commands bibliographic +% commands so that one can generate multiply reference sections. Each +% section has it own auxiliary file (for use with BibTeX) and title. +% \end{abstract} +%\MakeShortVerb{\|} +%\StopEventually{} +%\section{Introduction} +% This package has been designed for people who write a document that +% has references in languages that use different scripts. For example, +% if one prepares a book in Greek, then his/her document may have +% references in Greek and in English. In this particular case, it makes +% no sense to sort the references and have only one bibliography section. +% It is better to have two bibliography sections: one for the Greek +% references and on for the English references. Moreover, it is possible +% to have references in more than two scripts. Then we obviously, need +% three or even more bibliography sections. By the redefining the standard +% \LaTeX\ user interface commands, this package makes it possible to have +% two or more bibliography sections in one document. Naturally, one can +% use this package for documents that use only one script, just in case +% there is a need to have multiply bibliography sections. +% +% \section{The code} +% +% As usual, we first have to identify the package: +% \begin{macrocode} +%<package> +\NeedsTeXFormat{LaTeX2e}[1996/01/01] +\ProvidesPackage{multibbl}[2007/07/27\space v1.1] +\typeout{Package: `multibbl' v1.1\space <2004/07/27> (A. Syropoulos)} +% \end{macrocode} +% +%\begin{macro}{\newbibliography} +% Now we have to define a new command which has one argument: the name of +% a new auxiliary file. If that file does not exist, it simply creates +% this file. +% \begin{macrocode} +\def\newbibliography#1{\begingroup + \if@filesw \expandafter\newwrite\csname #1@auxfile\endcsname + \expandafter\immediate\openout \csname #1@auxfile\endcsname #1.aux\relax + \typeout{Writing auxiliary file #1.aux }\fi \endgroup} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@citex} +% The command |\@citex| is used internally to process the arguments of +% the |\cite| command. Since, the later command has now two required +% arguments, the name of an auxiliary file and the usual citation labels, +% we have to redefine the |\@citex| command so that these labels are +% written into the auxiliary file, just in case we want to generate the +% bibliography with BibTeX. What we actually do is to replace the code +% \begin{verbatim} +% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi +% \end{verbatim} +% with the code +% \begin{verbatim} +% \@ifundefined{#2@auxfile}{}{\expandafter\immediate% +% \write\csname #2@auxfile\endcsname{\string\citation{\@citeb}}}% +% \end{verbatim} +% This code checks whether we have defined the control sequence +% |#2@auxfile|, where |#2| is the first required argument, i.e., the +% name of the auxiliary file, and if it is it writes the citation +% labels to this file. +% \begin{macrocode} +\def\@citex[#1]#2#3{% + \let\@citea\@empty + \@cite{\@for\@citeb:=#3\do + {\@citea\def\@citea{,\penalty\@m\ }% + \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% + \@ifundefined{#2@auxfile}{}{\expandafter\immediate% + \write\csname #2@auxfile\endcsname{\string\citation{\@citeb}}}% + \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}% + \G@refundefinedtrue + \@latex@warning + {Citation `\@citeb' on page \thepage \space undefined}}% + {\hbox{\csname b@\@citeb\endcsname}}}}{#1}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\bibliography} +% The |\bibliography| command has been redefined to take three required +% arguments: the first is the name of the auxiliary file, the second is +% the argument that the standard command has and the third is the +% the title of the bibliographic section, i.e., what will appear +% in the running heads, etc. In order to do this, we have to redefine the +% commands |\bibname| and |\refname|, which are used to typeset the running +% heads, etc. +% \begin{macrocode} +\def\bibliography#1#2#3{% + \@ifundefined{#1@auxfile}{}{\expandafter\immediate% + \write\csname #1@auxfile\endcsname{\string\bibdata{#2}}}% + \def\bibname{#3}% + \def\refname{#3}% + \@input@{#1.bbl}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\bibliographystyle} +% The |\bibliographystyle| command has two arguments: the name of an +% auxiliary file and the name of a bibliographic style. With this +% command one can specify the bibliographic style each bibliography section +% will have. Although, at first sight it makes no sense to use different +% bibliographic styles. However, we believe that this feature may be proved +% useful in cases where it is not possible to distinguish to which +% bibliography section each citation belongs to. +% \begin{macrocode} +\def\bibliographystyle#1#2{% + \ifx\@begindocumenthook\@undefined\else + \expandafter\AtBeginDocument + \fi + \@ifundefined{#1@auxfile}{}{\expandafter\immediate% + \write\csname #1@auxfile\endcsname{\string\bibstyle{#2}}}}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\nocite} +% The |\nocite| command has been redefined so that it has two required +% arguments: the name of an auxiliary file and the standard argument. +% \begin{macrocode} +\def\nocite#1#2{\@bsphack + \@for\@citeb:=#2\do{% + \edef\@citeb{\expandafter\@firstofone\@citeb}% + \@ifundefined{#1@auxfile}{}{\expandafter\immediate% + \write\csname #1@auxfile\endcsname{\string\citation{\@citeb}}}% + \@ifundefined{b@\@citeb}{\G@refundefinedtrue + \@latex@warning{Citation `\@citeb' undefined}}{}}% + \@esphack} +% \end{macrocode} +%\end{macro} +% Although it is not necessary to explicitly terminate a +% package, we believe it is good practice to do it. +% \begin{macrocode} +\endinput +%</package> +% \end{macrocode} +% \section*{Acknowledgment} +% I thank Antonis Tsolomitis for checking this usability of this package. +% \section*{Dedication} +% To the fond memory of my late brother Mikhail Syropoulos. +% \Finale diff --git a/Master/texmf-dist/source/latex/multibbl/multibbl.ins b/Master/texmf-dist/source/latex/multibbl/multibbl.ins new file mode 100644 index 00000000000..ba8a757e854 --- /dev/null +++ b/Master/texmf-dist/source/latex/multibbl/multibbl.ins @@ -0,0 +1,57 @@ +%% (c) Copyright 2001 Apostolos Syropoulos +%% +%% This file is part of the `multibbl' package. +%% You are not allowed to modify the contents of this file and +%% call the resulting file(s) with the same name. +%% +\def\filedate{2004/07/27} +\def\batchfile{multibbl.ins} +\input docstrip.tex + +{\ifx\generate\undefined +\Msg{**********************************************} +\Msg{*} +\Msg{* This installation requires docstrip} +\Msg{* version 2.3c or later.} +\Msg{*} +\Msg{* An older version of docstrip has been input} +\Msg{*} +\Msg{**********************************************} +\errhelp{Move or rename old docstrip.tex.} +\errmessage{Old docstrip in input path} +\batchmode +\csname @@end\endcsname +\fi} + +\preamble + + (c) copyright 2001 Apostolos Syropoulos + This software is derived from original software by the LaTeX3 Project. + This program can be redistributed and/or modified under the terms + of the LaTeX Project Public License Distributed from CTAN + archives in directory macros/latex/base/lppl.txt; either + version 1 of the License, or any later version. + + Please report errors or suggestions for improvement to + + Apostolos Syropoulos + 366, 28th October Str. + GR-671 00 Xanthi, GREECE + apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr + +\endpreamble + + +\keepsilent + +\generate{\generateFile{multibbl.sty}{f}{\from{multibbl.dtx}{package}}} +\postamble +\endpostamble +\Msg{*******************************************} +\Msg{* To finish installation you have to copy } +\Msg{* file multibbl.sty file in the appropriate} +\Msg{* directory and to rehash your TeX if it is} +\Msg{* required to do so. } +\Msg{*\space\space\space\space\space\space\space\space Happy LaTeXing!} +\Msg{*******************************************} +\endinput |