From 783fcd03c7b066a89e576f8db4d3897356750e33 Mon Sep 17 00:00:00 2001 From: HXF1302 Date: Fri, 8 May 2026 13:30:14 +0200 Subject: [PATCH] Reworked the language selection and switched to \selectlanguage --- README.md | 22 +++++--- leibnizfh.cls | 143 ++++++++++++++++++++++++++------------------------ 2 files changed, 88 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index 16e5d5a..9caa27d 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ Dieses Paket stellt eine LaTeX-Dokumentenklasse bereit, die an die Formatierungs ## Funktionsübersicht -- Automatische Formatierung nach den gültigen Layoutvorgaben (Stand: Januar 2026) +- Automatische Formatierung nach den gültigen Layoutvorgaben der LeibnizFH Hannover (Stand: Mai 2026) - Integrierte Titelseitenfunktion (`\makelfhtitle`) - Key-Value-Konfiguration über `\lfhsetup{...}` - Optionale Kopfzeile auf der Titelseite (`plaintitle`) -- Sprachumschaltung (`ngerman` / `english`) +- Sprachumschaltung (`german` / `english`) - LPPL-lizenziert (freie Nutzung und Modifikation) --- @@ -54,13 +54,9 @@ Hier beginnt der Text der Arbeit. Beim Laden der Klasse können Optionen gesetzt werden: ```latex -\documentclass[english,plaintitle]{leibnizfh} +\documentclass[plaintitle]{leibnizfh} ``` -- `ngerman` (Standard) - Deutsche Dokumentensprache (babel) -- `english` - Englische Dokumentensprache -- `plaintitle` - Titelseite ohne Kopfzeile (z.B. für offizielle Abgaben) - Nicht unterstützte Optionen werden automatisch an die Basisklasse `article` weitergereicht. --- @@ -111,6 +107,18 @@ Die Klasse basiert auf der Standardklasse `article` und verwendet folgende Paket - `babel`, `fancyhdr`, `graphicx`, `hyperref` - `keyval` für die Konfigurationslogik +--- +## Sprache + +Die Standardsprache des Dokuments ist Deutsch. +Man kann die Sprache auf Englisch am Anfang des Dokuments wechseln, das sieht dann wie folgt aus: +```latex +... +\begin{document} +\selectlanguage{german/english} +``` +mit dem `\selectlanguage` +kann man auch im Dokument die Sprache wechseln. --- ## Lizenz diff --git a/leibnizfh.cls b/leibnizfh.cls index 4dd847e..1f70ae2 100644 --- a/leibnizfh.cls +++ b/leibnizfh.cls @@ -1,5 +1,5 @@ % ----------------------------------------------------------------------------- -% LeibnizFH LaTeX-Klasse v1.1.0 +% LeibnizFH LaTeX-Klasse v1.1.1WIP % Erstellt von: F. L. Werner % Datum: 27.01.2026 @@ -30,15 +30,19 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{leibnizfh}[2026/01/21 v1.1.0 Leibniz FH Dokumentenklasse] +\ProvidesClass{leibnizfh}[2026/01/21 v1.1.1WIP Leibniz FH Dokumentenklasse] % Eigene Klassenoptionen: \newif\if@ngerman +\newif\if@german \newif\if@english \newif\iflfh@plaintitle \newif\if@truetitle + \@truetitlefalse -\@ngermantrue +\@ngermanfalse +\@germanfalse +\@englishfalse \DeclareOption{plaintitle}{% \lfh@plaintitletrue @@ -47,13 +51,30 @@ \@truetitletrue } \DeclareOption{ngerman}{% + \ClassWarning{leibnizfh}{Option 'ngerman' is deprecated. Use \protect\selectlanguage{german} in the document body instead}% \@ngermantrue + \@germanfalse + \@englishfalse +} +\DeclareOption{german}{% + \ClassWarning{leibnizfh}{Option 'german' is deprecated. Use \protect\selectlanguage{german} in the document body instead}% + \@germantrue + \@ngermanfalse \@englishfalse } \DeclareOption{english}{% + \ClassWarning{leibnizfh}{Option 'english' is deprecated. Use \protect\selectlanguage{english} in the document body instead}% \@englishtrue \@ngermanfalse + \@germanfalse } + +\newcommand{\lfh@ifgerman}[2]{% + \iflanguage{german}{#1}{% + \iflanguage{ngerman}{#1}{#2}% + }% +} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions\relax @@ -75,13 +96,22 @@ % Konfiguration per Key->Value \RequirePackage{keyval} % Sprache - \if@ngerman - \RequirePackage[ngerman]{babel} + \RequirePackage[english,ngerman ,german]{babel} + \if@english + \AtBeginDocument{\selectlanguage{english}} \else - \RequirePackage[english]{babel} + \if@ngerman + \AtBeginDocument{\selectlanguage{ngerman}} + \ClassWarning{leibnizfh}{ngerman deprecated. Use german instead}% + \else + \if@german + \AtBeginDocument{\selectlanguage{german}} + \else + % Keine Sprache gewählt -> Standard + \AtBeginDocument{\selectlanguage{german}} + \fi + \fi \fi - - % Formatgrundlagen \renewcommand{\familydefault}{\sfdefault} % Font \onehalfspacing %Zeilenabstand @@ -89,13 +119,10 @@ \setlength{\parskip}{11pt} % Absatzhöhe % Fußnote - \makeatletter \renewcommand\footnotesize{% \@setfontsize\footnotesize{9pt}{11pt} } - \makeatother % Konfiguration - \makeatletter \newcommand*\lfh@title{Thema (Schrift groß oder fett)} \newcommand*\lfh@subtitle{} \newcommand*\lfh@module{Nennung des Moduls} @@ -130,10 +157,8 @@ \newcommand{\lfhsetup}[1]{\setkeys{lfh}{#1}} - \makeatother % Header - \makeatletter % Globale Header-Höhen \setlength{\headheight}{36pt} @@ -147,7 +172,7 @@ \textbf{\fontsize{10}{12}\selectfont \lfh@headertwo}\\ \fontsize{10}{12}\selectfont \lfh@headerthree } - \fancyhead[R]{\includegraphics[height=3\baselineskip]{\lfh@logo}} + \IfFileExists{\lfh@logo}{\fancyhead[R]{\includegraphics[height=3\baselineskip]{\lfh@logo}}}{} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0pt} } @@ -167,76 +192,47 @@ \renewcommand{\footrulewidth}{0pt} } %maketitle - \if@english \newcommand*{\makelfhtitle}{% - \newgeometry{left=3cm,right=2cm,top=3cm,bottom=1cm} + \newgeometry{left=3cm,right=2cm,top=3cm,bottom=1cm} \begin{titlepage} \iflfh@plaintitle - \thispagestyle{lfhplain} % ← Plain ohne Header + \thispagestyle{lfhplain} % <- Plain ohne Header \else - \thispagestyle{lfhheader} % ← Standard mit Header + \thispagestyle{lfhheader} % <- Standard mit Header \fi \vspace{2cm} - \begin{flushleft} - \fontsize{11.5}{12}\selectfont Leibniz-Fachhochschule\\[0.5em] - \fontsize{11.5}{12}\selectfont \lfh@program\\[0.5em] - \fontsize{11.5}{12}\selectfont Supervised by: \lfh@prof - \end{flushleft} - - \vspace{2cm} - \begin{center} - \fontsize{11.5}{12}\selectfont \lfh@worktype\\[0.5em] - \if@truetitle - \fontsize{11.5}{12}\selectfont \lfh@module\ \lfh@semester - \else - \fontsize{11.5}{12}\selectfont in the subject \lfh@module\ in \lfh@semester - \fi - \end{center} - - \vspace{1.8cm} - \begin{center} - {\Huge\bfseries \lfh@title}\\ - {\Large\bfseries \lfh@subtitle} - \end{center} - - \vfill - \begin{flushleft} - \fontsize{11.5}{12}\selectfont \lfh@author\\[0.8em] - \fontsize{11.5}{12}\selectfont matr.-no.: \lfh@studentid\\[0.8em] - \fontsize{11.5}{12}\selectfont e-mail: \href{mailto:\lfh@email}{\lfh@email}\\[1em] - \fontsize{11.5}{12}\selectfont Submission date: \lfh@submission - \end{flushleft} - \end{titlepage} - \restoregeometry - } - \else - \newcommand*{\makelfhtitle}{% - \newgeometry{left=3cm,right=2cm,top=3cm,bottom=1cm} - - \begin{titlepage} - \iflfh@plaintitle - \thispagestyle{lfhplain} % ← Plain ohne Header - \else - \thispagestyle{lfhheader} % ← Standard MIT Header - \fi - - \vspace{2cm} - \begin{flushleft} + \begin{flushleft} + \lfh@ifgerman{% \fontsize{11.5}{12}\selectfont Leibniz-Fachhochschule\\[0.5em] \fontsize{11.5}{12}\selectfont \lfh@program\\[0.5em] \fontsize{11.5}{12}\selectfont Betreut durch: \lfh@prof + }{ + \iflanguage{english}{% + \fontsize{11.5}{12}\selectfont Leibniz-Fachhochschule\\[0.5em] + \fontsize{11.5}{12}\selectfont \lfh@program\\[0.5em] + \fontsize{11.5}{12}\selectfont Supervised by: \lfh@prof + }{} + } \end{flushleft} \vspace{2cm} + \begin{center} \fontsize{11.5}{12}\selectfont \lfh@worktype\\[0.5em] \if@truetitle \fontsize{11.5}{12}\selectfont \lfh@module\ \lfh@semester \else - \fontsize{11.5}{12}\selectfont im Fach \lfh@module\ im \lfh@semester + \lfh@ifgerman{% + \fontsize{11.5}{12}\selectfont im Fach \lfh@module\ im \lfh@semester + }{ + \iflanguage{english}{% + \fontsize{11.5}{12}\selectfont in the subject \lfh@module\ in \lfh@semester + }{} + } + \fi \end{center} @@ -248,13 +244,20 @@ \vfill \begin{flushleft} - \fontsize{11.5}{12}\selectfont \lfh@author\\[0.8em] - \fontsize{11.5}{12}\selectfont Matr.-Nr.: \lfh@studentid\\[0.8em] - \fontsize{11.5}{12}\selectfont E-Mail: \href{mailto:\lfh@email}{\lfh@email}\\[1em] - \fontsize{11.5}{12}\selectfont Abgabedatum: \lfh@submission + \lfh@ifgerman{% + \fontsize{11.5}{12}\selectfont \lfh@author\\[0.8em] + \fontsize{11.5}{12}\selectfont Matrikel.-Nr.: \lfh@studentid\\[0.8em] + \fontsize{11.5}{12}\selectfont E-Mail: \href{mailto:\lfh@email}{\lfh@email}\\[1em] + \fontsize{11.5}{12}\selectfont Abgabedatum: \lfh@submission + }{ + \iflanguage{english}{% + \fontsize{11.5}{12}\selectfont \lfh@author\\[0.8em] + \fontsize{11.5}{12}\selectfont matr.-no.: \lfh@studentid\\[0.8em] + \fontsize{11.5}{12}\selectfont e-mail: \href{mailto:\lfh@email}{\lfh@email}\\[1em] + \fontsize{11.5}{12}\selectfont Submission date: \lfh@submission + }{} + } \end{flushleft} \end{titlepage} \restoregeometry } - \fi - \makeatother