% % tex2mn 0.5.0 - converts Metanorma documents from LaTeX to AsciiDoc % % Copyright (C) 2019-2020 Ribose Inc. % This project is available under the terms of the MIT License. % \NeedsTeXFormat{LaTeX2e} \ProvidesClass{metanorma} [2019/07/07 Metanorma] \LoadClass{article} \RequirePackage{graphicx} \RequirePackage{hyperref} % TODO: what's the best baseline AMS setup? \RequirePackage{amsmath} \RequirePackage{subcaption} \RequirePackage{enumitem} \RequirePackage{verbatim} \RequirePackage{xparse} %% RDF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \RequirePackage{lxRDFa} % Let's not introduce another (mostly trivial) dependency, and just embed it: \DeclareRobustCommand{\lxRDFa}[2][]{} \DeclareRobustCommand{\lxRDF}[2][]{} \NewDocumentCommand{\mn}{m} {\lxRDF[#1]{property=mn:attributes}} %% Document attributes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \makeatletter \NewDocumentCommand{\set}{mm}{% \lxRDF{property=#1,content=#2}% \expandafter\def\csname metadata@#1\endcsname{#2}} \@onlypreamble\set \NewDocumentCommand{\get}{m} {\csname metadata@#1\endcsname} \makeatother \NewDocumentCommand{\att}{om}{#2} %% General style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % No indentation on paragraphs. \setlength\parindent{0pt} %% Strikethrough %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % `normalem` avoids changes to the behaviour of emphasis. \RequirePackage[normalem]{ulem} % We decouple the class' API from the package choice. \let\textst\sout %% Blocks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage[framemethod=TikZ]{mdframed} \mdfdefinestyle{mnbase}{ frametitlerule=true, frametitlefont=\sffamily\bfseries\scshape\small, linecolor=gray, } % Admonitions \mdfdefinestyle{note}{linecolor=blue,frametitle=Note} \mdfdefinestyle{tip}{linecolor=green,frametitle=Tip} \mdfdefinestyle{important}{linecolor=yellow,frametitle=Important} \mdfdefinestyle{caution}{linecolor=red,frametitle=Caution} \mdfdefinestyle{warning}{linecolor=orange,frametitle=Warning} \newmdenv[style=mnbase,style=note]{note} \newmdenv[style=mnbase,style=tip]{tip} \newmdenv[style=mnbase,style=important]{important} \newmdenv[style=mnbase,style=caution]{caution} \newmdenv[style=mnbase,style=warning]{warning} % Requirement, recommendation and permission \mdfdefinestyle{requirement}{linecolor=gray,frametitle=Requirement} \mdfdefinestyle{recommendation}{linecolor=gray,frametitle=Recommendation} \mdfdefinestyle{permission}{linecolor=gray,frametitle=Permission} \newmdenv[style=mnbase,style=requirement]{requirement} \newmdenv[style=mnbase,style=recommendation]{recommendation} \newmdenv[style=mnbase,style=permission]{permission} % Specification, measurement target, verification and import \mdfdefinestyle{specification}{linecolor=lightgray,frametitle=Specification} \mdfdefinestyle{measurement-target}{linecolor=lightgray,frametitle=Measurement target} \mdfdefinestyle{verification}{linecolor=lightgray,frametitle=Verification} \mdfdefinestyle{import}{linecolor=lightgray,frametitle=Import} \newmdenv[style=mnbase,style=specification]{specification} \newmdenv[style=mnbase,style=measurement-target]{measurement-target} \newmdenv[style=mnbase,style=verification]{verification} \newmdenv[style=mnbase,style=import]{import} %% Terms and definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NewDocumentCommand{\alt}{m}{{\large #1}\par} \NewDocumentCommand{\deprecated}{m}{\textbf{DEPRECATED:} #1\par} \NewDocumentCommand{\domain}{m}{\textbf{DOMAIN:} #1\par} \mdfdefinestyle{example}{linecolor=lightgray,frametitle=Example} \mdfdefinestyle{source}{linecolor=lightgray,frametitle=Source} \newmdenv[style=mnbase,style=example]{example} \newmdenv[style=mnbase,style=source]{source} %% Citation macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: handle localities formatting \NewDocumentCommand{\mncite}{omo}{\cite[#1]{#2}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newlist{key}{description}{1} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%