\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{semantic-markup}[2020/01/29 Macros for TEI-like semantic markup] % Copyright 2020 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 % 2020-01-29 - \musfig uses stackengine now instead of amsmath % 2018-09-07 - ! and ? removed from autopunct for csquotes % 2018-05-21 - Use fontspec's definition of `\strong` if it is loaded % - Use musicography's definition of `\fl`, `\sh`, `\na` commands if % it is loaded % - `\wtitle` and `\ptitle` shorthands added % - Customizable commands added for endnotes option % % 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 % NB: fontspec defines its own \strong command, so only define this if fontspec % not loaded \@ifpackageloaded{fontspec}{}{% \NewDocumentCommand{\strong}{} {\textbf} } \NewDocumentCommand{\quoted}{} {\textquote} \NewDocumentCommand{\soCalled}{} {\textquote} \NewDocumentCommand{\code}{} {\texttt} \NewDocumentCommand{\term}{} {\emph} \NewDocumentCommand{\mentioned}{} {\emph} \NewDocumentCommand{\foreign}{} {\emph} \NewDocumentCommand{\worktitle}{} {\emph} \NewDocumentCommand{\parttitle}{} {\textquote} % Shorter versions of these frequently used commands \NewDocumentCommand{\wtitle}{}{\worktitle} \NewDocumentCommand{\ptitle}{}{\parttitle} % 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{FIX} }{% \strong{\add{#1}}% } % Indicate citation to be filled in later % Optional argument for indicating the source \NewDocumentCommand{\citXXX}{ o }{% \footnote{\strong{\add{Citation needed\IfValueTF{#1}{: #1}{}}}}% } %******************* % Footnote as environment \RequirePackage{environ} \NewEnviron{Footnote}{\footnote{\BODY}}[] %****************** % Endnotes, if desired \ifendnotes \RequirePackage{endnotes} % Customize these commands with \renewcommand \NewDocumentCommand{\DoBeforeEndnotes}{}{\clearpage} \NewDocumentCommand{\EndnoteFont}{}{} % Optionally remove this (\renewcommand{\MakeEndnotes}{}) % to avoid conflicts with endnotes or other packages \NewDocumentCommand{\SetupEndnotes}{}{% \let\footnote=\endnote \AtEndDocument{\DoBeforeEndnotes{\EndnoteFont\theendnotes}}% } \AtBeginDocument{% \SetupEndnotes{}% % Footnote environment adjusted to fix expansion problem \RenewEnviron{Footnote}{\expandafter\footnote\expandafter{\BODY}}[]% }% \fi %****************** %**************************************** % MUSIC SYMBOLS % Accidentals using LaTeX symbols % Use better definitions from musicography if it was loaded first \@ifpackageloaded{musicography}{}{% \NewDocumentCommand{\fl}{}{$\flat$} \NewDocumentCommand{\na}{}{$\natural$} \NewDocumentCommand{\sh}{}{$\sharp$} } % Octave subscripts \NewDocumentCommand{\octave}{ }{\textsubscript} % Music figures \RequirePackage{stackengine} \setstackgap{S}{2pt} \NewDocumentCommand{\musfig}{ m m }{% \Shortstack{#1 #2}% } % Meter signatures \NewDocumentCommand{\meter}{}{\musfig} \endinput