From 37802572d3b3b4ef8329d44629fb01a4ee98d9b3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 5 May 2019 21:15:48 +0000 Subject: metrix (5may19) git-svn-id: svn://tug.org/texlive/trunk@51012 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/metrix/metrix.pdf | Bin 517396 -> 637957 bytes Master/texmf-dist/source/latex/metrix/metrix.dtx | 399 +++++++++++++++++------ Master/texmf-dist/source/latex/metrix/metrix.ins | 2 +- Master/texmf-dist/tex/latex/metrix/metrix.sty | 131 ++++++-- 4 files changed, 397 insertions(+), 135 deletions(-) diff --git a/Master/texmf-dist/doc/latex/metrix/metrix.pdf b/Master/texmf-dist/doc/latex/metrix/metrix.pdf index f549456846a..ef37f8ec489 100644 Binary files a/Master/texmf-dist/doc/latex/metrix/metrix.pdf and b/Master/texmf-dist/doc/latex/metrix/metrix.pdf differ diff --git a/Master/texmf-dist/source/latex/metrix/metrix.dtx b/Master/texmf-dist/source/latex/metrix/metrix.dtx index 09ad4f820f2..f944927dc4d 100644 --- a/Master/texmf-dist/source/latex/metrix/metrix.dtx +++ b/Master/texmf-dist/source/latex/metrix/metrix.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: metrix.dtx Copyright (C) 2013-2015 Tobias Weh +%% File: metrix.dtx Copyright (C) 2013-2016 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 @@ -27,8 +27,8 @@ % } \def\metrixFileName{metrix} \def\metrixFileDescription{Typset prosody/metric symbols.} -\def\metrixFileDate{2016/03/21} -\def\metrixFileVersion{1.3} +\def\metrixFileDate{2019/05/05} +\def\metrixFileVersion{1.4} % %<*driver> \documentclass[full,english]{l3doc} @@ -71,6 +71,14 @@ \usepackage[scale=0.875]{tgheros} \usepackage{ascii} +\usepackage{upquote} + % add \@noligs to the redefinitions made by doc.sty to make upquote work + \makeatother + \patchcmd{\verb}{\ttfamily}{\ttfamily\@noligs}{}{} + \patchcmd{\verbatim}{\frenchspacing}{\frenchspacing\@noligs}{}{} + \patchcmd{\macrocode}{\frenchspacing}{\frenchspacing\@noligs}{}{} + \makeatother + \edef\pluschar{+} \AtBeginDocument{ @@ -182,33 +190,54 @@ % or a combination of characters. The list with all available abbreviations can % be found in table~\ref{tab:symbols}. Please keep in mind that \metrix/ uses spaces to % separate the abbreviations an something like +_'x+ will cause an error, the -% correct input is +_ ' x+. -% \begin{table}[htbp] -% \caption{Symbol abbreviations}\label{tab:symbols} -% \centering -% \begin{tabu} {l>{\itshape}lcl} -% \toprule -% \rowfont{\bfseries\sffamily} \multicolumn{2}{l}{abbreviation} & symbol & explantion \\ -% \midrule -% +e+ && \metricsymbols{e} & empty (=\,invisible) symbol \\ -% +u+ && \metricsymbols{u} & elementum breve \\ -% +_+ & under score & \metricsymbols{_} & elementum longum \\ -% +uu+ && \metricsymbols{uu} & double breve \\ -% +uu_+ && \metricsymbols{uu_} & elementum biceps \\ -% +_uu+ && \metricsymbols{_uu} & elementum biceps \\ -% +u_uu+ && \metricsymbols{u_uu} & elementum anceps \\ -% +x+ && \metricsymbols{x} & elementum anceps \\ -% +n+ && \metricsymbols{n} & elementum indifferens \\ -% +u_+ && \metricsymbols{u_} & elementum indifferens \\ -% +oo+ & two lowercase o's & \metricsymbols{oo} & aeolic base \\ -% +|+ & pipe & \metricsymbols{|} & break (see \ref{sec:breaks}) \\ -% +||+ & two pipes & \metricsymbols{||} & verse break (see \ref{sec:breaks}) \\ -% +'+ & apostrophe (shift\,\pluschar\,\#) & \metricsymbols{'} & -% shorter break (see \ref{sec:breaks}) \\ -% +,+ & comma & \metricsymbols{,} & shorter break (see \ref{sec:breaks}) \\ -% \bottomrule -% \end{tabu} -% \end{table} +% correct input is \verb*|_ ' x| (where \verb*| | indicates a space/blank). +% \subsubsection*{Accents above symbols (ictus)} +% If you want to add an additional accent above a symbol you may precede the symbol with +% an acute +´+ or grave +`+. At the moment this only works with breve (+´u+ or +`u+) +% and longum (+´_+ or +`_+). +% \begin{longtabu}to \textwidth {l>{\itshape}lcXl} +% \caption{Symbol abbreviations\label{tab:symbols}}\\ +% \toprule +% \rowfont{\bfseries\sffamily} \multicolumn{2}{l}{abbreviation} & symbol & name/explantion & accent/ictus? \\ +% \midrule +% \endfirsthead +% \caption{Symbol abbreviations (cont.)}\\ +% \toprule +% \rowfont{\bfseries\sffamily} \multicolumn{2}{l}{abbreviation} & symbol & name/explantion & accent/ictus? \\ +% \midrule +% \endhead +% \multicolumn{5}{r}{\dots} +% \endfoot +% \bottomrule +% \endlastfoot +% +e+ && \metricsymbols{e} & empty (=\,invisible) symbol & \\ +% +u+ && \metricsymbols{u} & elementum breve & yes \\ +% +_+ & underscore & \metricsymbols{_} & elementum longum & yes \\ +% +uu+ && \metricsymbols{uu} & double breve & \\ +% +uu_+ && \metricsymbols{uu_} & elementum biceps & \\ +% +_uu+ && \metricsymbols{_uu} & elementum biceps & \\ +% +u_uu+ && \metricsymbols{u_uu} & elementum anceps & \\ +% +x+ && \metricsymbols{x} & elementum anceps & \\ +% +n+ && \metricsymbols{n} & elementum indifferens & \\ +% +u_+ && \metricsymbols{u_} & elementum indifferens & \\ +% +A+ && \metricsymbols{A} & * & \\ +% +v+ && \metricsymbols{v} & * & \\ +% +o+ && \metricsymbols{o} & * & \\ +% +oo+ && \metricsymbols{oo} & aeolic base & \\ +% +l+ && \metricsymbols{l} & * & \\ +% +ll+ && \metricsymbols{ll} & * & \\ +% +p+ && \metricsymbols{p} & primary stress & \\ +% +s+ && \metricsymbols{s} & secondary stress & \\ +% +|+ & pipe & \metricsymbols{|} & break (see \ref{sec:breaks}) & \\ +% +||+ & two pipes & \metricsymbols{||} & verse break (see \ref{sec:breaks}) & \\ +% +'+ & apostrophe (shift\,\pluschar\,\#) & \metricsymbols{'} & +% shorter break (see \ref{sec:breaks}) & \\ +% +,+ & comma & \metricsymbols{,} & shorter break (see \ref{sec:breaks}) & \\ +% \end{longtabu} +% \par +% {\vspace{-0.5\baselineskip}\itshape\footnotesize\noindent +% * I added these symbols as someone might needs them. If you use them please let me +% know what to add as name/explanation.\par} % \subsection{Stand alone metric symbols} % \begin{function}[EXP]{\metricsymbols} % \begin{syntax} @@ -337,7 +366,7 @@ % \metricsymbols[2={add arrow}]{u u_uu x _ | u _ n ||} % % This style adds an arrow above the metric symbol. To change the arrow symbol, edit -% the variable \verb+metrix+. +% the \metrix/ variable \verb+arrow+. % % \item \textbf{\texttt{add text}=}\meta{text}\\[2ex] % \metrics[3+8={add text=shout!}]{_ u u _ _ _ | _ _ u u _ ||} @@ -944,9 +973,9 @@ % +bowshift+ & +-0.15em+ & length to shift the bow below the base line \\ % +bowshortening+ & +0.15em+ & length to shrink the bow a little \\ % +bowlooseness+ & +0.75+ & value to influence the bending of the bow \\ -% +symbolcolor+ & +black+ & color of metric symbols \\ -% +accentcolor+ & +black+ & color of accents (\cs{lng} and \cs{brv}) \\ -% +bowcolor+ & +black+ & color of bows (\cs{bow}) \\ +% +symbolcolor+ & +.+ (curr. color) & color of metric symbols \\ +% +accentcolor+ & +.+ (curr. color) & color of accents (\cs{lng} and \cs{brv}) \\ +% +bowcolor+ & +.+ (curr. color) & color of bows (\cs{bow}) \\ % +highlightcolor+ & +red+ & color of highlighted symbols and syllabels % used in +colored highlight+ style \\ % +fillcolor+ & +yellow+ & color of filled symbol +node+s @@ -954,6 +983,8 @@ % +arrow+ & +\$+\cs{downarrow}+\$+ & arrow for highlighting \\ % +breakgap+ & +0.6em+ & gap before and after a (verse) break \\ % +emptywidth+ & +1em+ & gap replacing an empty symbol (abbreviation +e+) \\ +% +acute+ & +´+ & acute accent character/symbol \\ +% +grave+ & +\`{}+ & grave accent character/symbol \\ % \end{longtabu} % % \subsection{\TikZ/ styles}\label{sec:styles} @@ -1014,8 +1045,111 @@ \ExplSyntaxOn % \end{macrocode} % -% \subsection{Variables} -% All variables are internal. The user can change them via \cs{setmetrixvar} and use them +% \subsection{Constants and internal variables} +% These constants variables are for internal use only and can't be changed/accessed by the user. +% \subsubsection{Constants} +% \begin{variable}[internal]{\c_@@_acute_accent_tl} +% Constant holding an acute accent char. +% \begin{macrocode} +\tl_const:Nn \c_@@_acute_accent_tl { ´ } +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\c_@@_acute_accent_tl} +% Constant holding an grave accent char. +% \begin{macrocode} +\tl_const:Nn \c_@@_grave_accent_tl { ` } +% \end{macrocode} +% \end{variable} +% \subsubsection{Variables} +% \begin{variable}[internal]{\l_@@_words_tl} +% This list stores the words of the \cs{metrics} macro. +% \begin{macrocode} +\tl_new:N \l_@@_words_tl +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_syllables_seq} +% This list stores the words of the \cs{l_@@_words_tl} list. +% \begin{macrocode} +\seq_new:N \l_@@_syllables_seq +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_symbols_seq} +% This list stores the metric symbols of \cs{metrics} and \cs{metricsymbols}. +% \begin{macrocode} +\seq_new:N \l_@@_symbols_seq +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_short_breaks_seq,\l_@@_foot_breaks_seq} +% This list stores the short and foot breaks of \cs{metrics}. +% \begin{macrocode} +\seq_new:N \l_@@_short_breaks_seq +\seq_new:N \l_@@_foot_breaks_seq +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_highlights_prop} +% This list stores the higlighting styles of \cs{metrics} and \cs{metricsymbols}. +% \begin{macrocode} +\prop_new:N \l_@@_highlights_prop +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_highlight_seq,\l_@@_highlight_pos_seq} +% This lists are used to evaluate a higlight style. +% \begin{macrocode} +\seq_new:N \l_@@_highlight_seq +\seq_new:N \l_@@_highlight_pos_seq +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\q_@@_space_marker} +% This is the marker for spaces inside of the \cs{l_@@_words_tl} list. +% \begin{macrocode} +\quark_new:N \q_@@_space_marker +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_process_int} +% This process counter is used to combine the symbols and syllables. +% \begin{macrocode} +\int_new:N \l_@@_process_int +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_short_syllable_bool,\l_@@_syllable_box,\g_@@_variable_shortsyllablelimit_tl} +% This boolean can be used to store that a syllable is short, e.g. \emph{li} will be defined +% as short wheras \emph{man} is long. That will be used to shorten the |_| symbol. Furthermore +% we'll need a box to measure the length of a syllable and a variable to save the limit for +% short syllables. +% \begin{macrocode} +\bool_new:N \l_@@_short_syllable_bool +\box_new:N \l_@@_syllable_box +\tl_new:N \g_@@_variable_shortsyllablelimit_tl +\tl_set:Nn \g_@@_variable_shortsyllablelimit_tl { 0.8em } +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_current_symbol_tl} +% Variable holding the current symbol abbreviation. +% \begin{macrocode} +\tl_new:N \l_@@_current_symbol_tl +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_current_symbol_head_tl} +% Variable holding firt char of the current symbol abbreviation. +% \begin{macrocode} +\tl_new:N \l_@@_current_symbol_head_tl +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_has_acute_accent_bool} +% Bool for switching on an acute accent of a symbol. +% \begin{macrocode} +\bool_new:N \l_@@_has_acute_accent_bool +% \end{macrocode} +% \end{variable} +% \begin{variable}[internal]{\l_@@_has_grave_accent_bool} +% Bool for switching on an grave accent of a symbol. +% \begin{macrocode} +\bool_new:N \l_@@_has_grave_accent_bool +% \end{macrocode} +% \end{variable} +% +% \subsection{User variables} +% These variables save things, the user can change via \cs{setmetrixvar} and use % via \cs{usemetrixvar}. % \begin{variable}[internal]{\g_@@_variable_symbollinewidth_tl} % This variable stores the line width for all metric symbols above (or below) syllables. @@ -1162,14 +1296,15 @@ % \end{variable} % \begin{variable}[internal] % {\g_@@_variable_symbolcolor_tl,\g_@@_variable_accentcolor_tl,g_@@_variable_bowcolor_tl} +% \changes{v1.4}{2016/03/29}{Changed symbol and accent color to current color.} % These variables store the color of symbols, accents and bows. % \begin{macrocode} \tl_new:N \g_@@_variable_symbolcolor_tl -\tl_set:Nn \g_@@_variable_symbolcolor_tl { black } +\tl_set:Nn \g_@@_variable_symbolcolor_tl { . } \tl_new:N \g_@@_variable_accentcolor_tl -\tl_set:Nn \g_@@_variable_accentcolor_tl { black } +\tl_set:Nn \g_@@_variable_accentcolor_tl { . } \tl_new:N \g_@@_variable_bowcolor_tl -\tl_set:Nn \g_@@_variable_bowcolor_tl { black } +\tl_set:Nn \g_@@_variable_bowcolor_tl { . } % \end{macrocode} % \end{variable} % \begin{variable}[internal] @@ -1211,66 +1346,18 @@ \tl_set:Nn \g_@@_variable_emptywidth_tl { 1em } % \end{macrocode} % \end{variable} -% \begin{variable}[internal]{\l_@@_words_tl} -% This list stores the words of the \cs{metrics} macro. -% \begin{macrocode} -\tl_new:N \l_@@_words_tl -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_syllables_seq} -% This list stores the words of the \cs{l_@@_words_tl} list. +% \begin{variable}[internal]{\g_@@_variable_acute_tl} +% This variable stores acute symbol. % \begin{macrocode} -\seq_new:N \l_@@_syllables_seq +\tl_new:N \g_@@_variable_acute_tl +\tl_set:Nn \g_@@_variable_acute_tl { ´ } % \end{macrocode} % \end{variable} -% \begin{variable}[internal]{\l_@@_symbols_seq} -% This list stores the metric symbols of \cs{metrics} and \cs{metricsymbols}. +% \begin{variable}[internal]{\g_@@_variable_grave_tl} +% This variable stores grave symbol. % \begin{macrocode} -\seq_new:N \l_@@_symbols_seq -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_short_breaks_seq,\l_@@_foot_breaks_seq} -% This list stores the short and foot breaks of \cs{metrics}. -% \begin{macrocode} -\seq_new:N \l_@@_short_breaks_seq -\seq_new:N \l_@@_foot_breaks_seq -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_highlights_prop} -% This list stores the higlighting styles of \cs{metrics} and \cs{metricsymbols}. -% \begin{macrocode} -\prop_new:N \l_@@_highlights_prop -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_highlight_seq,\l_@@_highlight_pos_seq} -% This lists are used to evaluate a higlight style. -% \begin{macrocode} -\seq_new:N \l_@@_highlight_seq -\seq_new:N \l_@@_highlight_pos_seq -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\q_@@_space_marker} -% This is the marker for spaces inside of the \cs{l_@@_words_tl} list. -% \begin{macrocode} -\quark_new:N \q_@@_space_marker -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_process_int} -% This process counter is used to combine the symbols and syllables. -% \begin{macrocode} -\int_new:N \l_@@_process_int -% \end{macrocode} -% \end{variable} -% \begin{variable}[internal]{\l_@@_short_syllable_bool,\l_@@_syllable_box,\g_@@_variable_shortsyllablelimit_tl} -% This boolean can be used to store that a syllable is short, e.g. \emph{li} will be defined -% as short wheras \emph{man} is long. That will be used to shorten the |_| symbol. Furthermore -% we'll need a box to measure the length of a syllable and a variable to save the limit for -% short syllables. -% \begin{macrocode} -\bool_new:N \l_@@_short_syllable_bool -\box_new:N \l_@@_syllable_box -\tl_new:N \g_@@_variable_shortsyllablelimit_tl -\tl_set:Nn \g_@@_variable_shortsyllablelimit_tl { 0.8em } +\tl_new:N \g_@@_variable_grave_tl +\tl_set:Nn \g_@@_variable_grave_tl { \`{} } % \end{macrocode} % \end{variable} % @@ -1281,6 +1368,7 @@ \cs_generate_variant:Nn \prop_put:Nnn { Nnx , Nxx , Nff , Noo } \cs_generate_variant:Nn \seq_item:Nn { Nf , NV , Nx } \cs_generate_variant:Nn \seq_set_split:Nnn { Nnf , NnV , Nnx } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV } % \end{macrocode} % % \subsection{Internal main macros} @@ -1561,16 +1649,32 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_print_symbol: { + \tl_set:Nx \l_@@_current_symbol_tl + { + \seq_item:Nn \l_@@_symbols_seq { \l_@@_process_int } + } + \tl_set:Nx \l_@@_current_symbol_head_tl + { + \tl_head:N \l_@@_current_symbol_tl + } + \tl_case:NnT \l_@@_current_symbol_head_tl + { + \c_@@_acute_accent_tl { \bool_set_true:N \l_@@_has_acute_accent_bool } + \c_@@_grave_accent_tl { \bool_set_true:N \l_@@_has_grave_accent_bool } + } + { + \tl_remove_once:NV \l_@@_current_symbol_tl \l_@@_current_symbol_head_tl + } \cs_if_exist_use:cF { - @@_\seq_item:Nn \l_@@_symbols_seq - { \l_@@_process_int }_mark: + @@_ + \tl_use:N \l_@@_current_symbol_tl + _mark: } { \@@_error_msg:n { - Unknown~symbol~abbreviation~'\seq_item:Nn - \l_@@_symbols_seq { \l_@@_process_int }'. + Unknown~symbol~abbreviation~'\tl_use:N \l_@@_current_symbol_tl'. } } } @@ -1578,7 +1682,6 @@ % \end{macro} % % \subsection{Internal auxiliary macros} -% % \begin{macro}[internal]{\@@_error_msg:n} % An abbreviation to throw an error message. % \begin{macrocode} @@ -1591,7 +1694,6 @@ } % \end{macrocode} % \end{macro} -% % \begin{macro}[internal]{\@@_warning_msg:n} % An abbreviation to throw an error message. % \begin{macrocode} @@ -1601,7 +1703,6 @@ } % \end{macrocode} % \end{macro} -% % \begin{macro}[internal]{\@@_align_symbol:n} % This macro alings the metric symbols in a stand alone list. % \begin{macrocode} @@ -1634,7 +1735,6 @@ % \begin{macro}[internal]{\@@_break_node:n} % This macro typsets the gap around the two break symbols. % \begin{macrocode} - \cs_new:Npn \@@_break_node:n #1 { \group_begin: @@ -1647,9 +1747,6 @@ ; \group_end: } - - - % \end{macrocode} % \end{macro} % \begin{macro}[internal]{\@@_e_gap:} @@ -1770,6 +1867,14 @@ { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) arc [start~angle=0, end~angle=180, radius=-0.225]; + \bool_if:NT \l_@@_has_acute_accent_bool + { + \node at (0.225,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l_@@_has_grave_accent_bool + { + \node at (0.225,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } % \end{macrocode} @@ -1783,11 +1888,27 @@ { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) -- ++(0.4,0); + \bool_if:NT \l_@@_has_acute_accent_bool + { + \node at (0.2,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l_@@_has_grave_accent_bool + { + \node at (0.2,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) -- ++(0.75,0); + \bool_if:NT \l_@@_has_acute_accent_bool + { + \node at (0.375,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l_@@_has_grave_accent_bool + { + \node at (0.375,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } } @@ -1869,7 +1990,43 @@ } % \end{macrocode} % \end{macro} -% \begin{macro}[internal]{\@@_oo_mark:} +% \begin{macro}[internal]{\@@_v_mark:} +% \changes{v1.4}{2019/05/04}{Added \texttt{v} symbol.} +% The (yet) unnamed symbol \metricsymbols*{v}. +% \begin{macrocode} +\cs_new:Npn \@@_v_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) -- (0.225,-0.225) -- (0.45,0); + \end{tikzpicture} + } +% \end{macrocode} +% \end{macro} +% \begin{macro}[internal]{\@@_A_mark:} +% \changes{v1.4}{2019/05/04}{Added \texttt{A} symbol.} +% The (yet) unnamed symbol \metricsymbols*{A}. +% \begin{macrocode} +\cs_new:Npn \@@_A_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) -- (0.225,0.225) -- (0.45,0); + \end{tikzpicture} + } +% \end{macrocode} +% \end{macro} +% \begin{macro}[internal]{\@@_o_mark:} +% \changes{v1.4}{2019/05/04}{Added \texttt{o} symbol.} +% The (yet) unnamed symbol \metricsymbols*{o}. +% \begin{macrocode} +\cs_new:Npn \@@_o_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) circle [radius=0.2]; + \end{tikzpicture} + } +% \end{macrocode} +% \end{macro} +% \begin{macro}[internal,added=2019/05/04]{\@@_oo_mark:} % The aeolic symbol \metricsymbols*{oo}. % \begin{macrocode} \cs_new:Npn \@@_oo_mark: @@ -1909,6 +2066,30 @@ } % \end{macrocode} % \end{macro} +% \begin{macro}[internal]{\@@_p_mark:} +% \changes{v1.4}{2019/05/04}{Added primary stress symbol.} +% The primary stress symbol \metricsymbols*{p}. +% \begin{macrocode} +\cs_new:Npn \@@_p_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (-0.2,-0.2) -- (0.2,0.2); + \end{tikzpicture} + } +% \end{macrocode} +% \end{macro} +% \begin{macro}[internal]{\@@_s_mark:} +% \changes{v1.4}{2019/05/04}{Added secondary stress symbol.} +% The secondary stress symbol \metricsymbols*{s}. +% \begin{macrocode} +\cs_new:Npn \@@_s_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (-0.2,0.2) -- (0.2,-0.2); + \end{tikzpicture} + } +% \end{macrocode} +% \end{macro} % \begin{macro}[internal]{\@@_l_mark:} % The simple break symbol \metricsymbols*{|} (above syllables). % \begin{macrocode} @@ -2342,6 +2523,8 @@ % ^^A use updated=YYYY-MM-DD or new=YYY-MM-DD in {documentation} section % \changes{v1.0}{2013/08/12}{Initial version} % \changes{v1.2a}{2016/01/21}{Replaced deprecated \cs{prop_get} variants (Thanks to J. Wright).} -% \changes{v1.3}{2016/03/21}{New highlight styles: \texttt{add text} and \texttt{add arrow}} +% \changes{v1.3}{2016/03/21}{New highlight styles: \texttt{add text} and \texttt{add arrow}.} +% \changes{v1.4}{2019/05/04}{Added docs for \texttt{l} and \texttt{ll} symbol.} +% \changes{v1.4}{2019/05/05}{Added possibility to add accents/icutus above symbols.} % % \PrintIndex^^A use: makeindex -s l3doc.ist -o metrix-doc.ind metrix-doc.idx \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/metrix/metrix.ins b/Master/texmf-dist/source/latex/metrix/metrix.ins index c7d13e23ac7..3ad8d59d3d7 100644 --- a/Master/texmf-dist/source/latex/metrix/metrix.ins +++ b/Master/texmf-dist/source/latex/metrix/metrix.ins @@ -1,6 +1,6 @@ \iffalse meta-comment -File metrix.ins Copyright (C) 2013-2015 Tobias Weh +File metrix.ins Copyright (c) 2013--2016 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 diff --git a/Master/texmf-dist/tex/latex/metrix/metrix.sty b/Master/texmf-dist/tex/latex/metrix/metrix.sty index b6923b854cf..6148ee53202 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-2015 Tobias Weh +%% File: metrix.dtx Copyright (C) 2013-2016 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{2016/03/21} -\def\metrixFileVersion{1.3} +\def\metrixFileDate{2019/05/05} +\def\metrixFileVersion{1.4} \ProvidesExplPackage {\metrixFileName}{\metrixFileDate}{\metrixFileVersion}{\metrixFileDescription} \RequirePackage{xparse} @@ -54,6 +54,26 @@ \ExplSyntaxOff \usetikzlibrary{calc} \ExplSyntaxOn +\tl_const:Nn \c__metrix_acute_accent_tl { ´ } +\tl_const:Nn \c__metrix_grave_accent_tl { ` } +\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 +\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 +\quark_new:N \q__metrix_space_marker +\int_new:N \l__metrix_process_int +\bool_new:N \l__metrix_short_syllable_bool +\box_new:N \l__metrix_syllable_box +\tl_new:N \g__metrix_variable_shortsyllablelimit_tl +\tl_set:Nn \g__metrix_variable_shortsyllablelimit_tl { 0.8em } +\tl_new:N \l__metrix_current_symbol_tl +\tl_new:N \l__metrix_current_symbol_head_tl +\bool_new:N \l__metrix_has_acute_accent_bool +\bool_new:N \l__metrix_has_grave_accent_bool \tl_new:N \g__metrix_variable_symbollinewidth_tl \tl_set:Nn \g__metrix_variable_symbollinewidth_tl { 0.04em } \tl_new:N \g__metrix_variable_bigsymbollinewidth_tl @@ -97,11 +117,11 @@ \tl_new:N \g__metrix_variable_bowlooseness_tl \tl_set:Nn \g__metrix_variable_bowlooseness_tl { 0.75 } \tl_new:N \g__metrix_variable_symbolcolor_tl -\tl_set:Nn \g__metrix_variable_symbolcolor_tl { black } +\tl_set:Nn \g__metrix_variable_symbolcolor_tl { . } \tl_new:N \g__metrix_variable_accentcolor_tl -\tl_set:Nn \g__metrix_variable_accentcolor_tl { black } +\tl_set:Nn \g__metrix_variable_accentcolor_tl { . } \tl_new:N \g__metrix_variable_bowcolor_tl -\tl_set:Nn \g__metrix_variable_bowcolor_tl { black } +\tl_set:Nn \g__metrix_variable_bowcolor_tl { . } \tl_new:N \g__metrix_variable_highlightcolor_tl \tl_set:Nn \g__metrix_variable_highlightcolor_tl { red } \tl_new:N \g__metrix_variable_fillcolor_tl @@ -112,24 +132,15 @@ \tl_set:Nn \g__metrix_variable_breakgap_tl { 0.6em } \tl_new:N \g__metrix_variable_emptywidth_tl \tl_set:Nn \g__metrix_variable_emptywidth_tl { 1em } -\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 -\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 -\quark_new:N \q__metrix_space_marker -\int_new:N \l__metrix_process_int -\bool_new:N \l__metrix_short_syllable_bool -\box_new:N \l__metrix_syllable_box -\tl_new:N \g__metrix_variable_shortsyllablelimit_tl -\tl_set:Nn \g__metrix_variable_shortsyllablelimit_tl { 0.8em } +\tl_new:N \g__metrix_variable_acute_tl +\tl_set:Nn \g__metrix_variable_acute_tl { ´ } +\tl_new:N \g__metrix_variable_grave_tl +\tl_set:Nn \g__metrix_variable_grave_tl { \`{} } \cs_generate_variant:Nn \prop_item:Nn { No , Nf , NV , Nx } \cs_generate_variant:Nn \prop_put:Nnn { Nnx , Nxx , Nff , Noo } \cs_generate_variant:Nn \seq_item:Nn { Nf , NV , Nx } \cs_generate_variant:Nn \seq_set_split:Nnn { Nnf , NnV , Nnx } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV } \cs_new_protected:Npn \__metrix_metrics:nn #1 #2 { \tl_set:Nx \l__metrix_words_tl { \tl_trim_spaces:n { #2 } } @@ -331,16 +342,32 @@ } \cs_new_protected:Npn \__metrix_print_symbol: { + \tl_set:Nx \l__metrix_current_symbol_tl + { + \seq_item:Nn \l__metrix_symbols_seq { \l__metrix_process_int } + } + \tl_set:Nx \l__metrix_current_symbol_head_tl + { + \tl_head:N \l__metrix_current_symbol_tl + } + \tl_case:NnT \l__metrix_current_symbol_head_tl + { + \c__metrix_acute_accent_tl { \bool_set_true:N \l__metrix_has_acute_accent_bool } + \c__metrix_grave_accent_tl { \bool_set_true:N \l__metrix_has_grave_accent_bool } + } + { + \tl_remove_once:NV \l__metrix_current_symbol_tl \l__metrix_current_symbol_head_tl + } \cs_if_exist_use:cF { - __metrix_\seq_item:Nn \l__metrix_symbols_seq - { \l__metrix_process_int }_mark: + __metrix_ + \tl_use:N \l__metrix_current_symbol_tl + _mark: } { \__metrix_error_msg:n { - Unknown~symbol~abbreviation~'\seq_item:Nn - \l__metrix_symbols_seq { \l__metrix_process_int }'. + Unknown~symbol~abbreviation~'\tl_use:N \l__metrix_current_symbol_tl'. } } } @@ -374,7 +401,6 @@ { \hspace{\usemetrixvar{breakgap}} } - \cs_new:Npn \__metrix_break_node:n #1 { \group_begin: @@ -387,7 +413,6 @@ ; \group_end: } - \cs_new_protected:Npn \__metrix_e_gap: { \hspace*{\usemetrixvar{emptywidth}} @@ -459,6 +484,14 @@ { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) arc [start~angle=0, end~angle=180, radius=-0.225]; + \bool_if:NT \l__metrix_has_acute_accent_bool + { + \node at (0.225,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l__metrix_has_grave_accent_bool + { + \node at (0.225,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } \cs_new:Npn \__metrix___mark: @@ -467,11 +500,27 @@ { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) -- ++(0.4,0); + \bool_if:NT \l__metrix_has_acute_accent_bool + { + \node at (0.2,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l__metrix_has_grave_accent_bool + { + \node at (0.2,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } { \begin{tikzpicture}[every~metrix~symbol] \draw (0,0) -- ++(0.75,0); + \bool_if:NT \l__metrix_has_acute_accent_bool + { + \node at (0.375,0) {\usemetrixvar{acute}}; + } + \bool_if:NT \l__metrix_has_grave_accent_bool + { + \node at (0.375,0) {\usemetrixvar{grave}}; + } \end{tikzpicture} } } @@ -526,6 +575,24 @@ \draw (-0.2,-0.2) -- (0.2,0.2); \end{tikzpicture} } +\cs_new:Npn \__metrix_v_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) -- (0.225,-0.225) -- (0.45,0); + \end{tikzpicture} + } +\cs_new:Npn \__metrix_A_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) -- (0.225,0.225) -- (0.45,0); + \end{tikzpicture} + } +\cs_new:Npn \__metrix_o_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (0,0) circle [radius=0.2]; + \end{tikzpicture} + } \cs_new:Npn \__metrix_oo_mark: { \begin{tikzpicture}[every~metrix~symbol] @@ -550,6 +617,18 @@ circle [radius=0.7\pgflinewidth]; \end{tikzpicture} } +\cs_new:Npn \__metrix_p_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (-0.2,-0.2) -- (0.2,0.2); + \end{tikzpicture} + } +\cs_new:Npn \__metrix_s_mark: + { + \begin{tikzpicture}[every~metrix~symbol] + \draw (-0.2,0.2) -- (0.2,-0.2); + \end{tikzpicture} + } \cs_new:Npn \__metrix_l_mark: { \begin{tikzpicture}[every~metrix~symbol] -- cgit v1.2.3