Compare commits

..

No commits in common. "410742999a1116e0c822758e612b74fafe9c7161" and "5d3eb2ea29306fe852a2bcf87d99b60564b7bec8" have entirely different histories.

13 changed files with 175 additions and 317 deletions

View File

@ -1,46 +0,0 @@
// ====================================================
//
// AUDITION OF WORK
//
// Author: Sven Vogel
// License: MIT
// Edited: 29.03.2024
//
// This file binds and styles pages about:
// - title
// - declaration of indipendence
// - confidential clause
// - gender note
// - working packages
// - abstract
// ====================================================
#import "../prelude.typ" as prelude
#set heading(numbering: none)
#set page(numbering: "I.", footer: "")
#include "../pages/title.typ"
#include "../pages/declaration-of-indipendence.typ"
#include "../pages/confidential-clause.typ"
#set page(
binding: left,
header-ascent: 2em,
header: locate(loc => {
table(columns: (1fr, auto),
align: (left, right),
stroke: none,
inset: (top: 0pt, bottom: 0.5em, left: 0pt, right: 0pt),
text(size: prelude.to_pt(prelude.format.font-size), prelude.info.titel),
text(size: prelude.to_pt(prelude.format.font-size), counter(page).display("I.")),
table.hline()
)
}),
footer: ""
)
#include "../pages/gender-note.typ"
#include "../pages/working-packages.typ"
#include "../pages/abstract.typ"

View File

@ -1,39 +0,0 @@
// ====================================================
//
// BIBLIOGRAPHY
//
// Author: Sven Vogel
// License: MIT
// Edited: 29.03.2024
//
// This file binds and styles bibliography of this work
// ====================================================
#import "../prelude.typ" as prelude
#set heading(numbering: none)
// function for filtering out all heading which are not of level 1
#let filter_heading(heading) = {
heading.level == 1
}
#set page(
header: locate(loc => {
align(left, context [
#let current_heading = query(selector(heading).after(here())).filter(filter_heading).first()
#current_heading.body
])
v(-2em)
align(right, counter(page).display("1"))
v(-1em)
line(length: 100%)
}),
)
// load bibliography and add it to the document
#bibliography(
style: "ieee",
"../../conf/bibliography.bib"
)

View File

@ -1,116 +0,0 @@
// ====================================================
//
// OUTLINE
//
// Author: Sven Vogel
// License: MIT
// Edited: 29.03.2024
//
// This file binds and styles the outline of this document
// ====================================================
#import "../prelude.typ" as prelude
#set page(
binding: left,
header-ascent: 2em,
header: locate(loc => {
table(columns: (1fr, auto),
align: (left, right),
stroke: none,
inset: (top: 0pt, bottom: 0.5em, left: 0pt, right: 0pt),
text(size: prelude.to_pt(prelude.format.font-size), prelude.info.titel),
text(size: prelude.to_pt(prelude.format.font-size), counter(page).display("I.")),
table.hline()
)
}),
footer: ""
)
#let heading_outline_title = if prelude.format.language == "de" [
Inhaltsverzeichnis
] else if prelude.format.language == "en" [
Table of contents
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(title: heading_outline_title, indent: auto)
#pagebreak()
#let image_outline_title = if prelude.format.language == "de" [
Abbildungsverzeichnis
] else if prelude.format.language == "en" [
List of figures
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: image_outline_title,
target: figure.where(kind: image),
)
#pagebreak()
#let table_outline_title = if prelude.format.language == "de" [
Tabellensverzeichnis
] else if prelude.format.language == "en" [
List of tables
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: table_outline_title,
target: figure.where(kind: table),
)
#pagebreak()
#let raw_outline_title = if prelude.format.language == "de" [
Quelltextverzeichnis
] else if prelude.format.language == "en" [
Table of source code
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: raw_outline_title,
target: figure.where(kind: raw),
)
#pagebreak()
// for creating glossary
#import "@preview/glossarium:0.2.6": make-glossary, print-glossary, gls, glspl
#show: make-glossary
#if prelude.format.language == "de" [
= Glossar
] else if prelude.format.language == "en" [
= Glossary
] else [
#panic("no translation for language: ", prelude.format.language)
]
// read all entries from config file
#let glossary = yaml("../../conf/glossary.yaml")
// destination array
#let glossary_entries = ()
// parse TOML entries into correct format
#if glossary.glossary != none {
for entry in glossary.glossary {
let short = entry.at("short", default: none)
let long = entry.at("long", default: none)
let desc = entry.at("desc", default: none)
if short == none {
panic("Key of glossary term must be specified")
}
glossary_entries.push((key: short, short: short, long: long, desc: desc))
}
}
#print-glossary(glossary_entries)

View File

