Seite 1 von 1
Schalter für Schriftartenwechsel
Verfasst: So 5. Okt 2014, 12:20
von nullkommanix
Mahlzeit,
ich habe einen Schalter gebastelt, der auf uarial schalten soll:
% Schalter für Arial
\newif\ifarial
% Wenn es unbedingt in Arial sein soll, dann auskommentieren
%\arialtrue
\ifarial
\RequirePackage[scaled]{uarial}
\renewcommand*\familydefault{\sfdefault}
\fi
Ich möchte das die Anweisung im meinem package steht und der Schalter \arialtrue aus einer config Datei bedient wird. Meine Vermutung ist, dass das nicht funzt. Wer widerlegt meine Hypothese?
Guten Appentit
Verfasst: So 5. Okt 2014, 12:24
von Johannes_B
Sollen wir jetzt ein dummy Paket und eine config vorbereiten, eine Lösung erarbeiten, erklären, nur um dann zu lesen: »Ach, nee, so hab ich das nicht gemeint, der Aufbau ist ganz anders. Sorry.«
Minimalbeispiel
Verfasst: So 5. Okt 2014, 12:43
von nullkommanix
\documentclass[oneside,fontsize=12pt]{scrreprt}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage{mein-package}
\input{config/main.tex}
\begin{document}
\chapter{test}
\blindtext
\end{document}
mein-package.sty
\ProvidesPackage{mein-package}[2014/10/04 v1.0 Paket fuer Vorlage]
\ProcessOptions\relax
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\RequirePackage[ngerman]{babel}
\RequirePackage{blindtext}
% Schalter für Arial
\newif\ifarial
\ifarial
\RequirePackage[scaled]{uarial}
\renewcommand*\familydefault{\sfdefault}
\fi
main.tex
% Wenn es unbedingt in Arial sein soll, dann auskommentieren
%\arialtrue
Ich dachte an eine generelle Antwort auf eine generelle Frage.
Verfasst: So 5. Okt 2014, 14:25
von Johannes_B
Minimale Vorlage vs. maximale Probleme
Du musst das Initialisieren, lesen, auswerten trennen. Das geht auf verschiedene Art und Weise. Und genau bei der Reihenfolge des Ladens kannst du bei LaTeX schnell Probleme bekommen. Leider ist die Ladereihenfolge wichtig, hyperref sollte beispielsweise (fast immer) zuletzt geladen werden.
\begin{filecontents}{\jobname.cfg}
%\booltrue{arial}
%\arialtrue
\booltrue{coloredsections}
\end{filecontents}
\begin{filecontents}{\jobname.sty}
\ProvidesPackage{\jobname.sty}[2014/10/04 v1.0 Paket fuer Vorlage]
\ProcessOptions\relax
\RequirePackage{etoolbox}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\RequirePackage[ngerman]{babel}
\RequirePackage{babel}%<--------
\RequirePackage{blindtext}
\PassOptionsToPackage{xcolor}{x11names}
\RequirePackage{xcolor}
%\RequirePackage[x11names]{xcolor}
\colorlet{dispostioncolor}{blue}
\newbool{arial}
%und andere bools
\newbool{coloredsections}
\AtEndPreamble{\ifbool{coloredsections}{
\addtokomafont{disposition}{\color{dispostioncolor}}}{}
}
\InputIfFileExists{\jobname.cfg}{\typeout{Processing
config}}{\typeout{Seems not config is needed, using defaults}}
\ifbool{arial}{
\RequirePackage{tgheros}
\renewcommand*\familydefault{\sfdefault}
}{\typeout{gute entscheidung}}
\endinput
\end{filecontents}
\documentclass[oneside,fontsize=12pt,
english%HÄH? ich hab doch aber english eingestellt?
]{scrreprt}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage{\jobname}
%\usepackage[table]{xcolor}
\begin{document}
\tableofcontents
\blinddocument
\end{document}
Wird hier beispielsweise keine Farbe gebraucht, warum dann das Paket überhaupt laden? Oder braucht der Nutzer vielleicht sogar farbige Tabellen? Dann lädt er xcolor mit der Option table und Bämm, optionclash.
Manche Optionen könnten sich auch logisch ausschließen, oder andere Optionen setzen.
Sei also auf der Hut.
Oder mit anderen Worten, hat der Nutzer die Wahl zwischen Apfel und Birne, dann fang auch ab wenn der Kaffee will.
»Sorry, coffee not available, for valent options type h«
Verfasst: So 5. Okt 2014, 14:55
von nullkommanix
Ich spiele zur Zeit nur herum. Es geht nicht darum irgendetwas zu verstecken oder so. Meine Überlegung war rein für das Verständnis. Ich wollte sehen, ob man mit Hilfe von Schaltern, in einer anderen Datei, bestimmte Optionen an- und ausschalten kann. Offenbar geht das, danke.