summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/metrix
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-02-24 23:13:45 +0000
committerKarl Berry <karl@freefriends.org>2015-02-24 23:13:45 +0000
commit6c6e6523204ddac9c3f95fd28be32225cb2c6d83 (patch)
treee5fc7288762ccaf31f3545e9d743d36ec3a61d2e /Master/texmf-dist/tex/latex/metrix
parent25dd544fb7b08b7c4a371086ab9611c1a668fc92 (diff)
metrix (24feb15)
git-svn-id: svn://tug.org/texlive/trunk@36376 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/metrix')
-rw-r--r--Master/texmf-dist/tex/latex/metrix/metrix.sty76
1 files changed, 63 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/metrix/metrix.sty b/Master/texmf-dist/tex/latex/metrix/metrix.sty
index 20d4acccabc..1fdb2e002cd 100644
--- a/Master/texmf-dist/tex/latex/metrix/metrix.sty
+++ b/Master/texmf-dist/tex/latex/metrix/metrix.sty
@@ -20,7 +20,7 @@
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
-%% File: metrix.dtx Copyright (C) 2013 Tobias Weh
+%% File: metrix.dtx Copyright (C) 2015 Tobias Weh
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,8 +44,8 @@
}
\def\metrixFileName{metrix}
\def\metrixFileDescription{Typset prosody/metric symbols.}
-\def\metrixFileDate{2013/08/12}
-\def\metrixFileVersion{1.0}
+\def\metrixFileDate{2015/02/23}
+\def\metrixFileVersion{1.1}
\ProvidesExplPackage
{\metrixFileName}{\metrixFileDate}{\metrixFileVersion}{\metrixFileDescription}
\RequirePackage{xparse}
@@ -113,6 +113,7 @@
\tl_new:N \l__metrix_words_tl
\seq_new:N \l__metrix_syllables_seq
\seq_new:N \l__metrix_symbols_seq
+\seq_new:N \l__metrix_short_breaks_seq
\prop_new:N \l__metrix_highlights_prop
\seq_new:N \l__metrix_highlight_seq
\seq_new:N \l__metrix_highlight_pos_seq
@@ -133,6 +134,16 @@
\seq_set_split:NnV \l__metrix_syllables_seq { - } \l__metrix_words_tl
\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_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_remove_all:Nn \l__metrix_symbols_seq { ' }
+}
+ \int_zero:N \l__metrix_process_int
\seq_map_inline:Nn \l__metrix_syllables_seq
{
\tl_if_eq:nnT { ##1 } { \q__metrix_space_marker }
@@ -170,6 +181,25 @@
}
}
}
+ \seq_if_empty:NF \l__metrix_short_breaks_seq {
+ \seq_map_inline:Nn \l__metrix_short_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] {
+ \node [every~metrix~symbol~node] at
+ ($(l__metrix_symbol_node_\int_use:N \l_tmpa_int.east)!
+ 0.5!(l__metrix_symbol_node_##1.west)$)
+ { \__metrix_short_break: };
+ }
+ }
+ }
+ }
}
{
\__metrix_error_msg:n
@@ -196,12 +226,24 @@
}
\str_case:nnn { ##1 }
{
- { | }
+ { ' }
+ {
+ \__metrix_break_gap:
+ \__metrix_align_symbol:n { \__metrix_l_bigmark: }
+ \__metrix_break_gap:
+ }
+ { | }
{
\__metrix_break_gap:
\__metrix_align_symbol:n { \__metrix_l_bigmark: }
\__metrix_break_gap:
}
+ { '' }
+ {
+ \__metrix_break_gap:
+ \__metrix_align_symbol:n { \__metrix_ll_bigmark: }
+ \__metrix_break_gap:
+ }
{ || }
{
\__metrix_break_gap:
@@ -218,23 +260,27 @@
{
\group_begin:
\hbox_set:Nn \l__metrix_syllable_box { #1 }
- \dim_compare:nTF { \box_wd:N \l__metrix_syllable_box < \g__metrix_variable_shortsyllablelimit_tl }
+ \dim_compare:nTF
+ { \box_wd:N \l__metrix_syllable_box < \g__metrix_variable_shortsyllablelimit_tl }
{ \bool_set_true:N \l__metrix_short_syllable_bool }
{ \bool_set_false:N \l__metrix_short_syllable_bool }
\cs_set:Npx \__metrix_current_highlight: {
\prop_get:NV \l__metrix_highlights_prop \l__metrix_process_int
}
\expandafter\tikzset\expandafter{\__metrix_current_highlight:}
+ \hbox_set:Nn \l_tmpa_box { \__metrix_print_symbol: }
\begin{tikzpicture}
[
+ remember~picture,
baseline=(l__metrix_syllable_node.base),
]
\node [every~metrix~syllable~node] (l__metrix_syllable_node) {#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)$)
- { \__metrix_print_symbol: };
+ { \box_use:N \l_tmpa_box };
\end{pgfinterruptboundingbox}
\end{tikzpicture}
\group_end:
@@ -450,7 +496,6 @@
\draw ($(0,-0.2)+(-0.5\pgflinewidth,-\pgflinewidth)-(0,\usemetrixvar{gap})$) --
($(0.4,-0.2)+(0.5\pgflinewidth,-\pgflinewidth)
+(0,-\usemetrixvar{gap})$);
- \fill [red] circle (0.2pt);
\end{tikzpicture}
}
\cs_new:Npn \__metrix_n_mark:
@@ -490,24 +535,29 @@
\cs_new:Npn \__metrix_l_break:
{
\begin{tikzpicture}[every~metrix~symbol,baseline=0.05em]
- \draw [shorten~<=-0.2em] (0,\usemetrixvar{symbolshift})
- -- (0,0) -- (0,0.8em) -- (0,\usemetrixvar{symbolshift});
+ \draw (0,\usemetrixvar{symbolshift}+0.325em)
+ -- (0,-0.05em) -- (0,0.8em) -- (0,\usemetrixvar{symbolshift});
\end{tikzpicture}
}
\cs_new:Npn \__metrix_ll_break:
{
\begin{tikzpicture}[every~metrix~symbol,baseline=0.05em]
- \draw [shorten~<=-0.2em] (0,\usemetrixvar{symbolshift})
- -- (0,0) -- (0,0.8em) -- (0,\usemetrixvar{symbolshift});
+ \draw (0,\usemetrixvar{symbolshift}+0.325em)
+ -- (0,-0.05em) -- (0,0.8em) -- (0,\usemetrixvar{symbolshift});
\draw
[
shift={($(\pgflinewidth,0)+(1.5*\usemetrixvar{gap},0)$)},
- shorten~<=-0.2em,
]
- (0,\usemetrixvar{symbolshift}) -- (0,0) -- (0,0.8em)
+ (0,\usemetrixvar{symbolshift}+0.325em) -- (0,-0.05em) -- (0,0.8em)
-- (0,\usemetrixvar{symbolshift});
\end{tikzpicture}
}
+\cs_new:Npn \__metrix_short_break:
+ {
+ \begin{tikzpicture}[every~metrix~symbol]
+ \draw (0,0.3) -- (0,-0.3);
+ \end{tikzpicture}
+ }
\NewDocumentCommand{ \setmetrixvar }{ m m }
{
\tl_if_exist:cTF { g__metrix_variable_#1_tl } {