Consider the following .sty file:
% Den krævede LaTeX-version.
\NeedsTeXFormat{LaTeX2e}[2014/05/01]
% Pakkens navn.
\ProvidesPackage{standardopsaetning}[2014/10/16 standardopsaetning]
%%%%%%%%%%%%%%%%
%% %%
%% Pakker %%
%% %%
%%%%%%%%%%%%%%%%
% Sørger for dansk orddeling og dansk opsætning af `specielle' ord.
\RequirePackage{babel}
% Hjælper med orddeling ved `æ', `ø' og `å'.
\RequirePackage[T1]{fontenc}
% Tillader `æ', `ø' og `å' (i inputfilen).
\RequirePackage[utf8]{inputenc}
% Marginer med mere.
\RequirePackage[
hmargin = 2.4cm,
vmargin = 3cm
]{geometry}
% Matematik.
\RequirePackage{mathtools}
% Fodnoter.
\RequirePackage[
bottom,
hang,
stable
]{footmisc}
% Sidehoved og -fod.
\RequirePackage{fancyhdr}
% Figur- og tabelforklaringer.
\RequirePackage{caption}
% SI-enheder.
\RequirePackage[
locale = DE
]{siunitx}
% Intern vektorgrafik.
\RequirePackage{pstricks-add}
% Tabeller.
\RequirePackage{booktabs}
% Lister.
\RequirePackage{enumitem}
% Opstående græske bogstaver.
\RequirePackage{upgreek}
% Den sidste værdi, der angives af en tæller (`counter').
\RequirePackage{totcount}
% Mikrotypografiudvidelser til PDFTeX.
\RequirePackage{microtype}
%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% Pakkeopsætning %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareOption{pakkeopsaetninger}{
% ``mathtools''
\mathtoolsset{
showonlyrefs
}
% ``caption''
\DeclareCaptionLabelSeparator{tilpasning}{:\quad}
\captionsetup{
labelsep = tilpasning,
figureposition = bottom,
tableposition = top,
font = small,
labelfont = sc
}
% ``pstricks''
\psset{
dimen = m
}
}
%%%%%%%%%%%%%%%%%
%% %%
%% Makroer %%
%% %%
%%%%%%%%%%%%%%%%%
\DeclareOption{makroer}{
% Til at afgøre, om dokumentet skal udskrives eller læses på en skærm.
\newif\ifprint
% Til sænket skrift.
\newif\ifsubscript
\subscriptfalse
% Figur- og tabelplaceringer.
\providecommand*\setfloatlocations[2]{\@namedef{fps@#1}{#2}}
\setfloatlocations{figure}{htbp}
\setfloatlocations{table}{htbp}
% Fjerner ligaturer ved `f'.
\DisableLigatures[f]{encoding = T1}
% Indryk til fodnoter.
\setlength\footnotemargin{6pt}
% Sidehoved og -fod.
\pagestyle{fancy}
\renewcommand*\headrulewidth{0pt}
\setlength\headheight{14.5pt}
\lhead{}
\rhead{}
\regtotcounter{page}
\cfoot{
\ifnum \totvalue{page} > 1 \relax
\thepage
\else
%
\fi
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% `Speciel' placering %%
%% af `\DeclareOption' %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sænket skrift.
\begingroup\lccode`\~=`\_
\lowercase{\endgroup
\DeclareOption{saenketSkrift}{%
\protected\gdef~{\@ifnextchar|\subtextup\sb}%
\def\subtextup|#1|{\sb{\textup{#1}}}%
\AtBeginDocument{\catcode`\_=12 \mathcode`\_=\string"8000 }%
}%
}
% Aritmetiske beregninger.
\ExplSyntaxOn
\DeclareOption{aritmetik}{%
\cs_new_eq:NN \calc \fp_eval:n
}
\ExplSyntaxOff
% Addition eller subtraktion af fysiske størrelser med ``siunitx''.
\ExplSyntaxOn
\NewDocumentCommand\SIexpr{ O{,} m m }
{
\SIextension_siexpr:nnn { #1 } { #2 } { #3 }
}
\cs_new_protected:Npn \SIextension_siexpr:nnn #1 #2 #3
{
\seq_set_split:Nnn \l_SIextension_siexpr_input_seq { #1 } { #2 }
\seq_pop_left:NN \l_SIextension_siexpr_input_seq \l_SIextension_siexpr_first_tl
\seq_clear:N \l_SIextension_siexpr_output_seq
\seq_put_right:Nx \l_SIextension_siexpr_output_seq
{
\fp_compare:nTF { \l_SIextension_siexpr_first_tl > 0 }
{ \num { \l_SIextension_siexpr_first_tl } }
{ - \num { \tl_tail:V \l_SIextension_siexpr_first_tl } }
}
\seq_map_inline:Nn \l_SIextension_siexpr_input_seq
{
\seq_put_right:Nx \l_SIextension_siexpr_output_seq
{
\fp_compare:nTF { ##1 > 0 }
{ + \num { ##1 } }
{ - \num { \tl_tail:n { ##1 } } }
}
}
\SI[
parse-numbers = false,
quotient-mode = fraction,
input-product = *,
output-product = \cdot
]
{
\sisetup{parse-numbers}
\left( \seq_use:Nn \l_SIextension_siexpr_output_seq { } \right)
}
{ #3 }
}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% Eksekvering af opsætningen %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ExecuteOptions{pakkeopsaetninger}
\ExecuteOptions{makroer}
\ExecuteOptions{saenketSkrift}
\ExecuteOptions{aritmetik}
\ProcessOptions
The subscript code (the chunk with \DeclareOption{saenketSkrift}) is no longer working (which it has in the past). Why is that and how do I make it work again?
P.S. The code in question is taken from here.
\ProcessOptions). Anyway, the error is having\newifin the code for\DeclareOption. – egreg Oct 20 '14 at 13:19.styfiles. If I can make you 'clean up' my file in an answer, I've gladly accept your answer. – Svend Tveskæg Oct 20 '14 at 13:22