summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/musixtex/underbracket.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/musixtex/underbracket.sty')
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/underbracket.sty190
1 files changed, 190 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/musixtex/underbracket.sty b/Master/texmf-dist/tex/generic/musixtex/underbracket.sty
new file mode 100644
index 00000000000..994aee60ba1
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/underbracket.sty
@@ -0,0 +1,190 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% LaTeX package underbracket
+%
+% draws brackets to underline text
+% (especially, but not exclusively, syllables of song text)
+%
+% v1.2 by Bernd Jantzen
+% For e-mail contact please use "ctan" before the "@"-sign
+% and "bernd-jantzen.de" after it to form my address
+% (not given in full clear text here to prevent spam).
+%
+% This package draws brackets to underline text (especially,
+% but not exclusively, syllables of song text).
+% It may be combined with musixtex/musixlyr, within the argument of
+% the \setlyrics command or outside the music score.
+% It provides several macros to define brackets which may e.g. start
+% and end centered below syllables.
+% Three length variables are provided to allow a fine adjustment
+% of the bracket parameters.
+%
+% This material is subject to the LaTeX Project Public License.
+% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+% for the details of that license.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Commands:
+%
+% \underbracket{TEXT}
+% draws a bracket underlining TEXT
+% the bracket starts below the left end of TEXT
+% and stops below the right end of TEXT
+%
+% \Underbracket{TEXT}
+% like \underbracket, but reserves no vertical space below the text
+%
+% \cunderbracket{LEFT}{TEXT}{RIGHT}
+% draws a bracket underlining LEFTTEXTRIGHT
+% the bracket starts centered below LEFT and stops centered below RIGHT
+%
+% \cUnderbracket{LEFT}{TEXT}{RIGHT}
+% like cunderbracket, but reserves no vertical space below the text
+%
+%
+% The commands \[c]underbracket do well in normal text which is aligned
+% according to the baseline. The vertical space reserved below the text
+% guarantees the distance to the next line.
+% The commands \[c]Underbracket do well within the \setlyrics command of
+% musixlyr where the text is vertically centered between the staves. Vertical
+% space reserved below the text would shift the whole text upwards here.
+%
+%
+% Adjustable length parameters:
+% (change e.g. with \setlength{\underbracketheight}{4pt})
+%
+% \underbracketwidth (default 0.3pt):
+% linewidth of the bracket
+%
+% \underbracketheight (default 3pt):
+% height of the bracket (length of the vertical lines)
+%
+% \underbracketsep (default 2pt):
+% vertical distance between the lowest part of the text
+% and the upper end of the bracket;
+% also minimal vertical distance below the bracket
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesPackage{underbracket}[2004/03/24 v1.2 LaTeX package underbracket]
+\NeedsTeXFormat{LaTeX2e}
+
+% declare length variables
+\newlength{\underbracketwidth}
+\newlength{\underbracketheight}
+\newlength{\underbracketsep}
+\newlength{\underbracketlength}
+\newlength{\underbracketdist}
+
+% need calc pages for adding lengts
+\RequirePackage{calc}
+
+% \underbracket{TEXT}
+% draws a bracket underlining TEXT
+% the bracket starts below the left end of TEXT
+% and stops below the right end of TEXT
+%
+\newcommand{\underbracket}[1]{%
+ \settodepth{\underbracketdist}{#1}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \rule[-\underbracketdist-\underbracketsep]{0pt}{\underbracketsep}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \settowidth{\underbracketlength}{#1}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}%
+ \mbox{#1}%
+ \makebox[0pt][r]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ }%
+}
+
+% \Underbracket{TEXT}
+% like \underbracket, but reserves no vertical space below the text
+%
+\newcommand{\Underbracket}[1]{%
+ \settodepth{\underbracketdist}{#1}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ \settowidth{\underbracketlength}{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][r]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ }%
+}
+
+% \cunderbracket{LEFT}{TEXT}{RIGHT}
+% draws a bracket underlining LEFTTEXTRIGHT
+% the bracket starts centered below LEFT and stops centered below RIGHT
+%
+\newcommand{\cunderbracket}[3]{%
+ \settodepth{\underbracketdist}{#1#2#3}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \rule[-\underbracketdist-\underbracketsep]{0pt}{\underbracketsep}%
+ \settowidth{\underbracketlength}{#1}%
+ \makebox[0pt][l]{%
+ \hspace*{0.5\underbracketlength}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}}%
+ \mbox{#1}%
+ \settowidth{\underbracketlength}{#2}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}%
+ \mbox{#2}%
+ \settowidth{\underbracketlength}{#3}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ \mbox{#3}%
+ }%
+}
+
+% \cUnderbracket{LEFT}{TEXT}{RIGHT}
+% like cunderbracket, but reserves no vertical space below the text
+%
+\newcommand{\cUnderbracket}[3]{%
+ \settodepth{\underbracketdist}{#1#2#3}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \settowidth{\underbracketlength}{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \hspace*{0.5\underbracketlength}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#1}%
+ \settowidth{\underbracketlength}{#2}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#2}%
+ \settowidth{\underbracketlength}{#3}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}}%
+ \mbox{#3}%
+ }%
+}
+
+% adjustable length parameters
+%
+% linewidth of the bracket
+\setlength{\underbracketwidth}{0.3pt}
+%
+% height of the bracket (length of the vertical lines)
+\setlength{\underbracketheight}{3pt}
+%
+% vertical distance between the lowest part of the text
+% and the upper end of the bracket;
+% also minimal vertical distance below the bracket
+\setlength{\underbracketsep}{2pt}
+