├── .gitignore ├── CODE_OF_CONDUCT.md ├── FAQ.md ├── LICENSE ├── Makefile ├── NOTES ├── README.md ├── example ├── appendix.tex ├── chapter1.tex ├── chapter2.tex ├── example.bib ├── example.tex ├── sample_nd.eps └── sample_nd.pdf ├── handout ├── handout.pdf └── handout.tex ├── ltxdoc.cfg ├── nddiss2e.bst ├── nddiss2e.cls ├── nddiss2e.dtx ├── nddiss2e.ins ├── nddiss2e.pdf ├── nddiss2enoarticletitles.bst ├── nddiss2enosort.bst ├── process.sh └── template.tex /.gitignore: -------------------------------------------------------------------------------- 1 | AdvDistribution.zip 2 | AdvDistribution/* 3 | StandDistribution.zip 4 | StandDistribution/* 5 | nddiss.zip 6 | nddiss/* 7 | *.aux 8 | *.dvi 9 | *.glo 10 | *.gls 11 | *.ilg 12 | *.lof 13 | *.log 14 | *.lot 15 | *.out 16 | *.swp 17 | *.toc 18 | *.xmpi 19 | template.pdf 20 | example/example.pdf 21 | *.DS_Store 22 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | The Code of Conduct is under review as we have discussions about our shared values and related policies during the Hesburgh Libraries Strategic Planning Process. 4 | -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- 1 | # FAQ 2 | 3 | Before looking at these, have you read the [manual](nddiss2e.pdf)? Most of these answers are explained in more detail in there. 4 | 5 | ## How can I change the date that appears on the title page? 6 | 7 | Use the `\degdate{}` macro before calling `\maketitlepage`. 8 | For example: 9 | 10 | ~~~latex 11 | \degdate{April 2020} 12 | \maketitle 13 | ~~~ 14 | 15 | ## How do I add a preface or other front matter section that shows up in the table of contents? 16 | 17 | Use the `preface` environment. By default the section is titled "Preface". You can change it using the 18 | 19 | ~~~latex 20 | \begin{preface} 21 | This work includes many special things... 22 | \end{preface} 23 | ~~~ 24 | 25 | ## How do I get NDDiss to work with the APA citation package `apacite`? 26 | 27 | Add `nonatbib` to the document class options at the beginning of your document 28 | and use a `bibliographystyle{apacite}` for your bibliography. 29 | 30 | example: `\documentclass[final,nonatbib]{nddiss2e}` 31 | 32 | ## How do I get my table captions to work right with multipage tables? 33 | 34 | Use the longtable environment. The class defines its own that conforms to the Graduate School requirements. Make sure you do not have any `\usepackages` for `longtable` or `caption`. Format your captions analogous to the following: 35 | 36 | ~~~latex 37 | \begin{longtable}{lll} 38 | \caption{MY VERY LONG TABLE\label{tab:long}}\\ 39 | Name & X & Y \\ 40 | \hline 41 | \endfirsthead 42 | \caption{} \\ 43 | Name & X & Y \\ 44 | \hline 45 | \endhead 46 | First data point & 0 & 0 \\ 47 | Second & 0 & 1 \\ 48 | ... 49 | \end{longtable} 50 | ~~~ 51 | 52 | ## I was told my table and figure captions are messed up. 53 | 54 | Usually this is because you are using a package that conflicts with the style. The main offenders is the `caption` package, but there can be others. 55 | 56 | (The nddiss2e style is pretty old, and could be updated to use the many packages that have been developed over the last 20 years. If you have the time and ability, I would love to accept updates for it.) 57 | 58 | ## My longtable captions need to be in UPPERCASE. 59 | 60 | 61 | ## My title page is actually two pages since I have two advisors and my program name takes two lines. 62 | 63 | This is a hard thing to adjust since the long department name takes two lines and there isn’t space on the page for an extra line. 64 | Since the title page format is baked-into the class, you need to adjust the spacing parameters in the class file. 65 | 66 | In the nddiss2e.cls replace these consecutive lines (lines 393-395): 67 | ~~~latex 68 | \skip2=1.7\double@skip 69 | \skip3=2.7\double@skip 70 | \skip4=36pt 71 | ~~~ 72 | 73 | With these: 74 | ~~~latex 75 | \skip2=1.2\double@skip 76 | \skip3=2.0\double@skip 77 | \skip4=16pt 78 | ~~~ 79 | 80 | 81 | 82 | ## How do I get my citations to be numbered in the order they are cited? 83 | 84 | By default the bibliography is sorted by author last name so it is easier for others to scan your bibliography. 85 | But you can sort the bibliography by the order each citation is first used with the command `\bibliographystyle{nddiss2enosort}`. 86 | Doing this will have the first citation you use to have number 1, and so on. 87 | It is recommended to use the `notoccite` package to start the numbering after the front matter sections. 88 | 89 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The LaTeX Project Public License 2 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 3 | 4 | LPPL Version 1.3c 2008-05-04 5 | 6 | Copyright 1999 2002-2008 LaTeX3 Project 7 | Everyone is allowed to distribute verbatim copies of this 8 | license document, but modification of it is not allowed. 9 | 10 | 11 | PREAMBLE 12 | ======== 13 | 14 | The LaTeX Project Public License (LPPL) is the primary license under 15 | which the LaTeX kernel and the base LaTeX packages are distributed. 16 | 17 | You may use this license for any work of which you hold the copyright 18 | and which you wish to distribute. This license may be particularly 19 | suitable if your work is TeX-related (such as a LaTeX package), but 20 | it is written in such a way that you can use it even if your work is 21 | unrelated to TeX. 22 | 23 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', 24 | below, gives instructions, examples, and recommendations for authors 25 | who are considering distributing their works under this license. 26 | 27 | This license gives conditions under which a work may be distributed 28 | and modified, as well as conditions under which modified versions of 29 | that work may be distributed. 30 | 31 | We, the LaTeX3 Project, believe that the conditions below give you 32 | the freedom to make and distribute modified versions of your work 33 | that conform with whatever technical specifications you wish while 34 | maintaining the availability, integrity, and reliability of 35 | that work. If you do not see how to achieve your goal while 36 | meeting these conditions, then read the document `cfgguide.tex' 37 | and `modguide.tex' in the base LaTeX distribution for suggestions. 38 | 39 | 40 | DEFINITIONS 41 | =========== 42 | 43 | In this license document the following terms are used: 44 | 45 | `Work' 46 | Any work being distributed under this License. 47 | 48 | `Derived Work' 49 | Any work that under any applicable law is derived from the Work. 50 | 51 | `Modification' 52 | Any procedure that produces a Derived Work under any applicable 53 | law -- for example, the production of a file containing an 54 | original file associated with the Work or a significant portion of 55 | such a file, either verbatim or with modifications and/or 56 | translated into another language. 57 | 58 | `Modify' 59 | To apply any procedure that produces a Derived Work under any 60 | applicable law. 61 | 62 | `Distribution' 63 | Making copies of the Work available from one person to another, in 64 | whole or in part. Distribution includes (but is not limited to) 65 | making any electronic components of the Work accessible by 66 | file transfer protocols such as FTP or HTTP or by shared file 67 | systems such as Sun's Network File System (NFS). 68 | 69 | `Compiled Work' 70 | A version of the Work that has been processed into a form where it 71 | is directly usable on a computer system. This processing may 72 | include using installation facilities provided by the Work, 73 | transformations of the Work, copying of components of the Work, or 74 | other activities. Note that modification of any installation 75 | facilities provided by the Work constitutes modification of the Work. 76 | 77 | `Current Maintainer' 78 | A person or persons nominated as such within the Work. If there is 79 | no such explicit nomination then it is the `Copyright Holder' under 80 | any applicable law. 81 | 82 | `Base Interpreter' 83 | A program or process that is normally needed for running or 84 | interpreting a part or the whole of the Work. 85 | 86 | A Base Interpreter may depend on external components but these 87 | are not considered part of the Base Interpreter provided that each 88 | external component clearly identifies itself whenever it is used 89 | interactively. Unless explicitly specified when applying the 90 | license to the Work, the only applicable Base Interpreter is a 91 | `LaTeX-Format' or in the case of files belonging to the 92 | `LaTeX-format' a program implementing the `TeX language'. 93 | 94 | 95 | 96 | CONDITIONS ON DISTRIBUTION AND MODIFICATION 97 | =========================================== 98 | 99 | 1. Activities other than distribution and/or modification of the Work 100 | are not covered by this license; they are outside its scope. In 101 | particular, the act of running the Work is not restricted and no 102 | requirements are made concerning any offers of support for the Work. 103 | 104 | 2. You may distribute a complete, unmodified copy of the Work as you 105 | received it. Distribution of only part of the Work is considered 106 | modification of the Work, and no right to distribute such a Derived 107 | Work may be assumed under the terms of this clause. 108 | 109 | 3. You may distribute a Compiled Work that has been generated from a 110 | complete, unmodified copy of the Work as distributed under Clause 2 111 | above, as long as that Compiled Work is distributed in such a way that 112 | the recipients may install the Compiled Work on their system exactly 113 | as it would have been installed if they generated a Compiled Work 114 | directly from the Work. 115 | 116 | 4. If you are the Current Maintainer of the Work, you may, without 117 | restriction, modify the Work, thus creating a Derived Work. You may 118 | also distribute the Derived Work without restriction, including 119 | Compiled Works generated from the Derived Work. Derived Works 120 | distributed in this manner by the Current Maintainer are considered to 121 | be updated versions of the Work. 122 | 123 | 5. If you are not the Current Maintainer of the Work, you may modify 124 | your copy of the Work, thus creating a Derived Work based on the Work, 125 | and compile this Derived Work, thus creating a Compiled Work based on 126 | the Derived Work. 127 | 128 | 6. If you are not the Current Maintainer of the Work, you may 129 | distribute a Derived Work provided the following conditions are met 130 | for every component of the Work unless that component clearly states 131 | in the copyright notice that it is exempt from that condition. Only 132 | the Current Maintainer is allowed to add such statements of exemption 133 | to a component of the Work. 134 | 135 | a. If a component of this Derived Work can be a direct replacement 136 | for a component of the Work when that component is used with the 137 | Base Interpreter, then, wherever this component of the Work 138 | identifies itself to the user when used interactively with that 139 | Base Interpreter, the replacement component of this Derived Work 140 | clearly and unambiguously identifies itself as a modified version 141 | of this component to the user when used interactively with that 142 | Base Interpreter. 143 | 144 | b. Every component of the Derived Work contains prominent notices 145 | detailing the nature of the changes to that component, or a 146 | prominent reference to another file that is distributed as part 147 | of the Derived Work and that contains a complete and accurate log 148 | of the changes. 149 | 150 | c. No information in the Derived Work implies that any persons, 151 | including (but not limited to) the authors of the original version 152 | of the Work, provide any support, including (but not limited to) 153 | the reporting and handling of errors, to recipients of the 154 | Derived Work unless those persons have stated explicitly that 155 | they do provide such support for the Derived Work. 156 | 157 | d. You distribute at least one of the following with the Derived Work: 158 | 159 | 1. A complete, unmodified copy of the Work; 160 | if your distribution of a modified component is made by 161 | offering access to copy the modified component from a 162 | designated place, then offering equivalent access to copy 163 | the Work from the same or some similar place meets this 164 | condition, even though third parties are not compelled to 165 | copy the Work along with the modified component; 166 | 167 | 2. Information that is sufficient to obtain a complete, 168 | unmodified copy of the Work. 169 | 170 | 7. If you are not the Current Maintainer of the Work, you may 171 | distribute a Compiled Work generated from a Derived Work, as long as 172 | the Derived Work is distributed to all recipients of the Compiled 173 | Work, and as long as the conditions of Clause 6, above, are met with 174 | regard to the Derived Work. 175 | 176 | 8. The conditions above are not intended to prohibit, and hence do not 177 | apply to, the modification, by any method, of any component so that it 178 | becomes identical to an updated version of that component of the Work as 179 | it is distributed by the Current Maintainer under Clause 4, above. 180 | 181 | 9. Distribution of the Work or any Derived Work in an alternative 182 | format, where the Work or that Derived Work (in whole or in part) is 183 | then produced by applying some process to that format, does not relax or 184 | nullify any sections of this license as they pertain to the results of 185 | applying that process. 186 | 187 | 10. a. A Derived Work may be distributed under a different license 188 | provided that license itself honors the conditions listed in 189 | Clause 6 above, in regard to the Work, though it does not have 190 | to honor the rest of the conditions in this license. 191 | 192 | b. If a Derived Work is distributed under a different license, that 193 | Derived Work must provide sufficient documentation as part of 194 | itself to allow each recipient of that Derived Work to honor the 195 | restrictions in Clause 6 above, concerning changes from the Work. 196 | 197 | 11. This license places no restrictions on works that are unrelated to 198 | the Work, nor does this license place any restrictions on aggregating 199 | such works with the Work by any means. 200 | 201 | 12. Nothing in this license is intended to, or may be used to, prevent 202 | complete compliance by all parties with all applicable laws. 203 | 204 | 205 | NO WARRANTY 206 | =========== 207 | 208 | There is no warranty for the Work. Except when otherwise stated in 209 | writing, the Copyright Holder provides the Work `as is', without 210 | warranty of any kind, either expressed or implied, including, but not 211 | limited to, the implied warranties of merchantability and fitness for a 212 | particular purpose. The entire risk as to the quality and performance 213 | of the Work is with you. Should the Work prove defective, you assume 214 | the cost of all necessary servicing, repair, or correction. 215 | 216 | In no event unless required by applicable law or agreed to in writing 217 | will The Copyright Holder, or any author named in the components of the 218 | Work, or any other party who may distribute and/or modify the Work as 219 | permitted above, be liable to you for damages, including any general, 220 | special, incidental or consequential damages arising out of any use of 221 | the Work or out of inability to use the Work (including, but not limited 222 | to, loss of data, data being rendered inaccurate, or losses sustained by 223 | anyone as a result of any failure of the Work to operate with any other 224 | programs), even if the Copyright Holder or said author or said other 225 | party has been advised of the possibility of such damages. 226 | 227 | 228 | MAINTENANCE OF THE WORK 229 | ======================= 230 | 231 | The Work has the status `author-maintained' if the Copyright Holder 232 | explicitly and prominently states near the primary copyright notice in 233 | the Work that the Work can only be maintained by the Copyright Holder 234 | or simply that it is `author-maintained'. 235 | 236 | The Work has the status `maintained' if there is a Current Maintainer 237 | who has indicated in the Work that they are willing to receive error 238 | reports for the Work (for example, by supplying a valid e-mail 239 | address). It is not required for the Current Maintainer to acknowledge 240 | or act upon these error reports. 241 | 242 | The Work changes from status `maintained' to `unmaintained' if there 243 | is no Current Maintainer, or the person stated to be Current 244 | Maintainer of the work cannot be reached through the indicated means 245 | of communication for a period of six months, and there are no other 246 | significant signs of active maintenance. 247 | 248 | You can become the Current Maintainer of the Work by agreement with 249 | any existing Current Maintainer to take over this role. 250 | 251 | If the Work is unmaintained, you can become the Current Maintainer of 252 | the Work through the following steps: 253 | 254 | 1. Make a reasonable attempt to trace the Current Maintainer (and 255 | the Copyright Holder, if the two differ) through the means of 256 | an Internet or similar search. 257 | 258 | 2. If this search is successful, then enquire whether the Work 259 | is still maintained. 260 | 261 | a. If it is being maintained, then ask the Current Maintainer 262 | to update their communication data within one month. 263 | 264 | b. If the search is unsuccessful or no action to resume active 265 | maintenance is taken by the Current Maintainer, then announce 266 | within the pertinent community your intention to take over 267 | maintenance. (If the Work is a LaTeX work, this could be 268 | done, for example, by posting to comp.text.tex.) 269 | 270 | 3a. If the Current Maintainer is reachable and agrees to pass 271 | maintenance of the Work to you, then this takes effect 272 | immediately upon announcement. 273 | 274 | b. If the Current Maintainer is not reachable and the Copyright 275 | Holder agrees that maintenance of the Work be passed to you, 276 | then this takes effect immediately upon announcement. 277 | 278 | 4. If you make an `intention announcement' as described in 2b. above 279 | and after three months your intention is challenged neither by 280 | the Current Maintainer nor by the Copyright Holder nor by other 281 | people, then you may arrange for the Work to be changed so as 282 | to name you as the (new) Current Maintainer. 283 | 284 | 5. If the previously unreachable Current Maintainer becomes 285 | reachable once more within three months of a change completed 286 | under the terms of 3b) or 4), then that Current Maintainer must 287 | become or remain the Current Maintainer upon request provided 288 | they then update their communication data within one month. 289 | 290 | A change in the Current Maintainer does not, of itself, alter the fact 291 | that the Work is distributed under the LPPL license. 292 | 293 | If you become the Current Maintainer of the Work, you should 294 | immediately provide, within the Work, a prominent and unambiguous 295 | statement of your status as Current Maintainer. You should also 296 | announce your new status to the same pertinent community as 297 | in 2b) above. 298 | 299 | 300 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE 301 | ====================================================== 302 | 303 | This section contains important instructions, examples, and 304 | recommendations for authors who are considering distributing their 305 | works under this license. These authors are addressed as `you' in 306 | this section. 307 | 308 | Choosing This License or Another License 309 | ---------------------------------------- 310 | 311 | If for any part of your work you want or need to use *distribution* 312 | conditions that differ significantly from those in this license, then 313 | do not refer to this license anywhere in your work but, instead, 314 | distribute your work under a different license. You may use the text 315 | of this license as a model for your own license, but your license 316 | should not refer to the LPPL or otherwise give the impression that 317 | your work is distributed under the LPPL. 318 | 319 | The document `modguide.tex' in the base LaTeX distribution explains 320 | the motivation behind the conditions of this license. It explains, 321 | for example, why distributing LaTeX under the GNU General Public 322 | License (GPL) was considered inappropriate. Even if your work is 323 | unrelated to LaTeX, the discussion in `modguide.tex' may still be 324 | relevant, and authors intending to distribute their works under any 325 | license are encouraged to read it. 326 | 327 | A Recommendation on Modification Without Distribution 328 | ----------------------------------------------------- 329 | 330 | It is wise never to modify a component of the Work, even for your own 331 | personal use, without also meeting the above conditions for 332 | distributing the modified component. While you might intend that such 333 | modifications will never be distributed, often this will happen by 334 | accident -- you may forget that you have modified that component; or 335 | it may not occur to you when allowing others to access the modified 336 | version that you are thus distributing it and violating the conditions 337 | of this license in ways that could have legal implications and, worse, 338 | cause problems for the community. It is therefore usually in your 339 | best interest to keep your copy of the Work identical with the public 340 | one. Many works provide ways to control the behavior of that work 341 | without altering any of its licensed components. 342 | 343 | How to Use This License 344 | ----------------------- 345 | 346 | To use this license, place in each of the components of your work both 347 | an explicit copyright notice including your name and the year the work 348 | was authored and/or last substantially modified. Include also a 349 | statement that the distribution and/or modification of that 350 | component is constrained by the conditions in this license. 351 | 352 | Here is an example of such a notice and statement: 353 | 354 | %% pig.dtx 355 | %% Copyright 2005 M. Y. Name 356 | % 357 | % This work may be distributed and/or modified under the 358 | % conditions of the LaTeX Project Public License, either version 1.3 359 | % of this license or (at your option) any later version. 360 | % The latest version of this license is in 361 | % http://www.latex-project.org/lppl.txt 362 | % and version 1.3 or later is part of all distributions of LaTeX 363 | % version 2005/12/01 or later. 364 | % 365 | % This work has the LPPL maintenance status `maintained'. 366 | % 367 | % The Current Maintainer of this work is M. Y. Name. 368 | % 369 | % This work consists of the files pig.dtx and pig.ins 370 | % and the derived file pig.sty. 371 | 372 | Given such a notice and statement in a file, the conditions 373 | given in this license document would apply, with the `Work' referring 374 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being 375 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' 376 | referring to any `LaTeX-Format', and both `Copyright Holder' and 377 | `Current Maintainer' referring to the person `M. Y. Name'. 378 | 379 | If you do not want the Maintenance section of LPPL to apply to your 380 | Work, change `maintained' above into `author-maintained'. 381 | However, we recommend that you use `maintained', as the Maintenance 382 | section was added in order to ensure that your Work remains useful to 383 | the community even when you can no longer maintain and support it 384 | yourself. 385 | 386 | Derived Works That Are Not Replacements 387 | --------------------------------------- 388 | 389 | Several clauses of the LPPL specify means to provide reliability and 390 | stability for the user community. They therefore concern themselves 391 | with the case that a Derived Work is intended to be used as a 392 | (compatible or incompatible) replacement of the original Work. If 393 | this is not the case (e.g., if a few lines of code are reused for a 394 | completely different task), then clauses 6b and 6d shall not apply. 395 | 396 | 397 | Important Recommendations 398 | ------------------------- 399 | 400 | Defining What Constitutes the Work 401 | 402 | The LPPL requires that distributions of the Work contain all the 403 | files of the Work. It is therefore important that you provide a 404 | way for the licensee to determine which files constitute the Work. 405 | This could, for example, be achieved by explicitly listing all the 406 | files of the Work near the copyright notice of each file or by 407 | using a line such as: 408 | 409 | % This work consists of all files listed in manifest.txt. 410 | 411 | in that place. In the absence of an unequivocal list it might be 412 | impossible for the licensee to determine what is considered by you 413 | to comprise the Work and, in such a case, the licensee would be 414 | entitled to make reasonable conjectures as to which files comprise 415 | the Work. 416 | 417 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | adv_files:=ltxdoc.cfg\ 3 | nddiss2e.bst \ 4 | nddiss2e.dtx \ 5 | nddiss2e.ins \ 6 | nddiss2enoarticletitles.bst \ 7 | nddiss2enosort.bst \ 8 | process.sh \ 9 | README.md 10 | 11 | std_files:=nddiss2e.bst \ 12 | nddiss2e.cls \ 13 | nddiss2e.pdf \ 14 | nddiss2enoarticletitles.bst \ 15 | nddiss2enosort.bst \ 16 | template.tex 17 | 18 | ctan_files:=nddiss2e.dtx \ 19 | nddiss2e.pdf \ 20 | README.md \ 21 | LICENSE \ 22 | ltxdoc.cfg \ 23 | nddiss2e.bst \ 24 | nddiss2e.ins \ 25 | process.sh 26 | 27 | 28 | .PHONY: all clean real-clean dist ctan 29 | .SUFFIXES: 30 | 31 | all: nddiss2e.cls nddiss2e.pdf 32 | dist: AdvDistribution.zip StandDistribution.zip ctan.zip 33 | ctan: ctan.zip 34 | 35 | clean: 36 | rm -rf $(addprefix nddiss2e.,aux glo gls idx ilg ind out toc) 37 | rm -rf AdvDistribution StandDistribution nddiss 38 | rm -rf AdvDistribution.zip StandDistribution.zip nddiss.zip 39 | rm -rf pdfa.xmpi 40 | rm -rf $(addprefix template.,aux lof log lot out pdf toc) 41 | 42 | real-clean: clean 43 | rm -rf $(addprefix nddiss2e.,cls dvi log pdf) 44 | rm -rf template.tex 45 | 46 | nddiss2e.pdf: nddiss2e.dtx 47 | pdflatex $< 48 | pdflatex $< 49 | makeindex -s gglo.ist -o nddiss2e.gls nddiss2e.glo 50 | pdflatex $< 51 | pdflatex $< 52 | 53 | nddiss2e.cls template.tex: nddiss2e.ins nddiss2e.dtx 54 | latex nddiss2e.ins 55 | 56 | AdvDistribution.zip: ${adv_files} 57 | mkdir -p AdvDistribution 58 | cp ${adv_files} AdvDistribution 59 | zip -r AdvDistribution.zip AdvDistribution 60 | 61 | StandDistribution.zip: ${std_files} 62 | mkdir -p StandDistribution 63 | cp ${std_files} StandDistribution 64 | zip -r StandDistribution.zip StandDistribution 65 | 66 | ctan.zip: ${ctan_files} 67 | mkdir -p nddiss 68 | cp ${ctan_files} nddiss 69 | zip -r nddiss.zip nddiss 70 | -------------------------------------------------------------------------------- /NOTES: -------------------------------------------------------------------------------- 1 | # BibTeX 2 | 3 | http://www.lsv.ens-cachan.fr/~markey/BibTeX/doc/ttb_en.pdf 4 | https://www.uic.edu/depts/accc/software/tex/btxhak.pdf 5 | 6 | # DTX files 7 | 8 | http://www.tex.ac.uk/FAQ-dtx.html 9 | 10 | License 11 | 12 | http://www.latex-project.org/lppl.txt 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nddiss 2 | ====== 3 | 4 | `nddiss` is a LaTeX package providing a document class for formatting doctoral 5 | dissertations submitted to the University of Notre Dame's Graduate School. 6 | 7 | Copies of this package can be found in many places: 8 | 9 | * GitHub: https://github.com/ndlib/nddiss 10 | * CTAN (slightly behind the github version): https://ctan.org/pkg/nddiss 11 | 12 | This package belongs to the Notre Dame community. 13 | Please feel free to send improvements, suggestions, or bug reports to 14 | 15 | * Shari Hill Sweet, shill2@nd.edu 16 | 17 | 18 | # Usage 19 | 20 | Look at the `example` directory to see a template of how to use the class. 21 | The [manual](nddiss2e.pdf) has more information and details. 22 | 23 | 24 | # Installation 25 | 26 | Download the files by choosing "Clone or download" and then choosing "Download ZIP". Copy the files `nddiss2e.cls` and `nddiss2e.bst` files into the same directory as your LaTeX source file. 27 | 28 | Beware! If seems `nddiss2e` is already installed on your machine, it is 29 | probably an outdated version from 2005. Please use the current version. 30 | 31 | 32 | # This Repository 33 | 34 | The `Makefile` contains all the logic to process the master source file, `nddiss2e.dtx`. 35 | The `nddiss2e.cls`, `nddiss2e.pdf`, and `template.tex` files are generated from the `dtx` file. 36 | Run `make` to regenerate everything. 37 | These derivatives are checked into the repo to make it easier for people to access and download them. 38 | 39 | The `example` directory provides a template showing how to use the package. 40 | The `handout` directory is a single-page getting started guide. 41 | 42 | 43 | # Other Resources 44 | 45 | The Notre Dame Graduate school has [formatting resources and the current standard](https://graduateschool.nd.edu/policies-forms/doctoral-dissertations-masters-theses/author-resources/). 46 | 47 | 48 | # Authors and History 49 | 50 | This class file was created by Sameer Vijay, following the Spring 2004 Graduate School formatting guidelines. 51 | Later Megan Patnott updated it to follow the Spring 2013 guidelines. 52 | Don Brower maintained it from 2014 to 2021. 53 | 54 | The class is based off of an older style file created by D. A. Peterson, Jeff Squyres, and others. 55 | The example files are from the `sample_ndthesis.tar.gz` by Jeff Squyres and D. A. Peterson, suitably modified for the nddiss2e class. 56 | 57 | 58 | # License 59 | 60 | This file may be distributed and/or modified under the conditions of the LaTeX 61 | Project Public License, either version 1.2 of this license or (at your option) 62 | any later version. The latest version of this license can be found at http://www.latex-project.org/lppl.txt. 63 | -------------------------------------------------------------------------------- /example/appendix.tex: -------------------------------------------------------------------------------- 1 | % 2 | % Modified by Sameer Vijay 3 | % Last Change: Wed Jul 27 2005 13:00 CEST 4 | % 5 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6 | % 7 | % Sample Notre Dame Thesis/Dissertation 8 | % Using Donald Peterson's ndthesis classfile 9 | % 10 | % Written by Jeff Squyres and Don Peterson 11 | % 12 | % Provided by the Information Technology Committee of 13 | % the Graduate Student Union 14 | % http://www.gsu.nd.edu/ 15 | % 16 | % Nothing in this document is serious except the format. :-) 17 | % 18 | % If you have any suggestions, comments, questions, please send e-mail 19 | % to: ndthesis@gsu.nd.edu 20 | % 21 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 22 | 23 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 24 | % 25 | % Appendix 26 | % 27 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 28 | 29 | \chapter{GNU GENERALISMS} 30 | 31 | \section{Definitions} 32 | 33 | Several definitions are presented in Table~\ref{tbl:defs} to show both 34 | how to do rotated, line-spanning tables, as well as to define some 35 | commonly used Gnu terms. 36 | 37 | \begin{landscape} 38 | \begin{table} 39 | \centering 40 | \caption{Commonly used \NoCaseChange{Gnu} Terms \label{tbl:defs}} 41 | \begin{tabular}{lp{5in}} 42 | \toprule 43 | Term & \multicolumn{1}{c}{Definition} \\ 44 | \midrule 45 | Gnu & Small furry animal that is related to the squirrel 46 | (although they won't admit it). \\ 47 | LoG & Abbreviation for the ``Leader of Gnus''. See 48 | Chapter~\ref{chap:golfing}. \\ 49 | Twizzlers & Red, twisty candy that is among the most favorite of Gnu 50 | foods. Gnus frequently appear overly cute and friendly to humans 51 | bearing twizzler packages. This is known as ``trolling for twizzlers'' 52 | among the Gnus. \\ 53 | \bottomrule 54 | \end{tabular} 55 | \end{table} 56 | \end{landscape} 57 | 58 | Finally, Table~\ref{tbl:rotated-rankings} shows the top ten Gnus from 59 | Table~\ref{tbl:votes} ranked in order by their aggregate score (along 60 | with some of the raters' comments). This follows a long-standing Gnu 61 | tradition of self-improvement through public announcement of score 62 | (which some associate with military 63 | origins~\citep{galmira98:_gnus_milit}). Indeed, this very table has 64 | been observed in the Gnu lodge where it was posted for peer review 65 | \citep{gairley2000}. 66 | 67 | 68 | \begin{landscape} 69 | % set the caption width to be somewhat short since our table is narrow 70 | % Notice the special commands that we use here to get the right line in the 71 | % table. Using \hrule is *not* the Right Thing to do here -- use 72 | % \cmidrule. We use the LaTeX \newcommand simply for convenience. 73 | % 74 | % The longtable package does some nasty voodoo to make \hline work OK. 75 | % So on with the goods 76 | \setlength\LTcapwidth{4.5in} 77 | \begin{longtable}{lcp{4.5in}} 78 | % Note that after the caption line we remove 2em worth of space but in the 79 | % longtable of Chapter 2 we only remove 1em. This is because a normal 80 | % \toprule has no space above it, but here we are using cmidrule which does 81 | % have padding above which we must account for. 82 | \caption{Top Ten \NoCaseChange{Gnus} From 83 | Table~\NoCaseChange{\ref{tbl:votes}} With Reviewer Comments. 84 | \NoCaseChange{Gnus} are Listed Below in Alphabetic Order. 85 | \label{tbl:rotated-rankings} }\\ 86 | \toprule 87 | Candidate & Aggregate score & \multicolumn{1}{c}{Reviewer Comments}\\ 88 | \midrule 89 | \endfirsthead 90 | \caption[]{{\em Continued}} \\ % Just like in Chp. 2 91 | \midrule 92 | Candidate & Aggregate score & \multicolumn{1}{c}{Reviewer Comments}\\ 93 | \midrule 94 | \endhead 95 | \endfoot 96 | \bottomrule 97 | \endlastfoot 98 | George & 7.6 & George is an excellent candidate for the LoG. 99 | Slightly low C, but hopefully, this 7.6 will be high enough! \\ 100 | Glen & 7.2 & A little weak on AM and Fr, but good scores overall. One 101 | or two more years of experience should be enough. \\ 102 | Goldie & 7.0 & Dismal score in Fr; suspect it had something to do with 103 | strenuous weight loss program this past year. \\ 104 | Gillian & 6.9 & Excellent C, but a little shabby on the Fu. Suggest 105 | more roughage. \\ 106 | Gibby & 6.9 & Reasonable scores, but need to work on Fr. Gibby is 107 | definitely not a morning Gnu. \\ 108 | Genaveve & 6.5 & Very low Fr; perhaps more coffee? Suggest practicing 109 | ``cute faces'' in the mirror several hours per day. \\ 110 | Giovani & 6.2 & Very low Fr; suspect hanging out with Genaveve too 111 | much. \\ 112 | Gina & 6.2 & Mediochre Fu, somewhat low AM. Perhaps a future in 113 | marketing or advertising? \\ 114 | Garrick & 6.2 & Fairly low AM. Fu could be better as well; buy a 115 | comb. And a mirror. Immediately. \\ 116 | Gardenia & 6.0 & Dismal AM; very low Fu. Seems to care more about 117 | meeting agendas than personal appearance. \\ 118 | \end{longtable} 119 | \end{landscape} 120 | 121 | 122 | % % uncomment the following lines, 123 | % if using chapter-wise bibliography 124 | % 125 | % \bibliographystyle{ndnatbib} 126 | % \bibliography{example} 127 | -------------------------------------------------------------------------------- /example/chapter1.tex: -------------------------------------------------------------------------------- 1 | % 2 | % Modified by Megan Patnott 3 | % Last Change: Jan 18, 2013 4 | % 5 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6 | % 7 | % Modified by Sameer Vijay 8 | % Last Change: Tue Jul 26 2005 13:00 CEST 9 | % 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | % 12 | % Sample Notre Dame Thesis/Dissertation 13 | % Using Donald Peterson's ndthesis classfile 14 | % 15 | % Written by Jeff Squyres and Don Peterson 16 | % 17 | % Provided by the Information Technology Committee of 18 | % the Graduate Student Union 19 | % http://www.gsu.nd.edu/ 20 | % 21 | % Nothing in this document is serious except the format. :-) 22 | % 23 | % If you have any suggestions, comments, questions, please send e-mail 24 | % to: ndthesis@gsu.nd.edu 25 | % 26 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 27 | 28 | 29 | % 30 | % Chapter 1 31 | % 32 | 33 | \chapter{Introduction} 34 | 35 | \section{Overview} 36 | 37 | This is an overview of the introduction. In here, I will use many 38 | many buzzwords and other legalistic-types of terms, mostly beginning on 39 | the expounding of the holistic and synergistic energy that Gnus bring 40 | to our organizations. 41 | 42 | \subsection{Background} 43 | 44 | In preparation for reading this dissertation, I would highly recommend 45 | reading some of the other material available on 46 | Gnus~\citep{gnus98:_gerry_ganst,greenfield96:_gettin_know_gnu}. They 47 | are very well written and will give you a fuller understanding of 48 | Gnus. 49 | 50 | Gnus are frequently mistakes for squirrels. They are not squirrels. 51 | They are Gnus. Don't call them squirrels, either (unless you have 52 | food in your hand); they tend to get a bit upset.\footnote{This is 53 | frequently mistaken for the chattering and scampering away. Gnus 54 | are actually quite polite; they will leave if they have nothing nice 55 | to say, for fear of saying something offensive.} If you have food 56 | in your hand, they tend to ignore this insult and accept your food as 57 | a peace offering.\footnote{Sometimes they'll follow you if you continue 58 | to refuse to feed them.} 59 | 60 | \subsection{Foreground} 61 | 62 | Table~\ref{tbl:bogus1} shows some feeding frequencies for where Gnus 63 | like to eat around the Notre Dame campus. Gnus have work weeks, just 64 | like humans do, hence the much lower frequencies on weekends. This 65 | can lead us to conclude that Gnu weekend shifts are much smaller than 66 | the normal work-week shifts. In fact, we can attempt to parametrize the 67 | sighting frequency, $\mathcal{F}$, by the student population, type of food, and 68 | day of the week as: 69 | \begin{equation} 70 | \mathcal{F} = \mathcal{F}(p,f,d). 71 | \end{equation} 72 | Table~\ref{tbl:bogus2} shows what they 73 | typically like to eat. 74 | 75 | \begin{table}[tpb] 76 | \begin{center} 77 | \caption{Where \NoCaseChange{Gnus} Like to eat \label{tbl:bogus1}} 78 | \begin{tabularx}{0.85\textwidth}{lrrrrrrr} \toprule 79 | \multicolumn{1}{c}{Location} & Sun & Mon & Tue & Wed & Thu & Fri & Sat \\ \midrule 80 | Front of Dome & 1 & 5 & 6 & 5 & 4 & 5 & 1 \\ 81 | Stonehenge & 2 & 9 & 10 & 12 & 9 & 14 & 2 \\ 82 | The Rock & 1 & 3 & 4 & 3 & 4 & 3 & 0 \\ 83 | The ACC & 3 & 4 & 5 & 5 & 5 & 4 & 1 \\ 84 | Dining Halls & 5 & 14 & 12 & 13 & 14 & 12 & 3 \\ 85 | Hesburgh Library & 2 & 3 & 5 & 2 & 3 & 4 & 2 \\ \bottomrule 86 | \end{tabularx} 87 | \end{center} 88 | \end{table} 89 | 90 | \begin{table}[tpb] 91 | \setlength{\capwidth}{0.7\textwidth} 92 | \begin{center} 93 | \caption{What \NoCaseChange{Gnus} like to eat on the Notre Dame Campus, Listed 94 | by Average Number of Sightings per Weekday 95 | \label{tbl:bogus2} 96 | } 97 | \begin{tabular}{lrrrrrrr} \toprule 98 | \multicolumn{1}{c}{Food} & Sun & Mon & Tue & Wed & Thu & Fri & Sat \\ \midrule 99 | Twinkies & 1 & 5 & 6 & 5 & 4 & 5 & 1 \\ 100 | Ding Dongs & 2 & 9 & 10 & 12 & 9 & 14 & 2 \\ 101 | Carrots & 1 & 3 & 4 & 3 & 4 & 3 & 0 \\ 102 | Lettuce & 3 & 4 & 5 & 5 & 5 & 4 & 1 \\ 103 | Twizlers & 5 & 14 & 12 & 13 & 14 & 12 & 3 \\ 104 | Jawbreakers & 2 & 3 & 5 & 2 & 3 & 4 & 2 \\ \bottomrule 105 | \end{tabular} 106 | \end{center} 107 | \end{table} 108 | 109 | Figure~\ref{fig:bogus3} shows a nice graph of location distributions 110 | by day of week. I have no real reason for including it except to show 111 | that figures work as well. Did I mention that Gnus are really cool? 112 | 113 | \begin{figure}[tpb] 114 | \begin{center} 115 | \centerline{\includegraphics[scale=0.8]{sample_nd}} 116 | \caption{Location distributions by day of where, where the X axis 117 | is the weekday (0 through 6), and the Y axis is the sighting 118 | frequency} 119 | \label{fig:bogus3} 120 | \end{center} 121 | \end{figure} 122 | 123 | Gnus typically tend to come out when there are large gatherings of 124 | humans with food. Gnus work very hard at providing us with all the 125 | things that we like (trees, dirt, air, etc.), and so we should freely 126 | give them food. They will come up and stand a respectful distance 127 | away from you, waiting to see if they will be rewarded for their 128 | efforts. If you offer some food, they will take it and back off a 129 | respectful distance in order to consume their food while leaving you 130 | to your ``personal space.'' 131 | 132 | \section{Groovin' Gnus} 133 | \label{sec:groovin-gnus} 134 | 135 | Gnus do tend to stay away from humans in their normal day-to-day 136 | workings. This is mainly because humans don't, for the most part, 137 | understand what they are doing. If a Gnu is working, and a human 138 | approaches it, the Gnu will tend to drop whatever it is doing and run 139 | away. This is probably do to the tendency for humans to have ``group 140 | meetings'' and ``productivity seminars.'' Most Gnus are deathly 141 | afraid of such overmanagement, and run at the slightest hint of it, 142 | for fear that it will cripple their real work. 143 | 144 | It is interesting, however, that Gnus have chosen an Institution of 145 | Higher Education for their BOO.\footnote{Base of Operations.} It is 146 | often said that: 147 | \begin{quote} 148 | Academic politics are the dirtiest, meanest, ugliest, and generally 149 | the most low-down, in-your-face, and kick-em-while-they're-down than 150 | anywhere else (even Washington D.C.) because the stakes are so low. 151 | \end{quote} 152 | It has been hypothesized that the Gnus are subtly trying to affect a 153 | change for the better (i.e., eliminating the overmanagement problems) 154 | by working the very system that they are trying to change, from 155 | within. That is, the graduates from Notre Dame can learn from the 156 | examples of the Gnus here, and run screaming (or chattering) at the 157 | slightest hint of overmanagement, and let the real work proceed 158 | unhindered. 159 | 160 | % % uncomment the following lines, 161 | % if using chapter-wise bibliography 162 | % 163 | % \bibliographystyle{ndnatbib} 164 | % \bibliography{example} 165 | -------------------------------------------------------------------------------- /example/chapter2.tex: -------------------------------------------------------------------------------- 1 | % 2 | % Modified by Megan Patnott 3 | % Last Change: Jan 18, 2013 4 | % 5 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6 | % 7 | % Modified by Sameer Vijay 8 | % Last Change: Wed Jul 27 2005 13:00 CEST 9 | % 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | % 12 | % Sample Notre Dame Thesis/Dissertation 13 | % Using Donald Peterson's ndthesis classfile 14 | % 15 | % Written by Jeff Squyres and Don Peterson 16 | % 17 | % Provided by the Information Technology Committee of 18 | % the Graduate Student Union 19 | % http://www.gsu.nd.edu/ 20 | % 21 | % Nothing in this document is serious except the format. :-) 22 | % 23 | % If you have any suggestions, comments, questions, please send e-mail 24 | % to: ndthesis@gsu.nd.edu 25 | % 26 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 27 | 28 | % 29 | % Chapter 2 30 | % 31 | 32 | \chapter{Gnu Things are Good Things for all Graduate Students or so it Seems} 33 | \label{chap:golfing} 34 | 35 | \section{Gnu See, Gnu Do, Gnu Goes Golfing with Green Golf Genes and 36 | Gesticulates Grapes} 37 | 38 | So why do gnus do what they do? This is a perennial question that has 39 | yet to be answered definitively by scientists. Is their future 40 | somehow tied inexplicably with that of humans? Hard to say, but we do 41 | feed them a lot. It has even been theorized that rotundness is a 42 | symbol of status or class within the Gnus; those who are more 43 | productive (i.e., cute, furry, friendly) will be fed more than those 44 | who are less so. So the more rotund, the higher status one has in the 45 | Gnu society. 46 | 47 | One could extrapolate this to mean that there is a super-Gnu out there 48 | somewhere; the biggest, rotundest Gnu that you've ever seen, probably 49 | of epic proportions! This would have to be the Leader of Gnus, or LoG 50 | for short. But the LoG would definitely have to be the cutest, 51 | furriest, and most friendly Gnu that you've ever seen. 52 | 53 | \subsection{The LoG} 54 | 55 | So how does the LoG get chosen? Ultimately by humans. So we can say 56 | that the Gnu society is perhaps the truest democracy that has ever 57 | existed; the leader is chosen by merit, and chosen by complete 58 | outsiders. As such, the LoG must truly epitomize all that Gnus stand 59 | for: opposedness to overmanagement, cuteness, friendliness, and 60 | furriness~\citep{gloonson98:_gnuly_discov_gnus}. The gnus themselves 61 | vote at an anual election, based upon these attributes (campagaining 62 | is an anethema to Gnus; see Section~\ref{sec:groovin-gnus}). 63 | 64 | \subsubsection{Election Data} 65 | \label{sec:data} 66 | 67 | Table~\ref{tbl:votes} shows the latest electoral college voting by the 68 | LoG for the year 2000. Each Gnu is scored on a scale of one to ten on 69 | the attributes described above. The results shown in the table are 70 | average scores in each category for all votes; the Gnu's final score 71 | is shown in the final column. 72 | 73 | % 74 | % Be aware that page-spanning tables a Very Odd Creatures. The 75 | % "longtable" environment in LaTeX does some deep Voodoo to make 76 | % everything work out properly. One of its deep incantations is to 77 | % make the table appear as though it is double spaced. You can fix 78 | % this by trailing each line with "\\[-6em]" instead of just "\\". 79 | % When using longtable it is also important to compile your file 80 | % more than once. But you're probably already doing this to get 81 | % the internal references correct, anyway. 82 | % 83 | 84 | \begin{center} 85 | \begin{longtable}{lccccc} 86 | \caption{Electoral College Results for the \NoCaseChange{LoG} Election in the Year 87 | 2000\label{tbl:votes}\/}\\ 88 | \toprule 89 | Candidate\footnote{note all names begin with G} & Anti-management & Cuteness & Friendliness & Furriness & Aggregate \\ 90 | \midrule 91 | \endfirsthead % Everything above goes at the top of the 1st page only 92 | % As with the first header, we don't want obscene amounts of space for 93 | % subsequent headings either, and eliminate an em of whitespace. 94 | \caption[]{{\em Continued}}\\ 95 | \midrule 96 | Candidate & Anti-management & Cuteness & Friendliness & Furriness & Aggregate \\ 97 | \midrule 98 | \endhead % Everything above here (and below the \endfirsthead) goes at the top 99 | % of continuation pages. The [] argument prevents a duplicate 100 | % entry from appearing in the table of contents. 101 | % The following 3 lines are provided as an example only -- per ND 102 | % guidelines, the footer at the bottom of a page for a longtable 103 | % should not have a bottom line. Only the absolute bottom of the 104 | % table should have a final \bottomline 105 | 106 | % \midline 107 | % \multicolumn{6}{|r|}{\textit{continued}\ldots} \\ 108 | % \bottomrule 109 | \endfoot % The above section goes at the bottom of continuation pages 110 | \bottomrule 111 | \endlastfoot % The very last bottom of the table 112 | Glen & 6.2 & 7.0 & 6.1 & 9.8 & 7.2 \\ 113 | Goober & 6.9 & 2.1 & 5.7 & 4.1 & 4.6 \\ 114 | Genevra & 2.2 & 2.0 & 1.1 & 1.1 & 1.6 \\ 115 | Greg & 8.3 & 0.4 & 1.1 & 9.5 & 4.8 \\ 116 | Gina & 6.0 & 7.8 & 6.4 & 4.9 & 6.2 \\ 117 | Geof & 1.1 & 8.7 & 3.7 & 7.3 & 5.2 \\ 118 | Grendel & 2.8 & 1.7 & 3.4 & 3.2 & 2.7 \\ 119 | Geronimo & 1.2 & 1.2 & 8.8 & 2.2 & 3.3 \\ 120 | Gabrielle & 4.7 & 3.6 & 0.8 & 2.0 & 2.7 \\ 121 | Giovani & 8.4 & 5.8 & 3.4 & 7.4 & 6.2 \\ 122 | Graham & 4.7 & 5.8 & 5.3 & 0 & 3.9 \\ 123 | Gil & 5.9 & 4.0 & 5.5 & 7.6 & 5.7 \\ 124 | Gerald & 2.0 & 3.7 & 8.0 & 4.3 & 4.5 \\ 125 | Guilani & 7.7 & 3.9 & 2.7 & 6.4 & 5.1 \\ 126 | Guido & 7.6 & 4.3 & 6.5 & 1.0 & 4.8 \\ 127 | Godzilla & 5.1 & 2.2 & 5.3 & 6.9 & 4.8 \\ 128 | Gail & 5.7 & 7.9 & 4.1 & 1.0 & 4.6 \\ 129 | Garth & 4.7 & 7.1 & 2.5 & 3.0 & 4.3 \\ 130 | Gavin & 1.1 & 9.5 & 0.4 & 8.0 & 4.7 \\ 131 | George & 9.5 & 4.5 & 9.1 & 7.5 & 7.6 \\ 132 | Gunnar & 1.4 & 5.8 & 4.8 & 6.2 & 4.5 \\ 133 | Gillian & 7.6 & 9.0 & 6.4 & 4.6 & 6.9 \\ 134 | Greta & 1.5 & 0.5 & 0.9 & 7.7 & 2.6 \\ 135 | Gabby & 1.2 & 3.3 & 7.0 & 2.1 & 3.4 \\ 136 | Gaetena & 6.8 & 1.9 & 4.1 & 8.3 & 5.2 \\ 137 | Ganet & 2.3 & 1.1 & 8.5 & 7.3 & 4.8 \\ 138 | Gardenia & 1.8 & 9.5 & 9.9 & 3.0 & 6.0 \\ 139 | Genna & 5.2 & 3.7 & 3.4 & 3.8 & 4.0 \\ 140 | Genesis & 1.7 & 8.3 & 6.7 & 4.9 & 5.4 \\ 141 | Genaveve & 4.7 & 8.9 & 3.4 & 9.2 & 6.5 \\ 142 | Gene & 3.3 & 6.9 & 0.6 & 5.5 & 4.0 \\ 143 | Gilda & 5.2 & 4.6 & 9.9 & 1.4 & 5.2 \\ 144 | Goldie & 8.9 & 9.1 & 2.0 & 8.2 & 7.0 \\ 145 | Grace & 5.9 & 3.2 & 3.1 & 4.3 & 4.1 \\ 146 | Gretchen & 4.5 & 6.5 & 1.6 & 1.3 & 3.4 \\ 147 | Garrick & 4.8 & 5.7 & 9.4 & 5.1 & 6.2 \\ 148 | Gallagher & 7.4 & 0.4 & 7.6 & 0.4 & 3.9 \\ 149 | Gerry & 1.4 & 8.8 & 4.7 & 0.5 & 3.8 \\ 150 | Gertrude & 9.1 & 8.3 & 0.4 & 5.5 & 5.8 \\ 151 | Gehosephet & 6.6 & 2.9 & 8.3 & 4.4 & 5.5 \\ 152 | Gohn & 8.7 & 2.6 & 7.4 & 2.3 & 5.2 \\ 153 | Gibby & 8.7 & 6.9 & 4.7 & 7.2 & 6.9 \\ 154 | \end{longtable} 155 | \end{center} 156 | 157 | As you can see from Table~\ref{tbl:votes}, George (my favorite Gnu) 158 | won for the year 2000, with an aggregate score of 7.6. 159 | 160 | % % uncomment the following lines, 161 | % if using chapter-wise bibliography 162 | % 163 | % \bibliographystyle{ndnatbib} 164 | % \bibliography{example} 165 | -------------------------------------------------------------------------------- /example/example.bib: -------------------------------------------------------------------------------- 1 | % 2 | % Modified by Sameer Vijay 3 | % Last Change: Wed Jul 27 2005 13:00 CEST 4 | % 5 | 6 | @Book{gnus98:_gerry_ganst, 7 | title = "Gnus and You: The Art of Being New", 8 | author = "Gerry Ganston and Gary Greenfield", 9 | publisher = "Grapping Books, NY", 10 | year = "1998", 11 | volume = "I", 12 | month = "August", 13 | } 14 | 15 | @PhdThesis{greenfield96:_gettin_know_gnu, 16 | author = "Gary Greenfield", 17 | title = "Getting to Know Gnu", 18 | school = "Geoffrey Garfield School of Gnus", 19 | year = "1996", 20 | month = "August" 21 | } 22 | 23 | @Article{gloonson98:_gnuly_discov_gnus, 24 | author = "Gina Gloonston", 25 | title = "Newly Discovered Gnus: The {L}o{G}", 26 | journal = "Growing Towards Gnu", 27 | year = "1998", 28 | volume = "II", 29 | number = "12", 30 | month = "March", 31 | pages = "23-57" 32 | } 33 | 34 | 35 | @Article{galmira98:_gnus_milit, 36 | author = "Gohnny Galmira", 37 | title = "Gnus and the Military -- A Secret Conspiracy?", 38 | journal = "Growing Towards Gnu", 39 | year = "1998", 40 | volume = "III", 41 | number = "7", 42 | pages = "22-183", 43 | month = "September" 44 | } 45 | 46 | @Misc{gairley2000, 47 | author = "Grog van Gairley", 48 | title = "Gnu's Review", 49 | howpublished = "Website", 50 | note = "\url{http://www.gairley.gnu}", 51 | year = "2000", 52 | } 53 | 54 | -------------------------------------------------------------------------------- /example/example.tex: -------------------------------------------------------------------------------- 1 | % 2 | % Modified by Megan Patnott 3 | % Last Change: Jan 18, 2013 4 | % 5 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 6 | % 7 | % Modified version of the sample_ndthesis.tex 8 | % by Sameer Vijay 9 | % Last Change: Wed Jul 27 2005 14:00 CEST 10 | % 11 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 12 | % 13 | % Sample Notre Dame Thesis/Dissertation 14 | % Using Donald Peterson's ndthesis classfile 15 | % 16 | % Written by Jeff Squyres and Don Peterson 17 | % 18 | % Provided by the Information Technology Committee of 19 | % the Graduate Student Union 20 | % http://www.gsu.nd.edu/ 21 | % 22 | % Nothing in this document is serious except the format. :-) 23 | % 24 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 25 | % This is *not* a substitute for the documentation, which is included 26 | % as a pdf file in the standard distribution, and can be obatined from 27 | % the dtx file in the advanced distribution. 28 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29 | % 30 | % You should *also* have a ND formatting guide to ensure that you have 31 | % all the relevant parts, put the captions in the right place, etc. 32 | % Just because you have this wonderful style classfile doesn't mean 33 | % that it removes *all* the formatting onus from you. :-) 34 | % Although be warned that the Graduate School has been known to let 35 | % their official formatting guide get out of date. When in doubt, 36 | % the Microsoft Word example seemed to be the only thing kept 37 | % consistently up-to-date in 2013, and is probably the safest thing 38 | % to consult. 39 | % 40 | % You should break all of this stuff up into separate files 41 | % (at the very least, one chapter per file) and use the \include 42 | % command, as has been done here for chapters 1 and 2 and the appendix. 43 | % There is also an \input command, but \include is more commonly used to 44 | % import chapters in books and dissertations. For the differences between these 45 | % two commands, see, e.g., 46 | % http://web.science.mq.edu.au/~rdale/resources/writingnotes/latexstruct.html 47 | % or http://tex.stackexchange.com/questions/246/when-should-i-use-input-vs-include. 48 | % 49 | % If you compile from the command line, note that you should also have 50 | % a good Makefile; one that invokes LaTeX as many times as necessary 51 | % (up to 4) and bibtex if necessary. 52 | % 53 | % If you use an editor that allows you to compile from within the 54 | % program, note that you will need to compile up to four times. Also, 55 | % we recommend that you use pdflatex (sometimes displayed as 56 | % LaTeX => PDF) to compile directly to pdf. 57 | % 58 | % If you have any suggestions, comments, questions, please send e-mail 59 | % to: dteditor@nd.edu 60 | % 61 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 62 | 63 | \documentclass[final,numrefs,sort&compress,twoadvisors]{nddiss2e} 64 | % One of the options draft, review, final must be chosen. 65 | % One of the options textrefs or numrefs should be chosen 66 | % to specify if you want numerical or ``author-date'' 67 | % style citations. 68 | % Other available options are: 69 | % 10pt/11pt/12pt (available with draft only) 70 | % twoadvisors 71 | % noinfo (should be used when you compile the final time 72 | % for formal submission) 73 | % sort (sorts multiple citations in the order that they're 74 | % listed in the bibliography) 75 | % compress (compresses numerical citations, e.g. [1,2,3] 76 | % becomes [1-3]; has no effect when used with 77 | % the textrefs option) 78 | % sort&compress (sorts and compresses numerical citations; 79 | % is identical to sort when used with textrefs) 80 | 81 | \begin{document} 82 | 83 | \frontmatter % All the items before the first chapter go in ``frontmatter'' 84 | 85 | % Titles may be 1-4 lines long. If your title is longer than 4 lines, 86 | % the class file may have difficulty formatting the title page. 87 | % Line-breaks in the title have to be protected with `\protect`. 88 | \title{Gnus and you \protect\\ a Brief \protect\\ on all and 89 | Everything \protect\\ About Gnus in our Society} 90 | \author{Gerald G. Gnastich} 91 | \work{Dissertation} % or \work{Thesis} 92 | %\degaward{Doctor of Philosophy} % or 93 | \degaward{Master of Science \\ in \\ Subject} 94 | \advisor{Gary Greenfield} 95 | \secondadvisor{Gordon Gray} % if you have two advisers are using the option twoadvisors 96 | \department{Gnulogy} 97 | 98 | \maketitle 99 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 100 | % 101 | % Front stuff 102 | % 103 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 | 105 | % You must either set the copyright information or put your work in the public domain. 106 | \copyrightholder{Garry Greene} % See template or documentation for 107 | \copyrightyear{2005} % other copyright options. 108 | \copyrightlicense{CC-BY-4.0} 109 | \makecopyright 110 | 111 | % An abstract is optional for a mster's thesis, and required for a doctoral dissertation. 112 | \begin{abstract} 113 | Please note that the full \LaTeX\ source code (and an associated 114 | \texttt{Makefile}) is available from the University of Notre Dame 115 | Graduate Student Union web site. The Information Technology 116 | Committee page\footnote{\url{http://www.gsu.nd.edu/}} 117 | has all the necessary files in download-able form. This particular 118 | dissertation was developed under Unix, but is also be usable 119 | under Windows with the appropriate \LaTeX\ setup and was modified 120 | on a Windows system in 2012-2013. It should also work with on Mac. 121 | 122 | While the source code for this document provides an excellent 123 | example for how to use the \nddiss\ \LaTeX\ class to write a 124 | Notre Dame thesis, it is \emph{not} a substitution for the 125 | documentation of the \nddiss\ \LaTeX\ class (also available on 126 | the ND GSU web site). 127 | 128 | In this thesis, I will tell all that I know about Gnus. Gnus are 129 | wonderful little creatures that inhabit the center of the earth and 130 | give us wonderful and plentiful trees, dirt, and other 131 | earthly-things. 132 | 133 | In short, we should love and cherish the Gnus. They can be very 134 | friendly, and are often mistaken for squirrels on the University of 135 | Notre Dame campus. Feed them whenever possible. If they get caught 136 | in trash cans, tip them over so that they can get out. 137 | 138 | This abstract is going to continue on, including a few formulas, 139 | just for the sake of spilling over on to two pages so that we can 140 | see the author's name in the top right corner: 141 | 142 | \begin{align*} 143 | a^2 + b^2 &= c^2 \\ 144 | E &= mc^2 \\ 145 | \frac{e}{m} &= c^2 \\ 146 | a^2 + b^2 &=\frac{e}{m} 147 | \end{align*} 148 | 149 | These equations, by themselves mean nothing. But to the common Gnu, 150 | they define a whole way of living. While intricate mathematical 151 | implications certainly do not infiltrate the majority of humans' 152 | lives, every Gnu, from birth, is imbued with a sense of mathematical 153 | certainty and guidance. All Gnus, great and small, feel at one with 154 | mathematics. The cute furry bit is just a scam for their 155 | calculating minds. 156 | \end{abstract} 157 | 158 | % A dedication is optional. 159 | \renewcommand{\dedicationname}{NEW DEDICATION NAME} 160 | 161 | \begin{dedication} 162 | To George, my favorite Gnu 163 | \end{dedication} 164 | 165 | % These are required, and must be in this order. 166 | \tableofcontents 167 | \listoffigures 168 | \listoftables 169 | 170 | % A preface is optional. 171 | \begin{preface} 172 | I would like to preface this work with all the wonderful things that 173 | Gnus have brought to our society: trees, dirt, flowers, grass, 174 | lakes, and other earthly-things. We should not forget them in our 175 | daily lives. 176 | 177 | Additionally, we should offer them food for all their hard work. In 178 | fact, Gnus work so hard that they sleep for the colder half of 179 | the year. As such, they tend to grow a little rotund. Humans 180 | should not fault them for this, as it is necessary for their 181 | survival. Indeed, many humans grow rotund on their on accord! 182 | \end{preface} 183 | 184 | % It's hard to tell from the information available from the Graduate 185 | % School in Spring 2013 whether or not an acknowledgements section is optional. 186 | \begin{acknowledge} 187 | I would like to acknowledge all the loving Gnus at Notre Dame. 188 | Particularly the one that comes to the window in the Hayes Healy 189 | building. He (she?) has given me much inspiration, love, and dirt. 190 | I would also like to thank my advisor, Dr.\ Gary Greenfield, with 191 | whom this work would not have been possible. 192 | 193 | Finally, I would like to thank the U.S.\ Government, Department of 194 | Gnus, for their generous grant, number GNU3042920920.3, which 195 | allowed me to pursue my work. 196 | \end{acknowledge} 197 | 198 | % A symbols section is optional. 199 | \begin{symbols} 200 | \sym{\mathcal{F}}{sighting frequency of Gnus about campus} 201 | \sym{p}{student population} 202 | \sym{f}{type of food available} 203 | \sym{d}{day of week} 204 | \sym{c}{speed of light} 205 | \sym{m}{mass} 206 | \sym{e}{elementary charge} 207 | \sym{a,b}{miscellaneous constants} 208 | \sym{E}{energy} 209 | \end{symbols} 210 | 211 | \mainmatter 212 | % Place the text body here. 213 | %\include{chapter-one} 214 | %Begin each chapter with \chapter{Title}. Both the thesis title and 215 | %chapter titles should match in style. 216 | 217 | % 218 | % An unnumbered chapter (features) 219 | % 220 | \unnumchapter{Features of Formatting in This Example File} 221 | % The \unnumchapter command allows you to include an unnumbered chapter as part of 222 | % the main text before Chapter 1. It will appear in your table of contents, and you 223 | % should have at most one such chapter (although nothing in the class file will 224 | % prevent you from creating more). 225 | 226 | % The usual \cite{} command is also available, and should work as expected. 227 | This \verb+chapter+ has been added to the original sample file to highlight the 228 | various features with the formatting that conforms to the Graduate school 229 | guidelines --- whether obtained due to the use of \nddiss\/ class file or just 230 | plain good practice. 231 | \begin{itemize} 232 | \item An important note on line-breaks via \verb+\\+ in titles: the 233 | titles of the thesis as well as chapters and table captions use 234 | \verb+\MakeTextUppercase{}+ from the \verb+textcase+ package. Due 235 | to the nature of the \verb+center+ environment, any line-breaks 236 | introduced in titles and captions should be protected, as in 237 | \verb+\protect\\+. 238 | To preserve the case in titles and captions, use, e.g., 239 | \verb+\NoCaseChange{Gnus}+. 240 | \item In the \emph{dedication}, the title name has been modified. So, you know 241 | how to and that it can be done. 242 | \item The entries in the \emph{List of figures} and \emph{List of Tables} are 243 | single-spaced themselves but are double-spaced from the other. 244 | \item The table captions are not in all CAPS as well for the reason mentioned 245 | above. 246 | \item Appropriate space is left between the \verb+Table xx+ and its 247 | corresponding caption (which is double-spaced itself) as in table \ref{tbl:bogus1}. 248 | \item Tables look much better without the vertical lines (good practice). 249 | \item There is double-spacing between the table entries but single-spacing 250 | within the entry. 251 | \item The chapter (see Chapter \ref{chap:golfing}) or section titles are 252 | double-spaced as mentioned in the guidelines. 253 | \item There is a \verb+subsubsection+ present (eg. section \ref{sec:data}) and 254 | is properly formatted in the TOC. 255 | \item Sections deeper than \verb+subsubsection+ should not appear in the TOC. 256 | \item Table \ref{tbl:defs} is an example of the use of \textsf{landscape} 257 | environment in which a normal table is formatted in a \emph{landscape} mode. 258 | \item The \textsf{longtable} environment is used in Tables \ref{tbl:votes} and 259 | \ref{tbl:rotated-rankings}, in normal and \verb+landscape+ mode, respectively. The 260 | table captions are formatted properly in both cases. 261 | \item In the table \ref{tbl:votes}, the \verb+footnote+ in the table header 262 | does not appear at all. This is not an error of the \nddiss\/ class but of the 263 | \textsf{longtable} package. 264 | \item An example of citing a website is shown in the bibliography (see 265 | \citep{gairley2000}) which is formatted using the \verb+nddiss2e.bst+ 266 | citation style file. 267 | \item A bit of information on the \nddiss\/ class file and the typesetting program 268 | used is included in a box on the last page of the thesis. 269 | \item Footnotes should space properly. 270 | \item Items in \verb+itemize+, \verb+enumerate+, and \verb+description+ environment 271 | should automatically single-space within an item, but double space between items. 272 | \end{itemize} 273 | 274 | % 275 | % Chapter 1 276 | % 277 | 278 | \include{chapter1} 279 | 280 | 281 | % 282 | % Chapter 2 283 | % 284 | 285 | \include{chapter2} 286 | 287 | 288 | % 289 | % Appendix (optional) 290 | % 291 | 292 | \appendix 293 | 294 | \include{appendix} 295 | 296 | 297 | % 298 | % Back stuff 299 | % 300 | 301 | % % comment out the following three lines 302 | % if using chapter-wise bibliography 303 | 304 | \backmatter 305 | \bibliographystyle{abbrvnat} % The standard abbrvnat style should be acceptable. Also provided with both the advanced and standard 306 | \bibliography{example} % distributions are nddiss2e, nddiss2enoarticletitles, and nddiss2enosort style options. 307 | % If you prefer to manually enter your bibliography, that is fine. Comment out the previous two lines, and enter your bibliography 308 | % as usual. Note that if you choose this route, formatting the bibliography is your responsibility. An example is below, including the 309 | % optional arguments necessary for author-date style citations. 310 | % \begin{thebibliography}{9} 311 | % \bibitem[Galmira(1998)]{galmira98:_gnus_milit} G.\ Galmira. Gnus and the military -- a secret conspiracy? \emph{Growing Towards Gnu}, III(7):22--183, September 1998. 312 | % 313 | % \bibitem[Ganston and Greenfield(1998)]{gnus98:_gerry_ganst} G.\ Ganston and G.\ Greenfield. \emph{Gnus and You: The Art of Being New}. volume I. Grapping Books, NY, August, 1998. 314 | % 315 | % \bibitem[Gloonston(1998)]{gloonston98:_gnuly_discov_gnus} G.\ Gloonston. Newly discovered gnus: The LoG. \emph{Growing Towards Gnu}, II(12):23---57, March 1998. 316 | % 317 | % \bibitem[Greenfield(1996)]{greenfield96:_gettin_know_gnu} G.\ Greenfield. \emph{Getting to Know Gnu}. PhD thesis, Geoffrey Garfield School of Gnus, August 1996. 318 | % 319 | % \bibitem[van Gairley(2000)]{gairley2000} G.\ van Gairley. Gnu's review. Website, 2000. \url{http://www.gairley.gnu}. 320 | % \end{thebibliography} 321 | 322 | \end{document} 323 | 324 | % End of ``example.tex'' 325 | -------------------------------------------------------------------------------- /example/sample_nd.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-2.0 EPSF-1.2 2 | %%Creator: MATLAB, The Mathworks, Inc. 3 | %%Title: sample-ndthesis.eps 4 | %%CreationDate: 04/03/98 17:44:16 5 | %%DocumentNeededFonts: Helvetica 6 | %%DocumentProcessColors: Cyan Magenta Yellow Black 7 | %%Extensions: CMYK 8 | %%Pages: 1 9 | %%BoundingBox: 64 201 546 589 10 | %%EndComments 11 | 12 | %%BeginProlog 13 | 14 | % MathWorks dictionary 15 | /MathWorks 160 dict begin 16 | 17 | % definition operators 18 | /bdef {bind def} bind def 19 | /ldef {load def} bind def 20 | /xdef {exch def} bdef 21 | /xstore {exch store} bdef 22 | 23 | % operator abbreviations 24 | /c /clip ldef 25 | /cc /concat ldef 26 | /cp /closepath ldef 27 | /gr /grestore ldef 28 | /gs /gsave ldef 29 | /mt /moveto ldef 30 | /np /newpath ldef 31 | /cm /currentmatrix ldef 32 | /sm /setmatrix ldef 33 | /rc {rectclip} bdef 34 | /rf {rectfill} bdef 35 | /rm /rmoveto ldef 36 | /rl /rlineto ldef 37 | /s /show ldef 38 | /sc {setcmykcolor} bdef 39 | /sr /setrgbcolor ldef 40 | /sg /setgray ldef 41 | /w /setlinewidth ldef 42 | /j /setlinejoin ldef 43 | /cap /setlinecap ldef 44 | 45 | % page state control 46 | /pgsv () def 47 | /bpage {/pgsv save def} bdef 48 | /epage {pgsv restore} bdef 49 | /bplot /gsave ldef 50 | /eplot {stroke grestore} bdef 51 | 52 | % orientation switch 53 | /portraitMode 0 def 54 | /landscapeMode 1 def 55 | 56 | % coordinate system mappings 57 | /dpi2point 0 def 58 | 59 | % font control 60 | /FontSize 0 def 61 | /FMS { 62 | /FontSize xstore %save size off stack 63 | findfont 64 | [FontSize 0 0 FontSize neg 0 0] 65 | makefont 66 | setfont 67 | }bdef 68 | 69 | /reencode { 70 | exch dup where 71 | {pop load} {pop StandardEncoding} ifelse 72 | exch 73 | dup 3 1 roll 74 | findfont dup length dict begin 75 | { 1 index /FID ne {def}{pop pop} ifelse } forall 76 | /Encoding exch def 77 | currentdict 78 | end 79 | definefont pop 80 | } bdef 81 | 82 | /isroman { 83 | findfont /CharStrings get 84 | /Agrave known 85 | } bdef 86 | 87 | /FMSR { 88 | 3 1 roll 1 index 89 | dup isroman 90 | {reencode} {pop pop} ifelse 91 | exch FMS 92 | } bdef 93 | 94 | /csm { 95 | 1 dpi2point div -1 dpi2point div scale 96 | neg translate 97 | landscapeMode eq {90 rotate} if 98 | } bdef 99 | 100 | % line types: solid, dotted, dashed, dotdash 101 | /SO { [] 0 setdash } bdef 102 | /DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef 103 | /DA { [6 dpi2point mul] 0 setdash } bdef 104 | /DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4 dpi2point mul] 0 setdash } bdef 105 | 106 | % macros for lines and objects 107 | /L { 108 | lineto 109 | stroke 110 | } bdef 111 | /MP { 112 | 3 1 roll moveto 113 | 1 sub {rlineto} repeat 114 | } bdef 115 | /AP { 116 | {rlineto} repeat 117 | } bdef 118 | /PP { 119 | closepath eofill 120 | } bdef 121 | /DP { 122 | closepath stroke 123 | } bdef 124 | /MR { 125 | 4 -2 roll moveto 126 | dup 0 exch rlineto 127 | exch 0 rlineto 128 | neg 0 exch rlineto 129 | closepath 130 | } bdef 131 | /FR { 132 | MR stroke 133 | } bdef 134 | /PR { 135 | MR fill 136 | } bdef 137 | /L1i { 138 | { currentfile picstr readhexstring pop } image 139 | } bdef 140 | 141 | /tMatrix matrix def 142 | /MakeOval { 143 | newpath 144 | tMatrix currentmatrix pop 145 | translate scale 146 | 0 0 1 0 360 arc 147 | tMatrix setmatrix 148 | } bdef 149 | /FO { 150 | MakeOval 151 | stroke 152 | } bdef 153 | /PO { 154 | MakeOval 155 | fill 156 | } bdef 157 | 158 | /PD { 159 | currentlinecap 1 setlinecap 3 1 roll 2 copy moveto lineto stroke setlinecap 160 | } bdef 161 | 162 | /FA { 163 | newpath 164 | tMatrix currentmatrix pop 165 | translate scale 166 | 0 0 1 5 -2 roll arc 167 | tMatrix setmatrix 168 | stroke 169 | } bdef 170 | /PA { 171 | newpath 172 | tMatrix currentmatrix pop 173 | translate 0 0 moveto scale 174 | 0 0 1 5 -2 roll arc 175 | closepath 176 | tMatrix setmatrix 177 | fill 178 | } bdef 179 | 180 | /FAn { 181 | newpath 182 | tMatrix currentmatrix pop 183 | translate scale 184 | 0 0 1 5 -2 roll arcn 185 | tMatrix setmatrix 186 | stroke 187 | } bdef 188 | /PAn { 189 | newpath 190 | tMatrix currentmatrix pop 191 | translate 0 0 moveto scale 192 | 0 0 1 5 -2 roll arcn 193 | closepath 194 | tMatrix setmatrix 195 | fill 196 | } bdef 197 | 198 | /MRR { 199 | /vradius xdef 200 | /hradius xdef 201 | /lry xdef 202 | /lrx xdef 203 | /uly xdef 204 | /ulx xdef 205 | newpath 206 | tMatrix currentmatrix pop 207 | ulx hradius add uly vradius add translate 208 | hradius vradius scale 209 | 0 0 1 180 270 arc 210 | tMatrix setmatrix 211 | lrx hradius sub uly vradius add translate 212 | hradius vradius scale 213 | 0 0 1 270 360 arc 214 | tMatrix setmatrix 215 | lrx hradius sub lry vradius sub translate 216 | hradius vradius scale 217 | 0 0 1 0 90 arc 218 | tMatrix setmatrix 219 | ulx hradius add lry vradius sub translate 220 | hradius vradius scale 221 | 0 0 1 90 180 arc 222 | tMatrix setmatrix 223 | closepath 224 | } bdef 225 | /FRR { 226 | MRR stroke } bdef 227 | /PRR { 228 | MRR fill } bdef 229 | 230 | /MlrRR { 231 | /lry xdef 232 | /lrx xdef 233 | /uly xdef 234 | /ulx xdef 235 | /rad lry uly sub 2 div def 236 | newpath 237 | tMatrix currentmatrix pop 238 | ulx rad add uly rad add translate 239 | rad rad scale 240 | 0 0 1 90 270 arc 241 | tMatrix setmatrix 242 | lrx rad sub lry rad sub translate 243 | rad rad scale 244 | 0 0 1 270 90 arc 245 | tMatrix setmatrix 246 | closepath 247 | } bdef 248 | /FlrRR { 249 | MlrRR stroke } bdef 250 | /PlrRR { 251 | MlrRR fill } bdef 252 | 253 | /MtbRR { 254 | /lry xdef 255 | /lrx xdef 256 | /uly xdef 257 | /ulx xdef 258 | /rad lrx ulx sub 2 div def 259 | newpath 260 | tMatrix currentmatrix pop 261 | ulx rad add uly rad add translate 262 | rad rad scale 263 | 0 0 1 180 360 arc 264 | tMatrix setmatrix 265 | lrx rad sub lry rad sub translate 266 | rad rad scale 267 | 0 0 1 0 180 arc 268 | tMatrix setmatrix 269 | closepath 270 | } bdef 271 | /FtbRR { 272 | MtbRR stroke } bdef 273 | /PtbRR { 274 | MtbRR fill } bdef 275 | 276 | currentdict end def 277 | %%EndProlog 278 | 279 | %%BeginSetup 280 | MathWorks begin 281 | 282 | 0 cap 283 | 284 | end 285 | %%EndSetup 286 | 287 | %%Page: 1 1 288 | %%BeginPageSetup 289 | %%PageBoundingBox: 64 201 546 589 290 | MathWorks begin 291 | bpage 292 | %%EndPageSetup 293 | 294 | %%BeginObject: graph1 1 295 | bplot 296 | 297 | /dpi2point 12 def 298 | portraitMode 0216 7344 csm 299 | 300 | 559 273 5777 4658 MR c np 301 | 88 dict begin %Colortable dictionary 302 | /c0 { 0 0 0 sr} bdef 303 | /c1 { 1 1 1 sr} bdef 304 | /c2 { 1 0 0 sr} bdef 305 | /c3 { 0 1 0 sr} bdef 306 | /c4 { 0 0 1 sr} bdef 307 | /c5 { 1 1 0 sr} bdef 308 | /c6 { 1 0 1 sr} bdef 309 | /c7 { 0 1 1 sr} bdef 310 | 1 j 311 | 1 sg 312 | 0 0 6913 5186 PR 313 | 6 w 314 | 0 4225 5356 0 0 -4225 898 4613 4 MP 315 | PP 316 | -5356 0 0 4225 5356 0 0 -4225 898 4613 5 MP stroke 317 | 4 w 318 | DO 319 | SO 320 | 6 w 321 | 0 sg 322 | 898 4613 mt 6254 4613 L 323 | 898 388 mt 6254 388 L 324 | 898 4613 mt 898 388 L 325 | 6254 4613 mt 6254 388 L 326 | 898 4613 mt 6254 4613 L 327 | 898 4613 mt 898 388 L 328 | 898 4613 mt 898 4559 L 329 | 898 388 mt 898 442 L 330 | %%IncludeResource: font Helvetica 331 | /Helvetica /ISOLatin1Encoding 120 FMSR 332 | 333 | 865 4759 mt 334 | (0) s 335 | 1791 4613 mt 1791 4559 L 336 | 1791 388 mt 1791 442 L 337 | 1758 4759 mt 338 | (1) s 339 | 2683 4613 mt 2683 4559 L 340 | 2683 388 mt 2683 442 L 341 | 2650 4759 mt 342 | (2) s 343 | 3576 4613 mt 3576 4559 L 344 | 3576 388 mt 3576 442 L 345 | 3543 4759 mt 346 | (3) s 347 | 4469 4613 mt 4469 4559 L 348 | 4469 388 mt 4469 442 L 349 | 4436 4759 mt 350 | (4) s 351 | 5361 4613 mt 5361 4559 L 352 | 5361 388 mt 5361 442 L 353 | 5328 4759 mt 354 | (5) s 355 | 6254 4613 mt 6254 4559 L 356 | 6254 388 mt 6254 442 L 357 | 6221 4759 mt 358 | (6) s 359 | 898 4613 mt 952 4613 L 360 | 6254 4613 mt 6200 4613 L 361 | 797 4657 mt 362 | (0) s 363 | 898 4009 mt 952 4009 L 364 | 6254 4009 mt 6200 4009 L 365 | 797 4053 mt 366 | (2) s 367 | 898 3406 mt 952 3406 L 368 | 6254 3406 mt 6200 3406 L 369 | 797 3450 mt 370 | (4) s 371 | 898 2802 mt 952 2802 L 372 | 6254 2802 mt 6200 2802 L 373 | 797 2846 mt 374 | (6) s 375 | 898 2199 mt 952 2199 L 376 | 6254 2199 mt 6200 2199 L 377 | 797 2243 mt 378 | (8) s 379 | 898 1595 mt 952 1595 L 380 | 6254 1595 mt 6200 1595 L 381 | 730 1639 mt 382 | (10) s 383 | 898 992 mt 952 992 L 384 | 6254 992 mt 6200 992 L 385 | 730 1036 mt 386 | (12) s 387 | 898 388 mt 952 388 L 388 | 6254 388 mt 6200 388 L 389 | 730 432 mt 390 | (14) s 391 | 898 4613 mt 6254 4613 L 392 | 898 388 mt 6254 388 L 393 | 898 4613 mt 898 388 L 394 | 6254 4613 mt 6254 388 L 395 | gs 898 388 5357 4226 MR c np 396 | /c8 { 0.000000 0.000000 1.000000 sr} bdef 397 | c8 398 | 893 1207 892 -302 893 302 893 302 892 -302 893 -1207 898 4311 7 MP stroke 399 | /c9 { 0.000000 0.500000 0.000000 sr} bdef 400 | c9 401 | 893 3621 892 -1509 893 905 893 -603 892 -302 893 -2112 898 4009 7 MP stroke 402 | /c10 { 1.000000 0.000000 0.000000 sr} bdef 403 | c10 404 | 893 905 892 302 893 -302 893 302 892 -302 893 -603 898 4311 7 MP stroke 405 | /c11 { 0.000000 0.750000 0.750000 sr} bdef 406 | c11 407 | 893 905 892 302 893 0 893 0 892 -302 893 -302 898 3708 7 MP stroke 408 | /c12 { 0.750000 0.000000 0.750000 sr} bdef 409 | c12 410 | 893 2716 892 604 893 -302 893 -302 892 604 893 -2716 898 3104 7 MP stroke 411 | /c13 { 0.750000 0.750000 0.000000 sr} bdef 412 | c13 413 | 893 603 892 -302 893 -301 893 905 892 -604 893 -301 898 4009 7 MP stroke 414 | 415 | gr 416 | c13 417 | 0 sg 418 | 2618 4902 mt 419 | (Weekday, 0 = Sunday, 6 = Saturday) s 420 | 675 2783 mt -90 rotate 421 | (Frequency) s 422 | 90 rotate 423 | 2907 2844 mt 424 | (Dome) s 425 | 2014 1939 mt 426 | (Stonehenge) s 427 | 2014 3750 mt 428 | (Rock) s 429 | 4692 3146 mt 430 | (ACC) s 431 | 2907 1034 mt 432 | (Dining) s 433 | 3799 4051 mt 434 | (Hesburgh) s 435 | 436 | end 437 | 438 | eplot 439 | %%EndObject graph 1 440 | 441 | epage 442 | end 443 | 444 | showpage 445 | 446 | %%Trailer 447 | %%EOF 448 | -------------------------------------------------------------------------------- /example/sample_nd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndlib/nddiss/c9a244115788d6b1e944d30875644bad38327153/example/sample_nd.pdf -------------------------------------------------------------------------------- /handout/handout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndlib/nddiss/c9a244115788d6b1e944d30875644bad38327153/handout/handout.pdf -------------------------------------------------------------------------------- /handout/handout.tex: -------------------------------------------------------------------------------- 1 | \documentclass[10pt]{article} 2 | 3 | \usepackage{url} 4 | 5 | \begin{document} 6 | \begin{center} 7 | \textbf{Getting Started with the Notre Dame\\ LaTeX Dissertation Style Package} 8 | \end{center} 9 | 10 | \begin{flushright} 11 | 2018-08-01 12 | \end{flushright} 13 | 14 | There is a LaTeX class file to help you with creating dissertations 15 | conforming to the Notre Dame Graduate School formatting requirements. 16 | 17 | \begin{center}\textit{Quick Start}\end{center} 18 | 19 | \begin{enumerate} 20 | \item Download files: \begin{enumerate} 21 | \item Visit \url{github.com/ndlib/nddiss} 22 | \item Choose the green button ``Clone or download'' 23 | \item Select ``Download ZIP'' 24 | \item Save and expand the zip file 25 | \end{enumerate} 26 | \item Inside the zip file is an example directory. Copy this and use it as a template if you have not already begun your dissertation. 27 | \item Copy the files \texttt{nddiss2e.bst} and \texttt{nddiss2e.cls} into whatever directory your dissertation is in. (e.g. your copy of the example directory). 28 | \item If you are using the example directory, compiling it with LaTeX should work at this point. 29 | \item If you already have a dissertation file, you will need to set up the formatting in it to parallel the structure in the example file. 30 | \item There is a manual to explain everything in more detail. See the file \texttt{nddiss2e.pdf}. It is also available online at 31 | \url{github.com/ndlib/nddiss/blob/master/nddiss2e.pdf} 32 | \end{enumerate} 33 | 34 | 35 | \begin{center}\textit{Resources}\end{center} 36 | \begin{itemize} 37 | \item If you have never used LaTeX before, the Navari Family Center for Digital Scholarship offers workshops to learn LaTeX. 38 | \url{cds.library.nd.edu} 39 | \item The current Graduate School formatting requirements: 40 | \url{graduateschool.nd.edu/resources-for-current-students/dt/dt-resources} 41 | \item A useful general reference for LaTeX is the LaTeX Wikibook: 42 | \url{en.wikibooks.org/wiki/LaTeX} 43 | \end{itemize} 44 | 45 | \end{document} 46 | -------------------------------------------------------------------------------- /ltxdoc.cfg: -------------------------------------------------------------------------------- 1 | \PassOptionsToClass{letterpaper}{article} 2 | \AtEndOfPackage{\RequirePackage{hyperref}} 3 | 4 | %% To create a pdf using dvipdfm, uncomment the next line. 5 | %%\PassOptionsToPackage{dvipdfm=true,bookmarks=true}{hyperref} 6 | -------------------------------------------------------------------------------- /nddiss2e.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% File: `nddiss2e.bst' 3 | %% A modification of `abbrvnat.bst' for use with nddiss2e class file. 4 | %% Modified by Sameer Vijay 5 | %% 6 | %% File: `abbrvnat.bst' 7 | %% A modification of `abbrv.bst' for use with natbib package 8 | %% 9 | %% Copyright 1993-2007 Patrick W Daly 10 | %% Max-Planck-Institut f\"ur Sonnensystemforschung 11 | %% Max-Planck-Str. 2 12 | %% D-37191 Katlenburg-Lindau 13 | %% Germany 14 | %% E-mail: daly@mps.mpg.de 15 | %% 16 | %% This program can be redistributed and/or modified under the terms 17 | %% of the LaTeX Project Public License Distributed from CTAN 18 | %% archives in directory macros/latex/base/lppl.txt; either 19 | %% version 1 of the License, or any later version. 20 | %% 21 | % Version and source file information: 22 | % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] 23 | % 24 | % BibTeX `plainnat' family 25 | % version 0.99b for BibTeX versions 0.99a or later, 26 | % for LaTeX versions 2.09 and 2e. 27 | % 28 | % For use with the `natbib.sty' package; emulates the corresponding 29 | % member of the `plain' family, but with author-year citations. 30 | % 31 | % With version 6.0 of `natbib.sty', it may also be used for numerical 32 | % citations, while retaining the commands \citeauthor, \citefullauthor, 33 | % and \citeyear to print the corresponding information. 34 | % 35 | % For version 7.0 of `natbib.sty', the KEY field replaces missing 36 | % authors/editors, and the date is left blank in \bibitem. 37 | % 38 | % Includes field EID for the sequence/citation number of electronic journals 39 | % which is used instead of page numbers. 40 | % 41 | % Includes fields ISBN and ISSN. 42 | % 43 | % Includes field URL for Internet addresses. 44 | % 45 | % Includes field DOI for Digital Object Idenfifiers. 46 | % 47 | % Works best with the url.sty package of Donald Arseneau. 48 | % 49 | % Works with identical authors and year are further sorted by 50 | % citation key, to preserve any natural sequence. 51 | % 52 | ENTRY 53 | { address 54 | author 55 | booktitle 56 | chapter 57 | doi 58 | eid 59 | edition 60 | editor 61 | howpublished 62 | institution 63 | isbn 64 | issn 65 | journal 66 | key 67 | month 68 | note 69 | number 70 | organization 71 | pages 72 | publisher 73 | school 74 | series 75 | title 76 | type 77 | url 78 | volume 79 | year 80 | } 81 | {} 82 | { label extra.label sort.label short.list } 83 | 84 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 85 | 86 | FUNCTION {init.state.consts} 87 | { #0 'before.all := 88 | #1 'mid.sentence := 89 | #2 'after.sentence := 90 | #3 'after.block := 91 | } 92 | 93 | STRINGS { s t } 94 | 95 | FUNCTION {output.nonnull} 96 | { 's := 97 | output.state mid.sentence = 98 | { ", " * write$ } 99 | { output.state after.block = 100 | { add.period$ write$ 101 | newline$ 102 | "\newblock " write$ 103 | } 104 | { output.state before.all = 105 | 'write$ 106 | { add.period$ " " * write$ } 107 | if$ 108 | } 109 | if$ 110 | mid.sentence 'output.state := 111 | } 112 | if$ 113 | s 114 | } 115 | 116 | FUNCTION {output} 117 | { duplicate$ empty$ 118 | 'pop$ 119 | 'output.nonnull 120 | if$ 121 | } 122 | 123 | FUNCTION {output.check} 124 | { 't := 125 | duplicate$ empty$ 126 | { pop$ "empty " t * " in " * cite$ * warning$ } 127 | 'output.nonnull 128 | if$ 129 | } 130 | 131 | FUNCTION {fin.entry} 132 | { add.period$ 133 | write$ 134 | newline$ 135 | } 136 | 137 | FUNCTION {new.block} 138 | { output.state before.all = 139 | 'skip$ 140 | { after.block 'output.state := } 141 | if$ 142 | } 143 | 144 | FUNCTION {new.sentence} 145 | { output.state after.block = 146 | 'skip$ 147 | { output.state before.all = 148 | 'skip$ 149 | { after.sentence 'output.state := } 150 | if$ 151 | } 152 | if$ 153 | } 154 | 155 | FUNCTION {not} 156 | { { #0 } 157 | { #1 } 158 | if$ 159 | } 160 | 161 | FUNCTION {and} 162 | { 'skip$ 163 | { pop$ #0 } 164 | if$ 165 | } 166 | 167 | FUNCTION {or} 168 | { { pop$ #1 } 169 | 'skip$ 170 | if$ 171 | } 172 | 173 | FUNCTION {new.block.checka} 174 | { empty$ 175 | 'skip$ 176 | 'new.block 177 | if$ 178 | } 179 | 180 | FUNCTION {new.block.checkb} 181 | { empty$ 182 | swap$ empty$ 183 | and 184 | 'skip$ 185 | 'new.block 186 | if$ 187 | } 188 | 189 | FUNCTION {new.sentence.checka} 190 | { empty$ 191 | 'skip$ 192 | 'new.sentence 193 | if$ 194 | } 195 | 196 | FUNCTION {new.sentence.checkb} 197 | { empty$ 198 | swap$ empty$ 199 | and 200 | 'skip$ 201 | 'new.sentence 202 | if$ 203 | } 204 | 205 | FUNCTION {field.or.null} 206 | { duplicate$ empty$ 207 | { pop$ "" } 208 | 'skip$ 209 | if$ 210 | } 211 | 212 | FUNCTION {emphasize} 213 | { duplicate$ empty$ 214 | { pop$ "" } 215 | { "\emph{" swap$ * "}" * } 216 | if$ 217 | } 218 | 219 | INTEGERS { nameptr namesleft numnames } 220 | 221 | FUNCTION {format.names} 222 | { 's := 223 | #1 'nameptr := 224 | s num.names$ 'numnames := 225 | numnames 'namesleft := 226 | { namesleft #0 > } 227 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := 228 | nameptr #1 > 229 | { namesleft #1 > 230 | { ", " * t * } 231 | { numnames #2 > 232 | { "," * } 233 | 'skip$ 234 | if$ 235 | t "others" = 236 | { " et~al." * } 237 | { " and " * t * } 238 | if$ 239 | } 240 | if$ 241 | } 242 | 't 243 | if$ 244 | nameptr #1 + 'nameptr := 245 | namesleft #1 - 'namesleft := 246 | } 247 | while$ 248 | } 249 | 250 | FUNCTION {format.key} 251 | { empty$ 252 | { key field.or.null } 253 | { "" } 254 | if$ 255 | } 256 | 257 | FUNCTION {format.authors} 258 | { author empty$ 259 | { "" } 260 | { author format.names } 261 | if$ 262 | } 263 | 264 | FUNCTION {format.editors} 265 | { editor empty$ 266 | { "" } 267 | { editor format.names 268 | editor num.names$ #1 > 269 | { ", editors" * } 270 | { ", editor" * } 271 | if$ 272 | } 273 | if$ 274 | } 275 | 276 | FUNCTION {format.isbn} 277 | { isbn empty$ 278 | { "" } 279 | { new.block "ISBN " isbn * } 280 | if$ 281 | } 282 | 283 | FUNCTION {format.issn} 284 | { issn empty$ 285 | { "" } 286 | { new.block "ISSN " issn * } 287 | if$ 288 | } 289 | 290 | FUNCTION {format.url} 291 | { url empty$ 292 | { "" } 293 | { new.block "URL \url{" url * "}" * } 294 | if$ 295 | } 296 | 297 | FUNCTION {format.doi} 298 | { doi empty$ 299 | { "" } 300 | { new.block "\doi{" doi * "}" * } 301 | if$ 302 | } 303 | 304 | FUNCTION {format.title} 305 | { title empty$ 306 | { "" } 307 | { title "t" change.case$ } 308 | if$ 309 | } 310 | 311 | FUNCTION {format.full.names} 312 | {'s := 313 | #1 'nameptr := 314 | s num.names$ 'numnames := 315 | numnames 'namesleft := 316 | { namesleft #0 > } 317 | { s nameptr 318 | "{vv~}{ll}" format.name$ 't := 319 | nameptr #1 > 320 | { 321 | namesleft #1 > 322 | { ", " * t * } 323 | { 324 | numnames #2 > 325 | { "," * } 326 | 'skip$ 327 | if$ 328 | t "others" = 329 | { " et~al." * } 330 | { " and " * t * } 331 | if$ 332 | } 333 | if$ 334 | } 335 | 't 336 | if$ 337 | nameptr #1 + 'nameptr := 338 | namesleft #1 - 'namesleft := 339 | } 340 | while$ 341 | } 342 | 343 | FUNCTION {author.editor.full} 344 | { author empty$ 345 | { editor empty$ 346 | { "" } 347 | { editor format.full.names } 348 | if$ 349 | } 350 | { author format.full.names } 351 | if$ 352 | } 353 | 354 | FUNCTION {author.full} 355 | { author empty$ 356 | { "" } 357 | { author format.full.names } 358 | if$ 359 | } 360 | 361 | FUNCTION {editor.full} 362 | { editor empty$ 363 | { "" } 364 | { editor format.full.names } 365 | if$ 366 | } 367 | 368 | FUNCTION {make.full.names} 369 | { type$ "book" = 370 | type$ "inbook" = 371 | or 372 | 'author.editor.full 373 | { type$ "proceedings" = 374 | 'editor.full 375 | 'author.full 376 | if$ 377 | } 378 | if$ 379 | } 380 | 381 | FUNCTION {output.bibitem} 382 | { newline$ 383 | "\bibitem[" write$ 384 | label write$ 385 | ")" make.full.names duplicate$ short.list = 386 | { pop$ } 387 | { * } 388 | if$ 389 | "]{" * write$ 390 | cite$ write$ 391 | "}" write$ 392 | newline$ 393 | "" 394 | before.all 'output.state := 395 | } 396 | 397 | FUNCTION {n.dashify} 398 | { 't := 399 | "" 400 | { t empty$ not } 401 | { t #1 #1 substring$ "-" = 402 | { t #1 #2 substring$ "--" = not 403 | { "--" * 404 | t #2 global.max$ substring$ 't := 405 | } 406 | { { t #1 #1 substring$ "-" = } 407 | { "-" * 408 | t #2 global.max$ substring$ 't := 409 | } 410 | while$ 411 | } 412 | if$ 413 | } 414 | { t #1 #1 substring$ * 415 | t #2 global.max$ substring$ 't := 416 | } 417 | if$ 418 | } 419 | while$ 420 | } 421 | 422 | FUNCTION {format.date} 423 | { year duplicate$ empty$ 424 | { "empty year in " cite$ * warning$ 425 | pop$ "" } 426 | 'skip$ 427 | if$ 428 | month empty$ 429 | 'skip$ 430 | { month 431 | " " * swap$ * 432 | } 433 | if$ 434 | extra.label * 435 | } 436 | 437 | FUNCTION {format.btitle} 438 | { title emphasize 439 | } 440 | 441 | FUNCTION {tie.or.space.connect} 442 | { duplicate$ text.length$ #3 < 443 | { "~" } 444 | { " " } 445 | if$ 446 | swap$ * * 447 | } 448 | 449 | FUNCTION {either.or.check} 450 | { empty$ 451 | 'pop$ 452 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 453 | if$ 454 | } 455 | 456 | FUNCTION {format.bvolume} 457 | { volume empty$ 458 | { "" } 459 | { "volume" volume tie.or.space.connect 460 | series empty$ 461 | 'skip$ 462 | { " of " * series emphasize * } 463 | if$ 464 | "volume and number" number either.or.check 465 | } 466 | if$ 467 | } 468 | 469 | FUNCTION {format.number.series} 470 | { volume empty$ 471 | { number empty$ 472 | { series field.or.null } 473 | { output.state mid.sentence = 474 | { "number" } 475 | { "Number" } 476 | if$ 477 | number tie.or.space.connect 478 | series empty$ 479 | { "there's a number but no series in " cite$ * warning$ } 480 | { " in " * series * } 481 | if$ 482 | } 483 | if$ 484 | } 485 | { "" } 486 | if$ 487 | } 488 | 489 | FUNCTION {format.edition} 490 | { edition empty$ 491 | { "" } 492 | { output.state mid.sentence = 493 | { edition "l" change.case$ " edition" * } 494 | { edition "t" change.case$ " edition" * } 495 | if$ 496 | } 497 | if$ 498 | } 499 | 500 | INTEGERS { multiresult } 501 | 502 | FUNCTION {multi.page.check} 503 | { 't := 504 | #0 'multiresult := 505 | { multiresult not 506 | t empty$ not 507 | and 508 | } 509 | { t #1 #1 substring$ 510 | duplicate$ "-" = 511 | swap$ duplicate$ "," = 512 | swap$ "+" = 513 | or or 514 | { #1 'multiresult := } 515 | { t #2 global.max$ substring$ 't := } 516 | if$ 517 | } 518 | while$ 519 | multiresult 520 | } 521 | 522 | FUNCTION {format.pages} 523 | { pages empty$ 524 | { "" } 525 | { pages multi.page.check 526 | { "pages" pages n.dashify tie.or.space.connect } 527 | { "page" pages tie.or.space.connect } 528 | if$ 529 | } 530 | if$ 531 | } 532 | 533 | FUNCTION {format.eid} 534 | { eid empty$ 535 | { "" } 536 | { "art." eid tie.or.space.connect } 537 | if$ 538 | } 539 | 540 | FUNCTION {format.vol.num.pages} 541 | { volume field.or.null 542 | number empty$ 543 | 'skip$ 544 | { "\penalty0 (" number * ")" * * 545 | volume empty$ 546 | { "there's a number but no volume in " cite$ * warning$ } 547 | 'skip$ 548 | if$ 549 | } 550 | if$ 551 | pages empty$ 552 | 'skip$ 553 | { duplicate$ empty$ 554 | { pop$ format.pages } 555 | { ":\penalty0 " * pages n.dashify * } 556 | if$ 557 | } 558 | if$ 559 | } 560 | 561 | FUNCTION {format.vol.num.eid} 562 | { volume field.or.null 563 | number empty$ 564 | 'skip$ 565 | { "\penalty0 (" number * ")" * * 566 | volume empty$ 567 | { "there's a number but no volume in " cite$ * warning$ } 568 | 'skip$ 569 | if$ 570 | } 571 | if$ 572 | eid empty$ 573 | 'skip$ 574 | { duplicate$ empty$ 575 | { pop$ format.eid } 576 | { ":\penalty0 " * eid * } 577 | if$ 578 | } 579 | if$ 580 | } 581 | 582 | FUNCTION {format.chapter.pages} 583 | { chapter empty$ 584 | 'format.pages 585 | { type empty$ 586 | { "chapter" } 587 | { type "l" change.case$ } 588 | if$ 589 | chapter tie.or.space.connect 590 | pages empty$ 591 | 'skip$ 592 | { ", " * format.pages * } 593 | if$ 594 | } 595 | if$ 596 | } 597 | 598 | FUNCTION {format.in.ed.booktitle} 599 | { booktitle empty$ 600 | { "" } 601 | { editor empty$ 602 | { "In " booktitle emphasize * } 603 | { "In " format.editors * ", " * booktitle emphasize * } 604 | if$ 605 | } 606 | if$ 607 | } 608 | 609 | FUNCTION {empty.misc.check} 610 | { author empty$ title empty$ howpublished empty$ 611 | month empty$ year empty$ note empty$ 612 | and and and and and 613 | key empty$ not and 614 | { "all relevant fields are empty in " cite$ * warning$ } 615 | 'skip$ 616 | if$ 617 | } 618 | 619 | FUNCTION {format.thesis.type} 620 | { type empty$ 621 | 'skip$ 622 | { pop$ 623 | type "t" change.case$ 624 | } 625 | if$ 626 | } 627 | 628 | FUNCTION {format.tr.number} 629 | { type empty$ 630 | { "Technical Report" } 631 | 'type 632 | if$ 633 | number empty$ 634 | { "t" change.case$ } 635 | { number tie.or.space.connect } 636 | if$ 637 | } 638 | 639 | FUNCTION {format.article.crossref} 640 | { key empty$ 641 | { journal empty$ 642 | { "need key or journal for " cite$ * " to crossref " * crossref * 643 | warning$ 644 | "" 645 | } 646 | { "In \emph{" journal * "}" * } 647 | if$ 648 | } 649 | { "In " } 650 | if$ 651 | " \citet{" * crossref * "}" * 652 | } 653 | 654 | FUNCTION {format.book.crossref} 655 | { volume empty$ 656 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 657 | "In " 658 | } 659 | { "Volume" volume tie.or.space.connect 660 | " of " * 661 | } 662 | if$ 663 | editor empty$ 664 | editor field.or.null author field.or.null = 665 | or 666 | { key empty$ 667 | { series empty$ 668 | { "need editor, key, or series for " cite$ * " to crossref " * 669 | crossref * warning$ 670 | "" * 671 | } 672 | { "\emph{" * series * "}" * } 673 | if$ 674 | } 675 | 'skip$ 676 | if$ 677 | } 678 | 'skip$ 679 | if$ 680 | " \citet{" * crossref * "}" * 681 | } 682 | 683 | FUNCTION {format.incoll.inproc.crossref} 684 | { editor empty$ 685 | editor field.or.null author field.or.null = 686 | or 687 | { key empty$ 688 | { booktitle empty$ 689 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 690 | crossref * warning$ 691 | "" 692 | } 693 | { "In \emph{" booktitle * "}" * } 694 | if$ 695 | } 696 | { "In " } 697 | if$ 698 | } 699 | { "In " } 700 | if$ 701 | " \citet{" * crossref * "}" * 702 | } 703 | 704 | FUNCTION {article} 705 | { output.bibitem 706 | format.authors "author" output.check 707 | author format.key output 708 | new.block 709 | format.title "title" output.check 710 | new.block 711 | crossref missing$ 712 | { journal emphasize "journal" output.check 713 | eid empty$ 714 | { format.vol.num.pages output } 715 | { format.vol.num.eid output } 716 | if$ 717 | format.date "year" output.check 718 | } 719 | { format.article.crossref output.nonnull 720 | eid empty$ 721 | { format.pages output } 722 | { format.eid output } 723 | if$ 724 | } 725 | if$ 726 | format.issn output 727 | format.doi output 728 | format.url output 729 | new.block 730 | note output 731 | fin.entry 732 | } 733 | 734 | FUNCTION {book} 735 | { output.bibitem 736 | author empty$ 737 | { format.editors "author and editor" output.check 738 | editor format.key output 739 | } 740 | { format.authors output.nonnull 741 | crossref missing$ 742 | { "author and editor" editor either.or.check } 743 | 'skip$ 744 | if$ 745 | } 746 | if$ 747 | new.block 748 | format.btitle "title" output.check 749 | crossref missing$ 750 | { format.bvolume output 751 | new.block 752 | format.number.series output 753 | new.sentence 754 | publisher "publisher" output.check 755 | address output 756 | } 757 | { new.block 758 | format.book.crossref output.nonnull 759 | } 760 | if$ 761 | format.edition output 762 | format.date "year" output.check 763 | format.isbn output 764 | format.doi output 765 | format.url output 766 | new.block 767 | note output 768 | fin.entry 769 | } 770 | 771 | FUNCTION {booklet} 772 | { output.bibitem 773 | format.authors output 774 | author format.key output 775 | new.block 776 | format.title "title" output.check 777 | howpublished address new.block.checkb 778 | howpublished output 779 | address output 780 | format.date output 781 | format.isbn output 782 | format.doi output 783 | format.url output 784 | new.block 785 | note output 786 | fin.entry 787 | } 788 | 789 | FUNCTION {inbook} 790 | { output.bibitem 791 | author empty$ 792 | { format.editors "author and editor" output.check 793 | editor format.key output 794 | } 795 | { format.authors output.nonnull 796 | crossref missing$ 797 | { "author and editor" editor either.or.check } 798 | 'skip$ 799 | if$ 800 | } 801 | if$ 802 | new.block 803 | format.btitle "title" output.check 804 | crossref missing$ 805 | { format.bvolume output 806 | format.chapter.pages "chapter and pages" output.check 807 | new.block 808 | format.number.series output 809 | new.sentence 810 | publisher "publisher" output.check 811 | address output 812 | } 813 | { format.chapter.pages "chapter and pages" output.check 814 | new.block 815 | format.book.crossref output.nonnull 816 | } 817 | if$ 818 | format.edition output 819 | format.date "year" output.check 820 | format.isbn output 821 | format.doi output 822 | format.url output 823 | new.block 824 | note output 825 | fin.entry 826 | } 827 | 828 | FUNCTION {incollection} 829 | { output.bibitem 830 | format.authors "author" output.check 831 | author format.key output 832 | new.block 833 | format.title "title" output.check 834 | new.block 835 | crossref missing$ 836 | { format.in.ed.booktitle "booktitle" output.check 837 | format.bvolume output 838 | format.number.series output 839 | format.chapter.pages output 840 | new.sentence 841 | publisher "publisher" output.check 842 | address output 843 | format.edition output 844 | format.date "year" output.check 845 | } 846 | { format.incoll.inproc.crossref output.nonnull 847 | format.chapter.pages output 848 | } 849 | if$ 850 | format.isbn output 851 | format.doi output 852 | format.url output 853 | new.block 854 | note output 855 | fin.entry 856 | } 857 | 858 | FUNCTION {inproceedings} 859 | { output.bibitem 860 | format.authors "author" output.check 861 | author format.key output 862 | new.block 863 | format.title "title" output.check 864 | new.block 865 | crossref missing$ 866 | { format.in.ed.booktitle "booktitle" output.check 867 | format.bvolume output 868 | format.number.series output 869 | format.pages output 870 | address empty$ 871 | { organization publisher new.sentence.checkb 872 | organization output 873 | publisher output 874 | format.date "year" output.check 875 | } 876 | { address output.nonnull 877 | format.date "year" output.check 878 | new.sentence 879 | organization output 880 | publisher output 881 | } 882 | if$ 883 | } 884 | { format.incoll.inproc.crossref output.nonnull 885 | format.pages output 886 | } 887 | if$ 888 | format.isbn output 889 | format.doi output 890 | format.url output 891 | new.block 892 | note output 893 | fin.entry 894 | } 895 | 896 | FUNCTION {conference} { inproceedings } 897 | 898 | FUNCTION {manual} 899 | { output.bibitem 900 | format.authors output 901 | author format.key output 902 | new.block 903 | format.btitle "title" output.check 904 | organization address new.block.checkb 905 | organization output 906 | address output 907 | format.edition output 908 | format.date output 909 | format.url output 910 | new.block 911 | note output 912 | fin.entry 913 | } 914 | 915 | FUNCTION {mastersthesis} 916 | { output.bibitem 917 | format.authors "author" output.check 918 | author format.key output 919 | new.block 920 | format.title "title" output.check 921 | new.block 922 | "Master's thesis" format.thesis.type output.nonnull 923 | school "school" output.check 924 | address output 925 | format.date "year" output.check 926 | format.url output 927 | new.block 928 | note output 929 | fin.entry 930 | } 931 | 932 | FUNCTION {misc} 933 | { output.bibitem 934 | format.authors output 935 | author format.key output 936 | title howpublished new.block.checkb 937 | format.title output 938 | howpublished new.block.checka 939 | howpublished output 940 | format.date output 941 | format.issn output 942 | format.url output 943 | new.block 944 | note output 945 | fin.entry 946 | empty.misc.check 947 | } 948 | 949 | FUNCTION {phdthesis} 950 | { output.bibitem 951 | format.authors "author" output.check 952 | author format.key output 953 | new.block 954 | format.btitle "title" output.check 955 | new.block 956 | "PhD thesis" format.thesis.type output.nonnull 957 | school "school" output.check 958 | address output 959 | format.date "year" output.check 960 | format.url output 961 | new.block 962 | note output 963 | fin.entry 964 | } 965 | 966 | FUNCTION {proceedings} 967 | { output.bibitem 968 | format.editors output 969 | editor format.key output 970 | new.block 971 | format.btitle "title" output.check 972 | format.bvolume output 973 | format.number.series output 974 | address output 975 | format.date "year" output.check 976 | new.sentence 977 | organization output 978 | publisher output 979 | format.isbn output 980 | format.doi output 981 | format.url output 982 | new.block 983 | note output 984 | fin.entry 985 | } 986 | 987 | FUNCTION {techreport} 988 | { output.bibitem 989 | format.authors "author" output.check 990 | author format.key output 991 | new.block 992 | format.title "title" output.check 993 | new.block 994 | format.tr.number output.nonnull 995 | institution "institution" output.check 996 | address output 997 | format.date "year" output.check 998 | format.url output 999 | new.block 1000 | note output 1001 | fin.entry 1002 | } 1003 | 1004 | FUNCTION {unpublished} 1005 | { output.bibitem 1006 | format.authors "author" output.check 1007 | author format.key output 1008 | new.block 1009 | format.title "title" output.check 1010 | new.block 1011 | note "note" output.check 1012 | format.date output 1013 | format.url output 1014 | fin.entry 1015 | } 1016 | 1017 | FUNCTION {default.type} { misc } 1018 | 1019 | 1020 | MACRO {jan} {"Jan."} 1021 | 1022 | MACRO {feb} {"Feb."} 1023 | 1024 | MACRO {mar} {"Mar."} 1025 | 1026 | MACRO {apr} {"Apr."} 1027 | 1028 | MACRO {may} {"May"} 1029 | 1030 | MACRO {jun} {"June"} 1031 | 1032 | MACRO {jul} {"July"} 1033 | 1034 | MACRO {aug} {"Aug."} 1035 | 1036 | MACRO {sep} {"Sept."} 1037 | 1038 | MACRO {oct} {"Oct."} 1039 | 1040 | MACRO {nov} {"Nov."} 1041 | 1042 | MACRO {dec} {"Dec."} 1043 | 1044 | 1045 | 1046 | MACRO {acmcs} {"ACM Comput. Surv."} 1047 | 1048 | MACRO {acta} {"Acta Inf."} 1049 | 1050 | MACRO {cacm} {"Commun. ACM"} 1051 | 1052 | MACRO {ibmjrd} {"IBM J. Res. Dev."} 1053 | 1054 | MACRO {ibmsj} {"IBM Syst.~J."} 1055 | 1056 | MACRO {ieeese} {"IEEE Trans. Softw. Eng."} 1057 | 1058 | MACRO {ieeetc} {"IEEE Trans. Comput."} 1059 | 1060 | MACRO {ieeetcad} 1061 | {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} 1062 | 1063 | MACRO {ipl} {"Inf. Process. Lett."} 1064 | 1065 | MACRO {jacm} {"J.~ACM"} 1066 | 1067 | MACRO {jcss} {"J.~Comput. Syst. Sci."} 1068 | 1069 | MACRO {scp} {"Sci. Comput. Programming"} 1070 | 1071 | MACRO {sicomp} {"SIAM J. Comput."} 1072 | 1073 | MACRO {tocs} {"ACM Trans. Comput. Syst."} 1074 | 1075 | MACRO {tods} {"ACM Trans. Database Syst."} 1076 | 1077 | MACRO {tog} {"ACM Trans. Gr."} 1078 | 1079 | MACRO {toms} {"ACM Trans. Math. Softw."} 1080 | 1081 | MACRO {toois} {"ACM Trans. Office Inf. Syst."} 1082 | 1083 | MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} 1084 | 1085 | MACRO {tcs} {"Theoretical Comput. Sci."} 1086 | 1087 | 1088 | READ 1089 | 1090 | FUNCTION {sortify} 1091 | { purify$ 1092 | "l" change.case$ 1093 | } 1094 | 1095 | INTEGERS { len } 1096 | 1097 | FUNCTION {chop.word} 1098 | { 's := 1099 | 'len := 1100 | s #1 len substring$ = 1101 | { s len #1 + global.max$ substring$ } 1102 | 's 1103 | if$ 1104 | } 1105 | 1106 | FUNCTION {format.lab.names} 1107 | { 's := 1108 | s #1 "{vv~}{ll}" format.name$ 1109 | s num.names$ duplicate$ 1110 | #2 > 1111 | { pop$ " et~al." * } 1112 | { #2 < 1113 | 'skip$ 1114 | { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1115 | { " et~al." * } 1116 | { " and " * s #2 "{vv~}{ll}" format.name$ * } 1117 | if$ 1118 | } 1119 | if$ 1120 | } 1121 | if$ 1122 | } 1123 | 1124 | FUNCTION {author.key.label} 1125 | { author empty$ 1126 | { key empty$ 1127 | { cite$ #1 #3 substring$ } 1128 | 'key 1129 | if$ 1130 | } 1131 | { author format.lab.names } 1132 | if$ 1133 | } 1134 | 1135 | FUNCTION {author.editor.key.label} 1136 | { author empty$ 1137 | { editor empty$ 1138 | { key empty$ 1139 | { cite$ #1 #3 substring$ } 1140 | 'key 1141 | if$ 1142 | } 1143 | { editor format.lab.names } 1144 | if$ 1145 | } 1146 | { author format.lab.names } 1147 | if$ 1148 | } 1149 | 1150 | FUNCTION {author.key.organization.label} 1151 | { author empty$ 1152 | { key empty$ 1153 | { organization empty$ 1154 | { cite$ #1 #3 substring$ } 1155 | { "The " #4 organization chop.word #3 text.prefix$ } 1156 | if$ 1157 | } 1158 | 'key 1159 | if$ 1160 | } 1161 | { author format.lab.names } 1162 | if$ 1163 | } 1164 | 1165 | FUNCTION {editor.key.organization.label} 1166 | { editor empty$ 1167 | { key empty$ 1168 | { organization empty$ 1169 | { cite$ #1 #3 substring$ } 1170 | { "The " #4 organization chop.word #3 text.prefix$ } 1171 | if$ 1172 | } 1173 | 'key 1174 | if$ 1175 | } 1176 | { editor format.lab.names } 1177 | if$ 1178 | } 1179 | 1180 | FUNCTION {calc.short.authors} 1181 | { type$ "book" = 1182 | type$ "inbook" = 1183 | or 1184 | 'author.editor.key.label 1185 | { type$ "proceedings" = 1186 | 'editor.key.organization.label 1187 | { type$ "manual" = 1188 | 'author.key.organization.label 1189 | 'author.key.label 1190 | if$ 1191 | } 1192 | if$ 1193 | } 1194 | if$ 1195 | 'short.list := 1196 | } 1197 | 1198 | FUNCTION {calc.label} 1199 | { calc.short.authors 1200 | short.list 1201 | "(" 1202 | * 1203 | year duplicate$ empty$ 1204 | short.list key field.or.null = or 1205 | { pop$ "" } 1206 | 'skip$ 1207 | if$ 1208 | * 1209 | 'label := 1210 | } 1211 | 1212 | FUNCTION {sort.format.names} 1213 | { 's := 1214 | #1 'nameptr := 1215 | "" 1216 | s num.names$ 'numnames := 1217 | numnames 'namesleft := 1218 | { namesleft #0 > } 1219 | { 1220 | s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := 1221 | nameptr #1 > 1222 | { 1223 | " " * 1224 | namesleft #1 = t "others" = and 1225 | { "zzzzz" * } 1226 | { numnames #2 > nameptr #2 = and 1227 | { "zz" * year field.or.null * " " * } 1228 | 'skip$ 1229 | if$ 1230 | t sortify * 1231 | } 1232 | if$ 1233 | } 1234 | { t sortify * } 1235 | if$ 1236 | nameptr #1 + 'nameptr := 1237 | namesleft #1 - 'namesleft := 1238 | } 1239 | while$ 1240 | } 1241 | 1242 | FUNCTION {sort.format.title} 1243 | { 't := 1244 | "A " #2 1245 | "An " #3 1246 | "The " #4 t chop.word 1247 | chop.word 1248 | chop.word 1249 | sortify 1250 | #1 global.max$ substring$ 1251 | } 1252 | 1253 | FUNCTION {author.sort} 1254 | { author empty$ 1255 | { key empty$ 1256 | { "to sort, need author or key in " cite$ * warning$ 1257 | "" 1258 | } 1259 | { key sortify } 1260 | if$ 1261 | } 1262 | { author sort.format.names } 1263 | if$ 1264 | } 1265 | 1266 | FUNCTION {author.editor.sort} 1267 | { author empty$ 1268 | { editor empty$ 1269 | { key empty$ 1270 | { "to sort, need author, editor, or key in " cite$ * warning$ 1271 | "" 1272 | } 1273 | { key sortify } 1274 | if$ 1275 | } 1276 | { editor sort.format.names } 1277 | if$ 1278 | } 1279 | { author sort.format.names } 1280 | if$ 1281 | } 1282 | 1283 | FUNCTION {author.organization.sort} 1284 | { author empty$ 1285 | { organization empty$ 1286 | { key empty$ 1287 | { "to sort, need author, organization, or key in " cite$ * warning$ 1288 | "" 1289 | } 1290 | { key sortify } 1291 | if$ 1292 | } 1293 | { "The " #4 organization chop.word sortify } 1294 | if$ 1295 | } 1296 | { author sort.format.names } 1297 | if$ 1298 | } 1299 | 1300 | FUNCTION {editor.organization.sort} 1301 | { editor empty$ 1302 | { organization empty$ 1303 | { key empty$ 1304 | { "to sort, need editor, organization, or key in " cite$ * warning$ 1305 | "" 1306 | } 1307 | { key sortify } 1308 | if$ 1309 | } 1310 | { "The " #4 organization chop.word sortify } 1311 | if$ 1312 | } 1313 | { editor sort.format.names } 1314 | if$ 1315 | } 1316 | 1317 | 1318 | FUNCTION {presort} 1319 | { calc.label 1320 | label sortify 1321 | " " 1322 | * 1323 | type$ "book" = 1324 | type$ "inbook" = 1325 | or 1326 | 'author.editor.sort 1327 | { type$ "proceedings" = 1328 | 'editor.organization.sort 1329 | { type$ "manual" = 1330 | 'author.organization.sort 1331 | 'author.sort 1332 | if$ 1333 | } 1334 | if$ 1335 | } 1336 | if$ 1337 | " " 1338 | * 1339 | year field.or.null sortify 1340 | * 1341 | " " 1342 | * 1343 | cite$ 1344 | * 1345 | #1 entry.max$ substring$ 1346 | 'sort.label := 1347 | sort.label * 1348 | #1 entry.max$ substring$ 1349 | 'sort.key$ := 1350 | } 1351 | 1352 | ITERATE {presort} 1353 | 1354 | SORT 1355 | 1356 | STRINGS { longest.label last.label next.extra } 1357 | 1358 | INTEGERS { longest.label.width last.extra.num number.label } 1359 | 1360 | FUNCTION {initialize.longest.label} 1361 | { "" 'longest.label := 1362 | #0 int.to.chr$ 'last.label := 1363 | "" 'next.extra := 1364 | #0 'longest.label.width := 1365 | #0 'last.extra.num := 1366 | #0 'number.label := 1367 | } 1368 | 1369 | FUNCTION {forward.pass} 1370 | { last.label label = 1371 | { last.extra.num #1 + 'last.extra.num := 1372 | last.extra.num int.to.chr$ 'extra.label := 1373 | } 1374 | { "a" chr.to.int$ 'last.extra.num := 1375 | "" 'extra.label := 1376 | label 'last.label := 1377 | } 1378 | if$ 1379 | number.label #1 + 'number.label := 1380 | } 1381 | 1382 | FUNCTION {reverse.pass} 1383 | { next.extra "b" = 1384 | { "a" 'extra.label := } 1385 | 'skip$ 1386 | if$ 1387 | extra.label 'next.extra := 1388 | extra.label 1389 | duplicate$ empty$ 1390 | 'skip$ 1391 | { "{\natexlab{" swap$ * "}}" * } 1392 | if$ 1393 | 'extra.label := 1394 | label extra.label * 'label := 1395 | } 1396 | 1397 | EXECUTE {initialize.longest.label} 1398 | 1399 | ITERATE {forward.pass} 1400 | 1401 | REVERSE {reverse.pass} 1402 | 1403 | FUNCTION {bib.sort.order} 1404 | { sort.label 'sort.key$ := 1405 | } 1406 | 1407 | ITERATE {bib.sort.order} 1408 | 1409 | SORT 1410 | 1411 | FUNCTION {begin.bib} 1412 | { preamble$ empty$ 1413 | 'skip$ 1414 | { preamble$ write$ newline$ } 1415 | if$ 1416 | "\begin{thebibliography}{" number.label int.to.str$ * "}" * 1417 | write$ newline$ 1418 | "\providecommand{\natexlab}[1]{#1}" 1419 | write$ newline$ 1420 | "\providecommand{\url}[1]{\texttt{#1}}" 1421 | write$ newline$ 1422 | "\expandafter\ifx\csname urlstyle\endcsname\relax" 1423 | write$ newline$ 1424 | " \providecommand{\doi}[1]{doi: #1}\else" 1425 | write$ newline$ 1426 | " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" 1427 | write$ newline$ 1428 | } 1429 | 1430 | EXECUTE {begin.bib} 1431 | 1432 | EXECUTE {init.state.consts} 1433 | 1434 | ITERATE {call.type$} 1435 | 1436 | FUNCTION {end.bib} 1437 | { newline$ 1438 | "\end{thebibliography}" write$ newline$ 1439 | } 1440 | 1441 | EXECUTE {end.bib} 1442 | -------------------------------------------------------------------------------- /nddiss2e.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `nddiss2e.cls', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% nddiss2e.dtx (with options: `class') 8 | %% 9 | %% This is a generated file. 10 | %% 11 | %% Copyright (C) 2004-2005 Sameer Vijay 12 | %% 13 | %% This file may be distributed and/or modified under the 14 | %% conditions of the LaTeX Project Public License, either 15 | %% version 1.2 of this license or (at your option) any later 16 | %% version. The latest version of this license is in 17 | %% http://www.latex-project.org/lppl.txt 18 | %% 19 | %% 20 | %% ============================================================== 21 | %% 22 | %% Notre Dame's Dissertation document class by Sameer Vijay 23 | %% that adheres to the University of Notre Dame guidelines 24 | %% published in Spring 2004. 25 | %% 26 | %% Please send any improvements/suggestions to : 27 | %% Shari Hill, Graduate Reviewer. 28 | %% shill2@nd.edu 29 | %% 30 | %% For documentation on how to use nddiss2e class, process the 31 | %% file nddiss2e.dtx through LaTeX. 32 | %% 33 | %% ============================================================== 34 | %% 35 | \NeedsTeXFormat{LaTeX2e}[1999/12/01] 36 | \ProvidesClass{nddiss2e} 37 | [2016/10/16 v3.2016% 38 | Notre Dame Dissertation document class] 39 | \providecommand{\dissfileversion}{3.2017.2} 40 | \providecommand{\dissfiledate}{2017/05/09} 41 | \newif\ifdiss@draft \diss@drafttrue 42 | \newif\ifdiss@review \diss@reviewfalse 43 | \newif\ifdiss@final \diss@finalfalse 44 | \newif\ifinfo@page \info@pagetrue 45 | \newif\ifadvisors@two \advisors@twofalse 46 | \newif\ifdiss@dedication \diss@dedicationfalse 47 | \newif\ifnum@refs \num@refstrue 48 | \newif\ifnatbib@refs \natbib@refstrue 49 | \newif\ifcentered@chaptitle \centered@chaptitletrue 50 | \newif\ifline@numbers \line@numbersfalse 51 | \newif\if@ltfirstcaption 52 | \DeclareOption{draft}{ 53 | \setlength\overfullrule{5pt} 54 | \typeout{DRAFT MODE}\typeout{}\info@pagefalse% 55 | \diss@drafttrue\diss@reviewfalse\diss@finalfalse 56 | \PassOptionsToClass{letterpaper,oneside,draft}{book} } 57 | \DeclareOption{review}{ 58 | \typeout{REVIEW MODE}\typeout{}\info@pagetrue% 59 | \diss@draftfalse\diss@reviewtrue\diss@finalfalse 60 | \PassOptionsToClass{12pt,letterpaper,oneside,final}{book} } 61 | \DeclareOption{final}{ 62 | \setlength\overfullrule{0pt} 63 | \typeout{FINAL MODE}\typeout{}\info@pagetrue% 64 | \diss@draftfalse\diss@reviewfalse\diss@finaltrue 65 | \PassOptionsToClass{12pt,letterpaper,oneside,final}{book} } 66 | \DeclareOption{numrefs}{ 67 | \typeout{NUMBERED REFERENCES}\num@refstrue} 68 | \DeclareOption{textrefs}{ 69 | \typeout{TEXTUAL REFERENCES}\num@refsfalse} 70 | \DeclareOption{nonatbib}{ 71 | \typeout{NO NATBIB}\natbib@refsfalse} 72 | \DeclareOption{nocenter}{\centered@chaptitlefalse} 73 | \DeclareOption{openbib}{% 74 | \PassOptionsToPackage{openbib}{natbib} 75 | } 76 | \DeclareOption{sort}{% 77 | \PassOptionsToPackage{sort}{natbib} 78 | } 79 | \DeclareOption{compress}{% 80 | \PassOptionsToPackage{compress}{natbib} 81 | } 82 | \DeclareOption{sort&compress}{% 83 | \PassOptionsToPackage{sort&compress}{natbib} 84 | } 85 | \DeclareOption{twoadvisors}{\typeout{TWO ADVISORS}\typeout{}% 86 | \advisors@twotrue} 87 | \DeclareOption{10pt}{% 88 | \ifdiss@draft% 89 | \PassOptionsToClass{10pt}{book}% 90 | \else% 91 | \OptionNotUsed% 92 | \ClassWarningNoLine{nddiss2e}% 93 | {Font size 10pt not allowed; using 12pt}% 94 | \fi% 95 | } 96 | \DeclareOption{11pt}{% 97 | \ifdiss@draft% 98 | \PassOptionsToClass{11pt}{book}% 99 | \else% 100 | \OptionNotUsed% 101 | \ClassWarningNoLine{nddiss2e}% 102 | {Font size 11pt not allowed; using 12pt}% 103 | \fi 104 | } 105 | \DeclareOption{12pt}{% 106 | \PassOptionsToClass{12pt}{book}% 107 | } 108 | \DeclareOption{noinfo}{\info@pagefalse} 109 | \DeclareOption{twoside}{\typeout{TWO SIDED DOCUMENT}% 110 | \PassOptionsToClass{twoside}{book} }% 111 | \DeclareOption{showframe}{% 112 | \ifdiss@review% 113 | \PassOptionsToPackage{showframe}{geometry}% 114 | \else% 115 | \OptionNotUsed 116 | \ClassWarningNoLine{nddiss2e}% 117 | {Frame only shown in review mode; not showing frame} 118 | \fi 119 | } 120 | \DeclareOption{linenumbers}{% 121 | \ifdiss@final% 122 | \OptionNotUsed% 123 | \ClassWarningNoLine{nddiss2e}% 124 | {Line numbers are disabled in final mode.}% 125 | \else% 126 | \typeout{LINE NUMBERS}\line@numberstrue% 127 | \fi 128 | } 129 | \DeclareOption*{\ClassWarning{nddiss2e}% 130 | {UnknownOption `\CurrentOption'} }% 131 | \ProcessOptions\relax 132 | \LoadClass{book} 133 | \RequirePackage{ifthen,exscale,etoolbox,xpatch} 134 | \RequirePackage{ifpdf,ifluatex,ifxetex} 135 | \RequirePackage[ 136 | plainpages=false, 137 | pdfpagelabels, 138 | bookmarks=true,% 139 | bookmarksnumbered=true,% 140 | linktocpage=true,% 141 | breaklinks=true,% 142 | bookmarkstype=toc,% 143 | colorlinks=false,% 144 | pdfpagemode=UseOutlines]{hyperref} 145 | \RequirePackage[pass]{geometry} 146 | \RequirePackage{longtable} 147 | \RequirePackage[flushleft]{threeparttable} 148 | \RequirePackage[flushleft]{threeparttablex} 149 | \RequirePackage{xspace} 150 | \RequirePackage{indentfirst} 151 | \RequirePackage{tabularx} 152 | \RequirePackage{enumitem} 153 | \RequirePackage{latexsym} 154 | \RequirePackage{textcase} 155 | \ifboolexpr{bool{luatex}}{% 156 | \ifcsdef{pdfadjustspacing}{}{% 157 | \let\pdfadjustspacing \adjustspacing 158 | } 159 | }{} 160 | \ifboolexpr{bool{pdf} or bool{xetex} or bool{luatex}}{% 161 | \RequirePackage{epsfig} 162 | \RequirePackage{color} 163 | \RequirePackage{graphicx} 164 | \AtBeginDocument{ 165 | \pdfadjustspacing=1 166 | } 167 | }{% 168 | \RequirePackage[dvips]{epsfig} 169 | \RequirePackage[dvips]{color} 170 | \RequirePackage[dvips]{graphicx} 171 | } 172 | \ifnatbib@refs 173 | \ifnum@refs 174 | \RequirePackage[numbers]{natbib} 175 | \else 176 | \RequirePackage[authoryear]{natbib} 177 | \fi 178 | \fi 179 | \AtBeginDocument{ 180 | \RequirePackage{amsmath} 181 | \RequirePackage{float} 182 | \RequirePackage{booktabs} 183 | \RequirePackage{rotating} 184 | \RequirePackage{xurl} 185 | \RequirePackage[doublespacing]{setspace}[2000/12/01] 186 | \ifboolexpr{bool{pdf} or bool{xetex} or bool{luatex}}{% 187 | \ifluatex 188 | \RequirePackage[luatex]{pdflscape} 189 | \else 190 | \ifxetex 191 | \RequirePackage[xetex]{pdflscape} 192 | \else 193 | \ifpdf 194 | \RequirePackage{pdflscape} 195 | \fi 196 | \fi 197 | \fi 198 | }{} 199 | } 200 | \RequirePackage{metalogo} 201 | \ifline@numbers 202 | \AtBeginDocument{% 203 | \RequirePackage{lineno}% 204 | \@ifpackagelater{lineno}{2022/07/30} 205 | {}% 206 | {% 207 | \newcommand*\linenoamsmath@patch[1]{% 208 | \cspreto{#1}{\linenomath}% 209 | \cspreto{#1*}{\linenomath}% 210 | \csappto{end#1}{\endlinenomath}% 211 | \csappto{end#1*}{\endlinenomath}% 212 | } 213 | \newcount\linenoamsmath@ams@eqpen 214 | \cspreto{math@cr@}{\global\@eqpen\numexpr\@eqpen+\linenoamsmath@ams@eqpen\relax} 215 | \newcommand*\linenoamsmath@patch@ams[1]{% 216 | \cspreto{#1}{% 217 | \linenomath% 218 | \postdisplaypenalty=0% 219 | \global\linenoamsmath@ams@eqpen\interdisplaylinepenalty% 220 | }% 221 | \cspreto{#1*}{% 222 | \linenomath% 223 | \postdisplaypenalty=0% 224 | \global\linenoamsmath@ams@eqpen\interdisplaylinepenalty% 225 | }% 226 | \csappto{end#1}{% 227 | \global\linenoamsmath@ams@eqpen\z@% 228 | \endlinenomath% 229 | }% 230 | \csappto{end#1*}{% 231 | \global\linenoamsmath@ams@eqpen\z@% 232 | \endlinenomath% 233 | }% 234 | } 235 | \linenoamsmath@patch{equation} 236 | \linenoamsmath@patch@ams{multline} 237 | \linenoamsmath@patch@ams{gather} 238 | \linenoamsmath@patch@ams{align} 239 | \linenoamsmath@patch@ams{alignat} 240 | \linenoamsmath@patch@ams{flalign} 241 | \let\linenoamsmath@ams@mmeasure\mmeasure@ 242 | \def\mmeasure@#1{% 243 | \global\linenoamsmath@ams@eqpen\z@% 244 | \begingroup% 245 | \interdisplaylinepenalty=0% 246 | \linenoamsmath@ams@mmeasure{#1\\}% 247 | \endgroup% 248 | \global\linenoamsmath@ams@eqpen\interdisplaylinepenalty% 249 | } 250 | }% 251 | \linenumbers% 252 | } 253 | \fi 254 | \AtBeginDocument{ 255 | \pagestyle{plain} 256 | \normalspacing 257 | \typeout{Pagestyle and spacing normal} 258 | } 259 | \newcommand{\normalspacing}{\doublespacing} 260 | \newcommand\single@baselinestretch{0.979} 261 | \newcommand\double@baselinestretch{1.625} 262 | \newlength{\usedtextsize} 263 | \setlength{\usedtextsize}{\f@size pt} 264 | \newlength{\single@skip} 265 | \setlength{\single@skip}{\single@baselinestretch \usedtextsize} 266 | \newlength{\double@skip} 267 | \setlength{\double@skip}{\double@baselinestretch \usedtextsize} 268 | \setlength{\footnotesep}{\double@skip} 269 | \setlength{\hoffset}{0pt} 270 | \setlength{\voffset}{0pt} 271 | \setlength{\topmargin}{-32pt} 272 | \setlength{\headsep}{20pt} 273 | \setlength{\marginparwidth}{47pt} 274 | \setlength{\marginparsep}{7pt} 275 | \setlength{\textheight}{648pt} 276 | \setlength{\textwidth}{432pt} 277 | \setlength{\oddsidemargin}{36pt} 278 | \setlength{\evensidemargin}{1.755pt} 279 | \setlength{\footskip}{30pt} 280 | \setlength{\floatsep}{30pt} 281 | \setlength{\intextsep}{50pt} 282 | \newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}% 283 | \cleardoublepage}} 284 | \DeclareRobustCommand{\nddiss}{% 285 | \textsf{{\scshape nd}diss}\kern-0.03em% 286 | 2$_\mathsf{\textstyle\varepsilon}$} 287 | \renewcommand{\title}[1]{\def\@title{#1}} 288 | \newcommand{\work}[1]{\def\@work{#1}} 289 | \newcommand{\degaward}[1]{\def\@degaward{#1}} 290 | \newcommand{\advisor}[1]{\def\@advisor{#1}} 291 | \ifadvisors@two 292 | \newcommand{\secondadvisor}[1]{\def\@secondadvisor{#1}} 293 | \fi 294 | \newcommand{\department}[1]{\ClassWarning{nddiss2e}% 295 | {The \protect\department\space macro is deprecated. Use \protect\program\space instead.}% 296 | \def\@program{#1}} 297 | \newcommand{\program}[1]{\def\@program{#1}} 298 | \newcommand{\degdate}[1]{\def\@degdate{#1}} 299 | \degdate{\ifcase\month\or 300 | January\or February\or March\or April\or May\or June\or 301 | July\or August\or September\or October\or November\or December\fi 302 | \space\number\year} 303 | \title{} 304 | \author{} 305 | \work{} 306 | \degaward{} 307 | \advisor{} 308 | \ifadvisors@two \secondadvisor{} \fi 309 | \program{} 310 | \DeclareRobustCommand{\@infopage}{ 311 | \thispagestyle{empty} 312 | \null\vspace*{\single@skip} 313 | \begin{center} 314 | This \@work\space \\ entitled \\ \MakeTextUppercase{\@title} \\ 315 | typeset with \nddiss\ v% 316 | \dissfileversion\ (\dissfiledate) % 317 | on \today\space for\\ 318 | \@author\\ 319 | \end{center} 320 | 321 | \normalfont\normalsize\singlespacing 322 | 323 | \noindent This \LaTeXe\space classfile conforms to the 324 | University of Notre Dame style guidelines as of Fall 325 | 2012. However it is still possible to generate a 326 | non-conformant document if the instructions in the class 327 | file documentation are not followed! 328 | 329 | \begin{center} 330 | \begin{minipage}{0.75\textwidth} 331 | \noindent Be sure to refer to the published Graduate 332 | School guidelines at \url{http://graduateschool.nd.edu} 333 | as well. Those guidelines override everything mentioned 334 | about formatting in the documentation for 335 | this \nddiss\space class file. 336 | \end{minipage} 337 | \end{center} 338 | 339 | \noindent\itshape This page can be disabled by 340 | specifying the ``{\upshape\ttfamily noinfo}'' option to the class invocation. 341 | \upshape 342 | (i.e.,{\ttfamily{\textbackslash}documentclass[\ldots,noinfo]\{nddiss2e\}} 343 | ) 344 | \begin{center} 345 | {\bfseries\large\singlespacing This page is \slshape NOT 346 | \upshape part of the dissertation/thesis. It should be disabled before 347 | making final, formal submission, but should be included in the version 348 | submitted for format check.} 349 | \end{center} 350 | \normalsize\normalfont 351 | \nddiss\ documentation can be found at these locations: 352 | \begin{center} 353 | \url{http://graduateschool.nd.edu} \\ 354 | \url{https://ctan.org/pkg/nddiss} 355 | \end{center} 356 | 357 | \vfill 358 | \normalfont\normalsize\normalspacing\eject} 359 | \renewcommand{\maketitle}{ 360 | \hypersetup{ 361 | pdftitle={\@title}, 362 | pdfauthor={\@author}, 363 | pdfsubject={\@program} 364 | } 365 | \ifinfo@page\@infopage\else\relax\fi% 366 | \clearemptydoublepage 367 | \normalfont\normalsize\normalspacing 368 | \begin{titlepage}% 369 | \ifthenelse{\equal{\@work}{}}{\ClassError{nddiss2e}% 370 | {The \protect\work\space macro is undefined.\MessageBreak 371 | The title page may be incorrectly formatted.}% 372 | {Specify \protect\work\space as Dissertation or Thesis}}{\relax} 373 | \ifthenelse{\equal{\@degaward}{}}{\ClassError{nddiss2e}% 374 | {The \protect\degaward\space macro is undefined.\MessageBreak 375 | The title page may be incorrectly formatted.}% 376 | {Specify \protect\degaward\space. It defines the awarded degree% 377 | (Ph.D., M.S., etc.)}}{\relax} 378 | \ifthenelse{\equal{\@advisor}{}}{\ClassError{nddiss2e}% 379 | {The \protect\advisor\space macro is undefined.\MessageBreak 380 | The title page may be incorrectly formatted.}% 381 | {Spepcify \protect\advisor\space It is who signs your walking papers!}}{\relax} 382 | \ifthenelse{\equal{\@program}{}}{\ClassError{nddiss2e}% 383 | {The \protect\program\space macro is undefined.\MessageBreak 384 | The title page may be incorrectly formatted.}% 385 | {Specify which \protect\program\space is awarding your degree?}}{\relax} 386 | \ifadvisors@two 387 | \ifthenelse{\equal{\@secondadvisor}{}}{\ClassError{nddiss2e}% 388 | {The \protect\secondadvisor\space macro is undefined.\MessageBreak 389 | The title page may be incorrectly formatted.}% 390 | {Use \protect\secondadvisor\space for your second advisor}}{\relax} 391 | \fi 392 | \skip1=2.1\double@skip 393 | \skip2=1.7\double@skip 394 | \skip3=2.7\double@skip 395 | \skip4=36pt 396 | \ifadvisors@two 397 | \skip1=1.6\double@skip 398 | \else\relax 399 | \fi 400 | \setbox0=\vbox{\MakeTextUppercase{\@title}} 401 | \ifdim \ht0 > 3\double@skip 402 | \advance \skip1 -.75\double@skip 403 | \else 404 | \ifdim \ht0 > 2\double@skip 405 | \advance\skip1 -.5\double@skip 406 | \else 407 | \ifdim \ht0 > \double@skip 408 | \advance\skip1 -.25\double@skip 409 | \fi 410 | \fi 411 | \fi 412 | \setbox1=\vbox{\@degaward} 413 | \ifdim \ht1 > 2\double@skip 414 | \advance\skip1 -.5\double@skip 415 | \else 416 | \ifdim \ht1 > \double@skip 417 | \advance \skip1 -.25\double@skip 418 | \else 419 | \relax 420 | \fi 421 | \fi 422 | \ifadvisors@two 423 | \ifdim \ht0 > 3\double@skip 424 | \ifdim \ht1 > \double@skip 425 | \advance \skip4 -.675\double@skip 426 | \advance \skip2 -.4\double@skip 427 | \advance \skip1 .25\double@skip 428 | \else \relax 429 | \fi 430 | \else 431 | \ifdim \ht0 > 2\double@skip 432 | \ifdim \ht1 > 2\double@skip 433 | \advance \skip2 -.4\double@skip 434 | \advance \skip1 .1\double@skip 435 | \else \relax 436 | \fi 437 | \else \relax 438 | \fi 439 | \fi 440 | \else \relax 441 | \fi 442 | \null\vspace*{\skip4} 443 | \begin{center}% 444 | \MakeTextUppercase{\@title} \par% 445 | \vskip\skip1% 446 | A \@work \par% 447 | \vskip\skip1% 448 | Submitted to the Graduate School \\ 449 | of the University of Notre Dame \\ 450 | in Partial Fulfillment of the Requirements \\ 451 | for the Degree of \par 452 | \vskip\skip1% 453 | \@degaward% 454 | \vskip\skip1% 455 | by \\% 456 | \@author 457 | \ifadvisors@two 458 | \vskip\skip2 459 | \hspace*{2.75in}\underline{\hspace{2.75in}}\\% 460 | \hspace*{2.75in}\@advisor, Co-Director\\ 461 | \else 462 | \vskip\skip3 463 | \hspace*{2.75in}\underline{\hspace{2.75in}}\\% 464 | \hspace*{2.75in}\@advisor, Director\\ 465 | \fi% 466 | \ifadvisors@two % 467 | \vskip\double@skip% 468 | \hspace*{2.75in}\underline{\hspace{2.75in}}\\% 469 | \hspace*{2.75in}\@secondadvisor, Co-Director\\ 470 | \fi 471 | \vskip\skip1% 472 | Graduate Program in \@program \\% 473 | Notre Dame, Indiana \\ 474 | \@degdate 475 | \end{center} 476 | \end{titlepage}% 477 | } 478 | \newenvironment{copyrightpage}{% 479 | \clearemptydoublepage 480 | \typeout{Copyright page} 481 | \pagestyle{empty} 482 | \null\vfil 483 | \begin{center}\normalspacing}% 484 | { \end{center}\vfil\null \clearpage } 485 | \newcommand{\@copyrightyear}{\the\year} 486 | \newcommand{\@copyrightholder}{\@author} 487 | \newcommand{\@copyrightlicense}{All Rights Reserved} 488 | \newcommand{\copyrightyear}[1]{\renewcommand{\@copyrightyear}{#1}} 489 | \newcommand{\copyrightholder}[1]{\renewcommand{\@copyrightholder}{#1}} 490 | \newcommand{\copyrightlicense}[1]{\renewcommand{\@copyrightlicense}{#1}} 491 | \newcommand{\makecopyright}{% 492 | \ifdiss@final 493 | \begin{copyrightpage} 494 | \normalfont\normalsize 495 | \copyright\space Copyright by \\ 496 | \@copyrightholder \\ 497 | \@copyrightyear\\ 498 | \@copyrightlicense \\[10mm] 499 | \end{copyrightpage} 500 | \fi 501 | }% 502 | \newcommand{\makepublicdomain}{% 503 | \ifdiss@final 504 | \begin{copyrightpage} 505 | This document is in the public domain. 506 | \end{copyrightpage} 507 | \fi 508 | }% 509 | \providecommand{\abstractname}{Abstract} 510 | \providecommand{\dedicationname}{\mbox{}} 511 | \providecommand{\prefacename}{Preface} 512 | \providecommand{\acknowledgename}{Acknowledgments} 513 | \providecommand{\symbolsname}{Symbols} 514 | \renewcommand{\tablename}{Table} 515 | \renewcommand{\figurename}{Figure} 516 | \renewcommand{\partname}{Part} 517 | \renewcommand{\chaptername}{Chapter} 518 | \renewcommand{\appendixname}{Appendix} 519 | \renewcommand{\contentsname}{Contents} 520 | \renewcommand{\listfigurename}{Figures} 521 | \renewcommand{\listtablename}{Tables} 522 | \renewcommand{\bibname}{Bibliography} 523 | \renewcommand{\indexname}{Index} 524 | \newenvironment{abstract}{% 525 | \ifboolexpr{bool{pdf} or bool{xetex} or bool{luatex}}{% 526 | \pdfbookmark[0]{\abstractname}{abstract}%abstract.0 527 | }{} 528 | \typeout{Abstract page(s)} 529 | \renewcommand{\@oddfoot}{\@empty} 530 | \renewcommand{\@evenfoot}{\@empty} 531 | \let\@evenhead\@oddhead 532 | \renewcommand{\@oddhead}{\hfil{\upshape\@author}} 533 | \titlepage 534 | \null 535 | \begin{center} 536 | \vspace*{36pt} 537 | {\normalsize\mdseries \normalspacing 538 | \MakeTextUppercase{\@title} \\[3.5ex] 539 | \normalsize\abstractname \\ by \\ \@author\space}% 540 | \@endparpenalty \@M 541 | \end{center}\par}% 542 | {\par\vfil\null\endtitlepage} 543 | \newenvironment{dedication}{% 544 | \global\diss@dedicationtrue 545 | \typeout{Dedication page} 546 | \chapter*{\dedicationname}% 547 | \thispagestyle{plain} 548 | \setcounter{page}{2} 549 | \null\centering} 550 | {\par\null\clearpage}% 551 | \renewcommand\tableofcontents{% 552 | \ifdiss@dedication\relax\else\setcounter{page}{2}\fi 553 | \chapter*{\contentsname}% 554 | \ifboolexpr{bool{pdf} or bool{xetex} or bool{luatex}}{% 555 | \pdfbookmark[0]{\contentsname}{contents}%contents.0 556 | }{} 557 | \singlespacing 558 | \@starttoc{toc}% 559 | \normalspacing 560 | } 561 | \renewcommand\listoffigures{% 562 | \chapter*{\listfigurename}% 563 | \addcontentsline{toc}{chapter}{\listfigurename}% 564 | \typeout{List of figures - \listfigurename} 565 | \singlespacing 566 | \@starttoc{lof}% 567 | \normalspacing 568 | } 569 | \renewcommand\listoftables{% 570 | \chapter*{\listtablename}% 571 | \addcontentsline{toc}{chapter}{\listtablename}% 572 | \typeout{List of tables - \listtablename} 573 | \singlespacing 574 | \@starttoc{lot}% 575 | \normalspacing 576 | } 577 | \newenvironment{preface}{% 578 | \typeout{Preface page} 579 | \chapter*{\prefacename} 580 | \addcontentsline{toc}{chapter}{\prefacename}% 581 | }% 582 | {\par\null\clearpage}% 583 | \newenvironment{acknowledge}{% 584 | \typeout{Acknowledgment page} 585 | \chapter*{\acknowledgename} 586 | \addcontentsline{toc}{chapter}{\acknowledgename}% 587 | }% 588 | {\par\null\clearpage}% 589 | \newcommand\unnumchapter[1]{% 590 | \chapter*{#1}% 591 | \addcontentsline{toc}{chapter}{#1}} 592 | \newcommand{\sym}[2]{\ensuremath{#1} & #2 \\} 593 | \newenvironment{symbols}[1][rl]{% 594 | \typeout{Symbols page} 595 | \chapter*{\symbolsname}% 596 | \addcontentsline{toc}{chapter}{\symbolsname}% 597 | \begin{center}\begin{longtable}{#1}}% 598 | {\end{longtable}\end{center}\par\null} 599 | \def\@chapter[#1]#2{ 600 | \ifnum \c@secnumdepth >\m@ne 601 | \if@mainmatter 602 | \refstepcounter{chapter}% 603 | \typeout{\MakeTextUppercase{\@chapapp\space\thechapter.}}% 604 | \addcontentsline{toc}{chapter}% 605 | {{\@chapapp\ \thechapter: #1}}% 606 | \else 607 | \addcontentsline{toc}{chapter}{#1}% 608 | \fi 609 | \else 610 | \addcontentsline{toc}{chapter}{#1}% 611 | \fi 612 | \chaptermark{#1}% 613 | \addtocontents{lof}{\protect\addvspace{10\p@}}% 614 | \addtocontents{lot}{\protect\addvspace{10\p@}}% 615 | \@makechapterhead{\MakeTextUppercase{#2}}% 616 | \@afterheading }% 617 | \def\@part[#1]#2{% 618 | \ifnum \c@secnumdepth >-2\relax 619 | \refstepcounter{part}% 620 | \addcontentsline{toc}{part}{\partname\ \thepart:\hspace{1em}#1}% 621 | \else 622 | \addcontentsline{toc}{part}{#1}% 623 | \fi 624 | \markboth{}{}% 625 | {\centering 626 | \interlinepenalty \@M 627 | \normalfont 628 | \ifnum \c@secnumdepth >-2\relax 629 | \normalsize\mdseries \MakeTextUppercase{\partname}\nobreakspace\thepart 630 | \par 631 | \vskip 20\p@ 632 | \fi 633 | \normalsize\mdseries \MakeTextUppercase{#2}\par}% 634 | \@endpart} 635 | \def\@spart#1{% 636 | {\centering 637 | \interlinepenalty \@M 638 | \normalfont 639 | \normalsize\mdseries #1\par}% 640 | \@endpart} 641 | \renewcommand{\@makechapterhead}[1]{% 642 | \vspace*{30pt}% 643 | {\parindent \z@ \raggedright 644 | \ifnum \c@secnumdepth >\m@ne 645 | \normalfont\normalsize% 646 | \if@mainmatter 647 | \ifcentered@chaptitle\center\else\relax\fi% 648 | \MakeTextUppercase{\@chapapp{} \thechapter}\par\nobreak 649 | \fi 650 | \fi 651 | \interlinepenalty\@M 652 | \ifcentered@chaptitle\center\else\relax\fi% 653 | \mdseries{#1}\par\nobreak 654 | \vskip 30\p@ 655 | }} 656 | \renewcommand{\@makeschapterhead}[1]{% 657 | \vspace*{30pt}% 658 | {\parindent \z@ \raggedright 659 | \normalfont\normalsize% 660 | \interlinepenalty\@M 661 | \ifcentered@chaptitle\center\else\relax\fi 662 | \mdseries{\MakeTextUppercase{#1}}\par\nobreak 663 | \vskip 30\p@ 664 | }} 665 | \renewcommand\section{\suppressfloats[t]% 666 | \@startsection {section}{1}{\z@}% 667 | {-4.2ex \@plus -1ex \@minus -.2ex}% 668 | {1.8ex \@plus.2ex}% 669 | {\normalfont\normalsize\mdseries} } 670 | \renewcommand\subsection{\suppressfloats[t]% 671 | \@startsection{subsection}{2}{\z@}% 672 | {-3.9ex\@plus -1ex \@minus -.2ex}% 673 | {1.2ex \@plus .2ex}% 674 | {\normalfont\normalsize\mdseries} } 675 | \renewcommand\subsubsection{\suppressfloats[t]% 676 | \@startsection{subsubsection}{3}{\z@}% 677 | {-3.9ex\@plus -1ex \@minus -.2ex}% 678 | {1.2ex \@plus .2ex}% 679 | {\normalfont\normalsize\mdseries} } 680 | \renewcommand\paragraph{% 681 | \@startsection{paragraph}{4}{\z@}% 682 | {3.9ex \@plus1ex \@minus.2ex}% 683 | {-1em}% 684 | {\normalfont\normalsize\mdseries} } 685 | \renewcommand\subparagraph{% 686 | \@startsection{subparagraph}{5}{\parindent}% 687 | {3.9ex \@plus1ex \@minus .2ex}% 688 | {-1em}% 689 | {\normalfont\normalsize\mdseries} } 690 | \renewcommand*\l@part[2]{% 691 | \ifnum \c@tocdepth >-2\relax 692 | \addpenalty{-\@highpenalty}% 693 | \setlength\@tempdima{1.5em}% 694 | \begingroup 695 | {\leavevmode 696 | \@dottedtocline{1}{0pt}{\@tempdima}{#1}{#2} 697 | }\par 698 | \nobreak 699 | \global\@nobreaktrue 700 | \everypar{\global\@nobreakfalse\everypar{}}% 701 | \endgroup 702 | \fi} 703 | \renewcommand*{\l@chapter}[2]{% 704 | \addpenalty{-\@highpenalty}% 705 | \setlength\@tempdima{1.5em}% 706 | \begingroup \leavevmode 707 | \@dottedtocline{1}{0pt}{\@tempdima}{#1}{#2} 708 | \par 709 | \penalty\@highpenalty 710 | \endgroup 711 | } 712 | \addtocounter{secnumdepth}{1} 713 | \addtocounter{tocdepth}{1} 714 | \renewcommand{\thesubsubsection}{% 715 | \thesubsection.\arabic{subsubsection}} 716 | \renewenvironment{quote} 717 | {\list{}{\rightmargin\leftmargin}% 718 | \singlespacing 719 | \item\relax} 720 | {\endlist} 721 | \AtBeginEnvironment{itemize}{\par\singlespacing} 722 | \AtBeginEnvironment{enumerate}{\par\singlespacing} 723 | \AtBeginEnvironment{description}{\par\singlespacing} 724 | \AtBeginEnvironment{tablenotes}{\footnotesize} 725 | \xpatchcmd{\TPTdoTablenotes}{\itemsep\z@}{\itemsep10pt}{}{} 726 | \xpatchcmd{\TPTdoTablenotes}{\itemindent\z@}{\itemindent18pt}{}{} 727 | \setlength\abovecaptionskip{20\p@} 728 | \newlength\capwidth 729 | \setlength{\capwidth}{0.90\textwidth} 730 | \newlength\abovetableskip 731 | \newlength\belowtableskip 732 | \newlength\abovefigureskip 733 | \newlength\belowfigureskip 734 | \setlength\abovetableskip\belowcaptionskip 735 | \setlength\belowtableskip\abovecaptionskip 736 | \setlength\abovefigureskip\abovecaptionskip 737 | \setlength\belowfigureskip\belowcaptionskip 738 | \renewenvironment{figure}{% 739 | \setlength{\abovecaptionskip}{\abovefigureskip} 740 | \setlength{\belowcaptionskip}{\belowfigureskip} 741 | \let\@makecaption\@makefigurecaption 742 | \@float{figure}}% 743 | {% 744 | \addtocontents{lof}{ {\vskip 0.4em} }% 745 | \end@float% 746 | } 747 | \long\def\@makefigurecaption#1#2{% 748 | \vskip\abovecaptionskip 749 | \begin{center} 750 | \parbox{\capwidth}{ 751 | \centering\singlespacing 752 | {#1}. {#2}%\par 753 | \vskip\belowcaptionskip\normalspacing }% 754 | \end{center} 755 | }% 756 | \renewenvironment{table}[1][tbp]{% 757 | \setlength{\abovecaptionskip}{\abovetableskip} 758 | \setlength{\belowcaptionskip}{\belowtableskip} 759 | \renewcommand{\arraystretch}{\double@baselinestretch} 760 | \let\scaption\caption% 761 | \renewcommand*{\caption}[2][]{% 762 | \ifthenelse{\equal{##1}{}}{% 763 | \def\shortcaption{##2}% 764 | }{% 765 | \def\shortcaption{##1}% 766 | }% 767 | \scaption[\shortcaption]{\MakeTextUppercase{##2}}% 768 | }% 769 | \let\@makecaption\@maketablecaption 770 | \@float{table}[#1]% 771 | \singlespacing% 772 | }% 773 | {% 774 | \addtocontents{lot}{ {\vskip 0.4em} }% 775 | \end@float% 776 | } 777 | \long\def\@maketablecaption#1#2{ 778 | \vskip\abovecaptionskip 779 | \begin{center} 780 | \makebox[\linewidth]{ 781 | \parbox{\capwidth}{ 782 | \centering\normalspacing 783 | \MakeTextUppercase{#1}\\[\single@skip] 784 | {#2}%\par 785 | \vskip\belowcaptionskip }% 786 | }% 787 | \end{center} 788 | } 789 | \renewcommand\longtable{% 790 | \singlespacing 791 | \renewcommand{\arraystretch}{\double@baselinestretch} 792 | \begingroup 793 | \@ltfirstcaptiontrue 794 | \@ifnextchar[\LT@array{\LT@array[x]}} 795 | \renewcommand\endlongtable{% 796 | \crcr 797 | \noalign{% 798 | \let\LT@entry\LT@entry@chop 799 | \xdef\LT@save@row{\LT@save@row}}% 800 | \LT@echunk 801 | \LT@start 802 | \unvbox\z@ 803 | \LT@get@widths 804 | \if@filesw 805 | {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% 806 | \gdef\expandafter\noexpand 807 | \csname LT@\romannumeral\c@LT@tables\endcsname 808 | {\LT@save@row}}}% 809 | \fi 810 | \ifx\LT@save@row\LT@@save@row 811 | \else 812 | \LT@warn{Column \@width s have changed\MessageBreak 813 | in table \thetable}% 814 | \LT@final@warn 815 | \fi 816 | \endgraf\penalty -\LT@end@pen 817 | \addtocontents{lot}{ {\vskip 0.4em} }% 818 | \endgroup 819 | \global\@mparbottom\z@ 820 | \pagegoal\vsize 821 | \endgraf\penalty\z@\addvspace\LTpost 822 | \ifvoid\footins\else\insert\footins{}\fi 823 | } 824 | \setlength{\LTcapwidth}{\capwidth} 825 | \renewcommand\LT@makecaption[3]{% 826 | \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% 827 | \vskip\abovetableskip% 828 | \centering\normalspacing 829 | \if@ltfirstcaption 830 | #1{\MakeTextUppercase{#2} }\\[\single@skip] 831 | \MakeTextUppercase{#3}\par 832 | \else% 833 | #1{\MakeTextUppercase{#2 (continued)} }\par 834 | \fi 835 | \global\@ltfirstcaptionfalse 836 | \endgraf\vskip\belowtableskip}% 837 | \hss}}} 838 | \newcommand\timenow{% 839 | \@tempcnta=\time \divide\@tempcnta by 60 \number\@tempcnta:\multiply 840 | \@tempcnta by 60 \@tempcntb=\time \advance\@tempcntb by -\@tempcnta 841 | \ifnum\@tempcntb <10 0\number\@tempcntb\else\number\@tempcntb\fi} 842 | \newcommand{\diss@header}{% 843 | \ifdiss@review Review \else Draft \fi document [\today\/ at \timenow\/] 844 | }% 845 | \ifdiss@final 846 | \renewcommand{\ps@plain}{ 847 | \renewcommand{\@oddhead}{\@empty} 848 | \renewcommand{\@oddfoot}{\hfil\thepage\hfil} 849 | \let\@evenhead\@oddhead 850 | \let\@evenfoot\@oddfoot 851 | }% 852 | \else 853 | \renewcommand{\ps@plain}{ 854 | \renewcommand{\@oddhead}{\framebox[\textwidth]{ 855 | \centering\footnotesize\tt\diss@header}}% 856 | \renewcommand{\@oddfoot}{\hfil\textrm{\thepage}\hfil} 857 | \let\@evenhead\@oddhead 858 | \let\@evenfoot\@oddfoot 859 | }% 860 | \renewcommand{\ps@empty}{ 861 | \renewcommand{\@oddhead}{\framebox[\textwidth]{ 862 | \centering\footnotesize\tt\diss@header}}% 863 | \renewcommand{\@oddfoot}{\@empty} 864 | \let\@evenhead\@oddhead 865 | \let\@evenfoot\@oddfoot 866 | }% 867 | \fi 868 | \ifnatbib@refs 869 | \renewcommand{\bibsection}{ 870 | \chapter*{\bibname}% 871 | \addcontentsline{toc}{chapter}{\bibname}% 872 | }% 873 | \fi 874 | \ifnatbib@refs 875 | \renewcommand{\bibfont}{\singlespacing} 876 | \ifnum@refs 877 | \renewcommand{\@biblabel}[1]{\hfill#1.\hfill} 878 | \fi 879 | \fi 880 | \ifdiss@final 881 | \AtEndDocument{ 882 | \vfill 883 | \centering\singlespacing 884 | \framebox[0.85\textwidth]{ 885 | \begin{minipage}{0.80\textwidth}\footnotesize% 886 | \centering \itshape This document was prepared \& typeset with 887 | \upshape 888 | \ifluatex 889 | \LuaLaTeX 890 | \else\ifxetex 891 | \XeLaTeX 892 | \else\ifpdf 893 | pdf\LaTeX 894 | \else 895 | \LaTeXe 896 | \fi\fi\fi 897 | \itshape , and 898 | formatted with \upshape\nddiss\xspace\itshape classfile 899 | (v\dissfileversion [\dissfiledate]) 900 | \end{minipage} } 901 | \clearpage} 902 | \else\relax\fi 903 | %% 904 | %% 905 | \endinput 906 | %% 907 | %% End of file `nddiss2e.cls'. 908 | -------------------------------------------------------------------------------- /nddiss2e.ins: -------------------------------------------------------------------------------- 1 | %% 2 | %% Copyright (C) 2004-2005 by Sameer Vijay 3 | %% 4 | %% This file may be distributed and/or modified under the 5 | %% conditions of the LaTeX Project Public License, either 6 | %% version 1.2 of this license or (at your option) any later 7 | %% version. The latest version of this license is in 8 | %% http://www.latex-project.org/lppl.txt 9 | %% 10 | %% 11 | 12 | \input docstrip.tex 13 | \keepsilent 14 | \usedir{tex/latex/nddiss2e} 15 | 16 | \preamble 17 | 18 | This is a generated file. 19 | 20 | Copyright (C) 2004-2005 Sameer Vijay 21 | 22 | This file may be distributed and/or modified under the 23 | conditions of the LaTeX Project Public License, either 24 | version 1.2 of this license or (at your option) any later 25 | version. The latest version of this license is in 26 | http://www.latex-project.org/lppl.txt 27 | 28 | 29 | ============================================================== 30 | 31 | Notre Dame's Dissertation document class by Sameer Vijay 32 | that adheres to the University of Notre Dame guidelines 33 | published in Spring 2004. 34 | 35 | Please send any improvements/suggestions to : 36 | Shari Hill, Graduate Reviewer. 37 | shill2@nd.edu 38 | 39 | For documentation on how to use nddiss2e class, process the 40 | file nddiss2e.dtx through LaTeX. 41 | 42 | ============================================================== 43 | 44 | \endpreamble 45 | % 46 | 47 | \askforoverwritefalse 48 | 49 | \generate{% 50 | \file{nddiss2e.cls}{\from{nddiss2e.dtx}{class}}% 51 | \file{template.tex}{\from{nddiss2e.dtx}{template}}% 52 | }% 53 | 54 | \obeyspaces 55 | \Msg{****************************************************************} 56 | \Msg{* *} 57 | \Msg{* To finish the installation of the nddiss2e package, you have *} 58 | \Msg{* to move the following file into a directory searched by TeX: *} 59 | \Msg{* *} 60 | \Msg{* nddiss2e.cls *} 61 | \Msg{* *} 62 | \Msg{* To produce the documentation, run the file ``nddiss2e.dtx'' *} 63 | \Msg{* through LaTeX atleast 3 times. *} 64 | \Msg{* (i.e. (pdf)latex nddiss2e.dtx) *} 65 | \Msg{* *} 66 | \Msg{* You may use `template.tex' as a guide for the structure of *} 67 | \Msg{* your document. *} 68 | \Msg{* *} 69 | \Msg{****************************************************************} 70 | 71 | \endbatchfile 72 | 73 | %% End of the file : nddiss2e.ins 74 | -------------------------------------------------------------------------------- /nddiss2e.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndlib/nddiss/c9a244115788d6b1e944d30875644bad38327153/nddiss2e.pdf -------------------------------------------------------------------------------- /nddiss2enoarticletitles.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% File: `nddiss2e.bst' 3 | %% A modification of `abbrvnat.bst' for use with nddiss2e class file. 4 | %% Modified by Sameer Vijay 5 | %% 6 | %% File: `abbrvnat.bst' 7 | %% A modification of `abbrv.bst' for use with natbib package 8 | %% 9 | %% Copyright 1993-2007 Patrick W Daly 10 | %% Max-Planck-Institut f\"ur Sonnensystemforschung 11 | %% Max-Planck-Str. 2 12 | %% D-37191 Katlenburg-Lindau 13 | %% Germany 14 | %% E-mail: daly@mps.mpg.de 15 | %% 16 | %% This program can be redistributed and/or modified under the terms 17 | %% of the LaTeX Project Public License Distributed from CTAN 18 | %% archives in directory macros/latex/base/lppl.txt; either 19 | %% version 1 of the License, or any later version. 20 | %% 21 | % Version and source file information: 22 | % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] 23 | % 24 | % BibTeX `plainnat' family 25 | % version 0.99b for BibTeX versions 0.99a or later, 26 | % for LaTeX versions 2.09 and 2e. 27 | % 28 | % For use with the `natbib.sty' package; emulates the corresponding 29 | % member of the `plain' family, but with author-year citations. 30 | % 31 | % With version 6.0 of `natbib.sty', it may also be used for numerical 32 | % citations, while retaining the commands \citeauthor, \citefullauthor, 33 | % and \citeyear to print the corresponding information. 34 | % 35 | % For version 7.0 of `natbib.sty', the KEY field replaces missing 36 | % authors/editors, and the date is left blank in \bibitem. 37 | % 38 | % Includes field EID for the sequence/citation number of electronic journals 39 | % which is used instead of page numbers. 40 | % 41 | % Includes fields ISBN and ISSN. 42 | % 43 | % Includes field URL for Internet addresses. 44 | % 45 | % Includes field DOI for Digital Object Idenfifiers. 46 | % 47 | % Works best with the url.sty package of Donald Arseneau. 48 | % 49 | % Works with identical authors and year are further sorted by 50 | % citation key, to preserve any natural sequence. 51 | % 52 | ENTRY 53 | { address 54 | author 55 | booktitle 56 | chapter 57 | doi 58 | eid 59 | edition 60 | editor 61 | howpublished 62 | institution 63 | isbn 64 | issn 65 | journal 66 | key 67 | month 68 | note 69 | number 70 | organization 71 | pages 72 | publisher 73 | school 74 | series 75 | title 76 | type 77 | url 78 | volume 79 | year 80 | } 81 | {} 82 | { label extra.label sort.label short.list } 83 | 84 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 85 | 86 | FUNCTION {init.state.consts} 87 | { #0 'before.all := 88 | #1 'mid.sentence := 89 | #2 'after.sentence := 90 | #3 'after.block := 91 | } 92 | 93 | STRINGS { s t } 94 | 95 | FUNCTION {output.nonnull} 96 | { 's := 97 | output.state mid.sentence = 98 | { ", " * write$ } 99 | { output.state after.block = 100 | { add.period$ write$ 101 | newline$ 102 | "\newblock " write$ 103 | } 104 | { output.state before.all = 105 | 'write$ 106 | { add.period$ " " * write$ } 107 | if$ 108 | } 109 | if$ 110 | mid.sentence 'output.state := 111 | } 112 | if$ 113 | s 114 | } 115 | 116 | FUNCTION {output} 117 | { duplicate$ empty$ 118 | 'pop$ 119 | 'output.nonnull 120 | if$ 121 | } 122 | 123 | FUNCTION {output.check} 124 | { 't := 125 | duplicate$ empty$ 126 | { pop$ "empty " t * " in " * cite$ * warning$ } 127 | 'output.nonnull 128 | if$ 129 | } 130 | 131 | FUNCTION {fin.entry} 132 | { add.period$ 133 | write$ 134 | newline$ 135 | } 136 | 137 | FUNCTION {new.block} 138 | { output.state before.all = 139 | 'skip$ 140 | { after.block 'output.state := } 141 | if$ 142 | } 143 | 144 | FUNCTION {new.sentence} 145 | { output.state after.block = 146 | 'skip$ 147 | { output.state before.all = 148 | 'skip$ 149 | { after.sentence 'output.state := } 150 | if$ 151 | } 152 | if$ 153 | } 154 | 155 | FUNCTION {not} 156 | { { #0 } 157 | { #1 } 158 | if$ 159 | } 160 | 161 | FUNCTION {and} 162 | { 'skip$ 163 | { pop$ #0 } 164 | if$ 165 | } 166 | 167 | FUNCTION {or} 168 | { { pop$ #1 } 169 | 'skip$ 170 | if$ 171 | } 172 | 173 | FUNCTION {new.block.checka} 174 | { empty$ 175 | 'skip$ 176 | 'new.block 177 | if$ 178 | } 179 | 180 | FUNCTION {new.block.checkb} 181 | { empty$ 182 | swap$ empty$ 183 | and 184 | 'skip$ 185 | 'new.block 186 | if$ 187 | } 188 | 189 | FUNCTION {new.sentence.checka} 190 | { empty$ 191 | 'skip$ 192 | 'new.sentence 193 | if$ 194 | } 195 | 196 | FUNCTION {new.sentence.checkb} 197 | { empty$ 198 | swap$ empty$ 199 | and 200 | 'skip$ 201 | 'new.sentence 202 | if$ 203 | } 204 | 205 | FUNCTION {field.or.null} 206 | { duplicate$ empty$ 207 | { pop$ "" } 208 | 'skip$ 209 | if$ 210 | } 211 | 212 | FUNCTION {emphasize} 213 | { duplicate$ empty$ 214 | { pop$ "" } 215 | { "\emph{" swap$ * "}" * } 216 | if$ 217 | } 218 | 219 | INTEGERS { nameptr namesleft numnames } 220 | 221 | FUNCTION {format.names} 222 | { 's := 223 | #1 'nameptr := 224 | s num.names$ 'numnames := 225 | numnames 'namesleft := 226 | { namesleft #0 > } 227 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := 228 | nameptr #1 > 229 | { namesleft #1 > 230 | { ", " * t * } 231 | { numnames #2 > 232 | { "," * } 233 | 'skip$ 234 | if$ 235 | t "others" = 236 | { " et~al." * } 237 | { " and " * t * } 238 | if$ 239 | } 240 | if$ 241 | } 242 | 't 243 | if$ 244 | nameptr #1 + 'nameptr := 245 | namesleft #1 - 'namesleft := 246 | } 247 | while$ 248 | } 249 | 250 | FUNCTION {format.key} 251 | { empty$ 252 | { key field.or.null } 253 | { "" } 254 | if$ 255 | } 256 | 257 | FUNCTION {format.authors} 258 | { author empty$ 259 | { "" } 260 | { author format.names } 261 | if$ 262 | } 263 | 264 | FUNCTION {format.editors} 265 | { editor empty$ 266 | { "" } 267 | { editor format.names 268 | editor num.names$ #1 > 269 | { ", editors" * } 270 | { ", editor" * } 271 | if$ 272 | } 273 | if$ 274 | } 275 | 276 | FUNCTION {format.isbn} 277 | { isbn empty$ 278 | { "" } 279 | { new.block "ISBN " isbn * } 280 | if$ 281 | } 282 | 283 | FUNCTION {format.issn} 284 | { issn empty$ 285 | { "" } 286 | { new.block "ISSN " issn * } 287 | if$ 288 | } 289 | 290 | FUNCTION {format.url} 291 | { url empty$ 292 | { "" } 293 | { new.block "URL \url{" url * "}" * } 294 | if$ 295 | } 296 | 297 | FUNCTION {format.doi} 298 | { doi empty$ 299 | { "" } 300 | { new.block "\doi{" doi * "}" * } 301 | if$ 302 | } 303 | 304 | FUNCTION {format.title} 305 | { title empty$ 306 | { "" } 307 | { title "t" change.case$ } 308 | if$ 309 | } 310 | 311 | FUNCTION {format.full.names} 312 | {'s := 313 | #1 'nameptr := 314 | s num.names$ 'numnames := 315 | numnames 'namesleft := 316 | { namesleft #0 > } 317 | { s nameptr 318 | "{vv~}{ll}" format.name$ 't := 319 | nameptr #1 > 320 | { 321 | namesleft #1 > 322 | { ", " * t * } 323 | { 324 | numnames #2 > 325 | { "," * } 326 | 'skip$ 327 | if$ 328 | t "others" = 329 | { " et~al." * } 330 | { " and " * t * } 331 | if$ 332 | } 333 | if$ 334 | } 335 | 't 336 | if$ 337 | nameptr #1 + 'nameptr := 338 | namesleft #1 - 'namesleft := 339 | } 340 | while$ 341 | } 342 | 343 | FUNCTION {author.editor.full} 344 | { author empty$ 345 | { editor empty$ 346 | { "" } 347 | { editor format.full.names } 348 | if$ 349 | } 350 | { author format.full.names } 351 | if$ 352 | } 353 | 354 | FUNCTION {author.full} 355 | { author empty$ 356 | { "" } 357 | { author format.full.names } 358 | if$ 359 | } 360 | 361 | FUNCTION {editor.full} 362 | { editor empty$ 363 | { "" } 364 | { editor format.full.names } 365 | if$ 366 | } 367 | 368 | FUNCTION {make.full.names} 369 | { type$ "book" = 370 | type$ "inbook" = 371 | or 372 | 'author.editor.full 373 | { type$ "proceedings" = 374 | 'editor.full 375 | 'author.full 376 | if$ 377 | } 378 | if$ 379 | } 380 | 381 | FUNCTION {output.bibitem} 382 | { newline$ 383 | "\bibitem[" write$ 384 | label write$ 385 | ")" make.full.names duplicate$ short.list = 386 | { pop$ } 387 | { * } 388 | if$ 389 | "]{" * write$ 390 | cite$ write$ 391 | "}" write$ 392 | newline$ 393 | "" 394 | before.all 'output.state := 395 | } 396 | 397 | FUNCTION {n.dashify} 398 | { 't := 399 | "" 400 | { t empty$ not } 401 | { t #1 #1 substring$ "-" = 402 | { t #1 #2 substring$ "--" = not 403 | { "--" * 404 | t #2 global.max$ substring$ 't := 405 | } 406 | { { t #1 #1 substring$ "-" = } 407 | { "-" * 408 | t #2 global.max$ substring$ 't := 409 | } 410 | while$ 411 | } 412 | if$ 413 | } 414 | { t #1 #1 substring$ * 415 | t #2 global.max$ substring$ 't := 416 | } 417 | if$ 418 | } 419 | while$ 420 | } 421 | 422 | FUNCTION {format.date} 423 | { year duplicate$ empty$ 424 | { "empty year in " cite$ * warning$ 425 | pop$ "" } 426 | 'skip$ 427 | if$ 428 | month empty$ 429 | 'skip$ 430 | { month 431 | " " * swap$ * 432 | } 433 | if$ 434 | extra.label * 435 | } 436 | 437 | FUNCTION {format.btitle} 438 | { title emphasize 439 | } 440 | 441 | FUNCTION {tie.or.space.connect} 442 | { duplicate$ text.length$ #3 < 443 | { "~" } 444 | { " " } 445 | if$ 446 | swap$ * * 447 | } 448 | 449 | FUNCTION {either.or.check} 450 | { empty$ 451 | 'pop$ 452 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 453 | if$ 454 | } 455 | 456 | FUNCTION {format.bvolume} 457 | { volume empty$ 458 | { "" } 459 | { "volume" volume tie.or.space.connect 460 | series empty$ 461 | 'skip$ 462 | { " of " * series emphasize * } 463 | if$ 464 | "volume and number" number either.or.check 465 | } 466 | if$ 467 | } 468 | 469 | FUNCTION {format.number.series} 470 | { volume empty$ 471 | { number empty$ 472 | { series field.or.null } 473 | { output.state mid.sentence = 474 | { "number" } 475 | { "Number" } 476 | if$ 477 | number tie.or.space.connect 478 | series empty$ 479 | { "there's a number but no series in " cite$ * warning$ } 480 | { " in " * series * } 481 | if$ 482 | } 483 | if$ 484 | } 485 | { "" } 486 | if$ 487 | } 488 | 489 | FUNCTION {format.edition} 490 | { edition empty$ 491 | { "" } 492 | { output.state mid.sentence = 493 | { edition "l" change.case$ " edition" * } 494 | { edition "t" change.case$ " edition" * } 495 | if$ 496 | } 497 | if$ 498 | } 499 | 500 | INTEGERS { multiresult } 501 | 502 | FUNCTION {multi.page.check} 503 | { 't := 504 | #0 'multiresult := 505 | { multiresult not 506 | t empty$ not 507 | and 508 | } 509 | { t #1 #1 substring$ 510 | duplicate$ "-" = 511 | swap$ duplicate$ "," = 512 | swap$ "+" = 513 | or or 514 | { #1 'multiresult := } 515 | { t #2 global.max$ substring$ 't := } 516 | if$ 517 | } 518 | while$ 519 | multiresult 520 | } 521 | 522 | FUNCTION {format.pages} 523 | { pages empty$ 524 | { "" } 525 | { pages multi.page.check 526 | { "pages" pages n.dashify tie.or.space.connect } 527 | { "page" pages tie.or.space.connect } 528 | if$ 529 | } 530 | if$ 531 | } 532 | 533 | FUNCTION {format.eid} 534 | { eid empty$ 535 | { "" } 536 | { "art." eid tie.or.space.connect } 537 | if$ 538 | } 539 | 540 | FUNCTION {format.vol.num.pages} 541 | { volume field.or.null 542 | number empty$ 543 | 'skip$ 544 | { "\penalty0 (" number * ")" * * 545 | volume empty$ 546 | { "there's a number but no volume in " cite$ * warning$ } 547 | 'skip$ 548 | if$ 549 | } 550 | if$ 551 | pages empty$ 552 | 'skip$ 553 | { duplicate$ empty$ 554 | { pop$ format.pages } 555 | { ":\penalty0 " * pages n.dashify * } 556 | if$ 557 | } 558 | if$ 559 | } 560 | 561 | FUNCTION {format.vol.num.eid} 562 | { volume field.or.null 563 | number empty$ 564 | 'skip$ 565 | { "\penalty0 (" number * ")" * * 566 | volume empty$ 567 | { "there's a number but no volume in " cite$ * warning$ } 568 | 'skip$ 569 | if$ 570 | } 571 | if$ 572 | eid empty$ 573 | 'skip$ 574 | { duplicate$ empty$ 575 | { pop$ format.eid } 576 | { ":\penalty0 " * eid * } 577 | if$ 578 | } 579 | if$ 580 | } 581 | 582 | FUNCTION {format.chapter.pages} 583 | { chapter empty$ 584 | 'format.pages 585 | { type empty$ 586 | { "chapter" } 587 | { type "l" change.case$ } 588 | if$ 589 | chapter tie.or.space.connect 590 | pages empty$ 591 | 'skip$ 592 | { ", " * format.pages * } 593 | if$ 594 | } 595 | if$ 596 | } 597 | 598 | FUNCTION {format.in.ed.booktitle} 599 | { booktitle empty$ 600 | { "" } 601 | { editor empty$ 602 | { "In " booktitle emphasize * } 603 | { "In " format.editors * ", " * booktitle emphasize * } 604 | if$ 605 | } 606 | if$ 607 | } 608 | 609 | FUNCTION {empty.misc.check} 610 | { author empty$ title empty$ howpublished empty$ 611 | month empty$ year empty$ note empty$ 612 | and and and and and 613 | key empty$ not and 614 | { "all relevant fields are empty in " cite$ * warning$ } 615 | 'skip$ 616 | if$ 617 | } 618 | 619 | FUNCTION {format.thesis.type} 620 | { type empty$ 621 | 'skip$ 622 | { pop$ 623 | type "t" change.case$ 624 | } 625 | if$ 626 | } 627 | 628 | FUNCTION {format.tr.number} 629 | { type empty$ 630 | { "Technical Report" } 631 | 'type 632 | if$ 633 | number empty$ 634 | { "t" change.case$ } 635 | { number tie.or.space.connect } 636 | if$ 637 | } 638 | 639 | FUNCTION {format.article.crossref} 640 | { key empty$ 641 | { journal empty$ 642 | { "need key or journal for " cite$ * " to crossref " * crossref * 643 | warning$ 644 | "" 645 | } 646 | { "In \emph{" journal * "}" * } 647 | if$ 648 | } 649 | { "In " } 650 | if$ 651 | " \citet{" * crossref * "}" * 652 | } 653 | 654 | FUNCTION {format.book.crossref} 655 | { volume empty$ 656 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 657 | "In " 658 | } 659 | { "Volume" volume tie.or.space.connect 660 | " of " * 661 | } 662 | if$ 663 | editor empty$ 664 | editor field.or.null author field.or.null = 665 | or 666 | { key empty$ 667 | { series empty$ 668 | { "need editor, key, or series for " cite$ * " to crossref " * 669 | crossref * warning$ 670 | "" * 671 | } 672 | { "\emph{" * series * "}" * } 673 | if$ 674 | } 675 | 'skip$ 676 | if$ 677 | } 678 | 'skip$ 679 | if$ 680 | " \citet{" * crossref * "}" * 681 | } 682 | 683 | FUNCTION {format.incoll.inproc.crossref} 684 | { editor empty$ 685 | editor field.or.null author field.or.null = 686 | or 687 | { key empty$ 688 | { booktitle empty$ 689 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 690 | crossref * warning$ 691 | "" 692 | } 693 | { "In \emph{" booktitle * "}" * } 694 | if$ 695 | } 696 | { "In " } 697 | if$ 698 | } 699 | { "In " } 700 | if$ 701 | " \citet{" * crossref * "}" * 702 | } 703 | 704 | FUNCTION {article} 705 | { output.bibitem 706 | format.authors "author" output.check 707 | author format.key output 708 | new.block 709 | %%% format.title "title" output.check 710 | new.block 711 | crossref missing$ 712 | { journal emphasize "journal" output.check 713 | eid empty$ 714 | { format.vol.num.pages output } 715 | { format.vol.num.eid output } 716 | if$ 717 | format.date "year" output.check 718 | } 719 | { format.article.crossref output.nonnull 720 | eid empty$ 721 | { format.pages output } 722 | { format.eid output } 723 | if$ 724 | } 725 | if$ 726 | format.issn output 727 | format.doi output 728 | format.url output 729 | new.block 730 | note output 731 | fin.entry 732 | } 733 | 734 | FUNCTION {book} 735 | { output.bibitem 736 | author empty$ 737 | { format.editors "author and editor" output.check 738 | editor format.key output 739 | } 740 | { format.authors output.nonnull 741 | crossref missing$ 742 | { "author and editor" editor either.or.check } 743 | 'skip$ 744 | if$ 745 | } 746 | if$ 747 | new.block 748 | format.btitle "title" output.check 749 | crossref missing$ 750 | { format.bvolume output 751 | new.block 752 | format.number.series output 753 | new.sentence 754 | publisher "publisher" output.check 755 | address output 756 | } 757 | { new.block 758 | format.book.crossref output.nonnull 759 | } 760 | if$ 761 | format.edition output 762 | format.date "year" output.check 763 | format.isbn output 764 | format.doi output 765 | format.url output 766 | new.block 767 | note output 768 | fin.entry 769 | } 770 | 771 | FUNCTION {booklet} 772 | { output.bibitem 773 | format.authors output 774 | author format.key output 775 | new.block 776 | format.title "title" output.check 777 | howpublished address new.block.checkb 778 | howpublished output 779 | address output 780 | format.date output 781 | format.isbn output 782 | format.doi output 783 | format.url output 784 | new.block 785 | note output 786 | fin.entry 787 | } 788 | 789 | FUNCTION {inbook} 790 | { output.bibitem 791 | author empty$ 792 | { format.editors "author and editor" output.check 793 | editor format.key output 794 | } 795 | { format.authors output.nonnull 796 | crossref missing$ 797 | { "author and editor" editor either.or.check } 798 | 'skip$ 799 | if$ 800 | } 801 | if$ 802 | new.block 803 | format.btitle "title" output.check 804 | crossref missing$ 805 | { format.bvolume output 806 | format.chapter.pages "chapter and pages" output.check 807 | new.block 808 | format.number.series output 809 | new.sentence 810 | publisher "publisher" output.check 811 | address output 812 | } 813 | { format.chapter.pages "chapter and pages" output.check 814 | new.block 815 | format.book.crossref output.nonnull 816 | } 817 | if$ 818 | format.edition output 819 | format.date "year" output.check 820 | format.isbn output 821 | format.doi output 822 | format.url output 823 | new.block 824 | note output 825 | fin.entry 826 | } 827 | 828 | FUNCTION {incollection} 829 | { output.bibitem 830 | format.authors "author" output.check 831 | author format.key output 832 | new.block 833 | format.title "title" output.check 834 | new.block 835 | crossref missing$ 836 | { format.in.ed.booktitle "booktitle" output.check 837 | format.bvolume output 838 | format.number.series output 839 | format.chapter.pages output 840 | new.sentence 841 | publisher "publisher" output.check 842 | address output 843 | format.edition output 844 | format.date "year" output.check 845 | } 846 | { format.incoll.inproc.crossref output.nonnull 847 | format.chapter.pages output 848 | } 849 | if$ 850 | format.isbn output 851 | format.doi output 852 | format.url output 853 | new.block 854 | note output 855 | fin.entry 856 | } 857 | 858 | FUNCTION {inproceedings} 859 | { output.bibitem 860 | format.authors "author" output.check 861 | author format.key output 862 | new.block 863 | format.title "title" output.check 864 | new.block 865 | crossref missing$ 866 | { format.in.ed.booktitle "booktitle" output.check 867 | format.bvolume output 868 | format.number.series output 869 | format.pages output 870 | address empty$ 871 | { organization publisher new.sentence.checkb 872 | organization output 873 | publisher output 874 | format.date "year" output.check 875 | } 876 | { address output.nonnull 877 | format.date "year" output.check 878 | new.sentence 879 | organization output 880 | publisher output 881 | } 882 | if$ 883 | } 884 | { format.incoll.inproc.crossref output.nonnull 885 | format.pages output 886 | } 887 | if$ 888 | format.isbn output 889 | format.doi output 890 | format.url output 891 | new.block 892 | note output 893 | fin.entry 894 | } 895 | 896 | FUNCTION {conference} { inproceedings } 897 | 898 | FUNCTION {manual} 899 | { output.bibitem 900 | format.authors output 901 | author format.key output 902 | new.block 903 | format.btitle "title" output.check 904 | organization address new.block.checkb 905 | organization output 906 | address output 907 | format.edition output 908 | format.date output 909 | format.url output 910 | new.block 911 | note output 912 | fin.entry 913 | } 914 | 915 | FUNCTION {mastersthesis} 916 | { output.bibitem 917 | format.authors "author" output.check 918 | author format.key output 919 | new.block 920 | format.title "title" output.check 921 | new.block 922 | "Master's thesis" format.thesis.type output.nonnull 923 | school "school" output.check 924 | address output 925 | format.date "year" output.check 926 | format.url output 927 | new.block 928 | note output 929 | fin.entry 930 | } 931 | 932 | FUNCTION {misc} 933 | { output.bibitem 934 | format.authors output 935 | author format.key output 936 | title howpublished new.block.checkb 937 | format.title output 938 | howpublished new.block.checka 939 | howpublished output 940 | format.date output 941 | format.issn output 942 | format.url output 943 | new.block 944 | note output 945 | fin.entry 946 | empty.misc.check 947 | } 948 | 949 | FUNCTION {phdthesis} 950 | { output.bibitem 951 | format.authors "author" output.check 952 | author format.key output 953 | new.block 954 | format.btitle "title" output.check 955 | new.block 956 | "PhD thesis" format.thesis.type output.nonnull 957 | school "school" output.check 958 | address output 959 | format.date "year" output.check 960 | format.url output 961 | new.block 962 | note output 963 | fin.entry 964 | } 965 | 966 | FUNCTION {proceedings} 967 | { output.bibitem 968 | format.editors output 969 | editor format.key output 970 | new.block 971 | format.btitle "title" output.check 972 | format.bvolume output 973 | format.number.series output 974 | address output 975 | format.date "year" output.check 976 | new.sentence 977 | organization output 978 | publisher output 979 | format.isbn output 980 | format.doi output 981 | format.url output 982 | new.block 983 | note output 984 | fin.entry 985 | } 986 | 987 | FUNCTION {techreport} 988 | { output.bibitem 989 | format.authors "author" output.check 990 | author format.key output 991 | new.block 992 | format.title "title" output.check 993 | new.block 994 | format.tr.number output.nonnull 995 | institution "institution" output.check 996 | address output 997 | format.date "year" output.check 998 | format.url output 999 | new.block 1000 | note output 1001 | fin.entry 1002 | } 1003 | 1004 | FUNCTION {unpublished} 1005 | { output.bibitem 1006 | format.authors "author" output.check 1007 | author format.key output 1008 | new.block 1009 | format.title "title" output.check 1010 | new.block 1011 | note "note" output.check 1012 | format.date output 1013 | format.url output 1014 | fin.entry 1015 | } 1016 | 1017 | FUNCTION {default.type} { misc } 1018 | 1019 | 1020 | MACRO {jan} {"Jan."} 1021 | 1022 | MACRO {feb} {"Feb."} 1023 | 1024 | MACRO {mar} {"Mar."} 1025 | 1026 | MACRO {apr} {"Apr."} 1027 | 1028 | MACRO {may} {"May"} 1029 | 1030 | MACRO {jun} {"June"} 1031 | 1032 | MACRO {jul} {"July"} 1033 | 1034 | MACRO {aug} {"Aug."} 1035 | 1036 | MACRO {sep} {"Sept."} 1037 | 1038 | MACRO {oct} {"Oct."} 1039 | 1040 | MACRO {nov} {"Nov."} 1041 | 1042 | MACRO {dec} {"Dec."} 1043 | 1044 | 1045 | 1046 | MACRO {acmcs} {"ACM Comput. Surv."} 1047 | 1048 | MACRO {acta} {"Acta Inf."} 1049 | 1050 | MACRO {cacm} {"Commun. ACM"} 1051 | 1052 | MACRO {ibmjrd} {"IBM J. Res. Dev."} 1053 | 1054 | MACRO {ibmsj} {"IBM Syst.~J."} 1055 | 1056 | MACRO {ieeese} {"IEEE Trans. Softw. Eng."} 1057 | 1058 | MACRO {ieeetc} {"IEEE Trans. Comput."} 1059 | 1060 | MACRO {ieeetcad} 1061 | {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} 1062 | 1063 | MACRO {ipl} {"Inf. Process. Lett."} 1064 | 1065 | MACRO {jacm} {"J.~ACM"} 1066 | 1067 | MACRO {jcss} {"J.~Comput. Syst. Sci."} 1068 | 1069 | MACRO {scp} {"Sci. Comput. Programming"} 1070 | 1071 | MACRO {sicomp} {"SIAM J. Comput."} 1072 | 1073 | MACRO {tocs} {"ACM Trans. Comput. Syst."} 1074 | 1075 | MACRO {tods} {"ACM Trans. Database Syst."} 1076 | 1077 | MACRO {tog} {"ACM Trans. Gr."} 1078 | 1079 | MACRO {toms} {"ACM Trans. Math. Softw."} 1080 | 1081 | MACRO {toois} {"ACM Trans. Office Inf. Syst."} 1082 | 1083 | MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} 1084 | 1085 | MACRO {tcs} {"Theoretical Comput. Sci."} 1086 | 1087 | 1088 | READ 1089 | 1090 | FUNCTION {sortify} 1091 | { purify$ 1092 | "l" change.case$ 1093 | } 1094 | 1095 | INTEGERS { len } 1096 | 1097 | FUNCTION {chop.word} 1098 | { 's := 1099 | 'len := 1100 | s #1 len substring$ = 1101 | { s len #1 + global.max$ substring$ } 1102 | 's 1103 | if$ 1104 | } 1105 | 1106 | FUNCTION {format.lab.names} 1107 | { 's := 1108 | s #1 "{vv~}{ll}" format.name$ 1109 | s num.names$ duplicate$ 1110 | #2 > 1111 | { pop$ " et~al." * } 1112 | { #2 < 1113 | 'skip$ 1114 | { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1115 | { " et~al." * } 1116 | { " and " * s #2 "{vv~}{ll}" format.name$ * } 1117 | if$ 1118 | } 1119 | if$ 1120 | } 1121 | if$ 1122 | } 1123 | 1124 | FUNCTION {author.key.label} 1125 | { author empty$ 1126 | { key empty$ 1127 | { cite$ #1 #3 substring$ } 1128 | 'key 1129 | if$ 1130 | } 1131 | { author format.lab.names } 1132 | if$ 1133 | } 1134 | 1135 | FUNCTION {author.editor.key.label} 1136 | { author empty$ 1137 | { editor empty$ 1138 | { key empty$ 1139 | { cite$ #1 #3 substring$ } 1140 | 'key 1141 | if$ 1142 | } 1143 | { editor format.lab.names } 1144 | if$ 1145 | } 1146 | { author format.lab.names } 1147 | if$ 1148 | } 1149 | 1150 | FUNCTION {author.key.organization.label} 1151 | { author empty$ 1152 | { key empty$ 1153 | { organization empty$ 1154 | { cite$ #1 #3 substring$ } 1155 | { "The " #4 organization chop.word #3 text.prefix$ } 1156 | if$ 1157 | } 1158 | 'key 1159 | if$ 1160 | } 1161 | { author format.lab.names } 1162 | if$ 1163 | } 1164 | 1165 | FUNCTION {editor.key.organization.label} 1166 | { editor empty$ 1167 | { key empty$ 1168 | { organization empty$ 1169 | { cite$ #1 #3 substring$ } 1170 | { "The " #4 organization chop.word #3 text.prefix$ } 1171 | if$ 1172 | } 1173 | 'key 1174 | if$ 1175 | } 1176 | { editor format.lab.names } 1177 | if$ 1178 | } 1179 | 1180 | FUNCTION {calc.short.authors} 1181 | { type$ "book" = 1182 | type$ "inbook" = 1183 | or 1184 | 'author.editor.key.label 1185 | { type$ "proceedings" = 1186 | 'editor.key.organization.label 1187 | { type$ "manual" = 1188 | 'author.key.organization.label 1189 | 'author.key.label 1190 | if$ 1191 | } 1192 | if$ 1193 | } 1194 | if$ 1195 | 'short.list := 1196 | } 1197 | 1198 | FUNCTION {calc.label} 1199 | { calc.short.authors 1200 | short.list 1201 | "(" 1202 | * 1203 | year duplicate$ empty$ 1204 | short.list key field.or.null = or 1205 | { pop$ "" } 1206 | 'skip$ 1207 | if$ 1208 | * 1209 | 'label := 1210 | } 1211 | 1212 | FUNCTION {sort.format.names} 1213 | { 's := 1214 | #1 'nameptr := 1215 | "" 1216 | s num.names$ 'numnames := 1217 | numnames 'namesleft := 1218 | { namesleft #0 > } 1219 | { 1220 | s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := 1221 | nameptr #1 > 1222 | { 1223 | " " * 1224 | namesleft #1 = t "others" = and 1225 | { "zzzzz" * } 1226 | { numnames #2 > nameptr #2 = and 1227 | { "zz" * year field.or.null * " " * } 1228 | 'skip$ 1229 | if$ 1230 | t sortify * 1231 | } 1232 | if$ 1233 | } 1234 | { t sortify * } 1235 | if$ 1236 | nameptr #1 + 'nameptr := 1237 | namesleft #1 - 'namesleft := 1238 | } 1239 | while$ 1240 | } 1241 | 1242 | FUNCTION {sort.format.title} 1243 | { 't := 1244 | "A " #2 1245 | "An " #3 1246 | "The " #4 t chop.word 1247 | chop.word 1248 | chop.word 1249 | sortify 1250 | #1 global.max$ substring$ 1251 | } 1252 | 1253 | FUNCTION {author.sort} 1254 | { author empty$ 1255 | { key empty$ 1256 | { "to sort, need author or key in " cite$ * warning$ 1257 | "" 1258 | } 1259 | { key sortify } 1260 | if$ 1261 | } 1262 | { author sort.format.names } 1263 | if$ 1264 | } 1265 | 1266 | FUNCTION {author.editor.sort} 1267 | { author empty$ 1268 | { editor empty$ 1269 | { key empty$ 1270 | { "to sort, need author, editor, or key in " cite$ * warning$ 1271 | "" 1272 | } 1273 | { key sortify } 1274 | if$ 1275 | } 1276 | { editor sort.format.names } 1277 | if$ 1278 | } 1279 | { author sort.format.names } 1280 | if$ 1281 | } 1282 | 1283 | FUNCTION {author.organization.sort} 1284 | { author empty$ 1285 | { organization empty$ 1286 | { key empty$ 1287 | { "to sort, need author, organization, or key in " cite$ * warning$ 1288 | "" 1289 | } 1290 | { key sortify } 1291 | if$ 1292 | } 1293 | { "The " #4 organization chop.word sortify } 1294 | if$ 1295 | } 1296 | { author sort.format.names } 1297 | if$ 1298 | } 1299 | 1300 | FUNCTION {editor.organization.sort} 1301 | { editor empty$ 1302 | { organization empty$ 1303 | { key empty$ 1304 | { "to sort, need editor, organization, or key in " cite$ * warning$ 1305 | "" 1306 | } 1307 | { key sortify } 1308 | if$ 1309 | } 1310 | { "The " #4 organization chop.word sortify } 1311 | if$ 1312 | } 1313 | { editor sort.format.names } 1314 | if$ 1315 | } 1316 | 1317 | 1318 | FUNCTION {presort} 1319 | { calc.label 1320 | label sortify 1321 | " " 1322 | * 1323 | type$ "book" = 1324 | type$ "inbook" = 1325 | or 1326 | 'author.editor.sort 1327 | { type$ "proceedings" = 1328 | 'editor.organization.sort 1329 | { type$ "manual" = 1330 | 'author.organization.sort 1331 | 'author.sort 1332 | if$ 1333 | } 1334 | if$ 1335 | } 1336 | if$ 1337 | " " 1338 | * 1339 | year field.or.null sortify 1340 | * 1341 | " " 1342 | * 1343 | cite$ 1344 | * 1345 | #1 entry.max$ substring$ 1346 | 'sort.label := 1347 | sort.label * 1348 | #1 entry.max$ substring$ 1349 | 'sort.key$ := 1350 | } 1351 | 1352 | ITERATE {presort} 1353 | 1354 | SORT 1355 | 1356 | STRINGS { longest.label last.label next.extra } 1357 | 1358 | INTEGERS { longest.label.width last.extra.num number.label } 1359 | 1360 | FUNCTION {initialize.longest.label} 1361 | { "" 'longest.label := 1362 | #0 int.to.chr$ 'last.label := 1363 | "" 'next.extra := 1364 | #0 'longest.label.width := 1365 | #0 'last.extra.num := 1366 | #0 'number.label := 1367 | } 1368 | 1369 | FUNCTION {forward.pass} 1370 | { last.label label = 1371 | { last.extra.num #1 + 'last.extra.num := 1372 | last.extra.num int.to.chr$ 'extra.label := 1373 | } 1374 | { "a" chr.to.int$ 'last.extra.num := 1375 | "" 'extra.label := 1376 | label 'last.label := 1377 | } 1378 | if$ 1379 | number.label #1 + 'number.label := 1380 | } 1381 | 1382 | FUNCTION {reverse.pass} 1383 | { next.extra "b" = 1384 | { "a" 'extra.label := } 1385 | 'skip$ 1386 | if$ 1387 | extra.label 'next.extra := 1388 | extra.label 1389 | duplicate$ empty$ 1390 | 'skip$ 1391 | { "{\natexlab{" swap$ * "}}" * } 1392 | if$ 1393 | 'extra.label := 1394 | label extra.label * 'label := 1395 | } 1396 | 1397 | EXECUTE {initialize.longest.label} 1398 | 1399 | ITERATE {forward.pass} 1400 | 1401 | REVERSE {reverse.pass} 1402 | 1403 | FUNCTION {bib.sort.order} 1404 | { sort.label 'sort.key$ := 1405 | } 1406 | 1407 | ITERATE {bib.sort.order} 1408 | 1409 | SORT 1410 | 1411 | FUNCTION {begin.bib} 1412 | { preamble$ empty$ 1413 | 'skip$ 1414 | { preamble$ write$ newline$ } 1415 | if$ 1416 | "\begin{thebibliography}{" number.label int.to.str$ * "}" * 1417 | write$ newline$ 1418 | "\providecommand{\natexlab}[1]{#1}" 1419 | write$ newline$ 1420 | "\providecommand{\url}[1]{\texttt{#1}}" 1421 | write$ newline$ 1422 | "\expandafter\ifx\csname urlstyle\endcsname\relax" 1423 | write$ newline$ 1424 | " \providecommand{\doi}[1]{doi: #1}\else" 1425 | write$ newline$ 1426 | " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" 1427 | write$ newline$ 1428 | } 1429 | 1430 | EXECUTE {begin.bib} 1431 | 1432 | EXECUTE {init.state.consts} 1433 | 1434 | ITERATE {call.type$} 1435 | 1436 | FUNCTION {end.bib} 1437 | { newline$ 1438 | "\end{thebibliography}" write$ newline$ 1439 | } 1440 | 1441 | EXECUTE {end.bib} 1442 | -------------------------------------------------------------------------------- /nddiss2enosort.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% File: `nddiss2e.bst' 3 | %% A modification of `abbrvnat.bst' for use with nddiss2e class file. 4 | %% Modified by Sameer Vijay 5 | %% 6 | %% File: `abbrvnat.bst' 7 | %% A modification of `abbrv.bst' for use with natbib package 8 | %% 9 | %% Copyright 1993-2007 Patrick W Daly 10 | %% Max-Planck-Institut f\"ur Sonnensystemforschung 11 | %% Max-Planck-Str. 2 12 | %% D-37191 Katlenburg-Lindau 13 | %% Germany 14 | %% E-mail: daly@mps.mpg.de 15 | %% 16 | %% This program can be redistributed and/or modified under the terms 17 | %% of the LaTeX Project Public License Distributed from CTAN 18 | %% archives in directory macros/latex/base/lppl.txt; either 19 | %% version 1 of the License, or any later version. 20 | %% 21 | % Version and source file information: 22 | % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] 23 | % 24 | % BibTeX `plainnat' family 25 | % version 0.99b for BibTeX versions 0.99a or later, 26 | % for LaTeX versions 2.09 and 2e. 27 | % 28 | % For use with the `natbib.sty' package; emulates the corresponding 29 | % member of the `plain' family, but with author-year citations. 30 | % 31 | % With version 6.0 of `natbib.sty', it may also be used for numerical 32 | % citations, while retaining the commands \citeauthor, \citefullauthor, 33 | % and \citeyear to print the corresponding information. 34 | % 35 | % For version 7.0 of `natbib.sty', the KEY field replaces missing 36 | % authors/editors, and the date is left blank in \bibitem. 37 | % 38 | % Includes field EID for the sequence/citation number of electronic journals 39 | % which is used instead of page numbers. 40 | % 41 | % Includes fields ISBN and ISSN. 42 | % 43 | % Includes field URL for Internet addresses. 44 | % 45 | % Includes field DOI for Digital Object Idenfifiers. 46 | % 47 | % Works best with the url.sty package of Donald Arseneau. 48 | % 49 | % Works with identical authors and year are further sorted by 50 | % title text, as in the standard plain.bst etc. 51 | % 52 | ENTRY 53 | { address 54 | author 55 | booktitle 56 | chapter 57 | doi 58 | eid 59 | edition 60 | editor 61 | howpublished 62 | institution 63 | isbn 64 | issn 65 | journal 66 | key 67 | month 68 | note 69 | number 70 | organization 71 | pages 72 | publisher 73 | school 74 | series 75 | title 76 | type 77 | url 78 | volume 79 | year 80 | } 81 | {} 82 | { label extra.label sort.label short.list } 83 | 84 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 85 | 86 | FUNCTION {init.state.consts} 87 | { #0 'before.all := 88 | #1 'mid.sentence := 89 | #2 'after.sentence := 90 | #3 'after.block := 91 | } 92 | 93 | STRINGS { s t } 94 | 95 | FUNCTION {output.nonnull} 96 | { 's := 97 | output.state mid.sentence = 98 | { ", " * write$ } 99 | { output.state after.block = 100 | { add.period$ write$ 101 | newline$ 102 | "\newblock " write$ 103 | } 104 | { output.state before.all = 105 | 'write$ 106 | { add.period$ " " * write$ } 107 | if$ 108 | } 109 | if$ 110 | mid.sentence 'output.state := 111 | } 112 | if$ 113 | s 114 | } 115 | 116 | FUNCTION {output} 117 | { duplicate$ empty$ 118 | 'pop$ 119 | 'output.nonnull 120 | if$ 121 | } 122 | 123 | FUNCTION {output.check} 124 | { 't := 125 | duplicate$ empty$ 126 | { pop$ "empty " t * " in " * cite$ * warning$ } 127 | 'output.nonnull 128 | if$ 129 | } 130 | 131 | FUNCTION {fin.entry} 132 | { add.period$ 133 | write$ 134 | newline$ 135 | } 136 | 137 | FUNCTION {new.block} 138 | { output.state before.all = 139 | 'skip$ 140 | { after.block 'output.state := } 141 | if$ 142 | } 143 | 144 | FUNCTION {new.sentence} 145 | { output.state after.block = 146 | 'skip$ 147 | { output.state before.all = 148 | 'skip$ 149 | { after.sentence 'output.state := } 150 | if$ 151 | } 152 | if$ 153 | } 154 | 155 | FUNCTION {not} 156 | { { #0 } 157 | { #1 } 158 | if$ 159 | } 160 | 161 | FUNCTION {and} 162 | { 'skip$ 163 | { pop$ #0 } 164 | if$ 165 | } 166 | 167 | FUNCTION {or} 168 | { { pop$ #1 } 169 | 'skip$ 170 | if$ 171 | } 172 | 173 | FUNCTION {new.block.checka} 174 | { empty$ 175 | 'skip$ 176 | 'new.block 177 | if$ 178 | } 179 | 180 | FUNCTION {new.block.checkb} 181 | { empty$ 182 | swap$ empty$ 183 | and 184 | 'skip$ 185 | 'new.block 186 | if$ 187 | } 188 | 189 | FUNCTION {new.sentence.checka} 190 | { empty$ 191 | 'skip$ 192 | 'new.sentence 193 | if$ 194 | } 195 | 196 | FUNCTION {new.sentence.checkb} 197 | { empty$ 198 | swap$ empty$ 199 | and 200 | 'skip$ 201 | 'new.sentence 202 | if$ 203 | } 204 | 205 | FUNCTION {field.or.null} 206 | { duplicate$ empty$ 207 | { pop$ "" } 208 | 'skip$ 209 | if$ 210 | } 211 | 212 | FUNCTION {emphasize} 213 | { duplicate$ empty$ 214 | { pop$ "" } 215 | { "\emph{" swap$ * "}" * } 216 | if$ 217 | } 218 | 219 | INTEGERS { nameptr namesleft numnames } 220 | 221 | FUNCTION {format.names} 222 | { 's := 223 | #1 'nameptr := 224 | s num.names$ 'numnames := 225 | numnames 'namesleft := 226 | { namesleft #0 > } 227 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := 228 | nameptr #1 > 229 | { namesleft #1 > 230 | { ", " * t * } 231 | { numnames #2 > 232 | { "," * } 233 | 'skip$ 234 | if$ 235 | t "others" = 236 | { " et~al." * } 237 | { " and " * t * } 238 | if$ 239 | } 240 | if$ 241 | } 242 | 't 243 | if$ 244 | nameptr #1 + 'nameptr := 245 | namesleft #1 - 'namesleft := 246 | } 247 | while$ 248 | } 249 | 250 | FUNCTION {format.key} 251 | { empty$ 252 | { key field.or.null } 253 | { "" } 254 | if$ 255 | } 256 | 257 | FUNCTION {format.authors} 258 | { author empty$ 259 | { "" } 260 | { author format.names } 261 | if$ 262 | } 263 | 264 | FUNCTION {format.editors} 265 | { editor empty$ 266 | { "" } 267 | { editor format.names 268 | editor num.names$ #1 > 269 | { ", editors" * } 270 | { ", editor" * } 271 | if$ 272 | } 273 | if$ 274 | } 275 | 276 | FUNCTION {format.isbn} 277 | { isbn empty$ 278 | { "" } 279 | { new.block "ISBN " isbn * } 280 | if$ 281 | } 282 | 283 | FUNCTION {format.issn} 284 | { issn empty$ 285 | { "" } 286 | { new.block "ISSN " issn * } 287 | if$ 288 | } 289 | 290 | FUNCTION {format.url} 291 | { url empty$ 292 | { "" } 293 | { new.block "URL \url{" url * "}" * } 294 | if$ 295 | } 296 | 297 | FUNCTION {format.doi} 298 | { doi empty$ 299 | { "" } 300 | { new.block "\doi{" doi * "}" * } 301 | if$ 302 | } 303 | 304 | FUNCTION {format.title} 305 | { title empty$ 306 | { "" } 307 | { title "t" change.case$ } 308 | if$ 309 | } 310 | 311 | FUNCTION {format.full.names} 312 | {'s := 313 | #1 'nameptr := 314 | s num.names$ 'numnames := 315 | numnames 'namesleft := 316 | { namesleft #0 > } 317 | { s nameptr 318 | "{vv~}{ll}" format.name$ 't := 319 | nameptr #1 > 320 | { 321 | namesleft #1 > 322 | { ", " * t * } 323 | { 324 | numnames #2 > 325 | { "," * } 326 | 'skip$ 327 | if$ 328 | t "others" = 329 | { " et~al." * } 330 | { " and " * t * } 331 | if$ 332 | } 333 | if$ 334 | } 335 | 't 336 | if$ 337 | nameptr #1 + 'nameptr := 338 | namesleft #1 - 'namesleft := 339 | } 340 | while$ 341 | } 342 | 343 | FUNCTION {author.editor.full} 344 | { author empty$ 345 | { editor empty$ 346 | { "" } 347 | { editor format.full.names } 348 | if$ 349 | } 350 | { author format.full.names } 351 | if$ 352 | } 353 | 354 | FUNCTION {author.full} 355 | { author empty$ 356 | { "" } 357 | { author format.full.names } 358 | if$ 359 | } 360 | 361 | FUNCTION {editor.full} 362 | { editor empty$ 363 | { "" } 364 | { editor format.full.names } 365 | if$ 366 | } 367 | 368 | FUNCTION {make.full.names} 369 | { type$ "book" = 370 | type$ "inbook" = 371 | or 372 | 'author.editor.full 373 | { type$ "proceedings" = 374 | 'editor.full 375 | 'author.full 376 | if$ 377 | } 378 | if$ 379 | } 380 | 381 | FUNCTION {output.bibitem} 382 | { newline$ 383 | "\bibitem[" write$ 384 | label write$ 385 | ")" make.full.names duplicate$ short.list = 386 | { pop$ } 387 | { * } 388 | if$ 389 | "]{" * write$ 390 | cite$ write$ 391 | "}" write$ 392 | newline$ 393 | "" 394 | before.all 'output.state := 395 | } 396 | 397 | FUNCTION {n.dashify} 398 | { 't := 399 | "" 400 | { t empty$ not } 401 | { t #1 #1 substring$ "-" = 402 | { t #1 #2 substring$ "--" = not 403 | { "--" * 404 | t #2 global.max$ substring$ 't := 405 | } 406 | { { t #1 #1 substring$ "-" = } 407 | { "-" * 408 | t #2 global.max$ substring$ 't := 409 | } 410 | while$ 411 | } 412 | if$ 413 | } 414 | { t #1 #1 substring$ * 415 | t #2 global.max$ substring$ 't := 416 | } 417 | if$ 418 | } 419 | while$ 420 | } 421 | 422 | FUNCTION {format.date} 423 | { year duplicate$ empty$ 424 | { "empty year in " cite$ * warning$ 425 | pop$ "" } 426 | 'skip$ 427 | if$ 428 | month empty$ 429 | 'skip$ 430 | { month 431 | " " * swap$ * 432 | } 433 | if$ 434 | extra.label * 435 | } 436 | 437 | FUNCTION {format.btitle} 438 | { title emphasize 439 | } 440 | 441 | FUNCTION {tie.or.space.connect} 442 | { duplicate$ text.length$ #3 < 443 | { "~" } 444 | { " " } 445 | if$ 446 | swap$ * * 447 | } 448 | 449 | FUNCTION {either.or.check} 450 | { empty$ 451 | 'pop$ 452 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 453 | if$ 454 | } 455 | 456 | FUNCTION {format.bvolume} 457 | { volume empty$ 458 | { "" } 459 | { "volume" volume tie.or.space.connect 460 | series empty$ 461 | 'skip$ 462 | { " of " * series emphasize * } 463 | if$ 464 | "volume and number" number either.or.check 465 | } 466 | if$ 467 | } 468 | 469 | FUNCTION {format.number.series} 470 | { volume empty$ 471 | { number empty$ 472 | { series field.or.null } 473 | { output.state mid.sentence = 474 | { "number" } 475 | { "Number" } 476 | if$ 477 | number tie.or.space.connect 478 | series empty$ 479 | { "there's a number but no series in " cite$ * warning$ } 480 | { " in " * series * } 481 | if$ 482 | } 483 | if$ 484 | } 485 | { "" } 486 | if$ 487 | } 488 | 489 | FUNCTION {format.edition} 490 | { edition empty$ 491 | { "" } 492 | { output.state mid.sentence = 493 | { edition "l" change.case$ " edition" * } 494 | { edition "t" change.case$ " edition" * } 495 | if$ 496 | } 497 | if$ 498 | } 499 | 500 | INTEGERS { multiresult } 501 | 502 | FUNCTION {multi.page.check} 503 | { 't := 504 | #0 'multiresult := 505 | { multiresult not 506 | t empty$ not 507 | and 508 | } 509 | { t #1 #1 substring$ 510 | duplicate$ "-" = 511 | swap$ duplicate$ "," = 512 | swap$ "+" = 513 | or or 514 | { #1 'multiresult := } 515 | { t #2 global.max$ substring$ 't := } 516 | if$ 517 | } 518 | while$ 519 | multiresult 520 | } 521 | 522 | FUNCTION {format.pages} 523 | { pages empty$ 524 | { "" } 525 | { pages multi.page.check 526 | { "pages" pages n.dashify tie.or.space.connect } 527 | { "page" pages tie.or.space.connect } 528 | if$ 529 | } 530 | if$ 531 | } 532 | 533 | FUNCTION {format.eid} 534 | { eid empty$ 535 | { "" } 536 | { "art." eid tie.or.space.connect } 537 | if$ 538 | } 539 | 540 | FUNCTION {format.vol.num.pages} 541 | { volume field.or.null 542 | number empty$ 543 | 'skip$ 544 | { "\penalty0 (" number * ")" * * 545 | volume empty$ 546 | { "there's a number but no volume in " cite$ * warning$ } 547 | 'skip$ 548 | if$ 549 | } 550 | if$ 551 | pages empty$ 552 | 'skip$ 553 | { duplicate$ empty$ 554 | { pop$ format.pages } 555 | { ":\penalty0 " * pages n.dashify * } 556 | if$ 557 | } 558 | if$ 559 | } 560 | 561 | FUNCTION {format.vol.num.eid} 562 | { volume field.or.null 563 | number empty$ 564 | 'skip$ 565 | { "\penalty0 (" number * ")" * * 566 | volume empty$ 567 | { "there's a number but no volume in " cite$ * warning$ } 568 | 'skip$ 569 | if$ 570 | } 571 | if$ 572 | eid empty$ 573 | 'skip$ 574 | { duplicate$ empty$ 575 | { pop$ format.eid } 576 | { ":\penalty0 " * eid * } 577 | if$ 578 | } 579 | if$ 580 | } 581 | 582 | FUNCTION {format.chapter.pages} 583 | { chapter empty$ 584 | 'format.pages 585 | { type empty$ 586 | { "chapter" } 587 | { type "l" change.case$ } 588 | if$ 589 | chapter tie.or.space.connect 590 | pages empty$ 591 | 'skip$ 592 | { ", " * format.pages * } 593 | if$ 594 | } 595 | if$ 596 | } 597 | 598 | FUNCTION {format.in.ed.booktitle} 599 | { booktitle empty$ 600 | { "" } 601 | { editor empty$ 602 | { "In " booktitle emphasize * } 603 | { "In " format.editors * ", " * booktitle emphasize * } 604 | if$ 605 | } 606 | if$ 607 | } 608 | 609 | FUNCTION {empty.misc.check} 610 | { author empty$ title empty$ howpublished empty$ 611 | month empty$ year empty$ note empty$ 612 | and and and and and 613 | key empty$ not and 614 | { "all relevant fields are empty in " cite$ * warning$ } 615 | 'skip$ 616 | if$ 617 | } 618 | 619 | FUNCTION {format.thesis.type} 620 | { type empty$ 621 | 'skip$ 622 | { pop$ 623 | type "t" change.case$ 624 | } 625 | if$ 626 | } 627 | 628 | FUNCTION {format.tr.number} 629 | { type empty$ 630 | { "Technical Report" } 631 | 'type 632 | if$ 633 | number empty$ 634 | { "t" change.case$ } 635 | { number tie.or.space.connect } 636 | if$ 637 | } 638 | 639 | FUNCTION {format.article.crossref} 640 | { key empty$ 641 | { journal empty$ 642 | { "need key or journal for " cite$ * " to crossref " * crossref * 643 | warning$ 644 | "" 645 | } 646 | { "In \emph{" journal * "}" * } 647 | if$ 648 | } 649 | { "In " } 650 | if$ 651 | " \citet{" * crossref * "}" * 652 | } 653 | 654 | FUNCTION {format.book.crossref} 655 | { volume empty$ 656 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 657 | "In " 658 | } 659 | { "Volume" volume tie.or.space.connect 660 | " of " * 661 | } 662 | if$ 663 | editor empty$ 664 | editor field.or.null author field.or.null = 665 | or 666 | { key empty$ 667 | { series empty$ 668 | { "need editor, key, or series for " cite$ * " to crossref " * 669 | crossref * warning$ 670 | "" * 671 | } 672 | { "\emph{" * series * "}" * } 673 | if$ 674 | } 675 | 'skip$ 676 | if$ 677 | } 678 | 'skip$ 679 | if$ 680 | " \citet{" * crossref * "}" * 681 | } 682 | 683 | FUNCTION {format.incoll.inproc.crossref} 684 | { editor empty$ 685 | editor field.or.null author field.or.null = 686 | or 687 | { key empty$ 688 | { booktitle empty$ 689 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 690 | crossref * warning$ 691 | "" 692 | } 693 | { "In \emph{" booktitle * "}" * } 694 | if$ 695 | } 696 | { "In " } 697 | if$ 698 | } 699 | { "In " } 700 | if$ 701 | " \citet{" * crossref * "}" * 702 | } 703 | 704 | FUNCTION {article} 705 | { output.bibitem 706 | format.authors "author" output.check 707 | author format.key output 708 | new.block 709 | format.title "title" output.check 710 | new.block 711 | crossref missing$ 712 | { journal emphasize "journal" output.check 713 | eid empty$ 714 | { format.vol.num.pages output } 715 | { format.vol.num.eid output } 716 | if$ 717 | format.date "year" output.check 718 | } 719 | { format.article.crossref output.nonnull 720 | eid empty$ 721 | { format.pages output } 722 | { format.eid output } 723 | if$ 724 | } 725 | if$ 726 | format.issn output 727 | format.doi output 728 | format.url output 729 | new.block 730 | note output 731 | fin.entry 732 | } 733 | 734 | FUNCTION {book} 735 | { output.bibitem 736 | author empty$ 737 | { format.editors "author and editor" output.check 738 | editor format.key output 739 | } 740 | { format.authors output.nonnull 741 | crossref missing$ 742 | { "author and editor" editor either.or.check } 743 | 'skip$ 744 | if$ 745 | } 746 | if$ 747 | new.block 748 | format.btitle "title" output.check 749 | crossref missing$ 750 | { format.bvolume output 751 | new.block 752 | format.number.series output 753 | new.sentence 754 | publisher "publisher" output.check 755 | address output 756 | } 757 | { new.block 758 | format.book.crossref output.nonnull 759 | } 760 | if$ 761 | format.edition output 762 | format.date "year" output.check 763 | format.isbn output 764 | format.doi output 765 | format.url output 766 | new.block 767 | note output 768 | fin.entry 769 | } 770 | 771 | FUNCTION {booklet} 772 | { output.bibitem 773 | format.authors output 774 | author format.key output 775 | new.block 776 | format.title "title" output.check 777 | howpublished address new.block.checkb 778 | howpublished output 779 | address output 780 | format.date output 781 | format.isbn output 782 | format.doi output 783 | format.url output 784 | new.block 785 | note output 786 | fin.entry 787 | } 788 | 789 | FUNCTION {inbook} 790 | { output.bibitem 791 | author empty$ 792 | { format.editors "author and editor" output.check 793 | editor format.key output 794 | } 795 | { format.authors output.nonnull 796 | crossref missing$ 797 | { "author and editor" editor either.or.check } 798 | 'skip$ 799 | if$ 800 | } 801 | if$ 802 | new.block 803 | format.btitle "title" output.check 804 | crossref missing$ 805 | { format.bvolume output 806 | format.chapter.pages "chapter and pages" output.check 807 | new.block 808 | format.number.series output 809 | new.sentence 810 | publisher "publisher" output.check 811 | address output 812 | } 813 | { format.chapter.pages "chapter and pages" output.check 814 | new.block 815 | format.book.crossref output.nonnull 816 | } 817 | if$ 818 | format.edition output 819 | format.date "year" output.check 820 | format.isbn output 821 | format.doi output 822 | format.url output 823 | new.block 824 | note output 825 | fin.entry 826 | } 827 | 828 | FUNCTION {incollection} 829 | { output.bibitem 830 | format.authors "author" output.check 831 | author format.key output 832 | new.block 833 | format.title "title" output.check 834 | new.block 835 | crossref missing$ 836 | { format.in.ed.booktitle "booktitle" output.check 837 | format.bvolume output 838 | format.number.series output 839 | format.chapter.pages output 840 | new.sentence 841 | publisher "publisher" output.check 842 | address output 843 | format.edition output 844 | format.date "year" output.check 845 | } 846 | { format.incoll.inproc.crossref output.nonnull 847 | format.chapter.pages output 848 | } 849 | if$ 850 | format.isbn output 851 | format.doi output 852 | format.url output 853 | new.block 854 | note output 855 | fin.entry 856 | } 857 | 858 | FUNCTION {inproceedings} 859 | { output.bibitem 860 | format.authors "author" output.check 861 | author format.key output 862 | new.block 863 | format.title "title" output.check 864 | new.block 865 | crossref missing$ 866 | { format.in.ed.booktitle "booktitle" output.check 867 | format.bvolume output 868 | format.number.series output 869 | format.pages output 870 | address empty$ 871 | { organization publisher new.sentence.checkb 872 | organization output 873 | publisher output 874 | format.date "year" output.check 875 | } 876 | { address output.nonnull 877 | format.date "year" output.check 878 | new.sentence 879 | organization output 880 | publisher output 881 | } 882 | if$ 883 | } 884 | { format.incoll.inproc.crossref output.nonnull 885 | format.pages output 886 | } 887 | if$ 888 | format.isbn output 889 | format.doi output 890 | format.url output 891 | new.block 892 | note output 893 | fin.entry 894 | } 895 | 896 | FUNCTION {conference} { inproceedings } 897 | 898 | FUNCTION {manual} 899 | { output.bibitem 900 | format.authors output 901 | author format.key output 902 | new.block 903 | format.btitle "title" output.check 904 | organization address new.block.checkb 905 | organization output 906 | address output 907 | format.edition output 908 | format.date output 909 | format.url output 910 | new.block 911 | note output 912 | fin.entry 913 | } 914 | 915 | FUNCTION {mastersthesis} 916 | { output.bibitem 917 | format.authors "author" output.check 918 | author format.key output 919 | new.block 920 | format.title "title" output.check 921 | new.block 922 | "Master's thesis" format.thesis.type output.nonnull 923 | school "school" output.check 924 | address output 925 | format.date "year" output.check 926 | format.url output 927 | new.block 928 | note output 929 | fin.entry 930 | } 931 | 932 | FUNCTION {misc} 933 | { output.bibitem 934 | format.authors output 935 | author format.key output 936 | title howpublished new.block.checkb 937 | format.title output 938 | howpublished new.block.checka 939 | howpublished output 940 | format.date output 941 | format.issn output 942 | format.url output 943 | new.block 944 | note output 945 | fin.entry 946 | empty.misc.check 947 | } 948 | 949 | FUNCTION {phdthesis} 950 | { output.bibitem 951 | format.authors "author" output.check 952 | author format.key output 953 | new.block 954 | format.btitle "title" output.check 955 | new.block 956 | "PhD thesis" format.thesis.type output.nonnull 957 | school "school" output.check 958 | address output 959 | format.date "year" output.check 960 | format.url output 961 | new.block 962 | note output 963 | fin.entry 964 | } 965 | 966 | FUNCTION {proceedings} 967 | { output.bibitem 968 | format.editors output 969 | editor format.key output 970 | new.block 971 | format.btitle "title" output.check 972 | format.bvolume output 973 | format.number.series output 974 | address output 975 | format.date "year" output.check 976 | new.sentence 977 | organization output 978 | publisher output 979 | format.isbn output 980 | format.doi output 981 | format.url output 982 | new.block 983 | note output 984 | fin.entry 985 | } 986 | 987 | FUNCTION {techreport} 988 | { output.bibitem 989 | format.authors "author" output.check 990 | author format.key output 991 | new.block 992 | format.title "title" output.check 993 | new.block 994 | format.tr.number output.nonnull 995 | institution "institution" output.check 996 | address output 997 | format.date "year" output.check 998 | format.url output 999 | new.block 1000 | note output 1001 | fin.entry 1002 | } 1003 | 1004 | FUNCTION {unpublished} 1005 | { output.bibitem 1006 | format.authors "author" output.check 1007 | author format.key output 1008 | new.block 1009 | format.title "title" output.check 1010 | new.block 1011 | note "note" output.check 1012 | format.date output 1013 | format.url output 1014 | fin.entry 1015 | } 1016 | 1017 | FUNCTION {default.type} { misc } 1018 | 1019 | 1020 | MACRO {jan} {"Jan."} 1021 | 1022 | MACRO {feb} {"Feb."} 1023 | 1024 | MACRO {mar} {"Mar."} 1025 | 1026 | MACRO {apr} {"Apr."} 1027 | 1028 | MACRO {may} {"May"} 1029 | 1030 | MACRO {jun} {"June"} 1031 | 1032 | MACRO {jul} {"July"} 1033 | 1034 | MACRO {aug} {"Aug."} 1035 | 1036 | MACRO {sep} {"Sept."} 1037 | 1038 | MACRO {oct} {"Oct."} 1039 | 1040 | MACRO {nov} {"Nov."} 1041 | 1042 | MACRO {dec} {"Dec."} 1043 | 1044 | 1045 | 1046 | MACRO {acmcs} {"ACM Comput. Surv."} 1047 | 1048 | MACRO {acta} {"Acta Inf."} 1049 | 1050 | MACRO {cacm} {"Commun. ACM"} 1051 | 1052 | MACRO {ibmjrd} {"IBM J. Res. Dev."} 1053 | 1054 | MACRO {ibmsj} {"IBM Syst.~J."} 1055 | 1056 | MACRO {ieeese} {"IEEE Trans. Softw. Eng."} 1057 | 1058 | MACRO {ieeetc} {"IEEE Trans. Comput."} 1059 | 1060 | MACRO {ieeetcad} 1061 | {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} 1062 | 1063 | MACRO {ipl} {"Inf. Process. Lett."} 1064 | 1065 | MACRO {jacm} {"J.~ACM"} 1066 | 1067 | MACRO {jcss} {"J.~Comput. Syst. Sci."} 1068 | 1069 | MACRO {scp} {"Sci. Comput. Programming"} 1070 | 1071 | MACRO {sicomp} {"SIAM J. Comput."} 1072 | 1073 | MACRO {tocs} {"ACM Trans. Comput. Syst."} 1074 | 1075 | MACRO {tods} {"ACM Trans. Database Syst."} 1076 | 1077 | MACRO {tog} {"ACM Trans. Gr."} 1078 | 1079 | MACRO {toms} {"ACM Trans. Math. Softw."} 1080 | 1081 | MACRO {toois} {"ACM Trans. Office Inf. Syst."} 1082 | 1083 | MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} 1084 | 1085 | MACRO {tcs} {"Theoretical Comput. Sci."} 1086 | 1087 | 1088 | READ 1089 | 1090 | FUNCTION {sortify} 1091 | { purify$ 1092 | "l" change.case$ 1093 | } 1094 | 1095 | INTEGERS { len } 1096 | 1097 | FUNCTION {chop.word} 1098 | { 's := 1099 | 'len := 1100 | s #1 len substring$ = 1101 | { s len #1 + global.max$ substring$ } 1102 | 's 1103 | if$ 1104 | } 1105 | 1106 | FUNCTION {format.lab.names} 1107 | { 's := 1108 | s #1 "{vv~}{ll}" format.name$ 1109 | s num.names$ duplicate$ 1110 | #2 > 1111 | { pop$ " et~al." * } 1112 | { #2 < 1113 | 'skip$ 1114 | { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1115 | { " et~al." * } 1116 | { " and " * s #2 "{vv~}{ll}" format.name$ * } 1117 | if$ 1118 | } 1119 | if$ 1120 | } 1121 | if$ 1122 | } 1123 | 1124 | FUNCTION {author.key.label} 1125 | { author empty$ 1126 | { key empty$ 1127 | { cite$ #1 #3 substring$ } 1128 | 'key 1129 | if$ 1130 | } 1131 | { author format.lab.names } 1132 | if$ 1133 | } 1134 | 1135 | FUNCTION {author.editor.key.label} 1136 | { author empty$ 1137 | { editor empty$ 1138 | { key empty$ 1139 | { cite$ #1 #3 substring$ } 1140 | 'key 1141 | if$ 1142 | } 1143 | { editor format.lab.names } 1144 | if$ 1145 | } 1146 | { author format.lab.names } 1147 | if$ 1148 | } 1149 | 1150 | FUNCTION {author.key.organization.label} 1151 | { author empty$ 1152 | { key empty$ 1153 | { organization empty$ 1154 | { cite$ #1 #3 substring$ } 1155 | { "The " #4 organization chop.word #3 text.prefix$ } 1156 | if$ 1157 | } 1158 | 'key 1159 | if$ 1160 | } 1161 | { author format.lab.names } 1162 | if$ 1163 | } 1164 | 1165 | FUNCTION {editor.key.organization.label} 1166 | { editor empty$ 1167 | { key empty$ 1168 | { organization empty$ 1169 | { cite$ #1 #3 substring$ } 1170 | { "The " #4 organization chop.word #3 text.prefix$ } 1171 | if$ 1172 | } 1173 | 'key 1174 | if$ 1175 | } 1176 | { editor format.lab.names } 1177 | if$ 1178 | } 1179 | 1180 | FUNCTION {calc.short.authors} 1181 | { type$ "book" = 1182 | type$ "inbook" = 1183 | or 1184 | 'author.editor.key.label 1185 | { type$ "proceedings" = 1186 | 'editor.key.organization.label 1187 | { type$ "manual" = 1188 | 'author.key.organization.label 1189 | 'author.key.label 1190 | if$ 1191 | } 1192 | if$ 1193 | } 1194 | if$ 1195 | 'short.list := 1196 | } 1197 | 1198 | FUNCTION {calc.label} 1199 | { calc.short.authors 1200 | short.list 1201 | "(" 1202 | * 1203 | year duplicate$ empty$ 1204 | short.list key field.or.null = or 1205 | { pop$ "" } 1206 | 'skip$ 1207 | if$ 1208 | * 1209 | 'label := 1210 | } 1211 | 1212 | INTEGERS { seq.num } 1213 | 1214 | FUNCTION {init.seq} 1215 | { #0 'seq.num :=} 1216 | 1217 | EXECUTE {init.seq} 1218 | 1219 | FUNCTION {int.to.fix} 1220 | { "000000000" swap$ int.to.str$ * 1221 | #-1 #10 substring$ 1222 | } 1223 | 1224 | 1225 | FUNCTION {presort} 1226 | { calc.label 1227 | label sortify 1228 | " " 1229 | * 1230 | seq.num #1 + 'seq.num := 1231 | seq.num int.to.fix 1232 | 'sort.label := 1233 | sort.label * 1234 | #1 entry.max$ substring$ 1235 | 'sort.key$ := 1236 | } 1237 | 1238 | ITERATE {presort} 1239 | 1240 | SORT 1241 | 1242 | STRINGS { longest.label last.label next.extra } 1243 | 1244 | INTEGERS { longest.label.width last.extra.num number.label } 1245 | 1246 | FUNCTION {initialize.longest.label} 1247 | { "" 'longest.label := 1248 | #0 int.to.chr$ 'last.label := 1249 | "" 'next.extra := 1250 | #0 'longest.label.width := 1251 | #0 'last.extra.num := 1252 | #0 'number.label := 1253 | } 1254 | 1255 | FUNCTION {forward.pass} 1256 | { last.label label = 1257 | { last.extra.num #1 + 'last.extra.num := 1258 | last.extra.num int.to.chr$ 'extra.label := 1259 | } 1260 | { "a" chr.to.int$ 'last.extra.num := 1261 | "" 'extra.label := 1262 | label 'last.label := 1263 | } 1264 | if$ 1265 | number.label #1 + 'number.label := 1266 | } 1267 | 1268 | FUNCTION {reverse.pass} 1269 | { next.extra "b" = 1270 | { "a" 'extra.label := } 1271 | 'skip$ 1272 | if$ 1273 | extra.label 'next.extra := 1274 | extra.label 1275 | duplicate$ empty$ 1276 | 'skip$ 1277 | { "{\natexlab{" swap$ * "}}" * } 1278 | if$ 1279 | 'extra.label := 1280 | label extra.label * 'label := 1281 | } 1282 | 1283 | EXECUTE {initialize.longest.label} 1284 | 1285 | ITERATE {forward.pass} 1286 | 1287 | REVERSE {reverse.pass} 1288 | 1289 | FUNCTION {bib.sort.order} 1290 | { sort.label 'sort.key$ := 1291 | } 1292 | 1293 | ITERATE {bib.sort.order} 1294 | 1295 | SORT 1296 | 1297 | FUNCTION {begin.bib} 1298 | { preamble$ empty$ 1299 | 'skip$ 1300 | { preamble$ write$ newline$ } 1301 | if$ 1302 | "\begin{thebibliography}{" number.label int.to.str$ * "}" * 1303 | write$ newline$ 1304 | "\providecommand{\natexlab}[1]{#1}" 1305 | write$ newline$ 1306 | "\providecommand{\url}[1]{\texttt{#1}}" 1307 | write$ newline$ 1308 | "\expandafter\ifx\csname urlstyle\endcsname\relax" 1309 | write$ newline$ 1310 | " \providecommand{\doi}[1]{doi: #1}\else" 1311 | write$ newline$ 1312 | " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" 1313 | write$ newline$ 1314 | } 1315 | 1316 | EXECUTE {begin.bib} 1317 | 1318 | EXECUTE {init.state.consts} 1319 | 1320 | ITERATE {call.type$} 1321 | 1322 | FUNCTION {end.bib} 1323 | { newline$ 1324 | "\end{thebibliography}" write$ newline$ 1325 | } 1326 | 1327 | EXECUTE {end.bib} 1328 | -------------------------------------------------------------------------------- /process.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | filen=nddiss2e 3 | echo $filen 4 | latex ${filen}.ins 5 | latex ${filen}.dtx 6 | latex ${filen}.dtx 7 | makeindex -s gglo.ist -o ${filen}.gls ${filen}.glo 8 | makeindex -s gind.ist -o ${filen}.ind ${filen}.idx 9 | latex ${filen}.dtx 10 | pdflatex ${filen}.dtx 11 | rm -fr ${filen}.aux 12 | rm -fr ${filen}.glo 13 | rm -fr ${filen}.gls 14 | rm -fr ${filen}.idx 15 | rm -fr ${filen}.ilg 16 | rm -fr ${filen}.ind 17 | #rm -fr ${filen}.log 18 | rm -fr ${filen}.out 19 | rm -fr ${filen}.toc 20 | -------------------------------------------------------------------------------- /template.tex: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `template.tex', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% nddiss2e.dtx (with options: `template') 8 | %% 9 | %% This is a generated file. 10 | %% 11 | %% Copyright (C) 2004-2005 Sameer Vijay 12 | %% 13 | %% This file may be distributed and/or modified under the 14 | %% conditions of the LaTeX Project Public License, either 15 | %% version 1.2 of this license or (at your option) any later 16 | %% version. The latest version of this license is in 17 | %% http://www.latex-project.org/lppl.txt 18 | %% 19 | %% 20 | %% ============================================================== 21 | %% 22 | %% Notre Dame's Dissertation document class by Sameer Vijay 23 | %% that adheres to the University of Notre Dame guidelines 24 | %% published in Spring 2004. 25 | %% 26 | %% Please send any improvements/suggestions to : 27 | %% Shari Hill, Graduate Reviewer. 28 | %% shill2@nd.edu 29 | %% 30 | %% For documentation on how to use nddiss2e class, process the 31 | %% file nddiss2e.dtx through LaTeX. 32 | %% 33 | %% ============================================================== 34 | %% 35 | \ProvidesFile{template.tex} 36 | [2016/10/16 v3.2016% 37 | Template file for NDdiss2e class] 38 | \documentclass[draft]{nddiss2e} 39 | % One of the options draft, review, final must be chosen. 40 | % One of the options textrefs or numrefs should be chosen 41 | % to specify if you want numerical or ``author-date'' 42 | % style citations. 43 | % Other available options are: 44 | % 10pt/11pt/12pt (available with draft only) 45 | % twoadvisors 46 | % noinfo (should be used when you compile the final time 47 | % for formal submission) 48 | % sort (sorts multiple citations in the order that they're 49 | % listed in the bibliography) 50 | % compress (compresses numerical citations, e.g. [1,2,3] 51 | % becomes [1-3]; has no effect when used with 52 | % the textrefs option) 53 | % sort&compress (sorts and compresses numerical citations; 54 | % is identical to sort when used with textrefs) 55 | \begin{document} 56 | 57 | \frontmatter % All the items before Chapter 1 go in ``frontmatter'' 58 | 59 | \title{Title of Work} % Title 60 | 61 | \author{Jane Doe} % Author's name 62 | \work{Dissertation} % ``Dissertation'' or ``Thesis'' 63 | \degaward{Doctor of Philosophy} % Degree you're aiming for. 64 | % Should be one of the following options: 65 | % ``Doctor of Philosophy'' (do NOT include ``in Subject'') 66 | % ``Master of Science \\ in \\ Subject'' 67 | \advisor{John Public} % Advisor's name 68 | % \secondadvisor{} % Second advisor, if used option ``twoadvisors'' 69 | \program{} % Name of the graduate program 70 | 71 | \maketitle % The title page is created now 72 | 73 | % You must use either the \makecopyright option or the \makepublicdomain option. 74 | % \copyrightholder{} % If you're not the copyright holder 75 | % \copyrightyear{} % If the copyright is not for the current year 76 | % \makecopyright % If not making your work public domain 77 | % uncomment out \makecopyright 78 | % \makepublicdomain % Uncomment this to make your work public domain 79 | 80 | % Including an abstract is optional for a master's thesis, and required for a 81 | % doctoral dissertation. 82 | % \begin{abstract} 83 | % \end{abstract} 84 | % % Either place the text between begin/end, or 85 | % \include{abstract} % put it in a file to be included 86 | 87 | % Including a dedication is optional. 88 | % \renewcommand{\dedicationname}{\mbox{}} % Replace \mbox{} if you want 89 | % something else. 90 | % \begin{dedication} 91 | % \end{dedication} 92 | % % Use one of the two choices to add dedication text 93 | % \include{dedication} 94 | 95 | \tableofcontents 96 | \listoffigures 97 | \listoftables 98 | 99 | % Including a list of symbols is optional. 100 | %% \renewcommand{\symbolsname}{newsymname} % Replace ``newsymname'' with 101 | % the name you want, and uncomment 102 | % \begin{symbols} 103 | % \end{symbols} 104 | % % Use one of the two choices to add symbols text 105 | % \include{symbols} 106 | 107 | % Including a preface is optional. 108 | %% \renewcommand{\prefacename}{ } % If you want another Preface name, add 109 | % something else, and uncomment. 110 | % \begin{preface} 111 | % \end{preface} 112 | % % Use one of the two choices to add preface text 113 | % \include{preface} 114 | 115 | % Including an acknowledgements section may or may not be optional. It's hard to 116 | % tell from the information available in Spring 2013. 117 | %% \renewcommand{\acknowledgename}{ } % If you want another Acknowledgement name 118 | % add something else, and uncomment 119 | % \begin{acknowledge} 120 | % \end{acknowledge} 121 | % % Use one of the two choices to add acknowledge text 122 | % \include{acknowledgement} 123 | 124 | \mainmatter 125 | % Place the text body here. 126 | % \include{chapter-one} 127 | % Begin each chapter with \chapter{Title}. 128 | 129 | \appendix 130 | 131 | % If you have appendices, add them here. 132 | % Begin each one with \chapter{TITLE} as before. The \appendix command takes 133 | % care of renaming chapter headings and creates a new page in the Table of 134 | % Contents for them. 135 | % \include{appendix-one} 136 | 137 | \backmatter % Place for bibliography and index 138 | 139 | 140 | \bibliographystyle{nddiss2e} 141 | \bibliography{ } % input the bib-database file name 142 | 143 | 144 | \end{document} 145 | 146 | %% 147 | \endinput 148 | %% 149 | %% End of file `template.tex'. 150 | --------------------------------------------------------------------------------