blob: 8489099230b65e2c00a074119191bbc727fb7262 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
\long\edef\citations{}
\long\def\newcitation#1#2{%
\long\edef\citations{\citations{#2}%allows alphabetization by including sanitized relevant data
\parindent=0in\hangafter=1\hangindent=0.5in\relax%hanging indents must be inserted every paragraph
#1\par}%
}
\def\cite#1{%the actual citation request made by users
\def\cltitle{}\def\clcontain{}%"clean" data intended for alphabetization in bibliography
\def\ifnameinline{\iffalse}\def\nameinline{\def\ifnameinline{\iftrue}}%
\def\ifnewcite{\iffalse}\def\newcite{\def\ifnewcite{\iftrue}}%
\def\ifusetitle{\iffalse}\def\usetitle{\def\ifusetitle{\iftrue}}%
\def\@authlast{}\def\@namedisp{}\def\name##1##2{\def\@authlast{##1}\def\@namedisp{\ifx\@title\empty ##2.\fi}}%takes a last name and how names ought display, allowing multiple authors
\def\@title{}\def\title##1{\def\@title{``##1.''}\def\cltitle{##1}}%individual source like chapter or webpage
\def\@contain{}\def\contain##1{\def\@contain{ {\twelveit ##1}\ifx\@title\empty .\else, by \@namedisp \comma \fi}\def\clcontain{##1}}%container (book contains chapter)
\def\@contrib{}\def\contrib##1{\def\@contrib{\ ##1\comma}}%other contributors with roles
\def\@version{}\def\version##1{\def\@version{\ ##1\comma}}%version, if notable or unique
\def\@relnums{}\def\relnums##1{\def\@relnums{\ ##1\comma}}%relevant numbers like journal issue or volume number
\def\@publish{}\def\publish##1{\def\@publish{\ ##1\comma}}%publisher
\def\@pubdate{}\def\pubdate##1{\def\@pubdate{\ ##1\comma}}%publication date
\def\@locator{}\def\locator##1{\def\@locator{\ ##1}}%page numbers or web address
\def\@pagenum{}\def\pagenum##1{\def\@pagenum{##1}}%page number, as relevant to inline citations
\countdef\commas=11\count11=0%
#1%
\ifx\@contrib\empty \else \advance \commas by 1\fi%
\ifx\@version\empty \else \advance \commas by 1\fi%
\ifx\@relnums\empty \else \advance \commas by 1\fi%
\ifx\@publish\empty \else \advance \commas by 1\fi%
\ifx\@pubdate\empty \else \advance \commas by 1\fi%
\ifx\@locator\empty \else \advance \commas by 1\fi%
\def\comma{\advance\commas by -1 \noexpand\ifnum\noexpand\commas>0 ,\noexpand\fi}%
\ifnewcite\newcitation{\@namedisp \@title \@contain \@contrib \@version \@relnums \@publish \@pubdate \@locator.}{\@namedisp\cltitle\clcontain}\fi%
(\ifnameinline
\ifx\@authlast\empty
\@title
\else
\@authlast
\fi\ %
\fi \@pagenum)%
}
\long\def\biblio{ %generates a bibliography
\vfil \eject %prints all previous pages and starts bibliography
\line{\hfil Works Cited \hfil}%
%%Alphabetization
\immediate\openout0=sort.tex%
\immediate\write0{\unexpanded\expandafter{\citations}}%
\immediate\closeout0%
\immediate\write18{python3 sort.py}%sort sort.tex alphabetically by the first group (also remove first group)
\immediate\openin0=sort.tex%
\immediate\read0 to \data%
\immediate\data%
\immediate\closein0%
}
|