Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

181 рядки
4.2KB

  1. \RequirePackage{ expl3, l3keys2e, xparse, ragged2e }
  2. \ProvidesExplClass
  3. {utwente-beamer}
  4. {2017/08/23}
  5. {1.1}
  6. {University of Twente document class for presentations}
  7. % Package options
  8. \keys_define:nn { utwente_beamer } {
  9. % Token lists
  10. background .tl_set:N = \utwente_beamer_background,
  11. banner .tl_set:N = \utwente_beamer_banner,
  12. language .tl_set:N = \utwente_beamer_language,
  13. % Switches
  14. outline .bool_set:N = \utwente_beamer_outline,
  15. nooutline .bool_set_inverse:N = \utwente_beamer_outline,
  16. % Passthrough
  17. type1 .code:n = \PassOptionsToPackage{type1}{utwentefont},
  18. otf .code:n = \PassOptionsToPackage{otf}{utwentefont},
  19. math .code:n = \PassOptionsToPackage{math}{utwentefont},
  20. freefont .code:n = \PassOptionsToPackage{freefont}{utwentefont},
  21. % Meta
  22. english .meta:n = { language = en },
  23. dutch .meta:n = { language = nl },
  24. t1 .meta:n = { type1 },
  25. opentype .meta:n = { otf },
  26. % Shorthand for widescreen slides
  27. wide .meta:n = { aspectratio = 169 },
  28. % Options for beamer
  29. unknown .code:n =
  30. \PassOptionsToClass{ \l_keys_key_tl = #1 }{ beamer },
  31. }
  32. % Default options
  33. \keys_set:nn { utwente_beamer } {
  34. language = nl,
  35. background = 1,
  36. banner = 1,
  37. outline
  38. }
  39. \ProcessKeysOptions{ utwente_beamer }
  40. % Load more colours
  41. \PassOptionsToClass{ xcolor={usenames,dvipsnames,table,svgnames} }{ beamer }
  42. % Load the beamer class
  43. \LoadClass{beamer}
  44. % Load UTwente fonts
  45. \RequirePackage{utwentefont}
  46. % Variables
  47. \cs_set:Npn \setlanguage #1 { \tl_set:Nn \utwente_beamer_language {#1} }
  48. \cs_new:Npn \setbackground #1 { \tl_set:Nn \utwente_beamer_background {#1} }
  49. \cs_new:Npn \setbanner #1 {
  50. \tl_set:Nn \utwente_beamer_banner {#1}
  51. \utwente_beamer_banner_set
  52. }
  53. % Margins
  54. \setbeamersize{ text~margin~left = 2mm, text~margin~right = 39mm }
  55. % Styling
  56. \setbeamercolor { normal~text } { fg=black }
  57. \setbeamercolor { structure } { fg=black }
  58. % Show a table of contents at the start of a section
  59. \bool_if:NT \utwente_beamer_outline
  60. { \AtBeginSection[] { \contentsslide } }
  61. % Frame title
  62. \setbeamertemplate{frametitle}{
  63. \vspace{1ex}
  64. \vbox:n { \universtitle \MakeUppercase \insertframetitle }
  65. \vspace{.5ex}
  66. \hrule height 1pt \relax
  67. }
  68. % Footer
  69. \setbeamertemplate{footline} {
  70. % Use title font
  71. \universtitle
  72. % UTwente logo
  73. \hspace{3mm}
  74. \includegraphics
  75. [ height=1.5mm, trim=7mm~7mm~7mm~7mm ]
  76. { utwente-\utwente_beamer_language-black }
  77. \hspace{10mm}
  78. %\includegraphics
  79. % [ trim=0mm~8mm~28mm~0mm, clip, height=3.2mm]
  80. % { img_RoboticsAndMechatronics_logo_CMYK-eps-converted-to.pdf }
  81. % Buffer space
  82. %\hspace{1em}
  83. % Place short title in the centre
  84. %\hbox_to_wd:nn{.5\paperwidth}{
  85. % \hfill
  86. % \MakeUppercase{\insertshorttitle} % This doesnt work
  87. % \hfill
  88. %}
  89. % Flush the rest to the right
  90. \hfill
  91. % Date / slide number
  92. %\insertdate
  93. %\quad
  94. \insertframenumber{} / \inserttotalframenumber
  95. % Right margin
  96. \hspace{5mm}
  97. % Text vertical offset
  98. \vspace{2mm}
  99. }
  100. % Set the banner
  101. \tl_set:Nn \utwente_beamer_banner_set {
  102. \setbeamertemplate {background} {
  103. \includegraphics
  104. [ width=14mm,height=\paperheight ]
  105. { utwente-beamer-banner-\utwente_beamer_banner }
  106. }
  107. }
  108. % Clear the banner
  109. \tl_set:Nn \utwente_beamer_banner_clear {
  110. \setbeamertemplate { background } {}
  111. }
  112. % Immediately set it
  113. \utwente_beamer_banner_set
  114. % Aliasses for users
  115. \tl_set_eq:NN \clearbanner \utwente_beamer_banner_clear
  116. % Title slide
  117. \tl_set:Nn \maketitleslide {
  118. % Clear the banner
  119. \utwente_beamer_banner_clear
  120. % Set the background
  121. \usebackgroundtemplate {
  122. \includegraphics
  123. [ width=\paperwidth ]
  124. { utwente-beamer-back-\utwente_beamer_language-\utwente_beamer_background }
  125. }
  126. % Slide contents
  127. \begin{frame}<beamer>[plain]
  128. \universtitle
  129. \color{white}
  130. \hspace{20mm}
  131. \parbox { .6\paperwidth } {
  132. { \Large \MakeUppercase \inserttitle } \\
  133. { \insertsubtitle }
  134. }
  135. \end{frame}
  136. % Clear the background
  137. \usebackgroundtemplate{}
  138. % Reset the banner
  139. \utwente_beamer_banner_set
  140. }
  141. % Slide with the table of contents
  142. \tl_set:Nn \contentsslide {
  143. \begin{frame} <beamer> {Contents}
  144. \tableofcontents[currentsection,currentsubsection]
  145. \end{frame}
  146. }