diff --git a/doc/tinytalk/.latexmkrc b/doc/tinytalk/.latexmkrc new file mode 100644 index 0000000..fbd0724 --- /dev/null +++ b/doc/tinytalk/.latexmkrc @@ -0,0 +1,20 @@ +$pdf_mode = 1; +$pdf_previewer = 'start evince'; + +@default_files = ('tinytalk.tex'); + +# Make latexmk -c remove .bbl file +$bibtex_use = 2; + +# Make the glossaries package happy +add_cus_dep('glo', 'gls', 0, 'run_makeglossaries'); +add_cus_dep('acn', 'acr', 0, 'run_makeglossaries'); + +sub run_makeglossaries { + my ($base_name, $path) = fileparse($_[0]); + system("makeglossaries '$base_name'"); +} + +push @generated_exts, 'glo', 'gls', 'glg'; +push @generated_exts, 'acn', 'acr', 'alg'; +$clean_ext .= ' %R.ist %R.xdy'; diff --git a/doc/tinytalk/IEEEtran.bst b/doc/tinytalk/IEEEtran.bst new file mode 100644 index 0000000..faabdfd --- /dev/null +++ b/doc/tinytalk/IEEEtran.bst @@ -0,0 +1,2426 @@ +%% Encoding: ISO8859-1 %% + +%% IEEEtran.bst +%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted) +%% Version 1.13 (2008/09/30) +%% +%% Copyright (c) 2003-2008 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ +%% and/or +%% http://www.ieee.org/ +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%% +%% File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib, +%% IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst, +%% IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf +%%************************************************************************* +% +% +% Changelog: +% +% 1.00 (2002/08/13) Initial release +% +% 1.10 (2002/09/27) +% 1. Corrected minor bug for improperly formed warning message when a +% book was not given a title. Thanks to Ming Kin Lai for reporting this. +% 2. Added support for CTLname_format_string and CTLname_latex_cmd fields +% in the BST control entry type. +% +% 1.11 (2003/04/02) +% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks +% to Ming Kin Lai for reporting this. +% +% 1.12 (2007/01/11) +% 1. Fixed bug with unwanted comma before "et al." when an entry contained +% more than two author names. Thanks to Pallav Gupta for reporting this. +% 2. Fixed bug with anomalous closing quote in tech reports that have a +% type, but without a number or address. Thanks to Mehrdad Mirreza for +% reporting this. +% 3. Use braces in \providecommand in begin.bib to better support +% latex2html. TeX style length assignments OK with recent versions +% of latex2html - 1.71 (2002/2/1) or later is strongly recommended. +% Use of the language field still causes trouble with latex2html. +% Thanks to Federico Beffa for reporting this. +% 4. Added IEEEtran.bst ID and version comment string to .bbl output. +% 5. Provide a \BIBdecl hook that allows the user to execute commands +% just prior to the first entry. +% 6. Use default urlstyle (is using url.sty) of "same" rather than rm to +% better work with a wider variety of bibliography styles. +% 7. Changed month abbreviations from Sept., July and June to Sep., Jul., +% and Jun., respectively, as IEEE now does. Thanks to Moritz Borgmann +% for reporting this. +% 8. Control entry types should not be considered when calculating longest +% label width. +% 9. Added alias www for electronic/online. +% 10. Added CTLname_url_prefix control entry type. +% +% 1.13 (2008/09/30) +% 1. Fixed bug with edition number to ordinal conversion. Thanks to +% Michael Roland for reporting this and correcting the algorithm. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +%\def\@bstctlcite[#1]#2{\@bsphack +% \@for\@citeb:=#2\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% The default URL prefix. +FUNCTION {default.name.url.prefix}{ "[Online]. Available:" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.13" } +FUNCTION{bst.file.date} { "2008/09/30" } +FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtran.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + CTLname_url_prefix + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd + name.url.prefix} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := + default.name.url.prefix 'name.url.prefix := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% IEEE's rather unusual bibliography style. For example, IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ '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 {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +FUNCTION {bibinfo.check} +{ swap$ duplicate$ missing$ + { pop$ pop$ "" } + { duplicate$ empty$ + { swap$ pop$ } + { swap$ pop$ } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ duplicate$ missing$ + { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } + { duplicate$ empty$ + { swap$ "empty " swap$ * " in " * cite$ * warning$ } + { swap$ pop$ } + if$ + } + if$ +} + + +% IEEE separates large numbers with more than 4 digits into groups of +% three. IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.separate + '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$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% two least significant digits determine the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" * + write$ newline$ + preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@samestyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand{\BIBforeignlanguage}[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ + "\providecommand{\BIBdecl}{\relax}" + write$ newline$ + "\BIBdecl" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { 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$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " " * bbl.etal emphasize * } + { numnames #2 > + { "," * } + { skip$ } + if$ + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + this.to.prev.status + this.status.std + cap.status.std + type duplicate$ empty$ + { pop$ + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + name.url.prefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + CTLname_url_prefix + missing$ + { skip$ } + { CTLname_url_prefix + 'name.url.prefix := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {www}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/doc/tinytalk/ReadMe.txt b/doc/tinytalk/ReadMe.txt new file mode 100644 index 0000000..8ad3e91 --- /dev/null +++ b/doc/tinytalk/ReadMe.txt @@ -0,0 +1,4 @@ +* Sprache: Englisch +* Codierung: ISO8859-1 +* Makefile existiert + diff --git a/doc/tinytalk/beamercolorthemekit.sty b/doc/tinytalk/beamercolorthemekit.sty new file mode 100644 index 0000000..6774018 --- /dev/null +++ b/doc/tinytalk/beamercolorthemekit.sty @@ -0,0 +1,73 @@ +%% Encoding: ISO8859-1 %% + +% Copyright 2007 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/licenses/LICENSE for more details. + +%Modificated Seagull Color Theme + +%EB: official KIT colors :-) +\definecolor{kit-green100}{rgb}{0,.59,.51} +\definecolor{kit-green70}{rgb}{.3,.71,.65} +\definecolor{kit-green50}{rgb}{.50,.79,.75} +\definecolor{kit-green30}{rgb}{.69,.87,.85} +\definecolor{kit-green15}{rgb}{.85,.93,.93} + +\definecolor{kit-blue100}{rgb}{.27,.39,.67} +\definecolor{kit-blue70}{rgb}{.49,.57,.76} +\definecolor{kit-blue50}{rgb}{.64,.69,.83} +\definecolor{kit-blue30}{rgb}{.78,.82,.9} +\definecolor{kit-blue15}{rgb}{.89,.91,.95} + + +%\definecolor{kit-green100}{cmyk}{1,0,.6,0} +%\definecolor{kit-green70}{cmyk}{.7,0,.42,0} +%\definecolor{kit-green50}{cmyk}{.5,0,.3,0} +%\definecolor{kit-green30}{cmyk}{.3,0,.18,0} +%\definecolor{kit-green15}{cmyk}{.15,0,.09,0} + +\mode + +\setbeamercolor*{normal text}{fg=black,bg=white} +\setbeamercolor*{alerted text}{fg=red} +\setbeamercolor*{example text}{fg=black} +\setbeamercolor*{structure}{fg=black} + +%\setbeamerfont{alerted text}{series=\bfseries} + +\setbeamercolor*{palette primary}{fg=black,bg=black!15} +\setbeamercolor*{palette secondary}{fg=black,bg=black!15} +\setbeamercolor*{palette tertiary}{fg=black,bg=black!15} +\setbeamercolor*{palette quaternary}{fg=black,bg=black!15} + +\setbeamercolor{sidebar}{bg=black!20} + +\setbeamercolor*{palette sidebar primary}{fg=black} +\setbeamercolor*{palette sidebar secondary}{fg=black} +\setbeamercolor*{palette sidebar tertiary}{fg=black} +\setbeamercolor*{palette sidebar quaternary}{fg=black} + +\setbeamercolor*{item projected}{fg=black,bg=kit-green100} + +\setbeamercolor*{block title}{fg=white,bg=kit-green100} +\setbeamercolor{block title alerted}{use=alerted text,fg=white,bg=alerted text.fg!75!black} +\setbeamercolor*{block title example}{fg=white,bg=kit-blue100} + +\setbeamercolor*{block body}{fg=black,bg=kit-green15} +\setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!10!bg} +\setbeamercolor*{block body example}{fg=black,bg=kit-blue15} + +\setbeamercolor*{separation line}{} +\setbeamercolor*{fine separation line}{} + +\setbeamercolor*{background canvas}{bg=black!15} +\setbeamercolor*{background}{bg=black!15} + +\pagecolor{black!15} +\mode + diff --git a/doc/tinytalk/beamerthemekit.sty b/doc/tinytalk/beamerthemekit.sty new file mode 100644 index 0000000..889f841 --- /dev/null +++ b/doc/tinytalk/beamerthemekit.sty @@ -0,0 +1,225 @@ +%% Encoding: ISO8859-1 %% + +%% LaTeX-Beamer template for KIT design +%% by Erik Burger, Christian Hammer +%% +%% modified by Christian Henrich for IKS +%% +%% version 1.2 +%% +%% mostly compatible to KIT corporate design v1.2 +%% http://www.uni-karlsruhe.de/download/uka/Gestaltungsrichtlinien_komplett.pdf +%% +%% Problems, bugs and comments to +%% burger@ipd.uka.de + +\usepackage[latin1]{inputenc} +\usepackage[english,ngerman]{babel} +\usepackage{ifthen} %For choosing the language, see below +\usepackage{hyperref} +\usepackage[absolute,overlay]{textpos} +\usepackage{semirounded} +\usepackage[abs]{overpic} + +\usepackage{times} + +\setbeamercovered{transparent} + +\useinnertheme{rounded} +\usecolortheme{kit} + +%save space in the footer +\beamer@compresstrue + +\newcommand{\titleimage}{IKS-beamer-motiv} + +%CH: KIT-point +\setbeamertemplate{itemize items}{ +\begin{pgfpicture}{0mm}{0mm}{1ex}{1ex} +{\pgfsetcornersarced{\pgfpoint{.3ex}{.3ex}} +\pgfpathmoveto{\pgfpoint{0cm}{1ex}} +\pgfpathlineto{\pgfpoint{1ex}{1ex}} +\pgfpathlineto{\pgfpoint{1ex}{0cm}}} +{\pgfsetcornersarced{\pgfpoint{.3ex}{.3ex}} +\pgfpathmoveto{\pgfpoint{1ex}{0cm}} +\pgfpathlineto{\pgfpointorigin} +\pgfpathlineto{\pgfpoint{0cm}{1ex}}} +\color{kit-green100} +\pgfusepath{fill} +\end{pgfpicture}% +} + +\setbeamertemplate{title page} +{ +\thispagestyle{empty} + +%middle block with name of institute +\begin{textblock*}{\paperwidth}(1mm,42.25mm) +\begin{pgfpicture}{0mm}{0mm}{\paperwidth-2mm}{6mm} + \color{black!50} + \pgfpathrectangle{\pgfpoint{0mm}{0mm}}{\pgfpoint{\paperwidth-2mm}{6mm}} + \pgfusepath{fill} + \pgftext[at=\pgfpoint{8.5mm}{3mm},left,center]{\textcolor{white}{\tiny\textsc{\insertinstitute}}} +\end{pgfpicture} +\end{textblock*} + + +%elements on title page + +%KIT logo +\begin{textblock*}{16mm}(4mm,4mm) + \iflanguage{english}{ + \includegraphics[width=15mm]{logos/kitlogo_rgb} + }{ + \includegraphics[width=15mm]{logos/kit_logo_de_4c_positiv} + } +\end{textblock*} + +%title +\begin{textblock*}{120mm}(9.5mm,16mm) +\begin{beamercolorbox}[wd=118mm,ht=14mm,dp=3mm,left]{white}% +\LARGE\textbf{\inserttitle} +\end{beamercolorbox} +\end{textblock*} + +%subtitle +\begin{textblock*}{120mm}(9.5mm,33mm) +\tiny \insertsubtitle +\end{textblock*} + +%author +\begin{textblock*}{120mm}(9.5mm,36mm) +\tiny\insertauthor%~\textbar~\insertshortdate +\end{textblock*} + +%Universit�t Karlsruhe logo +%\begin{textblock*}{23mm}(106mm,89.6mm) +%\iflanguage{english}{ +%\includegraphics[width=20mm]{logos/uka_wortbild_en} +%}{ +%\includegraphics[width=20mm]{logos/uka_wortbild_de} +%} +%\end{textblock*} + +%Forschungszentrum Karlsruhe logo +%\begin{textblock*}{21mm}(81mm,89.6mm) +%\includegraphics[width=20mm]{logos/fzk_wortbild} +%\end{textblock*} + +%legal KIT text +\begin{textblock*}{80mm}[0,1](4mm,94mm) +\fontsize{4pt}{6pt}\selectfont +\iflanguage{english}{ +KIT -- The Research University in the Helmholtz Association} +{KIT -- Die Forschungsuniversit{\"a}t in der Helmholtz-Gemeinschaft} +\end{textblock*} + +\begin{textblock*}{20mm}[0,1](110mm,92mm) +\fontsize{8pt}{8pt}\selectfont +\bfseries +\textcolor{black!75}{ + \href{http://www.kit.edu}{www.kit.edu} +} +\end{textblock*} + +% title image + +\begin{textblock*}{\paperwidth}(1mm,48.5mm) +\begin{overpic}[width=126mm,height=40mm]{logos/\titleimage} +\put(-6,-3){ + %mask curve for lower left corner of title image + \begin{pgfpicture}{0mm}{0mm}{3mm}{3mm} + \pgfpathqmoveto{0mm}{0mm} + \pgfpathlineto{\pgfpoint{3mm}{0mm}} + \pgfpathlineto{\pgfpoint{3mm}{1mm}} + + {\pgfsetcornersarced{\pgfpoint{2mm}{2mm}} + \pgfpathlineto{\pgfpoint{1mm}{1mm}} + \pgfpathlineto{\pgfpoint{1mm}{3mm}}} + + \pgfpathmoveto{\pgfpoint{1mm}{3mm}} + \pgfpathlineto{\pgfpoint{0mm}{3mm}} + \pgfpathlineto{\pgfpoint{0mm}{0mm}} + \pgfpathclose + + \color{black!15} + \pgfusepath{fill} + \end{pgfpicture} +} +\end{overpic} +\end{textblock*} + +} + +%background for pages +%CH: for plain frames +\newlength{\kitbottom} +\usebackgroundtemplate{ + \setlength{\kitbottom}{\ifbeamer@plainframe1mm\else9mm\fi}% +\begin{pgfpicture}{0mm}{0mm}{\paperwidth}{\paperheight} + + {\pgfsetcornersarced{\pgfpoint{2mm}{2mm}} + \pgfpathmoveto{\pgfpoint{\paperwidth-1mm}{\kitbottom}} + \pgfpathlineto{\pgfpoint{1mm}{\kitbottom}} + \pgfpathlineto{\pgfpoint{1mm}{\paperheight-1mm}}} + + {\pgfsetcornersarced{\pgfpoint{2mm}{2mm}} + \pgfpathmoveto{\pgfpoint{1mm}{\paperheight-1mm}} + \pgfpathlineto{\pgfpoint{\paperwidth-1mm}{\paperheight-1mm}} + \pgfpathlineto{\pgfpoint{\paperwidth-1mm}{\kitbottom}}} + + \color{white} + \pgfusepath{fill} + +\end{pgfpicture}% +} + +%frametitle +\setbeamertemplate{frametitle} +{ +\vspace{2mm} \hspace*{-4mm} +\vbox{\hsize=9cm\bfseries\insertframetitle} + +\begin{textblock*}{15mm}(110mm,4mm) + \iflanguage{english}{ + \includegraphics[width=14mm]{logos/kitlogo_rgb} + }{ + \includegraphics[width=14mm]{logos/kit_logo_de_4c_positiv} + } +\end{textblock*} + +\begin{textblock*}{1.5mm}(1mm,1mm) +\begin{pgfpicture}{0mm}{0mm}{1.5mm}{9mm} + \color{kit-green100} + \pgfpathrectangle{\pgfpoint{0mm}{0mm}}{\pgfpoint{1.5mm}{9mm}} + \pgfusepath{fill} +\end{pgfpicture}% +\end{textblock*} + +} + + +\setbeamertemplate{headline} +{ +} + +%footer +\setbeamertemplate{footline} +{ +\vskip.4mm +\begin{beamercolorbox}[ht=2.4mm, dp=3mm]{section in head/foot} + %include mini frame navigation + \insertnavigation{\paperwidth} +\end{beamercolorbox} + +\begin{beamercolorbox}[wd=0.7\textwidth,ht=2.2mm,dp=1.5mm,leftskip=1.3em,rightskip=.5em]{author in head/foot}% +\usebeamerfont{author in head/foot}% +\insertshortauthor\hspace{2.5pt}--\hspace{2.5pt}\insertshorttitle +\end{beamercolorbox}% +\vspace*{-4mm}\hspace*{0.7\textwidth}% +\begin{beamercolorbox}[wd=0.3\textwidth,ht=2.2mm,dp=1.5mm,left,leftskip=.5em]{title in head/foot}% +\usebeamerfont{title in head/foot}% +\hfill\hspace{65pt}\insertframenumber{}/\inserttotalframenumber +% vorher: \hfill\insertshortdate\hspace{30pt}\insertframenumber{}/\inserttotalframenumber +\end{beamercolorbox}% +} diff --git a/doc/tinytalk/ecm-cells.png b/doc/tinytalk/ecm-cells.png new file mode 100644 index 0000000..3df41b6 Binary files /dev/null and b/doc/tinytalk/ecm-cells.png differ diff --git a/doc/tinytalk/elm.png b/doc/tinytalk/elm.png new file mode 100644 index 0000000..08b806b Binary files /dev/null and b/doc/tinytalk/elm.png differ diff --git a/doc/tinytalk/lbm.png b/doc/tinytalk/lbm.png new file mode 100644 index 0000000..0f99a43 Binary files /dev/null and b/doc/tinytalk/lbm.png differ diff --git a/doc/tinytalk/logos/IKS-beamer-motiv-klein.jpg b/doc/tinytalk/logos/IKS-beamer-motiv-klein.jpg new file mode 100644 index 0000000..97ddc57 Binary files /dev/null and b/doc/tinytalk/logos/IKS-beamer-motiv-klein.jpg differ diff --git a/doc/tinytalk/logos/IKS-beamer-motiv.jpg b/doc/tinytalk/logos/IKS-beamer-motiv.jpg new file mode 100644 index 0000000..afb24c4 Binary files /dev/null and b/doc/tinytalk/logos/IKS-beamer-motiv.jpg differ diff --git a/doc/tinytalk/logos/collagen.jpg b/doc/tinytalk/logos/collagen.jpg new file mode 100644 index 0000000..6c5872c Binary files /dev/null and b/doc/tinytalk/logos/collagen.jpg differ diff --git a/doc/tinytalk/logos/kit_logo_de_4c_positiv.pdf b/doc/tinytalk/logos/kit_logo_de_4c_positiv.pdf new file mode 100644 index 0000000..dde09d5 Binary files /dev/null and b/doc/tinytalk/logos/kit_logo_de_4c_positiv.pdf differ diff --git a/doc/tinytalk/logos/kitlogo_rgb.eps b/doc/tinytalk/logos/kitlogo_rgb.eps new file mode 100644 index 0000000..198caf6 --- /dev/null +++ b/doc/tinytalk/logos/kitlogo_rgb.eps @@ -0,0 +1,680 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: 0.46 +%%Pages: 1 +%%Orientation: Portrait +%%BoundingBox: 182 370 378 462 +%%HiResBoundingBox: 182.1344 370.7806 377.8656 461.2194 +%%EndComments +%%Page: 1 1 +0 842 translate +0.8 -0.8 scale +0 0 0 setrgbcolor +[] 0 setdash +1 setlinewidth +0 setlinejoin +0 setlinecap +gsave [1 0 0 1 0 0] concat +gsave +0 0 0 setrgbcolor +newpath +380.56825 563.5558 moveto +353.8495 563.5558 lineto +322.09425 529.40105 lineto +322.09425 509.89293 lineto +352.88325 475.83793 lineto +380.37575 475.83793 lineto +344.94325 519.98605 lineto +380.56825 563.5558 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +384.627 563.54218 moveto +408.63575 563.54218 lineto +408.63575 475.90543 lineto +384.627 475.90543 lineto +384.627 563.54218 lineto +closepath +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +472.332 475.90168 moveto +414.43825 475.90168 lineto +414.43825 495.68418 lineto +431.38075 495.68418 lineto +431.38075 563.62418 lineto +455.3895 563.62418 lineto +455.3895 495.68418 lineto +472.332 495.68418 lineto +472.332 475.90168 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.35838 563.54755 moveto +316.34475 563.51918 lineto +316.34475 563.53143 lineto +316.35838 563.54755 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.34475 563.53931 moveto +316.34475 563.53143 lineto +316.34175 563.52755 lineto +316.34475 563.53931 lineto +fill +grestore +gsave +0 0.58823532 0.50980395 setrgbcolor +newpath +247.81925 507.97293 moveto +243.22463 513.53418 239.309 519.67355 236.17825 526.25855 curveto +316.34425 563.55543 lineto +247.81925 507.97293 lineto +fill +grestore +gsave +0 0.58823532 0.50980395 setrgbcolor +newpath +316.33488 563.5173 moveto +278.92863 484.03043 lineto +272.32862 487.07168 266.16938 490.90043 260.57275 495.40543 curveto +316.34275 563.54706 lineto +316.33488 563.5173 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.34175 563.52755 moveto +316.34475 563.53143 lineto +316.34475 563.51918 lineto +316.334 563.4968 lineto +316.34175 563.52755 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.34175 563.52755 moveto +316.34475 563.53143 lineto +316.34475 563.51918 lineto +316.334 563.4968 lineto +316.34175 563.52755 lineto +fill +grestore +gsave +0 0.58823532 0.50980395 setrgbcolor +newpath +230.43937 542.08368 moveto +228.67912 548.9523 227.73387 556.14718 227.69725 563.5573 curveto +316.31687 563.5573 lineto +230.43937 542.08368 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.34562 563.53931 moveto +316.38675 475.98543 lineto +316.1655 475.98418 315.94675 475.96918 315.72512 475.96918 curveto +308.58787 475.96918 301.65762 476.83918 295.01362 478.44293 curveto +316.33488 563.5173 lineto +316.34562 563.53931 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +227.668 574.15893 moveto +229.269 574.15893 lineto +229.269 579.07193 lineto +234.0395 574.15893 lineto +236.16837 574.15893 lineto +230.918 579.44205 lineto +236.5845 585.33268 lineto +234.2475 585.33268 lineto +229.269 579.85718 lineto +229.269 585.33268 lineto +227.668 585.33268 lineto +227.668 574.15893 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +242.82812 581.44255 moveto +242.50725 581.44255 242.1875 581.40981 241.86712 581.40981 curveto +241.05125 581.40981 239.03363 581.5393 239.03363 582.98068 curveto +239.03363 583.84293 239.86575 584.3078 240.55462 584.3078 curveto +242.043 584.3078 242.82812 583.37905 242.82812 582.1628 curveto +242.82812 581.44255 lineto +closepath +238.36175 577.7453 moveto +239.11375 577.29605 240.01075 576.97731 241.05125 576.97731 curveto +243.38813 576.97731 244.333 578.12855 244.333 580.35368 curveto +244.333 583.73168 lineto +244.333 584.6603 244.36475 585.09293 244.3965 585.33268 curveto +242.98725 585.33268 lineto +242.98725 584.27555 lineto +242.9555 584.27555 lineto +242.604 584.77168 241.80325 585.52418 240.42625 585.52418 curveto +238.666 585.52418 237.43312 584.75655 237.43312 582.98068 curveto +237.43312 580.92993 239.67325 580.29018 241.227 580.29018 curveto +241.81887 580.29018 242.23537 580.29018 242.82812 580.32193 curveto +242.82812 578.9123 242.31488 578.19305 240.8105 578.19305 curveto +239.96287 578.19305 239.05025 578.51293 238.44137 579.02455 curveto +238.36175 577.7453 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +246.77 577.16768 moveto +248.17862 577.16768 lineto +248.17862 578.4338 lineto +248.21037 578.4338 lineto +248.61075 577.58518 249.47512 576.97731 250.33988 576.97731 curveto +250.7885 576.97731 251.01262 577.02368 251.332 577.08855 curveto +251.332 578.4338 lineto +251.061 578.32143 250.75637 578.2883 250.5 578.2883 curveto +249.15525 578.2883 248.27488 579.56905 248.27488 581.61793 curveto +248.27488 585.33268 lineto +246.77 585.33268 lineto +246.77 577.16768 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +252.997 585.33268 moveto +254.5014 585.33268 lineto +254.5014 573.32633 lineto +252.997 573.32633 lineto +252.997 585.33268 lineto +closepath +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +256.67087 583.73168 moveto +257.26313 584.11543 258.11225 584.3078 258.54388 584.3078 curveto +259.23138 584.3078 260.0805 584.01918 260.0805 583.1403 curveto +260.0805 581.65155 256.543 581.77805 256.543 579.48943 curveto +256.543 577.79268 257.80712 576.97731 259.42375 576.97731 curveto +260.12887 576.97731 260.7045 577.1203 261.29787 577.29605 curveto +261.16888 578.60805 lineto +260.8335 578.40055 259.9365 578.19305 259.5845 578.19305 curveto +258.81538 578.19305 258.144 578.51293 258.144 579.18568 curveto +258.144 580.8493 261.68162 580.3708 261.68162 582.98068 curveto +261.68162 584.7243 260.2885 585.52418 258.8325 585.52418 curveto +258.0635 585.52418 257.27925 585.44555 256.59075 585.07543 curveto +256.67087 583.73168 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +263.50637 577.16768 moveto +264.9155 577.16768 lineto +264.9155 578.4338 lineto +264.94725 578.4338 lineto +265.34713 577.58518 266.21087 576.97731 267.07662 576.97731 curveto +267.52437 576.97731 267.749 577.02368 268.06838 577.08855 curveto +268.06838 578.4338 lineto +267.79688 578.32143 267.49262 578.2883 267.23625 578.2883 curveto +265.892 578.2883 265.01125 579.56905 265.01125 581.61793 curveto +265.01125 585.33268 lineto +263.50637 585.33268 lineto +263.50637 577.16768 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +276.85737 585.33268 moveto +275.40137 585.33268 lineto +275.40137 584.0368 lineto +275.36863 584.0368 lineto +274.91987 584.96405 273.832 585.52418 272.69525 585.52418 curveto +270.5825 585.52418 269.63763 584.21305 269.63763 582.01918 curveto +269.63763 577.16768 lineto +271.142 577.16768 lineto +271.142 581.3938 lineto +271.142 583.29805 271.559 584.2268 272.87113 584.3078 curveto +274.5845 584.3078 275.353 582.9318 275.353 580.94605 curveto +275.353 577.16768 lineto +276.85737 577.16768 lineto +276.85737 585.33268 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +279.33488 573.3263 moveto +280.83988 573.3263 lineto +280.83988 578.33705 lineto +280.872 578.33705 lineto +281.416 577.4728 282.36075 576.97731 283.4975 576.97731 curveto +285.61075 576.97731 286.55512 578.2883 286.55512 580.48218 curveto +286.55512 585.33268 lineto +285.05025 585.33268 lineto +285.05025 581.10718 lineto +285.05025 579.2028 284.63475 578.27368 283.32175 578.19305 curveto +281.60838 578.19305 280.83988 579.56905 280.83988 581.55493 curveto +280.83988 585.33268 lineto +279.33488 585.33268 lineto +279.33488 573.3263 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +294.35688 580.46505 moveto +294.35688 579.21743 293.62113 578.19305 292.32425 578.19305 curveto +290.8515 578.19305 290.24313 579.40893 290.13137 580.46505 curveto +294.35688 580.46505 lineto +closepath +295.3335 584.9968 moveto +294.75775 585.2053 294.101 585.52418 292.75675 585.52418 curveto +289.85938 585.52418 288.53025 583.76293 288.53025 581.10718 curveto +288.53025 578.68868 290.05075 576.97731 292.35587 576.97731 curveto +295.07763 576.97731 295.9585 578.96118 295.9585 581.58805 curveto +290.13137 581.58805 lineto +290.13137 583.2043 291.396 584.3078 292.82025 584.3078 curveto +293.8135 584.3078 294.96575 583.79555 295.3335 583.49193 curveto +295.3335 584.9968 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +302.56887 585.33268 moveto +304.16995 585.33268 lineto +304.16995 574.15885 lineto +302.56887 574.15885 lineto +302.56887 585.33268 lineto +closepath +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +306.811 577.16768 moveto +308.268 577.16768 lineto +308.268 578.46405 lineto +308.30075 578.46405 lineto +308.749 577.5363 309.83738 576.97731 310.97362 576.97731 curveto +313.08637 576.97731 314.03175 578.2883 314.03175 580.48218 curveto +314.03175 585.33268 lineto +312.52637 585.33268 lineto +312.52637 581.10718 lineto +312.52637 579.2028 312.11075 578.27368 310.79787 578.19305 curveto +309.0845 578.19305 308.31588 579.56905 308.31588 581.55493 curveto +308.31588 585.33268 lineto +306.811 585.33268 lineto +306.811 577.16768 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +316.038 583.73168 moveto +316.63037 584.11543 317.479 584.3078 317.91162 584.3078 curveto +318.59963 584.3078 319.44775 584.01918 319.44775 583.1403 curveto +319.44775 581.65155 315.91062 581.77805 315.91062 579.48943 curveto +315.91062 577.79268 317.17475 576.97731 318.7915 576.97731 curveto +319.4965 576.97731 320.07225 577.1203 320.6655 577.29605 curveto +320.53662 578.60805 lineto +320.20063 578.40055 319.30412 578.19305 318.95162 578.19305 curveto +318.18313 578.19305 317.51075 578.51293 317.51075 579.18568 curveto +317.51075 580.8493 321.04925 580.3708 321.04925 582.98068 curveto +321.04925 584.7243 319.65575 585.52418 318.19925 585.52418 curveto +317.43063 585.52418 316.647 585.44555 315.9585 585.07543 curveto +316.038 583.73168 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +327.42825 578.38493 moveto +325.267 578.38493 lineto +325.267 582.8503 lineto +325.267 583.79555 325.84325 584.3078 326.53175 584.3078 curveto +326.99613 584.3078 327.3325 584.1643 327.55613 584.01918 curveto +327.55613 585.30043 lineto +327.22012 585.39668 326.75637 585.52418 326.27587 585.52418 curveto +324.72213 585.52418 323.76175 584.7878 323.76175 583.15543 curveto +323.76175 578.38493 lineto +321.92138 578.38493 lineto +321.92138 577.16768 lineto +323.76175 577.16768 lineto +323.76175 575.27943 lineto +325.267 574.79855 lineto +325.267 577.16768 lineto +327.42825 577.16768 lineto +327.42825 578.38493 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +329.269 577.16768 moveto +330.77337 577.16768 lineto +330.77337 585.33268 lineto +329.269 585.33268 lineto +329.269 577.16768 lineto +closepath +330.87012 575.34393 moveto +329.17325 575.34393 lineto +329.17325 573.64718 lineto +330.87012 573.64718 lineto +330.87012 575.34393 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +337.8095 578.38493 moveto +335.64825 578.38493 lineto +335.64825 582.8503 lineto +335.64825 583.79555 336.2245 584.3078 336.91325 584.3078 curveto +337.377 584.3078 337.71325 584.1643 337.937 584.01918 curveto +337.937 585.30043 lineto +337.60075 585.39668 337.137 585.52418 336.657 585.52418 curveto +335.10325 585.52418 334.14325 584.7878 334.14325 583.15543 curveto +334.14325 578.38493 lineto +332.302 578.38493 lineto +332.302 577.16768 lineto +334.14325 577.16768 lineto +334.14325 575.27943 lineto +335.64825 574.79855 lineto +335.64825 577.16768 lineto +337.8095 577.16768 lineto +337.8095 578.38493 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +346.71075 585.33268 moveto +345.252 585.33268 lineto +345.252 584.0368 lineto +345.22075 584.0368 lineto +344.772 584.96405 343.6845 585.52418 342.54825 585.52418 curveto +340.4345 585.52418 339.4895 584.21305 339.4895 582.01918 curveto +339.4895 577.16768 lineto +340.9945 577.16768 lineto +340.9945 581.3938 lineto +340.9945 583.29805 341.41075 584.2268 342.72325 584.3078 curveto +344.437 584.3078 345.20575 582.9318 345.20575 580.94605 curveto +345.20575 577.16768 lineto +346.71075 577.16768 lineto +346.71075 585.33268 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +353.64825 578.38493 moveto +351.48825 578.38493 lineto +351.48825 582.8503 lineto +351.48825 583.79555 352.0645 584.3078 352.75325 584.3078 curveto +353.217 584.3078 353.55325 584.1643 353.777 584.01918 curveto +353.777 585.30043 lineto +353.44075 585.39668 352.977 585.52418 352.497 585.52418 curveto +350.94325 585.52418 349.98325 584.7878 349.98325 583.15543 curveto +349.98325 578.38493 lineto +348.14325 578.38493 lineto +348.14325 577.16768 lineto +349.98325 577.16768 lineto +349.98325 575.27943 lineto +351.48825 574.79855 lineto +351.48825 577.16768 lineto +353.64825 577.16768 lineto +353.64825 578.38493 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +360.64325 580.46505 moveto +360.64325 579.21743 359.907 578.19305 358.612 578.19305 curveto +357.13825 578.19305 356.5295 579.40893 356.417 580.46505 curveto +360.64325 580.46505 lineto +closepath +361.62075 584.9968 moveto +361.042 585.2053 360.3895 585.52418 359.042 585.52418 curveto +356.1445 585.52418 354.81575 583.76293 354.81575 581.10718 curveto +354.81575 578.68868 356.337 576.97731 358.64075 576.97731 curveto +361.36325 576.97731 362.2445 578.96118 362.2445 581.58805 curveto +356.417 581.58805 lineto +356.417 583.2043 357.68075 584.3078 359.10575 584.3078 curveto +360.097 584.3078 361.25325 583.79555 361.62075 583.49193 curveto +361.62075 584.9968 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +372.32825 584.3078 moveto +374.09075 584.3078 374.87325 582.70768 374.87325 581.25118 curveto +374.87325 579.69843 373.9295 578.19305 372.32825 578.19305 curveto +370.71325 578.19305 369.76825 579.69843 369.76825 581.25118 curveto +369.76825 582.70768 370.55075 584.3078 372.32825 584.3078 curveto +closepath +372.32825 576.97731 moveto +374.81075 576.97731 376.47575 578.76918 376.47575 581.25118 curveto +376.47575 583.58905 374.77825 585.52418 372.32825 585.52418 curveto +369.8645 585.52418 368.167 583.58905 368.167 581.25118 curveto +368.167 578.76918 369.832 576.97731 372.32825 576.97731 curveto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +379.27825 578.38493 moveto +377.357 578.38493 lineto +377.357 577.16768 lineto +379.27825 577.16768 lineto +379.27825 576.41718 lineto +379.27825 574.4323 379.7895 573.13355 382.01325 573.13355 curveto +382.39825 573.13355 382.7195 573.1823 383.022 573.22968 curveto +382.95825 574.44693 lineto +382.78325 574.38355 382.49575 574.35181 382.2395 574.35181 curveto +380.942 574.35181 380.78325 575.1828 380.78325 576.2878 curveto +380.78325 577.16768 lineto +382.94325 577.16768 lineto +382.94325 578.38493 lineto +380.78325 578.38493 lineto +380.78325 585.33268 lineto +379.27825 585.33268 lineto +379.27825 578.38493 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +391.347 575.56755 moveto +387.8745 575.56755 lineto +387.8745 574.15893 lineto +396.42075 574.15893 lineto +396.42075 575.56755 lineto +392.947 575.56755 lineto +392.947 585.33268 lineto +391.347 585.33268 lineto +391.347 575.56755 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +401.9945 580.46505 moveto +401.9945 579.21743 401.26075 578.19305 399.96325 578.19305 curveto +398.4895 578.19305 397.8795 579.40893 397.7695 580.46505 curveto +401.9945 580.46505 lineto +closepath +402.97075 584.9968 moveto +402.39575 585.2053 401.74075 585.52418 400.39325 585.52418 curveto +397.49575 585.52418 396.1695 583.76293 396.1695 581.10718 curveto +396.1695 578.68868 397.68825 576.97731 399.9945 576.97731 curveto +402.717 576.97731 403.5945 578.96118 403.5945 581.58805 curveto +397.7695 581.58805 lineto +397.7695 583.2043 399.03575 584.3078 400.457 584.3078 curveto +401.45075 584.3078 402.60325 583.79555 402.97075 583.49193 curveto +402.97075 584.9968 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +410.8645 578.54468 moveto +410.28825 578.30543 409.712 578.19305 409.232 578.19305 curveto +407.55075 578.19305 406.60575 579.69843 406.60575 581.25118 curveto +406.60575 582.70768 407.39075 584.3078 409.327 584.3078 curveto +409.8395 584.3078 410.48075 584.14818 410.94575 583.84293 curveto +411.05825 585.18768 lineto +410.4345 585.4768 409.712 585.52418 409.16825 585.52418 curveto +406.70075 585.52418 405.0045 583.58905 405.0045 581.25118 curveto +405.0045 578.76918 406.672 576.97731 409.16825 576.97731 curveto +409.7745 576.97731 410.56075 577.1203 410.992 577.29605 curveto +410.8645 578.54468 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +412.65575 573.3263 moveto +414.162 573.3263 lineto +414.162 578.33705 lineto +414.19325 578.33705 lineto +414.737 577.4728 415.682 576.97731 416.8195 576.97731 curveto +418.932 576.97731 419.877 578.2883 419.877 580.48218 curveto +419.877 585.33268 lineto +418.37075 585.33268 lineto +418.37075 581.10718 lineto +418.37075 579.2028 417.95575 578.27368 416.64325 578.19305 curveto +414.9295 578.19305 414.162 579.56905 414.162 581.55493 curveto +414.162 585.33268 lineto +412.65575 585.33268 lineto +412.65575 573.3263 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +422.337 577.16768 moveto +423.79325 577.16768 lineto +423.79325 578.46405 lineto +423.82575 578.46405 lineto +424.27325 577.5363 425.362 576.97731 426.497 576.97731 curveto +428.61075 576.97731 429.55575 578.2883 429.55575 580.48218 curveto +429.55575 585.33268 lineto +428.052 585.33268 lineto +428.052 581.10718 lineto +428.052 579.2028 427.63325 578.27368 426.322 578.19305 curveto +424.60825 578.19305 423.8395 579.56905 423.8395 581.55493 curveto +423.8395 585.33268 lineto +422.337 585.33268 lineto +422.337 577.16768 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +435.6645 584.3078 moveto +437.42575 584.3078 438.2095 582.70768 438.2095 581.25118 curveto +438.2095 579.69843 437.2645 578.19305 435.6645 578.19305 curveto +434.04825 578.19305 433.10325 579.69843 433.10325 581.25118 curveto +433.10325 582.70768 433.887 584.3078 435.6645 584.3078 curveto +closepath +435.6645 576.97731 moveto +438.147 576.97731 439.81075 578.76918 439.81075 581.25118 curveto +439.81075 583.58905 438.1145 585.52418 435.6645 585.52418 curveto +433.1995 585.52418 431.50325 583.58905 431.50325 581.25118 curveto +431.50325 578.76918 433.167 576.97731 435.6645 576.97731 curveto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +441.8995 585.33268 moveto +443.40439 585.33268 lineto +443.40439 573.32633 lineto +441.8995 573.32633 lineto +441.8995 585.33268 lineto +closepath +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +449.65575 584.3078 moveto +451.41575 584.3078 452.20075 582.70768 452.20075 581.25118 curveto +452.20075 579.69843 451.25575 578.19305 449.65575 578.19305 curveto +448.03825 578.19305 447.09325 579.69843 447.09325 581.25118 curveto +447.09325 582.70768 447.87825 584.3078 449.65575 584.3078 curveto +closepath +449.65575 576.97731 moveto +452.137 576.97731 453.802 578.76918 453.802 581.25118 curveto +453.802 583.58905 452.10325 585.52418 449.65575 585.52418 curveto +447.19075 585.52418 445.492 583.58905 445.492 581.25118 curveto +445.492 578.76918 447.157 576.97731 449.65575 576.97731 curveto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +461.57325 581.34643 moveto +461.57325 579.65055 460.787 578.19305 459.187 578.19305 curveto +457.667 578.19305 456.912 579.84105 456.912 581.23405 curveto +456.912 582.77018 457.7795 584.11543 459.187 584.11543 curveto +460.5945 584.11543 461.57325 582.86693 461.57325 581.34643 curveto +closepath +463.07575 584.98168 moveto +463.07575 587.46068 461.79575 588.88643 458.86575 588.88643 curveto +458.00075 588.88643 457.25075 588.77418 455.93575 588.3268 curveto +456.097 586.9328 lineto +457.25075 587.46068 457.93825 587.66918 459.042 587.66918 curveto +460.62825 587.66918 461.57325 586.5978 461.57325 584.8693 curveto +461.57325 584.06655 lineto +461.53825 584.06655 lineto +460.8995 584.91768 459.842 585.33268 458.802 585.33268 curveto +456.4645 585.33268 455.312 583.42943 455.312 581.31468 curveto +455.312 579.21743 456.49825 576.97731 458.96325 576.97731 curveto +460.402 576.97731 461.20325 577.50455 461.65075 578.38493 curveto +461.68325 578.38493 lineto +461.68325 577.16768 lineto +463.07575 577.16768 lineto +463.07575 584.98168 lineto +fill +grestore +gsave +0 0 0 setrgbcolor +newpath +465.06825 587.54168 moveto +465.2595 587.60518 465.51575 587.66918 465.77325 587.66918 curveto +467.11575 587.66918 467.5645 585.81418 467.5645 585.65305 curveto +467.5645 585.4768 467.37325 585.0603 467.27575 584.7878 curveto +464.507 577.16768 lineto +466.157 577.16768 lineto +468.34825 583.92405 lineto +468.382 583.92405 lineto +470.622 577.16768 lineto +472.142 577.16768 lineto +469.1345 585.50893 lineto +468.57325 587.0768 467.98075 588.88643 465.99575 588.88643 curveto +465.51575 588.88643 465.2445 588.82293 464.97075 588.77418 curveto +465.06825 587.54168 lineto +fill +grestore +grestore +showpage +%%EOF diff --git a/doc/tinytalk/logos/kitlogo_rgb.pdf b/doc/tinytalk/logos/kitlogo_rgb.pdf new file mode 100644 index 0000000..dd59fa6 Binary files /dev/null and b/doc/tinytalk/logos/kitlogo_rgb.pdf differ diff --git a/doc/tinytalk/models.png b/doc/tinytalk/models.png new file mode 100644 index 0000000..70bb660 Binary files /dev/null and b/doc/tinytalk/models.png differ diff --git a/doc/tinytalk/models.xcf b/doc/tinytalk/models.xcf new file mode 100644 index 0000000..689826f Binary files /dev/null and b/doc/tinytalk/models.xcf differ diff --git a/doc/tinytalk/nastja.png b/doc/tinytalk/nastja.png new file mode 100644 index 0000000..816e7b7 Binary files /dev/null and b/doc/tinytalk/nastja.png differ diff --git a/doc/tinytalk/references.bib b/doc/tinytalk/references.bib new file mode 100644 index 0000000..5d8eab1 --- /dev/null +++ b/doc/tinytalk/references.bib @@ -0,0 +1,19 @@ +@article{dh76, + title={{New Directions in Cryptography}}, + author={Whitfield Diffie and Martin Hellman}, + journal={IEEE Transactions on Information Theory}, + volume={22}, + number={6}, + pages={644--654}, + year={1976} +} + +@book{kl07, + author = {Katz, Jonathan and Lindell, Yehuda}, + title = {Introduction to Modern Cryptography (Chapman \& Hall/Crc Cryptography and Network Security Series)}, + year = {2007}, + isbn = {1584885513}, + publisher = {Chapman \& Hall/CRC}, +} + + diff --git a/doc/tinytalk/semirounded.sty b/doc/tinytalk/semirounded.sty new file mode 100644 index 0000000..18fddbf --- /dev/null +++ b/doc/tinytalk/semirounded.sty @@ -0,0 +1,206 @@ +%% Encoding: ISO8859-1 %% + +\RequirePackage{keyval} +\renewcommand\beamerboxesrounded[2][]{% + \global\let\beamer@firstlineitemizeunskip=\relax% + \vbox\bgroup% + \setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth,shadow=false}% + \setkeys{beamerboxes}{#1}% + {% + \usebeamercolor{\bmb@lower}% + \globalcolorstrue% + \colorlet{lower.bg}{bg}% + }% + {% + \usebeamercolor{\bmb@upper}% + \globalcolorstrue% + \colorlet{upper.bg}{bg}% + }% + % + % Typeset head + % + \vskip4bp + \setbox\bmb@box=\hbox{% + \begin{minipage}[b]{\bmb@width}% + \usebeamercolor[fg]{\bmb@upper}% + #2% + \end{minipage}}% + \ifdim\wd\bmb@box=0pt% + \setbox\bmb@box=\hbox{}% + \ht\bmb@box=1.5pt% + \bmb@prevheight=-4.5pt% + \else% + \wd\bmb@box=\bmb@width% + \bmb@temp=\dp\bmb@box% + \ifdim\bmb@temp<1.5pt% + \bmb@temp=1.5pt% + \fi% + \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}% + \dp\bmb@box=0pt% + \bmb@prevheight=\ht\bmb@box% + \fi% + \bmb@temp=\bmb@width% + \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp% + \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp% + \hbox{% + \begin{pgfpicture}{0bp}{+-\ht\bmb@box}{0bp}{+-\ht\bmb@box} + \ifdim\wd\bmb@box=0pt% + \color{lower.bg}% + \else% + \color{upper.bg}% + \fi% + \pgfpathqmoveto{-4bp}{-1bp} + % Adaption for "KIT-Design" + \pgfpathlineto{\pgfpoint{-4bp}{3bp}} + %\pgfpathqcurveto{-4bp}{1.2bp}{-2.2bp}{3bp}{0bp}{3bp} + \pgfpathlineto{\pgfpoint{\bmb@temp}{3bp}} + \pgfpathcurveto% + {\pgfpoint{\bmb@dima}{3bp}}% + {\pgfpoint{\bmb@dimb}{1.2bp}}% + {\pgfpoint{\bmb@dimb}{-1bp}}% + \bmb@dima=-\ht\bmb@box% + \advance\bmb@dima by-2pt% + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}} + \pgfusepath{fill} + \end{pgfpicture}% + \copy\bmb@box% + }% + \nointerlineskip% + \vskip-1pt% + \ifdim\wd\bmb@box=0pt% + \else% + \hbox{% + \begin{pgfpicture}{0pt}{0pt}{\bmb@width}{6pt} + \bmb@dima=\bmb@width% + \advance\bmb@dima by8bp% + \pgfpathrectangle{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}} + \pgfusepath{clip} + {\pgftransformshift{\pgfpoint{-4bp}{0bp}}\pgftext[left,base]{\pgfuseshading{bmb@transition}}}% + \end{pgfpicture}% + }% + \nointerlineskip% + \vskip-0.5pt% + \fi% + \ifbmb@shadow% + \setbox\bmb@boxshadow=\hbox{\pgfuseshading{bmb@shadow}}% + \setbox\bmb@boxshadowball=\hbox{\pgfuseshading{bmb@shadowball}}% + \setbox\bmb@boxshadowballlarge=\hbox{\pgfuseshading{bmb@shadowballlarge}}% + \fi% + \setbox\bmb@colorbox=\hbox{{\pgfpicturetrue\pgfsetcolor{lower.bg}}}% + \setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}% + \vskip2pt% + \usebeamercolor[fg]{\bmb@lower}% + \colorlet{beamerstructure}{upper.bg}% + \colorlet{structure}{upper.bg}% + %\color{.}% + } + +\def\endbeamerboxesrounded{% + \end{minipage}\egroup% + \wd\bmb@box=\bmb@width% + \bmb@temp=\dp\bmb@box% + \advance\bmb@temp by.5pt% + \setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}% + \dp\bmb@box=0pt% + \bmb@temp=\wd\bmb@box% + \bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp% + \bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp% + \hbox{% + \begin{pgfpicture}{0bp}{0bp}{0bp}{0bp} + \ifbmb@shadow% + {\pgftransformshift{\pgfpoint{4bp}{-3bp}}\pgftext{\copy\bmb@boxshadowball}} + \begin{pgfscope} + {% + \advance\bmb@temp by-1bp% + \pgfpathrectangle{\pgfpoint{\bmb@temp}{-7bp}}{\pgfpoint{9bp}{9bp}}% + \pgfusepath{clip} + }% + {\pgftransformshift{\pgfpoint{\bmb@temp}{1bp}}\pgftext{\box\bmb@boxshadowballlarge}} + \end{pgfscope} + \begin{pgfscope} + \advance\bmb@temp by-4bp% + \pgfpathrectangle{\pgfpoint{4bp}{-7bp}}{\pgfpoint{\bmb@temp}{5bp}} + \pgfusepath{clip} + {\pgftransformshift{\pgfpoint{4bp}{-7bp}}\pgftext[left,base]{\copy\bmb@boxshadow}}% + \end{pgfscope} + \begin{pgfscope} + \advance\bmb@temp by 4bp% + \bmb@dima=\ht\bmb@box% + \advance\bmb@dima by\bmb@prevheight% + \advance\bmb@dima by 4bp% + \pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}} + \pgfusepath{clip} + \advance\bmb@dima by-4bp% + {\pgftransformshift{\pgfpoint{\bmb@temp}{\bmb@dima}}\pgftext{\box\bmb@boxshadowball}} + \advance\bmb@dima by-1bp% + \pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}} + \pgfusepath{clip} + \advance\bmb@temp by4bp% + {\pgftransformshift{\pgfpoint{\bmb@temp}{-3bp}}% + \pgftransformrotate{90}% + \pgftext[left,base]{\box\bmb@boxshadow}}% + \end{pgfscope} + \fi% + \unhbox\bmb@colorbox% + \pgfpathqmoveto{-4bp}{1bp} + \pgfpathqcurveto{-4bp}{-1.2bp}{-2.2bp}{-3bp}{0bp}{-3bp} + %KIT-Design + \pgfpathlineto{\pgfpoint{\the\bmb@dimb}{-3bp}} + %\pgfpathcurveto% + %{\pgfpoint{\the\bmb@dima}{-3bp}}% + %{\pgfpoint{\the\bmb@dimb}{-1.2bp}}% + %{\pgfpoint{\the\bmb@dimb}{1bp}}% + { + \bmb@dima=\ht\bmb@box% + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}} + \pgfusepath{fill} + } + \ifbmb@shadow% + { + \color{black!50!bg} + \pgfsetlinewidth{0pt} + \pgfpathmoveto{\pgfpoint{\bmb@dimb}{-.5bp}} + \bmb@dima=\ht\bmb@box% + \advance\bmb@dima by\bmb@prevheight% + \advance\bmb@dima by 1bp% + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfusepath{stroke} + \bmb@temp=\bmb@dima + \advance\bmb@dima by 1bp% + \color{black!31!bg} + \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}} + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfusepath{stroke} + \advance\bmb@dima by 1bp% + \advance\bmb@temp by 1bp% + \color{black!19!bg} + \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}} + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfusepath{stroke} + \advance\bmb@dima by 1bp% + \advance\bmb@temp by 1bp% + \color{black!6!bg} + \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}} + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfusepath{stroke} + \advance\bmb@dima by 1.5bp% + \advance\bmb@temp by 1bp% + \color{bg} + \pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}} + \pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}} + \pgfusepath{stroke} + } + \fi + \end{pgfpicture}% + \box\bmb@box% + }% + \ifbmb@shadow% + \vskip4bp minus 2bp% + \else% + \vskip2bp% + \fi% + \egroup% of \vbox\bgroup +} + diff --git a/doc/tinytalk/tinytalk.pdf b/doc/tinytalk/tinytalk.pdf new file mode 100644 index 0000000..bbbca97 Binary files /dev/null and b/doc/tinytalk/tinytalk.pdf differ diff --git a/doc/tinytalk/tinytalk2.pdf b/doc/tinytalk/tinytalk2.pdf new file mode 100644 index 0000000..bbbca97 Binary files /dev/null and b/doc/tinytalk/tinytalk2.pdf differ diff --git a/doc/tinytalk/vortrag.tex b/doc/tinytalk/vortrag.tex new file mode 100644 index 0000000..5b8780f --- /dev/null +++ b/doc/tinytalk/vortrag.tex @@ -0,0 +1,159 @@ +\section{Intro} + +\begin{frame}{NAStJA: An MPI Stencil Code Solver} +\begin{figure} + \includegraphics[width=\textwidth]{nastja.png} +\end{figure} + +\begin{itemize} + \item CiS uses NAStJA under the hood + \item NAStJA is a massively parallel stencil code solver \\ + $\implies$ CiS extensions should be stencils +\end{itemize} +\end{frame} + +\begin{frame}{ECM Viscoelasticity:\\A Factor in Cell Behavior} +\begin{figure} + \includegraphics[width=0.6\textwidth]{ecm-cells.png} +\end{figure} + +\begin{itemize} + \item Collagen networks in the ECM mechanically restrict cells + \item Collagen networks are \emph{viscoelastic} + \item ECM viscoelasticity influences cell behavior +\end{itemize} +\end{frame} + +\section{ECM Model} + +\begin{frame}{Modeling ECM Mechanics in CiS} +How can we model ECM mechanics in CiS? + +\vfill{} + +Two main requirements: + +\begin{itemize} + \item Model exhibits viscoelastic properties + \item Model can be implemented as a stencil in NAStJA +\end{itemize} +\end{frame} + +\begin{frame}{ECM Models in Literature} +\begin{figure} + \includegraphics[width=0.8\textwidth]{models.png} +\end{figure} + +\begin{itemize} + \item A host of different ECM models exist + \item Various foci, e.g. mechanics, growth factors + \item Various approaches, e.g. FEM, Molecular Dynamics + \item But: So far no approach is suitable as a stencil +\end{itemize} +\end{frame} + +\begin{frame}{My Approach} +Two main requirements: + +\begin{itemize} + \item Model exhibits viscoelastic properties + \item Model can be implemented as a stencil in NAStJA +\end{itemize} +\end{frame} + +\vfill + +\section{Methods} + +\begin{frame}{Lattice Boltzmann Method} +\begin{figure} + \includegraphics[width=\textwidth]{lbm.png} +\end{figure} + +\begin{itemize} + \item Discretized particle velocities per lattice site + \item Update Step: Streaming + Collision + \item Usually used for hydrodynamics +\end{itemize} +\end{frame} + +\begin{frame}{Elastic Lattice Model} +\begin{figure} + \includegraphics[width=0.4\textwidth]{elm.png} +\end{figure} + +\begin{itemize} + \item A square lattice based discrete particle method + \item Each lattice site represents a particle + \item Particles are connected to neighbors by springs +\end{itemize} +\end{frame} + +\section{Implementation} + +\begin{frame}{Implementation} +\begin{itemize} + \item Starting point: NAStJA + CiS + \item Benchmark different implementations against each other + \begin{itemize} + \item CPU + \item Vectorized + \item GPU + \end{itemize} + \item Optimize for + \begin{itemize} + \item Scaling behavior + \item Wall clock time + \item etc. + \end{itemize} +\end{itemize} +\end{frame} + +\begin{comment} +\section{Intro} +\subsection{Subsection 1.1} +\frame{ +\frametitle{Example slide A} +\begin{itemize} +\item PCM, Citation: \cite{dh76,kl07} %\language +\pause +\item Bullet point 2 +\item \dots +\end{itemize} +} +\subsection{Subsection 1.2} +\frame{ +\frametitle{Example slide B} +\begin{block}{Block 1} +\begin{itemize} +\item Test: ÄÖÜäöüß +\pause +\item Bullet point 2 +\item \dots +\end{itemize} +\end{block} +} +\section{Section 2} +\frame{ +\frametitle{Example slide C} +\begin{exampleblock}{Example 1} +\begin{itemize} +\item Bullet point 1 +\pause +\item Bullet point 2 +\item \dots +\end{itemize} +\end{exampleblock} +} +\frame{ +\frametitle{Example slide D} +\begin{alertblock}{Alert 1} +\begin{itemize} +\item Bullet point 1 +\pause +\item Bullet point 2 +\item \dots +\end{itemize} +\end{alertblock} +} +\end{comment}