%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                        %
%      This file is part of the 'lilyglyphs' LaTeX package.              %
%                                ==========                              %
%                                                                        %
%              https://github.com/openlilylib/lilyglyphs                 %
%               http://www.openlilylib.org/lilyglyphs                    %
%                                                                        %
%  Copyright 2012-2020 Urs Liska and others, ul@openlilylib.org          %
%                                                                        %
%  'lilyglyphs' is free software: you can redistribute it and/or modify  %
%  it under the terms of the LaTeX Project Public License, either        %
%  version 1.3 of this license or (at your option) any later version.    %
%  You may find the latest version of this license at                    %
%               http://www.latex-project.org/lppl.txt                    %
%  more information on                                                   %
%               http://latex-project.org/lppl/                           %
%  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 Urs Liska (see above).         %
%                                                                        %
%  This work consists of the files listed in the file 'manifest.txt'     %
%  which can be found in the 'license' directory.                        %
%                                                                        %
%  This program is distributed in the hope that it will be useful,       %
%  but WITHOUT ANY WARRANTY; without even the implied warranty of        %
%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                  %
%                                                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\NeedsTeXFormat{LaTeX2e} 
\ProvidesPackage{lilyglyphsStyle}

\RequirePackage{fontspec}

% Of course we need lilyglyphs itself :-)
\RequirePackage{lilyglyphs}

% Improve typography and paragraph layout
\RequirePackage{microtype}

% Suppress superfluous ligature
\RequirePackage[english]{selnolig}

% Typeset XeLaTeX and LuaTeX logos regardless of engine used
\RequirePackage{hologo}  

\frenchspacing

% Enhanced table commands
\RequirePackage{booktabs}
\RequirePackage{longtable}

% Tightly spaced lists
\RequirePackage{mdwlist}

% Typeset listings
% (Special styles defined in OLLstyles.sty)
\RequirePackage{listings}
% Format listings with typewriter font by default
\lstset{
    frame=single,
    basicstyle=\fontspec{Liberation Mono}\footnotesize}

% Common table format for reference tables
\newenvironment{reftable}[2]
	{%
			\begin{center}
				\begin{longtable}[H]{lll}
				\caption{#1}\\
				\label{tab:#2}\\
					\toprule
					&\\
	}
	{%
					&\\
					\bottomrule
				\end{longtable}
			\end{center}
	}

% Insert a picture with a glyph list from LilyPond's glyph list
% #1 is the caption of the figure
% #2 the label name
% #5 the file name of the image
\newcommand{\glyphlist}[3]{%
	\begin{figure}[htbp]
		\centering
		\includegraphics[width=.75\textwidth]{glyphlist/resources/#3}
		\caption{#1}
		\label{fig:#2}
	\end{figure}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Character styles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Format LaTeX or LilyPond commands like \env with a prepended backslash
\newcommand*{\cmd}[1]{\env{\textbackslash #1}}

% Format directory names
\newcommand*{\dir}[1]{\texttt{#1}}

% Format environment names
\newcommand*{\env}[1]{\texttt{#1}}

% Format package names
\newcommand*{\package}[1]{\texttt{#1}}

% Add a TODO item that is easily spotted
\newcommand{\todo}[1]{{\color{red}{\textbf{\textsf{[TODO: #1]}}}}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other commands
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Reference an Issue on openLilyLib's Github account
\newcommand*{\ghIssue}[1]{\href{https://github.com/openlilylib/lilyglyphs/issues/#1}{(GitHub-Issue \##1)}}

% print "LilyPond" (may be formatted later)
\newcommand*{\lilypond}{\texttt{LilyPond}}

\newcommand*{\emmentaler}{\textsc{Emmentaler}}

% print "openLilyLib" (may be formatted later)
\newcommand*{\openlilylib}{\texttt{openLilyLib}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add fancyref for smart cross-references 
\RequirePackage{fancyref}

% categories for subsection and subsubsection:

% subsection - subsec:

\newcommand*{\fancyrefsubseclabelprefix}{subsec}

\fancyrefaddcaptions{english}{%
  \providecommand*{\frefsubsecname}{subsection}%
  \providecommand*{\Frefsubsecname}{Subsection}%
}

\frefformat{plain}{\fancyrefsubseclabelprefix}{\frefsubsecname\fancyrefdefaultspacing#1}
\Frefformat{plain}{\fancyrefsubseclabelprefix}{\Frefsubsecname\fancyrefdefaultspacing#1}

\frefformat{vario}{\fancyrefsubseclabelprefix}{%
  \frefsubsecname\fancyrefdefaultspacing#1#3%
}
\Frefformat{vario}{\fancyrefsubseclabelprefix}{%
  \Frefsubsecname\fancyrefdefaultspacing#1#3%
}

% subsubsection - subsubsec:

\newcommand*{\fancyrefsubsubseclabelprefix}{subsubsec}

\fancyrefaddcaptions{english}{%
  \providecommand*{\frefsubsubsecname}{subsection}% the same as for subsection
  \providecommand*{\Frefsubsubsecname}{Subsection}%
}

\frefformat{plain}{\fancyrefsubsubseclabelprefix}{\frefsubsubsecname\fancyrefdefaultspacing#1}
\Frefformat{plain}{\fancyrefsubsubseclabelprefix}{\Frefsubsubsecname\fancyrefdefaultspacing#1}

\frefformat{vario}{\fancyrefsubsubseclabelprefix}{%
  \frefsubsubsecname\fancyrefdefaultspacing#1#3%
}
\Frefformat{vario}{\fancyrefsubsubseclabelprefix}{%
  \Frefsubsubsecname\fancyrefdefaultspacing#1#3%
}

% End fancyref
%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Options for use of hyperlinks
% (make sure this is included last)
\RequirePackage[%
	colorlinks,
	urlcolor=blue,
	bookmarks=true,
	bookmarksnumbered=true]{hyperref}
