summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/inlinebib/pageranges.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:57:08 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:57:08 +0000
commitad49b1da75fc4eef2808ccb07ceae93a5ba5dcf3 (patch)
treef3932c8e1c551fd092ad63d8668166eb6898c6ab /Master/texmf-dist/tex/latex/inlinebib/pageranges.sty
parent36d4aa42d015b48d19108d0b983d26cc207ca078 (diff)
inlinebib
git-svn-id: svn://tug.org/texlive/trunk@995 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/inlinebib/pageranges.sty')
-rw-r--r--Master/texmf-dist/tex/latex/inlinebib/pageranges.sty94
1 files changed, 94 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/inlinebib/pageranges.sty b/Master/texmf-dist/tex/latex/inlinebib/pageranges.sty
new file mode 100644
index 00000000000..97fa9603340
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/inlinebib/pageranges.sty
@@ -0,0 +1,94 @@
+% Copyright (C) 1999 René Seindal (rene@seindal.dk)
+
+% This program can 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 (at your option) any later version.
+
+ %% Macros for citing.
+
+\let\@DEBUG@CIT\@gobble
+%\let\@DEBUG@CIT\typeout
+
+ %% \@PG does #1={a} -> {p.~a}
+ %% and #1={a-} -> {pp.~a~ff}
+ %% and #1={a-b} -> {pp.~a--b}
+ %% and #1={a b} -> {pp.~a b}
+
+\def\@PG#1{%
+ \@DEBUG@CIT{START: #1}%
+ {\@@PG#1 \@nil}%
+}
+
+\newcommand\pages[2][\@gobble]{#1{, }\@PG{#2}}
+
+\def\@@PG#1 #2\@nil{%
+ \def\@tempa{#1}%
+ \def\@tempb{#2}%
+ \ifx\@tempb\@empty
+ \def\next{\@PGrange#1-\@nil}%
+ \else
+ \let\next\@PGspace
+ \fi
+ \next
+}
+
+ %% argument is "a-b"; tmpa="X" tmpb=void
+
+\def\@PGrange#1-#2\@nil{\hbox{%
+ \@DEBUG@CIT{RANGE: =#1=#2=}%
+ \def\@tempb{#2}%
+ \ifx\@tempb\@empty
+ p.~#1%
+ \else
+ pp.~#1%
+ \edef\@tempb{\@PGundash#2}%
+ \ifx\@tempb\@empty
+ ff%
+ \else
+ --\@tempb
+ \fi
+ \fi
+}}
+
+\def\@PGundash#1-{#1}
+
+
+ %% argument is "a b"; tmpa="a" tmpb="b "
+
+\def\@PGspace{%
+ \@DEBUG@CIT{SPACE: =\@tempa=\@tempb=}%
+ \ifx\@tempb\@empty
+ \else
+ p%
+ \fi
+ p.~\expandafter\@PGdash\@tempa-\@nil%
+ \expandafter\@PGdashloop\@tempb\@nil%
+}
+
+ %% argument is "b"; tmpa="a" tmpb="b "
+
+\def\@PGdashloop#1 #2\@nil{%
+ \@DEBUG@CIT{TEST: =#1=#2=}%
+ \space\@PGdash#1-\@nil%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty
+ \else
+ \@PGdashloop#2\@nil%
+ \fi
+}
+
+\def\@PGdash#1-#2\@nil{\hbox{#1%
+ \@DEBUG@CIT{DASH: =#1=#2=}%
+ \def\@tempa{#2}%
+ \ifx\@tempa\@empty
+ \else
+ \edef\@tempa{\@PGundash#2}%
+ \ifx\@tempa\@empty
+ ff%
+ \else
+ --\@tempa
+ \fi
+ \fi
+}}
+