From: Don Armstrong Date: Sun, 2 Oct 2005 21:55:17 +0000 (+0000) Subject: added texmf X-Git-Url: https://git.donarmstrong.com/?p=lib.git;a=commitdiff_plain;h=bb60952e6d6e5d94a78ecdff85570ce2535cb2c1 added texmf --- diff --git a/texmf/aliases b/texmf/aliases new file mode 100644 index 0000000..e69de29 diff --git a/texmf/bibtex/unsrtdon.bst b/texmf/bibtex/unsrtdon.bst new file mode 100644 index 0000000..d99ecae --- /dev/null +++ b/texmf/bibtex/unsrtdon.bst @@ -0,0 +1,949 @@ +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { + year + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/texmf/invoice.def b/texmf/invoice.def new file mode 100644 index 0000000..f6be4f4 --- /dev/null +++ b/texmf/invoice.def @@ -0,0 +1,319 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% File: invoice.def +% Author: Oliver Corff +% Date: 2003-12-12 +% +% This file contains messages, labels etc. in English, German +% and other languages. +% +% This file cannot be used alone but is called by invoice.sty +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This file is the only file of this package which may be +% modified without renaming it. +% +% Adding a new language to labels is simple. Follow the +% instructions at line 275 of this file, and, please!, +% do not forget to send the result to +% +% corff@zedat.fu-berlin.de or oliver.corff@email.de +% +% Credits for language contributions given in invoice.sty. +% +% Thank you very much for your support of "invoice". +% +% Oliver Corff, +% +% Berlin, Guangzhou, Ulaanbaatar, Zagreb, Shenyang, Shanghai 2003 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% English definitions are default. Other +% languages are selected automatically. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Warning messages for non-fatal situations +% +\def\InvoiceCompleted {Invoice completed. Command ignored.}% +\def\FeeSTExists {You cannot print a fee subtotal twice!}% +\def\ProjectEmpty {Project empty. No subtotal possible!}% +\def\ProjectSTExists {You cannot print a project subtotal twice!}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Error messages for fatal situations +% +\def\InternalError {Package `invoice': Internal error!}% +% +\def\NoInvoiceNesting {Invoices cannot be nested. + Close this invoice first!}% +% +\def\InvoiceCompletedNoExpense {Invoice closed. + No new expense item allowed. + Start a new invoice + first!}% +% +\def\InvoiceCompletedNoFee {Invoice closed. + No new fee item allowed. + Start a new invoice + first!}% +% +\def\InvoiceCompletedNoFeeST {Invoice closed. + No fee subtotal allowed. + Start a new invoice + first!}% +% +\def\InvoiceCompletedNoProject {Invoice closed. + No new project allowed. + Start a new invoice + first!}% +% +\def\InvoiceCompletedNoProjectST {Invoice closed. + No project subtotal allowed. + Start a new invoice + first!}% +% +\def\MissingFee {No fee given. + You must charge at least one fee!}% +% +\def\MissingInputData {Missing input data!}% +% +\def\MissingOpening {You must open an invoice!}% +% +\def\MissingProject {No project given. + Open a project first!}% +% +\def\FeeBeforeExpense {Fees are charged first. + Expenses follow.}% +% +\def\NoProjectNesting {Projects cannot be nested. + Close this project first!}% +% +\def\ProjectCompletedNoExpense {Project closed. + No new expense item allowed. + Start a new project + first!}% +% +\def\ProjectCompletedNoFee {Project closed. + No new fee item allowed. + Start a new project + first!}% +% +\def\KOMA {Users of KOMA-Script's scrlettr.cls% + ^^Jsay `invoiceno' for the scrlettr + invoice command,^^Jand `invoiceenv' + for the invoice environment!}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Labels. These ones are available in translation, too. See below. +% +\def\Warning {Warning}% +\def\Error {Error}% +\def\Expense {Expense}% +\def\Amount {Amount}% +\def\Currency {Currency}% +\def\Factor {Factor}% +\def\Activity {Activity}% +\def\Count {Count}% +\def\UnitRate {Rate/Unit}% +\def\Fees {Fees}% +\def\VAT {VAT}% +\def\Expenses {Expenses}% +\def\SumFees {Sum \Fees}% +\def\SumVAT {Sum \VAT}% +\def\SumExpenses {Sum \Expenses}% +\def\SubtotalFee {Subtotal \Fees}% +\def\SubtotalExpenses {Subtotal \Expenses}% +\def\SubtotalProject {Subtotal \Project}% + +\def\Total {Total}% +% +% This is German. +% +\ifx\l@german\undefined + \message{^^J(invoice) \Warning: + Language \string\l@german\space unknown.^^J^^J} +\else +\ifnum\number\invoice@language=\number\l@german + \def\Warning {Warnung}% + \def\Error {Fehler}% + \def\Expense {Auslage}% + \def\Amount {Betrag}% + \def\Currency {W\"ahrung}% + \def\Factor {Faktor}% + \def\Activity {Aktivit\"at}% + \def\Count {Anzahl}% + \def\UnitRate {Rate/Einheit}% + \def\Fees {Honorare}% + \def\VAT {MWSt.}% + \def\Expenses {Auslagen}% + \def\SumFees {Summe \Fees}% + \def\SumVAT {Summe \VAT}% + \def\SumExpenses {Summe \Expenses}% + \def\SubtotalFee {Zwischensumme \Fees}% + \def\SubtotalExpenses {Zwischensumme \Expenses}% + \def\SubtotalProject {Zwischensumme \Project}% + \def\Total {Gesamtsumme}% +\fi\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is Dutch. +% +\ifx\l@dutch\undefined + \message{^^J(invoice) \Warning: + Language \string\l@dutch\space unknown.^^J^^J} +\else +\ifnum\number\invoice@language=\number\l@dutch + \def\Warning {Waarschuwing}% + \def\Error {Fout}% + \def\Expense {Onkosten}% + \def\Amount {Bedrag}% + \def\Currency {Valuta}% + \def\Factor {Faktor}% + \def\Activity {Activiteit}% + \def\Count {Aantal}% + \def\UnitRate {Prijs/Eenheid}% + \def\Fees {Honorarium}% + \def\VAT {BTW}% + \def\Expenses {Onkosten}% + \def\SumFees {Totaal \Fees}% + \def\SumVAT {Totaal \VAT}% + \def\SumExpenses {Totaal \Expenses}% + \def\SubtotalFee {Subtotaal \Fees}% + \def\SubtotalExpenses {Subtotaal \Expenses}% + \def\SubtotalProject {Subtotaal \Project}% + \def\Total {Totaal}% +\fi\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is French. +% +\ifx\l@french\undefined + \message{^^J(invoice) \Warning: + Language \string\l@french\space unknown.^^J^^J} +\else +\ifnum\number\invoice@language=\number\l@french + \def\Warning {Avertissement}% + \def\Error {Erreur}% + \def\Expense {D\'epense}% + \def\Amount {Montant}% + \def\Currency {Devise}% + \def\Factor {Facteur}% + \def\Activity {Activit\'e}% + \def\Count {Quantit\'e}% + \def\UnitRate {Prix/Unit\'e}% + \def\Fees {Honoraires}% + \def\VAT {TVA}% + \def\Expenses {D\'epenses}% + \def\SumFees {Total \Fees}% + \def\SumVAT {Total \VAT}% + \def\SumExpenses {Total \Expenses}% + \def\SubtotalFee {Sous-Total \Fees}% + \def\SubtotalExpenses {Sous-Total \Expenses}% + \def\SubtotalProject {Sous-Total \Project}% + \def\Total {Total}% +\fi\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is Afrikaans. +% +\ifx\l@afrikaans\undefined + \message{^^J(invoice) \Warning: + Language \string\l@afrikaans\space unknown.^^J^^J} +\else +\ifnum\number\invoice@language=\number\l@afrikaans + \def\Warning {Waarskuwing} + \def\Error {Fout} + \def\Expense {Onkostes} + \def\Amount {Bedrag} + \def\Currency {Valuta} + \def\Factor {Faktor} + \def\Activity {Aktiwiteit} + \def\Count {Aantal ure} + \def\UnitRate {Tarief} + \def\Fees {Fooie} + \def\VAT {BTW} + \def\Expenses {Uitgawes} + \def\SumFees {Totaal Fooie} + \def\SumVAT {Totaal BTW} + \def\SumExpenses {Totaal Uitgawes} + \def\SubtotalFee {Subtotaal \Fees} + \def\SubtotalExpenses {Subtotaal \Expenses} + \def\SubtotalProject {Subtotaal \Project} + \def\Total {Totaal} +\fi\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This is Italian. +% +\ifx\l@italian\undefined + \message{^^J(invoice) \Warning: + Language \string\l@italian\space unknown.^^J^^J} +\else +\ifnum\number\invoice@language=\number\l@italian + \def\Warning {Avvertenza}% + \def\Error {Errore}% + \def\Expense {Spesa}% + \def\Amount {Ammontare}% + \def\Currency {Valuta}% + \def\Factor {Fattore}% + \def\Activity {Attivit\'a}% + \def\Count {Quantit\'a}% + \def\UnitRate {Prezzo/Unit\'a}% + \def\Fees {Onorario}% + \def\VAT {IVA}% + \def\Expenses {Spese}% + \def\SumFees {Totale onorario}% + \def\SumVAT {Totale IVA}% + \def\SumExpenses {Totale spese}% + \def\SubtotalFee {Subtotale onorario}% + \def\SubtotalExpenses {Subtotale spese}% + \def\SubtotalProject {Subtotale progetto}% + \def\Total {Totale}% +\fi\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% How to add new label languages to the `invoice' package: +% +% 1. Copy all following lines after this explanation +% and insert them above this comment. +% +% 2. Remove all comment symbols at the beginning of the lines. +% +% 3. Fill the empty parentheses {} with the appropriate +% translations. +% +% 4. Enter the correct internal language name used by LaTeX2e +% into the condition of the \ifnum clause. +% +% 5. Please do not forget to mail the resulting file to +% corff@zedat.fu-berlin.de or oliver.corff@email.de +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Name correct language name here --v-- +% and --v--! +%\ifx\l@german\undefined +% \message{^^J(invoice) \Warning: +% Language \string\l@german\space unknown.^^J^^J} +%\else +%\ifnum\number\invoice@language=\number\l@german +% \def\Warning {} % Enter translations here! +% \def\Error {} % +% \def\Expense {} % +% \def\Amount {} % +% \def\Currency {} % +% \def\Factor {} % +% \def\Activity {} % +% \def\Count {} % +% \def\UnitRate {} % +% \def\Fees {} % +% \def\VAT {} % +% \def\Expenses {} % +% \def\SumFees {} % +% \def\SumVAT {} % +% \def\SumExpenses {} % +% \def\SubtotalFee {} % +% \def\SubtotalExpenses {} % +% \def\SubtotalProject {} % +% \def\Total {} % +%\fi diff --git a/texmf/invoice.sty b/texmf/invoice.sty new file mode 100644 index 0000000..dbe6aaf --- /dev/null +++ b/texmf/invoice.sty @@ -0,0 +1,1012 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Datei: invoice.sty +% Autor: Oliver Corff +% Contact: corff@zedat.fu-berlin.de, oliver.corff@email.de +% Datum: December 16, 2003 +% Version: 0.7 +% Copyright: Ulaanbaatar, Beijing, Berlin, Zagreb, Shenyang, Shanghai +% Description: This collection of macros provides +% tools for generating complex invoices +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Corrections, suggestions and contributions by: +%%%%%% +% Jacopo, May 2003 +% e-mail: jacopo@ +% +% Contributed labels in Italian. +% +%%%%%% +% O. Corff, July 2003 +% +% fixed one nasty spacing bug, simplified internal table +% construction (table now has five instead of six columns, +% the second of which was never used). +% +%%%%%% +% Johann Spies, January 21, 2002 +% e-mail: jspies@sun.ac.za +% +% Hinted that \Subtotal Project should show the project name +% rather than just `Project'. +% +% Contributed labels in Afrikaans. +% +%%%%%% +% Robin Fairbairns, December 6, 2001 +% +% Hinted that the dollar sign can also be printed by saying +% \string$. +% +%%%%%% +% Vincent Tougait, France, November 27, 2001 +% +% Pointed out that fractions of VAT percents were not allowed. +% Bugfix on December 06, 2001 +% +%%%%%% +% Fred Donck, The Hague, The Netherlands, October, 2001 +% e-mail: fd0@donck.com +% +% Dutch labels +% +%%%%%% +% Ian Wormsbecker, October 31, 2001 +% +% Skips the VAT lines if VAT=0 +% Noticed that the terminal message will not accept a Dollar sign. +% The only workaround is to say \char`$ in \begin{invoice}{} +% +%%%%%% +% Fred Donck, The Hague, The Netherlands, Sept 18, 2001 +% e-mail: fd0@donck.com +% +% fixed some minor issues: +% real arithmetic will use integer intermediate values, so +% some calculations failed with the \Fee{title}{rate}{amount} +% where \rate is not an integer +% +% another fix is that in my opinion the VAT line should be +% printed also even though only one project is specified +% +% third fix is that the subtotal-line should not be printed +% on a project with only one \Fee line +% +%%%%%% +% Jacco Kok (fixed some labels), +% +%%%%%% +% Thilo Barth (discussed alternative names and command clashes +% with KOMA Script class scrlettr.cls), +% +%%%%%% +% Robert Inder (discussed general issues) +% +% were gladly and gratefully received and accepted. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ------------------- identification ------------------- +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{invoice}[2003/12/16] +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ------------------- language options ------------------- +% +% +\newcount\invoice@language +\let\invoice@language=\language +% +\ifx\l@english\undefined \newlanguage\l@english \fi +\ifx\l@german\undefined \newlanguage\l@german \fi +\ifx\l@dutch\undefined \newlanguage\l@dutch \fi +\ifx\l@french\undefined \newlanguage\l@french \fi +\ifx\l@afrikaans\undefined \newlanguage\l@afrikaans \fi +\ifx\l@italian\undefined \newlanguage\l@italian \fi +% +\DeclareOption{english}{\invoice@language=\number\l@english} +\DeclareOption{german}{\invoice@language=\number\l@german} +\DeclareOption{dutch}{\invoice@language=\number\l@dutch} +\DeclareOption{french}{\invoice@language=\number\l@french} +\DeclareOption{afrikaans}{\invoice@language=\number\l@afrikaans} +\DeclareOption{italian}{\invoice@language=\number\l@italian} +% +\ProcessOptions +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ------------------- initial code ------------------- +% +\RequirePackage{ifthen} +\RequirePackage{longtable} +\RequirePackage{calc} +\input{realcalc} +\input{invoice.def} +% +\newcommand{\InvoiceVersion}{0.7}% +\newcounter{Fee} % +\newcounter{VAT} % +%\newcounter{VAT@rate} % +\newcounter{Expenses} % +\newcounter{Discount} % Discount item +\newcounter{Total} % +\newcounter{Project} % +% +\newcounter{Fee@ctr} % Number of fees per project + % no subtotal will be printed in case of + % value < 2 +% +\newcounter{Expense@ctr} % Number of expense items per project + % no subtotal will be printed in case of + % value < 2 +% +\newcounter{One@Fee} % Individual Fee +\newcounter{One@VAT} % Individual VAT +\newcounter{One@Expense} % Individual Expense +% +\newcounter{ST@Fee} % Subtotal Fee +\newcounter{ST@VAT} % Subtotal VAT +\newcounter{ST@Expenses} % Subtotal Expenses +\newcounter{ST@Project} % Subtotal Project +% +\gdef\Flag{0}% % State 0: Invoice not started yet + % State 1: Start invoice + % State 2: Start project, print title + % State 3: Fee Item + % State 4: Print Subtotal Fee + % State 5: Expense Item + % State 6: Print Subtotal Expenses + % State 7: Print Subtotal Project + % State 8: Print Total, Close invoice +% +\gdef\Project{}% % Empty Project Name +\def\Null{0}% +\newif\ifVATnonzero +% \def\BC{Euro} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newcommand{\my@message}[1]{\message{^^J#1^^J^^J}} +\newcommand{\error@message}[1]{\errmessage{^^J\Error: #1^^J^^J}} +\newcommand{\warning@message}[1]{\message{^^J\Warning: #1^^J^^J}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifx\invoice\undefined % False if KOMA Script scrlettr.cls + \def\my@invoice{invoice} % loaded. In this case one may say +\else % "invoice". If true, the environ- + \def\my@invoice{invoiceenv} % ment is renamed to "invoiceenv" + \let\invoiceno\invoice % and the scrlettr macro is renamed + \def\invoice#1{% % to "invoiceno". Thank you, Thilo, + \error@message{\KOMA}} % for this hint! +\fi % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newenvironment{\my@invoice}[2]{% + \setcounter{Fee@ctr}{0}% % reset counter + \setcounter{Expense@ctr}{0}% % reset counter + \def\Null{0}% + \setcounter{Project}{0}% + \ST@Reset\Total@Reset% + \def\BC{#1}% + \def\VAT@rate{#2}% + \ifx\VAT@rate\Null\VATnonzerofalse\else\VATnonzerotrue\fi% + \ifVATnonzero + \message{^^J^^JVAT is not zero!^^J^^J}% + \else + \message{^^J^^JVAT is zero!^^J^^J}% + \fi% + % The VAT is: \the\VAT@rate % Debugging Diagnostics only + \parindent=0cm% + \ifcase\Flag % 0: Invoice not started yet + % + \gdef\Flag{1}% + \begin{center}% + \begin{longtable}{p{5cm}lrrr}% + % + \else \error@message{\NoInvoiceNesting}% + \fi}% +% At the end of environment: +% Yields state 8->0, Close and complete invoice, finish tables, etc. +{% + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \error@message{\MissingInputData}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ifnum\theProject>0 \ST@Fee\ST@Project\fi% + \Tot@l% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \ifnum\theProject>1 \ST@Project\fi% + \Tot@l% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \ifnum\theProject>1 \ST@Expenses\ST@Project\fi% + \Tot@l% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \ifnum\theProject>1 \ST@Project\fi% + \Tot@l% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \Tot@l% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \warning@message{\InvoiceCompleted}% + % + \else \error@message{\InternalError}% + \fi% + \gdef\Flag{0}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ProjectTitle}[1]{% Yields state 2: Start Project + %\gdef\NewProject{#1} + % + \ifcase\Flag% 0: Invoice not started yet + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \error@message{\NoProjectNesting}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + \ST@Project% + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \ST@Project% + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \ST@Expenses% + \ST@Project% + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \ST@Project% + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \Project@Title{#1}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoProject}% + % + \else \error@message{\InternalError}% + \fi% + \setcounter{Fee@ctr}{0}% % reset counter + \setcounter{Expense@ctr}{0}% % reset counter +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Fee}[3]{% Yields state 3, Print Fee Item + % + % #1 Contents + % #2 Fee per Unit + % #3 Unit Count + % + \ifcase\Flag % 0: Invoice not started yet + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \Fee@Title% + \Fee@Line{#1}{#2}{#3}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \Fee@Line{#1}{#2}{#3}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \warning@message{\FeeSTExists}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \error@message{\FeeBeforeExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \error@message{\FeeBeforeExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \error@message{\ProjectCompletedNoFee}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoFee}% + % + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\STFee}{% Yields state 4, print subtotal remuneration + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \error@message{\MissingFee}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \Print@ST@Fees% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \warning@message{\FeeSTExists}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \error@message{\FeeBeforeExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \error@message{\FeeBeforeExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \error@message{\ProjectCompletedNoFee}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\ProjectCompletedNoFee}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\EBC}[2]{% Yields state 5: Expenses in BaseCurrency + % + % #1 Contents und Datum + % #2 Amount in BaseCurrency + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \Expense@Title% + \Expense@BaseCurrency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + \Expense@Title% + \Expense@BaseCurrency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \Expense@Title% + \Expense@BaseCurrency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \Expense@BaseCurrency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoExpense}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\EBCi}[2]{% Yields state 5: Expenses in BaseCurrency + % But, unlike base form (no + % 'invisible') this version does + % not state the item, it only + % the total amount of expenses. + % + % #1 Contents und Datum + % #2 Amount in BaseCurrency + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + %\Expense@Title% + \Expense@Base@Currency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + %\Expense@Title% + \Expense@Base@Currency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + %\Expense@Title% + \Expense@Base@Currency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \Expense@Base@Currency{#1}{#2}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoExpense}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\EFC}[5]{% Yields state 5: Expenses in ForeignCurrency + % + % #1 Contents und Datum + % #2 Currency + % #3 Amount + % #4 Exchange Rate + % #5 Amount Zielwaehrung + % + % Usage: + % 1. {Contents}{ForeignCurrency}{ExchangeRate}{} + % 2. {Contents}{ForeignCurrency}{}{BaseCurrency} + % 3. {Contents}{ForeignCurrency}{ExchangeRate}{BaseCurrency} + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \Expense@Title% + \Expense@ForeignCurrency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + \Expense@Title% + \Expense@ForeignCurrency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \Expense@Title% + \Expense@ForeignCurrency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \Expense@ForeignCurrency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \error@message{\ProjectCompletedNoExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \error@message{\ProjectCompletedNoExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoExpense}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\EFCi}[5]{% Yields state 5: Expenses in ForeignCurrency + % But, unlike base form (no + % 'invisible') this version does + % not state the item, it only + % the total amount of expenses. + % + % #1 Contents und Datum + % #2 Currency + % #3 Amount + % #4 Exchange Rate + % #5 Amount Zielwaehrung + % + % Usage: + % 1. {Contents}{ForeignCurrency}{ExchangeRate}{} + % 2. {Contents}{ForeignCurrency}{}{BaseCurrency} + % 3. {Contents}{ForeignCurrency}{ExchangeRate}{BaseCurrency} + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \Expense@Title% + \Expense@Foreign@Currency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + % \Expense@Title% + \Expense@Foreign@Currency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + % \Expense@Title% + \Expense@Foreign@Currency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \Expense@Foreign@Currency{#1}{#2}{#3}{#4}{#5}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \error@message{\ProjectCompletedNoExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \error@message{\ProjectCompletedNoExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoExpense}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\STExpenses}{% Yields state 6: Ausgabe der ST Expenses + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + \or % 2: Start project, print title + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + \or % 3: Print remuneration item + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + \or % 4: Print subtotal remuneration + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \Print@ST@Expenses% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \warning@message{\ProjectCompletedNoExpense}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoExpense}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\STProject}{% Yields state 7: Ausgabe der ST Project + % + \ifcase\Flag % 0: Invoice not started yet + % + \error@message{\MissingOpening}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 1: Start invoice + % + \error@message{\MissingProject}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 2: Start project, print title + % + \warning@message{\ProjectEmpty}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 3: Print remuneration item + % + \ST@Fee% + \ST@Project% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 4: Print subtotal remuneration + % + \ST@Project% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 5: Expense item + % + \ST@Expenses% + \ST@Project% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 6: Print subtotal expenses + % + \ST@Project% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 7: Print subtotal project + % + \warning@message{\ProjectSTExists}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \or % 8: Print total, close invoice + % + \error@message{\InvoiceCompletedNoProjectST}% + % + \else \error@message{\InternalError}% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Discount}[2]{% Yields no particular state. + % Inserts discount in project total, + % names discount reason + % and amount of discount + % + \gdef\Discount@Contents{#1}% + \setcounter{Discount}{100 * \real{-#2}}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Total@Reset}{% + \setcounter{Fee}{0}% + \setcounter{VAT}{0}% + \setcounter{Expenses}{0}% + \setcounter{Total}{0}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ST@Reset}{% + \setcounter{ST@Fee}{0}% + \setcounter{ST@VAT}{0}% + \setcounter{ST@Expenses}{0}% + \setcounter{ST@Project}{0}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Print@Value}[1]{% + \Rmul\r#1{0.01}%% <- Reduce to BaseCurrency + \Rtrunc\r{2}\r% % <- Truncate to two digits + \r% % <- Output data! +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Message@Value}[1]{% + \Rmul\r#1{0.01}%% <- Reduce to BaseCurrency + \Rtrunc\r{2}\r% % <- Truncate to two digits + \message{\r}% % <- Output data! +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Project@Title}[1]{% + % Internal command called by \ProjectTitle. + % + \gdef\Flag{2}% + \gdef\Project{#1}% + \ST@Reset\addtocounter{Project}{1}% + \ifnum\theProject>1 \\\\\else\\\fi% + \multicolumn{5}{c}{\textbf{\large#1}}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Fee@Title}{% + \\ + \noindent\textbf{\Activity}&&\UnitRate&\Count&\Amount\ (\BC)\\ + \hline% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Fee@Line}[3]{% + % + % #1 Contents + % #2 Charged Fee per Unit + % #3 Count + % + % Internal command, called by \Fee. + % + \gdef\Flag{3}% + % + #1 &   & +% +% next is reversed to allow real arithmetic. +% intermediate results are stored in integer format, so calculations are +% incorrect in case #2 is a real. +% fixed by exchanging the 1 and the 100 +% + \setcounter{One@Fee}{100 * \real{#2} * \real{#3} * 1}% +% + \addtocounter{ST@Fee}{\theOne@Fee}% + \addtocounter{Fee}{\theOne@Fee}% + \addtocounter{Fee@ctr}{1}% increase counter with 1 + \Print@Value{\theOne@Fee}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ST@Fee}{% + % \gdef\Flag{4}% + \ifnum\theST@Fee>0% + \ifthenelse{\theFee@ctr>1} % % if more than 1 \Fee line + {\Print@ST@Fees% % print it, else + }% + {}% % do nothing + \ifVATnonzero\ST@VAT@Printout\fi% + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Print@ST@Fees}{% + \gdef\Flag{4}% + \SubtotalFee & & & &% print the subtotal of fees + \Print@Value{\theST@Fee}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ST@VAT@Printout}{% + \VAT\ (\VAT@rate\%) & & & &% + \setcounter{ST@VAT}{\theST@Fee * \real{\VAT@rate} / 100}% + \Print@Value{\theST@VAT}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Expense@BaseCurrency}[2]{% + #1 & \BC & & &% + \gdef\Flag{5}% + \Rmul\r{100}{#2}% + \setcounter{One@Expense}{1*\real{\r}}% + \addtocounter{ST@Expenses}{\theOne@Expense}% + \addtocounter{Expenses}{\theOne@Expense}% + \addtocounter{Expense@ctr}{1}%advance counter + \Print@Value{\theOne@Expense}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Expense@Base@Currency}[2]{% + \gdef\Flag{5}% + \Rmul\r{100}{#2}% + \setcounter{One@Expense}{1*\real{\r}}% + \addtocounter{ST@Expenses}{\theOne@Expense}% + \addtocounter{Expenses}{\theOne@Expense}% + \addtocounter{Expense@ctr}{1}%advance counter + & & & & \\[-1.2em]% This is an ugly kludge: + % Inserting an empty line + % which rolls backwards + % makes disappear the spurious + % spaces caused by external + % routines. +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Expense@ForeignCurrency}[5]{% + \gdef\Flag{5}% + % + % Folgende Angaben sind moeglich: + % 1. {Contents}{Currency}{Amount}{Umrechnung}{ } + % 2. {Contents}{Currency}{Amount}{ }{BaseCurrency} + % 3. {Contents}{Currency}{Amount}{Umrechnung}{BaseCurrency} + % + #1 & #2 & #3 & #4&% + \ifthenelse{\equal{#5}{}}% Target in BaseCurrency or not? + {% Target not in BaseCurrency + \Rmul\r{100}{#3}% + \Rmul\r \r {#4}% + }% + {% Target in BaseCurrency + \Rmul\r{100}{#5}% + }% + \setcounter{One@Expense}{1*\real{\r}}% + \addtocounter{ST@Expenses}{\theOne@Expense}% + \addtocounter{Expenses}{\theOne@Expense}% + \addtocounter{Expense@ctr}{1}%advance counter + \Print@Value{\theOne@Expense}% +\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Expense@Foreign@Currency}[5]{% + \gdef\Flag{5}% + % + % Folgende Angaben sind moeglich: + % 1. {Contents}{Currency}{Amount}{Umrechnung}{ } + % 2. {Contents}{Currency}{Amount}{ }{BaseCurrency} + % 3. {Contents}{Currency}{Amount}{Umrechnung}{BaseCurrency} + % + \ifthenelse{\equal{#5}{}}% Target in BaseCurrency or not? + {% Target not in BaseCurrency + \Rmul\r{100}{#3}% + \Rmul\r\r{#4}% + }% + {% Target in BaseCurrency + \Rmul\r{100}{#5}% + }% + \setcounter{One@Expense}{1*\real{\r}}% + \addtocounter{ST@Expenses}{\theOne@Expense}% + \addtocounter{Expenses}{\theOne@Expense}% + \addtocounter{Expense@ctr}{1}%advance counter + & & & & \\[-1.2em]% ugly kludge as above +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Expense@Title}{% + \\% + \textbf{\Expense}&\Currency&\Amount&\Factor &\BC\\% + \hline% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ST@Expenses}{% + % \gdef\Flag{6}% + \ifnum\theST@Expenses>0% + \ifthenelse{\theExpense@ctr>1}% % if more than 1 Expense line + {\Print@ST@Expenses}% % print it, else + {}% % do nothing + \fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Print@ST@Expenses}{% + \gdef\Flag{6}% + & & & & \\[-1.2em]% ugly kludge as above + \SubtotalExpenses & & & &% print the subtotal of expenses + \Print@Value{\theST@Expenses}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\ST@Project}{% + \gdef\Flag{7}% + \\ + %\multicolumn{4}{l}{\SubtotalProject}% + %\let\Project\NewProject% + %& + \SubtotalProject & & & & + \addtocounter{ST@Project}{\theST@Fee}% + \addtocounter{ST@Project}{\theST@VAT}% + \addtocounter{ST@Project}{\theST@Expenses}% + \Print@Value{\theST@Project}\\ +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Total@VAT@Printout}{% + \setcounter{VAT}{\theFee*\real{\VAT@rate}/100}% + \SumVAT & & & &\Print@Value{\theVAT}\\% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Tot@l}{% + \\\hline + \ifnum\theFee>0 \SumFees& & & &% + \Print@Value{\theFee}\\ + \ifVATnonzero% + \Total@VAT@Printout% + \fi% + \fi% + \ifnum\theExpenses>0 \SumExpenses& & & &% + \Print@Value{\theExpenses}\\ + \fi% + \ifnum\theDiscount<0 \Discount@Contents& & & &% + \Print@Value{\theDiscount}\\ + \fi% + \hline\hline + \textbf{\Total} & & & &% + \message{^^J\Currency: \BC}% + \message{^^J\VAT: \VAT@rate}% + \addtocounter{Total}{\theFee}% + \message{^^J\SumFees: }\Message@Value{\theFee}% + \addtocounter{Total}{\theVAT}% + \message{^^J\SumVAT: }\Message@Value{\theVAT}% + \addtocounter{Total}{\theExpenses}% + \message{^^J\SumExpenses: }\Message@Value{\theExpenses}% + \ifnum\theDiscount<0 % + \addtocounter{Total}{\theDiscount}% + \message{^^J\Discount@Contents: }\Message@Value{\theDiscount}% + \fi % + \textbf{\Print@Value{\theTotal}}% + \message{^^J\Total: }% + \Message@Value{\theTotal}\message{^^J^^J}\\% + \end{longtable} + \end{center} + \gdef\Flag{8}% +} +\endinput +% vim:ts=4:sw=4 diff --git a/texmf/ls-R b/texmf/ls-R new file mode 100644 index 0000000..bae79a0 --- /dev/null +++ b/texmf/ls-R @@ -0,0 +1,39 @@ +% ls-R -- filename database for kpathsea; do not change this line. +./: +.: +aliases +bibtex +invoice.def +invoice.sty +ls-R +metafont +realcalc.tex + +./bibtex: +unsrtdon.bst +unsrtdon.bst~ + +./metafont: +kelly +ls-R + +./metafont/kelly: +cmg10.600pk +cmg10.mf +cmg10.tfm +cmgb10.600pk +cmgb10.mf +cmgb10.tfm +cmgi10.600pk +cmgi10.mf +cmgi10.tfm +cmgtt10.600pk +cmgtt10.mf +cmgtt10.tfm +greek.aux +greek.dvi +greek.log +greek.pdf +greek.sty +greek.tex +grktxt.mf diff --git a/texmf/metafont/kelly/cmg10.600pk b/texmf/metafont/kelly/cmg10.600pk new file mode 100644 index 0000000..7a07319 Binary files /dev/null and b/texmf/metafont/kelly/cmg10.600pk differ diff --git a/texmf/metafont/kelly/cmg10.mf b/texmf/metafont/kelly/cmg10.mf new file mode 100644 index 0000000..0e96d60 --- /dev/null +++ b/texmf/metafont/kelly/cmg10.mf @@ -0,0 +1,76 @@ +% Computer Modern Greek Text 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMG"; font_size 10pt#; + +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=9/36pt#; % lowercase hairline breadth +stem#:=25/36pt#; % lowercase stem breadth +curve#:=30/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=33/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_stem#:=32/36pt#; % uppercase stem breadth +cap_curve#:=37/36pt#; % uppercase curve breadth +cap_ess#:=35/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=28/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate grktxt % switch to the driver file + diff --git a/texmf/metafont/kelly/cmg10.tfm b/texmf/metafont/kelly/cmg10.tfm new file mode 100644 index 0000000..43c519c Binary files /dev/null and b/texmf/metafont/kelly/cmg10.tfm differ diff --git a/texmf/metafont/kelly/cmgb10.600pk b/texmf/metafont/kelly/cmgb10.600pk new file mode 100644 index 0000000..8619c1f Binary files /dev/null and b/texmf/metafont/kelly/cmgb10.600pk differ diff --git a/texmf/metafont/kelly/cmgb10.mf b/texmf/metafont/kelly/cmgb10.mf new file mode 100644 index 0000000..34c649f --- /dev/null +++ b/texmf/metafont/kelly/cmgb10.mf @@ -0,0 +1,75 @@ +% Computer Modern Bold Extended Greek 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMGB"; font_size 10pt#; + +u#:=23/36pt#; % unit width +width_adj#:=11/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=247/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=160/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=85/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=13/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10/36pt#; % width of extrafine details +hair#:=17/36pt#; % lowercase hairline breadth +stem#:=41/36pt#; % lowercase stem breadth +curve#:=46/36pt#; % lowercase curve breadth +ess#:=38/36pt#; % breadth in middle of lowercase s +flare#:=45/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=56/36pt#; % diameter of dots +cap_hair#:=19/36pt#; % uppercase hairline breadth +cap_stem#:=51/36pt#; % uppercase stem breadth +cap_curve#:=55/36pt#; % uppercase curve breadth +cap_ess#:=53/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.6pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=10/36pt#; % vertical distance from serif base to tangent +jut#:=25/36pt#; % protrusion of lowercase serifs +cap_jut#:=39/36pt#; % protrusion of uppercase serifs +beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=13/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=17/36pt#; % lowercase bar thickness +slab#:=17/36pt#; % serif and arm thickness +cap_bar#:=17/36pt#; % uppercase bar thickness +cap_band#:=17/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=3/36pt#; % vertical drop of sloped serifs +stem_corr#:=2/36pt#; % for small refinements of stem breadth +vair_corr#:=1.5/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.5; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate grktxt % switch to the driver file diff --git a/texmf/metafont/kelly/cmgb10.tfm b/texmf/metafont/kelly/cmgb10.tfm new file mode 100644 index 0000000..b747979 Binary files /dev/null and b/texmf/metafont/kelly/cmgb10.tfm differ diff --git a/texmf/metafont/kelly/cmgi10.600pk b/texmf/metafont/kelly/cmgi10.600pk new file mode 100644 index 0000000..1881c17 Binary files /dev/null and b/texmf/metafont/kelly/cmgi10.600pk differ diff --git a/texmf/metafont/kelly/cmgi10.mf b/texmf/metafont/kelly/cmgi10.mf new file mode 100644 index 0000000..d8c4c31 --- /dev/null +++ b/texmf/metafont/kelly/cmgi10.mf @@ -0,0 +1,76 @@ +% Computer Modern Greek Text Italic 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMGI"; font_size 10pt#; + +u#:=18.4/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=9.2/36pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=8/36pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=11/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=28/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=29/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_stem#:=29/36pt#; % uppercase stem breadth +cap_curve#:=34/36pt#; % uppercase curve breadth +cap_ess#:=31/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=34/36pt#; % protrusion of uppercase serifs +beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate grktxt % switch to the driver file + diff --git a/texmf/metafont/kelly/cmgi10.tfm b/texmf/metafont/kelly/cmgi10.tfm new file mode 100644 index 0000000..4d9b099 Binary files /dev/null and b/texmf/metafont/kelly/cmgi10.tfm differ diff --git a/texmf/metafont/kelly/cmgtt10.600pk b/texmf/metafont/kelly/cmgtt10.600pk new file mode 100644 index 0000000..0f57cd7 Binary files /dev/null and b/texmf/metafont/kelly/cmgtt10.600pk differ diff --git a/texmf/metafont/kelly/cmgtt10.mf b/texmf/metafont/kelly/cmgtt10.mf new file mode 100644 index 0000000..5b9442c --- /dev/null +++ b/texmf/metafont/kelly/cmgtt10.mf @@ -0,0 +1,75 @@ +% Computer Modern Greek Typewriter Text for use with 10 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMGTT"; font_size 10pt#; + +u#:=21/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=250/36pt#; % height of tallest characters +asc_height#:=220/36pt#; % height of lowercase ascenders +cap_height#:=220/36pt#; % height of caps +fig_height#:=220/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=110/36pt#; % axis of symmetry for math symbols +bar_height#:=79/36pt#; % height of crossbar in lowercase e +comma_depth#:=50/36pt#; % depth of comma below baseline +desc_depth#:=80/36pt#; % depth of lowercase descenders + +crisp#:=22/36pt#; % diameter of serif corners +tiny#:=22/36pt#; % diameter of rounded corners +fine#:=21/36pt#; % diameter of sharply rounded corners +thin_join#:=21/36pt#; % width of extrafine details +hair#:=25/36pt#; % lowercase hairline breadth +stem#:=25/36pt#; % lowercase stem breadth +curve#:=25/36pt#; % lowercase curve breadth +ess#:=22/36pt#; % breadth in middle of lowercase s +flare#:=32/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=36/36pt#; % diameter of dots +cap_hair#:=25/36pt#; % uppercase hairline breadth +cap_stem#:=25/36pt#; % uppercase stem breadth +cap_curve#:=25/36pt#; % uppercase curve breadth +cap_ess#:=25/36pt#; % breadth in middle of uppercase s +rule_thickness#:=25/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=34/36pt#; % protrusion of lowercase serifs +cap_jut#:=34/36pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=34/36pt#; % vertical protrusion of beak serifs +vair#:=22/36pt#; % vertical diameter of hairlines +notch_cut#:=25/36pt#; % maximum breadth above or below notches +bar#:=22/36pt#; % lowercase bar thickness +slab#:=22/36pt#; % serif and arm thickness +cap_bar#:=22/36pt#; % uppercase bar thickness +cap_band#:=22/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=0pt#; % for small refinements of stem breadth +vair_corr#:=0pt#; % for small refinements of hairline height +apex_corr#:=10/36pt#; % extra width at diagonal junctions + +o#:=4/36pt#; % amount of overshoot for curves +apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=0.81; % factor applied to weights of heavy characters +math_spread:=-1; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=0; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=0; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=true; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=true; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate grktxt % switch to the driver file diff --git a/texmf/metafont/kelly/cmgtt10.tfm b/texmf/metafont/kelly/cmgtt10.tfm new file mode 100644 index 0000000..3142094 Binary files /dev/null and b/texmf/metafont/kelly/cmgtt10.tfm differ diff --git a/texmf/metafont/kelly/greek.aux b/texmf/metafont/kelly/greek.aux new file mode 100644 index 0000000..e6aea0f --- /dev/null +++ b/texmf/metafont/kelly/greek.aux @@ -0,0 +1,3 @@ +\relax +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Transliteration from Keyboard Input to Greek}}{3}} +\newlabel{gr-trans}{{1}{3}} diff --git a/texmf/metafont/kelly/greek.dvi b/texmf/metafont/kelly/greek.dvi new file mode 100644 index 0000000..6f886e3 Binary files /dev/null and b/texmf/metafont/kelly/greek.dvi differ diff --git a/texmf/metafont/kelly/greek.log b/texmf/metafont/kelly/greek.log new file mode 100644 index 0000000..4fe582f --- /dev/null +++ b/texmf/metafont/kelly/greek.log @@ -0,0 +1,2032 @@ +This is pdfeTeX, Version 3.14159-1.10b-2.1 (Web2C 7.4.5) (format=pdflatex 2004.12.13) 15 DEC 2004 19:17 +entering extended mode +**greek.tex +(./greek.tex{/usr/share/texmf/pdftex/config/pdftex.cfg} +LaTeX2e <2001/06/01> +Babel and hyphenation patterns for american, french, ngerman, nohyphena +tion, loaded. +(/usr/share/texmf/tex/latex/base/latex209.def +File: latex209.def 1998/05/13 v0.52 Standard LaTeX file + + + Entering LaTeX 2.09 COMPATIBILITY MODE + ************************************************************* + !!WARNING!! !!WARNING!! !!WARNING!! !!WARNING!! + + This mode attempts to provide an emulation of the LaTeX 2.09 + author environment so that OLD documents can be successfully + processed. It should NOT be used for NEW documents! + + New documents should use Standard LaTeX conventions and start + with the \documentclass command. + + Compatibility mode is UNLIKELY TO WORK with LaTeX 2.09 style + files that change any internal macros, especially not with + those that change the FONT SELECTION or OUTPUT ROUTINES. + + Therefore such style files MUST BE UPDATED to use + Current Standard LaTeX: LaTeX2e. + If you suspect that you may be using such a style file, which + is probably very, very old by now, then you should attempt to + get it updated by sending a copy of this error message to the + author of that file. + ************************************************************* + +\footheight=\dimen102 +\@maxsep=\dimen103 +\@dblmaxsep=\dimen104 +\@cla=\count79 +\@clb=\count80 +\mscount=\count81 +(/usr/share/texmf/tex/latex/base/tracefnt.sty +Package: tracefnt 1997/05/29 v3.0j Standard LaTeX package (font tracing) +\tracingfonts=\count82 +LaTeX Info: Redefining \selectfont on input line 96. +) +\symbold=\mathgroup4 +\symsans=\mathgroup5 +\symtypewriter=\mathgroup6 +\symitalic=\mathgroup7 +\symsmallcaps=\mathgroup8 +\symslanted=\mathgroup9 +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 288. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 289. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 290. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 296. +LaTeX Info: Redefining \em on input line 306. + +(/usr/share/texmf/tex/latex/base/latexsym.sty +Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) +\symlasy=\mathgroup10 +LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' +(Font) U/lasy/m/n --> U/lasy/b/n on input line 42. +) +LaTeX Font Info: Redeclaring math delimiter \lgroup on input line 370. +LaTeX Font Info: Redeclaring math delimiter \rgroup on input line 372. +LaTeX Font Info: Redeclaring math delimiter \bracevert on input line 374. + +(/usr/share/texmf/tex/latex/config/latex209.cfg +File: latex209.cfg 2001/06/05 v1.0 teTeX customized LaTeX 2.09 compatibility mo +de setup +) +(/usr/share/texmf/tex/latex/tools/rawfonts.sty +Package: rawfonts 1994/05/08 Low-level LaTeX 2.09 font compatibility + +(/usr/share/texmf/tex/latex/tools/somedefs.sty +Package: somedefs 1994/06/01 Toolkit for optional definitions +) +LaTeX Font Info: Try loading font information for U+lasy on input line 44. + +(/usr/share/texmf/tex/latex/base/ulasy.fd +File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions +))) +(/usr/share/texmf/tex/latex/base/article.cls +Document Class: article 2001/04/21 v1.4e Standard LaTeX document class +(/usr/share/texmf/tex/latex/base/size10.clo +File: size10.clo 2001/04/21 v1.4e Standard LaTeX file (size option) +) +\c@part=\count83 +\c@section=\count84 +\c@subsection=\count85 +\c@subsubsection=\count86 +\c@paragraph=\count87 +\c@subparagraph=\count88 +\c@figure=\count89 +\c@table=\count90 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +Compatibility mode: definition of \rm ignored. +Compatibility mode: definition of \sf ignored. +Compatibility mode: definition of \tt ignored. +Compatibility mode: definition of \bf ignored. +Compatibility mode: definition of \it ignored. +Compatibility mode: definition of \sl ignored. +Compatibility mode: definition of \sc ignored. +LaTeX Info: Redefining \cal on input line 501. +LaTeX Info: Redefining \mit on input line 502. +\bibindent=\dimen105 +) (./greek.sty +\grfam=\mathgroup11 +\grbfam=\mathgroup12 +\grifam=\mathgroup13 +\grtfam=\mathgroup14 + +! Undefined control sequence. +l.105 \@addfontinfo + \@vpt{\def\pgr{\@prtct\gr@vpt}% +? q +OK, entering \batchmode... + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.105 \@addfontinfo\@vpt + {\def\pgr{\@prtct\gr@vpt}% +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +! Undefined control sequence. +l.109 \@addfontinfo + \@vipt{\def\pgr{\@prtct\gr@vipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.113 \@addfontinfo + \@viipt{\def\pgr{\@prtct\gr@viipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.117 \@addfontinfo + \@viiipt{\def\pgr{\@prtct\gr@viiipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.121 \@addfontinfo + \@ixpt{\def\pgr{\@prtct\gr@ixpt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.125 \@addfontinfo + \@xpt{\def\pgr{\@prtct\gr@xpt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.129 \@addfontinfo + \@xipt{\def\pgr{\@prtct\gr@xipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.133 \@addfontinfo + \@xiipt{\def\pgr{\@prtct\gr@xiipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.137 \@addfontinfo + \@xivpt{\def\pgr{\@prtct\gr@xivpt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.141 \@addfontinfo + \@xviipt{\def\pgr{\@prtct\gr@xviipt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.145 \@addfontinfo + \@xxpt{\def\pgr{\@prtct\gr@xxpt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.149 \@addfontinfo + \@xxvpt{\def\pgr{\@prtct\gr@xxvpt}% +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +) + +! LaTeX Error: Command \SLiTeX already defined. + Or name \end... illegal, see p.192 of the manual. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.13 -.1667em\lower.7ex\hbox{E}\kern-.125emX}} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + + (./greek.aux) +\openout1 = `greek.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16. +LaTeX Font Info: ... okay on input line 16. + [1 + +{/var/lib/texmf/dvips/config/pdftex.map}] +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 17. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 17. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 17. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 17. +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.30 uses `{\tt H}' to represent `{\grbf + Y}'\footnote{The {\tt\bs grbf} font... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 30. +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.32 ...n lower-case [`{\tt h}'$\not\simeq$`{\grbf + y}']) --- I feel +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.35 ...ple, `{\tt ks}' and `{\tt rh}' for `{\grbf + x}' +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.36 and `{\grbf + r}' respectively; the latter caused a minor disaster with the +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.37 Greek for `I start' ({\grbf + arh\'izw}) which has to be input as `{\tt +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.44 ...capital letters in the wrong place ({\grbf + \'Y} whereas it +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.45 should be {\grbf + \'{}Y}), but one doesn't always need to accent capitals, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [2] +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.60 ^^I \exmp A + & \exmp a\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.60 ^^I \exmp A & \exmp a + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.61 ^^I \exmp B + & \exmp b\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.61 ^^I \exmp B & \exmp b + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.62 ^^I \exmp G + & \exmp g\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.62 ^^I \exmp G & \exmp g + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.63 ^^I \exmp D + & \exmp d\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.63 ^^I \exmp D & \exmp d + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.64 ^^I \exmp E + & \exmp e\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.64 ^^I \exmp E & \exmp e + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.65 ^^I \exmp Z + & \exmp z\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.65 ^^I \exmp Z & \exmp z + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.66 ^^I \exmp Y + & \exmp y\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.66 ^^I \exmp Y & \exmp y + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.67 ^^I \grbf + TH & \tt TH \rm or \tt Th & \exmp{th}\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.67 ...grbf TH & \tt TH \rm or \tt Th & \exmp{th} + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.68 ^^I \exmp I + & \exmp i\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.68 ^^I \exmp I & \exmp i + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.69 ^^I \exmp K + & \exmp k\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.69 ^^I \exmp K & \exmp k + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.70 ^^I \exmp L + & \exmp l\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.70 ^^I \exmp L & \exmp l + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.71 ^^I \exmp M + & \exmp m\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.71 ^^I \exmp M & \exmp m + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.72 ^^I \exmp N + & \exmp n\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.72 ^^I \exmp N & \exmp n + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.73 ^^I \exmp X + & \exmp x\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.73 ^^I \exmp X & \exmp x + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.74 ^^I \exmp O + & \exmp o\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.74 ^^I \exmp O & \exmp o + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.75 ^^I \exmp P + & \exmp p\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.75 ^^I \exmp P & \exmp p + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.76 ^^I \exmp R + & \exmp r\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.76 ^^I \exmp R & \exmp r + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.77 ^^I \exmp S + & \exmp s\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.77 ^^I \exmp S & \exmp s + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.78 ^^I & & \grbf + \s & \tt\bs s\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.78 ^^I & & \grbf \s + & \tt\bs s\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.79 ^^I \exmp T + & \exmp t\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.79 ^^I \exmp T & \exmp t + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.80 ^^I \exmp U + & \exmp u\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.80 ^^I \exmp U & \exmp u + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.81 ^^I \grbf + PH & \tt PH \rm or \tt Ph & \exmp{ph}\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.81 ...rbf PH & \tt PH \rm or \tt Ph & \exmp{ph} + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.82 ^^I \exmp H + & \exmp h\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.82 ^^I \exmp H & \exmp h + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.83 ^^I \grbf + PS & \tt PS \rm or \tt Ps & \exmp{ps}\\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.83 ...grbf PS & \tt PS \rm or \tt Ps & \exmp{ps} + \\ +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.84 ^^I \exmp W + & \exmp w +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.84 ^^I \exmp W & \exmp w + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [3] +LaTeX Font Info: Try loading font information for OMS+cmr on input line 110. + + (/usr/share/texmf/tex/latex/base/omscmr.fd +File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 110. +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.134 {\grbf + z} and {\grbf x}) is not that normally expected in Greek text. +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.134 {\grbf z} and {\grbf + x}) is not that normally expected in Greek text. +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grit ->\protect \pgrit + +l.153 but I feel that {\grit + m' \'ezwsan} [``encircled me''] makes more sens... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grit ->\protect \pgrit + +l.154 referring to lightning than {\grit + m' \'exwsan} [``evicted me''] --- +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grit ->\protect \pgrit + +l.155 my {\grit + Meg\'alo ep\'itomo lexik\'on ty\s\ Ellynik\'y\s\ gl\'wssa\s\/} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.155 my {\grit Meg\'alo ep\'itomo lexik\'on ty\s + \ Ellynik\'y\s\ gl\'wssa\s\/} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.155 ...lo ep\'itomo lexik\'on ty\s\ Ellynik\'y\s + \ gl\'wssa\s\/} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +l.155 ... lexik\'on ty\s\ Ellynik\'y\s\ gl\'wssa\s + \/} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [4] +! Undefined control sequence. +\gr ->\protect \pgr + +l.179 {\gr + \bodytext} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'oso bar\'u 'nai to must\'yrio ty\s + \ xomol\'ogysy\s . W\s \ t... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... to must\'yrio ty\s \ xomol\'ogysy\s + . W\s \ t\'wra, kane\'i\s ... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...st\'yrio ty\s \ xomol\'ogysy\s . W\s + \ t\'wra, kane\'i\s \ den ... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...l\'ogysy\s . W\s \ t\'wra, kane\'i\s + \ den x\'erei p\'w\s \ p\'... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'wra, kane\'i\s \ den x\'erei p\'w\s + \ p\'erasa ta du\'o hr\'on... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...hr\'onia mou sto \'{}Agion \'{}Oro\s + . Oi ph\'iloi mou tharro\'... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\s . Oi ph\'iloi mou tharro\'un pw\s + \^^Mp\'yga na dw buzantin\... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ntr\'epomai na mil\'ysw. \par P\'w\s + \ na to pw\@; Thumo\'umai ... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...h\'uella me k\'uklwse kont\'a stou\s + \^^MPentaulo\'u\s . T\'oso... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...wse kont\'a stou\s \^^MPentaulo\'u\s + . T\'oso phober\'o\s \ ane... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...^MPentaulo\'u\s . T\'oso phober\'o\s + \ anemos\'iphouna\s , pou ... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'oso phober\'o\s \ anemos\'iphouna\s + , pou \'epesa katag\'y\s \... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'iphouna\s , pou \'epesa katag\'y\s + \^^Mgi\'a na m\'yn gkremis... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...na m\'yn gkremist\'w. Oi astrap\'e\s + \ m'~\'ezwsan olo\'uthe ki... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...pase y mp\'ora, \'epesen o \'anemo\s + , kai hontr\'e\s , therm\'... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'epesen o \'anemo\s , kai hontr\'e\s + , therm\'e\s \ st\'ale\s \... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...nemo\s , kai hontr\'e\s , therm\'e\s + \ st\'ale\s \ broh\'y ht\'... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... hontr\'e\s , therm\'e\s \ st\'ale\s + \ broh\'y ht\'upysan ta de... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...m\'ena ap' to ner\'o, t\'inaxan ti\s + \ murwdi\'e\s \ tou\s \ ki... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ner\'o, t\'inaxan ti\s \ murwdi\'e\s + \ tou\s \ ki \'oly y gy\s ... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...t\'inaxan ti\s \ murwdi\'e\s \ tou\s + \ ki \'oly y gy\s \^^Mm\'u... +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...urwdi\'e\s \ tou\s \ ki \'oly y gy\s + \^^Mm\'urise. +l.179 {\gr \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [5] +! Undefined control sequence. +\grit ->\protect \pgrit + +l.215 {\grit + \bodytext} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'oso bar\'u 'nai to must\'yrio ty\s + \ xomol\'ogysy\s . W\s \ t... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... to must\'yrio ty\s \ xomol\'ogysy\s + . W\s \ t\'wra, kane\'i\s ... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...st\'yrio ty\s \ xomol\'ogysy\s . W\s + \ t\'wra, kane\'i\s \ den ... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...l\'ogysy\s . W\s \ t\'wra, kane\'i\s + \ den x\'erei p\'w\s \ p\'... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'wra, kane\'i\s \ den x\'erei p\'w\s + \ p\'erasa ta du\'o hr\'on... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...hr\'onia mou sto \'{}Agion \'{}Oro\s + . Oi ph\'iloi mou tharro\'... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\s . Oi ph\'iloi mou tharro\'un pw\s + \^^Mp\'yga na dw buzantin\... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ntr\'epomai na mil\'ysw. \par P\'w\s + \ na to pw\@; Thumo\'umai ... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...h\'uella me k\'uklwse kont\'a stou\s + \^^MPentaulo\'u\s . T\'oso... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...wse kont\'a stou\s \^^MPentaulo\'u\s + . T\'oso phober\'o\s \ ane... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...^MPentaulo\'u\s . T\'oso phober\'o\s + \ anemos\'iphouna\s , pou ... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'oso phober\'o\s \ anemos\'iphouna\s + , pou \'epesa katag\'y\s \... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'iphouna\s , pou \'epesa katag\'y\s + \^^Mgi\'a na m\'yn gkremis... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...na m\'yn gkremist\'w. Oi astrap\'e\s + \ m'~\'ezwsan olo\'uthe ki... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...pase y mp\'ora, \'epesen o \'anemo\s + , kai hontr\'e\s , therm\'... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'epesen o \'anemo\s , kai hontr\'e\s + , therm\'e\s \ st\'ale\s \... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...nemo\s , kai hontr\'e\s , therm\'e\s + \ st\'ale\s \ broh\'y ht\'... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... hontr\'e\s , therm\'e\s \ st\'ale\s + \ broh\'y ht\'upysan ta de... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...m\'ena ap' to ner\'o, t\'inaxan ti\s + \ murwdi\'e\s \ tou\s \ ki... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ner\'o, t\'inaxan ti\s \ murwdi\'e\s + \ tou\s \ ki \'oly y gy\s ... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...t\'inaxan ti\s \ murwdi\'e\s \ tou\s + \ ki \'oly y gy\s \^^Mm\'u... +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...urwdi\'e\s \ tou\s \ ki \'oly y gy\s + \^^Mm\'urise. +l.215 {\grit \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\grbf ->\protect \pgrbf + +l.220 {\grbf + \bodytext} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'oso bar\'u 'nai to must\'yrio ty\s + \ xomol\'ogysy\s . W\s \ t... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... to must\'yrio ty\s \ xomol\'ogysy\s + . W\s \ t\'wra, kane\'i\s ... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...st\'yrio ty\s \ xomol\'ogysy\s . W\s + \ t\'wra, kane\'i\s \ den ... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...l\'ogysy\s . W\s \ t\'wra, kane\'i\s + \ den x\'erei p\'w\s \ p\'... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'wra, kane\'i\s \ den x\'erei p\'w\s + \ p\'erasa ta du\'o hr\'on... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...hr\'onia mou sto \'{}Agion \'{}Oro\s + . Oi ph\'iloi mou tharro\'... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\s . Oi ph\'iloi mou tharro\'un pw\s + \^^Mp\'yga na dw buzantin\... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ntr\'epomai na mil\'ysw. \par P\'w\s + \ na to pw\@; Thumo\'umai ... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...h\'uella me k\'uklwse kont\'a stou\s + \^^MPentaulo\'u\s . T\'oso... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...wse kont\'a stou\s \^^MPentaulo\'u\s + . T\'oso phober\'o\s \ ane... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...^MPentaulo\'u\s . T\'oso phober\'o\s + \ anemos\'iphouna\s , pou ... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'oso phober\'o\s \ anemos\'iphouna\s + , pou \'epesa katag\'y\s \... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'iphouna\s , pou \'epesa katag\'y\s + \^^Mgi\'a na m\'yn gkremis... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...na m\'yn gkremist\'w. Oi astrap\'e\s + \ m'~\'ezwsan olo\'uthe ki... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...pase y mp\'ora, \'epesen o \'anemo\s + , kai hontr\'e\s , therm\'... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'epesen o \'anemo\s , kai hontr\'e\s + , therm\'e\s \ st\'ale\s \... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...nemo\s , kai hontr\'e\s , therm\'e\s + \ st\'ale\s \ broh\'y ht\'... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... hontr\'e\s , therm\'e\s \ st\'ale\s + \ broh\'y ht\'upysan ta de... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...m\'ena ap' to ner\'o, t\'inaxan ti\s + \ murwdi\'e\s \ tou\s \ ki... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ner\'o, t\'inaxan ti\s \ murwdi\'e\s + \ tou\s \ ki \'oly y gy\s ... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...t\'inaxan ti\s \ murwdi\'e\s \ tou\s + \ ki \'oly y gy\s \^^Mm\'u... +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...urwdi\'e\s \ tou\s \ ki \'oly y gy\s + \^^Mm\'urise. +l.220 {\grbf \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [6] +! Undefined control sequence. +\grtt ->\protect \pgrtt + +l.225 {\grtt + \bodytext} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'oso bar\'u 'nai to must\'yrio ty\s + \ xomol\'ogysy\s . W\s \ t... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... to must\'yrio ty\s \ xomol\'ogysy\s + . W\s \ t\'wra, kane\'i\s ... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...st\'yrio ty\s \ xomol\'ogysy\s . W\s + \ t\'wra, kane\'i\s \ den ... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...l\'ogysy\s . W\s \ t\'wra, kane\'i\s + \ den x\'erei p\'w\s \ p\'... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'wra, kane\'i\s \ den x\'erei p\'w\s + \ p\'erasa ta du\'o hr\'on... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...hr\'onia mou sto \'{}Agion \'{}Oro\s + . Oi ph\'iloi mou tharro\'... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\s . Oi ph\'iloi mou tharro\'un pw\s + \^^Mp\'yga na dw buzantin\... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ntr\'epomai na mil\'ysw. \par P\'w\s + \ na to pw\@; Thumo\'umai ... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...h\'uella me k\'uklwse kont\'a stou\s + \^^MPentaulo\'u\s . T\'oso... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...wse kont\'a stou\s \^^MPentaulo\'u\s + . T\'oso phober\'o\s \ ane... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...^MPentaulo\'u\s . T\'oso phober\'o\s + \ anemos\'iphouna\s , pou ... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'oso phober\'o\s \ anemos\'iphouna\s + , pou \'epesa katag\'y\s \... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...\'iphouna\s , pou \'epesa katag\'y\s + \^^Mgi\'a na m\'yn gkremis... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...na m\'yn gkremist\'w. Oi astrap\'e\s + \ m'~\'ezwsan olo\'uthe ki... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...pase y mp\'ora, \'epesen o \'anemo\s + , kai hontr\'e\s , therm\'... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...'epesen o \'anemo\s , kai hontr\'e\s + , therm\'e\s \ st\'ale\s \... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...nemo\s , kai hontr\'e\s , therm\'e\s + \ st\'ale\s \ broh\'y ht\'... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ... hontr\'e\s , therm\'e\s \ st\'ale\s + \ broh\'y ht\'upysan ta de... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...m\'ena ap' to ner\'o, t\'inaxan ti\s + \ murwdi\'e\s \ tou\s \ ki... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...ner\'o, t\'inaxan ti\s \ murwdi\'e\s + \ tou\s \ ki \'oly y gy\s ... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...t\'inaxan ti\s \ murwdi\'e\s \ tou\s + \ ki \'oly y gy\s \^^Mm\'u... +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +! Undefined control sequence. +\bodytext ...urwdi\'e\s \ tou\s \ ki \'oly y gy\s + \^^Mm\'urise. +l.225 {\grtt \bodytext + } +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + [7] (./greek.aux) ) +Here is how much of TeX's memory you used: + 641 strings out of 95329 + 6821 string characters out of 1188919 + 52697 words of memory out of 1000001 + 3717 multiletter control sequences out of 10000+50000 + 26054 words of font info for 97 fonts, out of 500000 for 1000 + 14 hyphenation exceptions out of 1000 + 25i,9n,22p,267b,223s stack positions out of 1500i,500n,5000p,200000b,5000s + 80 PDF objects out of 300000 + 0 named destinations out of 131072 + 0 words of extra memory for PDF output out of 65536 +{/usr/share/texmf/dvips/tetex/f7b6d320.enc}{/usr/share/texmf/dvips/tetex/aae443f0.enc} +{/usr/share/texmf/dvips/tet +ex/0ef0afca.enc}{/usr/shar +e/texmf/dvips/tetex/09fbbfac.enc}{/ +usr/share/texmf/dvips/tetex/bbad153f.enc}{/usr/share/texmf/dvips/tetex/74afc74c.enc} +Output written on greek.pdf (7 pages, 113992 bytes). diff --git a/texmf/metafont/kelly/greek.pdf b/texmf/metafont/kelly/greek.pdf new file mode 100644 index 0000000..a630c9a Binary files /dev/null and b/texmf/metafont/kelly/greek.pdf differ diff --git a/texmf/metafont/kelly/greek.sty b/texmf/metafont/kelly/greek.sty new file mode 100644 index 0000000..bdb1487 --- /dev/null +++ b/texmf/metafont/kelly/greek.sty @@ -0,0 +1,217 @@ +% +% GREEK.STY - 14-SEP-1988 +% ~~~~~~~~~ +% +% Allow LaTeX to use BHK's Greek fonts +% +% \gr - greek +% \grbf - greek bold-face +% \grit - greek italic +% \grtt - greek typewriter +% +% +% AUTHORS: Brian Hamilton Kelly & Niel Kempson, +% School of Electrical Engineering and Science, +% Royal Military College of Science, +% Shrivenham, +% SWINDON +% SN6 8LA +% ENGLAND +% +% Telephone: (+793) 785687 / 785252 +% JANET: rm001a@uk.ac.cranfield.cdvc +% + +% +% The fonts are loaded on demand, but don't demand too many or LaTeX +% will exhaust its font memory. +% + +% Need special definition of \@getfont that includes call of \gracc +% after invocation of the font +% +\def\gr@getfont#1#2#3#4{\@ifundefined{\string #1\string #3}{\global\expandafter + \font \csname \string #1\string #3\endcsname #4\relax + \@addfontinfo#3{\textfont #2\csname \string #1\string #3\endcsname + \scriptfont #2\csname \string #1\string #3\endcsname + \scriptscriptfont #2\csname \string #1\string #3\endcsname + \def#1{\fam #2\csname\string #1\string #3\endcsname\@prtct\gracc}}}{}#3#1} + +% Following section is beginnings of attempt to make this style option +% work with SliTeX too. Further work is awaiting the rewriting of SFONTS.TEX +% to use similar naming scheme, load-on-demand, etc as LFONTS.TEX --- I expect +% to get around to that someday!! +% +\@ifundefined{@xivpt}{% This must be running under SliTeX + \let\@prtct=\relax + + \def\@addfontinfo#1#2{{\def\@prtct{\noexpand\@prtct\noexpand}\def\def{\noexpand + \def\noexpand}\xdef#1{#1#2}}} + + \def\@nohyphens#1#2{\global\expandafter \hyphenchar\csname + \string #1\string #2\endcsname \m@ne} + + \def\@subfont#1#2{\@warning{No \string#1\space typeface in + this size, using \string#2}#2} + + \def\@vpt{} + \def\@vipt{} + \def\@viipt{} + \def\@viiipt{} + \def\@ixpt{} + \def\@xpt{} + \def\@xipt{} + \def\@xiipt{} + \let\@xivpt=\fourteenpt + \let\@xviipt=\seventeenpt + \let\@xxpt=\twentypt + \let\@xxvpt=\twentyfourpt + \let\@xxixpt=\twentyninept + \let\@xxxivpt=\thirtyfourpt + \let\@xlipt=\fourtyonept}{% + \relax +} + +% These are the font changing commands used by the ``public'' +% +\def\gr{\protect\pgr} +\def\grbf{\protect\pgrbf} +\def\grit{\protect\pgrit} +\def\grtt{\protect\pgrtt} + +% These macros just save a little space for the repeated font names +% +\def\gr@@k{cmg10} +\def\gr@@kb{cmgb10} +\def\gr@@ki{cmgi10} +\def\gr@@kt{cmgtt10} + +% This macro has to be invoked every time we switch to a Greek font; it +% defines \s to be the variant of \sigma used at the ends of words +% +\def\gracc{\chardef\s="D } % NB Space after is essential + +% Define families of Greek fonts +% +\newfam\grfam +\newfam\grbfam +\newfam\grifam +\newfam\grtfam + +% Now add commands to each LaTeX size changing command which defines +% the Greek font selections to invoke macros which load the font ``on +% demand''. +% +\@addfontinfo\@vpt{\def\pgr{\@prtct\gr@vpt}% + \def\pgrbf{\@prtct\grb@vpt}% + \def\pgrit{\@prtct\gri@vpt}% + \def\pgrtt{\@prtct\grt@vpt}} +\@addfontinfo\@vipt{\def\pgr{\@prtct\gr@vipt}% + \def\pgrbf{\@prtct\grb@vipt}% + \def\pgrit{\@prtct\gri@vipt}% + \def\pgrtt{\@prtct\grt@vipt}} +\@addfontinfo\@viipt{\def\pgr{\@prtct\gr@viipt}% + \def\pgrbf{\@prtct\grb@viipt}% + \def\pgrit{\@prtct\gri@viipt}% + \def\pgrtt{\@prtct\grt@viipt}} +\@addfontinfo\@viiipt{\def\pgr{\@prtct\gr@viiipt}% + \def\pgrbf{\@prtct\grb@viiipt}% + \def\pgrit{\@prtct\gri@viiipt}% + \def\pgrtt{\@prtct\grt@viiipt}} +\@addfontinfo\@ixpt{\def\pgr{\@prtct\gr@ixpt}% + \def\pgrbf{\@prtct\grb@ixpt}% + \def\pgrit{\@prtct\gri@ixpt}% + \def\pgrtt{\@prtct\grt@ixpt}} +\@addfontinfo\@xpt{\def\pgr{\@prtct\gr@xpt}% + \def\pgrbf{\@prtct\grb@xpt}% + \def\pgrit{\@prtct\gri@xpt}% + \def\pgrtt{\@prtct\grt@xpt}} +\@addfontinfo\@xipt{\def\pgr{\@prtct\gr@xipt}% + \def\pgrbf{\@prtct\grb@xipt}% + \def\pgrit{\@prtct\gri@xipt}% + \def\pgrtt{\@prtct\grt@xipt}} +\@addfontinfo\@xiipt{\def\pgr{\@prtct\gr@xiipt}% + \def\pgrbf{\@prtct\grb@xiipt}% + \def\pgrit{\@prtct\gri@xiipt}% + \def\pgrtt{\@prtct\grt@xiipt}} +\@addfontinfo\@xivpt{\def\pgr{\@prtct\gr@xivpt}% + \def\pgrbf{\@prtct\grb@xivpt}% + \def\pgrit{\@prtct\gri@xivpt}% + \def\pgrtt{\@prtct\grt@xivpt}} +\@addfontinfo\@xviipt{\def\pgr{\@prtct\gr@xviipt}% + \def\pgrbf{\@prtct\grb@xviipt}% + \def\pgrit{\@prtct\gri@xviipt}% + \def\pgrtt{\@prtct\grt@xviipt}} +\@addfontinfo\@xxpt{\def\pgr{\@prtct\gr@xxpt}% + \def\pgrbf{\@prtct\grb@xxpt}% + \def\pgrit{\@prtct\gri@xxpt}% + \def\pgrtt{\@prtct\grt@xxpt}} +\@addfontinfo\@xxvpt{\def\pgr{\@prtct\gr@xxvpt}% + \def\pgrbf{\@prtct\grb@xxvpt}% + \def\pgrit{\@prtct\gri@xxvpt}% + \def\pgrtt{\@prtct\grt@xxvpt}} + +% Finally, we can define WHICH fonts are to be loaded on demand. +% +\def\gr@vpt{\@subfont\gr\rm} +\def\gr@vipt{\gr@getfont\pgr\grfam\@vipt{\gr@@k\@ptscale6}} +\def\gr@viipt{\gr@getfont\pgr\grfam\@viipt{\gr@@k\@ptscale7}} +\def\gr@viiipt{\gr@getfont\pgr\grfam\@viiipt{\gr@@k\@ptscale8}} +\def\gr@ixpt{\gr@getfont\pgr\grfam\@ixpt{\gr@@k\@ptscale9}} +\def\gr@xpt{\gr@getfont\pgr\grfam\@xpt{\gr@@k}} +\def\gr@xipt{\gr@getfont\pgr\grfam\@xipt{\gr@@k\@halfmag}} +\def\gr@xiipt{\gr@getfont\pgr\grfam\@xiipt{\gr@@k\@magscale1}} +\def\gr@xivpt{\gr@getfont\pgr\grfam\@xivpt{\gr@@k\@magscale2}} +\def\gr@xviipt{\gr@getfont\pgr\grfam\@xviipt{\gr@@k\@magscale3}} +\def\gr@xxpt{\gr@getfont\pgr\grfam\@xxpt{\gr@@k\@magscale4}} +\def\gr@xxvpt{\gr@getfont\pgr\grfam\@xxvpt{\gr@@k\@magscale5}} + +\def\grb@vpt{\@subfont\grbf\bf} +\def\grb@vipt{\gr@getfont\pgrbf\grbfam\@vipt{\@gr@@kb\@ptscale6}} +\def\grb@viipt{\gr@getfont\pgrbf\grbfam\@viipt{\gr@@kb\@ptscale7}} +\def\grb@viiipt{\gr@getfont\pgrbf\grbfam\@viiipt{\gr@@kb\@ptscale8}} +\def\grb@ixpt{\gr@getfont\pgrbf\grbfam\@ixpt{\gr@@kb\@ptscale9}} +\def\grb@xpt{\gr@getfont\pgrbf\grbfam\@xpt{\gr@@kb}} +\def\grb@xipt{\gr@getfont\pgrbf\grbfam\@xipt{\gr@@kb\@halfmag}} +\def\grb@xiipt{\gr@getfont\pgrbf\grbfam\@xiipt{\gr@@kb\@magscale1}} +\def\grb@xivpt{\gr@getfont\pgrbf\grbfam\@xivpt{\gr@@kb\@magscale2}} +\def\grb@xviipt{\gr@getfont\pgrbf\grbfam\@xviipt{\gr@@kb\@magscale3}} +\def\grb@xxpt{\gr@getfont\pgrbf\grbfam\@xxpt{\gr@@kb\@magscale4}} +\def\grb@xxvpt{\gr@getfont\pgrbf\grbfam\@xxvpt{\gr@@kb\@magscale5}} + +\def\gri@vpt{\@subfont\grit\it} +\def\gri@vipt{\gr@getfont\pgrit\grifam\@vipt{\gr@@ki\@ptscale6}} +\def\gri@viipt{\gr@getfont\pgrit\grifam\@viipt{\gr@@ki\@ptscale7}} +\def\gri@viiipt{\gr@getfont\pgrit\grifam\@viiipt{\gr@@ki\@ptscale8}} +\def\gri@ixpt{\gr@getfont\pgrit\grifam\@ixpt{\gr@@ki\@ptscale9}} +\def\gri@xpt{\gr@getfont\pgrit\grifam\@xpt{\gr@@ki}} +\def\gri@xipt{\gr@getfont\pgrit\grifam\@xipt{\gr@@ki\@halfmag}} +\def\gri@xiipt{\gr@getfont\pgrit\grifam\@xiipt{\gr@@ki\@magscale1}} +\def\gri@xivpt{\gr@getfont\pgrit\grifam\@xivpt{\gr@@ki\@magscale2}} +\def\gri@xviipt{\gr@getfont\pgrit\grifam\@xviipt{\gr@@ki\@magscale3}} +\def\gri@xxpt{\gr@getfont\pgrit\grifam\@xxpt{\gr@@ki\@magscale4}} +\def\gri@xxvpt{\gr@getfont\pgrit\grifam\@xxvpt{\gr@@ki\@magscale5}} + +\def\grt@vpt{\@subfont\grtt\tt} +\def\grt@vipt{\gr@getfont\pgrtt\grtfam\@vipt{\gr@@kt\@ptscale6}% + \@nohyphens\pgrtt\@vipt} +\def\grt@viipt{\gr@getfont\pgrtt\grtfam\@viipt{\gr@@kt\@ptscale7}% + \@nohyphens\pgrtt\@viipt} +\def\grt@viiipt{\gr@getfont\pgrtt\grtfam\@viiipt{\gr@@kt\@ptscale8}% + \@nohyphens\pgrtt\@viiipt} +\def\grt@ixpt{\gr@getfont\pgrtt\grtfam\@ixpt{\gr@@kt\@ptscale9}% + \@nohyphens\pgrtt\@ixpt} +\def\grt@xpt{\gr@getfont\pgrtt\grtfam\@xpt{\gr@@kt}% + \@nohyphens\pgrtt\@xpt} +\def\grt@xipt{\gr@getfont\pgrtt\grtfam\@xipt{\gr@@kt\@halfmag}% + \@nohyphens\pgrtt\@xipt} +\def\grt@xiipt{\gr@getfont\pgrtt\grtfam\@xiipt{\gr@@kt\@magscale1}% + \@nohyphens\pgrtt\@xiipt} +\def\grt@xivpt{\gr@getfont\pgrtt\grtfam\@xivpt{\gr@@kt\@magscale2}% + \@nohyphens\pgrtt\@xivpt} +\def\grt@xviipt{\gr@getfont\pgrtt\grtfam\@xviipt{\gr@@kt\@magscale3}% + \@nohyphens\pgrtt\@xviipt} +\def\grt@xxpt{\gr@getfont\pgrtt\grtfam\@xxpt{\gr@@kt\@magscale4}% + \@nohyphens\pgrtt\@xxpt} +\def\grt@xxvpt{\gr@getfont\pgrtt\grtfam\@xxvpt{\gr@@kt\@magscale5}% + \@nohyphens\pgrtt\@xxvpt} diff --git a/texmf/metafont/kelly/greek.tex b/texmf/metafont/kelly/greek.tex new file mode 100644 index 0000000..7d9f8dc --- /dev/null +++ b/texmf/metafont/kelly/greek.tex @@ -0,0 +1,229 @@ +\documentstyle[greek,twoside]{article} +\title{Greek Fonts for Textual Use} +\author{B Hamilton Kelly\thanks{Because I realize that ``double-barrelled'' + names cause confusion in the U.S., and since mine is even more + unusual in that it does {\bf not} contain a hyphen, I should point out + that my {\bf surname} is `Hamilton Kelly', and not just `Kelly'! (First + name is `Brian', by the way.)}\\ + Royal Military College of Science\\Shrivenham, + {\bf SWINDON}, SN6~8LA\\United Kingdom} +\newfont{\logo}{logo10} +\newcommand{\MF}{{\logo META}\-{\logo FONT}} +\newcommand{\SLiTeX}{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern + -.1667em\lower.7ex\hbox{E}\kern-.125emX}} +\newcommand{\exmp}[1]{\grbf #1 &\tt #1} +\newcommand{\bs}{\char"5C} +\begin{document} +\maketitle + +Needing to write some Greek examples for my Adult Education evening class, and +being ignorant (at the time) of the existence of Silvio Levy's excellent work, +I created a selection of \MF\ driver files which used the definitions of the +maths font Greek characters (assembled into {\tt GRKTXT.MF}), together with +some other useful bits. I used these to generate a Greek text font in normal +and bold weights, and also in italic and typewriter styles. + +The characters are mapped to the intuitive Roman alphabet equivalents, as +shown in Table~\ref{gr-trans}, with the use of some ligatures to handle Greek +letters traditionally represented by two Roman letters. These mappings are +{\bf not} everywhere the same as Silvio Levy's; in particular, note that he +uses `{\tt H}' to represent `{\grbf Y}'\footnote{The {\tt\bs grbf} font has +been used in all the in-text examples in this paper} (which is intuitive as a +capital, but not in lower-case [`{\tt h}'$\not\simeq$`{\grbf y}']) --- I feel +that my transliteration here makes the ``English'' Greek more readable, since +most of it tends to be in lower-case. (Incidentally, I originally started +with more ligatures, for example, `{\tt ks}' and `{\tt rh}' for `{\grbf x}' +and `{\grbf r}' respectively; the latter caused a minor disaster with the +Greek for `I start' ({\grbf arh\'izw}) which has to be input as `{\tt +arh\bs'izw}'!) + +Since I was interested only in Modern (Demotic) Greek, which adopted the +``one-accent'' system in 1982, I made no special provision for accents: in +particular, there is no simple way of generating breathing marks. I just use +the normal \LaTeX\ {\tt\bs'} before the accented letter: of course, this puts +the accent on capital letters in the wrong place ({\grbf \'Y} whereas it +should be {\grbf\'{}Y}), but one doesn't always need to accent capitals, +and \verb|\'{}| works when necessary. I recognize that using this form of +accenting precludes any attempt by \TeX\ to hyphenate the Greek words, but I'm +pretty clueless on {\em where\/} to hyphenate Greek in general! Some time, I +ought to get around to making `{\tt;}' into a sentence-ending punctuation mark +(since Greek uses it where English uses `{\tt?}'), and perhaps provide a +raised dot for the Greek semi-colon; at present, all punctuation marks are in +the conventional (Roman) positions, without transliteration, so you type a +`{\tt;}' to get the Greek question mark. + +\begin{table}[tbp] + \begin{center} + \begin{tabular}{cc@{\hspace{1cm}}cc} + Greek & Characters & Greek & Characters\\ + Letter & Typed & Letter & Typed\\ + \exmp A & \exmp a\\ + \exmp B & \exmp b\\ + \exmp G & \exmp g\\ + \exmp D & \exmp d\\ + \exmp E & \exmp e\\ + \exmp Z & \exmp z\\ + \exmp Y & \exmp y\\ + \grbf TH & \tt TH \rm or \tt Th & \exmp{th}\\ + \exmp I & \exmp i\\ + \exmp K & \exmp k\\ + \exmp L & \exmp l\\ + \exmp M & \exmp m\\ + \exmp N & \exmp n\\ + \exmp X & \exmp x\\ + \exmp O & \exmp o\\ + \exmp P & \exmp p\\ + \exmp R & \exmp r\\ + \exmp S & \exmp s\\ + & & \grbf \s & \tt\bs s\\ + \exmp T & \exmp t\\ + \exmp U & \exmp u\\ + \grbf PH & \tt PH \rm or \tt Ph & \exmp{ph}\\ + \exmp H & \exmp h\\ + \grbf PS & \tt PS \rm or \tt Ps & \exmp{ps}\\ + \exmp W & \exmp w + \end{tabular} + \end{center} + \caption{Transliteration from Keyboard Input to Greek}\label{gr-trans} +\end{table} + + +To facilitate the use of these fonts, I have designed a \LaTeX\ style file +option {\tt GREEK.STY}, which ought to be usable with any normal \LaTeX\ +style; at present, it is {\bf not} suitable for \SLiTeX. The commands {\tt\bs +gr, \bs grbf, \bs grit} and {\tt\bs grtt} are defined, and will automatically +track any \LaTeX\ size changing command ({\it i.e.}\ {\tt\bs Large} will +invoke a 14pt {\tt\bs rm} font in a 10pt document style, and then selecting +{\tt\bs grbf} will select the corresponding 14pt Greek bold font). Whenever a +Greek font definition is in force, the macro {\tt\bs s} is used to generate +the variant of lower-case {\tt\bs sigma} required at the ends of words. +(Silvio Levy's font takes care of all this automatically, however, I'm pretty +sure that my LN03 printer driver would fail if I needed more than 188 +characters from his Greek fonts, because each \TeX\ font needs to be mapped to +a single LN03 internal font, which has a maximum capacity of two 94-character +``chunks'' in the GL and GR terminology of ANSI X-3.64.) + +In the last few days I've been getting my hands dirtier with \MF, and have +changed the programs for a number of the characters; this was necessary +because they still exhibited that they were originally ``tuned'' for maths +setting. The characters changed are as follows:\begin{itemize} + \item The lower-case \verb|\alpha| was too wide and also extended right up + to the right-hand edge of the bounding box; this has been shrunk by some + judicious tweaking of points defining the pen stroke. + \item The characters \verb|\iota| and \verb|\mu| also came right up to + their right-hand sides; they have simply been redefined in a box one $u$ + wider. + \item The character \verb|\nu| had a vertical left stroke; this has been + curved and the serif (if any) blended in. + \item The character \verb|\lambda| was too wide: fine for denoting + wavelength and the like, but not very pretty in text; its width has been + shrunk by one $u$. + \item The character \verb|\kappa| is fine for maths, but not the form + ordinarily found in Greek text; what is wanted is something like the + \verb|\varkappa| provided by $\cal AMS$\TeX. My first thought was to + pirate that character from \verb|YSYMBOL.MF| (which we have) but of course + that's for the old MF-in-SAIL; I have written something in \MF84 which + approximates that character (please don't look too closely at the awful + code!) +\end{itemize} + +There is considerable scope for further work:\begin{itemize} + \item As mentioned above, because the Greek character definitions were + stolen from the maths fonts, spacing of some other characters is not yet + perfect; furthermore, the actual form of some other characters (notably + {\grbf z} and {\grbf x}) is not that normally expected in Greek text. + Eventually, I shall have to tweek them myself, or steal the appropriate + bits of Levy's fonts. (As mentioned above, I feel that use of his full + 256-character font would cause problems at this site.) + \item To make {\tt GREEK.STY} work with \SLiTeX\ as well, I shall have to + re-write {\tt SFONTS.TEX} to use a font size changing strategy akin to + that used by {\tt LFONTS.TEX}, this will also permit the use of {\tt + CYRILLIC.STY} (which we have also modified to track automatically \LaTeX\ + size changes) with \SLiTeX; quite frankly, I could never understand why + {\tt SFONTS.TEX} preloads all those fonts, when load-on-demand would seem + much more useful for the contexts in which \SLiTeX\ is used. + \item I haven't made any ``guillemets'' style quotation marks. +\end{itemize} + +Finally, an example; I don't know whether Silvio Levy asked the copyright +holder's permission to reproduce his example from Kazantzakis' ``Symposium'', +but I haven't! I have, however, followed modern usage of the one-accent +system. (I have also corrected what I presume to be a ``typo''; it may be, of +course, that Kazantzakis actually wrote what was printed in Levy's article, +but I feel that {\grit m' \'ezwsan} [``encircled me''] makes more sense when +referring to lightning than {\grit m' \'exwsan} [``evicted me''] --- +my {\grit Meg\'alo ep\'itomo lexik\'on ty\s\ Ellynik\'y\s\ gl\'wssa\s\/} +[{\it ca.}~1500{\sl pp}.] doesn't suggest any other sensible meaning for this +verb!) + +\def\bodytext{Ty stigm\'y to\'uty ni\'wthw p\'oso bar\'u 'nai to must\'yrio +ty\s\ xomol\'ogysy\s. W\s\ t\'wra, kane\'i\s\ den x\'erei p\'w\s\ p\'erasa ta +du\'o hr\'onia mou sto \'{}Agion \'{}Oro\s. Oi ph\'iloi mou tharro\'un pw\s\ +p\'yga na dw buzantin\'a kon\'ismata \'y ap\'o mustikop\'atheia na z\'ysw +mi\'a perasm\'eny epoh\'y. Kai t\'wra, na, ntr\'epomai na mil\'ysw. + +P\'w\s\ na to pw\@; Thumo\'umai \'ena anoixi\'atiko deilin\'o, pou kat\'ebaina +ton Ta\'ugeto, mi\'a xaphnik\'y th\'uella me k\'uklwse kont\'a stou\s\ +Pentaulo\'u\s. T\'oso phober\'o\s\ anemos\'iphouna\s, pou \'epesa katag\'y\s\ +gi\'a na m\'yn gkremist\'w. Oi astrap\'e\s\ m'~\'ezwsan olo\'uthe ki \'ekleisa +ta m\'atia m\'yn tuphlwth\'w, kai kat\'ahama, p\'istoma, per\'imena. \'{}Olo to +pan\'upsylo boun\'o \'etreme, kai du\'o \'elata d\'ipla mou tsak\'istykan +ap' ty m\'esy kai br\'ontyxan h\'amou. \'{}Eniwtha to thei\'aphi tou kerauno\'u +ston a\'era, kai xaphnik\'a x\'espase y mp\'ora, \'epesen o \'anemo\s, kai +hontr\'e\s, therm\'e\s\ st\'ale\s\ broh\'y ht\'upysan ta dentr\'a kai to +h\'wma. To thum\'ari, y thro\'umpa, to phask\'omylo, to phlisko\'uni, +htupym\'ena ap' to ner\'o, t\'inaxan ti\s\ murwdi\'e\s\ tou\s\ ki \'oly y gy\s\ +m\'urise.} + +\begin{flushleft}\parskip 5pt plus 1pt +{\gr \bodytext} +\end{flushleft} + +And here is the text input to generate that:\begin{verbatim} +\begin{flushleft}\parskip 5pt plus 1pt +{\gr Ty stigm\'y to\'uty ni\'wthw p\'oso bar\'u +'nai to must\'yrio ty\s\ xomol\'ogysy\s. W\s\ t\'wra, +kane\'i\s\ den x\'erei p\'w\s\ p\'erasa ta du\'o hr\'onia mou +sto \'{}Agion \'{}Oro\s. Oi ph\'iloi mou tharro\'un pw\s\ +p\'yga na dw buzantin\'a kon\'ismata \'y ap\'o +mustikop\'atheia na z\'ysw mi\'a perasm\'eny epoh\'y. Kai +t\'wra, na, ntr\'epomai na mil\'ysw. + +P\'w\s\ na to pw\@; Thumo\'umai \'ena anoixi\'atiko +deilin\'o, pou kat\'ebaina ton Ta\'ugeto, mi\'a xaphnik\'y +th\'uella me k\'uklwse kont\'a stou\s\ Pentaulo\'u\s. +T\'oso phober\'o\s\ anemos\'iphouna\s, pou \'epesa +katag\'y\s\ gi\'a na m\'yn gkremist\'w. Oi astrap\'e\s\ +m'~\'ezwsan olo\'uthe ki \'ekleisa ta m\'atia m\'yn +tuphlwth\'w, kai kat\'ahama, p\'istoma, per\'imena. \'{}Olo +to pan\'upsylo boun\'o \'etreme, kai du\'o \'elata d\'ipla +mou tsak\'istykan ap' ty m\'esy kai br\'ontyxan h\'amou. +\'{}Eniwtha to thei\'aphi tou kerauno\'u ston a\'era, kai +xaphnik\'a x\'espase y mp\'ora, \'epesen o \'anemo\s, kai +hontr\'e\s, therm\'e\s\ st\'ale\s\ broh\'y ht\'upysan ta +dentr\'a kai to h\'wma. To thum\'ari, y thro\'umpa, to +phask\'omylo, to phlisko\'uni, htupym\'ena ap' to ner\'o, +t\'inaxan ti\s\ murwdi\'e\s\ tou\s\ ki \'oly y gy\s\ +m\'urise.} +\end{flushleft}\end{verbatim} +(Note particularly the `\verb|\@;|' to make the Greek question mark end the +sentence; also the use of `\verb|\'{}|' to put the accents {\em before\/} the +capital letters.) + +Here it is again, but this time in the italic face: +\begin{flushleft}\parskip 5pt plus 1pt +{\grit \bodytext} +\end{flushleft} + +And again, but in the bold extended form: +\begin{flushleft}\parskip 5pt plus 1pt +{\grbf \bodytext} +\end{flushleft} + +And one last time, in the Greek typewriter font: +\begin{flushleft}\parskip 5pt plus 1pt +{\grtt \bodytext} +\end{flushleft} + + +\end{document} diff --git a/texmf/metafont/kelly/grktxt.mf b/texmf/metafont/kelly/grktxt.mf new file mode 100644 index 0000000..c1b24eb --- /dev/null +++ b/texmf/metafont/kelly/grktxt.mf @@ -0,0 +1,1288 @@ +% Attempt to generate a Greek alphabet for setting Greek texts +% Adapted by B Hamilton Kelly (29 Sept 1987) from +% The Computer Modern Math Italic family (by D. E. Knuth, 1979--1985) + +% Computer Modern Greek caps, analogous to the uppercase Roman letters. +% Modified by BHK @RMCS 870902 --- see TUGboat 87#2 Errata & Changes supplement + +% Computer Modern Roman upper case: +% These letters were originally coded by D. E. Knuth in November, 1979, +% inspired by the Monotype faces used in {\sl The Art of Computer Programming}. +% Sans serif designs by Richard Southall were added in April, 1982. +% The programs were revised for the new \MF\ conventions in 1985. + +% Computer Modern Roman lower case: +% These letters were originally coded by D. E. Knuth in November, 1979, +% inspired by the Monotype faces used in {\sl The Art of Computer Programming}. +% Sans serif designs by Richard Southall were added in April, 1982. +% The programs were revised for the new \MF\ conventions in 1985. + +% This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979, +% inspired by the Monotype faces used in {\sl The Art of Computer Programming}. +% (It has been designed for math formulas, not Greek texts.) +% The programs were revised for the new \MF\ conventions in 1985. + +font_coding_scheme:="TeX Greek Alphabet"; +mode_setup; font_setup; + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; fi + +% Greek Upper-case --- these programs taken from romanu and greeku. + +cmchar "The letter Alpha"; +beginchar("A",13u#,cap_height#,0); +adjust_fit(cap_serif_fit#,cap_serif_fit#); +numeric left_stem,right_stem,outer_jut,alpha; +right_stem=cap_stem-stem_corr; +left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); +outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0; +x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo; +alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr); +penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0); +penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0); +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; +if y0lower_notch: {left}(x4'-1,lower_notch){up}... fi + {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal +else: penpos5(whatever,0); penpos6(whatever,90); + z5l=z1l; z6l=z4l; + z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90); + z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l); + filldraw stroke z5e..z6e; fi % diagonal +if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif + else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif + dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif + dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif +math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar; + +cmchar "Uppercase Greek Xi"; +beginchar("X",12u#,cap_height#,0); +italcorr cap_height#*slant-.35u#; +adjust_fit(0,0); +h:=vround(h-2stem_corr); +numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem]; +% Next line added by BHK 870902 --- see TUGboat 87#2 Errata & Changes supplement +if shaved_stemtop y7r+.75cap_jut: xjut=.5cap_jut; + else: bot y2=top y7r+1.5xjut; fi + pos11(hair,0); pos12(hair,0); y11=y12; + pos13(hair,0); pos14(hair,0); y13=y14; + lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u; + top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7; + filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar; + +cmchar "The letter Omicron"; +beginchar("O",14u#-width_adj#,cap_height#,0); +italcorr .7cap_height#*slant-.5u#; +adjust_fit(0,0); +penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90); +penpos2(cap_curve,180); penpos4(cap_curve,0); +if monospace: x2r=hround 1.5u; + interim superness:=sqrt superness; % make |"O"|, not |"0"| +else: x2r=hround u; fi +x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o; +y2=y4=.5h-vair_corr; y2l:=y4l:=.52h; +penstroke pulled_super_arc.e(1,2)(.5superpull) + & pulled_super_arc.e(2,3)(.5superpull) + & pulled_super_arc.e(3,4)(.5superpull) + & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl +math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar; + +cmchar "Uppercase Greek Pi"; +beginchar("P",13u#+width_adj#,cap_height#,0); +italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); +adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; +h:=vround(h-stem_corr); +pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; +top y1=top y3=h; bot y2=bot y4=0; +filldraw stroke z1e--z2e; % left stem +filldraw stroke z3e--z4e; % right stem +penpos5(cap_bar,90); penpos6(cap_bar,90); +x5=x1; x6=x3; y5r=y6r=h; +fill stroke z5e--z6e; % bar +if serifs: numeric inner_jut; + if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; + else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi + nodish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif + nodish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper right serif + dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; + +cmchar "The letter P (Rho)"; +beginchar("R",12u#,cap_height#,0); +italcorr .75cap_height#*slant-.5u#; +adjust_fit(cap_serif_fit#,0); +pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0); +pos0(cap_stem',0); pos0'(cap_stem,0); +lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0; +x1l=x2l=x0l=x0'l; y0=y0'=y7; +penpos3(cap_band,90); penpos4(cap_band,90); +penpos5(cap_curve if hefty:-3stem_corr fi,0); +penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90); +z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; +x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u); +x4l:=x6l:=x4-.25cap_curve; +filldraw stroke z1e--z0e--z0'e--z2e; % stem +fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe +if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif + dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif +math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar; + +cmchar "Uppercase Greek Sigma"; +beginchar("S",13u#,cap_height#,0); +italcorr cap_height#*slant-beak_jut#-.5u#; +adjust_fit(0,0); +numeric bot_arm_thickness; +bot_arm_thickness=Vround .25[slab,cap_vstem]; +pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l; +top y1=h; bot y2=h-slab-eps; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h; +numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0); +penpos3(alpha1*(cap_stem-tiny),0); +alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l); +penpos4(alpha2*(cap_hair-tiny),0); +z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +pickup crisp.nib; pos5(slab,90); pos6(hair,0); +top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps; +arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak +pos7(bot_arm_thickness,-90); pos8(hair,0); +bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps; +arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak +math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "The letter Tau"; +beginchar("T",13u#-width_adj#,cap_height#,0); +italcorr cap_height#*slant-beak_jut#-.25u#; +adjust_fit(0,0); +h:=vround(h-2stem_corr); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +pickup crisp.nib; pos3(slab,90); pos4(hair,0); +top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps; +arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak +pos5(hair,180); x5=w-x4; y5=y4; +arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak +if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif + nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing +math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar; + +cmchar "Uppercase Greek Upsilon"; +beginchar("U",14u#,cap_height#,0); +italcorr .8cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0; +filldraw stroke z1e--z2e; % stem +penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180); +z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o; +penpos5'(cap_hair,180); x5'=x5; y5'=h; +fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up} + ...{right}z4l...{down}z3l--cycle; % left arc +penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180); +z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4; +penpos8'(cap_hair,-180); x8'=x8; y8'=h; +fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up} + ...{left}z7l...{down}z6l--cycle; % right arc +if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif +math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#); +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Uppercase Greek Phi"; +beginchar(oct"010",13u#,cap_height#,0); +italcorr .5cap_height#*slant-.5u#; +adjust_fit(0,0); +numeric shaved_stem,light_curve; +shaved_stem=cap_stem-hround 2stem_corr; +light_curve=cap_curve-hround stem_corr; +pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +penpos3(vair,90); penpos5(vair,-90); +penpos4(light_curve,180); penpos6(light_curve,0); +x4r=hround u; x6r=w-x4r; x3=x5=.5w; +y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5]; +y5r=vround(.15h if serifs:+slab fi); +penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5) + & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl +if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif + dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif +math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar; + +cmchar "The letter X (Chi)"; +beginchar("H",13u#,cap_height#,0); +italcorr cap_height#*slant-.25u#; +adjust_fit(cap_serif_fit#,cap_serif_fit#); +numeric stem[],outer_jut,xjut,alpha[]; +stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1); +outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi; +x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut; +x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut; +y1=y2=h; y3=y4=0; +alpha1=diag_ratio(1,stem1,h,x4r-x1l); +alpha2=diag_ratio(1,stem2,h,x2r-x3l); +penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0); +penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0); +if hefty: z0=whatever[z1,z4]=whatever[z2,z3]; + x12=x34=x0; y13=y24=y0; + z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l]; + z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r]; + forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor + fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34' + --diag_end(34',4l,.5,1,4r,24')--z24' + --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals +else: fill diag_end(4r,1r,.5,1,1l,4l) + --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal + fill diag_end(2l,3l,.5,1,3r,2r) + --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal +if serifs: numeric inner_jut[]; pickup tiny.nib; + prime_points_inside(1,4); prime_points_inside(2,3); + prime_points_inside(3,2); prime_points_inside(4,1); + if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut; + else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi + if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut; + else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi + dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif + dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif + dish_serif(2',3,e,2/3,inner_jut1+xjut, + f,1/2,outer_jut+xjut)(dark); % upper right serif + dish_serif(3',2,g,1/2,outer_jut+xjut, + h,2/3,inner_jut2+xjut)(dark); fi % lower left serif +math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar; + +cmchar "Uppercase Greek Psi"; +beginchar(oct"011",14u#,cap_height#,0); +italcorr .8cap_height#*slant-.5u#; +adjust_fit(0,0); +numeric shaved_stem; +shaved_stem=cap_stem-hround 2stem_corr; +pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +pos3(shaved_stem,-180); pos4(shaved_stem,-180); +pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi); +pos6(shaved_stem,0); pos7(shaved_stem,0); +lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4; +pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r; +y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3'); +interim superness:=more_super; +filldraw z3'l{right}...z4r{down} & super_arc.r(4,5) + & super_arc.r(5,6) & z6r{up}...z7'l{right} + --z7r---z7l...z6l{down} & super_arc.l(6,5) + & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke +if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif + dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif +math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#); +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Uppercase Greek Omega"; +beginchar("W",13u#,cap_height#,0); +italcorr .75cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180); +pos3(vair,180); pos4(cap_curve,0); pos5(vair,0); +x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2; +rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3; +filldraw stroke z3e{up}...{up}z2e + & pulled_super_arc.e(2,1)(.5superpull) + & pulled_super_arc.e(1,4)(.5superpull) + & z4e{down}...{down}z5e; % bowl +numeric arm_thickness; path p; p=z3{up}...{up}z2; +arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); +pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180); +bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps; +(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x; +arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak +pos8(arm_thickness,-90); pos9(fudged.hair,0); +y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; +arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; + +% Greek lower-case --- the majority of these programs take from greekl + +% Revised BHK 880923 to occupy only 9u of the 11u width: original at end +cmchar "Lowercase Greek alpha"; +beginchar("a",11u#,x_height#,0); +italcorr max(1/3x_height#*slant+.5hair#-.5u#,x_height#*slant-.5u#); +adjust_fit(0,0); pickup fine.nib; +pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270); +z4=(w-3.9u,9/16h); z5=(w-3.4u,.5[vair,y4]); +numeric theta; theta=angle(z4-z5)-90; +pos4(stem,theta); pos5(stem,theta); +pos6(vair,90); pos7(hair,180); +rt x0r=hround(w-2u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve); +x6=w-2u; x7+.5hair=hround(w-u+.5hair-epsilon); +top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo; +y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height; +filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3) + ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook +math_fit(-.3x_height#*slant+.5curve#-u#,1/3x_height#*slant+.5hair#+.5u#); +penlabels(0,1,2,3,4,5,6,7); endchar; + +cmchar "Lowercase Greek beta"; +beginchar("b",9.5u#,asc_height#,desc_depth#); +italcorr .5[x_height#,asc_height#]*slant-u#; +adjust_fit(0,0); pickup fine.nib; +pos0(hair,180); pos1(hair,180); pos2(vair,90); +pos3(stem,0); pos4(vair,-90); pos5(hair,-180); +pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540); +x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u; +rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u); +bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4]; +y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8]; +if y6ly3r: y1r:=y3r:=y2; fi +lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine; +x6+.5u=x7=w-2u; x8=.5w+.75u; +y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo; +ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); +y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; +filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook +filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right} + ...z6e---z5e....{up}z4e + ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke +math_fit(-.2asc_height#*slant-.5u#,0); +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Lowercase Greek eta"; +beginchar("y",9u#,x_height#,desc_depth#); +italcorr .8x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo; +hook_in(0,a,1); % opening hook +filldraw circ_stroke z2e--z1e; % left stem +x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch +pos5(stem,0); x5=x4; y5-.5stem=-d-o; +filldraw circ_stroke z5e--z4e; % right stem +math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); +penlabels(0,a,1,2,3,4,5); endchar; + +cmchar "Lowercase Greek theta"; % The variant is preferred +beginchar(oct"003",8.25u#,asc_height#,0); +italcorr .7asc_height#*slant+.5curve#-u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360); +x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2; +top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo; +filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl +pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l; +filldraw stroke z2'e--z4'e; % bar +math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#); +penlabels(1,2,3,4); endchar; + +% Modified BHK 880926 to make enclosing box one u wider +cmchar "Lowercase Greek iota"; +beginchar("i",6u#,x_height#,0); +italcorr 1/3x_height#*slant+.5hair#-.5u#; +adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib; +pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; +x2=x1-.25u; x4=w-u; hook_out(2,3,4)(skewed); % closing hook +filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem +math_fit(0,ic#); penlabels(1,2,3,4); endchar; + +% Designed BHK 880926 (based on \varkappa from msym10 [MF in SAIL]) +cmchar "Lowercase Greek kappa (variant)"; +beginchar("k",10u#,x_height#,0); +adjust_fit(0,0); pickup fine.nib; +italcorr 1/3x_height#*slant+.5hair#-.5u#; +% Following definitions made character too heavy compared with rest +%pos1(hair,-45); pos2(curve,-90); pos3(vair,180); pos4(stem,135); +%pos14(stem,135); pos13(vair,180); pos12(curve,-90); pos11(hair,45); +pos1(hair,-45); pos2(stem,-90); pos3(vair,180); pos4(stem,90); +pos14(stem,90); pos13(vair,180); pos12(stem,-90); pos11(hair,45); +x1l=u; x11=w-x1; y1=good.y(.4[bar_height,h]); y11=h-y1; +x2=.25[x1,w/2]=w-x12; y2l=h+oo; y12r=0; +x3-x2=x2-x1; x13=w-x3; y3=y13=h/2; +x4r=x1l; y4l=0; x14=w-x4; y14r=h+oo; +filldraw circ_stroke z1e{up}..z2e{right}..z3e{-.2,-1}..z4e{-1,-1}; % left +filldraw circ_stroke z11e{down}..z12e{left}..z13e{.2,1}..z14e{1,1}; % right +filldraw z4l--z14l--z14r--z4r--cycle; % diagonal +penlabels(1,2,3,4,11,12,13,14); +endchar; + +cmchar "Lowercase Greek kappa (math type)"; +beginchar(oct"004",9u#,x_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90); +x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo; +filldraw z1l---z2l..z2r---z1r..cycle; % stem +y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r; +path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle; +numeric t; t=ypart(p intersectiontimes q); +filldraw stroke z3e{right}..{right}z4e; % upper diagonal +filldraw subpath(0,t) of q--cycle; % bulb +pos7(stem,0); pos8(vair,90); pos9(hair,180); +x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height; +lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; +filldraw stroke z3e{right}...z7e{down} + ...z8e{right}...{up}z9e; % lower diagonal +math_fit(0,ic#); penlabels(1,2,3,4,5,7,8,9); endchar; + +% Revised BHK 880923 to make narrower +cmchar "Lowercase Greek lambda"; +beginchar("l",9.5u#,asc_height#,0); +adjust_fit(0,0); pickup fine.nib; +pos1(vair,90); lft x1=hround .1u; top y1r=h; +x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); +z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90; +pos2(stem,theta); pos3(stem,theta); pos4(stem,0); +filldraw circ_stroke z1e{right}...z2e---z3e + ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal +y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; +x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); +filldraw circ_stroke z6e--z5e; % short diagonal +penlabels(1,2,3,4,5,6); endchar; + +% Revised BHK 880923 to make one unit wider (avoiding running into next char) +cmchar "Lowercase Greek mu"; +beginchar("m",10u#,x_height#,desc_depth#); +italcorr 1/3x_height#*slant+.5hair#-.5u#; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem); +y1+.5stem=h+oo; y2-.5stem=-d-o; +filldraw z1r---z2r..z2l---z1l..cycle; % left stem +pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5]; +pos6(stem,0); rt x6r=hround(w-3.5u+.5stem); +x5=x6=x7; x9=w-u; hook_out(7,8,9); % closing hook +y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h; +filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc +filldraw circ_stroke z6e--z7e; % right stem +math_fit(desc_depth#*slant+.5stem#-u#,ic#); +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +% Changed BHK 880923 to make left stem curved and reduce overhang on left +cmchar "Lowercase Greek nu"; +beginchar("n",8.5u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo; +x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem); +filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal +pickup tiny.nib; +pos1(stem,10); pos2(stem,10); +top y1=h+min(oo,serif_drop); bot y2=0; x2=x3; +z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h))); +x1-.5stem=hround(2.5u-.5stem); +x5-x1=.6u; y5=.5[y1,y2]; pos5(stem,0); +z1'=.2[z1,z5]; +filldraw stroke z1e...z5e...z2e; +%filldraw z1l--z2l--z--z1r--cycle; % stem +if serifs: sloped_serif.l(1,1',a,1/3,jut,serif_drop); fi % upper left serif +math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek xi"; +beginchar("x",9u#,asc_height#,desc_depth#); +italcorr .75[x_height#,asc_height#]*slant-2u#; +adjust_fit(0,0); pickup fine.nib; +pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450); +lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u); +top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height)); +y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi +pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90); +numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u; +pos6(stem,theta); pos7(vair,-90); pos8(vair,-135); +lft x0l=hround u; x1=x3=x11; x2=x12; +y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3]; +if y1r>y3r: y1r:=y3r:=y2; fi +lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine; +x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l); +ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); +y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; +filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook +filldraw stroke z12e{up}...z13e{left}...z0e{down} + ...z1e{right}...{up}z2e; % upper arc +filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e + ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke +math_fit(-.2asc_height#*slant-.5u#,0); +penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar; + +cmchar "The letter omicron"; % Taken from "o" in romanl +beginchar("o",9u#,x_height#,0); +italcorr .7x_height#*slant; +adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); +penpos1(vair,90); penpos3(vair',-90); +penpos2(curve,180); penpos4(curve,0); +x2r=hround max(.5u,1.25u-.5curve); +x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo; +y2=y4=.5h-vair_corr; y2l:=y4l:=.52h; +penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl +penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek pi"; +beginchar("p",10u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pi_stroke; % hook and bar +pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2; +x5=3u; x7=w-2.5u; y5=y7=.5stem-oo; +pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159; +pos5(stem,angle v1-90); pos7(stem,angle v2-90); +filldraw circ_stroke z5e{v1}...{up}z4e; % left stem +filldraw circ_stroke z7e{v2}...{up}z6e; % right stem +math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant); +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Variant lowercase Greek rho"; % We prefer this one +beginchar("r",8.25u#,x_height#,desc_depth#); +italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; +adjust_fit(0,0); pickup fine.nib; +pos2(stem,180); pos3(vair,90); pos4(curve,0); pos5(vair,-90); pos6(stem,-180); +lft x2r=hround(1.5u-.5stem); x2=x6; x3=x5=.5[x2,x4]; +rt x4r=hround(w-1.5u+.5curve); +y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo; +filldraw circ_stroke pulled_arc.e(2,3) & pulled_arc.e(3,4) + & pulled_arc.e(4,5) & pulled_arc.e(5,6); % bowl +pos2'(hair,-180); z2'r=z2r; pos1(vstem,-90); pos1'(vstem,90); z1'=z1; +pos0(hair,0); rt x0r=hround(w-u); bot y0=-d; bot y1r=vround-.9d; x1=x5; +interim superness:=sqrt superness; +filldraw stroke pulled_arc.e(0,1'); filldraw stroke pulled_arc.e(1,2'); % tail +math_fit(desc_depth#*slant+.5stem#-u#,ic#); +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek sigma"; +beginchar("s",10.25u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +pos1(vstem,90); pos2(stem,0); pos3(vair,-90); +pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270); +x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u); +lft x4r=hround(1.5u-.5curve);x6=w-1.5u; +top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1; +filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3) + & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl +math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant); +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek tau"; +beginchar("t",9u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pi_stroke; % hook and bar +pos4(hair,0); pos5(stem,0); +x4=x5; x5-.5stem=hround(.5w-.5u-.5stem); y4=y2; y5-.5stem=-oo; +filldraw circ_stroke z5e--z4e; % stem +math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#); +penlabels(1,2,3,4,5); endchar; + +cmchar "Lowercase Greek upsilon"; +beginchar("u",9u#,x_height#,0); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); +hook_in(0,1,2)(skewed); % opening hook +pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); +x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; +filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) + ..tension atleast 1.05..{up}z5e; % left stem and arc +v_bulb(5,6); % closing bulb +math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek phi"; % The variant is preferred +beginchar(oct"016",11u#,asc_height#,desc_depth#); +italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; +adjust_fit(0,0); pickup fine.nib; +numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr); +pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360); +x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2; +top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo; +filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl +pos5(hair,0); pos6(hair,0); x5=x6=.5w; top y5=h; bot y6=-d-oo; +filldraw stroke z5e--z6e; % stem +math_fit(-.3x_height#*slant+.5curve#-u#,ic#); +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek chi"; +beginchar("h",11u#,x_height#,desc_depth#); +italcorr x_height#*slant+.5hair#-1.5u#; +adjust_fit(0,0); pickup fine.nib; +pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180); +x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u; +y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8; +z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0); +numeric theta; theta=angle(z5'-z2')+90; +pos3(stem,theta); pos4(stem,theta); +y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5']; +filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l} + ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks +x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d; +numeric theta; theta=angle(z7-z8)-90; +pos7(hair,theta); pos8(hair,theta); +filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal +math_fit((desc_depth#-x_height#)*slant+ic#,ic#); +penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar; + +cmchar "Lowercase Greek psi"; +beginchar(oct"001",11u#,asc_height#,desc_depth#); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); +hook_in(0,1,2)(skewed); % opening hook +pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); +x4=.5w+u; rt x5r=hround(w-.5u); +y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; +filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) + ..tension atleast 1.05..{up}z5e; % left stem and arc +v_bulb(5,6); % closing bulb +pos7(hair,0); pos8(hair,0); x7=x8=.5w+.5u; top y7=h; bot y8=-d-oo; +filldraw stroke z7e--z8e; % stem +math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Lowercase Greek omega"; +beginchar("w",11u#,x_height#,0); +italcorr x_height#*slant; +adjust_fit(0,0); pickup fine.nib; +pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height; +y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90); +pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90); +pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360); +bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair); +x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u); +x5+.5stem=hround(.5w+.5stem)+eps; +x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps; +if x4l \Psi, \Phi + "H" =: oct"010", "h" =: oct"010"; +ligtable "t": "h" =: oct"002"; %\tau +ligtable "T": "H" =: oct"012", "h" =: oct"012"; +ligtable "k": "h" =: "h"; +ligtable "K": "H" =: "H", "h" =: "H"; +%ligtable "r": "h" =: "r"; +%ligtable "R": "H" =: "R", "h" =: "R"; % $\Rho:$ +bye. + + +% Here follow various programs which have been revised above + +cmchar "Lowercase Greek alpha"; +beginchar("a",11u#,x_height#,0); +italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#); +adjust_fit(0,0); pickup fine.nib; +pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270); +z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]); +numeric theta; theta=angle(z4-z5)-90; +pos4(stem,theta); pos5(stem,theta); +pos6(vair,90); pos7(hair,180); +rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve); +x6=w-u; x7+.5hair=hround(w+.5hair-epsilon); +top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo; +y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height; +filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3) + ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook +math_fit(-.3x_height#*slant+.5curve#-u#,1/3x_height#*slant+.5hair#+.5u#); +penlabels(0,1,2,3,4,5,6,7); endchar; + +cmchar "Lowercase Greek iota"; +beginchar("i",5u#,x_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib; +pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; +x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook +filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem +math_fit(0,ic#); penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek lambda"; +beginchar("l",10.5u#,asc_height#,0); +adjust_fit(0,0); pickup fine.nib; +pos1(vair,90); lft x1=hround .1u; top y1r=h; +x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); +z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90; +pos2(stem,theta); pos3(stem,theta); pos4(stem,0); +filldraw circ_stroke z1e{right}...z2e---z3e + ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal +y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; +x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); +filldraw circ_stroke z6e--z5e; % short diagonal +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Lowercase Greek mu"; +beginchar("m",9u#,x_height#,desc_depth#); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; +pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem); +y1+.5stem=h+oo; y2-.5stem=-d-o; +filldraw z1r---z2r..z2l---z1l..cycle; % left stem +pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5]; +pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); +x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook +y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h; +filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc +filldraw circ_stroke z6e--z7e; % right stem +math_fit(desc_depth#*slant+.5stem#-u#,ic#); +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Lowercase Greek nu"; +beginchar("n",8.5u#,x_height#,0); +italcorr x_height#*slant+.5stem#-u#; +adjust_fit(0,0); pickup fine.nib; +pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo; +x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem); +filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal +pickup tiny.nib; pos1(stem,0); pos2(stem,0); +top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3; +z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h))); +filldraw z1l--z2l--z--z1r--cycle; % stem +sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif +math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar; + +cmchar "Lowercase Greek xi"; +beginchar("x",9u#,asc_height#,desc_depth#); +italcorr .75[x_height#,asc_height#]*slant-2u#; +adjust_fit(0,0); pickup fine.nib; +pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450); +lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u); +top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height)); +y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi +pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90); +numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u; +pos6(stem,theta); pos7(vair,-90); pos8(vair,-135); +lft x0l=hround u; x1=x3=x11; x2=x12; +y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3]; +if y1r>y3r: y1r:=y3r:=y2; fi +lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine; +x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l); +ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r); +y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r]; +filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook +filldraw stroke z12e{up}...z13e{left}...z0e{down} + ...z1e{right}...{up}z2e; % upper arc +filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e + ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke +math_fit(-.2asc_height#*slant-.5u#,0); +penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar; + diff --git a/texmf/metafont/ls-R b/texmf/metafont/ls-R new file mode 100644 index 0000000..b6d2a75 --- /dev/null +++ b/texmf/metafont/ls-R @@ -0,0 +1,26 @@ +% ls-R -- filename database for kpathsea; do not change this line. +./: +.: +kelly +ls-R + +./kelly: +cmg10.600pk +cmg10.mf +cmg10.tfm +cmgb10.600pk +cmgb10.mf +cmgb10.tfm +cmgi10.600pk +cmgi10.mf +cmgi10.tfm +cmgtt10.600pk +cmgtt10.mf +cmgtt10.tfm +greek.aux +greek.dvi +greek.log +greek.pdf +greek.sty +greek.tex +grktxt.mf diff --git a/texmf/realcalc.tex b/texmf/realcalc.tex new file mode 100644 index 0000000..be46167 --- /dev/null +++ b/texmf/realcalc.tex @@ -0,0 +1,581 @@ +%% realcalc.tex +%% +%% (C) Frank Buchholz, Jan. 1993 +%% e-mail: buchholz@lusty.informatik.uni-dortmund.de +% User documentation: All lines starting with two % +% Try grep to extract these lines. +%% +%% Real arithmetic with big values and high precision. +%% Calculations are done with 9 decimal digits. +%% Usable with TeX and LaTeX. +%% +%% Parameter: +%% +%% Macro, witch catches the result. +%% String or macro witch expands to a value in the range +%% from -2147483647.999999999 to 2147483647.999999999 +%% Number from 0 to 9 +%% +%% Functions: +%% + +% Don't read this file twice +\ifx\Radd\undefined \else \endinput \fi + +% Make "@" be a letters +\chardef\catamp=\the\catcode`\@ +\catcode`@=11 + +\def\@Rversion{Version 1.0, Jan. 1993} +\message{`Real arithmetic', \@Rversion (C) Frank Buchholz} + +% Allocation of temporary registers +\newcount\@ta +\newcount\@tb +% +\newcount\@xs % Sign of 1st value +\newcount\@xi % Integer part of 1st value +\newcount\@xf % Fractional part of 1st value +% +\newcount\@ys % Sign of 2nd value +\newcount\@yi % Integer part of 2nd value +\newcount\@yf % Fractional part of 2nd value +% +\newcount\@mil \@mil=1000000000 % 10^9 +% +\countdef\@xa240 +\countdef\@xb241 +\countdef\@xc242 +\countdef\@xd243 +\countdef\@xe244 +\countdef\@ya245 +\countdef\@yb246 +\countdef\@yc247 +\countdef\@yd248 +\countdef\@ye249 +\let\@f=\@tb +\let\@product=\@ta + +\chardef\@zero=0 + +%% \Radd Addition +\def\Radd#1#2#3{\@callc\@Radd#1{#2}{#3}} + +%% \Rsub Subtraction +\def\Rsub#1#2#3{\@callc\@Radd#1{#2}{-#3}} + +\def\@Radd#1#2.#3.#4\relax#5.#6.#7\relax{% + % #1 Macro, witch gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#2}{#3}% + \@readvalue\@ys\@yi\@yf{#5}{#6}% + % + % Add integer parts + \@ta=\@xi \advance\@ta\@yi% + % + % Add fractional parts if they are not zero + \ifnum\@xf=\@zero% + \ifnum\@yf=\@zero% + \@tb=\@zero% + \else% + \@longadd% + \fi% + \else% + \@longadd% + \fi% + % + % Store result + \@store#1\@ta\@tb% +} + +\def\@longadd{% + % Propagate sign to fractional parts + \multiply\@xf\@xs \multiply\@yf\@ys% + % + % Add fractional parts + \@tb=\@xf \advance\@tb\@yf% + % + % Calculate carry + \ifnum\@tb<\@zero% + \ifnum\@tb<-\@mil \advance\@ta -\@ne \advance\@tb\@mil \fi% + \else% + \ifnum\@tb<\@mil \else \advance\@ta \@ne \advance\@tb-\@mil \fi% + \fi% +} + +%% \Rmul Multiplication +\def\Rmul#1#2#3{\@callc\@Rmul#1{#2}{#3}} + +\def\@Rmul#1#2.#3.#4\relax#5.#6.#7\relax{% + % #1 Macro, witch gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + % How to do real multiplications: + % Split values in various parts + % x y = 1234 567890 . 123 456 789 + % -> xa xb xc xd xe + % -> ya yb yc yd ye + % Do 21 (!) integer multiplications if there are any fractional parts + % r = x * Y + % -> r = xi*yi + % + (xa*yc + xa*yc )*10^3 + % + (xa*yd + xd*ya )*10^-0 + % + (xa*ye + xe*ya + xb*yc + xc*yb)*10^-3 + % + (xb*yd + xd*yb + xc*yc )*10^-6 + % + (xb*ye + xe*yb + xc*yd + xd*yc)*10^-9 + % + (xc*ye + xe*yc + xd*yd )*10^-12 + % + (xd*ye + xe*yd )*10^-15 + % + (xe*ye )*10^-18 + % + % -> r = ((((( xe*ye / 1000 + % + xd*ye + xe*yd ) / 1000 + % + xc*ye + xe*yc + xd*yd ) / 1000 + % + xb*ye + xe*yb + xc*yd + xd*yc ) / 1000 + % + xb*yd + xd*yb + xc*yc ) / 1000 + % + xa*ye + ye*xa + xb*yc + xc*yb ) / 1000 + % + xa*yd + xd*ya + (xa*yc + ya*xc)*1000 + xi*yi + % The last three digigs are saved just before the divisions. + % + % Init + % + \@readvalue\@xs\@xi\@xf{#2}{#3}% + \@readvalue\@ys\@yi\@yf{#5}{#6}% + % + % Sign + \multiply\@xi\@xs% + \multiply\@yi\@ys% + \multiply\@xs\@ys% + % + \@product=\@zero% + % + \ifnum\@xf=\@zero% + \ifnum\@yf=\@zero% + % No fractional parts + \edef\@frac{000000000} % digits of fractional part + \else% + \@longmul % Long multiplication + \fi% + \else% + \@longmul % Long multiplication + \fi% + % + % Multiply integer parts + \count@=\@xi \multiply\count@\@yi% + \advance\@product\count@% + % + % Sign + \multiply\@product\@xs% + % + % Store result + \edef#1{\number\@product.\@frac}% +} + +% Do long multiplication +\def\@longmul{% + % Split values in pieces + \@f=1000000% + \count@=\@xi% + \divide\count@\@f \@xa=\count@% + \multiply\count@-\@f \advance\count@\@xi \@xb=\count@% + \count@=\@xf% + \divide\count@\@f \@xc=\count@% + \multiply\count@-\@f \advance\count@\@xf% + \@f=1000% + \@xe=\count@% + \divide\count@\@f \@xd=\count@% + \multiply\count@-\@f \advance\count@\@xe \@xe=\count@% + % + \@f=1000000% + \count@=\@yi% + \divide\count@\@f \@ya=\count@% + \multiply\count@-\@f \advance\count@\@yi \@yb=\count@% + \count@=\@yf% + \divide\count@\@f \@yc=\count@% + \multiply\count@-\@f \advance\count@\@yf% + \@f=1000% + \@ye=\count@% + \divide\count@\@f \@yd=\count@% + \multiply\count@-\@f \advance\count@\@ye \@ye=\count@% + % + \edef\@frac{} % digits of fractional part + % + \@mul ee \relax\@shift % 10^-18 + \@mul de ed \relax\@shift % 10^-15 + \@mul ce ec dd \relax\@shift % 10^-12 + \@mul be eb cd dc \relax\@saveshift % 10^-9 + \@mul bd db cc \relax\@saveshift % 10^-6 + \@mul ae ea bc cb \relax\@saveshift % 10^-3 + \multiply\@xa\@f \multiply\@xc\@f % 10^3 + \@mul ad da ac ca \relax% +} + +\def\@mul#1#2#3{% + \count@=\csname @x#1\endcsname% + \multiply\count@\csname @y#2\endcsname% + \advance\@product\count@% + % + \ifx#3\relax% + \let\next=\relax% + \else% + \let\next=\@mul% + \fi% + \next#3% +} + +\def\@shift{% + \divide\@product\@f% +} + +\def\@saveshift{% + % Save rightmost digits + \count@=\@product% + \divide\@product\@f% + \multiply\@product\@f% + \advance\count@-\@product% + \advance\count@\@f% + \edef\@frac{\expandafter\@ignorenext\number\count@\@frac}% + % + \divide\@product\@f% +} + +%% \Rdiv Division +\def\Rdiv#1#2#3{\@callc\@Radd#1{#2}{#3}} + +\def\@Rdiv#1#2.#3.#4\relax#5.#6.#7\relax{% + % #1 Macro, witch gets the result + % #2 integer part of 1st value + % #3 fractional part of 1st value + % #4 dummy to swallow everthing after the 2nd '.' + % #5 integer part of 2nd value + % #6 fractional part of 2nd value + % #7 dummy to swallow everthing after the 2nd '.' + % + \message{Error: Rdiv not ready} + % + \@readvalue\@xs\@xi\@xf{#2}{#3}% + \@readvalue\@ys\@yi\@yf{#5}{#6}% + % + \ifnum\@yi=\@zero + \@xi=\@zero + \else + \divide\@xi\@yi + \fi + % + \@store#1\@xi\@xf% +} + +%% \Rneg Negation +\def\Rneg#1#2{% + % Expand the value and split it into the integer and the fractional part + \edef\next{\noexpand\@Rneg\noexpand#1#2..\noexpand\relax}% + \next% +} + +\def\@Rneg#1#2.#3.#4\relax{ + % #1 Macro, witch gets the result + % #2 Integer part of value + % #3 Fractional part of value + % #4 Remaining tokens + % + \@readvalue\@xs\@xi\@xf{#2}{#3}% + % + % Change sign + \multiply\@xi-\@ne% + \multiply\@xf-\@xs% + % + % Store result + \@store#1\@xi\@xf% +} + +%% +%% \Rtrunc Truncate value to specified precision +\def\Rtrunc#1#2#3{% + % Expand parameter and split the value into the integer and fractional part + \edef\next{\noexpand\@Rtrunc\noexpand#1#2#3..\noexpand\relax}% + \next% +} + +\def\@Rtrunc#1#2#3.#4.#5\relax{% + % #1 Macro, witch gets the result + % #2 Number of decimal places + % #3 Integer part of value + % #4 Fractional part of value + % #5 dummy to swallow everthing after the 2nd '.' + % + \count@=#2% + \edef\next{\empty}% + \ifnum\count@>\@zero% + \expandafter\@@Rtrunc#4000000000\relax% + \fi% + \edef#1{#3\next}% +} + +\def\@@Rtrunc#1#2#3#4#5#6#7#8#9{% + % #1...#9 fractional part, padded with trailing zeros + \edef\next{.#1% + \ifnum\count@>1 #2\fi% + \ifnum\count@>2 #3\fi% + \ifnum\count@>3 #4\fi% + \ifnum\count@>4 #5\fi% + \ifnum\count@>5 #6\fi% + \ifnum\count@>6 #7\fi% + \ifnum\count@>7 #8\fi% + \ifnum\count@>8 #9\fi% + }% + \@swallow% +} + +%% +%% \Rifle Test v1 < v2 +\def\Rifle#1#2{\@callb\@Rifle{#1}{#2}} + +\def\@Rifle#1.#2.#3\relax#4.#5.#6\relax{% + % #1 integer part of 1st value + % #2 fractional part of 1st value + % #3 dummy to swallow everthing after the 2nd '.' + % #4 integer part of 2nd value + % #5 fractional part of 2nd value + % #6 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + \@readvalue\@ys\@yi\@yf{#4}{#5}% + % + \ifnum\@xs<\@ys% + \Rtesttrue% + \else% + \ifnum\@xs>\@ys% + \Rtestfalse% + \else% + \Rtestfalse% + \ifnum\@xi<\@yi \Rtesttrue \fi% + \ifnum\@xi=\@yi% + \multiply\@xf\@xs \multiply\@yf\@ys% + \ifnum\@xf<\@yf \Rtesttrue \fi% + \fi% + \fi% + \fi% + % + \ifRtest% +} + +%% \Rifeq Test v1 = v2 +\def\Rifeq#1#2{\@callb\@Rifeq{#1}{#2}} + +\def\@Rifeq#1.#2.#3\relax#4.#5.#6\relax{% + % #1 integer part of 1st value + % #2 fractional part of 1st value + % #3 dummy to swallow everthing after the 2nd '.' + % #4 integer part of 2nd value + % #5 fractional part of 2nd value + % #6 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + \@readvalue\@ys\@yi\@yf{#4}{#5}% + % + \Rtestfalse% + \ifnum\@xi=\@yi\ifnum\@xf=\@yf \Rtesttrue \fi\fi% + \ifRtest% +} + +%% \Rifgt Test v1 > v2 +\def\Rifgt#1#2{\@callb\@Rifgt{#1}{#2}} + +\def\@Rifgt#1.#2.#3\relax#4.#5.#6\relax{% + % #1 integer part of 1st value + % #2 fractional part of 1st value + % #3 dummy to swallow everthing after the 2nd '.' + % #4 integer part of 2nd value + % #5 fractional part of 2nd value + % #6 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + \@readvalue\@ys\@yi\@yf{#4}{#5}% + % + \ifnum\@xs>\@ys% + \Rtesttrue% + \else% + \ifnum\@xs<\@ys% + \Rtestfalse% + \else% + \Rtestfalse% + \ifnum\@xi>\@yi \Rtesttrue \fi% + \ifnum\@xi=\@yi% + \multiply\@xf\@xs \multiply\@yf\@ys% + \ifnum\@xf>\@yf \Rtesttrue \fi% + \fi% + \fi% + \fi% + % + \ifRtest% +} + +%% \Rifneg Test v < 0 +\def\Rifneg#1{\@calla\@Rifneg{#1}} + +\def\@Rifneg#1.#2.#3\relax{% + % #1 Integer part of value + % #2 Fractional part of value + % #3 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + % + \ifnum\@xs<0 \Rtesttrue \else \Rtestfalse \fi% + \ifRtest% + } + +%% \Rifzero Test v = 0 +\def\Rifzero#1{\@calla\@Rifzero{#1}} + +\def\@Rifzero#1.#2.#3\relax{% + % #1 Integer part of value + % #2 Fractional part of value + % #3 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + % + \Rtestfalse% + \ifnum\@xi=\@zero \ifnum\@xf=\@zero \Rtesttrue \fi \fi% + \ifRtest% +} + +%% \Rifpos Test v >= 0 +%% Take care to have a corresponding \fi +\def\Rifpos#1{\@calla\@Rifpos{#1}} + +\def\@Rifpos#1.#2.#3\relax{% + % #1 Integer part of value + % #2 Fractional part of value + % #3 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + % + \ifnum\@xs<0 \Rtestfalse \else \Rtesttrue \fi% + \ifRtest% +} + +%% \Rifint Test v is an integer value +%% Take care to have a corresponding \fi +\def\Rifint#1{\@calla\@Rifint{#1}} + +\def\@Rifint#1.#2.#3\relax{% + % #1 Integer part of value + % #2 Fractional part of value + % #3 dummy to swallow everthing after the 2nd '.' + % + \@readvalue\@xs\@xi\@xf{#1}{#2}% + % + \ifnum\@xf=0 \Rtesttrue \else \Rtestfalse \fi% + \ifRtest% +} + +% Utility macros + +\def\@calla#1#2{% + % #1 Macro to call + % #2 Value + % Expand the value and split them into the integer and the fractional part + \edef\next{\noexpand#1#2..\noexpand\relax}% + \next% +} + +\def\@callb#1#2#3{% + % #1 Macro to call + % #2 1st value + % #3 2nd value + % Expand the values and split them into the integer and the fractional parts + \edef\next{\noexpand#1#2..\noexpand\relax#3..\noexpand\relax}% + \next% +} + +\def\@callc#1#2#3#4{% + % #1 Macro to call + % #2 Macro, witch gets the result + % #3 1st value + % #4 2nd value + % Expand the values and split them into the integer and the fractional parts + \edef\next{\noexpand#1\noexpand#2#3..\noexpand\relax#4..\noexpand\relax}% + \next% +} + +%% \ifRtest ... \else ... \fi Re-execute the last test +\newif\ifRtest + +% +% Read value +% +\def\@readvalue#1#2#3#4#5{% + % #1 macro to catch the sign ( -1 or 1 ) + % #2 macro to catch the integer part (maybe negative) + % #3 macro to catch the fractional part (positive) + % #4.#5 value + % + % Regular expression [-...d]d...["."[d...]] + % Attention: There has to be at least one digit between "-" and "."! + % + % Integer part + \if !#4! #2=\@zero \else #2=#4 \fi% + % + % Sign + \ifnum#2<\@zero #1=-\@ne \else #1=\@ne \fi% + \ifnum#2=\@zero \ifnum #4#5<\@zero #1=-\@ne \fi \fi% + % + % Fractional part + \if !#5!% + #3=\@zero% + \else% + \@@setcount@#5000000000\relax% + #3=\count@% + \fi% +} + +% Set count@ to fractional part with trailing zeros +\def\@@setcount@#1#2#3#4#5#6#7#8#9{% + % #1...#9 fractional part, padded with '0' + \count@=#1#2#3#4#5#6#7#8#9% + \@swallow% +} + +% Swallow everything up to next \relax +\def\@swallow#1\relax{} + +% +% Store result +% +\def\@store#1#2#3{% + % #1 marcro to catch the result + % #2 counter with integer part (maybe negative) + % #3 counter with fractional part (maybe negative} + % + % Sign + \edef#1{}% + \count@=#3% + \ifnum\count@<\@zero% + \count@=-\count@% + \ifnum#2=\@zero% + \edef#1{-}% + \fi% + \fi% + % + % Pad fractional part with leading zeros + \advance\count@\@mil% + % + % Store result + \edef#1{#1\number#2.\expandafter\@ignorenext\number\count@}% +} + +% Ignore next token +\def\@ignorenext#1{} + +% Restore catcode of "@" +\catcode`\@=\catamp