├── .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 | [
](https://circleci.com/gh/thomasWeise/ustcSlides)
5 | [
](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 |
--------------------------------------------------------------------------------