CEN/EEN330 Course Project Title: Signal Mixing and Source Separation Tools: MATLAB
Bibliography.bib
@article{einstein, author = "Albert Einstein", title = "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German}) [{On} the electrodynamics of moving bodies]", journal = "Annalen der Physik", volume = "322", number = "10", pages = "891--921", year = "1905", DOI = "http://dx.doi.org/10.1002/andp.19053221004" } @book{latexcompanion, author = "Michel Goossens and Frank Mittelbach and Alexander Samarin", title = "The \LaTeX\ Companion", year = "1993", publisher = "Addison-Wesley", address = "Reading, Massachusetts" } @misc{knuthwebsite, author = "Donald Knuth", title = "Knuth: Computers and Typesetting", url = "http://www-cs-faculty.stanford.edu/\~{}uno/abcde.html" } @article{M1, title={A fast electro-thermal co-simulation modeling approach for SiC power MOSFETs}, DOI={10.1109/apec.2017.7930813}, journal={2017 IEEE Applied Power Electronics Conference and Exposition (APEC)}, author={Ceccarelli, Lorenzo and Bahman, Amir Sajjad and Iannuzzo, Francesco and Blaabjerg, Frede}, year={2017} } @electronic{biblatex, author = "Philipp Lehman", title = "The biblatex package", url = "http://www.ctan.org/tex-archive/macros/latex/exptl/biblatex/", month = apr, year = "2008" } @book{book_typical, author = "B. D. Cullity", title = "Introduction to Magnetic Materials", publisher = "Addison-Wesley", address = "Reading, MA", year = "1972" } @article{IEEEexample:TBParticle, author = "N. Kahale and R. Urbanke", title = "On the Minimum Distance of Parallel and Serially Concatenated Codes", journal = "IEEE\_J\_IT", year = "submitted for publication" }
IEEEexample.bib
IEEEexample.bib V1.13 (2008/09/30) Copyright (c) 2002-2008 by Michael Shell See: http://www.michaelshell.org/ for current contact information. This is an example BibTeX database for the official IEEEtran.bst BibTeX style file. Some entries call strings that are defined in the IEEEabrv.bib file. Therefore, IEEEabrv.bib should be loaded prior to this file. Usage: \bibliographystyle{./IEEEtran} \bibliography{./IEEEabrv,./IEEEexample} Support sites: http://www.michaelshell.org/tex/ieeetran/ http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ and/or http://www.ieee.org/ ************************************************************************* 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 ************************************************************************* Note that, because the example references were taken from actual IEEE publications, these examples do not always contain the full amount of information that may be desirable (for use with other BibTeX styles). In particular, full names (not abbreviated with initials) should be entered whenever possible as some (non-IEEE) bibliography styles use full names. IEEEtran.bst will automatically abbreviate when it encounters full names. references for the IEEEtran.bst documentation IEEEtran homepage @electronic{IEEETranHomePage, author = "Michael Shell", title = "{IEEE}tran {H}omepage", url = "http://www.michaelshell.org/tex/ieeetran/", year = "2008" } the distribution site for IEEEtran.bst @electronic{IEEEexample:shellCTANpage, author = "Michael Shell", title = "{IEEE}tran Webpage on {CTAN}", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/", year = "2008" } the IEEE website sort key is needed for sorting styles @electronic{IEEEexample:IEEEwebsite, title = "The {IEEE} Website", url = "http://www.ieee.org/", year = "2008", key = "IEEE" } The BibTeX user's guide. The filename could have been put in the URL instead. But, there might be other interesting things for the user in the same directory - and the filename might change before the directory that contains it. @electronic{IEEEexample:bibtexuser, author = "Oren Patashnik", title = "{{\BibTeX}}ing", howpublished = "{btxdoc.pdf}", url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", month = feb, year = "1988" } The BibTeX style designer's guide. @electronic{IEEEexample:bibtexdesign, author = "Oren Patashnik", title = "Designing {{\BibTeX}} Styles", howpublished = "{btxhak.pdf}", url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", month = feb, year = "1988" } A comprehensive BibTeX tutorial. @electronic{IEEEexample:tamethebeast, author = "Nicolas Markey", title = "Tame the BeaST --- The B to X of {{\BibTeX}}", url = "http://tug.ctan.org/tex-archive/info/bibtex/tamethebeast/", month = oct, year = "2005" } The BibTeX Tips and FAQ guide. @electronic{IEEEexample:bibtexFAQ, author = "David Hoadley and Michael Shell", title = "{{\BibTeX}} Tips and {FAQ}", howpublished = "{btxFAQ.pdf}", url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", month = jan, year = "2007" } The TeX FAQ @electronic{IEEEexample:texfaq, author = "Robin Fairbairns", title = "The {{\TeX}} {FAQ}", url = "http://www.tex.ac.uk/cgi-bin/texfaq2html/", month = jun, year = "2008" } A BibTeX Guide via Examples. @electronic{IEEEexample:bibtexguide, author = "Ki-Joo Kim", title = "A {{\BibTeX}} Guide via Examples", howpublished = "{bibtex\_guide.pdf}", url = "http://www.geocities.com/kijoo2000/", month = apr, year = "2004" } TeX User Group Bibliography Archive @electronic{IEEEexample:beebe_archive, author = "Nelson H. F. Beebe", title = "{{\TeX}} User Group Bibliography Archive", url = "http://www.math.utah.edu/pub/tex/bib/index-table.html", month = jul, year = "2008" } The natbib.sty package. @electronic{ctan:natbib, author = "Patrick W. Daly", title = "The natbib.sty package", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/", month = oct, year = "2007" } The url.sty package. @electronic{IEEEexample:urlsty, author = "Donald Arseneau", title = "The url.sty Package", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/misc/", month = apr, year = "2006", } The hyperref.sty package. @electronic{IEEEexample:hyperrefsty, author = "Sebastian Rahtz and Heiko Oberdiek", title = "The hyperref.sty Package", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/", month = sep, year = "2008", } The breakurl.sty package. @electronic{IEEEexample:breakurl, author = "Vilar Camara Neto", title = "The breakurl.sty Package", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/breakurl/", month = jul, year = "2008", } The Babel package. @electronic{IEEEexample:babel, author = "Johannes Braams", title = "The Babel Package", url = "http://www.ctan.org/tex-archive/macros/latex/required/babel/", month = jul, year = "2008", } The multibib package. @electronic{IEEEexample:multibibsty, author = "Thorsten Hansen", title = "The multibib.sty package", url = "http://www.ctan.org/tex-archive/macros/latex/contrib/multibib/", month = jan, year = "2004" } The biblatex package. @electronic{IEEEexample:biblatex, author = "Philipp Lehman", title = "The biblatex package", url = "http://www.ctan.org/tex-archive/macros/latex/exptl/biblatex/", month = apr, year = "2008" } The three most common and typical types of references used in IEEE publications: an article in a journal Note the use of the IEEE_J_EDL string, defined in the IEEEabrv.bib file, for the journal name. IEEEtran.bst defines the BibTeX standard three letter month codes per IEEE style. From the June 2002 issue of "IEEE Transactions on Electron Devices", page 996, reference #16. @article{IEEEexample:article_typical, author = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok", title = "A Novel Ultrathin Elevated Channel Low-temperature Poly-{Si} {TFT}", journal = "IEEE\_J\_EDL", volume = "20", month = nov, year = "1999", pages = "569-571" } journal article using et al. The (five) authors are actually: F. Delorme, S. Slempkes, G. Alibert, B. Rose, J. Brandon The month (July) was not given here. From the September 1998 issue of "IEEE Journal on Selected Areas in Communications", page 1257, reference #28. @article{IEEEexample:articleetal, author = "F. Delorme and others", title = "Butt-jointed {DBR} Laser With 15 {nm} Tunability Grown in Three {MOVPE} Steps", journal = "Electron. Lett.", volume = "31", number = "15", year = "1995", pages = "1244-1245" } a paper in a conference proceedings "conference" can be used as an alias for "inproceedings" From the June 2002 issue of "Journal of Microelectromechanical Systems", page 205, reference #16. @inproceedings{IEEEexample:conf_typical, author = "R. K. Gupta and S. D. Senturia", title = "Pull-in Time Dynamics as a Measure of Absolute Pressure", booktitle = "Proc. {IEEE} International Workshop on Microelectromechanical Systems ({MEMS}'97)", address = "Nagoya, Japan", month = jan, year = "1997", pages = "290-294" } a book From the May 2002 issue of "IEEE Transactions on Magnetics", page 1466, reference #4. @book{IEEEexample:book_typical, author = "B. D. Cullity", title = "Introduction to Magnetic Materials", publisher = "Addison-Wesley", address = "Reading, MA", year = "1972" } Other examples journal article with large page numbers, IEEE will divide numbers 5 digits or longer into groups of three with small spaces between them. Page ranges can be separated via either "-" or "--", IEEEtran.bst will automatically convert the separator dash(es) to "--". Authors and/or IEEE do not always provide/use the journal number, but it was used in this case. IEEEtran.bst can be configured to ignore journal numbers if desired. From the August 2000 issue of "IEEE Photonics Technology Letters", page 1039, reference #11. @article{IEEEexample:articlelargepages, author = "A. Castaldini and A. Cavallini and B. Fraboni and P. Fernandez and J. Piqueras", title = "Midgap Traps Related to Compensation Processes in {CdTe} Alloys", journal = "Phys. Rev. B.", volume = "56", number = "23", year = "1997", pages = "14897-14900" } journal article with dual months use the BibTeX "#" concatenation operator From the March 2002 issue of "IEEE Transactions on Mechatronics", page 21, reference #8. @article{IEEEexample:articledualmonths, author = "Y. Okada and K. Dejima and T. Ohishi", title = "Analysis and Comparison of {PM} Synchronous Motor and Induction Motor Type Magnetic Bearings", journal = IEEE_J_IA, volume = "31", month = sep # "/" # oct, year = "1995", pages = "1047-1053" } journal article to be published as a misc entry type date information like month and year is optional However, the article form like that below may be a better approach. From the May 2002 issue of "IEEE Journal of Selected Areas in Communication", page 725, reference #3. @misc{IEEEexample:TBPmisc, author = "M. Coates and A. Hero and R. Nowak and B. Yu", title = "Internet Tomography", howpublished = IEEE_M_SP, month = may, year = "2002", note = "to be published" } journal article to be published as an article entry type year is required, so if absent, use the year field to hold the "submitted for publication" in order to avoid a warning for the missing year field. From the June 2002 issue of "IEEE Transactions on Information Theory", page 1461, reference #21. @article{IEEEexample:TBParticle, author = "N. Kahale and R. Urbanke", title = "On the Minimum Distance of Parallel and Serially Concatenated Codes", journal = "IEEE\_J\_IT", year = "submitted for publication" } book with editor and no author From the June 2002 issue of "IEEE Transactions on Information Theory", page 1725, reference #1. @book{IEEEexample:bookwitheditor, editor = "J. C. Candy and G. C. Temes", title = "Oversampling Delta-Sigma Data Converters Theory, Design and Simulation", publisher = "{IEEE} Press.", address = "New York", year = "1992" } book with edition, author and editor Note that the standard BibTeX styles do not support book entries with both author and editor fields, but IEEEtran.bst does. The standard BibTeX way of specifying the edition is to use capitalized ordinal words such as "First", "Second", etc. Most .bst files can convert up to about "Fifth" into the format needed. IEEEtran.bst can convert up to "Tenth" to the "Arabic ordinal" form IEEE uses (e.g., "10th"). For editions over the tenth, it is best to use the "Arabic ordinal" form for IEEE related work (e.g., "101st") Note how "Jr." has to be entered. From the May 2002 issue of "Journal of Lightwave Technology", page 856, reference #17. @book{IEEEexample:book, author = "S. M. Metev and V. P. Veiko", editor = "Osgood, Jr., R. M.", title = "Laser Assisted Microtechnology", edition = "Second", publisher = "Springer-Verlag", address = "Berlin, Germany", year = "1998" } book with series and volume From the January 2000 issue of "IEEE Transactions on Communications", page 11, reference #31. @book{IEEEexample:bookwithseriesvolume, editor = "J. Breckling", title = "The Analysis of Directional Time Series: Applications to Wind Speed and Direction", series = "Lecture Notes in Statistics", publisher = "Springer", address = "Berlin, Germany", year = "1989", volume = "61" } inbook with chapter number. The pages field could also have been given. The chapter number could be changed to something else such as a section number via the type field: type = "sec.". From the May 2002 issue of "IEEE Transactions on Circuits and Systems---I: Fundamental Applications and Theory", page 638, reference #22. @inbook{IEEEexample:inbook, author = "H. E. Rose", title = "A Course in Number Theory", publisher = "Oxford Univ. Press", address = "New York, NY", url = "http://www.ctan.org/texarchive/macros/latex/contrib/IEEEtran/", year = "1988", chapter = "3" } inbook with pages and note. The language field is not set to Russian because the title is presented here in its translated, English, form. From the May 2002 issue of "IEEE Transactions on Magnetics", page 1533, reference #5. @inbook{IEEEexample:inbookpagesnote, author = "B. K. Bul", title = "Theory Principles and Design of Magnetic Circuits", publisher = "Energia Press", address = "Moscow", year = "1964", pages = "464", note = "(in Russian)" } incollection with author and editor From the May 2002 issue of "Journal of Lightwave Technology", page 807, reference #7. @incollection{IEEEexample:incollection, author = "W. V. Sorin", editor = "D. Derickson", title = "Optical Reflectometry for Component Characterization", booktitle = "Fiber Optic Test and Measurement", publisher = "Prentice-Hall", address = "Englewood Cliffs, NJ", year = "1998" } incollection with series From the April 2000 issue of "IEEE Transactions on Communication", page 609, reference #3. @incollection{IEEEexample:incollectionwithseries, author = "J. B. Anderson and K. Tepe", title = "Properties of the Tailbiting {BCJR} Decoder", booktitle = "Codes, Systems and Graphical Models", series = "{IMA} Volumes in Mathematics and Its Applications", publisher = "Springer-Verlag", address = "New York", year = "2000" } incollection with author, editor, chapter and pages From the January 2000 issue of "IEEE Transactions on Communications", page 16, reference #9. @incollection{IEEEexample:incollection_chpp, author = "P. Hedelin and P. Knagenhjelm and M. Skoglund", editor = "W. B. Kleijn and K. K. Paliwal", title = "Theory for Transmission of Vector Quantization Data", booktitle = "Speech Coding and Synthesis", publisher = "Elsevier Science", address = "Amsterdam, The Netherlands", year = "1995", chapter = "10", pages = "347-396" } incollection with a large number of authors, some authors/journals will use et al. for so many names. IEEEtran.bst can be configured to do this if desired, or "R. M. A. Dawson and others" can be used instead. Note that IEEE may not include the publisher for incollection entries - IEEEtran.bst will not issue a warning if the publisher is missing for incollections - but other .bst files often will. From the June 2002 issue of "IEEE Transactions on Electron Devices", page 996, reference #12. @incollection{IEEEexample:incollectionmanyauthors, author = "R. M. A. Dawson and Z. Shen and D. A. Furst and S. Connor and J. Hsu and M. G. Kane and R. G. Stewart and A. Ipri and C. N. King and P. J. Green and R. T. Flegal and S. Pearson and W. A. Barrow and E. Dickey and K. Ping and C. W. Tang and S. Van. Slyke and F. Chen and J. Shi and J. C. Sturm and M. H. Lu", title = "Design of an Improved Pixel for a Polysilicon Active-Matrix Organic {LED} Display", booktitle = "{SID} Tech. Dig.", volume = "29", year = "1998", pages = "11-14" } A Motorola data book as a manual It is somewhat unusual to include the data book part number. in the title. It might be more correct to put this information in the howpublished field instead. From the December 2000 issue of "IEEE Transactions on Communications", page 1986, reference #10. @manual{IEEEexample:motmanual, title = "{FLEXChip} Signal Processor ({MC68175/D})", organization = "Motorola", year = "1996" } same reference, but using IEEEtran's howpublished extension @manual{IEEEexample:motmanualhowpub, title = "{FLEXChip} Signal Processor", howpublished = "{MC68175/D}", organization = "Motorola", year = "1996" } conference paper with an address and days. Some journals capitalize the letters in "Globecom", this one did not. From the May 2002 issue of "IEEE Transactions on Communications", page 697, reference #12. @inproceedings{IEEEexample:confwithadddays, author = "M. S. Yee and L. Hanzo", title = "Radial Basis Function Decision Feedback Equaliser Assisted Burst-by-burst Adaptive Modulation", booktitle = "Proc. {IEEE} Globecom '99", address = "Rio de Janeiro, Brazil", month = dec # " 5--9,", year = "1999", pages = "2183-2187" } conference paper with volume number. A conference proceedings with a vol number is a little uncommon, note that the vol number is placed before the address in the formatted bibliography entry From the April 2002 issue of "IEEE/ACM Transactions on Networking", page 181, reference #26. @inproceedings{IEEEexample:confwithvolume, author = "M. Yajnik and S. B. Moon and J. Kurose and D. Towsley", title = "Measurement and Modeling of the Temporal Dependence in Packet Loss", booktitle = "Proc. {IEEE} {INFOCOM}'99", volume = "1", address = "New York, NY", month = mar, year = "1999", pages = "345-352" } conference paper with a paper number, the type field can be used to override the word "paper", e.g., type = "postdeadline paper". A type can be given even without a paper field. Also, IEEEtran.bst can be configured to ignore paper numbers and types. From the May 2002 issue of "Journal of Lightwave Technology", page 807, reference #4. @inproceedings{IEEEexample:confwithpaper, author = "M. Wegmuller and J. P. von der Weid and P. Oberson and N. Gisin", title = "High Resolution Fiber Distributed Measurements With Coherent {OFDR}", booktitle = "Proc. {ECOC}'00", year = "2000", paper = "11.3.4", pages = "109" } conference paper with a postdeadline type paper, the paper field is optional. From the August 2000 issue of "IEEE Photonics Technology Letters", page 1087, reference #12. @inproceedings{IEEEexample:confwithpapertype, author = "B. Mikkelsen and G. Raybon and R.-J. Essiambre and K. Dreyer and Y. Su. and L. E. Nelson and J. E. Johnson and G. Shtengel and A. Bond and D. G. Moodie and A. D. Ellis", title = "160 {Gbit/s} Single-channel Transmission Over 300 km Nonzero-dispersion Fiber With Semiconductor Based Transmitter and Demultiplexer", booktitle = "Proc. {ECOC}'99", year = "1999", paper = "2-3", type = "postdeadline paper", pages = "28-29" } presented at a conference intype overrides the default "in" and causes the booktitle not to be emphasized (rendered in italics). From the February 2002 issue of "IEEE/ACM Transactions on Networking", page 163, reference #6. @inproceedings{IEEEexample:presentedatconf, author = "S. G. Finn and M. M{\'e}dard and R. A. Barry", title = "A Novel Approach to Automatic Protection Switching Using Trees", intype = "presented at the", booktitle = "Proc. Int. Conf. Commun.", year = "1997" } master's thesis, often the University name will be abbreviated and the state or country will be included in the address. The type field can used to override the default type "Master's thesis" From the June 2002 issue of "IEEE Transactions on Microelectromechanical Systems", page 186, reference #11. @mastersthesis{IEEEexample:masters, author = "Nin C. Loh", title = "High-Resolution Micromachined Interferometric Accelerometer", school = "Massachusetts Institute of Technology", address = "Cambridge", year = "1992" } master's thesis with a type field From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 391, reference #12. @mastersthesis{IEEEexample:masterstype, author = "A. Karnik", title = "Performance of {TCP} Congestion Control with Rate Feedback: {TCP/ABR} and Rate Adaptive {TCP/IP}", school = "Indian Institute of Science", type = "M. Eng. thesis", address = "Bangalore, India", month = jan, year = "1999" } Ph.D. dissertation with a URL field, the university is abbreviated From the October 2001 issue of "IEEE/ACM Transactions on Networking", page 590, reference #11. @phdthesis{IEEEexample:phdurl, author = "Q. Li", title = "Delay Characterization and Performance Control of Wide-area Networks", school = "Univ. of Delaware", address = "Newark", month = may, year = "2000", url = "http://www.ece.udel.edu/~qli" } technical report From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 490, reference #15. @techreport{IEEEexample:techrep, author = "R. Jain and K. K. Ramakrishnan and D. M. Chiu", title = "Congestion Avoidance in Computer Networks with a Connectionless Network Layer", institution = "Digital Equipment Corporation", address = "MA", number = "DEC-TR-506", month = aug, year = "1987" } technical report with type for those times when "Tech. Rep." needs to be modified From the February 2001 issue of "IEEE/ACM Transactions on Networking", page 46, reference #8. @techreport{IEEEexample:techreptype, author = "J. Padhye and V. Firoiu and D. Towsley", title = "A Stochastic Model of {TCP} {R}eno Congestion Avoidance and Control", institution = "Univ. of Massachusetts", address = "Amherst, MA", type = "CMPSCI Tech. Rep.", number = "99-02", year = "1999" } technical report with type for those times when "Tech. Rep." needs to be modified This reference did not have an address. From the January 2000 issue of "IEEE Transactions on Communications", page 117, reference #6. @techreport{IEEEexample:techreptypeii, author = "D. Middleton and A. D. Spaulding", title = "A Tutorial Review of Elements of Weak Signal Detection in Non-{G}aussian {EMI} Environments", institution = "National Telecommunications and Information Administration ({NTIA}), U.S. Dept. of Commerce", type = "NTIA Report", number = "86-194", month = may, year = "1986" } technical report, standards submission report From the June 2004 issue of "IEEE Journal of Selected Areas in Communications", page 928, reference #9. Note that some journals do not abbreviate the task group: "TGe" => "Task Group E" @techreport{IEEEexample:techrepstdsub, author = "S. Kandala", title = "Changes to {A}nnex {D}", institution = "{IEEE} 802.11 {TGe}", number = "02/680r0", month = oct, year = "2002" } an unpublished work for unpublished types, the note field is required. IEEE usually just uses the word "unpublished" for the note. From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 391, reference #16. @unpublished{IEEEexample:unpublished, author = "T. J. Ott and N. Aggarwal", title = "{TCP} over {ATM}: {ABR} or {UBR}", note = "Unpublished" } electronic with a howpublished information field From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 391, reference #7. @electronic{IEEEexample:electronhowinfo, author = "V. Jacobson", title = "Modified {TCP} Congestion Avoidance Algorithm", howpublished = "end2end-interest mailing list", url = "ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail", month = apr, year = "1990" } electronic with a howpublished information field From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 418, reference #31. @electronic{IEEEexample:electronhowinfo2, author = "V. Valloppillil and K. W. Ross", title = "Cache Array Routing Protocol v1.1", howpublished = "Internet draft", url = "http://ds1.internic.net/internet-drafts/draft-vinod-carp-v1-03.txt", year = "1998" } electronic with an organization and address From the February 2002 issue of "IEEE/ACM Transactions on Networking", page 114, reference #15. @electronic{IEEEexample:electronorgadd, author = "D. H. Lorenz and A. Orda", title = "Optimal Partition of {QoS} Requirements on Unicast Paths and Multicast Trees", organization = "Dept. Elect. Eng., Technion", address = "Haifa, Israel", url = "ftp://ftp.technion.ac.il/pub/supported/ee/Network/lor.mopq98.ps", month = jul, year = "1998" } U.S. patent Use the type field to override the patent type. e.g., type = "Patent Application" The address is that of the assignee. Note that IEEE does not display the assignee, the address, and only displays one date. (if year is not present, the filed dates are used.) However, this information should be entered as other BibTeX styles may use it. alternatively, nationality could be entered as "U.S." From the April 2000 issue of "IEEE Transactions on Communications", page 542, reference #6. @patent{IEEEexample:uspat, author = "Ronald E. Sorace and Victor S. Reinhardt and Steven A. Vaughn", assignee = "Hughes Aircraft Company", address = "Los Angeles, CA", title = "High-Speed Digital-to-{RF} Converter", nationality = "United States", number = "5668842", dayfiled = "28", monthfiled = feb, yearfiled = "1995", day = "16", month = sep, year = "1997" } Japanese Patent From the April 2000 issue of "IEEE Transactions on Communications", page 556, reference #6. @patent{IEEEexample:jppat, author = "U. Hideki", title = "Quadrature Modulation Circuit", nationality = "Japanese", number = "152932/92", day = "20", month = may, year = "1992" } French Patent request, the language field must be entered in lower case as this is the option name Babel uses. The nationality field needs to be capitalized. Because this is a patent request, the date filed fields are used while the date fields are left empty/missing. In other countries, the words "Patent Application", etc. are used instead. From the April 2000 issue of "IEEE Transactions on Communications", page 556, reference #9. @patent{IEEEexample:frenchpatreq, author = "F. Kowalik and M. Isard", title = "Estimateur d'un D{\'e}faut de Fonctionnement d'un Modulateur en Quadrature et {\'E}tage de Modulation l'Utilisant", language = "french", nationality = "French", type = "Patent Request", number = "9500261", dayfiled = "11", monthfiled = jan, yearfiled = "1995" } a periodical From the April 2001 issue of "IEEE/ACM Transactions on Networking", page 160, reference #1. sort key is needed for sorting styles @periodical{IEEEexample:periodical, title = IEEE_M_PCOM # ", Special Issue on Wireless {ATM}", volume = "3", month = aug, year = "1996", key = "IEEE" } standard, IEEE does not use the address for standards, but it is good to provide one for BibTeX styles that use it. From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 451, reference #2. @standard{IEEEexample:standard, title = "Wireless {LAN} Medium Access Control {(MAC)} and Physical Layer {(PHY)} Specification", organization = "IEEE", address = "Piscataway, NJ", number = "802.11", year = "1997" } standard with type and revision, the type overrides the word standard (or std.). Here a standard number is not available and a revision number is used. From the August 2000 issue of "IEEE Photonics Technology Letters", page 1048, reference #13. @standard{IEEEexample:standardproposed, title = "Fiber Channel Physical Interface ({FC-PI})", institution = "NCITS", address = "Washington, DC", type = "Working Draft Proposed Standard", revision = "5.2", year = "1999" } standard draft as a misc with author From the May 2002 issue of "IEEE Journal of Selected Areas in Communication", page 725, reference #16. @misc{IEEEexample:draftasmisc, author = "I. Widjaja and A. Elwalid", title = "{MATE}: {MPLS} Adaptive Traffic Engineering", howpublished = "IETF Draft", year = "1999" } misc for a techreport like reference techreport is not perfectly suitable because this entry lacks an institution field From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 490, reference #22. @misc{IEEEexample:miscforum, author = "L. Roberts", title = "Enhanced Proportional Rate Control Algorithm {PRCA}", howpublished = "{ATM} Forum Contribution 94-0735R1", month = aug, year = "1994" } misc for a white paper From the August 2001 issue of "IEEE/ACM Transactions on Networking", page 478, reference #4 - Note that the reference there (improperly?) used the author field for "Cisco". @misc{IEEEexample:whitepaper, title = "Advanced {QoS} Services for the Intelligent Internet", howpublished = "White Paper", organization = "Cisco", month = may, year = "1997" } misc for a data sheet From the November 2000 issue of "IEEE Photonics Technology Letters", page 1551, reference #6. @misc{IEEEexample:datasheet, title = "{PDCA12-70} Data Sheet", organization = "Opto Speed SA", address = "Mezzovico, Switzerland" } Other unusual references a private communication as a misc entry type sometimes the designation "personal communication" is used instead From the June 2002 issue of "IEEE Transactions on Information Theory", page 1725, reference #16. @misc{IEEEexample:private, author = "S. Konyagin", howpublished = "private communication", year = "1998" } an internet request for comments (RFC) as a misc entry type It would also be nice to add a URL to these types of things. RFCs can also be handled as electronic references. From the April 2002 issue of "IEEE/ACM Transactions on Networking", page 181, reference #14. @misc{IEEEexample:miscrfc, author = "K. K. Ramakrishnan and S. Floyd", title = "A Proposal to Add Explicit Congestion Notification ({ECN}) to {IP}", howpublished = "RFC 2481", month = jan, year = "1999" } a software package as a manual From the June 2002 issue of "IEEE/ASME Journal of Microelectromechanical Systems", page 205, reference #20. Sometimes they put the version/release information in the title. @manual{IEEEexample:softmanual, title = "SaberDesigner Reference Manual", organization = "Analogy, Inc.", address = "Beaverton, OR", year = "1998", note = "Release 4.3" } a software package as an electronic reference From the February 2003 issue of "IEEE/ACM Transactions on Networking", page 46, reference #24. If there is no author or organization, a sorting key is required for sorting styles. It might be a good idea to include month and year fields as well. @electronic{IEEEexample:softonline, title = "Ucb/lbnl/vint Network Simulator---ns (Version 2)", url = "http://www-mash.cs.berkeley.edu/ns/", key = "ns" } misc for a German regulation In German, the first letters of nouns are capitalized, so we do so here. From the June 2002 issue of "IEEE Journal in Selected Areas in Communication", page 892, reference #9. @misc{IEEEexample:miscgermanreg, title = "{M}essung von {S}t{\"o}rfeldern an {A}nlagen und {L}eitungen der {T}elekommunikation im {F}requenzbereich 9 {kHz} bis 3 {GHz}", language = "german", howpublished = "{M}e{\ss}vorschrift {R}eg {TP} {MV} 05", organization = "Regulierungsbeh{\"o}rde f{\"u}r {T}elekommunikation und {P}ost ({R}eg {TP})" } Ways to handle things like CCSDS's Blue Books journal article with a URL. However, this is not a very good approach because the Blue Books are not really journals and the author field has to be abused. From the June 2002 issue of "IEEE Transactions on Information Theory", page 1461, reference #7. @article{IEEEexample:bluebookarticle, author = "{Consulative Committee for Space Data Systems (CCSDS)}", title = "Telemetry Channel Coding", journal = "Blue Book", number = "4", year = "1999", url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" } CCSDS's Blue Book handled as a book However, it is not a good idea to have to use the author field for an organization (done here because the book entry type requires an author field). @book{IEEEexample:bluebookbook, author = "{Consulative Committee for Space Data Systems (CCSDS)}", title = "Telemetry Channel Coding", series = "Blue Book", number = "4", publisher = "{CCSDS}", address = "Newport Beach, {CA}", year = "1999", url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" } CCSDS's Blue Book handled as a manual This is a much better approach, but uses the howpublished field. @manual{IEEEexample:bluebookmanual, title = "Telemetry Channel Coding", howpublished = "ser. Blue Book, No. 4", organization = "Consulative Committee for Space Data Systems (CCSDS)", address = "Newport Beach, CA", year = "1999", url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" } CCSDS's Blue Book handled as a standard Probably the best approach for this particular case because the work is standard related. Note that IEEE does not display the address for standards. @standard{IEEEexample:bluebookstandard, title = "Telemetry Channel Coding", howpublished = "ser. Blue Book, No. 4", organization = "Consulative Committee for Space Data Systems (CCSDS)", address = "Newport Beach, CA", type = "Recommendation for Space Data System Standard", number = "101.0-B-4", month = May, year = "1999", url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" } An example of a IEEEtran control entry which can change some IEEEtran.bst settings. An entry like this must be cited via \bstctlcite{} command before the first real \cite{}. The same entry key cannot be called twice (just like multiple \cite{} of the same entry key place only one entry in the bibliography.) The available control fields are: CTLuse_article_number "no" turns off the display of the number for articles. "yes" enables CTLuse_paper "no" turns off the display of the paper and type fields in inproceedings. "yes" enables CTLuse_forced_etal "no" turns off the forced use of "et al." "yes" enables CTLmax_names_forced_etal The maximum number of names that can be present beyond which an "et al." usage is forced. Be sure that CTLnames_show_etal (below) is not greater than this value! CTLnames_show_etal The number of names that will be shown with a forced "et al.". Must be less than or equal to CTLmax_names_forced_etal CTLuse_alt_spacing "no" turns off the alternate interword spacing for entries with URLs. "yes" enables CTLalt_stretch_factor 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. CTLdash_repeated_names "no" turns off the "dashification" of repeated (i.e., identical to those of the previous entry) names. IEEE normally does this. "yes" enables CTLname_format_string The name format control string as explained in the BibTeX style hacking guide. IEEE style "{f.~}{vv~}{ll}{, jj}" is the default, CTLname_latex_cmd A LaTeX command that each name will be fed to (e.g., "\textsc"). Leave empty if no special font is desired for the names. The default is empty. CTLname_url_prefix The prefix text used before URLs. The default is "[Online]. Available:" A space will be inserted after this text. If this space is not wanted, just use \relax at the end of the prefix text. Those fields that are not to be changed can be left out. @IEEEtranBSTCTL{IEEEexample:BSTcontrol, CTLuse_article_number = "yes", CTLuse_paper = "yes", CTLuse_forced_etal = "no", CTLmax_names_forced_etal = "10", CTLnames_show_etal = "1", CTLuse_alt_spacing = "yes", CTLalt_stretch_factor = "4", CTLdash_repeated_names = "yes", CTLname_format_string = "{f.~}{vv~}{ll}{, jj}", CTLname_latex_cmd = "", CTLname_url_prefix = "[Online]. Available:" }
IEEEtran.bst
%% %% 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.
ecelatex.tex
\usepackage{blindtext, graphicx} \usepackage{listings} \usepackage{color,xcolor} \usepackage{listings} \usepackage{textcomp} \usepackage{amsmath} \usepackage{cite} \usepackage{amssymb} \usepackage{mathtools} \usepackage{url} \usepackage{placeins} \newcommand{\ecefigure}[4] { \begin{figure}[!htbp] \centering \includegraphics[width=#4\textwidth]{pic/#1} \caption{#2.\label{fig:#3}} \end{figure} } \definecolor{dkgreen}{rgb}{0,0.6,0} \definecolor{gray}{rgb}{0.5,0.5,0.5} \definecolor{mauve}{rgb}{0.58,0,0.82} \definecolor{bgcolor}{rgb}{0.97,0.97,0.9} \lstset{frame=lrbt, backgroundcolor=\color{bgcolor}, language=Java, aboveskip=3mm, belowskip=3mm, showstringspaces=false, columns=flexible, basicstyle={\small\ttfamily}, numbers=none, numberstyle=\tiny\color{gray}, keywordstyle=\color{blue}, commentstyle=\color{dkgreen}, stringstyle=\color{mauve}, breaklines=true, breakatwhitespace=true tabsize=3, numbers=left, stepnumber=1, firstnumber=1, numberfirstline=true } \newcommand*{\plogo}{} % Generic publisher logo %---------------------------------------------------------------------------------------- % TITLE PAGE %---------------------------------------------------------------------------------------- \newcommand*{\ecetitlepage}{\begingroup % Create the command for including the title page in the document \hbox{ % Horizontal box %\hspace*{0.2\textwidth} % Whitespace to the left of the title page \includegraphics[scale=.3]{pic/logo}\hfill \rule{1pt}{\textheight} % Vertical line \hspace*{0.05\textwidth} % Whitespace between the vertical line and title page text \parbox[b]{0.75\textwidth}{ % Paragraph box which restricts text to less than the width of the page {\noindent\Huge\bfseries Project Report \\ [0.5\baselineskip] Project Title}\\[5\baselineskip] % Title {\textit{First Student Name \; First Student ID}} \\[0.3\baselineskip] % Tagline or further description {\textit{Second Student Name \; Second Student ID}} \\[0.3\baselineskip] % Tagline or further description {\textit{Third Student Name \; Third Student ID}} \\[0.3\baselineskip] {\textit{Fourth Student Name \; Fourth Student ID}} \\ {\large \textsc{Supervised By: Eng. Tasnim Basmaji }} \vspace{0.4\textheight} % Whitespace between the title block and the publisher {\noindent Submitted: \today \plogo}\\[\baselineskip] % Publisher and logo }} \endgroup} %---------------------------------------------------------------------------------------- % BLANK DOCUMENT %----------------------------------------------------------------------------------------
labreport.tex
% This is how a command looks in Latex % Small Command (too much, too little effect on style) % \command[options]{arguments} % Big Command (Affect lots of styling) % Environment % \begin{environment} % \end{environment} \documentclass[12pt]{article} \input{ecelatex} \begin{document} \ecetitlepage \tableofcontents \listoffigures \listoftables \newpage \begin{abstract} The abstract encapsulates the major portions of the report and addresses an audience that might not read the rest of the document. It may be read both by engineers looking for data and by non-engineers, managers who will make crucial decisions about engineering projects. The abstract provides a concise overview of your work. It should be about 100-200 words (one to three paragraphs). It should contain the highlights of the major parts of the report, including the objective, results, conclusions and recommendations. No details should be included. The information must be communicated in such a way that the reader can understand what was done, and what the outcome was, without having to read the rest of the report. The abstract should be written completely in textual form-that is, in sentences. It should not include equations or references to anything else in the report. It should read smoothly and coherently, not like a collection of sentences from different parts of the report. When the report describes results from several short experiments, the abstract should not resemble several small abstracts of the individual experiments, but must provide smooth transitions between them. Although the abstract is placed at the beginning of the report (for easy access by the reader), it should be written last, after the rest of the report has been completed. \end{abstract} \newpage \section{Introduction} The appropriate information for the introduction varies with the kind of report. Most introductions provide the reader with the necessary background to help put the objectives and results in a proper perspective. When necessary, previous related work is described. If the report is on several short experiments, the overall purpose and background of the group of experiments should be described first, followed by the necessary information for each of the experiments. In this case, the introduction should not be a mere collection of material on each, but should be written using connected paragraphs with clear transitions between ideas and information. The introduction should say why this series of tests is being done, and give any relevant background information. This is how to do citations of online source \cite{biblatex}, an article \cite{einstein}, or a book \cite{book_typical}. \subsection{Motivation} \label{sec:motivation} A paragraph identifying the motivation behind the project. Why design a solution? How will this make the world better? What are the benefits? \subsection{Problem Statement} \label{sec:ProblemStatement} A clear and concise paragraph describing the problem that your team is trying to solve. \subsection{Literature Review} \label{sec:Literature} Multiple paragraph analyzing existing solutions found in good literature. You look at existing systems and analyze them. What do they do? What are their advantages and disadvantages? \section{Design} Detail the procedure used to carry out the experiment step-by-step. The instruction sheet, together with the instructions given to you by the laboratory instructor, will be of help here. Sufficient information should be provided to allow the reader to repeat the experiment in an identical manner. Special procedures used to ensure specific experimental conditions, or to maintain a desired accuracy in the information obtained should be described. \subsection{Requirements Constraints, and Considerations} A list of all design requirements and constraints developed from the project statements, discussion with the TAs, discussion with the faculty supervisor, or the end users. Consider the list given under the definition of Engineering Design in the Project Guidelines document of the ECE Course Project Kit. Another list of (1) considerations made to public health, safety, and well-being, and (2) global, social, cultural, environmental, and economic factors. \subsection{Design Process} A description of the iterative process followed to reach the final design. Describe the process you followed. What are the alternative solutions considered? Why did you select the final design? Did you develop a first prototype? How did you refine the prototype after testing it? \subsubsection{Replace with actual first exercise title} Explain the results of the first part of your project. Include all the necessary tables, K-Maps, Boolean expressions, circuit diagrams, output figures, etc. Do not simply include figures without discussing them. Nothing should be hand written and uploaded as an image. You can utilise various online software for K-Maps and circuit diagrams. \\ \begin{enumerate} \item Step one, we develop the following code: %write your code \begin{lstlisting} t=0:0.01:10 ; f =1/2; x_t=4*cos(2*pi*f*t)+2*cos(6*pi*t); subplot(211); plot(t,x_t); title('Continuous Time Signal'); \end{lstlisting} \item Step two .. \item Step three .. \end{enumerate} \subsubsection{Replace with actual second exercise title} In the second exercise, we .. \begin{enumerate} \item Step one ... \item Step two .. \item Step three .. \end{enumerate} \subsection{System Overview} A diagram describing the proposed solution components and connectors linking these component. A paragraph accompanying the diagram and describing to the reader how the system work/is-designed. This is a top level design (aka architectural design). \ecefigure {signals.jpg} {Figure Caption} %figure caption {figlabel} {1} %size \FloatBarrier \subsection{Component Design} These are multiple sections with figures, tables, derivations, calculations, algorithms, and formulas describing/detailing/designing the sub-systems or sub-components of the overall system. \section{Experimental Testing and Results} \subsection{Testing Plan and Acceptance Criteria} Testing Plan: 3-5 pre-designed test cases. Test cases look like the following: \begin{itemize} \item Test Name: a name to recognize the test \item Test Description: a paragraph detailing the purpose of the test. \item steps followed during the experiment/test. \item Expected Results: what should we observe? \item Observed Results: what did we observe? \item Acceptance Criteria: how will we know the test is successful? \item Test Result: Pass/Fail result after the test is done. \end{itemize} \subsection{Results} Paragraphs with pictures, tables, measurements, and performance evaluations obtained through testing. A summary of the findings. \subsubsection{Replace with actual first exercise title} Explain the results of the first part of your project. Include all the necessary tables, K-Maps, Boolean expressions, circuit diagrams, output figures, etc. Do not simply include figures without discussing them. Nothing should be hand written and uploaded as an image. You can utilise various online software for K-Maps and circuit diagrams. \\ Figure \ref{fig:figlabel} shows the resulting signals. \ecefigure {signals.jpg} {Figure Caption} {figlabel} {1} \FloatBarrier \subsubsection{Replace with actual second exercise title} Explain the results of the second part of your project. Figure \ref{fig:figlabel2} shows the outcome. \ecefigure {labview3.png} {Figure Caption 2} {figlabel2} {1} \subsection{Analysis and Interpretation of Data} This section is devoted to your interpretation of the outcome of the experiment or project. The information from the data analysis is examined and explained. You should describe, analyse and explain (not just restate) all your results. This section should answer the question 'what do the data tell me?' Describe any logical projections from the outcome, for instance the need to repeat the experiments or to measure certain variables differently. Assess the quality and accuracy of your procedure. Compare your results with expected behaviour, if such a comparison is useful or necessary, and explain any unexpected behaviour. \section{Conclusion} \subsection{Summary} A summary of the entire report. Base all conclusions on your actual results. Explain the meaning of the experiment and the implications of your results. Examine the outcome in the light of the stated objectives. Seek to make conclusions in a broader context in the light of the results. \subsection{Future Improvements and Takeaways} What did we learn? What are the takeaways? How was this project useful? How do you evaluate the entire experience? \subsection{Lessons Learned} What new knowledge did you acquire and apply in this project? Did you use a new technology? Did you go over a tutorial teaching you something new? Did you research about a topic and ended up applying what you learned? Did you learn something by experimenting in the lab? Did you learn something from your failed attempts? \subsection{Team Dynamics} \begin{itemize} \item Who was the team leader? What evidence of good leadership can you provide? \item How did you create a collaborative and inclusive environment? Were all members engaged? How did the team communicate/collaborate? Did you create a WhatsApp group? Met in the library? Met in the lab? Communicated by emails? Where all members in attendance? Did you take meeting minutes? \item What goals did you set for your team? \item How did you plan the tasks? Did you use a Gantt Chart. Did you track your progress and update your tasks? \item Did you meet your objectives? \end{itemize} More information: \\ Goals vs. Objectives: a team goal is a broad statement describing what does the team want to achieve. For example, a goal can be to design a low-cost robot capable of winning the sumo robot competition. Objectives are measurable steps you take towards reaching your goal. For example, \begin{itemize} \item Procure equipment by mid-October. \item Design a robot chassis weighing 1kg using renewable material. \item Design a PCB no more than 3cm by 2cm to reduce the number of flying wires to 2 as a maximum. \end{itemize} A Gantt Chart: a figure indicating the tasks, their dependencies, their required efforts, and who’s responsible for them? \ecefigure {Gantt.png} {Gantt Chart} {figlabel2} {1} \subsection{Impact Statement} What is the impact of your engineering solution on the economy, the environment, and the society? \begin{itemize} \item Does your solution help society? How? \item Are there any privacy concerns for the users? \item Will your solution create jobs? Remove jobs from the market? \item Will the electronics from your project end up being electronic waste? How did you reduce this? What impact does your system have on the environment? Does it reduce dependency on fossil fuel? Is it sustainable? \item Does your system reduce energy demand? Increase energy demand? By how much? Is it still worth it? \item Does your system provide comparable performance to existing one while reducing the cost? Reducing the power consumption? Reducing the environmental footprint? \end{itemize} \bibliographystyle{IEEEtran} \bibliography{Bibliography} \end{document}