\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{semantic-markup}[2016/10/28
  Macros for TEI-like semantic markup]
% Copyright 2016 Andrew A. Cashner, andrewacashner@gmail.com

% This work may be distributed and/or modified under the 
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any 
% later version.
% The latest version of this license is in 
%    http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% The Current Maintainer of this work is Andrew A. Cashner.
% This work consists of the package file semantic-markup.sty 
% and the documentation file semantic-markup.tex.

% CHANGE LOG
% 2016-09-22 `endnotes' option added
% 2016-09-01 First version on CTAN

% Option to use csquotes default behavior instead of the 
% US localized punctuation used in this package
\newif\ifdefaultquotes
\defaultquotesfalse 
\DeclareOption{defaultquotes}{\defaultquotestrue}

% Option to convert footnotes to endnotes, include
% Footnote environment
\newif\ifendnotes
\endnotesfalse
\DeclareOption{endnotes}{\endnotestrue}

\ProcessOptions\relax
%**************************

\RequirePackage{xparse}

\RequirePackage{csquotes}
\ifdefaultquotes\else
  % Put end punctuation inside quotation marks 
  % for the specified marks
  \renewcommand{\mktextquote}[6]{#1#2#4#5#3#6}
  \DeclareAutoPunct{.,!?}
\fi

\NewDocumentCommand{\quoted}{}	
{\textquote}
\NewDocumentCommand{\soCalled}{}
{\textquote}
\NewDocumentCommand{\strong}{}	
{\textbf}
\NewDocumentCommand{\code}{}	
{\texttt}
\NewDocumentCommand{\term}{}	
{\emph}
\NewDocumentCommand{\mentioned}{}	
{\emph}
\NewDocumentCommand{\foreign}{}
{\emph}
\NewDocumentCommand{\worktitle}{}
{\emph}
\NewDocumentCommand{\parttitle}{}
{\textquote}

% editorial addition
\NewDocumentCommand{\add}{ m }
{[#1]}
% editorial ellipsis
\NewDocumentCommand{\Dots}{}{\add{\dots}}
% explanatory gloss of technical or foreign term
\NewDocumentCommand{\gloss}{ m m }{%
  \mentioned{#1} (#2)%
}
% explanatory gloss of word in quotation marks
\NewDocumentCommand{\quotedgloss}{ m m }{%
  \quoted{#1} (#2)%
}

%*******************
% Identify problem spot in draft
\NewDocumentCommand{\XXX}{ O{\add{FIX}} }{%
  \textbf{#1}%
}
% Indicate citation to be filled in later
% Optional argument for indicating the source
\NewDocumentCommand{\citXXX}{ o }{%
  \footnote{\textbf{[Citation needed]\IfValueTF{#1}{#1}{}}}%
}

%*******************
% Footnote as environment
\RequirePackage{environ}
\NewEnviron{Footnote}{\footnote{\BODY}}[]

%******************
% Endnotes, if desired
% Footnote environment adjusted to fix expansion problem
\ifendnotes
  \RequirePackage{endnotes}
  \RenewEnviron{Footnote}{\expandafter\footnote\expandafter{\BODY}}[]
  \let\footnote=\endnote
  \AtEndDocument{\theendnotes}
\fi

%****************************************
% MUSIC SYMBOLS

% Accidentals using LaTeX symbols
\NewDocumentCommand{\fl}{}{$\flat$}
\NewDocumentCommand{\na}{}{$\natural$}
\NewDocumentCommand{\sh}{}{$\sharp$}

% Octave subscripts 
\NewDocumentCommand{\octave}{ }{\textsubscript}

% Music figures
\RequirePackage{amsmath}
\NewDocumentCommand{\musfig}{ m m }{%
  $\genfrac{}{}{0pt}{1}{\text{#1}}{\text{#2}}$%
} 

% Meter signatures
\RequirePackage[rm]{harmony}
\NewDocumentCommand{\meter}{ m m }{\Takt{#1}{#2}}

\endinput