@ -1,31 +0,0 @@
// ====================================================
//
// PREFACE
//
// Author: Sven Vogel
// License: MIT
// Edited: 29.03.2024
//
// This file binds and styles the preface of this document
// ====================================================
#import "../prelude.typ" as prelude
#set page(
binding: left,
header-ascent: 2em,
header: locate(loc => {
table(columns: (1fr, auto),
align: (left, right),
stroke: none,
inset: (top: 0pt, bottom: 0.5em, left: 0pt, right: 0pt),
text(size: prelude.to_pt(prelude.format.font-size), prelude.info.titel),
text(size: prelude.to_pt(prelude.format.font-size), counter(page).display("I.")),
table.hline()
)
}),
footer: ""
)
#include "../pages/preface.typ"

View File

@ -1,29 +1,13 @@
#import "prelude.typ" as prelude #import "prelude.typ" as prelude
// ------------------------------------------
// Set page geometry and PDF meta data
// ------------------------------------------
// set page geometry: // set page geometry:
// paper format of A4 // paper format of A4
// top margin is 2cm (blank space) + 2em (header) + 1em (spacing)
#set page( #set page(
margin: (left: 3cm, right: 2cm, top: 2cm + 3em, bottom: 2cm), margin: (left: 3cm, right: 2cm, top: 2cm + 2em, bottom: 2cm),
paper: "a4", paper: "a4",
) )
// set PDF meta information
#set document(
author: prelude.info.autor,
date: datetime.today(),
keywords: prelude.info.stichwörter
)
// ------------------------------------------
// Configure fonts and headings
// ------------------------------------------
// set global text parameter // set global text parameter
#set text( #set text(
font: prelude.format.font-familty, font: prelude.format.font-familty,
@ -54,7 +38,8 @@
alternates: prelude.format.ligratures, alternates: prelude.format.ligratures,
discretionary-ligatures: prelude.format.ligratures, discretionary-ligatures: prelude.format.ligratures,
lang: prelude.format.language, lang: prelude.format.language,
weight: "regular" weight: "regular",
baseline: 1em
) )
#show heading.where(level: 2): set text( #show heading.where(level: 2): set text(
@ -79,10 +64,6 @@
weight: "regular" weight: "regular"
) )
// ------------------------------------------
// Setup paragraphs
// ------------------------------------------
// use block element as paragraph // use block element as paragraph
// set block settings for every paragraph // set block settings for every paragraph
#show par: set block( #show par: set block(
@ -96,48 +77,191 @@
first-line-indent: prelude.to_cm(prelude.format.first-line-indent) first-line-indent: prelude.to_cm(prelude.format.first-line-indent)
) )
// ------------------------------------------ // set PDF meta information
// Start of content #set document(
// ------------------------------------------ author: prelude.info.autor,
date: datetime.today(),
keywords: prelude.info.stichwörter
)
#include "content/audition.typ" #set heading(numbering: none)
#include "content/preface.typ" #set page(numbering: "I.", footer: "")
#include "content/outline.typ"
#include "pages/title.typ"
#include "pages/declaration-of-indipendence.typ"
#include "pages/confidential-clause.typ"
#set page(
binding: left,
header-ascent: 1em,
header: locate(loc => {
text(size: 12pt)[
#prelude.info.titel
#v(-2em)
#align(right, counter(page).display("I."))
#v(-1em)
#line(length: 100%)
]
}),
footer: ""
)
#include "pages/gender-note.typ"
#include "pages/working-packages.typ"
#let heading_outline_title = if prelude.format.language == "de" [
Inhaltsverzeichnis
] else if prelude.format.language == "en" [
Table of contents
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(title: heading_outline_title, indent: auto)
#pagebreak()
#let image_outline_title = if prelude.format.language == "de" [
Abbildungsverzeichnis
] else if prelude.format.language == "en" [
List of figures
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: "Abbildungsverzeichnis",
target: figure.where(kind: image),
)
#pagebreak()
#let table_outline_title = if prelude.format.language == "de" [
Tabellensverzeichnis
] else if prelude.format.language == "en" [
List of tables
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: table_outline_title,
target: figure.where(kind: table),
)
#pagebreak()
#let raw_outline_title = if prelude.format.language == "de" [
Quelltextverzeichnis
] else if prelude.format.language == "en" [
Table of source code
] else [
#panic("no translation for language: ", prelude.format.language)
]
#outline(
title: raw_outline_title,
target: figure.where(kind: raw),
)
#pagebreak()
// for creating glossary
#import "@preview/glossarium:0.2.6": make-glossary, print-glossary, gls, glspl
#show: make-glossary
#if prelude.format.language == "de" [
= Glossar
] else if prelude.format.language == "en" [
= Glossary
] else [
#panic("no translation for language: ", prelude.format.language)
]
// read all entries from config file
#let glossary = yaml("../conf/glossary.yaml")
// destination array
#let glossary_entries = ()
// parse TOML entries into correct format
#if glossary.glossary != none {
for entry in glossary.glossary {
let short = entry.at("short", default: none)
let long = entry.at("long", default: none)
let desc = entry.at("desc", default: none)
if short == none {
panic("Key of glossary term must be specified")
}
glossary_entries.push((key: short, short: short, long: long, desc: desc))
}
}
#print-glossary(glossary_entries)
#pagebreak()
// reset page counter // reset page counter
#counter(page).update(1) #counter(page).update(0)
= Abteilung
#set heading(numbering: "1.") #set heading(numbering: "1.")
// start numbering pages with numeric digits
#set page(numbering: "1.")
#let filter_heading(heading) = { #let filter_heading(heading) = {
heading.level == 1 heading.level == 1
} }
#set page( #set page(
binding: left, binding: left,
header-ascent: 2em, header-ascent: 1em,
header: locate(loc => { header: locate(loc => {
let current_heading = query(selector(heading).after(here())).filter(filter_heading).first() align(left, context [
let heading_depth = counter(heading).get().at(0) + 1 #let current_heading = query(selector(heading).after(here())).filter(filter_heading).first()
table(columns: (1fr, auto), #let heading_depth = counter(heading).get().at(0) + 1
align: (left, right),
stroke: none, #heading_depth
inset: (top: 0pt, bottom: 0.5em, left: 0pt, right: 0pt), #h(0.25cm)
text(size: prelude.to_pt(prelude.format.font-size))[#heading_depth #current_heading.body], #current_heading.body
text(size: prelude.to_pt(prelude.format.font-size), counter(page).display("1")), ])
table.hline() v(-2em)
) align(right, counter(page).display("1"))
v(-1em)
line(length: 100%)
}), }),
footer: "" footer: ""
) )
#include "pages/introduction.typ" #set page(numbering: "1.")
// ------------------------------------------ = Kapitel
// Actual work pages follow here
// ------------------------------------------
#include "content/bibliography.typ" == Überschrift 2
#pagebreak()
#lorem(200)
= Kapitel 2
=== Überschrift 3
#lorem(50)
#pagebreak()
#set heading(numbering: none)
#set page(
header: locate(loc => {
align(left, context [
#let current_heading = query(selector(heading).after(here())).filter(filter_heading).first()
#current_heading.body
])
v(-2em)
align(right, counter(page).display("1"))
v(-1em)
line(length: 100%)
}),
)
#bibliography(
style: "ieee",
"../conf/bibliography.bib"
)

