diff options
author | Karl Berry <karl@freefriends.org> | 2023-04-19 20:11:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-04-19 20:11:20 +0000 |
commit | de17f76b81d0ca8f2e18bca124397307ac2b5353 (patch) | |
tree | 3c812552b727264e529d910458beeef876c0187b /Master/texmf-dist/source/latex/oststud | |
parent | 7906a77ebda2adc7930af8ba8844c3745b3e389c (diff) |
oststud (19apr23)
git-svn-id: svn://tug.org/texlive/trunk@66894 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/oststud')
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/Makefile | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/hsrstud-classes.dtx | 594 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/hsrstud.dtx | 619 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/hsrstud.ins | 56 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/oststud.dtx | 664 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/oststud/oststud.ins | 54 |
6 files changed, 2051 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/oststud/Makefile b/Master/texmf-dist/source/latex/oststud/Makefile new file mode 100644 index 00000000000..a6035b941dc --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/Makefile @@ -0,0 +1,64 @@ +TEX := xelatex +TEXARGS := --synctex=1 --interaction=nonstopmode \ + --shell-escape + +.PHONY: ins doc tests dist +all: build ins doc tests + +build: + mkdir -p build + +dist: oststud.tar.gz + + +# ZIP to distribute to CTAN +oststud.tar.gz: Makefile README.md LICENSE.txt \ + oststud.ins oststud.dtx build/oststud.pdf \ + hsrstud.ins hsrstud.dtx build/hsrstud.pdf \ + hsrstud-classes.dtx build/hsrstud-classes.pdf + tar cvzf $@ --transform 's,build/,,' --transform 's,^,oststud/,' $^ + +# Installer file +ins: build/oststud.sty build/hsrzf.cls build/hsrbericht.cls build/hsrstud.sty + +build/oststud.sty: oststud.ins oststud.dtx build + $(TEX) $(TEXARGS) --output-directory=build $< + +build/hsrzf.cls build/hsrbericht.cls build/hsrstud.sty: hsrstud.ins hsrstud-classes.dtx hsrstud.dtx build + $(TEX) $(TEXARGS) --output-directory=build $< + + +# Documentation for packages +doc: build/oststud.pdf build/hsrstud.pdf build/hsrstud-classes.pdf + +build/oststud.pdf: oststud.dtx ins build + $(TEX) $(TEXARGS) --output-directory=build $< + cd build && \ + makeindex -s gind.ist -o oststud.ind oststud.idx && \ + makeindex -s gglo.ist -o oststud.gls oststud.glo + $(TEX) $(TEXARGS) --output-directory=build $< + $(TEX) $(TEXARGS) --output-directory=build $< + +build/hsrstud.pdf: hsrstud.dtx ins build + $(TEX) $(TEXARGS) --output-directory=build $< + cd build && \ + makeindex -s gind.ist -o hsrstud.ind hsrstud.idx && \ + makeindex -s gglo.ist -o hsrstud.gls hsrstud.glo + $(TEX) $(TEXARGS) --output-directory=build $< + $(TEX) $(TEXARGS) --output-directory=build $< + +build/hsrstud-classes.pdf: hsrstud-classes.dtx ins build + $(TEX) $(TEXARGS) --output-directory=build $< + cd build && \ + makeindex -s gind.ist -o hsrstud-classes.ind hsrstud-classes.idx && \ + makeindex -s gglo.ist -o hsrstud-classes.gls hsrstud-classes.glo + $(TEX) $(TEXARGS) --output-directory=build $< + $(TEX) $(TEXARGS) --output-directory=build $< + + +# Test files +tests: build/test/bericht.pdf build/test/zf.pdf + +build/test/%.pdf: test/%.tex + mkdir -p build/test + $(TEX) $(TEXARGS) --output-directory=build/test $< diff --git a/Master/texmf-dist/source/latex/oststud/hsrstud-classes.dtx b/Master/texmf-dist/source/latex/oststud/hsrstud-classes.dtx new file mode 100644 index 00000000000..d5ea6500c21 --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/hsrstud-classes.dtx @@ -0,0 +1,594 @@ +% \iffalse +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Documentation Builder +%<*doc> +\documentclass[a4paper]{ltxdoc} + +\usepackage{hsrstud} +\usepackage[ + type={CC}, + modifier={by-sa}, + version={4.0}, +]{doclicense} +\usepackage[ + margin=3.5cm, + left=4cm +]{geometry} + +\usepackage{booktabs} +\usepackage{enumitem} + +\CodelineIndex +\EnableCrossrefs +\RecordChanges + +%% Metadata +\title{\textcolor{hsr-blue}{HSR}--Stud Document Classes} +\author{Naoki Pross \texttt{<naoki.pross@ost.ch>}} +\date{\today} + +\begin{document} +\DocInput{\jobname.dtx} + +\end{document} +%</doc> +% \fi + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Classes Documentation +% +% \maketitle +% \tableofcontents +% +% \section{Purpose of these document classes} +% The following document classes were made by and for the HSR-Stud organization. +% These classes are intended to be used to create beautiful summaries and cheat +% sheets. Available classes are: +% \begin{description}[align=right] +% \item[|hsrzf|] For summaries (Zusammenfassung) +% \item[|hsrbericht|] For reports (Bericht) +% \end{description} +% +% +% \section{Class Options} +% \begin{description}[align=right] +% \item[\tt sans] Use Sans-Serif fonts (|cmbright| and |hfbright|). +% \item[\tt slab] Use Slab-Serif fonts (|bitter| and |eulervm|). +% \item[\tt margin=<size>] Sets up margins to reasonable size. +% \item[\tt *] Any other given option is passed to the underlying class (article). +% \end{description} +% +% \begin{table}\centering +% \begin{tabular}{l r r l r r} +% \toprule +% Size & H & V & Size & H & V \\ +% \midrule +% huge & 45 & 40 & small & 20 & 20 \\ +% large & 35 & 35 & tiny & 10 & 20 \\ +% big & 30 & 30 & minimal & 5 & 20 \\ +% normal & 25 & 30 \\ +% \bottomrule +% \end{tabular} +% \caption{Sizes for the {\tt margin} option. All sizes are in millimeters} +% \end{table} +% +% +% \section{Extra Metadata} +% Thanks to the {\tt titling} package, normal metadata informations are available +% throug the following commands: \cs{theauthor}, \cs{thedate}, \cs{thetitle}. +% Additionally, more metadata variables have been created for this class, to +% conserve informations related to the university course. +% \begin{description}[align=right] +% \item[\cs{course}] The degree programme of the discussed subject. +% Example: |Elektrotechnik| +% \item[\cs{module}] Short name of the module according to the class +% schedule. Example: |ComEng1| +% \item[\cs{semester}] Semester during which the summarized subject was +% taught. Example: |FS20| +% \item[\cs{institute}] Internal institute in which the module was taught. +% This field is optional. +% \item[\cs{authoremail}] Email of the author. This field is optional. +% \item[\cs{maintainer}] Name of the person maintaining the work. This +% field is optional. +% \item[\cs{contributors}] List of names of those who have contributed to +% the document. This field is optional. +% \end{description} +% Like \cs{date}, \cs{title}, etc. these fields have too an accessor macro +% \cs{the<metadata>}. For example: \cs{thecourse}, \cs{themodule}, and so on. +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Zusammenfassung Class Documentation +% \section{Zusammenfassung \texttt{hsrzf} class} +% This class is intended to be used to write short summaries. +% +% \subsection{Class options} +% \begin{description}[align=right] +% \item[\tt header] Use the HSR--Stud standard header. The option +% {\tt noheader} disables the header. +% \end{description} +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Bericht Class Documentation +% \section{Bericht \texttt{hsrbericht} class} +% This class tries to conform to the indications given by the communication +% department of the HSR. The specifications are found in the ``Werkzeugkastens +% Technische Berichte''. +% +% \subsection{Metadata} +% In addition to the metadata described in the previous section. This class +% requires: +% \begin{description}[align=right] +% \item[\cs{subtitle}] Pretty self explanatory. +% \item[\cs{category}] Category assigned to the project. +% This field is optional. +% \item[\cs{project}] Name or reference to your project. +% \item[\cs{topic}] You chosen topic in the category. +% \item[\cs{instructor}] Name of the instructor / academic that is +% following or has assigned your work. +% \item[\cs{startdate}] Date when you started the project. +% \item[\cs{finishdate}] Date when you finished the project (can be set to +% \cs{today} to keep automatically updated. +% \item[\cs{address}] Address or place where your work is produced. +% This field is optional. +% \item[\cs{matriculationnr}] Your matriculation number. +% \item[\cs{logo}] Code to insert your logo. +% \item[\cs{clientlogo}] Code to insert the logo of the client / research +% department / \dots . +% \end{description} +% +% \section{Minimal working examples} +% +% ^^A TODO: fix this with `%' +% \begin{lstlisting} +% \documentclass[margin=normal]{hsrzf} +% +% % Packages +% %% the HSRStud package +% \usepackage{hsrstud} +% +% % Metadata +% \course{Elektrotechnik} +% \module{ModAbk} +% \semester{Herbstsemester 2020} +% +% \authoremail{vname@hsr.ch} +% \author{\textsl{Vorname Name} -- \texttt{\theauthoremail}} +% +% \title{\texttt{\themodule} Zusammenfassung} +% \date{\thesemester} +% +% % document +% \begin{document} +% \maketitle +% \tableofcontents +% \section{Introduction} +% \[ +% i\hbar \partial_t \left| \psi(t) \right\rangle +% = \hat{H} \left| \psi(t) \right\rangle +% \] +% +% \end{document}\end{lstlisting} +% +% \section{License} +% \doclicenseThis +% +% \PrintChanges +% \PrintIndex +% +% \section{Implementation} +% \begin{macrocode} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Class Headers + +%<*hsrzf> +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{hsrzf}[2020/04/05 v0.1 HSRStud Summary class] +%</hsrzf> + +%<*hsrbericht> +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{hsrbericht}[2020/05/05 v0.1 HSRStud Report class] +%</hsrbericht> + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Implementation +% +%<*hsrzf|hsrbericht> + +%% Coding Packages (Dependencies) +\RequirePackage{iftex} +\RequirePackage{kvoptions} +\RequirePackage{etoolbox} + +%% Default font +\RequirePackage{lmodern} + +%% Class options +\SetupKeyvalOptions{ + family=hsr, + prefix=hsr@ +} + +%% Use header and footer +\DeclareBoolOption[false]{header} +\DeclareComplementaryOption{noheader}{header} + +%% Use a sans-serif slab-serif or concrete font +\DeclareBoolOption[false]{sans} +\DeclareBoolOption[false]{slab} +\DeclareBoolOption[false]{concrete} + +%% Configures the geometry package +%% +%% Possible values: +%% - huge (45mm, 40mm) +%% - large (35mm, 35mm) +%% - big (30mm, 30mm) +%% - normal (25mm, 30mm) +%% - small (20mm, 20mm) +%% - tiny (10mm, 20mm) +%% - minimal ( 5mm, 20mm) +\DeclareStringOption{margin}[huge] + +%% Configures the polyglossia package +% \DeclareStringOption[]{lang}[german] + + +%% Pass other options to the class +\DeclareDefaultOption{% + \ifx\CurrentOptionValue\relax + \PackageWarningNoLine{\@currname}{% + Unknown option ``\CurrentOption''\MessageBreak + is passed to class ``article''% + }% + % Pass the option to package color. + % Again it is better to expand \CurrentOption. + \expandafter\PassOptionsToClass + \expandafter{\CurrentOption}{article} + \else + % Package color does not take options with values. + % We provide the standard LaTeX error. + \@unknownoptionerror + \fi +} + +\ProcessKeyvalOptions{hsr} + + +%% Create new metadata fields + +%% Required fields +\newcommand\course[1]{\gdef\hsr@course{#1}} +\newcommand\hsr@course{\ClassError{hsrzf}{no \noexpand\course given}{}} +\newcommand\thecourse{\hsr@course} + +\newcommand\module[1]{\gdef\hsr@module{#1}} +\newcommand\hsr@module{\ClassError{hsrzf}{no \noexpand\module given}{}} +\newcommand\themodule{\hsr@module} + +\newcommand\semester[1]{\gdef\hsr@semester{#1}} +\newcommand\hsr@semester{\ClassError{hsrzf}{no \noexpand\semester given}{}} +\newcommand\thesemester{\hsr@semester} + +%% Optional fields +\newcommand\institute[1]{\gdef\hsr@institute{#1}} +\newcommand\hsr@institute{\ClassWarning{hsrzf}{no \noexpand\institute given}{}} +\newcommand\theinstitute{\hsr@institute} + +\newcommand\authoremail[1]{\gdef\hsr@authoremail{#1}} +\newcommand\hsr@authoremail{\ClassWarning{hsrzf}{no \noexpand\authoremail given}{}} +\newcommand\theauthoremail{\hsr@authoremail} + +\newcommand\maintainer[1]{\gdef\hsr@maintainer{#1}} +\newcommand\hsr@maintainer{\ClassWarning{hsrzf}{no \noexpand\maintainer given}{}} +\newcommand\themaintainer{\hsr@maintainer} + +\newcommand\contributors[1]{\gdef\hsr@contributors{#1}} +\newcommand\hsr@contributors{\ClassWarning{hsrzf}{no \noexpand\contributors given}{}} +\newcommand\thecontributors{\hsr@contributors} +%</hsrzf|hsrbericht> +%<*hsrbericht> +%% The report class has some extra metadata + +%% Extra title informations +\newcommand\subtitle[1]{\gdef\hsr@subtitle{#1}} +\newcommand\hsr@subtitle{\ClassError{hsrbericht}{no \noexpand\subtitle given}{}} +\newcommand\thesubtitle{\hsr@subtitle} + +%% Project informations +\newcommand\category[1]{\gdef\hsr@category{#1}} +\newcommand\hsr@category{\ClassWarning{hsrbericht}{no \noexpand\category given}{}} +\newcommand\thecategory{\hsr@category} + +\newcommand\project[1]{\gdef\hsr@project{#1}} +\newcommand\hsr@project{\ClassError{hsrbericht}{no \noexpand\project given}{}} +\newcommand\theproject{\hsr@project} + +\newcommand\topic[1]{\gdef\hsr@topic{#1}} +\newcommand\hsr@topic{\ClassError{hsrbericht}{no \noexpand\topic given}{}} +\newcommand\thetopic{\hsr@topic} + +\newcommand\version[1]{\gdef\hsr@version{#1}} +\newcommand\hsr@version{\ClassError{hsrbericht}{no \noexpand\version given}{}} +\newcommand\theversion{\hsr@version} + +\newcommand\instructor[1]{\gdef\hsr@instructor{#1}} +\newcommand\hsr@instructor{\ClassError{hsrbericht}{no \noexpand\instructor given}{}} +\newcommand\theinstructor{\hsr@instructor} + +\newcommand\startdate[1]{\gdef\hsr@startdate{#1}} +\newcommand\hsr@startdate{\ClassError{hsrbericht}{no \noexpand\startdate given}{}} +\newcommand\thestartdate{\hsr@startdate} + +\newcommand\finishdate[1]{\gdef\hsr@finishdate{#1}} +\newcommand\hsr@finishdate{\ClassError{hsrbericht}{no \noexpand\finishdate given}{}} +\newcommand\thefinishdate{\hsr@finishdate} + +%% Author informations +\newcommand\address[1]{\gdef\hsr@address{#1}} +\newcommand\hsr@address{\ClassWarning{hsrbericht}{no \noexpand\address given}{}} +\newcommand\theaddress{\hsr@address} + +\newcommand\matriculationnr[1]{\gdef\hsr@matriculationnr{#1}} +\newcommand\hsr@matriculationnr{\ClassError{hsrbericht}{no \noexpand\matriculationnr given}{}} +\newcommand\thematriculationnr{\hsr@matriculationnr} + +%% Logos informations +\newcommand\logo[1]{\gdef\hsr@logo{#1}} +\newcommand\hsr@logo{\ClassWarning{hsrbericht}{no \noexpand\logo given}{}} +\newcommand\thelogo{\hsr@logo} + +\newcommand\clientlogo[1]{\gdef\hsr@clientlogo{#1}} +\newcommand\hsr@clientlogo{\ClassWarning{hsrbericht}{no \noexpand\clientlogo given}{}} +\newcommand\theclientlogo{\hsr@clientlogo} +%</hsrbericht> +%<*hsrzf|hsrbericht> + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Setup base class +\LoadClass[a4paper]{article} + +%% Style deps +\RequirePackage{geometry} +\RequirePackage{fancyhdr} +\RequirePackage{titling} +\RequirePackage{totpages} +\RequirePackage{array} + +%% Insert metadata in the pdf +\PassOptionsToPackage{plainpages=false, pdfpagelabels, pdfusetitle}{hyperref} +\RequirePackage{hyperref} + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A Setup Style +% + + +%% Configure Sans-Serif font +\ifhsr@sans + \ifhsr@slab + \PackageError{hsrzf}{% + sans ans slab options cannot be used at the same time + } + \fi + \ifhsr@concrete{hsrzf}{% + sans and concrete options cannot be used at the same time + } + \fi + + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \RequirePackage{cmbright} + \RequirePackage{sfmath} +\fi + +%% Configure Slab-Serif font +\ifhsr@slab + \ifhsr@sans + \PackageError{hsrzf}{% + slab and sans options cannot be used at the same time + } + \fi + \ifhsr@concrete{hsrzf}{% + slab and concrete options cannot be used at the same time + } + \fi + + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \PassOptionsToPackage{rm,light}{roboto} + \RequirePackage{roboto} +\fi + +%% Configure (secret) concrete font +\ifhsr@concrete + \ifhsr@sans{hsrzf}{% + concrete and sans options cannot be used at the same time + } + \fi + \ifhsr@slab + \PackageError{hsrzf}{% + concrete ans slab options cannot be used at the same time + } + \fi + + \PassOptionsToPackage{boldsans,amssymb}{concmath} + \RequirePackage{concmath} + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} +\fi + +%% configure geometry +%% defaults to big +\newlength{\hsr@hmarginwidth} +\newlength{\hsr@vmarginheight} + +\ifx\hsr@margin\@empty + \setlength\hsr@hmarginwidth{30mm} + \setlength\hsr@vmarginheight{30mm} +\else + \expandafter\ifstrequal\expandafter{\hsr@margin}{huge}{ + \setlength\hsr@hmarginwidth{45mm} + \setlength\hsr@vmarginheight{40mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{large}{ + \setlength\hsr@hmarginwidth{35mm} + \setlength\hsr@vmarginheight{35mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{big}{ + \setlength\hsr@hmarginwidth{30mm} + \setlength\hsr@vmarginheight{30mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{normal}{ + \setlength\hsr@hmarginwidth{25mm} + \setlength\hsr@vmarginheight{30mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{small}{ + \setlength\hsr@hmarginwidth{20mm} + \setlength\hsr@vmarginheight{20mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{tiny}{ + \setlength\hsr@hmarginwidth{10mm} + \setlength\hsr@vmarginheight{20mm}}{} +%% + \expandafter\ifstrequal\expandafter{\hsr@margin}{minimal}{ + \setlength\hsr@hmarginwidth{ 5mm} + \setlength\hsr@vmarginheight{20mm}}{} +%% + % TODO: fix this + % \ClassError{hsrzf}{Invalid margin size} + % \setlength\hsr@hmarginwidth{30mm} + % \setlength\hsr@vmarginheight{30mm} +\fi + +%</hsrzf|hsrbericht> + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A HSR ZF specific +%<*hsrzf> +%% TODO: change vmarginheight if header is on +\newgeometry{ + hmargin=\hsr@hmarginwidth, + vmargin=\hsr@vmarginheight, + marginparsep=0pt, + marginpar=0pt, +} + +\fancypagestyle{hsrzf}{% + \fancyhf{} % clear + \fancyhead[L]{\leftmark} + \fancyhead[C]{\themodule} + \fancyhead[R]{\@date} + + \fancyfoot[L]{\href{https://github.com/HSR-Stud/}{\texttt{HSR-Stud}}} + \fancyfoot[C]{\texttt{CC BY-NC-SA}} + \fancyfoot[R]{\thepage ~/ \pageref{TotPages}} + + \renewcommand{\headrulewidth}{.5pt} + \renewcommand{\footrulewidth}{.5pt} +} + +\fancypagestyle{hsrzf-norulers}{% + \fancyhf{} % clear + \fancyhead[L]{\leftmark} + \fancyhead[C]{\themodule} + \fancyhead[R]{\@date} + + \fancyfoot[L]{\href{https://github.com/HSR-Stud/}{\texttt{HSR-Stud}}} + \fancyfoot[C]{\texttt{CC BY-NC-SA}} + \fancyfoot[R]{\thepage ~/ \pageref{TotPages}} + + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} +} + +\ifhsr@header +\pagestyle{hsrzf} +\fi +%</hsrzf> + +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%^^A HSR Bericht specific +%<*hsrbericht> + +%% Redefine title and abstract +\renewcommand\maketitle{% +\begin{titlepage} + \thispagestyle{hsrbericht} + \begin{center} + \vspace*{6cm} + \textbf{\fontsize{48}{60}\selectfont \@title} + \vspace{1.5cm} \\ + \textbf{\fontsize{24}{48}\selectfont \hsr@subtitle} + \vspace{1cm} \\ + \textbf{\fontsize{22}{48}\selectfont \hsr@category} + \vspace{0.5cm} \\ + \begin{tabular}{rl} + \textbf{Version:} & \hsr@version \\ + \end{tabular} + \vspace{4cm} \\ + \begin{tabular}{rl p{1.5cm} rl} + \textbf{Autor:} & \textbf{\@author} && Dozent: & \hsr@instructor \\ + E-Mail: & \texttt{\hsr@authoremail} && Themengebiet: & \hsr@topic \\ + Matrikelnummer: & \hsr@matriculationnr && Studiengang: & \hsr@course \\ + Adresse: & \hsr@address && & \\ + \end{tabular}{} + \vspace{2cm} \\ + \begin{tabular}{rl} + \textbf{Erstellt am:} & \textbf{\hsr@startdate} \\ + \textbf{Letze Ă„nderung am:} & \textbf{\hsr@finishdate} \\ + \end{tabular} + \end{center} +\end{titlepage}} + +\renewenvironment{abstract}{% + \section*{Abstract}% + \newcommand\problem{\paragraph{Problem}} + \newcommand\goal{\paragraph{Ziel}} + \newcommand\method{\paragraph{Method / Vorgehen}} + \newcommand\results{\paragraph{Wesentliche Ergebnisse}} + \newcommand\suggestions{\paragraph{Empfehlungen}} + \newcommand\keywords{\paragraph{Schl\"usselw\"orter}} +}{} + +%% TODO: twoside / book support +%% Debug: +%% \RequirePackage{showframe} + +\newgeometry{ + hmargin=\hsr@hmarginwidth, + vmargin=\hsr@vmarginheight, + marginparsep=0pt, + marginpar=0pt, +} + +%% Configure headers +\fancypagestyle{hsrbericht}{% + \fancyhf{} % clear + \fancyhead[C]{\@title} + \fancyhead[R]{\hsr@clientlogo} + \fancyhead[L]{\hsr@logo} + \fancyfoot[R]{\thepage / \pageref{TotPages} } + \fancyfoot[L]{Dockument: \jobname \\ Druck: \finishdate} + \renewcommand{\headrulewidth}{.5pt} + \renewcommand{\footrulewidth}{.5pt} +} + +\fancypagestyle{plain}{% + \fancyhf{} % clear + \fancyhead[C]{\@title} + \fancyhead[R]{\hsr@clientlogo} + \fancyhead[L]{\hsr@logo} + \fancyfoot[R]{\thepage / \pageref{TotPages} } + \fancyfoot[L]{Dockument: \jobname \\ Druck: \finishdate} + \renewcommand{\headrulewidth}{.5pt} + \renewcommand{\footrulewidth}{.5pt} +} + +\pagestyle{hsrbericht} + +%</hsrbericht> +% \end{macrocode} +% +% \Finale +%^^A vim:set tw=80 sw=2 ts=2 et: diff --git a/Master/texmf-dist/source/latex/oststud/hsrstud.dtx b/Master/texmf-dist/source/latex/oststud/hsrstud.dtx new file mode 100644 index 00000000000..c82dbe2fe07 --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/hsrstud.dtx @@ -0,0 +1,619 @@ +% \iffalse meta-comment +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Headers + +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{hsrstud}[2021/08/04 v0.2 HSR-Stud Macros] +%</package> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Documentation +%<*doc> +\documentclass[a4paper]{ltxdoc} + +\usepackage{hypdoc} + +%% https://tex.stackexchange.com/questions/95882/avoid-multicol-error-error-saving-partial-page +%% \setlength\IndexMin{100pt} + +\usepackage[left=4cm, right=4cm, top=3cm, bottom=3cm]{geometry} + +\usepackage{\jobname} + +\usepackage{fancyvrb} +\usepackage{enumitem} +\usepackage{framed} +\usepackage{booktabs} +\usepackage{tikz} +\usepackage{xargs} +\usepackage{bookmark} + +\usepackage[ + type={CC}, + modifier={by-sa}, + version={4.0}, +]{doclicense} + +\CodelineIndex +\EnableCrossrefs +\RecordChanges + +\makeatletter +\newlength\excodewidth +\newenvironment{example}{% + \leftbar\VerbatimEnvironment% + \global\excodewidth=.5\linewidth% + \begin{VerbatimOut}{\jobname.vrb}% +}{% + \end{VerbatimOut}% + \noindent% + \minipage[c]{\excodewidth}% + \vspace{0pt}\input{\jobname.vrb}% + \endminipage% + \minipage[c]{\dimexpr\linewidth-\excodewidth-2\fboxsep-2\fboxrule-\FrameSep\relax}% + \vspace{0pt}\lstinputlisting{\jobname.vrb}% + \endminipage% + \endleftbar% +} + +\newenvironment{hexample}{% + \leftbar\VerbatimEnvironment% + \begin{VerbatimOut}{\jobname.vrb}% +}{% + \end{VerbatimOut}% + \noindent% + \begingroup\centering% + \hspace{5pt}% + \minipage[t]{\linewidth}% + \vspace{0pt}\input{\jobname.vrb}% + \endminipage\\ + \hspace{5pt}% + \minipage[t]{\linewidth}% + \vspace{0pt}\lstinputlisting{\jobname.vrb}% + \endminipage% + \endgroup% + \endleftbar% +} + + +\makeatother + +\begin{document} +\GetFileInfo{\jobname.sty} +\title{^^A + \texttt{\textcolor{hsr-blue}{hsr}stud} --- HSR-Stud Style and Macros\thanks{^^A + This file describes version \fileversion, last revised \filedate.^^A + }^^A +} +\author{Naoki Pross \texttt{<naoki.pross@ost.ch>}} +\date{Released \filedate} +\maketitle +\tableofcontents + +\changes{v0.2}{2021/08/05}{Remove legacy code and update notation} +\changes{v0.1}{2020/02/16}{Initial draft} + +\section{Purpose of this package} +This package is made for the HSR Studenten organization to provide an easy to +use interface to give a more consistent look and feel for the works produced by +its the members. A secondary objective of this package is to eliminate the +\emph{many} dispersed duplicate .tex files that fill the repositories of the +HSR-Stud org. + + +\section{Package Options} \label{sec:options} +\begin{description}[align=right] + \item[|dontrenew|] Do not renew existing \LaTeX{} commands and + environments. This is useful when the package is loaded on a document + that is already partially written. + + \item[|arrowvec|] Tells the package to use a vector notation with a small + arrow over the variables, as it were handwritten. + + \item[|textvecdiff|] Disables the ``Nabla'' or ``Del'' notation for vector + derivatives. Instead the symbols \(\vec{\nabla}, \vec{\nabla}\dotp, + \vec{\nabla}\crossp, \nabla^2, \vec{\nabla}^2\) are be replaced with + grad, div, curl and div grad. +\end{description} + +\section{Summary notation} + +\section{Default Theming} +\subsection{Links with \texttt{hyperref}} + +\begin{example} +Colors from +\cite{bib:hsrcolors} see \\ +\url{https://intranet.hsr.ch} +\end{example} + +\subsection{Source Code with \texttt{listings}} + +\begin{hexample} +\begin{lstlisting}[language=C++] +int main(int argc, char *argv[], char *envp[]) { + std::cout << "hello world" << std::endl; +} +\end{lstlisting} +\end{hexample} + +\section{Mathematics} +\subsection{Vectors} + +\begin{macro}{\vec} + +Vectors notation. Aliases: \cs{v}, \cs{vc}. If the option \texttt{arrowvec} +described in \S \ref{sec:options} is enabled, the notation with a small +arrow over the varible will be used \(\hsrvecarrow{x}\), otherwise the +vector is bold \(\hsrvecbold{x}\). Takes one option \marg{letter}. \cs{v} +is renamed to \cs{vaccent} and \cs{vec} to \cs{oldvec}. + +\begin{example} +\[ \vec{F} = m\vec{a} \] +\end{example} +\end{macro} + +\begin{macro}{\uvec} +Unit vector notation. Alias \cs{uv}. Takes \marg{letter}. It is implemented +in terms of \cmd{\vec}, which means that the style is inherited. +\begin{example} +\[ \uvec{x} = \vec{x}/x \] +\end{example} +\end{macro} + +\subsubsection{Products} +\begin{macro}{\dotp} +Dot product between vectors. +\begin{example} +\[ \vec{u}\dotp\vec{v} \] +\end{example} +\end{macro} + +\begin{macro}{\crossp} +Cross product between vectors. +\begin{example} +\[ \vec{u}\crossp\vec{v} \] +\end{example} +\end{macro} + + +\subsection{Matrices} + +\begin{macro}{\mx} +Matrix notation. Takes \marg{letter}. + +\begin{example} +\[ + \mx{J} = \begin{pmatrix} + 0 & 1 \\ + 1 & 0 + \end{pmatrix} +\] +\end{example} +\end{macro} + +\subsection{Equalities} + +\begin{macro}{\heq} + L'H\^opital limit equality symbol. +\begin{hexample} +\[ + \lim_{x\to\infty} \frac{x}{x^2 - 1} + \heq \lim_{x\to\infty} \frac{1}{2x} + = 0 +\] +\end{hexample} +\end{macro} + +\subsection{Derivatives} +\subsubsection{Differentials} + +\begin{macro}{\dd} +The differential element. It needs a \marg{var} and has the optional +argument \oarg{order}. +\begin{example} +\[ \dd{x} \qquad \dd[4]{x} \] +\end{example} +\end{macro} + +\begin{macro}{\di} +This is the same as \cs{dd} but with a small space in front, it is +intended to be used in integrals for a nicer typesetting. +\begin{hexample} +\begin{align*} + I &= \int \vec{J}\dotp\dd{\vec{s}} \\ + &= \iint \vec{J}\dotp\uvec{n}\di{x}\di{y} +\end{align*} +\end{hexample} +\end{macro} + +\subsubsection{Scalar functions} + +\begin{macro}{\deriv} +The derivative has arguments \marg{function}, \marg{var} and the optional +argument \oarg{order}. +\begin{example} +\[ + \deriv{y}{x} \qquad + \deriv[3]{y}{x} +\] +\end{example} +\end{macro} + +%% TODO: add mixed partial derivatives (probably using xparse) +\begin{macro}{\pderiv} +The partial derivative has arguments \marg{function}, \marg{var} and the +optional argument \oarg{order}. +\begin{example} +\[ + \pderiv{y}{x} \qquad + \pderiv[3]{y}{x} +\] +\end{example} +\end{macro} + +\subsubsection{Vector functions} + +\begin{macro}{\grad} +The gradient vector operator. +\begin{example} +\[ \grad f \] +\end{example} +\end{macro} + +\begin{macro}{\div} +The divergence operator, \cs{div} is renamed to \cs{divsymb}. If the option +|donotrenew| is used \cs{divg} is also available. +\begin{example} +\[ \div \vec{f} \] +\end{example} +\end{macro} + +\begin{macro}{\curl} +The curl operator. +\begin{example} +\[ \curl \vec{f} \] +\end{example} +\end{macro} + +\begin{macro}{\laplacian} +The laplacian operator. +\begin{example} +\[ + \laplacian f +\] +\end{example} +\end{macro} + +\begin{macro}{\vlaplacian} +The vector laplacian operator operator. +\begin{example} +\[ + \vlaplacian \vec{F} +\] +\end{example} +\end{macro} + + +\section{Colors} +\begin{center} +\begin{tikzpicture} + \foreach \color/\y in {% + hsr-blue/7, + hsr-mauve/6, + hsr-lakegreen/5, + hsr-reed/4, + hsr-petrol/3, + hsr-basswood/2, + hsr-lightgrey/1, + hsr-black/0}{ + \foreach \x/\a in {0/,1/80,2/60,3/40,4/20}{ + \node[anchor=east] at (-.5,\y) {\texttt{\color}}; + \fill[color=\color\a] (\x,\y-.25) rectangle ++(1,.5); + \node[anchor=west] at (\x,\y) {\texttt{\a}}; + } + } +\end{tikzpicture} +\end{center} + +\section{License} +\doclicenseThis + +\begin{thebibliography}{3} + \bibitem{bib:hsrcolors} + HSR Intern: Corporate Design / Farben, + \textit{Hochschule f\"ur Technik Rapperswil}, + \url{https://intranet.hsr.ch/Farben.7715.0.html} +\end{thebibliography} + +\PrintChanges +\PrintIndex + +\DocInput{\jobname.dtx} + +\end{document} + +%</doc> +%\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \appendix +% \section{Implementation} +% |hsrstud| package implementation with inline documentation + +%\iffalse +%<*package> +%\fi + +% \subsection{Dependencies} +% \begin{macrocode} +%% Dependencies (( +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{bm} + +\RequirePackage{esint} +\PassOptionsToPackage{b}{esvect} +\RequirePackage{esvect} + +\RequirePackage{xcolor} +\RequirePackage{hyperref} +\RequirePackage{listings} + +\RequirePackage{iftex} +\RequirePackage{kvoptions} +%% )) +% \end{macrocode} + +% \subsection{Package options} +% \begin{macrocode} +\SetupKeyvalOptions{ + family=hsr, + prefix=hsr@ +} + +%% Do not renew LaTeX Macros +\DeclareBoolOption[false]{dontrenew} + +%% Vector style +\DeclareBoolOption[false]{arrowvec} +\DeclareComplementaryOption{boldvec}{arrowvec} + +%% Vector derivative style +\DeclareBoolOption[false]{textvecdiff} +\DeclareComplementaryOption{delvecdiff}{textvecdiff} + + +%% Process options +\ProcessLocalKeyvalOptions* +% \end{macrocode} + + +% \subsection{Summary notation} +% \begin{macrocode} +%% TODO: change letters in german +\newcommand{\bookref}[1]{\texttt{\textcolor{hsr-mauve}{P.#1}}} +\newcommand{\notesref}[1]{\texttt{\textcolor{hsr-blue}{S.#1}}} +\newcommand{\lectureref}[1]{\texttt{\textcolor{hsr-lakegreen}{L.#1}}} +% \end{macrocode} + +% \subsection{Default theming} +% \begin{macrocode} +%% Theming for hyperref and listings (( +\hypersetup{ + colorlinks=true, + linkcolor=hsr-black, + citecolor=hsr-mauve, + filecolor=hsr-black, + urlcolor=hsr-blue, +} + +%% Common listings settings +\lstdefinestyle{hsr-base}{ + belowcaptionskip=\baselineskip, + breaklines=true, + frame=none, + inputencoding=utf8, + % margin + xleftmargin=\parindent, + % numbers + numbers=left, + numbersep=5pt, + numberstyle=\ttfamily\footnotesize\color{hsr-black40}, + % background + backgroundcolor=\color{white}, + showstringspaces=false, + % default language + language=[LaTeX]TeX, + % break long lines, and show an arrow where the line was broken + breaklines=true, + postbreak=\mbox{\textcolor{hsr-blue}{$\hookrightarrow$}\space}, + % font + basicstyle=\ttfamily\small, + identifierstyle=\color{hsr-black}, + keywordstyle=\color{hsr-blue}, + commentstyle=\color{hsr-black40}, + stringstyle=\color{hsr-mauve80}, +} + +%% Define missing languages / aliases +\lstdefinelanguage{LaTeX}{ + language=[LaTeX]Tex +} + +%% Set style +\lstset{style=hsr-base, escapechar=`} +%%)) +% \end{macrocode} + +% \subsection{Mathematics} +% \subsubsection{Vectors} +% \begin{macrocode} +%% Vector (( +\newcommand{\hsrvecbold}[1]{\mathbf{\bm{#1}}} +\newcommand{\hsrvecarrow}[1]{\vv{\mathrm{#1}}} % from esvect + +\newcommand{\@hsrvecf}[1]{\hsrvecbold{#1}} +\ifhsr@arrowvec + \renewcommand{\@hsrvecf}[1]{\hsrvecarrow{#1}} +\fi + +\newcommand{\vc}{\@hsrvecf} +\ifhsr@dontrenew\else + % save previous command + \newcommand{\vaccent}{\v} + \newcommand{\oldvec}{\vec} + % redefine + \renewcommand{\v}[1]{\@hsrvecf{#1}} + \renewcommand{\vec}[1]{\@hsrvecf{#1}} +\fi +%%)) + +%% Unit vector (( +\newcommand{\hsruvecbold}[1]{\vec{\hat{#1}}} +\newcommand{\hsruvecarrow}[1]{\hat{\mathrm{#1}}} +\newcommand{\@hsruvecf}[1]{\hsruvecbold{#1}} +\ifhsr@arrowvec + \renewcommand{\@hsruvecf}[1]{\hsruvecarrow{#1}} +\fi + +\newcommand{\uv}[1]{\@hsruvecf{#1}} +\newcommand{\uvec}[1]{\@hsruvecf{#1}} +%%)) + +%% Products (( +\newcommand{\dotp}{\boldsymbol\cdot} +\newcommand{\crossp}{\boldsymbol\times} +%%)) +% \end{macrocode} + +% \subsubsection{Matrices and Tensors} +% \begin{macrocode} +\newcommand{\mx}[1]{\bm{\mathrm{#1}}} +% \end{macrocode} + +% \subsubsection{Equalities} +% \begin{macrocode} +\newcommand{\heq}{\stackrel{\hat{\texttt{H}}}{=}} +% \end{macrocode} + +% \subsection{Derivatives} +% \subsubsection{Differentials} +% \begin{macrocode} +\newcommand{\dd}[2][]{\mathrm{d}^{#1} #2} +\newcommand{\di}[2][]{\,\dd[#1]{#2}} +% \end{macrocode} + +% \subsubsection{Derivatives} +% \begin{macrocode} +\newcommand{\deriv}[3][]{\frac{\dd[#1]{#2}}{\dd[]{#3^{#1}}}} +\newcommand{\pderiv}[3][]{\frac{\partial^{#1} #2}{\partial #3^{#1}}} +% \end{macrocode} + +% \subsubsection{Vector derivatives} +% \begin{macrocode} +%% Gradient (( +\ifhsr@textvecdiff + \DeclareMathOperator{\grad}{grad} +\else + \newcommand{\grad}{\vec{\nabla}} +\fi +%% )) + +%% Divergence (( +\ifhsr@textvecdiff + \newcommand{\@hsrdivf}{div} +\else + \newcommand{\@hsrdivf}{\vec{\nabla}\dotp} +\fi + +\DeclareMathOperator{\divg}{\@hsrdivf} +\ifhsr@dontrenew\else + \let\divsymb=\div + \renewcommand{\div}{\operatorname{\@hsrdivf}} +\fi +%% )) + +%% Curl (( +\ifhsr@textvecdiff + \DeclareMathOperator{\curl}{curl} +\else + \DeclareMathOperator{\curl}{\vec{\nabla}\crossp} +\fi +%% )) + +%% laplacian (( +\ifhsr@textvecdiff + \DeclareMathOperator{\laplacian}{div grad} +\else + \DeclareMathOperator{\laplacian}{\nabla^2} +\fi + +\ifhsr@textvecdiff + \DeclareMathOperator{\vlaplacian}{div grad} +\else + \DeclareMathOperator{\vlaplacian}{\vec{\nabla}^2} +\fi +%% )) +% \end{macrocode} + +% \subsection{Colors} +% \begin{macrocode} +\definecolor{hsr-blue}{HTML}{0065A3} +\definecolor{hsr-blue80}{HTML}{3384B5} +\definecolor{hsr-blue60}{HTML}{66A3C8} +\definecolor{hsr-blue40}{HTML}{99C1DA} +\definecolor{hsr-blue20}{HTML}{CCE0ED} + +\definecolor{hsr-mauve}{HTML}{6E1C50} +\definecolor{hsr-mauve80}{HTML}{8B4973} +\definecolor{hsr-mauve60}{HTML}{A87796} +\definecolor{hsr-mauve40}{HTML}{C5A4B9} +\definecolor{hsr-mauve20}{HTML}{E2D2DC} + +\definecolor{hsr-lakegreen}{HTML}{548C86} +\definecolor{hsr-lakegreen80}{HTML}{76A39E} +\definecolor{hsr-lakegreen60}{HTML}{98BAB6} +\definecolor{hsr-lakegreen40}{HTML}{BBD1CF} +\definecolor{hsr-lakegreen20}{HTML}{DDE8E7} + +\definecolor{hsr-reed}{HTML}{7B6951} +\definecolor{hsr-reed80}{HTML}{958774} +\definecolor{hsr-reed60}{HTML}{B0A597} +\definecolor{hsr-reed40}{HTML}{CAC3B9} +\definecolor{hsr-reed20}{HTML}{E5E1DC} + +\definecolor{hsr-petrol}{HTML}{00738D} +\definecolor{hsr-petrol80}{HTML}{338FA4} +\definecolor{hsr-petrol60}{HTML}{66ABBB} +\definecolor{hsr-petrol40}{HTML}{99C7D1} +\definecolor{hsr-petrol20}{HTML}{CCE3E8} + +\definecolor{hsr-basswood}{HTML}{BABD5D} +\definecolor{hsr-basswood80}{HTML}{C8CA7D} +\definecolor{hsr-basswood60}{HTML}{D6D79E} +\definecolor{hsr-basswood40}{HTML}{E3E5BE} +\definecolor{hsr-basswood20}{HTML}{F1F2DF} + +\definecolor{hsr-lightgrey}{HTML}{C6C7C8} +\definecolor{hsr-lightgrey80}{HTML}{D1D2D3} +\definecolor{hsr-lightgrey60}{HTML}{DDDDDE} +\definecolor{hsr-lightgrey40}{HTML}{E8E8E9} +\definecolor{hsr-lightgrey20}{HTML}{F4F4F4} + +\definecolor{hsr-black}{HTML}{1A171B} +\definecolor{hsr-black80}{HTML}{484549} +\definecolor{hsr-black60}{HTML}{767476} +\definecolor{hsr-black40}{HTML}{A4A2A4} +\definecolor{hsr-black20}{HTML}{D1D1D1} +% \end{macrocode} + +% \iffalse +% \begin{macrocode} +%</package> +% \end{macrocode} +% \fi +% +%\Finale diff --git a/Master/texmf-dist/source/latex/oststud/hsrstud.ins b/Master/texmf-dist/source/latex/oststud/hsrstud.ins new file mode 100644 index 00000000000..ec7b2324948 --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/hsrstud.ins @@ -0,0 +1,56 @@ +\input docstrip.tex +\preamble +This document is part of the HSRStud LaTeX Package + +THE FOLLOWING WORK IS UNDER THE CC BY-SA 4.0 LICENSE + +You are free to +--------------- + * Share -- Copy and redistribute the material in any medium or format + * Adapt -- Remix, transform, and build upon the material for any + purpose, even commercially + +The licensor cannot revoke these freedoms as long as you follow the +license terms. + +Under the following terms +------------------------- + * Attribution + You must give appropriate credit, provide a link to the license, and + indicate if changes were made. You may do so in any reasonable + manner, but not in any way that suggests the licensor endorses you + or your use. + + * ShareAlike + If you remix, transform, or build upon the material you must + distribute your contributions under the same license as the + original. + + * No additional restrictions + You may not apply legal terms or technological measures that + legally restrict others from doing anything the license permits. + +Notice +------ +You do not have to comply with the license for elements of the material +in the public domain or where your use is permitted by an applicable +exception or limitation. + +No warranties are given. The license may not give you all of the +permissions necessary for your intended use. For example, other rights +such as publicity, privacy, or moral rights may limit how you use the +material. +\endpreamble + +\keepsilent +\askforoverwritefalse +\usedir{tex/latex/hsrstud} + +\generate{ + \file{hsrstud.sty}{\from{hsrstud.dtx}{package}} + \file{hsrzf.cls}{\from{hsrstud-classes.dtx}{hsrzf}} + \file{hsrbericht.cls}{\from{hsrstud-classes.dtx}{hsrbericht}} +} +\endbatchfile + +\endinput diff --git a/Master/texmf-dist/source/latex/oststud/oststud.dtx b/Master/texmf-dist/source/latex/oststud/oststud.dtx new file mode 100644 index 00000000000..35539e7b19f --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/oststud.dtx @@ -0,0 +1,664 @@ +% \iffalse meta-comment +% +% Copyright (C) 2023 by Naoki Pross <np@0hm.ch> +% ------------------------------------------------------- +% +% OSTStud.dtx is licensed under a Creative Commons +% Attribution-ShareAlike 4.0 International License. +% +% You should have received a copy of the license along +% with this work. If not, see +% <http://creativecommons.org/licenses/by-sa/4.0/>. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{oststud.dtx} +%</driver> +%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01] +%<package>\ProvidesPackage{oststud} +%<*package> + [2023/04/18 v0.3 OST Student's package] +%</package> +% +%<*driver> +\documentclass{ltxdoc} + +\usepackage{oststud} +\usepackage{enumitem} +\usepackage{tikz} +\usepackage{framed} +\usepackage[ + type={CC}, + modifier={by-sa}, + version={4.0}, +]{doclicense} + + +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{oststud.dtx} + \PrintChanges + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \changes{v0.1}{2022/11/18}{Initial version} +% \changes{v0.2}{2022/11/22}{Port features of \texttt{hsrstud}} +% \changes{v0.3}{2023/04/18}{Cleanup for CTAN upload} +% +% \GetFileInfo{oststud.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment,\fi,\else} +% +% \title{ +% \texttt{\textcolor{OSTBlackberry}{ost}stud} --- +% OST-Stud Style and Macros\thanks{ +% This document corresponds to \textsf{oststud}~\fileversion, last +% revised \filedate. +% } +% } +% \author{Naoki Sean Pross \texttt{<np@0hm.ch>}} +% \date{Released \filedate} +% +% \maketitle +% \tableofcontents +% +% \section*{License} +% \doclicenseThis +% +% \section{Purpose of this Package} +% +% This package is made for the OST Studenten organization to provide an easy to +% use interface that gives a more consistent look and feel to the works +% produced by its members. This package is the successor after the fusion of +% the old |hsrstud| package. +% +% \section{Package Options} +% \begin{description}[align=right] +% \item[|dontrenew|] Do not renew existing \LaTeX{} commands and +% environments. This is useful when the package is loaded on a document +% that is already partially written. +% \item[|textvecdiff|] Disables the ``Nabla'' or ``Del'' notation for vector +% derivatives. Instead the symbols \(\vec{\nabla}, \vec{\nabla}\dotp, +% \vec{\nabla}\crossp, \nabla^2, \vec{\nabla}^2\) are be replaced with +% grad, div, curl and div grad. +% \item[|bfemph|] \textit{Work in progress.} +% \item[|bbprobability|] \textit{Work in progress.} +% \item[|scrtransforms|] \textit{Work in progress.} +% \end{description} +% +% \section{Usage} +% +% \subsection{Vectors and Vector Calculus} +% +% \DescribeMacro{\vec} +% \DescribeMacro{\uvec} +% In the physics used by electrical engineers it is common to use lowercase +% bold letters for vectors (with the exception of electromagnetic fields +% $\vec{E},\vec{B},\vec{A},\ldots$). If the |dontrenew| option is set a new +% macro |\bvec| (bold |\vec|) that takes a \marg{symbol} defines the bold +% vector notation. Otherwise the default vector notation with the tiny ugly +% arrow ($\oldvec{u}$) is replaced by bold and the arrow notation saved in +% |\oldvec|. In vector calculus it is common to denote unit vectors by putting +% a hat, so there is a macro |\uvec| that does just that: +% \[ +% \uvec{u} = \vec{u}/u. +% \] +% +% \DescribeMacro{\dotp} +% \DescribeMacro{\crossp} +% To differentiate the dot and cross products (between vectors) from normal +% product between scalars ($a \cdot b$ and $a \times b$), the macros |\dotp| +% and |\crossp| provide a bold variant: +% \[ +% \vec{u} \dotp \vec{v}, \qquad +% \vec{u} \crossp \vec{v}. +% \] +% +% \DescribeMacro{\grad} +% \DescribeMacro{\div} +% \DescribeMacro{\curl} +% The macros |\grad|, |\div| and |\curl| provide symbols for the gradient, +% divergence and curl operators used in vector calculus. If the option +% |textvecdiff| is set, they symbols are written as words, otherwise they will +% he written (ab)using the Nabla symbol, i.e. by pretending that the symbol +% $\vec{\nabla}$ is a ``vector'' (sometime referred to as ``del'') of partial +% derivates: $\vec{\nabla} = (\partial_x, \partial_y, \partial_z)^\mathsf{T}$. +% Unless the option |dontrenew| is set, the division symbol is replaced by the +% divergence and the symbol $\divsymb$ is saved in |\divsymb|. For a scalar +% field $\phi$ or a vector field $\vec{F}$ the notation (in order) of the +% gradient, divergence and curl appear as follows: +% \[ +% \grad \phi, \quad +% \div \vec{F}, \quad +% \curl \vec{F}. +% \] +% +% \DescribeMacro{\laplacian} +% \DescribeMacro{\vlaplacian} +% Continuing with the (ab)use of the ``Nabla'' or ``Del'' notation, the +% there is a macro |\laplacian| for the Laplacian operator +% \[ +% \laplacian \equiv \div \grad \equiv \sum_i \partial^2_i. +% \] +% Notice that the Nabla symbol is not bold, that is because the Laplacian +% operator results in a scalar value. Though, sometimes in electrodynamics the +% vector Laplacian is used (which applies the Laplacian operator to each +% component). To differentiate the two there is a macro |\vlaplacian| which +% uses the bold nabla symbol: $\vlaplacian$. If the option |dontrenew| is set +% both symbols are replaced by div grad. +% +% \subsection{Linear Algebra} +% +% \DescribeMacro{\mx} +% Similarly to vectors it is common to write matrices as uppercase bold +% letters, thus the |\mx| macro takes a \marg{symbol} and typesets it as +% upright bold. +% +% \DescribeMacro{\mt} +% \DescribeMacro{\mh} +% The ``normal'' and Hermitian (complex conjugate) transpose of a matrix +% $\mx{F}$ are denoted by a superscript sans-serif T or H respectively +% ($\mt{\mx{F}}$ resp. $\mh{\mx{F}}$). The |\mt| and |\mh| macros (matrix +% transpose and Hermitian transpose) provide this notation; They both take a +% \marg{symbol}. In abstract vector spaces the Hermitian transpose becomes the +% adjoint, for which it is common to use a superscript dagger (adjoint of +% $\mathcal{Q}$ is $\mathcal{Q}^\dagger$), but since it does not come up very +% often this package does \emph{not} provide a macro for the adjoint. +% +% \DescribeMacro{\minv} +% Another common matrix operation that is annoying to write is the matrix +% inverse, which is usually written as a superscript -1. The |\minv| command +% takes a \marg{matrix} and adds the -1 superscript. +% +% Using all of the above we can typeset the matrix form of the linear least +% squares approximation by writing +% \begin{leftbar} +% |\vec{a} = \minv{(\mt{\mx{Q}} \mx{Q})} \mt{\mx{Q}}\vec{y}| +% \end{leftbar} +% \noindent which results in the following: +% \[ +% \vec{a} = \minv{(\mt{\mx{Q}} \mx{Q})} \mt{\mx{Q}}\vec{y} +% \iff +% \argmin_{(a_1,a_2)} \left(\sum_{i=0}^n y_i - a_1 x_i + a_2\right). +% \] +% +% \DescribeMacro{\tr} +% This package also provides a macro for the trace of a matrix. +% +% \subsection{Complex Numbers} +% +% ^^A TODO: write section +% \DescribeMacro{\Re} +% \DescribeMacro{\Im} +% AMS maths's default notation for the real and imaginary parts of a complex +% number use the Fraktur font capital letters $\mathfrak{R}$ and +% $\mathfrak{I}$. However, in engineering it is more common to see the notation +% $\Re{z}$ and $\Im{z}$, thus, unless the |dontrenew| option is set this +% package replaces the notation with the former symbols. Both of the macros +% were also modified to take an argument \marg{expression}, to surround the +% expression with opening and closing curly brackets. +% +% \subsection{Probability Operators} +% +% ^^A TODO: write section +% \textit{Work in progress.} +% +% \subsection{Transformation Operators} +% +% ^^A TODO: write section +% \textit{Work in progress.} +% \[ +% \laplace\{f(t)\} = F(s) \corresponds f(t) \rcorresponds F(s) +% \] +% +% \subsection{References} +% +% ^^A TODO: write section +% \textit{Work in progress.} +% +% ^^A \DescribeMacro{\skriptum} +% ^^A \DescribeMacro{\sref} +% +% ^^A \DescribeMacro{\textbook} +% ^^A \DescribeMacro{\bref} +% +% \subsection{OST Colors} +% +% The official OST color palette provides the following ``primary'' or +% ``accent'' colors. +% \begin{center} +% \begin{tikzpicture} +% \begin{scope} +% \foreach [count=\i] \c in {Black,Gray,Blackberry,Raspberry} { +% \node[ +% thick, draw=white, fill={OST\c}, +% minimum width=3cm, minimum height=1cm, +% ] (\c) at ({3.2cm*\i},0) {\texttt{OST\c}}; +% } +% ^^A Because you can't see black on black +% \node[text=white] at (Black) {\texttt{OSTBlack}}; +% \end{scope} +% \end{tikzpicture} +% \end{center} +% And then there are the other ``design colors''. +% \begin{center} +% \begin{tikzpicture} +% \begin{scope}[yshift=-2cm] +% \foreach [count=\i] \c in {Orange,Red,Purple,Blue,Green} { +% \foreach [count=\j] \s in {Dark,{},Light}{ +% \node[ +% thick, draw=white, fill={OST\s\c}, +% minimum width=3cm, minimum height=1cm, +% ] (\c\s) at ({3.2cm*\j},{-1.2cm*\i}) {\texttt{OST\s\c}}; +% } +% } +% \end{scope} +% \end{tikzpicture} +% \end{center} +% +% \subsection{Sane Defaults} +% +% ^^A TODO: write section +% \textit{Work in progress.} +% +% ^^A This macros separates the documentation from the implementation +% \StopEventually{} +% +% \section{Implementation} +% +% \subsection{Dependencies and Parse Options} +% +% First, we have the dependencies necessary for typesetting. +% \begin{macrocode} +\RequirePackage{xcolor} +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{bm} +% \end{macrocode} +% This package also sets sane defaults to the following packages. +% \begin{macrocode} +\RequirePackage{hyperref} +\RequirePackage{listings} +% \end{macrocode} +% Then we create the options for the package. +% \begin{macrocode} +\SetupKeyvalOptions{ + family=ost, + prefix=ost@ +} +\DeclareBoolOption[false]{dontrenew} +\DeclareBoolOption[false]{textvecdiff} +\DeclareBoolOption[false]{bfemph} +\DeclareBoolOption[false]{bbprobability} +% \DeclareBoolOption[false]{scrtransforms} +\ProcessLocalKeyvalOptions* +% \end{macrocode} +% +% \subsection{Bold emphasis} +% +% \begin{macro}{\emph} +% Change the behaviour of |\emph|. +% \begin{macrocode} +\ifost@bfemph + \ifost@dontrenew + \PackageError{The options \noexpand\dontrenew and \noexpand\bfemph cannot be used at the same time!} + \fi + \long\expandafter\def\csname em \endcsname{% + \@nomath\em + \if b\expandafter\@car\f@series\@nil + \itshape\else\bfseries\fi + } +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{Vectors and Vector Calculus} +% +% \begin{macro}{\vec} +% Set up bold notation for vectors. +% \begin{macrocode} +\newcommand{\ost@vec}[1]{\mathbf{\bm{#1}}} +\ifost@dontrenew + \newcommand{\bvec}[1]{\ost@vec{#1}} +\else + \let\oldvec\vec + \renewcommand{\vec}[1]{\ost@vec{#1}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\uvec} +% In vector calculus unit vectors are usually denoted by a hat. +% \begin{macrocode} +\newcommand{\uvec}[1]{\vec{\hat{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dotp,\crossp} +% To differentiate them from |\cdot| and |\times| which are for scalars. +% \begin{macrocode} +\DeclareMathOperator{\dotp}{\boldsymbol\cdot} +\DeclareMathOperator{\crossp}{\boldsymbol\times} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\grad} +% Gradient of a vector valued scalar functon. +% \begin{macrocode} +\ifost@textvecdiff + \DeclareMathOperator{\grad}{grad} +\else + \DeclareMathOperator{\grad}{\vec{\nabla}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\div} +% Divergence operator. If the option |dontrenew| is a new macro |\divg| is +% defined. Otherwise |\div| is renamed to |\divsymb|. +% \begin{macrocode} +\ifost@textvecdiff + \DeclareMathOperator{\ost@div}{div} +\else + \DeclareMathOperator{\ost@div}{\vec{\nabla}\dotp} +\fi +\ifost@dontrenew + \DeclareMathOperator{\divg}{\ost@div} +\else + \let\divsymb\div + \renewcommand{\div}{\ost@div} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\curl} +% Curl of a vector field. +% \begin{macrocode} +\ifost@textvecdiff + \DeclareMathOperator{\curl}{curl} +\else + \DeclareMathOperator{\curl}{\vec{\nabla}\crossp} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\laplacian,\vlaplacian} +% Laplacian of a scalar and vector field. +% \begin{macrocode} +\ifost@textvecdiff + \DeclareMathOperator{\laplacian}{\div\grad} + \DeclareMathOperator{\vlaplacian}{\div\grad} +\else + \DeclareMathOperator{\laplacian}{\nabla^2} + \DeclareMathOperator{\vlaplacian}{\vec{\nabla}^2} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{Linear Algebra} +% +% \begin{macro}{\mx} +% Notation for matrices as bold (uppercase) letters. +% \begin{macrocode} +\newcommand{\mx}[1]{\mathbf{\bm{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mt,\mh} +% Normal and Hermitian (conjugate) transpose of a matrix. +% \begin{macrocode} +\newcommand{\mt}[1]{{#1}^\mathsf{T}} +\newcommand{\mh}[1]{{#1}^\mathsf{H}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\minv} +% Matrix inverse. +% \begin{macrocode} +\newcommand{\minv}[1]{{#1}^{-1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tr} +% Trace of a matrix. +% \begin{macrocode} +\DeclareMathOperator{\tr}{tr} +% \end{macrocode} +% \end{macro} +% +% \subsection{Mathematical Programming} +% \begin{macro}{\argmin,\argmax} +% \begin{macrocode} +\DeclareMathOperator*{\argmax}{arg\,max} +\DeclareMathOperator*{\argmin}{arg\,min} +% \end{macrocode} +% \end{macro} +% +% \subsection{Complex Numbers} +% +% \begin{macro}{\Re,\Im} +% Replace the real and imaginary operators to look ``normal'', that is not +% using the Fraktur fonts. +% \begin{macrocode} +\ifost@dontrenew\else + \let\oldRe\Re \let\oldIm\Im + \renewcommand{\Re}[1]{\mathrm{Re} \left\{#1\right\}} + \renewcommand{\Im}[1]{\mathrm{Im} \left\{#1\right\}} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{Probability Operators} +% +% \begin{macro}{\E} +% Expectation of a random variable. +% \begin{macrocode} +\ifost@bbprobability + \DeclareMathOperator{\ost@expectation}{\mathbb{E}} +\else + \DeclareMathOperator{\ost@expectation}{E} +\fi +\newcommand{\E}[1]{\ost@expectation\left\{#1\right\}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Var} +% Variance of a random variable. +% \begin{macrocode} +\ifost@bbprobability + \DeclareMathOperator{\ost@variance}{\mathbb{V}} +\else + \DeclareMathOperator{\ost@variance}{Var} +\fi +\newcommand{\Var}[1]{\ost@variance\left\{#1\right\}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Pr} +% Probability operator. +% \begin{macrocode} +\ifost@bbprobability + \DeclareMathOperator{\ost@probability}{\mathbb{P}} +\else + \DeclareMathOperator{\ost@probability}{Pr} +\fi +\ifost@dontrenew + \newcommand{\P}[1]{\ost@probability\left\{#1\right\}} +\else + \renewcommand{\Pr}[1]{\ost@probability\left\{#1\right\}} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{Transformation Operators} +% +% \begin{macro}{\fourier,\ifourier} +% Fourier transform and its inverse. +% \begin{macrocode} +\DeclareMathOperator{\fourier}{\mathcal{F}} +\DeclareMathOperator{\ifourier}{\mathcal{F}^{-1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\laplace,\ilaplace} +% Laplace transform and its inverse. +% \begin{macrocode} +\DeclareMathOperator{\laplace}{\mathcal{L}} +\DeclareMathOperator{\ilaplace}{\mathcal{L}^{-1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ztransf,\iztransf} +% Z-transform and its inverse. +% \begin{macrocode} +\DeclareMathOperator{\ztransf}{\mathcal{Z}} +\DeclareMathOperator{\iztransf}{\mathcal{Z}^{-1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hilbert} +% Hilbert transform. +% \begin{macrocode} +\DeclareMathOperator{\hilbert}{\mathcal{H}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\corresponds,\rcorresponds} +% Correspondence symbols. +% \begin{macrocode} +\newcommand{\corresponds}{% + \mbox{\setlength{\unitlength}{0.1em}% + \begin{picture}(20,10)% + \put(5,3){\circle{4}}% + \put(7,3){\line(1,0){7}}% + \put(16,3){\circle*{4}}% + \end{picture}}} +\newcommand{\rcorresponds}{% + \mbox{\setlength{\unitlength}{0.1em}% + \begin{picture}(20,10)% + \put(5,3){\circle*{4}}% + \put(7,3){\line(1,0){7}}% + \put(16,3){\circle{4}}% + \end{picture}}} +% \end{macrocode} +% \end{macro} +% +% \subsection{References} +% +% \begin{macro}{\skriptum,\sref} +% Reference material in the skriptum (lecture notes) of the course. +% \begin{macrocode} +\newcommand{\ost@skriptum}{\PackageWarning{No \noexpand\skriptum given}} +\newcommand{\skriptum}[1]{\gdef\ost@skriptum{#1}} +\newcommand{\sref}[1]{% + \texttt{\textcolor{OSTBlackberry}{#1}}\nocite{\ost@skriptum}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textbook,\bref} +% Reference material in the textbook of the course. +% \begin{macrocode} +\newcommand{\ost@textbook}{\PackageWarning{No \noexpand\textbook given}} +\newcommand{\textbook}[1]{\gdef\ost@textbook{#1}} +\newcommand{\bref}[1]{% + \texttt{\textcolor{OSTRaspberry}{#1}}\nocite{\ost@textbook}} +% \end{macrocode} +% \end{macro} +% +% \subsection{OST Colors} +% +% Define the colors according to the OST corporate design. The code was kindly +% stolen from H. Badertscher's \texttt{OSTColors.sty} +% \cite{hbadertscher-ostcolors}. First there are the ``primary colors''. +% \begin{macrocode} +\definecolor{OSTBlack}{RGB}{25,25,25} +\definecolor{OSTGray}{RGB}{198,198,198} +\definecolor{OSTBlackberry}{RGB}{140,25,95} +\definecolor{OSTRaspberry}{RGB}{215,40,100} +% \end{macrocode} +% Then the ``design colors''. +% \begin{macrocode} +\definecolor{OSTPurple}{RGB}{149,96,164} +\definecolor{OSTDarkPurple}{RGB}{107,56,129} +\definecolor{OSTLightPurple}{RGB}{208,169,208} +% \end{macrocode} +% \begin{macrocode} +\definecolor{OSTGreen}{RGB}{29,175,142} +\definecolor{OSTDarkGreen}{RGB}{0,126,107} +\definecolor{OSTLightGreen}{RGB}{167,213,194} +% \end{macrocode} +% \begin{macrocode} +\definecolor{OSTRed}{RGB}{232,78,15} +\definecolor{OSTDarkRed}{RGB}{195,46,21} +\definecolor{OSTLightRed}{RGB}{243,154,139} +% \end{macrocode} +% \begin{macrocode} +\definecolor{OSTBlue}{RGB}{0,134,205} +\definecolor{OSTDarkBlue}{RGB}{0,115,176} +\definecolor{OSTLightBlue}{RGB}{95,191,237} +% \end{macrocode} +% \begin{macrocode} +\definecolor{OSTOrange}{RGB}{251,186,0} +\definecolor{OSTDarkOrange}{RGB}{209,143,0} +\definecolor{OSTLightOrange}{RGB}{253,214,175} +% \end{macrocode} +% +% \subsection{Sane Defaults} +% +% First, set up |hyperref| to not look hideous. +% \begin{macrocode} +\hypersetup{ + colorlinks=true, + linkcolor=OSTBlack, + citecolor=OSTBlackberry, + filecolor=OSTBlack, + urlcolor=OSTDarkBlue, +} +% \end{macrocode} +% Then create a listings style. +% \begin{macrocode} +\lstdefinestyle{ost-base}{ + belowcaptionskip=\baselineskip, + breaklines=true, + frame=none, + inputencoding=utf8, + % margin + xleftmargin=\parindent, + % numbers + numbers=left, + numbersep=5pt, + numberstyle=\ttfamily\footnotesize\color{OSTGray}, + % background + backgroundcolor=\color{white}, + showstringspaces=false, + % default language + language=TeX, + % break long lines, and show an arrow where the line was broken + breaklines=true, + postbreak=\mbox{\textcolor{OSTDarkBlue}{$\hookrightarrow$}\space}, + % font + basicstyle=\ttfamily\small, + identifierstyle=\color{OSTBlack}, + keywordstyle=\color{OSTBlue}, + commentstyle=\color{OSTGray}, + stringstyle=\color{OSTBlackberry}, +} +% \end{macrocode} +% Then we set this style to be default. +% \begin{macrocode} +\lstset{style=ost-base, escapechar=`} +% \end{macrocode} +% +% ^^A\begin{thebibliography}{1} +% ^^A\bibitem[hbadertscher-ostcolors] OST Colorscheme. +% ^^A\url{https://github.com/HBadertscher/OSTReport/blob/master/header/OSTColors.sty} +% ^^A\end{thebibliography} +% \Finale +\endinput +% vim:ts=4 sw=4 et spell spelllang=en ft=tex: diff --git a/Master/texmf-dist/source/latex/oststud/oststud.ins b/Master/texmf-dist/source/latex/oststud/oststud.ins new file mode 100644 index 00000000000..de74922e329 --- /dev/null +++ b/Master/texmf-dist/source/latex/oststud/oststud.ins @@ -0,0 +1,54 @@ +\input docstrip.tex +\preamble +This document is part of the HSRStud LaTeX Package + +THE FOLLOWING WORK IS UNDER THE CC BY-SA 4.0 LICENSE + +You are free to +--------------- + * Share -- Copy and redistribute the material in any medium or format + * Adapt -- Remix, transform, and build upon the material for any + purpose, even commercially + +The licensor cannot revoke these freedoms as long as you follow the +license terms. + +Under the following terms +------------------------- + * Attribution + You must give appropriate credit, provide a link to the license, and + indicate if changes were made. You may do so in any reasonable + manner, but not in any way that suggests the licensor endorses you + or your use. + + * ShareAlike + If you remix, transform, or build upon the material you must + distribute your contributions under the same license as the + original. + + * No additional restrictions + You may not apply legal terms or technological measures that + legally restrict others from doing anything the license permits. + +Notice +------ +You do not have to comply with the license for elements of the material +in the public domain or where your use is permitted by an applicable +exception or limitation. + +No warranties are given. The license may not give you all of the +permissions necessary for your intended use. For example, other rights +such as publicity, privacy, or moral rights may limit how you use the +material. +\endpreamble + +\keepsilent +\askforoverwritefalse +\usedir{tex/latex/oststud} + +\generate{ + \file{oststud.sty}{\from{oststud.dtx}{package}} +} +\endbatchfile + +\endinput |