diff options
author | Norbert Preining <norbert@preining.info> | 2020-05-04 03:02:37 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-05-04 03:02:37 +0000 |
commit | 47af91cb8475b7352015cf05ce881e6b8415112d (patch) | |
tree | 17afceb279a6187f83336bac3c72536ae1522a88 /macros/latex/contrib/metanorma/metanorma.cls | |
parent | d78de17ddf0443233483fd98f40802cae5aa87c5 (diff) |
CTAN sync 202005040302
Diffstat (limited to 'macros/latex/contrib/metanorma/metanorma.cls')
-rw-r--r-- | macros/latex/contrib/metanorma/metanorma.cls | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/macros/latex/contrib/metanorma/metanorma.cls b/macros/latex/contrib/metanorma/metanorma.cls new file mode 100644 index 0000000000..894f9a860d --- /dev/null +++ b/macros/latex/contrib/metanorma/metanorma.cls @@ -0,0 +1,132 @@ +% +% tex2mn 0.5.0 - converts Metanorma documents from LaTeX to AsciiDoc +% +% Copyright (C) 2019-2020 Ribose Inc. <open.source@ribose.com> +% 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} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |