mirror of
https://github.com/kennethreitz/context.git
synced 2026-06-05 23:00:17 +00:00
212 lines
8.2 KiB
LLVM
212 lines
8.2 KiB
LLVM
/*
|
|
* @progname famgroup.ll
|
|
* @version 1.1
|
|
* @author Kris Stanton <kriss@medianet.com>
|
|
* @category
|
|
* @output TeX
|
|
* @description
|
|
*
|
|
* Family Group Sheet for LifeLines
|
|
*
|
|
* Minor fixes by Patrick Texier 12/28/2005
|
|
*
|
|
* The output is in LaTeX format. Therefore, the name of the output file
|
|
* should end in ".tex". To print (assuming the name of the output file is
|
|
* "out.tex"):
|
|
* latex out
|
|
* dvips out -o out.ps
|
|
* lpr out.ps
|
|
* or if you have it, you can generate a pdf with
|
|
* pdflatex out
|
|
*/
|
|
|
|
proc main ()
|
|
{
|
|
getfam(fam)
|
|
dayformat(0)
|
|
monthformat(6)
|
|
dateformat(0)
|
|
set(tday, gettoday())
|
|
set (nl,nl())
|
|
set(h,husband(fam))
|
|
set(w,wife(fam))
|
|
col(0) "\\documentclass[landscape]\{article\}"
|
|
col(0) "\\setlength\{\\topmargin\}\{-1.3in\}"
|
|
col(0) "\\setlength\{\\oddsidemargin\}\{-.8in\}"
|
|
col(0) "\\setlength\{\\evensidemargin\}\{-.8in\}"
|
|
col(0) "\\setlength\{\\textwidth\}\{11in\}"
|
|
col(0) "\\setlength\{\\textheight\}\{9in\}"
|
|
col(0) "\\pagestyle\{empty\}"
|
|
col(0) "\\begin\{document\}"
|
|
col(0) "\\begin{center}"
|
|
col(0) "\\bfseries \\Large Family Group Sheet"
|
|
col(0) "\\end{center}" nl nl
|
|
col(0) "\\begin\{tabular\}\{lp\{7.85in\}\}"
|
|
col(0) "\\bfseries \\Large Husband's Name & \\Large "
|
|
col(0) fullname(h,1,1,50) " (\\#"key(h)") \\\\ \\cline{2-2}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
set(evt, birth(h))
|
|
col(0) "\\begin{tabular}{p{.25in}p{.87in}p{3.75in}p{.4in}p{3.75in}}"
|
|
col(0) "& When Born & " stddate(evt) " & Where & "
|
|
place(evt) " \\\\ \\cline{3-3} \\cline{5-5}"
|
|
|
|
set(evt, death(h))
|
|
col(0) "& When Died & " stddate(evt) " & Where & "
|
|
place(evt)" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
|
|
set(evt, burial(h))
|
|
col(0) "& When Buried & " stddate(evt) " & Where & "
|
|
place(evt) " \\\\ \\cline{3-3} \\cline{5-5}"
|
|
|
|
set(evt, marriage(fam))
|
|
col(0) "& When Married & " stddate(evt) " & Where & "
|
|
place(evt)" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\begin{tabular}{p{.25in}lp{7.84in}}"
|
|
col(0) "& Other Wives (if any) & "
|
|
spouses (h, sname, famname, number) {
|
|
if (ne(w,sname)) {
|
|
"$\\triangleright$ " name(sname)
|
|
" \\hspace{.1in} "
|
|
}
|
|
}
|
|
" \\\\ \\cline{3-3}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\begin{tabular}{p{.25in}p{.87in}p{3.75in}p{.68in}p{3.48in}}"
|
|
col(0) "& His Father & " name(father(h))
|
|
if (father(h)) { " (\\#" key(father(h))")" }
|
|
" & His Mother & " name(mother(h))
|
|
if (father(h)) { " (\\#" key(mother(h))")" }
|
|
" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\vspace{.1in}"
|
|
col(0) "\\begin{tabular}{lp{7.44in}}"
|
|
col(0) "\\bfseries \\Large Wife's Maiden Name & \\Large "
|
|
fullname(w,1,1,50) " (\\#"key(w)")" " \\\\ \\cline{2-2}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
set(evt, birth(w))
|
|
col(0) "\\begin{tabular}{p{.25in}p{.87in}p{3.75in}p{.4in}p{3.75in}}"
|
|
col(0) "& When Born & " stddate(evt) " & Where & "
|
|
place(evt)" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
|
|
set(evt, death(w))
|
|
col(0) "& When Died & " stddate(evt) " & Where & "
|
|
place(evt)" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
|
|
set(evt, burial(w))
|
|
col(0) "& When Buried & " stddate(evt) " & Where & "
|
|
place(evt) " \\\\ \\cline{3-3} \\cline{5-5}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\begin{tabular}{p{.25in}lp{7.6in}}"
|
|
col(0) "& Other Husbands (if any) & "
|
|
spouses (w, sname, famname, number) {
|
|
if (ne(h,sname)) {
|
|
"$\\triangleright$ " name(sname)
|
|
"\\hspace{.1in} "
|
|
}
|
|
}
|
|
" \\\\ \\cline{3-3}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\begin{tabular}{p{.25in}p{.87in}p{3.75in}p{.7in}p{3.44in}}"
|
|
col(0) "& Her Father & " name(father(w))
|
|
if (father(w)) { " (\\#" key(father(w))")" }
|
|
" & Her Mother &" name(mother(w))
|
|
if (mother(w)) { " (\\#" key(mother(w))")" }
|
|
" \\\\ \\cline{3-3} \\cline{5-5}"
|
|
col(0) "\\end{tabular}" nl nl
|
|
|
|
col(0) "\\vspace{.1in}"
|
|
col(0) "\\scriptsize"
|
|
col(0) "\\begin{tabular}{c|p{2.15in}|cp{.6in}p{.25in}|p{2in}|cp{.6in}p{.25in}|p{2.1in}} \\hline \\hline"
|
|
col(0) "M/F & Children & "
|
|
col(0) "\\multicolumn{3}{c|}{When Born} & Where Born & "
|
|
col(0) "\\multicolumn{3}{c|}{When Died} & Married \\\\ "
|
|
col(0) "& (in order of birth) & \\centering Day & \\centering Month & \\centering Year &"
|
|
col(0) "City/Town, County, State/Country & "
|
|
col(0) "\\centering Day & \\centering Month & \\centering Year & \\\\ \\hline \\hline"
|
|
|
|
children(fam, child, num) {
|
|
set(ns, nspouses(child))
|
|
families(child, fvar, svar, no) {
|
|
if(eq(1,ns)) {
|
|
col(0) "& (\\#"key(child)") & & & & & & & &\\small Date: "
|
|
stddate(marriage(fvar)) " \\\\"
|
|
}
|
|
if(and(gt(ns,1),eq(no,1))) {
|
|
col(0) "& (\\#"key(child)") & & & & & & & &\\small Date: "
|
|
stddate(marriage(fvar)) " $\\dagger$ \\\\"
|
|
}
|
|
}
|
|
if(eq(0,ns)) {
|
|
col(0) "& (\\#"key(child)") & & & & & & & & \\small Date: \\\\ "
|
|
}
|
|
|
|
extractdate(birth(child), ddy, mmo, yyr)
|
|
col(0) "\\small " sex(child) "& \\small " d(num)" \\hspace{.1in}"
|
|
givens(child) nl
|
|
" & \\centering \\small " if(ne(ddy,0)) {d(ddy)} " & \\centering \\small "
|
|
if(eq(mmo,1)){ "January" }
|
|
if(eq(mmo,2)){ "February" }
|
|
if(eq(mmo,3)){ "March" }
|
|
if(eq(mmo,4)){ "April" }
|
|
if(eq(mmo,5)){ "May" }
|
|
if(eq(mmo,6)){ "June" }
|
|
if(eq(mmo,7)){ "July" }
|
|
if(eq(mmo,8)){ "August" }
|
|
if(eq(mmo,9)){ "September" }
|
|
if(eq(mmo,10)){ "October" }
|
|
if(eq(mmo,11)){ "November" }
|
|
if(eq(mmo,12)){ "December" }
|
|
" & \\centering \\small " if(ne(yyr,0)) {d(yyr)}
|
|
" & \\small " place(birth(child))
|
|
if(death(child)) {
|
|
extractdate(death(child), ddy, mmo, yyr)
|
|
}
|
|
else {
|
|
set(ddy, 0)
|
|
set(mmo, 0)
|
|
set(yyr, 0)
|
|
}
|
|
col(0) " & \\centering \\small " if(ne(ddy,0)){d(ddy)}
|
|
" & \\small \\centering "
|
|
if(eq(mmo,1)){ "January" }
|
|
if(eq(mmo,2)){ "February" }
|
|
if(eq(mmo,3)){ "March" }
|
|
if(eq(mmo,4)){ "April" }
|
|
if(eq(mmo,5)){ "May" }
|
|
if(eq(mmo,6)){ "June" }
|
|
if(eq(mmo,7)){ "July" }
|
|
if(eq(mmo,8)){ "August" }
|
|
if(eq(mmo,9)){ "September" }
|
|
if(eq(mmo,10)){ "October" }
|
|
if(eq(mmo,11)){ "November" }
|
|
if(eq(mmo,12)){ "December" }
|
|
" & \\centering \\small " if(ne(yyr,0)){d(yyr)}
|
|
" & \\small To: "
|
|
families(child, fvar, svar, no) {
|
|
if(and(gt(ns,0),eq(no,1))) {
|
|
name(svar) " \\\\ \\hline "}
|
|
}
|
|
if(eq(0,ns)) {
|
|
" \\\\ \\hline "}
|
|
}
|
|
set(left, sub(14, nchildren(fam)))
|
|
while(gt(left, 0)) {
|
|
col(0) "& & & & & & & & &\\small Date: \\\\"
|
|
col(0) "&\\small " d(sub(15,left)) " & & & & & & & &\\small To: \\\\ \\hline"
|
|
set(left, sub(left,1))
|
|
}
|
|
col(0) "\\end{tabular}" nl nl
|
|
col(0) "\\hspace{8in} \\scriptsize $\\dagger =$ more than one marriage"
|
|
col(0) "\\end{document}" nl
|
|
}
|
|
|
|
/* End of Report */
|