summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/metrix
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-03-21 20:46:28 +0000
committerKarl Berry <karl@freefriends.org>2016-03-21 20:46:28 +0000
commit5623abb74e370058ba885a4863c704d085cc7adf (patch)
tree3ef1fe8203e7f52bc60190173223eaae33535911 /Master/texmf-dist/tex/latex/metrix
parent0005b42bbfad303131a7ac98274fc34e3e3b804c (diff)
metrix (21mar16)
git-svn-id: svn://tug.org/texlive/trunk@40099 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/metrix')
-rw-r--r--Master/texmf-dist/tex/latex/metrix/metrix.sty133
1 files changed, 107 insertions, 26 deletions
diff --git a/Master/texmf-dist/tex/latex/metrix/metrix.sty b/Master/texmf-dist/tex/latex/metrix/metrix.sty
index 593e6da8982..b6923b854cf 100644
--- a/Master/texmf-dist/tex/latex/metrix/metrix.sty
+++ b/Master/texmf-dist/tex/latex/metrix/metrix.sty
@@ -44,8 +44,8 @@
}
\def\metrixFileName{metrix}
\def\metrixFileDescription{Typset prosody/metric symbols.}
-\def\metrixFileDate{2016/01/21}
-\def\metrixFileVersion{1.2a}
+\def\metrixFileDate{2016/03/21}
+\def\metrixFileVersion{1.3}
\ProvidesExplPackage
{\metrixFileName}{\metrixFileDate}{\metrixFileVersion}{\metrixFileDescription}
\RequirePackage{xparse}
@@ -106,6 +106,8 @@
\tl_set:Nn \g__metrix_variable_highlightcolor_tl { red }
\tl_new:N \g__metrix_variable_fillcolor_tl
\tl_set:Nn \g__metrix_variable_fillcolor_tl { yellow }
+\tl_new:N \g__metrix_variable_arrow_tl
+\tl_set:Nn \g__metrix_variable_arrow_tl { $\downarrow$ }
\tl_new:N \g__metrix_variable_breakgap_tl
\tl_set:Nn \g__metrix_variable_breakgap_tl { 0.6em }
\tl_new:N \g__metrix_variable_emptywidth_tl
@@ -114,6 +116,7 @@
\seq_new:N \l__metrix_syllables_seq
\seq_new:N \l__metrix_symbols_seq
\seq_new:N \l__metrix_short_breaks_seq
+\seq_new:N \l__metrix_foot_breaks_seq
\prop_new:N \l__metrix_highlights_prop
\seq_new:N \l__metrix_highlight_seq
\seq_new:N \l__metrix_highlight_pos_seq
@@ -135,14 +138,20 @@
\seq_set_split:Nnx \l__metrix_symbols_seq { ~ } { \tl_trim_spaces:n { #1 } }
\int_zero:N \l__metrix_process_int
\seq_clear:N \l__metrix_short_breaks_seq
+ \seq_clear:N \l__metrix_foot_breaks_seq
\seq_map_inline:Nn \l__metrix_symbols_seq {
\int_incr:N \l__metrix_process_int
\tl_if_eq:nnT { ##1 } { ' } {
- \seq_put_right:Nx \l__metrix_short_breaks_seq { \int_use:N \l__metrix_process_int }
- \int_decr:N \l__metrix_process_int
+ \seq_put_right:Nx \l__metrix_short_breaks_seq { \int_use:N \l__metrix_process_int }
+ \int_decr:N \l__metrix_process_int
+ }
+ \tl_if_eq:nnT { ##1 } { , } {
+ \seq_put_right:Nx \l__metrix_foot_breaks_seq { \int_use:N \l__metrix_process_int }
+ \int_decr:N \l__metrix_process_int
+ }
}
+ \seq_remove_all:Nn \l__metrix_symbols_seq { , }
\seq_remove_all:Nn \l__metrix_symbols_seq { ' }
-}
\int_zero:N \l__metrix_process_int
\seq_map_inline:Nn \l__metrix_syllables_seq
{
@@ -200,6 +209,28 @@
}
}
}
+ \seq_if_empty:NF \l__metrix_foot_breaks_seq {
+ \seq_map_inline:Nn \l__metrix_foot_breaks_seq {
+ \int_set:Nn \l_tmpa_int { ##1 - 1 }
+ \bool_if:nF {
+ \int_compare_p:n
+ { 0 = \l_tmpa_int }
+ ||
+ \int_compare_p:n
+ { \seq_count:N \l__metrix_symbols_seq = \l_tmpa_int }
+ } {
+ \tikz [remember~picture, overlay] {
+ \coordinate (l__metrix_tmp_coord) at
+ ($(l__metrix_syllable_node_\int_use:N \l_tmpa_int.east)!
+ 0.5!(l__metrix_syllable_node_##1.west)$);
+ \node [every~metrix~symbol~node] at
+ ($(l__metrix_symbol_node_\int_use:N \l_tmpa_int.east)!
+ (l__metrix_tmp_coord)!(l__metrix_symbol_node_##1.west)$)
+ { \__metrix_foot_break: };
+ }
+ }
+ }
+ }
}
{
\__metrix_error_msg:n
@@ -226,6 +257,12 @@
}
\str_case:nnF { ##1 }
{
+ { , }
+ {
+ \__metrix_break_gap:
+ \__metrix_align_symbol:n { \__metrix_l_bigmark: }
+ \__metrix_break_gap:
+ }
{ ' }
{
\__metrix_break_gap:
@@ -272,14 +309,21 @@
\begin{tikzpicture}
[
remember~picture,
- baseline=(l__metrix_syllable_node.base),
+ baseline=(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base),
]
- \node [every~metrix~syllable~node] (l__metrix_syllable_node) {#1};
+ \node [every~metrix~syllable~node]
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int)
+ { #1 };
\begin{pgfinterruptboundingbox}
\node [every~metrix~symbol~node]
(l__metrix_symbol_node_\int_use:N \l__metrix_process_int)
- at ($(l__metrix_syllable_node.base)+(0,\usemetrixvar{symbolshift})
- +(\tl_use:N \l__metrix_internal_itcorrection_tl,0)$)
+ at ($
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base)
+ +
+ (0,\usemetrixvar{symbolshift})
+ +
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ $)
{ \box_use:N \l_tmpa_box };
\end{pgfinterruptboundingbox}
\end{tikzpicture}
@@ -304,7 +348,7 @@
{
\PackageError{ \metrixFileName } { #1 }
{
- Please take a look at the manual or send an email.
+ Please~take~a~look~at~the~manual~or~send~an~email.
}
}
\cs_new_protected:Npn \__metrix_warning_msg:n #1
@@ -558,6 +602,7 @@
\draw (0,0.3) -- (0,-0.3);
\end{tikzpicture}
}
+\cs_set_eq:NN \__metrix_foot_break: \__metrix_short_break:
\NewDocumentCommand{ \setmetrixvar }{ m m }
{
\tl_if_exist:cTF { g__metrix_variable_#1_tl } {
@@ -591,29 +636,34 @@
}
\NewDocumentCommand { \lng } { D(){0,0} O{0pt} m O{0pt} }
{
- \begin{tikzpicture}[baseline=(l__metrix_syllable_node.base),every~metrix~accent]
- \node [every~metrix~syllable~node] (l__metrix_syllable_node) {#3};
+ \begin{tikzpicture}[
+ baseline = (l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base),
+ every~metrix~accent
+ ]
+ \node [every~metrix~syllable~node]
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int)
+ { #3 };
\begin{pgfinterruptboundingbox}
\draw [shorten~< = -#2, shorten~> = -#4]
- ($(l__metrix_syllable_node.north)
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.north)
- (\usemetrixvar{lngminlength}/2,0)
+(\usemetrixvar{accentxshift},\usemetrixvar{lngshift})
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ (#1)$)
--
- ($(l__metrix_syllable_node.north)
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.north)
+ (\usemetrixvar{lngminlength}/2,0)
+(\usemetrixvar{accentxshift},\usemetrixvar{lngshift})
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ (#1)$)
;
\draw [shorten~< = -#2, shorten~> = -#4]
- ($(l__metrix_syllable_node.north~west)
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.north~west)
+(\usemetrixvar{lngshortening}+\usemetrixvar{accentxshift},\usemetrixvar{lngshift})
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ (#1)$)
--
- ($(l__metrix_syllable_node.north~east)
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.north~east)
+(-\usemetrixvar{lngshortening}+\usemetrixvar{accentxshift},\usemetrixvar{lngshift})
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ (#1)$)
@@ -623,10 +673,16 @@
}
\NewDocumentCommand { \brv } { D(){0,0} m }
{
- \begin{tikzpicture}[baseline=(l__metrix_syllable_node.base),every~metrix~accent]
- \node [every~metrix~syllable~node] (l__metrix_syllable_node) {#2};
+ \begin{tikzpicture}[
+ baseline = (l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base),
+ every~metrix~accent
+ ]
+ \node [every~metrix~syllable~node]
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int)
+ { #2 };
\begin{pgfinterruptboundingbox}
- \draw ($(l__metrix_syllable_node.north)+(-0.15,0)
+ \draw ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.north)
+ + (-0.15,0)
+ (\usemetrixvar{accentxshift},\usemetrixvar{brvshift})
+ (\tl_use:N \l__metrix_internal_itcorrection_tl,0)
+ (#1)$)
@@ -636,10 +692,15 @@
}
\NewDocumentCommand { \acct } { D(){0,0} m }
{
- \begin{tikzpicture}[baseline=(l__metrix_syllable_node.base),every~metrix~accent]
- \node [every~metrix~syllable~node] (l__metrix_syllable_node) {#2};
+ \begin{tikzpicture}[
+ baseline = (l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base),
+ every~metrix~accent
+ ]
+ \node [every~metrix~syllable~node]
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int)
+ { #2 };
\begin{pgfinterruptboundingbox}
- \fill ($(l__metrix_syllable_node.south)
+ \fill ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.south)
+ (0,\usemetrixvar{dotshift})
+ (#1)$)
circle [radius=1.25\pgflinewidth];
@@ -648,12 +709,18 @@
}
\NewDocumentCommand { \bow } { O{0pt} m O{0pt} }
{
- \begin{tikzpicture}[baseline=(l__metrix_syllable_node.base),every~metrix~bow]
- \node [every~metrix~syllable~node] (l__metrix_syllable_node) {#2};
+ \begin{tikzpicture}[
+ baseline = (l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base),
+ every~metrix~bow
+ ]
+ \node [every~metrix~syllable~node]
+ (l__metrix_syllable_node_\int_use:N \l__metrix_process_int)
+ { #2 };
\draw [shorten~< = #1, shorten~> = #3]
- ($(l__metrix_syllable_node.base~west)+
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base~west)+
(\usemetrixvar{bowshortening},\usemetrixvar{bowshift})$)
- to [out=-45, in=225,looseness=\usemetrixvar{bowlooseness}] ($(l__metrix_syllable_node.base~east)+
+ to [out=-45, in=225,looseness=\usemetrixvar{bowlooseness}]
+ ($(l__metrix_syllable_node_\int_use:N \l__metrix_process_int.base~east)+
(-\usemetrixvar{bowshortening},\usemetrixvar{bowshift})$);
\end{tikzpicture}
}
@@ -736,6 +803,20 @@
},
},
superscript/.value required,
+ add arrow/.style={
+ every metrix symbol node/.append style={
+ label=90:\usemetrixvar{arrow},
+ },
+ },
+ add text/.style={
+ every metrix symbol node/.append style={
+ label={[every metrix added text]#1},
+ },
+ },
+ every metrix added text/.style = {
+ font = \scriptsize\itshape,
+ },
+ add text/.value required,
}
\ExplSyntaxOn
\NewDocumentEnvironment{symbolline} { }