├── .gitignore ├── .project ├── LICENSE.md ├── README.md ├── bibliography └── bibliography.bib ├── circle.yml ├── graphics └── ustc │ ├── ustc_logos │ ├── ustc_logo_side.cdr │ ├── ustc_logo_side.eps │ ├── ustc_logo_side.pdf │ └── ustc_logo_side_orig.eps │ ├── ustc_slides_background │ ├── ustc_slides_background.cdr │ ├── ustc_slides_background.eps │ ├── ustc_slides_background.pdf │ └── ustc_slides_background_orig.jpg │ ├── ustc_slides_bibliography │ ├── ustc_slides_bibliography.cdr │ ├── ustc_slides_bibliography.eps │ └── ustc_slides_bibliography.pdf │ ├── ustc_slides_cover │ ├── ustc_slides_cover.cdr │ ├── ustc_slides_cover.eps │ ├── ustc_slides_cover.pdf │ └── ustc_slides_cover_orig.png │ └── ustc_slides_final │ ├── painting.jpg │ ├── ustc_slides_final.cdr │ ├── ustc_slides_final.eps │ └── ustc_slides_final.pdf ├── scripts ├── eps2pdf.sh ├── filterPdf.sh ├── latex.sh ├── lualatex.sh ├── mintex.sh ├── pdflatex.sh ├── removeBOM.sh ├── tex.sh └── xelatex.sh ├── slides.tex ├── styles ├── pack_citations.sty ├── pack_hyperref.sty ├── pack_language.sty ├── pack_listings.sty ├── pack_math.sty ├── pack_numbers.sty ├── pack_overlays.sty ├── pack_pgf.sty ├── pack_shortcuts.sty ├── pack_slides_commands.sty ├── pack_slides_theme.sty ├── pack_units.sty └── slides.sty └── wercker.yml /.gitignore: -------------------------------------------------------------------------------- 1 | *.aux 2 | *.bbl 3 | *.blg 4 | *.dvi 5 | *.ent 6 | *.idx 7 | *.log 8 | *.nav 9 | *.out 10 | *.out.ps 11 | *.ps 12 | *.snm 13 | *.toc 14 | *.vrb 15 | auto 16 | 17 | # only in the root folder 18 | /*.pdf 19 | workspace/ -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ustcSlides 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | This work is licensed under the Creative Commons Attribution 4.0 International License. 4 | 5 | 6 | ## Attribution 4.0 International 7 | 8 | Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. 9 | 10 | ### Using Creative Commons Public Licenses 11 | 12 | Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. 13 | 14 | * __Considerations for licensors:__ Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. [More considerations for licensors](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors). 15 | 16 | * __Considerations for the public:__ By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. [More considerations for the public](http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees). 17 | 18 | ### Creative Commons Attribution 4.0 International Public License 19 | 20 | By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. 21 | 22 | #### Section 1 – Definitions. 23 | 24 | a. __Adapted Material__ means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. 25 | 26 | b. __Adapter's License__ means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. 27 | 28 | c. __Copyright and Similar Rights__ means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. 29 | 30 | d. __Effective Technological Measures__ means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. 31 | 32 | e. __Exceptions and Limitations__ means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. 33 | 34 | f. __Licensed Material__ means the artistic or literary work, database, or other material to which the Licensor applied this Public License. 35 | 36 | g. __Licensed Rights__ means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. 37 | 38 | h. __Licensor__ means the individual(s) or entity(ies) granting rights under this Public License. 39 | 40 | i. __Share__ means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. 41 | 42 | j. __Sui Generis Database Rights__ means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. 43 | 44 | k. __You__ means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. 45 | 46 | #### Section 2 – Scope. 47 | 48 | a. ___License grant.___ 49 | 50 | 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: 51 | 52 | A. reproduce and Share the Licensed Material, in whole or in part; and 53 | 54 | B. produce, reproduce, and Share Adapted Material. 55 | 56 | 2. __Exceptions and Limitations.__ For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 57 | 58 | 3. __Term.__ The term of this Public License is specified in Section 6(a). 59 | 60 | 4. __Media and formats; technical modifications allowed.__ The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 61 | 62 | 5. __Downstream recipients.__ 63 | 64 | A. __Offer from the Licensor – Licensed Material.__ Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. 65 | 66 | B. __No downstream restrictions.__ You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 67 | 68 | 6. __No endorsement.__ Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). 69 | 70 | b. ___Other rights.___ 71 | 72 | 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 73 | 74 | 2. Patent and trademark rights are not licensed under this Public License. 75 | 76 | 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. 77 | 78 | #### Section 3 – License Conditions. 79 | 80 | Your exercise of the Licensed Rights is expressly made subject to the following conditions. 81 | 82 | a. ___Attribution.___ 83 | 84 | 1. If You Share the Licensed Material (including in modified form), You must: 85 | 86 | A. retain the following if it is supplied by the Licensor with the Licensed Material: 87 | 88 | i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); 89 | 90 | ii. a copyright notice; 91 | 92 | iii. a notice that refers to this Public License; 93 | 94 | iv. a notice that refers to the disclaimer of warranties; 95 | 96 | v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; 97 | 98 | B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and 99 | 100 | C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 101 | 102 | 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 103 | 104 | 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 105 | 106 | 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. 107 | 108 | #### Section 4 – Sui Generis Database Rights. 109 | 110 | Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: 111 | 112 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; 113 | 114 | b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and 115 | 116 | c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. 117 | 118 | For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. 119 | 120 | #### Section 5 – Disclaimer of Warranties and Limitation of Liability. 121 | 122 | a. __Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.__ 123 | 124 | b. __To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.__ 125 | 126 | c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. 127 | 128 | #### Section 6 – Term and Termination. 129 | 130 | a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. 131 | 132 | b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 133 | 134 | 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 135 | 136 | 2. upon express reinstatement by the Licensor. 137 | 138 | For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. 139 | 140 | c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. 141 | 142 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. 143 | 144 | #### Section 7 – Other Terms and Conditions. 145 | 146 | a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. 147 | 148 | b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. 149 | 150 | #### Section 8 – Interpretation. 151 | 152 | *a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. 153 | 154 | b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. 155 | 156 | c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. 157 | 158 | d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. 159 | 160 | ``` 161 | Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. 162 | 163 | Creative Commons may be contacted at [creativecommons.org](http://creativecommons.org/). 164 | ``` 165 | 166 | 167 | ## Exceptions 168 | 169 | We include some files for easing the automated use of our examples under windows. That is, a stand-alone `svn` client and a stand-alone `tar`, `zip`, 170 | `lzma`, and `gz` decompressor. 171 | 172 | * 7-Zip Stand-Alone Binary 173 | - The [7-Zip](http://www.7-zip.org/) stand-alone binary from package [`7-Zip Extra`](http://www.7-zip.org/a/7z1505-extra.7z) of [7-Zip 15.05 beta](http://www.7-zip.org/download.html) (2015-06-14) for Windows 174 | - License: [GNU LESSER GENERAL PUBLIC LICENSE, Version 2.1](http://www.gnu.org/copyleft/lesser.txt) (see file "[meta/licenses/lgpl-2.1.txt](http://github.com/optimizationBenchmarking/optimizationBenchmarking/tree/master/meta/licenses/lgpl-2.1.txt)") 175 | - Copyright: Copyright (C) 1999-2015 Igor Pavlov 176 | - Author: Igor Pavlov 177 | - Files: 178 | + [7za.exe](https://github.com/optimizationBenchmarking/optimizationBenchmarkingDocu/blob/master/tools/windows/7zip/7za.exe) 179 | + [License.txt](https://github.com/optimizationBenchmarking/optimizationBenchmarkingDocu/blob/master/tools/windows/7zip/License.txt) 180 | - Version: 15.05 beta (2015-06-14) 181 | - Status: freely available in the internet 182 | - Source: [http://www.7-zip.org/download.html](http://www.7-zip.org/download.html) 183 | 184 | * Stand-Alone [Apache(TM) Subversion(R)](http://subversion.apache.org/) Client maintained by [VisualSVN](https://www.visualsvn.com/) 185 | - Apache [does not](http://subversion.apache.org/packages.html#windows) maintain binaries for their SVN system, so we use the unofficial binaries from [VisualSVN](https://www.visualsvn.com/downloads/) for Windows 186 | - License: This software is composed of several components, so there are several licenses, which are all included in the archive we provide. 187 | + [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) (see file "[meta/licenses/apache-2.0.txt](http://github.com/optimizationBenchmarking/optimizationBenchmarking/tree/master/meta/licenses/apache-2.0.txt)") 188 | + The [OpenSSL toolkit](http://www.openssl.org/) stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact [openssl-core@openssl.org](mailto:openssl-core@openssl.org). 189 | + ZLib is provided by [Jean-loup Gailly](jloup@gzip.org) and [Mark Adler](madler@alumni.caltech.edu) 'as-is', without any express or implied warranty, under an Open Source license. 190 | - Copyright: 191 | + General: [The Apache Software Foundation](http://www.apache.org/) 2011 192 | + OpenSSL: Copyright (c) 1998-2005 [The OpenSSL Project](http://www.openssl.org/). 193 | + ZLib: (C) 1995-2004 [Jean-loup Gailly](jloup@gzip.org) and [Mark Adler](madler@alumni.caltech.edu) 194 | - Authors: [The Apache Software Foundation](http://www.apache.org/), [The OpenSSL Project](http://www.openssl.org/), [Jean-loup Gailly](jloup@gzip.org), and [Mark Adler](madler@alumni.caltech.edu) (sources), [VisualSVN](https://www.visualsvn.com/) (binaries) 195 | - File: [svn.tar.lzma](https://github.com/optimizationBenchmarking/optimizationBenchmarkingDocu/blob/master/tools/windows/svn/svn.tar.lzma) 196 | - Version: 1.8.13 197 | - Status: freely available in the internet 198 | - Source: [https://www.visualsvn.com/files/Apache-Subversion-1.8.13.zip](https://www.visualsvn.com/files/Apache-Subversion-1.8.13.zip) 199 | 200 | 201 | ## Questions and Problems 202 | 203 | If you have any questions about this work, want to contribute 204 | to *the project*, want to discuss licensing terms, or have any 205 | problem with *the project* itself and/or its licensing terms, 206 | please contact the project main author via 207 | [email](mailto:tweise@ustc.edu.cn) (see point "Contact"). 208 | 209 | ## Contact 210 | 211 | The main author, copyright holder, and corresponding author of 212 | this work is Dr. Thomas Weise. 213 | 214 | **Dr. Thomas Weise** 215 | Nature Inspired Computation and Applications Laboratory (NICAL) 216 | USTC-Birmingham Joint Research Institute in Intelligent Computation and Its Applications (UBRI) 217 | School of Computer Science and Technology (SCST) 218 | University of Science and Technology of China (USTC) 219 | West Campus, Science and Technology Building, West Wing, Room 601 220 | Huangshan Road/Feixi Road, Hefei 230027, Anhui, China 221 | Web: [http://www.it-weise.de/](http://www.it-weise.de/) 222 | Email: [tweise@gmx.de](mailto:tweise@gmx.de), [tweise@ustc.edu.cn](mailto:tweise@ustc.edu.cn) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [USTC](http://www.ustc.edu.cn)-Themed [LaTeX](https://en.wikipedia.org/wiki/LaTeX) Slides 2 | 3 | [Current PDF](https://circleci.com/api/v1/project/thomasWeise/ustcSlides/latest/artifacts/0/$CIRCLE_ARTIFACTS/slides.pdf?branch=master) 4 | [CircleCI Build Status](https://circleci.com/gh/thomasWeise/ustcSlides) 5 | [Wercker Build Status](https://app.wercker.com/#applications/5742d62fb6677f7b7d012c60) 6 | 7 | Here I provide my [USTC](http://www.ustc.edu.cn)-themed [LaTeX](https://en.wikipedia.org/wiki/LaTeX) slides template for [beamer](https://en.wikipedia.org/wiki/Beamer_%28LaTeX%29) slides. It is loosely based on the corporate design of the University of Science and Technology of China (USTC) [中国科学技术大学]. [Here](https://circleci.com/api/v1/project/thomasWeise/ustcSlides/latest/artifacts/0/$CIRCLE_ARTIFACTS/slides.pdf?branch=master) you can see how these slides look compiled to [PDF](https://circleci.com/api/v1/project/thomasWeise/ustcSlides/latest/artifacts/0/$CIRCLE_ARTIFACTS/slides.pdf?branch=master). 8 | 9 | ## 1. Usage 10 | 11 | 1. [download](https://github.com/thomasWeise/ustcSlides/archive/master.zip) the template 12 | 2. edit `slides.tex` 13 | 3. in order to produce a pdf of your slides, under Linux run 14 | 1. `./scripts/latex.sh slides evince` if you are using `eps` figures 15 | 2. `./scripts/pdflatex.sh slides evince` if you are using `pdf` figures 16 | 3. `./scripts/xelatex.sh slides evince` if you have Chinese text (also: produces smaller output than `pdflatex`) 17 | 4. `./scripts/lualatex.sh slides evince` if the above commands fail (LuaLaTeX is slightly better in dealing with memory allocation and stuff) 18 | 19 | ## 2. Available Commands 20 | 21 | ### 2.1. Structural Commands 22 | 23 | The following structural commands should be used in exactly this order (while `\appendices` and `\printSectionOutlines` are optional). 24 | 25 | 1. `\startPresentation{optional}` start the presentation and put the `optional` content on the outline slides, if any. After this, your slides should come. 26 | 2. `\printSectionOutlines` optional: a section outline should be printed at the beginning of each section 27 | 3. `\endPresentation` ends the presentation by putting a goodbye screen and the references 28 | 4. `\appendices{optional}` starts appendix sections and prints the contents of `optional` on the start slide. Maybe you want to have some more slides in store if someone asks questions. Can be left away if there are no appendices. 29 | 5. `\appendix{title}` start an appendix section with the given `title`. 30 | 31 | ### 2.2. Put Objects at Specific Locations 32 | 33 | Sometimes we want to locate stuff at specific positions on a slide. For this purpose, the following commands are used, which all operate on a `x-y` coordinate system where `x=0, y=0` is the top-left corner of the slide and `x=1, y=1` is the bottom-right corner. 34 | 35 | 1. `\locate{when}{what}{x}{y}` position the content (`what`) at the specified `x-y` coordinates. If `when` is not empty, wrap everything in an `\only{...}`, i.e., only display something at the specified sub-slide id range. You may put an `\includegraphics` as contents. 36 | 2. `\locateWithCaption{when}{what}{caption}{x}{y}{width}` locate the content of `what` at the specified `x-y` coordinates. Put a `figure`-like `caption` below it. Reserve the given `width` (between `0` and `1`, relative to slide width) for everything. The `width` is reserved to know how to break the caption if it is longer than the contents (`what`). 37 | 3. `\locateGraphic[ref]{when}{arg}{path}{x}{y}` locate an `\includegraphics[arg]{path}` via `locate{when}{\includegraphics[arg]{path}}{x}{y}`. The optional argument `[ref]` can be a citation (`\citep`) or text describing the image source. It is printed with tiny, gray text in the bottom-left corner of the image (overlapping with the image). Arguments are passed forward as indicated. 38 | 4. `\locateFramedGraphic{when}{arg}{path}{x}{y}` same as `\locateGraphic`, but puts a frame around the graphic. 39 | 5. `\locateFramedBox{when}{width}{what}{x}{y}{background}{foreground}` locate a framed box of the given `width` (relative to the slide width) at coordinates `x-y` at sub-slides `when` (or always, if `when` is empty). The contents of the box are `what`. The box will use `background` as fill color (or white, if `background` is empty). The frame will be in color `foreground` (or blueish, if `foreground` is empty). 40 | 6. `\begin{lobateBox}{when}{x}{y}...\end{locateBox}` locate the contents of the environment at the specified `x-y` coordinates. If `when` is not empty, only display at the specified sub-slides. 41 | 7. `\begin{scaledBox}{width}{height} ... \end{scaledBox}` an environment which scales its contents to the given `width` and `height`. If `width==!`, then we scale proportionally according to `height`. If `height=!`, then we scale proportionally to `width`. 42 | 43 | ### 2.3. Listings 44 | 45 | 1. You can use all the normal commands from package [`listings`](http://ctan.org/pkg/listings). 46 | 2. `\begin{listingBlock}[width]{caption}...\end{listingBlock}` place a block with the specified `caption` which is supposed to contain a listing. The `width` can be specified relative to the paper width, if omitted, we use `0.95\paperwidth` as block width. 47 | 3. `\codeil[format]{text}` formats `text` as source code (with the optional `format`, which can be any format support by `listings`, such as `Java`, `XML`, `C`, ...) 48 | 49 | ### 2.4. Citations 50 | 51 | 1. `\citep{ref}` cite reference `ref` by number 52 | 2. `\scitep{ref}` cite reference `ref` by number, pre-pend non-breakable space. For use in text, like `bla bla blablabla\scitep{ref}` 53 | 3. `\citet{ref}` cite reference `ref` by author names followed by number 54 | 4. `\Citet{ref}` cite reference `ref` by author names followed by number at beginning of sections (make first character uppercase) 55 | 5. `\citete{authorRef}{refs}` cite references `refs` by number, but pre-pend the author names of reference `authorRef`. This is useful if a group of authors has produced several works, but the author order changes in these works. 56 | 6. `\Citete{authorRef}{refs}` like `\citete{authorRef}{refs}`, but capitalize first character. 57 | 58 | ### 2.5. Chinese 59 | 60 | Include Chinese text with the command `\zh{chinese text}`. You then need to use the XeLaTeX script for compiling. `\zhb{chinese text}` puts the text into an `\mbox{...}`, which prevents line breaks. This makes sense when using Chinese words like university names or other things that should not be broken across lines in an otherwise English text, for instance. -------------------------------------------------------------------------------- /bibliography/bibliography.bib: -------------------------------------------------------------------------------- 1 | @book{WGOEB, 2 | author = {Thomas Weise}, 3 | title = {Global Optimization Algorithms {--} Theory and Application}, 4 | publisher = {Germany: it-weise.de (self-published)}, 5 | year = {2009}, 6 | url = {http://www.it-weise.de/projects/book.pdf}, 7 | }, 8 | 9 | @article{WWCTL2016GVLSTIOPSOEAP, 10 | author = {Thomas Weise and Yuezhong Wu and Raymond Chiong and Ke Tang and J{\"o}rg L{\"a}ssig}, 11 | title = {Global versus Local Search: The Impact of Population Sizes on Evolutionary Algorithm Performance}, 12 | journal = {Journal of Global Optimization}, 13 | year = {2016}, 14 | volume = {66}, 15 | issue = {3}, 16 | pages = {511--534}, 17 | month = nov, 18 | doi = {10.1007/s10898-016-0417-5}, 19 | url = {http://www.it-weise.de/research/publications/WWCTL2016GVLSTIOPSOEAP/WWCTL2016GVLSTIOPSOEAP.pdf}, 20 | }, 21 | 22 | @inproceedings{WNSRG2008ATMFMOERANFL, 23 | author = {Thomas Weise and Stefan Niemczyk and Hendrik Skubch and Roland Reichle and Kurt Geihs}, 24 | title = {A Tunable Model for Multi-Objective, Epistatic, Rugged, and Neutral Fitness Landscapes}, 25 | booktitle = {Proceedings of the 10th Annual Conference on Genetic and Evolutionary Computation Conference (GECCO'08)}, 26 | editor = {Maarten Keijzer and Giuliano Antoniol and Clare Bates Congdon and Kalyanmoy Deb and Benjamin Doerr and Nikolaus Hansen and John H. Holmes and Gregory S. Hornby and Daniel Howard and James Kennedy and Sanjeev Kumar and Fernando G. Lobo and Julian Francis Miller and Jason Moore and Frank Neumann and Martin Pelikan and Jordan Pollack and Kumara Sastry and Kenneth Stanley and Adrian Stoica and El-Ghazali Talbi and Ingo Wegener}, 27 | location = {Atlanta, GA, USA}, 28 | month = jul # {~12--16, }, 29 | year = {2008}, 30 | pages = {795--802}, 31 | publisher = {ACM Press}, 32 | address = {New York, NY, USA}, 33 | isbn = {978-1-60558-130-9}, 34 | doi = {10.1145/1389095.1389252}, 35 | url = {http://www.it-weise.de/research/publications/WNSRG2008ATMFMOERANFL/WNSRG2008ATMFMOERANFL.pdf} 36 | }, 37 | 38 | @book{CWME2011VOEAFRA, 39 | title = {Variants of Evolutionary Algorithms for Real-World Applications}, 40 | editor = {Raymond Chiong and Thomas Weise and Zbigniew Michalewicz}, 41 | publisher = {Springer}, 42 | address = {Berlin Heidelberg}, 43 | year = {2011}, 44 | isbn = {978-3-642-23423-1}, 45 | doi = {10.1007/978-3-642-23424-8}, 46 | }, 47 | 48 | 49 | @incollection{WPG2009SRWVRPWEA, 50 | title = {Evolutionary Optimizatio}, 51 | author = {Thomas Weise and Alexander Podlich and Christian Gorldt}, 52 | booktitle = {Natural Intelligence for Scheduling, Planning and Packing Problems}, 53 | editor = {Raymond Chiong and Sandeep Dhakal}, 54 | chapter = {2}, 55 | pages = {29--53}, 56 | publisher = {Springer}, 57 | address = {Berlin Heidelberg}, 58 | volume = {250}, 59 | series = {Studies in Computational Intelligence}, 60 | month = oct, 61 | year = {2009}, 62 | isbn = {978-3-642-04038-2}, 63 | doi = {10.1007/978-3-642-04039-9_2}, 64 | url = {http://www.it-weise.de/research/publications/WPG2009SRWVRPWEA/WPG2009SRWVRPWEA.pdf} 65 | }, 66 | 67 | 68 | @article{WCTLTCMY2014BOAAOSFFTTSP, 69 | author = {Thomas Weise and Raymond Chiong and Ke Tang and J{\"{o}}rg L{\"{a}}ssig and Shigeyoshi Tsutsui and Wenxiang Chen and Zbigniew Michalewicz and Xin Yao}, 70 | title = {Benchmarking Optimization Algorithms: An Open Source Framework for the Traveling Salesman Problem}, 71 | publisher = {Piscataway, NJ, USA: IEEE Computational Intelligence Society}, 72 | journal = {IEEE Computational Intelligence Magazine (CIM)}, 73 | volume = {9}, 74 | number = {3}, 75 | pages = {40--52}, 76 | year = {2014}, 77 | month = aug, 78 | doi = {10.1109/MCI.2014.2326101}, 79 | url = {http://www.it-weise.de/research/publications/WCTLTCMY2014BOAAOSFFTTSP/WCTLTCMY2014BOAAOSFFTTSP.pdf} 80 | }, 81 | 82 | @article{WCT2012EOPABT, 83 | author = {Thomas Weise and Raymond Chiong and Ke Tang}, 84 | title = {Evolutionary Optimization: Pitfalls and Booby Traps}, 85 | journal = {Journal of Computer Science and Technology (JCST)}, 86 | volume = {27}, 87 | number = {5}, 88 | pages = {907--936}, 89 | year = {2012}, 90 | month = sep, 91 | doi = {10.1007/s11390-012-1274-4}, 92 | url = {http://www.it-weise.de/research/publications/WCT2012EOPABT/WCT2012EOPABT.pdf} 93 | }, -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | ## 2 | ## Build with CircleCI 3 | ## 4 | ## https://circleci.com/gh/thomasWeise/ustcSlides 5 | # 6 | machine: 7 | # Install the newest version of texlive. 8 | pre: 9 | - sudo add-apt-repository -y ppa:jonathonf/texlive-2016 10 | - sudo apt-get -q -y update 11 | - sudo apt-get -q -y --no-install-recommends install fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp ko.tex-extra-hlfont latex-cjk-all lmodern prosper ps2eps tex-gyre texlive texlive-lang-chinese texlive-lang-cjk texlive-extra-utils texlive-lang-japanese texlive-lang-korean texlive-luatex texlive-science texlive-xetex 12 | 13 | # We do nothing here. 14 | dependencies: 15 | override: 16 | - echo "Nothing" 17 | 18 | # We set a high timeout to prevent the test from being 19 | # terminated unexpectedly. 20 | test: 21 | override: 22 | - ./scripts/mintex.sh slides latex xelatex pdflatex lualatex 23 | - cp "slides.pdf" "$CIRCLE_ARTIFACTS" 24 | -------------------------------------------------------------------------------- /graphics/ustc/ustc_logos/ustc_logo_side.cdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_logos/ustc_logo_side.cdr -------------------------------------------------------------------------------- /graphics/ustc/ustc_logos/ustc_logo_side.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_logos/ustc_logo_side.pdf -------------------------------------------------------------------------------- /graphics/ustc/ustc_logos/ustc_logo_side_orig.eps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_logos/ustc_logo_side_orig.eps -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_background/ustc_slides_background.cdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_background/ustc_slides_background.cdr -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_background/ustc_slides_background.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_background/ustc_slides_background.pdf -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_background/ustc_slides_background_orig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_background/ustc_slides_background_orig.jpg -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_bibliography/ustc_slides_bibliography.cdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_bibliography/ustc_slides_bibliography.cdr -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_bibliography/ustc_slides_bibliography.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_bibliography/ustc_slides_bibliography.pdf -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_cover/ustc_slides_cover.cdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_cover/ustc_slides_cover.cdr -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_cover/ustc_slides_cover.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_cover/ustc_slides_cover.pdf -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_cover/ustc_slides_cover_orig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_cover/ustc_slides_cover_orig.png -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_final/painting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_final/painting.jpg -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_final/ustc_slides_final.cdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_final/ustc_slides_final.cdr -------------------------------------------------------------------------------- /graphics/ustc/ustc_slides_final/ustc_slides_final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thomasWeise/ustcSlides/6552761bf6dd8dc01ea3a3c89da1ffcd148130a0/graphics/ustc/ustc_slides_final/ustc_slides_final.pdf -------------------------------------------------------------------------------- /scripts/eps2pdf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # strict error handling 4 | set -o pipefail # trace ERR through pipes 5 | set -o errtrace # trace ERR through 'time command' and other functions 6 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 7 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 8 | 9 | document="${1%%.*}" 10 | 11 | echo "Using GhostScript to convert document '$document.eps' file to '$document.pdf'." 12 | 13 | gs -q -dEmbedAllFonts=true -dSubsetFonts=true -dCompressFonts=true -dOptimize=true \ 14 | -dPreserveCopyPage=false -dPreserveEPSInfo=false -dPreserveHalftoneInfo=false \ 15 | -dPreserveOPIComments=false -dPreserveOverprintSettings=false -dPreserveSeparation=false \ 16 | -dPreserveDeviceN=false -dMaxBitmap=2147483647 -dDownsampleMonoImages=false \ 17 | -dDownsampleGrayImages=false -dDownsampleColorImages=false -dFastWebView=false \ 18 | -dNOPAUSE -dQUIET -dBATCH -dSAFER -sDEVICE=pdfwrite -r720x720 -dEPSCrop \ 19 | -dCompatibilityLevel=1.4 -sOutputFile="$document.pdf" -f "$document.eps" \ 20 | -c ".setpdfwrite <> setdistillerparams" -c quit 21 | 22 | chmod 777 "$document.pdf" || true 23 | 24 | echo "Done converting '$document.eps' to '$document.pdf'." -------------------------------------------------------------------------------- /scripts/filterPdf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | # This script filters a PDF file and attempts to include 4 | # as many fonts as possible. 5 | 6 | # strict error handling 7 | set -o pipefail # trace ERR through pipes 8 | set -o errtrace # trace ERR through 'time command' and other functions 9 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 10 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 11 | 12 | echo "Filtering document '$1' in order to include as many fonts as possible." 13 | 14 | source="$1" 15 | name="${source%%.*}" 16 | dest="$name.pdf" 17 | 18 | if [ -f "$dest" ]; then 19 | useSource="$name.original.pdf" 20 | echo "Creating backup '$useSource' of '$dest'." 21 | cp "$dest" "$useSource" 22 | else 23 | useSource="$source" 24 | fi 25 | 26 | echo "Filtering '$useSource' to '$dest'." 27 | 28 | gs -q -dEmbedAllFonts=true -dSubsetFonts=true -dCompressFonts=true \ 29 | -dOptimize=true -dPreserveCopyPage=false -dPreserveEPSInfo=false \ 30 | -dPreserveHalftoneInfo=false -dPreserveOPIComments=false \ 31 | -dPreserveOverprintSettings=false -dPreserveSeparation=false \ 32 | -dPreserveDeviceN=false -dMaxBitmap=2147483647 \ 33 | -dDownsampleMonoImages=false -dDownsampleGrayImages=false \ 34 | -dDownsampleColorImages=false -dDetectDuplicateImages=true \ 35 | -dHaveTransparency=true -dFastWebView=false \ 36 | -dNOPAUSE -dQUIET -dBATCH -dSAFER -sDEVICE=pdfwrite \ 37 | -dAutoRotatePages=/PageByPage -sOutputFile="$dest" "$useSource" \ 38 | -c ".setpdfwrite <> setdistillerparams" 39 | 40 | chmod 777 "$dest" || true 41 | 42 | echo "Done filtering document '$source' to '$dest'." -------------------------------------------------------------------------------- /scripts/latex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## Invoke LaTeX 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | echo "Welcome to the LaTeX compiler script." 12 | 13 | document="${1%%.*}" 14 | echo "You want to compile document '$document'." 15 | post=${2:-} 16 | 17 | currentDir=$(pwd) 18 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 19 | cd "$currentDir" 20 | 21 | echo "The current directory is '$currentDir' and the folder where we look for scripts is '$scriptDir'." 22 | echo "We will now invoke the 'tex.sh' tool chain." 23 | 24 | "$scriptDir/tex.sh" latex "${document}" -halt-on-error -interaction=nonstopmode 25 | 26 | if [[ -n "$post" ]] 27 | then 28 | echo "The post-processing command '$post' was specified, now executing '$post \"${document}.pdf\"'." 29 | $post "${document}.pdf" 30 | fi 31 | 32 | echo "Finished executing the LaTeX compiler script." -------------------------------------------------------------------------------- /scripts/lualatex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## Invoke LuaLaTeX 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialised variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | echo "Welcome to the LuaLaTeX compiler script." 12 | 13 | document="${1%%.*}" 14 | echo "You want to compile document '$document'." 15 | post=${2:-} 16 | 17 | currentDir=$(pwd) 18 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 19 | cd "$currentDir" 20 | 21 | echo "The current directory is '$currentDir' and the folder where we look for scripts is '$scriptDir'." 22 | echo "We will now invoke the 'tex.sh' tool chain." 23 | 24 | "$scriptDir/tex.sh" lualatex "${document}" --halt-on-error --interaction=nonstopmode 25 | 26 | if [[ -n "$post" ]] 27 | then 28 | echo "The post-processing command '$post' was specified, now executing '$post \"${document}.pdf\"'." 29 | $post "${document}.pdf" 30 | fi 31 | 32 | echo "Finished executing the LuaLaTeX compiler script." -------------------------------------------------------------------------------- /scripts/mintex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## Invoke several compiler scripts to get the smallest possible PDF 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | echo "Welcome MinLaTeX tool chain." 12 | echo "We will invoke several pdf-LaTeX compilers in a row in the hope to obtain the smallest possible output." 13 | 14 | document="${1%%.*}" 15 | echo "You want to compile document '$document'." 16 | 17 | currentDir=$(pwd) 18 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 19 | cd "$currentDir" 20 | 21 | echo "The current directory is '$currentDir' and the folder where we look for scripts is '$scriptDir'." 22 | 23 | decisionIndex=0 24 | minSize=2147483647 25 | bestCompiler="undefined" 26 | 27 | for var in "$@" 28 | do 29 | if (("$decisionIndex" > 0)) ; then 30 | if "$scriptDir/$var.sh" "$document"; then 31 | decisionIndex=$((decisionIndex+1)) 32 | currentSize=$(stat -c%s "$document.pdf") 33 | if (("$decisionIndex" > 2)) ; then 34 | if (("$decisionIndex" < "$#")) ; then 35 | if (("$minSize" > "$currentSize")) ; then 36 | echo "The new document produced by $var has size $currentSize, which is smaller than the smallest one we have so far (size $minSize by $bestCompiler), so we will keep it." 37 | minSize="$currentSize" 38 | mv -f "$document.pdf" "$tempFile" 39 | bestCompiler="$var" 40 | else 41 | echo "The new document produced by $var has size $currentSize, which is not smaller than the smallest one we have so far (size $minSize by $bestCompiler), so we will delete it." 42 | rm -f "$document.pdf" || true 43 | fi 44 | else 45 | if (("$minSize" > "$currentSize")) ; then 46 | echo "The new document produced by $var has size $currentSize, which is smaller than the smallest one we have so far (size $minSize by $bestCompiler), so we will keep it." 47 | minSize="$currentSize" 48 | rm -f "$tempFile" || true 49 | bestCompiler="$var" 50 | else 51 | echo "The new document produced by $var has size $currentSize, which is not smaller than the smallest one we have so far (size $minSize by $bestCompiler), so we will delete it." 52 | mv -f "$tempFile" "$document.pdf" 53 | fi 54 | fi 55 | else 56 | minSize=$(stat -c%s "$document.pdf") 57 | if (("$decisionIndex" < "$#")) ; then 58 | tempFile="$(tempfile -p=mintex -s=.pdf)" 59 | echo "We will use file '$tempFile' as temporary storage to hold the current-smallest pdf." 60 | mv -f "$document.pdf" "$tempFile" 61 | fi 62 | bestCompiler="$var" 63 | echo "Compiler $var has produced the first pdf document in this MinLaTeX run. It has size $minSize." 64 | fi 65 | fi 66 | else 67 | decisionIndex=1 68 | fi 69 | done 70 | 71 | if (("$decisionIndex" > 1)) ; then 72 | if (("$decisionIndex" < "$#")) ; then 73 | mv -f "$tempFile" "$document.pdf" 74 | fi 75 | decisionIndex=$((decisionIndex-1)) 76 | echo "Finished MinLaTeX tool chain with $decisionIndex successful compilations produced document of size $minSize (with compiler '$bestCompiler')." 77 | else 78 | echo "No compiler in the tool chain could compile the file!" 79 | exit 1 80 | fi -------------------------------------------------------------------------------- /scripts/pdflatex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## Invoke PdfLaTeX 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | echo "Welcome to the PdfLaTeX compiler script." 12 | 13 | document="${1%%.*}" 14 | echo "You want to compile document '$document'." 15 | post=${2:-} 16 | 17 | currentDir=$(pwd) 18 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 19 | cd "$currentDir" 20 | 21 | echo "The current directory is '$currentDir' and the folder where we look for scripts is '$scriptDir'." 22 | echo "We will now invoke the 'tex.sh' tool chain." 23 | 24 | "$scriptDir/tex.sh" pdflatex "${document}" -halt-on-error -interaction=nonstopmode 25 | 26 | if [[ -n "$post" ]] 27 | then 28 | echo "The post-processing command '$post' was specified, now executing '$post \"${document}.pdf\"'." 29 | $post "${document}.pdf" 30 | fi 31 | 32 | echo "Finished executing the PdfLaTeX compiler script." -------------------------------------------------------------------------------- /scripts/removeBOM.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | # This script removes a Byte Order Mark from a text file. 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | source="$1" 12 | 13 | echo "Trying to detect and, if present, remove Byte Order Mark (BOM) from document '$source'." 14 | 15 | if ($( head -c3 "$source" | grep -q $'\xef\xbb\xbf' )); then 16 | echo "3-byte BOM detected in '$source', now removing it." 17 | tempFileName=$(tempfile) 18 | tail --bytes=+4 "$source" >"$tempFileName" 19 | mv -f "$tempFileName" "$source" 20 | echo "Done removing 3-byte Byte Order Mark (BOM) from document '$source'." 21 | else 22 | echo "No BOM detected in '$source', doing nothing." 23 | fi -------------------------------------------------------------------------------- /scripts/tex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## [La|LuaLa|Pdf|XeLa]TeX Compiler Script 4 | ## $1 executable 5 | ## $2 document to compile 6 | 7 | echo "Welcome to the [La|LuaLa|PdfLa|XeLa]TeX compiler script." 8 | 9 | # strict error handling 10 | set -o pipefail # trace ERR through pipes 11 | set -o errtrace # trace ERR through 'time command' and other functions 12 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 13 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 14 | 15 | program="$1" 16 | echo "You have chosen the '$program' compiler with options '${@:3}'." 17 | 18 | document="${2%%.*}" 19 | echo "You want to compile document '$document'." 20 | 21 | currentDir=$(pwd) 22 | echo "Your current working directory is '$currentDir'." 23 | 24 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 25 | echo "This script is in directory '$scriptDir', where we also will look for other scripts." 26 | 27 | cd "$currentDir" 28 | echo "First we will do some cleaning up temporary files from other LaTeX runs and also delete any pre-existing version of '$document.pdf'." 29 | rm "$document.aux" || true 30 | rm "$document.bbl" || true 31 | rm "$document.blg" || true 32 | rm "$document.dvi" || true 33 | rm "$document.ent" || true 34 | rm "$document.idx" || true 35 | rm "$document.log" || true 36 | rm "$document.nav" || true 37 | rm "$document.out" || true 38 | rm "$document.out.ps" || true 39 | rm "$document.pdf" || true 40 | rm "$document.ps" || true 41 | rm "$document.snm" || true 42 | rm "$document.spl" || true 43 | rm "$document.synctex" || true 44 | rm "$document.synctex.gz" || true 45 | rm "$document.toc" || true 46 | rm "$document.vrb" || true 47 | 48 | echo "Now removing Unicode BOMs of .tex and .sty files, if any, as they will confuse LaTeX compilers" 49 | find "$currentDir" -name '*.sty' -exec "$scriptDir/removeBOM.sh" "{}" \; 50 | find "$currentDir" -name '*.bib' -exec "$scriptDir/removeBOM.sh" "{}" \; 51 | find "$currentDir" -name '*.tex' -exec "$scriptDir/removeBOM.sh" "{}" \; 52 | 53 | echo "We will perform runs of $program/BibTeX until no internal files change anymore." 54 | 55 | auxHash="" 56 | oldAuxHash="old" 57 | bblHash="" 58 | oldBblHash="old" 59 | cycle=0 60 | 61 | while [ "$oldAuxHash" != "$auxHash" ] || \ 62 | [ "$oldBblHash" != "$bblHash" ]; do 63 | cycle=$((cycle+1)) 64 | echo "Now beginning build cycle $cycle." 65 | 66 | oldAuxHash=$auxHash 67 | oldBblHash=$bblHash 68 | 69 | echo "Running '$program'." 70 | set +o errexit 71 | "$program" "${@:3}" "$document" 72 | retVal=$? 73 | set -o errexit 74 | if(("$retVal" != 0)) ; then 75 | echo "Error: Program '$program' returned '$retVal' when compiling '$document'. Now exiting." 76 | exit "$retVal" 77 | fi 78 | 79 | for i in *.aux; do 80 | if [ "$i" != "$document" ] && \ 81 | [ "$i" != "$document.aux" ] ; then 82 | if [ -f "$i" ]; then 83 | if grep -q "\\citation{" "$i.aux"; then 84 | echo "File '$i' contains citations, so we applying 'bibtex' to it." 85 | bibtex "$i" 86 | echo "Finished applying 'bibtex' to '$i.aux'." 87 | else 88 | echo "File '$i' does not contain any citation, so we do not apply 'bibtex'." 89 | fi 90 | fi 91 | fi 92 | done 93 | 94 | 95 | if grep -q "\\citation{" "$document.aux"; then 96 | echo "File '$document.aux' contains citations, so we applying 'bibtex' to it." 97 | bibtex "$document" 98 | echo "Finished applying 'bibtex' to '$document.aux'." 99 | else 100 | echo "File '$document.aux' does not contain any citation, so we do not apply 'bibtex'." 101 | fi 102 | 103 | auxHash="" 104 | for i in *.aux; do 105 | if [ -f "$i" ]; then 106 | auxHashTemp=$(sha256sum "$i") 107 | auxHash="$auxHash$auxHashTemp" 108 | fi 109 | done 110 | 111 | bblHash="" 112 | for i in *.bbl; do 113 | if [ -f "$i" ]; then 114 | bblHashTemp=$(sha256sum "$i") 115 | bblHash="$bblHash$bblHashTemp" 116 | fi 117 | done 118 | 119 | echo "Finished build cycle $cycle." 120 | 121 | if (("$cycle" > 200)) ; then 122 | echo "Something odd is happening: We have performed $cycle cycles. That's too many. Let's quit." 123 | break 124 | fi 125 | done 126 | 127 | echo "The tool chain '$program'+BibTeX has been executed until nothing changed anymore." 128 | 129 | laTeXWarnings=0 130 | laTeXWarning="" 131 | if [ -f "$document.log" ]; then 132 | echo "We now check that the compilation was successful by 'grep'ing the log file $document.log for common errors/warnings." 133 | 134 | if grep -q "LaTeX Warning: There were undefined references." "$document.log"; then 135 | laTeXWarnings=$((laTeXWarnings+1)) 136 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. The document contains undefined references. Please fix them (search file $document.log for patterns 'undefined reference' and 'LaTeX Warning: Reference')." 137 | fi 138 | if grep -q "LaTeX Warning: There were multiply-defined labels." "$document.log"; then 139 | laTeXWarnings=$((laTeXWarnings+1)) 140 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. The document contains multiply defined labels, i.e., labels defined more than once. Please fix them (search file $document.log for pattern 'multiply-defined')." 141 | fi 142 | if grep -q "Missing character: There is no" "$document.log"; then 143 | laTeXWarnings=$((laTeXWarnings+1)) 144 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. The document contains some characters which cannot be printed. Please fix them (check file $document.log for pattern 'Missing character: There is no')." 145 | fi 146 | if grep -q "Empty ‘thebibliography’ environment" "$document.log"; then 147 | laTeXWarnings=$((laTeXWarnings+1)) 148 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. The document contains an empty bibliography environment. Maybe you should not use a bibliography if there are no citations? Please fix them (check file $document.log for pattern 'Empty ‘thebibliography’ environment')." 149 | fi 150 | if grep -q "Float too large for page by" "$document.log"; then 151 | laTeXWarnings=$((laTeXWarnings+1)) 152 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. At least one floating object such as a table or figure is too large. Please fix them (check file $document.log for pattern 'Float too large for page by')." 153 | fi 154 | if grep -q "Some font shapes were not available, defaults substituted" "$document.log"; then 155 | laTeXWarnings=$((laTeXWarnings+1)) 156 | laTeXWarning="${laTeXWarning}"$'\n'"${laTeXWarnings}. Some font shapes were unavailable, you should use different characters or fonts. Please fix them (check file $document.log for pattern 'Some font shapes were not available, defaults substituted')." 157 | fi 158 | fi 159 | 160 | 161 | echo "We now ensure that a proper pdf is built." 162 | 163 | if [ -f "$document.pdf" ]; then 164 | echo "Pdf file '$document.pdf' was produced: we will filter it in order to include all fonts." 165 | "$scriptDir/filterPdf.sh" "$document.pdf" 166 | rm "$document.original.pdf" 167 | else 168 | echo "No pdf file '$document.pdf' was produced." 169 | if [ ! -f "$document.ps" ]; then 170 | echo "No postscript (.ps) file '$document.ps' was produced." 171 | if [ -f "$document.dvi" ]; then 172 | echo "The dvi file '$document.dvi' was produced, converting it to postscript (.ps)." 173 | dvips "$document" 174 | fi 175 | fi 176 | if [ -f "$document.ps" ]; then 177 | echo "A postscript (.ps) file '$document.ps' was found, converting it to pdf." 178 | "$scriptDir/filterPdf.sh" "$document.ps" 179 | fi 180 | fi 181 | 182 | echo "Now cleaning up temporary files." 183 | rm "$document.aux" || true 184 | rm "$document.bbl" || true 185 | rm "$document.blg" || true 186 | rm "$document.dvi" || true 187 | rm "$document.ent" || true 188 | rm "$document.idx" || true 189 | if (("$laTeXWarnings" < 1)) ; then 190 | rm "$document.log" || true 191 | fi 192 | rm "$document.nav" || true 193 | rm "$document.out" || true 194 | rm "$document.out.ps" || true 195 | rm "$document.ps" || true 196 | rm "$document.snm" || true 197 | rm "$document.spl" || true 198 | rm "$document.synctex" || true 199 | rm "$document.synctex.gz" || true 200 | rm "$document.toc" || true 201 | rm "$document.vrb" || true 202 | 203 | if [ -f "$document.pdf" ]; then 204 | echo "We change the access permissions of the produced document '$document.pdf' to 777." 205 | chmod 777 "$document.pdf" 206 | fi 207 | 208 | if (("$laTeXWarnings" < 1)) ; then 209 | echo "[La|LuaLa|Pdf|XeLa]TeX compilation finished successfully." 210 | exit 0 211 | else 212 | echo "[La|LuaLa|Pdf|XeLa]TeX compilation has not finished successfully, there were some fishy LaTeX warnings. We tried to build a PDF anyway, though:$laTeXWarning" 213 | exit 1 214 | fi -------------------------------------------------------------------------------- /scripts/xelatex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash - 2 | 3 | ## Invoke XeLaTeX 4 | 5 | # strict error handling 6 | set -o pipefail # trace ERR through pipes 7 | set -o errtrace # trace ERR through 'time command' and other functions 8 | set -o nounset # set -u : exit the script if you try to use an uninitialized variable 9 | set -o errexit # set -e : exit the script if any statement returns a non-true return value 10 | 11 | echo "Welcome to the XeLaTeX compiler script." 12 | 13 | document="${1%%.*}" 14 | echo "You want to compile document '$document'." 15 | post=${2:-} 16 | 17 | currentDir=$(pwd) 18 | scriptDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 19 | cd "$currentDir" 20 | 21 | echo "The current directory is '$currentDir' and the folder where we look for scripts is '$scriptDir'." 22 | echo "We will now invoke the 'tex.sh' tool chain." 23 | 24 | "$scriptDir/tex.sh" xelatex "${document}" -halt-on-error -interaction=nonstopmode 25 | 26 | if [[ -n "$post" ]] 27 | then 28 | echo "The post-processing command '$post' was specified, now executing '$post \"${document}.pdf\"'." 29 | $post "${document}.pdf" 30 | fi 31 | 32 | echo "Finished executing the XeLaTeX compiler script." -------------------------------------------------------------------------------- /slides.tex: -------------------------------------------------------------------------------- 1 | \documentclass[mathserif]{beamer}% 2 | % 3 | % 4 | \RequirePackage{./styles/slides}% 5 | % 6 | % 7 | \title[% 8 | short title% 9 | ]{% 10 | long title% 11 | }% 12 | % 13 | \author[Thomas Weise]{% 14 | Thomas Weise\\% 15 | \footnotesize{% 16 | \mbox{\href{mailto:tweise@ustc.edu.cn}{tweise@ustc.edu.cn} $\cdot$} % 17 | \mbox{\href{mailto:tweise@gmx.de}{tweise@gmx.de} $\cdot$} % 18 | \mbox{\href{http://www.it-weise.de}{http://www.it-weise.de}}}}% 19 | % 20 | \institute[UBRI]{% 21 | USTC-Birmingham Joint Res. Inst. in Intelligent Computation and Its Applications (UBRI)\\% 22 | University of Science and Technology of China (USTC), Hefei 230027, Anhui, China% 23 | }% 24 | % 25 | \date{\today}% 26 | % 27 | % 28 | \begin{document}% 29 | % 30 | \startPresentation{}% 31 | % 32 | % 33 | \AtBeginSection[]{% 34 | \begin{frame}% 35 | \frametitle{Section Outline}% 36 | \tableofcontents[currentsection]% 37 | \end{frame}% 38 | }% 39 | % 40 | % 41 | \section{Introduction}% 42 | % 43 | \begin{frame}% 44 | \frametitle{\LaTeX}% 45 | \begin{itemize}% 46 | \item This is a theme for creating nice slides with \LaTeX\ and the beamer document class% 47 | \end{itemize}% 48 | \end{frame}% 49 | % 50 | \begin{frame}% 51 | \frametitle{Structure}% 52 | \begin{itemize}% 53 | \item A presentation is structured into% 54 | \begin{enumerate}% 55 | \item a head, where you write information such as the title and your affiliation,% 56 | \item a body, with the actual contents, and% 57 | \item a foot, with the references and the good-bye slide% 58 | \end{enumerate}% 59 | \item The body can and should be divided into sections with the \texttt{{\textbackslash}section{\dots}} command% 60 | \item Each section can contain multiple \texttt{frame}s, where each frame is one slide (which may be composed of several steps, see later)% 61 | \end{itemize}% 62 | \end{frame}% 63 | % 64 | \section{\LaTeX\ Commands}% 65 | % 66 | \begin{frame}% 67 | \frametitle{Itemizations}% 68 | This is an introduction to itemizations.% 69 | \begin{itemize}% 70 | \item We can have item lists with the \texttt{itemize} environment.% 71 | \item Each item will then begin with an \texttt{{\textbackslash}item} command.% 72 | \item Itemizations can also be nested:% 73 | \begin{itemize}% 74 | \item Like this.% 75 | \item Which is nice too. 76 | \end{itemize}% 77 | \end{itemize}% 78 | \end{frame}% 79 | % 80 | \begin{frame}% 81 | \frametitle{Enumerations}% 82 | This is an introduction to enumerations.% 83 | \begin{enumerate}% 84 | \item We can have numbered lists with the \texttt{enumerate} environment.% 85 | \item Each item will then begin with an \texttt{{\textbackslash}item} command.% 86 | \item Enumerations can also be nested:% 87 | \begin{enumerate}% 88 | \item Like this.% 89 | \item Which is nice too. 90 | \end{enumerate}% 91 | \item We can also nest itemizations in them, and vice versa:% 92 | \begin{itemize}% 93 | \item See?% 94 | \item And now another enumeration:% 95 | \begin{enumerate}% 96 | \item See? 97 | \end{enumerate}% 98 | \end{itemize}% 99 | \end{enumerate}% 100 | \end{frame}% 101 | % 102 | \begin{frame}% 103 | \frametitle{Showing Stuff Step-Wise}% 104 | Things can be shown step-wise\uncover<2->{:% 105 | \begin{itemize}% 106 | \item If you want to show a thing on the $n$\textsuperscript{th} \inQuotes{step} of a slide, you can wrap it into a command of the form \texttt{{\textbackslash}uncover<$n$->\{\dots\}}% 107 | \item<3-> It then remains invisible until the $n$\textsuperscript{th} step is reached, but occupies space.% 108 | \item<4-> If you want something to remain invisible and not occupy space, you can use \texttt{{\textbackslash}only<$n$->\{\dots\}}% 109 | \item<5-> Actually, the stuff inside the \texttt{<\dots>} marks a range of steps.\only<6-9>{ Write% 110 | \begin{itemize}% 111 | \item \texttt{<10>} to show something \emph{only} at the 10\textsuperscript{th} step\uncover<7->{,}% 112 | \item<7-> \texttt{<10->} to show something starting at the 10\textsuperscript{th} step and thereafter\uncover<8->{,}% 113 | \item<8-> \texttt{<9-11>} to show something from the 9\textsuperscript{th} to the 11\textsuperscript{th} step\uncover<9->{,}% 114 | \item<9-> \texttt{<4,9-11,14->} to show something from at the 4\textsuperscript{th}, the 9\textsuperscript{th} to the 11\textsuperscript{th}, and from the 14\textsuperscript{th} step onwards, and so on.% 115 | \end{itemize}}% 116 | \item<10-> Many commands, such as \texttt{{\textbackslash}item}, can take an argument of the form \texttt{<...>}, which makes their effect similar to be wrapped into an \texttt{{\textbackslash}uncover<$n$->\{\dots\}}.% 117 | \item<11-> If you use \texttt{{\textbackslash}only} in your slides, you better use \texttt{{\textbackslash}begin\{frame\}[t]} instead of \texttt{{\textbackslash}begin\{frame\}} to begin a frame, or stuff will jump around like on this slide here.% 118 | % 119 | \end{itemize}% 120 | }% 121 | \end{frame}% 122 | % 123 | \begin{frame}% 124 | \frametitle{Colors}% 125 | \begin{itemize}% 126 | \item You can use colors to color something% 127 | \item<2-> You would use the \texttt{{\textbackslash}textcolor\{color\}\{text\}} command for this and, e.g., write \textcolor{red}{\texttt{{\textbackslash}textcolor\{red\}\{hello\}}}% 128 | \item<3-> This command also takes an \texttt{<\dots>} argument, which allows you to do \textcolor<4,6>{green}{\texttt{{\textbackslash}textcolor<4,6>\{green\}\{hello\}}}% 129 | \item<7-> You can also use the command \texttt{{\textbackslash}alert\{\dots\}} to mark something especially important.% 130 | \item<8-> It, too, can take the \texttt{<\dots>} argument.% 131 | \end{itemize}% 132 | \end{frame}% 133 | % 134 | \begin{frame}% 135 | \frametitle{References}% 136 | Commands for references to literature (stored as Bib\TeX\ records in the file \texttt{bibliography/bibliography.bib}):% 137 | \begin{itemize}% 138 | \item\small numerical citations are done with \texttt{{\textbackslash}citep\{reference\}} and look like \inQuotes{blabla\citep{WGOEB}}% 139 | \item\small numerical citations with non-breakable space in front are done with \texttt{{\textbackslash}scitep\{reference\}} and look like \inQuotes{blabla\scitep{WWCTL2016GVLSTIOPSOEAP}}, which is usually the better way% 140 | \item\small citations with author names and numerical id are done as \texttt{{\textbackslash}citet\{reference\}} and look like \inQuotes{blabla \citet{WNSRG2008ATMFMOERANFL}}% 141 | \item\small citations with author names and numerical id at the beginning of a sentence are done as \texttt{{\textbackslash}Citet\{reference\}} and look like \inQuotes{blabla. \Citet{WPG2009SRWVRPWEA}}% 142 | \item\small citations with author names only are done as \texttt{{\textbackslash}citeauthor\{reference\}} and look like \inQuotes{blabla \citeauthor{WCTLTCMY2014BOAAOSFFTTSP}}% 143 | \item\small citations with author names only at the beginning of a sentence are done as \texttt{{\textbackslash}Citeauthor\{reference\}} and look like \inQuotes{blabla. \Citeauthor{WCT2012EOPABT}}% 144 | \end{itemize}% 145 | \end{frame}% 146 | % 147 | \endPresentation% 148 | % 149 | %\appendices% 150 | % 151 | % 152 | \end{document}%% 153 | \endinput% 154 | % -------------------------------------------------------------------------------- /styles/pack_citations.sty: -------------------------------------------------------------------------------- 1 | %%% 2 | %%% Load natbib for references 3 | %%% 4 | \RequirePackage[square,numbers,comma,sort&compress]{natbib}% 5 | % 6 | \bibpunct{[}{]}{,}{n}{, }{,}% 7 | % 8 | \gdef\bibnumfmt#1{#1.}% 9 | % 10 | \setlength{\bibsep}{0mm}% 11 | % 12 | %%% 13 | %%% Bibliography commands 14 | %%% 15 | % 16 | % 17 | \newcount\@bib@numcites% 18 | \@bib@numcites=0% 19 | \let\@bib@oldcite\cite% 20 | \let\@bib@oldcitep\citep% 21 | \let\@bib@oldcitet\citet% 22 | \let\@bib@oldcitete\citete% 23 | \let\@bib@oldCitet\Citet% 24 | \let\@bib@oldCitete\Citete% 25 | % 26 | %% the internal color macros for the citation 27 | %% used to set citation color to brown normally and to gray inside image source references 28 | \edef\@origCitationColor{footerdarkblue}% 29 | \let\@citationColor\@origCitationColor% 30 | % 31 | %% cite a reference by number, e.g., [1] 32 | \gdef\cite#1{\textsuperscript{\textnormal{\scalebox{0.75}{\color{\@citationColor}{\@bib@oldcite{#1}}}}}\global\advance\@bib@numcites by 1}% 33 | %% same as cite 34 | \gdef\citep#1{\textsuperscript{\textnormal{\scalebox{0.75}{\color{\@citationColor}{\@bib@oldcitep{#1}}}}}\global\advance\@bib@numcites by 1}% 35 | %% cite a reference by number, but pre-pend non-breakable space, e.g., ~[1] 36 | \gdef\scitep#1{\textsuperscript{\textnormal{\scalebox{0.75}{~\color{\@citationColor}{\@bib@oldcitep{#1}}}}}\global\advance\@bib@numcites by 1}% 37 | %% cite a reference by author/number, e.g., von Weise~[1] 38 | \gdef\citet#1{\citeauthor{#1}~\citep{#1}\global\advance\@bib@numcites by 1}% 39 | %% cite a reference by author/number, but capitalize first letter, e.g., Von Weise~[1] 40 | \gdef\Citet#1{\Citeauthor{#1}~\citep{#1}\global\advance\@bib@numcites by 1}% 41 | %% cite a couple of references by the first author followed by numbers, e.g., von Weise~[1,2,3] 42 | \gdef\citete#1#2{\citeauthor{#1}~\citep{#2}\global\advance\@bib@numcites by 1}% 43 | %% cite a couple of references by the first author followed by numbers, but capitalize first letter,e.g., von Weise~[1,2,3] 44 | \gdef\Citete#1#2{\Citeauthor{#1}~\citep{#2}\global\advance\@bib@numcites by 1}% -------------------------------------------------------------------------------- /styles/pack_hyperref.sty: -------------------------------------------------------------------------------- 1 | %%% 2 | %%% Load hyperref to make links clickable 3 | %%% 4 | \RequirePackage{hyperref}% 5 | \RequirePackage{bookmark}% -------------------------------------------------------------------------------- /styles/pack_language.sty: -------------------------------------------------------------------------------- 1 | %%% 2 | %%% 3 | %%% Load CJKutf8 to be able to print Chinese characters 4 | %%% Provide command \zh to enable us to write Chinese characters 5 | %%% 6 | % 7 | % 8 | % 9 | \RequirePackage{ifxetex}% 10 | \RequirePackage{ifluatex}% 11 | % 12 | %% Our text should be UTF-8 encoded, as UTF-8 is the standard encoding 13 | %% throughout the internet. 14 | \ifxetex\else\ifluatex\else% 15 | \IfFileExists{inputenc.sty}{% 16 | \typeout{Found inputenc. Loading it with option 'utf8'.}% 17 | \RequirePackage[utf8]{inputenc}% 18 | }{% 19 | \typeout{Warning: inputenc not found.}% 20 | }% 21 | \fi\fi% 22 | % 23 | %% We would ideally use ctex to compile out slides. 24 | %% However, it seems that this does not work well under plain 25 | %% LaTeX and PdfLaTeX. Thus, we first detect whether we are 26 | %% under LuaLaTeX or XeLaTeX, where it works well. If so, we can 27 | %% use it. Otherwise, we will attempt to use CJKutf8 instead. 28 | \newif\ifCanUseCtex% 29 | \CanUseCtexfalse% 30 | \ifxetex% 31 | \CanUseCtextrue% 32 | \else% 33 | \ifluatex% 34 | \CanUseCtextrue% 35 | \fi% 36 | \fi% 37 | \ifCanUseCtex% 38 | \IfFileExists{ctex.sty}{}{\CanUseCtexfalse}% 39 | \fi% 40 | % 41 | %% OK, by now we have detected whether ctex can be used. If so, 42 | %% good. Otherwise we check if CJKutf8 exists. If so, good. 43 | %% Otherwise, compilation may still succeed if no Chinese text 44 | %% is included in the presentation or if the compiler used has 45 | %% some other means to deal with them. 46 | %% 47 | %% Either way, we will define two commands: 48 | %% \zh{xxxx} is used to render Chinese text 49 | %% \zhb{xxxx} renders Chinese text in a box, preventing strange 50 | %% linebreaks 51 | %% 52 | %% In the case of ctex, we do not actually need those comments, 53 | %% so we simply define them as \relax and \mbox directly. Using 54 | %% them does no harm then. 55 | %% 56 | %% Under CJKutf8, we need them and define them properly. 57 | %% 58 | %% If neither ctex nor CJKutf8 exists, we also define them as 59 | %% \relax and \mbox - and hope for the best 60 | %% 61 | % 62 | \ifCanUseCtex% cool, we can use ctex 63 | \typeout{We found that ctex can be used. Cool.}% 64 | \RequirePackage[nocap]{ctex} 65 | \global\let\zh\relax% 66 | \global\let\zhb\mbox% 67 | % 68 | \else% what a pity, ctex is not available 69 | \IfFileExists{CJKutf8.sty}{% 70 | \typeout{Warning: Cannot use ctex, but at least CJKutf8.}% 71 | % OK, we have at least CJKutf8 72 | \let\internalBegin\begin% 73 | \let\internalEnd\end% 74 | \RequirePackage{CJKutf8}% 75 | \protected\gdef\zh##1{\internalBegin{CJK}{UTF8}{gbsn}##1\internalEnd{CJK}}% 76 | \protected\gdef\zhb##1{\mbox{\zh{##1}}}% 77 | }{% 78 | % OK, we neither have ctex nor CJKutf8. So we just hope for the best 79 | \typeout{Warning: Cannot use neither ctex nor CJKutf8. If you have any Chinese text, compilation will probably fail.}% 80 | \global\let\zh\relax% 81 | \global\let\zhb\mbox% 82 | }% 83 | \fi% 84 | -------------------------------------------------------------------------------- /styles/pack_listings.sty: -------------------------------------------------------------------------------- 1 | % 2 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3 | %%% Listings Commands 4 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5 | % 6 | \gdef\listingBasicStyle{\ttfamily\footnotesize}% 7 | \gdef\listingNumberStyle{\tiny\rmfamily}% 8 | \gdef\listingKeywordStyleA{\color{violet}\textbf}% 9 | \gdef\listingKeywordStyleB{\color{teal}\textbf}% 10 | \gdef\listingOperatorStyle#1{\textbf{\color{cyan}{#1}}}% 11 | \gdef\listingCommentFormat{\footnotesize\itshape\color{listingcommentgray}}% 12 | \global\let\listingKeywordStyleC\listingCommentFormat% 13 | \global\let\listingCommentFormatB\listingCommentFormat% 14 | \gdef\listingOperatorStyle#1{{\listingKeywordStyleB{#1}}}% 15 | \gdef\listingStringStyle{\color{red}}% 16 | \xdef\listingIdentifierStyle{}% 17 | % 18 | \RequirePackage[formats]{listings}% 19 | \IfFileExists{lstlang1.sty}{\RequirePackage{lstlang1}}{}% 20 | \IfFileExists{lstlang2.sty}{\RequirePackage{lstlang2}}{}% 21 | \IfFileExists{lstlang3.sty}{\RequirePackage{lstlang3}}{}% 22 | \IfFileExists{textcomp.sty}{\RequirePackage{textcomp}}{\gdef\textsuperscript#1{#1}}% 23 | % 24 | % 25 | % 26 | %%% We treat some unicode characters as literate programming keys, 27 | %%% in order to avoid "inputenc Error: Unicode char \u8" as described 28 | %%% in http://stackoverflow.com/questions/1116266/ 29 | \lstset{literate=% 30 | {Ö}{{\"O}}1% 31 | {Ä}{{\"A}}1% 32 | {Ü}{{\"U}}1% 33 | {ß}{{\ss}}2% 34 | {ü}{{\"u}}1% 35 | {ä}{{\"a}}1% 36 | {ö}{{\"o}}1% 37 | {²}{{\textsuperscript{2}}}1% 38 | {³}{{\textsuperscript{3}}}1% 39 | }% 40 | % 41 | %%% We load Java, XML, and C++ by default 42 | \lstloadlanguages{Java,XML,C++}% 43 | % 44 | %%% Our basic styles and colors 45 | \lstset{% 46 | basicstyle=\listingBasicStyle,% 47 | commentstyle=\listingCommentFormat,% 48 | numberstyle=\listingNumberStyle,% 49 | keywordstyle=[1]\listingKeywordStyleA,% 50 | keywordstyle=[2]\listingKeywordStyleB,% 51 | keywordstyle=[3]\listingKeywordStyleC,% 52 | identifierstyle=\listingIdentifierStyle,% 53 | stringstyle=\listingStringStyle,% 54 | mathescape=true,% 55 | breaklines=true,% 56 | breakatwhitespace=true,% 57 | captionpos=b,% 58 | escapeinside={(*@}{@*)},% 59 | emptylines=2,% 60 | tabsize=2,% 61 | showstringspaces=true,% 62 | showlines=false,% 63 | upquote=true% 64 | }% 65 | % 66 | % 67 | %%% 68 | %%% Put a listing as a block element 69 | %%% #1 relative width 70 | %%% #2 caption 71 | \newlength{\@blabtmplistingsboxwcap}% 72 | \newenvironment<>{listingBlock}[2][0.95]{% 73 | \begin{actionenv}% 74 | \def\insertblocktitle{Listing: #2}% 75 | \@blabtmplistingsboxwcap=#1\paperwidth% 76 | \begin{minipage}{\@blabtmplistingsboxwcap}% 77 | \mode{\setbeamercolor{local structure}{parent=example text}}% 78 | \usebeamertemplate{block example begin}%% 79 | }{%% 80 | \usebeamertemplate{block example end}% 81 | \end{minipage}% 82 | \end{actionenv}% 83 | }% 84 | % 85 | % print some code inline 86 | % #1 the optional args 87 | % #2 the code to be printed inline 88 | \newcommand{\codeil}[2][]{% 89 | \if\relax\detokenize{#1}\relax% 90 | \lstinline[keywordstyle=\listingBasicStyle]$#2$% 91 | \else% 92 | \lstinline[basicstyle=\listingBasicStyle,keywordstyle={[1]\listingKeywordStyleA},keywordstyle={[2]\listingKeywordStyleB},keywordstyle={[3]\listingKeywordStyleC},keywordstyle=\listingKeywordStyleA,#1]$#2$% 93 | \fi% 94 | }% 95 | % -------------------------------------------------------------------------------- /styles/pack_math.sty: -------------------------------------------------------------------------------- 1 | % 2 | %%% 3 | %%% Mathematics Commands 4 | %%% 5 | \RequirePackage{mathtools}% 6 | % 7 | \gdef\clap#1{\hbox to 0pt{\hss#1\hss}}% 8 | \gdef\mathllap{\mathpalette\mathllapinternal}% 9 | \gdef\mathrlap{\mathpalette\mathrlapinternal}% 10 | \gdef\mathclap{\mathpalette\mathclapinternal}% 11 | % 12 | \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}}% 13 | \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}}% 14 | \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}}% 15 | % 16 | % 17 | % 18 | %% Mathematical Notations for Complexity 19 | \protected\gdef\bigO{\ensuremath{\mathcal{O}}}% 20 | \protected\gdef\bigOOf#1{\ensuremath{\bigO\!\left(#1\right)}}% 21 | \protected\gdef\NP{\ensuremath{\mathcal{NP}}}% 22 | \protected\gdef\NPHard{\NP-\mbox{hard}}% 23 | % 24 | %% Mathematical Notations for Optimization 25 | \protected\gdef\objectiveFunction{\ensuremath{f}}% 26 | \protected\gdef\objectiveFunctionb#1{\ensuremath{\objectiveFunction\!\left(#1\right)}}% 27 | % -------------------------------------------------------------------------------- /styles/pack_numbers.sty: -------------------------------------------------------------------------------- 1 | % 2 | % 3 | %%% Numprint: Needed to have nice looking numerals% 4 | %% 5 | \RequirePackage{numprint}% 6 | % 7 | \npfourdigitnosep% 8 | \npaddmissingzero% 9 | \npdecimalsign{.}% 10 | \renewcommand*\npunitcommand[1]{#1}% 11 | \npthousandsep{\hspace*{0.17em}}% 12 | \npproductsign{\cdot}% 13 | % -------------------------------------------------------------------------------- /styles/pack_overlays.sty: -------------------------------------------------------------------------------- 1 | % 2 | %%%%%%% 3 | %%%%%%% Locating and Scaling Things 4 | %%%%%%% 5 | % 6 | %% Provide commands to locate things at specific positions. 7 | \RequirePackage[absolute,overlay]{textpos}% 8 | % 9 | %% Locate something at a specific position: 10 | %% #1 visibility passed to \only (set to {} for always-visible things) 11 | %% #2 the thing to display 12 | %% #3 the x-coordinate (between 0 and 1) 13 | %% #4 the y-coordinate (between 0 and 1) 14 | \gdef\locate#1#2#3#4{% 15 | \setlength{\TPHorizModule}{\paperwidth}% 16 | \setlength{\TPVertModule}{\paperheight}%% 17 | \if\relax\detokenize{#1}\relax% 18 | \expandafter\@firstoftwo% 19 | \else% 20 | \expandafter\@secondoftwo% 21 | \fi% 22 | {\begin{textblock}{1}(#3,#4)#2\end{textblock}}% 23 | {\expandafter\only<#1>{\locate{}{#2}{#3}{#4}}}% 24 | }% 25 | %% 26 | %% Locate something with a specific caption 27 | %% 28 | %% #1 visibility passed to \only (set to {} for always-visible things) 29 | %% #2 the thing to display 30 | %% #3 the caption 31 | %% #4 the x-coordinate (between 0 and 1) 32 | %% #5 the y-coordinate (between 0 and 1) 33 | %% #6 the width to reserve for everything (between 0 and 1, relative to the paper width) 34 | \newlength{\@blabtmplocatewcap}% 35 | \gdef\locateWithCaption#1#2#3#4#5#6{% 36 | \@blabtmplocatewcap=#6\paperwidth% 37 | \locate{#1}{% 38 | \parbox{\@blabtmplocatewcap}{\centering% 39 | #2% 40 | \\% 41 | \parbox{0.9\@blabtmplocatewcap}{\scriptsize{% 42 | #3% 43 | }}% 44 | }}{#4}{#5}% 45 | }% 46 | % 47 | %%% 48 | %%% Scale the contents of an environment (such as a listing) to a given width 49 | %%% #1 the width to scale to, or ! for scaling based on height only 50 | %%% #2 the height to scale to, or ! for scaling based on width only 51 | %%% 52 | \newsavebox{\@tempScaledBox}% 53 | \newenvironment<>{scaledBox}[2]{% 54 | \protected\gdef\@tempScaleBox##1{\resizebox{#1}{#2}{##1}}% 55 | \begin{lrbox}{0\null\global\setbox\@tempScaledBox} 56 | }{% 57 | \end{lrbox}% 58 | \@tempScaleBox{\usebox{\@tempScaledBox}}% 59 | }% 60 | % 61 | %%% 62 | %%% Locate a box at a specific position 63 | %% #1 visibility passed to \only (set to {} for always-visible things) 64 | %% #2 the x-coordinate (between 0 and 1) 65 | %% #3 the y-coordinate (between 0 and 1) 66 | \newsavebox{\@tempLocatedBox}% 67 | \newenvironment{locateBox}[3][]{% 68 | % 69 | \setlength{\TPHorizModule}{\paperwidth}% 70 | \setlength{\TPVertModule}{\paperheight}%% 71 | % 72 | \if\relax\detokenize{#1}\relax% 73 | \expandafter\@firstoftwo% 74 | \else% 75 | \expandafter\@secondoftwo% 76 | \fi% 77 | {\protected\gdef\@tempLocateBoxPrint{\begin{textblock}{1}(#2,#3)\usebox{\@tempLocatedBox}\end{textblock}}}% 78 | {\protected\gdef\@tempLocateBoxPrint{\only<#1>{\begin{textblock}{1}(#2,#3)\usebox{\@tempLocatedBox}\end{textblock}}}}% 79 | % 80 | \begin{lrbox}{0\null\global\setbox\@tempLocatedBox}% 81 | }{% 82 | \end{lrbox}% 83 | \@tempLocateBoxPrint% 84 | }% 85 | % 86 | % 87 | %% Locate a graphic at a specific position: 88 | %% #1 [optional] reference, heigh-scaled to 0.5em 89 | %% #2 visibility passed to \only (set to {} for always-visible things) 90 | %% #3 the [] part of the graphic 91 | %% #4 the path to the graphic 92 | %% #5 the x-coordinate (between 0 and 1) 93 | %% #6 the y-coordinate (between 0 and 1) 94 | \gdef\locateGraphic{% 95 | \@ifnextchar[{\@locateGraphicRef}{\@locateGraphicNoRef}% 96 | } 97 | % 98 | %% low-level implementation \locateGraphic without image source reference 99 | \def\@locateGraphicNoRef#1#2#3#4#5{% 100 | \locate{#1}{\includegraphics[#2]{#3}}{#4}{#5}%% 101 | }% 102 | % 103 | %% low-level implementation \locateGraphic with image source reference 104 | \def\@locateGraphicRef[#1]#2#3#4#5#6{% 105 | \locate{#2}{% 106 | \rlap{\includegraphics[#3]{#4}}% 107 | \vspace{-0.5em}% 108 | \mbox{\tiny{% 109 | \edef\@citationColor{gray}% 110 | \textcolor{\@citationColor}{% 111 | image~source:~#1% 112 | \let\@citationColor\@origCitationColor% 113 | }}}% 114 | }{#5}{#6}%% 115 | }% 116 | % 117 | % 118 | %% Locate a graphic with frame at a specific position 119 | %% #1 visibility passed to \only (set to {} for always-visible things) 120 | %% #2 the [] part of the graphic 121 | %% #3 the path to the graphic 122 | %% #4 the x-coordinate (between 0 and 1) 123 | %% #5 the y-coordinate (between 0 and 1) 124 | \gdef\locateFramedGraphic#1#2#3#4#5{% 125 | \locate{#1}{% 126 | \begingroup% 127 | \setlength{\fboxrule}{3pt}% 128 | \setlength{\fboxsep}{3pt}% 129 | \fcolorbox{white}{blocktitlebgblue}{% 130 | \includegraphics[#2]{#3}}% 131 | \endgroup% 132 | }{#4}{#5}% 133 | }% 134 | % 135 | %% locate something within a framed bock 136 | % #1 the display limits 137 | % #2 the width 138 | % #3 the contents 139 | % #4 the x coordinate 140 | % #5 the y coordinate 141 | % #6 the background color 142 | % #7 the frame color 143 | % 144 | \gdef\locateFramedBox#1#2#3#4#5#6#7{% 145 | \locate{#1}{% 146 | \begingroup% 147 | \setlength{\fboxrule}{3pt}% 148 | \setlength{\fboxsep}{3pt}% 149 | % 150 | \if\relax\detokenize{#6}\relax% 151 | \edef\@bgbox@tmpc@A{white}% 152 | \else% 153 | \edef\@bgbox@tmpc@A{#6}% 154 | \fi% 155 | % 156 | \if\relax\detokenize{#7}\relax% 157 | \edef\@bgbox@tmpc@B{blocktitlebgblue}% 158 | \else% 159 | \edef\@bgbox@tmpc@B{#7}% 160 | \fi% 161 | % 162 | \@blabtmplocatewcap=#2\paperwidth% 163 | % 164 | \fcolorbox{\@bgbox@tmpc@B}{\@bgbox@tmpc@A}{% 165 | \parbox{\@blabtmplocatewcap}{#3}% 166 | }% 167 | \endgroup% 168 | }{#4}{#5}% 169 | }% 170 | % -------------------------------------------------------------------------------- /styles/pack_pgf.sty: -------------------------------------------------------------------------------- 1 | % 2 | %%% 3 | %%% PGF: Needed to draw graphics right in LaTeX 4 | %%% 5 | \RequirePackage{pgf}% -------------------------------------------------------------------------------- /styles/pack_shortcuts.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This LaTeX package is intented to provide a set of common shortcuts, 3 | %% abbreviations, symbols, and functions to be used throughout the 4 | %% documentation and slides in order to provide a uniform naming 5 | %% and syntax convention. 6 | %% 7 | %% Project-related Names 8 | \xdef\optimizationBenchmarkingURL{http://www.github.com/optimizationBenchmarking/optimizationBenchmarking}% 9 | \protected\gdef\optimizationBenchmarking{\texttt{optimizationBenchmarking}}% 10 | % 11 | \protected\gdef\git{\mbox{\texttt{git}}}% 12 | \xdef\gitReferences{CS2014PGEYNTKAG}% 13 | % 14 | \protected\gdef\gitHub{\mbox{\texttt{gitHub}}}% 15 | \xdef\gitHubReferences{CS2014PGEYNTKAG,DOB2015GAYSDWSC,S2013GPG}% 16 | % 17 | \protected\gdef\eclipse{\mbox{\texttt{Eclipse}}}% 18 | \xdef\eclipseReferences{ECLIPSE}% 19 | % 20 | \protected\gdef\maven{\mbox{\texttt{Maven}}}% 21 | \xdef\mavenReferences{J2015MTDG,VB2014IM}% 22 | % 23 | \protected\gdef\junit{\mbox{\texttt{JUnit}}}% 24 | \xdef\junitReferences{B2009JPG,MH2004JIA,RS2005JRPMFPT}% 25 | % 26 | \protected\gdef\tspLib{\mbox{\emph{TSPLib}}}% 27 | \xdef\tspLibReferences{R1991ATSPL,R1995T9,DACO1995TSPLIB}% 28 | % 29 | \protected\gdef\satLib{\mbox{\emph{SATLib}}}% 30 | \xdef\satLibReferences{HS2000SAORFROS}% 31 | % 32 | \protected\gdef\bbob{\mbox{\emph{BBOB}}}% 33 | \xdef\bbobReferences{HAFR2012RPBBOBES,NAFR2010RPBBOB2ES,HAFR2009RPBBOB2ES,FHRA2013RPBBOB2POTNF}% 34 | \protected\gdef\coco{\mbox{\emph{COCO}}}% 35 | % 36 | \protected\gdef\tspSuite{\mbox{\emph{TSP Suite}}}% 37 | \xdef\tspSuiteReferences{WCTLTCMY2014BOAAOSFFTTSP,JWLCA2014CAHBABAWECMLSATHOTT}% 38 | % 39 | % 40 | \protected\gdef\measureFEs{\textit{FEs}}% 41 | \protected\gdef\measureRuntime{\textit{RT}}% 42 | \protected\gdef\measureObjectiveValue{\ensuremath{F}}% 43 | % 44 | \protected\gdef\inQuotes#1{``#1''}% 45 | % 46 | \protected\xdef\eg{e.g.,\ }% 47 | \protected\xdef\ie{i.e.,\ }% 48 | \protected\xdef\etc{etc.}% 49 | % 50 | \protected\gdef\Java{\mbox{\texttt{Java}}}% 51 | \xdef\JavaReferences{S2002JABG,WU2007LJ,S2002A,S2003JPGFP,JAVA2PSEAS,GJSB2005JAVALS,GMG1996JAVAJLE,K2006JAVAB,U2007JAVAI,CK2003JDP}%% 52 | % 53 | \protected\gdef\CLang{\mbox{\texttt{C}}}% 54 | \protected\gdef\CPPLang{\mbox{\texttt{C\textsuperscript{++}}}}% 55 | \xdef\CPPReferences{LLM2005CP,S2002CABG,AB2008CAALA,J1999TCSLATAH}% 56 | % -------------------------------------------------------------------------------- /styles/pack_slides_commands.sty: -------------------------------------------------------------------------------- 1 | %%% 2 | %%% Load etoolbox for making slides have entries in bookmarks 3 | %%% 4 | \RequirePackage{etoolbox}% 5 | % 6 | % 7 | %%% 8 | %%% The definition for the title page. 9 | %%% 10 | \defbeamertemplate*{title page}{UBRI}[1][]{% 11 | \vbox{}% 12 | \strut\vfill\strut% 13 | \begin{centering}% 14 | \vfill\vfill\vfill\vfill% 15 | {\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle}% 16 | \vfill% 17 | \begingroup{\ifx\insertsubtitle\empty% 18 | \else% 19 | \usebeamercolor[fg]{title}\usebeamerfont{title}\large{\insertsubtitle} 20 | \vfill% 21 | \fi}\endgroup% 22 | \begin{beamercolorbox}[center,#1]{author}% 23 | \usebeamercolor[bg]{frametitle}\usebeamerfont{author}\insertauthor% 24 | \end{beamercolorbox}\vfill% 25 | \begin{beamercolorbox}[center,#1]{institute}% 26 | \usebeamercolor[fg]{title}\usebeamerfont{institute}\insertinstitute% 27 | \end{beamercolorbox}\vfill% 28 | \begin{beamercolorbox}[center,#1]{date}% 29 | \usebeamercolor[fg]{title}\usebeamerfont{date}\insertdate% 30 | \end{beamercolorbox}% 31 | \end{centering} 32 | \vfill\vfill\vfill\vfill\vfill% 33 | }% 34 | % 35 | % 36 | % 37 | % 38 | % 39 | %%% 40 | %%% Call \startPresentation at the beginning of the presentation to make 41 | %%% the title and the outline slides as well as to set the proper background 42 | %%% graphics 43 | %%% 44 | % 45 | \gdef\startPresentation#1{% 46 | % 47 | \setbeamertemplate{footline}{}% 48 | % 49 | \usebackgroundtemplate{% 50 | \hspace{-0.005\paperwidth}% 51 | \vspace{-0.005\paperheight}% 52 | \includegraphics[width=1.01\paperwidth,height=1.01\paperheight]{% 53 | ./graphics/ustc/ustc_slides_cover/ustc_slides_cover}}% 54 | % 55 | \begin{frame}% 56 | \titlepage% 57 | \end{frame}% 58 | % 59 | % 60 | \defbeamertemplate*{footline}{UBRI}{% 61 | {\color{footerdarkblue}% 62 | \strut\hfill% 63 | {\insertshorttitle}, {\insertshortdate{}}% 64 | \hfill\hfill% 65 | {\insertshortauthor}% 66 | \hfill\hfill% 67 | {{\insertframenumber{}}/{\inserttotalframenumber}}% 68 | \hfill\strut 69 | \vskip2pt% 70 | }}% 71 | % 72 | % 73 | \pgfdeclareimage[width=1.01\paperwidth,height=1.01\paperheight]{ustc_slides_background}{% 74 | ./graphics/ustc/ustc_slides_background/ustc_slides_background}% 75 | \usebackgroundtemplate{% 76 | \hspace{-0.005\paperwidth}% 77 | \vspace{-0.005\paperheight}% 78 | \pgfuseimage{ustc_slides_background}}% 79 | % 80 | \begin{frame}% 81 | \frametitle{Outline}% 82 | \tableofcontents[subsectionstyle=hide/hide/hide]% 83 | #1% 84 | \end{frame}% 85 | % 86 | }% 87 | % 88 | %%% 89 | %%% Call \endPresentation to mark the official end of the presentation. 90 | %%% It may or may not add a slide with references. 91 | %%% After this, you may still add appendix slides. 92 | %%% 93 | \gdef\endPresentation{% 94 | % 95 | \global\let\@framePatch\@framePatch@doNothing% 96 | % 97 | \usebackgroundtemplate{% 98 | \hspace{-0.005\paperwidth}% 99 | \vspace{-0.005\paperheight}% 100 | \includegraphics[width=1.01\paperwidth,height=1.01\paperheight]{% 101 | ./graphics/ustc/ustc_slides_final/ustc_slides_final}}% 102 | % 103 | \begin{frame}% 104 | \pdfbookmark[1]{Presentation End}{presentationEnd}% 105 | \strut\par\bigskip\par\strut%% 106 | \parbox{0.4\paperwidth}{% 107 | \scalebox{2}{\textbf{\LARGE{\zh{谢谢!}}}}\bigskip\par% 108 | \scalebox{1.2}{\textbf{\LARGE{Thank you.}}}\bigskip\par% 109 | \insertauthor\bigskip\par% 110 | \insertinstitute% 111 | }% 112 | \end{frame}% 113 | % 114 | \ifnum\@bib@numcites>0\relax% 115 | \expandafter\@firstoftwo% 116 | \else% 117 | \expandafter\@secondoftwo% 118 | \fi{% 119 | % 120 | \usebackgroundtemplate{% 121 | \hspace{-0.005\paperwidth}% 122 | \vspace{-0.005\paperheight}% 123 | \pgfuseimage{ustc_slides_background}}% 124 | % 125 | % 126 | \begin{frame}%% 127 | \frametitle{\bibname}% 128 | \pdfbookmark[1]{\bibname}{bibliographyZ}% 129 | \begin{center}% 130 | \strut\vfill\par% 131 | \includegraphics[width=0.5\paperwidth]{./graphics/ustc/ustc_slides_bibliography/ustc_slides_bibliography}% 132 | \par\vfill\strut% 133 | \end{center}% 134 | \end{frame}% 135 | % 136 | \section*{\bibname}% 137 | \def\newblock{\beamer@newblock}% 138 | % 139 | \begin{frame}[allowframebreaks,t]{\bibname}% 140 | \begin{tiny}% 141 | \bibliographystyle{unsrtnat}% 142 | \bibliography{./bibliography/bibliography}% 143 | \end{tiny}% 144 | \end{frame}% 145 | }{}% 146 | % 147 | \global\let\@framePatch\@framePatch@addBookmarks% 148 | % 149 | }% 150 | % 151 | % define appendix command; print #1 on appendix slide 152 | \gdef\appendices#1{% 153 | \pdfbookmark[1]{Appendices}{appendices}% 154 | \section*{Appendices}% 155 | \begin{frame}% 156 | \frametitle{Appendix Outline}% 157 | \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/show/hide]% 158 | #1% 159 | \end{frame}% 160 | % 161 | \global\newcount\@appendix@hrefids% 162 | \global\@appendix@hrefids 0\relax% 163 | % 164 | \gdef\appendix##1{% 165 | \global\advance \@appendix@hrefids 1\relax% 166 | \expandafter\pdfbookmark\expandafter[\expandafter2\expandafter]\expandafter{##1}{appendix\the\@appendix@hrefids}% 167 | \subsection{##1}% 168 | }% 169 | }% 170 | % 171 | % 172 | % 173 | %%% 174 | %%% Make each slide have an entry in the pdf bookmarks 175 | %%% 176 | \def\@framePatch@addBookmarks#1{\bookmark[page=\the\c@page,level=3]{#1}}% 177 | \def\@framePatch@doNothing#1{}% 178 | \let\@framePatch\@framePatch@addBookmarks% 179 | \apptocmd{\beamer@@frametitle}{\only<1>{\@framePatch{#1}}}% 180 | {\message{** patching of \string\beamer@@frametitle succeeded **}}% 181 | {\message{** patching of \string\beamer@@frametitle failed **}}% 182 | % 183 | % 184 | \gdef\printSectionOutlines{% 185 | \AtBeginSection[]{% 186 | \begin{frame}% 187 | \frametitle{Section Outline}% 188 | \tableofcontents[currentsection,subsectionstyle=show/show/hide]% 189 | \end{frame}% 190 | }% 191 | }% 192 | % -------------------------------------------------------------------------------- /styles/pack_slides_theme.sty: -------------------------------------------------------------------------------- 1 | %%% 2 | %%% Basic color definitions 3 | %%% 4 | \usecolortheme{orchid}% 5 | \useinnertheme{rectangles}% 6 | \useoutertheme{infolines}% 7 | % 8 | \definecolor{footerdarkblue}{rgb}{0.04,0.13333333333333333333333333333333,0.6039215686274509803921568627451}% 9 | \definecolor{blockbgblue}{rgb}{0.77647058823529411764705882352941,0.85098039215686274509803921568627,0.94509803921568627450980392156863}% 10 | \definecolor{blocktitlebgblue}{rgb}{0.5,0.6,0.9}% 11 | \definecolor{alertviolet}{rgb}{0.43921568627450980392156862745098,0.18823529411764705882352941176471,0.62745098039215686274509803921569}% 12 | \definecolor{alertvioletB}{rgb}{0.8,0.75294117647058823529411764705882,0.85098039215686274509803921568627}% 13 | \definecolor{alertvioletC}{rgb}{0.619607843137254901960784313725,0.470588235294117647058823529411,0.7392156862745098039215686274505}% 14 | \definecolor{exampleBody}{rgb}{0.91764705882352941176470588235294,0.94509803921568627450980392156863,0.86666666666666666666666666666667}% 15 | \definecolor{exampleHead}{rgb}{0.57254901960784313725490196078431,0.81568627450980392156862745098039,0.31372549019607843137254901960784}% 16 | % 17 | \setbeamercolor*{palette primary}{use=structure,fg=white,bg=structure.fg}% 18 | \setbeamercolor*{palette secondary}{use=structure,fg=white,bg=structure.fg!75!black}% 19 | \setbeamercolor*{palette tertiary}{use=structure,fg=white,bg=structure.fg!50!black}% 20 | \setbeamercolor*{palette quaternary}{fg=white,bg=black}% 21 | % 22 | \setbeamercolor*{title}{parent=palette primary,fg=white}% 23 | % 24 | \setbeamercolor*{block title}{use=structure,fg=black,bg=blocktitlebgblue}% 25 | \setbeamercolor*{block title alerted}{parent=block title}% 26 | \setbeamercolor*{block title example}{parent=block title,bg=exampleHead}% 27 | \setbeamercolor*{block body}{parent=palette primary,fg=black,bg=blockbgblue}% 28 | \setbeamercolor*{block body alerted}{parent=block body}% 29 | \setbeamercolor*{block body example}{parent=block body,bg=exampleBody}% 30 | \setbeamercolor*{alerted text}{parent=palette primary, fg=alertviolet}% 31 | \definecolor{listingcommentgray}{gray}{0.6}% 32 | % 33 | \setbeamercolor*{block title alerted}{fg=black,bg=alertvioletC}% 34 | \setbeamercolor*{block body alerted}{fg=black,bg=alertvioletB}% 35 | % 36 | \setbeamercolor*{frametitle}{fg=yellow!260!white}% 37 | \setbeamercolor*{framesubtitle}{fg=black}% 38 | % 39 | %%% 40 | %%% Templates for different slide elements 41 | %%% 42 | \setbeamertemplate{bibliography item}[book]% 43 | % 44 | \setbeamertemplate{items}[ball]% 45 | \setbeamertemplate{item}[ball]% 46 | \setbeamercolor{subitem projected}{bg=blocktitlebgblue}% 47 | \setbeamercolor{item projected}{bg=blocktitlebgblue}% 48 | \setbeamercolor{items projected}{bg=blocktitlebgblue}% 49 | % 50 | \setbeamertemplate{sections/subsections in toc}[ball]% 51 | \setbeamerfont{section number projected}{family=\sffamily,series=\bfseries,size=\normalsize}% 52 | % 53 | \setbeamertemplate{title page}[default][colsep=-4bp,rounded=false,shadow=true] 54 | \setbeamertemplate{part page}[default][colsep=-4bp,rounded=false,shadow=true] 55 | % 56 | \defbeamertemplate*{headline}{BLANK}{}% 57 | % 58 | \setbeamersize{text margin left=1em,text margin right=1em}% 59 | % 60 | %%% 61 | %%% Some internal commands to get headlines nicely vertically aligned. 62 | %%% 63 | \newlength{\@blabtmpFTL}% 64 | \newsavebox{\@blabtmpFTLbox}% 65 | \defbeamertemplate*{frametitle}{UBRI}{% 66 | \vspace*{3pt}% 67 | \savebox{\@blabtmpFTLbox}{\mbox{{\usebeamerfont{frametitle}{\insertframetitle}}}}% 68 | \usebeamerfont{frametitle}{% 69 | \setlength{\@blabtmpFTL}{\ht\@blabtmpFTLbox}% 70 | \addtolength{\@blabtmpFTL}{\dp\@blabtmpFTLbox}% 71 | \addtolength{\@blabtmpFTL}{-20pt}% 72 | \setlength{\@blabtmpFTL}{0.5\@blabtmpFTL}% 73 | \vspace*{-\@blabtmpFTL}% 74 | \usebox\@blabtmpFTLbox% 75 | }% 76 | }% 77 | % 78 | %% 79 | %% Font definitions for titles and that alike. 80 | %% 81 | % 82 | \setbeamerfont{title}{parent=titlelike,size*={16}{0},series=\bfseries}% 83 | \setbeamerfont{frametitle}{parent=titlelike,size*={12}{0},series=\bfseries}% 84 | % 85 | %%% 86 | %%% Auxilliary definitions. 87 | %%% 88 | \defbeamertemplate*{navigation symbols}{UBRI}{}% 89 | % 90 | \setbeamerfont{block title example}{parent={block title},size=\footnotesize}% 91 | \setbeamerfont{block body example}{parent={block body},size=\footnotesize}% 92 | \setbeamerfont{example text}{parent={normal text},size=\footnotesize}% 93 | % 94 | \setbeamertemplate{blocks}[rounded][shadow=true]% -------------------------------------------------------------------------------- /styles/pack_units.sty: -------------------------------------------------------------------------------- 1 | % 2 | \ifluatex% 3 | % 4 | %%% If we use cetex in package pack_language and compile using luatex, 5 | %%% this leads to a conflict with SIunits, as this already defines 6 | %%% 'hour' and 'minute'. 7 | %%% We thus here store the definition of these two commands, then 8 | %%% delete them. After loading SIunits, we restore them. 9 | \let\minute\undefined% 10 | \let\hour\undefined% 11 | % 12 | \RequirePackage[thinspace,thinqspace,squaren,textstyle,binary]{SIunits}% 13 | % 14 | \else% 15 | \RequirePackage[thinspace,thinqspace,squaren,textstyle,binary]{SIunits}% 16 | \fi% 17 | % -------------------------------------------------------------------------------- /styles/slides.sty: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | %%% 3 | %%% This LaTeX package is intented to provide a uniform and good appearance 4 | %%% for slides which present features of the optimizationBenchmarking.org 5 | %%% experimental framework. 6 | %%% 7 | %%% It requires that a command \sharedPath is provided which points to the 8 | %%% path of the "shared" folder in the documentation file hierarchy. 9 | %%% 10 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 11 | %%% 12 | %%% 13 | \RequirePackage{./styles/pack_language}% 14 | \RequirePackage{./styles/pack_hyperref}% 15 | \RequirePackage{./styles/pack_citations}% 16 | \RequirePackage{./styles/pack_slides_theme}% 17 | \RequirePackage{./styles/pack_slides_commands}% 18 | \RequirePackage{./styles/pack_shortcuts}% 19 | \RequirePackage{./styles/pack_overlays}% 20 | \RequirePackage{./styles/pack_listings}% 21 | \RequirePackage{./styles/pack_math}% 22 | \RequirePackage{./styles/pack_pgf}% 23 | \RequirePackage{./styles/pack_numbers}% 24 | \RequirePackage{./styles/pack_units}% 25 | % -------------------------------------------------------------------------------- /wercker.yml: -------------------------------------------------------------------------------- 1 | ## 2 | ## Build with Wercker 3 | ## 4 | ## https://app.wercker.com/#applications/5742d62fb6677f7b7d012c60 5 | # 6 | box: thomasweise/texlive 7 | # 8 | build: 9 | steps: 10 | - script: 11 | name: LaTeX Build (default script from container) 12 | code: latex.sh slides 13 | - script: 14 | name: PdfLaTeX Build (default script from container) 15 | code: pdflatex.sh slides 16 | - script: 17 | name: XeLaTeX Build (default script from container) 18 | code: xelatex.sh slides 19 | - script: 20 | name: LuaLaTeX Build (default script from container) 21 | code: lualatex.sh slides 22 | - script: 23 | name: MinTeX Build (default script from container) 24 | code: mintex.sh slides latex pdflatex lualatex xelatex 25 | - script: 26 | name: LaTeX Build (script provided in project) 27 | code: ./scripts/latex.sh slides 28 | - script: 29 | name: PdfLaTeX Build (script provided in project) 30 | code: ./scripts/pdflatex.sh slides 31 | - script: 32 | name: XeLaTeX Build (script provided in project) 33 | code: ./scripts/xelatex.sh slides 34 | - script: 35 | name: LuaLaTeX Build (script provided in project) 36 | code: ./scripts/lualatex.sh slides 37 | - script: 38 | name: MinTex Build (script provided in project) 39 | code: ./scripts/mintex.sh slides latex pdflatex lualatex xelatex 40 | --------------------------------------------------------------------------------