Reworked the language selection and switched to \selectlanguage

This commit is contained in:
HXF1302
2026-05-08 13:30:14 +02:00
parent ff5222d134
commit 783fcd03c7
2 changed files with 88 additions and 77 deletions
+15 -7
View File
@@ -6,11 +6,11 @@ Dieses Paket stellt eine LaTeX-Dokumentenklasse bereit, die an die Formatierungs
## Funktionsübersicht ## 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`) - Integrierte Titelseitenfunktion (`\makelfhtitle`)
- Key-Value-Konfiguration über `\lfhsetup{...}` - Key-Value-Konfiguration über `\lfhsetup{...}`
- Optionale Kopfzeile auf der Titelseite (`plaintitle`) - Optionale Kopfzeile auf der Titelseite (`plaintitle`)
- Sprachumschaltung (`ngerman` / `english`) - Sprachumschaltung (`german` / `english`)
- LPPL-lizenziert (freie Nutzung und Modifikation) - 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: Beim Laden der Klasse können Optionen gesetzt werden:
```latex ```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. 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` - `babel`, `fancyhdr`, `graphicx`, `hyperref`
- `keyval` für die Konfigurationslogik - `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 ## Lizenz
+66 -63
View File
@@ -1,5 +1,5 @@
% ----------------------------------------------------------------------------- % -----------------------------------------------------------------------------
% LeibnizFH LaTeX-Klasse v1.1.0 % LeibnizFH LaTeX-Klasse v1.1.1WIP
% Erstellt von: F. L. Werner % Erstellt von: F. L. Werner
% Datum: 27.01.2026 % Datum: 27.01.2026
@@ -30,15 +30,19 @@
\NeedsTeXFormat{LaTeX2e} \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: % Eigene Klassenoptionen:
\newif\if@ngerman \newif\if@ngerman
\newif\if@german
\newif\if@english \newif\if@english
\newif\iflfh@plaintitle \newif\iflfh@plaintitle
\newif\if@truetitle \newif\if@truetitle
\@truetitlefalse \@truetitlefalse
\@ngermantrue \@ngermanfalse
\@germanfalse
\@englishfalse
\DeclareOption{plaintitle}{% \DeclareOption{plaintitle}{%
\lfh@plaintitletrue \lfh@plaintitletrue
@@ -47,13 +51,30 @@
\@truetitletrue \@truetitletrue
} }
\DeclareOption{ngerman}{% \DeclareOption{ngerman}{%
\ClassWarning{leibnizfh}{Option 'ngerman' is deprecated. Use \protect\selectlanguage{german} in the document body instead}%
\@ngermantrue \@ngermantrue
\@germanfalse
\@englishfalse
}
\DeclareOption{german}{%
\ClassWarning{leibnizfh}{Option 'german' is deprecated. Use \protect\selectlanguage{german} in the document body instead}%
\@germantrue
\@ngermanfalse
\@englishfalse \@englishfalse
} }
\DeclareOption{english}{% \DeclareOption{english}{%
\ClassWarning{leibnizfh}{Option 'english' is deprecated. Use \protect\selectlanguage{english} in the document body instead}%
\@englishtrue \@englishtrue
\@ngermanfalse \@ngermanfalse
\@germanfalse
} }
\newcommand{\lfh@ifgerman}[2]{%
\iflanguage{german}{#1}{%
\iflanguage{ngerman}{#1}{#2}%
}%
}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax \ProcessOptions\relax
@@ -75,13 +96,22 @@
% Konfiguration per Key->Value % Konfiguration per Key->Value
\RequirePackage{keyval} \RequirePackage{keyval}
% Sprache % Sprache
\if@ngerman \RequirePackage[english,ngerman ,german]{babel}
\RequirePackage[ngerman]{babel} \if@english
\AtBeginDocument{\selectlanguage{english}}
\else \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 \fi
% Formatgrundlagen % Formatgrundlagen
\renewcommand{\familydefault}{\sfdefault} % Font \renewcommand{\familydefault}{\sfdefault} % Font
\onehalfspacing %Zeilenabstand \onehalfspacing %Zeilenabstand
@@ -89,13 +119,10 @@
\setlength{\parskip}{11pt} % Absatzhöhe \setlength{\parskip}{11pt} % Absatzhöhe
% Fußnote % Fußnote
\makeatletter
\renewcommand\footnotesize{% \renewcommand\footnotesize{%
\@setfontsize\footnotesize{9pt}{11pt} } \@setfontsize\footnotesize{9pt}{11pt} }
\makeatother
% Konfiguration % Konfiguration
\makeatletter
\newcommand*\lfh@title{Thema (Schrift groß oder fett)} \newcommand*\lfh@title{Thema (Schrift groß oder fett)}
\newcommand*\lfh@subtitle{} \newcommand*\lfh@subtitle{}
\newcommand*\lfh@module{Nennung des Moduls} \newcommand*\lfh@module{Nennung des Moduls}
@@ -130,10 +157,8 @@
\newcommand{\lfhsetup}[1]{\setkeys{lfh}{#1}} \newcommand{\lfhsetup}[1]{\setkeys{lfh}{#1}}
\makeatother
% Header % Header
\makeatletter
% Globale Header-Höhen % Globale Header-Höhen
\setlength{\headheight}{36pt} \setlength{\headheight}{36pt}
@@ -147,7 +172,7 @@
\textbf{\fontsize{10}{12}\selectfont \lfh@headertwo}\\ \textbf{\fontsize{10}{12}\selectfont \lfh@headertwo}\\
\fontsize{10}{12}\selectfont \lfh@headerthree \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{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt}
} }
@@ -167,22 +192,30 @@
\renewcommand{\footrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt}
} }
%maketitle %maketitle
\if@english
\newcommand*{\makelfhtitle}{% \newcommand*{\makelfhtitle}{%
\newgeometry{left=3cm,right=2cm,top=3cm,bottom=1cm} \newgeometry{left=3cm,right=2cm,top=3cm,bottom=1cm}
\begin{titlepage} \begin{titlepage}
\iflfh@plaintitle \iflfh@plaintitle
\thispagestyle{lfhplain} % Plain ohne Header \thispagestyle{lfhplain} % <- Plain ohne Header
\else \else
\thispagestyle{lfhheader} % Standard mit Header \thispagestyle{lfhheader} % <- Standard mit Header
\fi \fi
\vspace{2cm} \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 Leibniz-Fachhochschule\\[0.5em]
\fontsize{11.5}{12}\selectfont \lfh@program\\[0.5em] \fontsize{11.5}{12}\selectfont \lfh@program\\[0.5em]
\fontsize{11.5}{12}\selectfont Supervised by: \lfh@prof \fontsize{11.5}{12}\selectfont Supervised by: \lfh@prof
}{}
}
\end{flushleft} \end{flushleft}
\vspace{2cm} \vspace{2cm}
@@ -192,7 +225,14 @@
\if@truetitle \if@truetitle
\fontsize{11.5}{12}\selectfont \lfh@module\ \lfh@semester \fontsize{11.5}{12}\selectfont \lfh@module\ \lfh@semester
\else \else
\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 \fontsize{11.5}{12}\selectfont in the subject \lfh@module\ in \lfh@semester
}{}
}
\fi \fi
\end{center} \end{center}
@@ -204,57 +244,20 @@
\vfill \vfill
\begin{flushleft} \begin{flushleft}
\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 \lfh@author\\[0.8em]
\fontsize{11.5}{12}\selectfont matr.-no.: \lfh@studentid\\[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 e-mail: \href{mailto:\lfh@email}{\lfh@email}\\[1em]
\fontsize{11.5}{12}\selectfont Submission date: \lfh@submission \fontsize{11.5}{12}\selectfont Submission date: \lfh@submission
}{}
}
\end{flushleft} \end{flushleft}
\end{titlepage} \end{titlepage}
\restoregeometry \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}
\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
\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
\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.-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
\end{flushleft}
\end{titlepage}
\restoregeometry
}
\fi
\makeatother