View File

@ -1,17 +0,0 @@
#import "../prelude.typ" as prelude
= Abstract
// abstract text goes here
#let abstract = [
]
// summary text goes here
// and is only included if the language is set to german
#if prelude.format.language == "de" [
= Zusammenfassung
]

View File

@ -28,10 +28,7 @@
// subtitle // subtitle
#prelude.subtitle(prelude.info.untertitel) #prelude.subtitle(prelude.info.untertitel)
#set align(left)
#v(1cm) #v(1cm)
#prelude.largetext()[ #prelude.largetext()[
#if prelude.format.language == "de" [ #if prelude.format.language == "de" [
selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.

View File

@ -21,3 +21,5 @@
#panic("no translation for language: ", prelude.format.language) #panic("no translation for language: ", prelude.format.language)
] ]
] ]
#pagebreak()

View File

@ -1,4 +0,0 @@
#import "../prelude.typ" as prelude
= Einleitung

View File

@ -1,10 +0,0 @@
#import "../prelude.typ" as prelude
= Vorwort
= Firmengeschichte
= Das Unternehmen ABB
= Abteilung

View File

@ -68,7 +68,6 @@
#if prelude.format.language == "de" [ #if prelude.format.language == "de" [
#table( #table(
columns: 2, columns: 2,
column-gutter: 1cm,
align: left, align: left,
stroke: none, stroke: none,
@ -93,7 +92,6 @@
] else if prelude.format.language == "en" [ ] else if prelude.format.language == "en" [
#table( #table(
columns: 2, columns: 2,
column-gutter: 1cm,
align: left, align: left,
stroke: none, stroke: none,

View File

@ -3,7 +3,7 @@
#import "extra/util.typ": title, subtitle, largetext, signature, to_cm, to_pt, to_em #import "extra/util.typ": title, subtitle, largetext, signature, to_cm, to_pt, to_em
// import document information // import document information
#let info = yaml("../conf/info.yaml") #let info = yaml("../info.yaml")
// general document information // general document information
#let format = yaml("../conf/format.yaml") #let format = yaml("../conf/format.yaml")