summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-lnt.mkvi
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-10-19 01:20:13 +0300
committerMarius <mariausol@gmail.com>2012-10-19 01:20:13 +0300
commit69d2352af4b60929b37fc49f3bdb263977016244 (patch)
treedb5eb11398e345dfa23b4c4500fb93575d2afb7c /tex/context/base/strc-lnt.mkvi
parentc18f7cbe51449a611ea1819fedd9a4ff18529b7d (diff)
downloadcontext-69d2352af4b60929b37fc49f3bdb263977016244.tar.gz
stable 2012.05.30 11:26
Diffstat (limited to 'tex/context/base/strc-lnt.mkvi')
-rw-r--r--tex/context/base/strc-lnt.mkvi127
1 files changed, 11 insertions, 116 deletions
diff --git a/tex/context/base/strc-lnt.mkvi b/tex/context/base/strc-lnt.mkvi
index 4160360d2..f07ce7839 100644
--- a/tex/context/base/strc-lnt.mkvi
+++ b/tex/context/base/strc-lnt.mkvi
@@ -27,20 +27,11 @@
{\dotripleempty\strc_linenotes_define}
\def\strc_linenotes_define[#1][#2][#3]%
- {\ifcsname\??linenote#1\endcsname
- % there might be files that define the default 'linenote'
- \ifthirdargument
- \setupnote[#1][#3]%
- \else\ifsecondargument
- \setupnote[#1][#2]%
- \fi\fi
- \else
- \definenote[#1][#2][#3]%
- \expandafter\let\csname\??linenote#1\expandafter\endcsname\csname#1\endcsname % use copy command
- \setuevalue {#1}{\strc_linenotes_direct{#1}}%
- \setuevalue{\e!start#1}{\strc_linenotes_start {#1}}%
- \setuevalue{\e!stop #1}{\strc_linenotes_stop }%
- \fi}
+ {\definenote[#1][#2][#3]%
+ \expandafter\let\csname\??linenote#1\expandafter\endcsname\csname#1\endcsname % use copy command
+ \setuevalue {#1}{\strc_linenotes_direct{#1}}%
+ \setuevalue{\e!start#1}{\strc_linenotes_start {#1}}%
+ \setuevalue{\e!stop #1}{\strc_linenotes_stop }}
\unexpanded\def\strc_linenotes_direct#1#2%
{\global\advance\c_strc_linenotes\plusone
@@ -50,7 +41,6 @@
\unexpanded\def\strc_linenotes_start#1[#2]#3%
{\global\advance\c_strc_linenotes\plusone
- \keepunwantedspaces
\strc_linenotes_indeed{#1}{#2}{#3}%
\strc_linenotes_traced{#2}%
\startline[#2]}
@@ -58,109 +48,19 @@
\unexpanded\def\strc_linenotes_stop[#1]%
{\stopline[#1]}
-\let\m_page_lines_previous_to \relax
-\let\m_page_lines_previous_from\relax
-
-\let\m_page_lines_current_to \relax
-\let\m_page_lines_current_from \relax
-
-\newconditional\c_page_lines_current_to
-\newconditional\c_page_lines_current_from
-
-\installcorenamespace{linenotespreviousfrom}
-\installcorenamespace{linenotespreviousto}
-
-\letvalue\??linenotespreviousfrom\empty
-\letvalue\??linenotespreviousto \empty
-
-\def\page_lines_in_from{\in[lr:b:\currentlinenotereference]}
-\def\page_lines_in_to {\in[lr:e:\currentlinenotereference]}
-
-\unexpanded\def\strc_linenotes_range_normal#1% order
- {\doifreferencefoundelse{lr:b:\currentlinenotereference}\settrue\setfalse\c_page_lines_current_from
- \ifconditional\c_page_lines_current_from
- \xdef\m_page_lines_current_from{\currentreferencelinenumber}%
- \doifreferencefoundelse{lr:e:\currentlinenotereference}\settrue\setfalse\c_page_lines_current_to
- \ifconditional\c_page_lines_current_to
- \xdef\m_page_lines_current_to{\currentreferencelinenumber}%
- \page_lines_in_from
- \ifx\m_page_lines_current_from\m_page_lines_current_to \else
- \endash
- \page_lines_in_to
- \fi
- \else
- \page_lines_in_from
- \fi
- \else
- \page_lines_in_from
- \fi}
-
-\unexpanded\def\strc_linenotes_range_sparse#1% order
- {\doifreferencefoundelse{lr:b:\currentlinenotereference}\settrue\setfalse\c_page_lines_current_from
- \ifconditional\c_page_lines_current_from
- \xdef\m_page_lines_current_from{\currentreferencelinenumber}%
- \doifreferencefoundelse{lr:e:\currentlinenotereference}\settrue\setfalse\c_page_lines_current_to
- \ifconditional\c_page_lines_current_to
- \xdef\m_page_lines_current_to{\currentreferencelinenumber}%
- \ifx\m_page_lines_previous_from\m_page_lines_current_from
- \ifx\m_page_lines_previous_to\m_page_lines_current_to
- \notationparameter\c!compressseparator
- \else
- \page_lines_in_from
- \fi
- \else
- \page_lines_in_from
- \ifx\m_page_lines_current_from\m_page_lines_current_to
- \else
- \endash
- \page_lines_in_to
- \fi
- \fi
- \else
- \page_lines_in_from
- \fi
- \else
- \ifx\m_page_lines_previous_from\m_page_lines_current_from
- \notationparameter\c!compressseparator
- \else
- \page_lines_in_from
- \fi
- \fi}
-
-\let\currentlinenotereference\empty
-
-\unexpanded\def\strc_linenotes_indeed#1#2#3%
+\unexpanded\def\strc_linenotes_indeed#1#2#3% will be redone
{\begingroup
% we keep things local so we can use it as regular note too
+ \unexpanded\def\linenotelinenumber##1{\inlinerange[#2]}% ##1 == order
+% \setupnotation[#1][\c!numbercommand=\linenotelinenumber]% todo: deep hook
+% \setupnote[#1][\c!textcommand=\gobbleoneargument]% todo: deep hook
\edef\currentnotation{#1}%
- \edef\currentlinenotereference{#2}%
- \xdef\m_page_lines_previous_from{\csname\??linenotespreviousfrom\ifcsname\??linenotespreviousfrom\currentnotation\endcsname\currentnotation\fi\endcsname}%
- \xdef\m_page_lines_previous_to {\csname\??linenotespreviousto \ifcsname\??linenotespreviousto \currentnotation\endcsname\currentnotation\fi\endcsname}%
- \doifelse{\notationparameter\c!compress}\v!yes
- {\let\linenotelinenumber\strc_linenotes_range_sparse}%
- {\let\linenotelinenumber\strc_linenotes_range_normal}%
\let\currentnote\currentnotation
\letnotationparameter\c!numbercommand\linenotelinenumber% todo: deep hook
\letnoteparameter \c!textcommand \gobbleoneargument % todo: deep hook
- \getvalue{\??linenote\currentnotation}{#3}%
- \expandafter\glet\csname\??linenotespreviousfrom\currentnotation\endcsname\m_page_lines_current_from
- \expandafter\glet\csname\??linenotespreviousto \currentnotation\endcsname\m_page_lines_current_to
+ \relax\getvalue{\??linenote#1}{#3}%
\endgroup}
-% where to hook this one in? resetcounter has no hook:
-
-\unexpanded\def\doresetlinenotecompression#1% \strc_linenotes_reset_previous
- {\expandafter\glet\csname\??linenotespreviousfrom#1\endcsname\empty
- \expandafter\glet\csname\??linenotespreviousto #1\endcsname\empty}
-
-\definesymbol
- [\v!compressseparator]
- [\space\hbox{\vl\thinspace\vl}]
-
-\setupnotations
- [%c\compress=\v!no,
- \c!compressseparator=\symbol\v!compressseparator]
-
\let\strc_linenotes_traced\gobbleoneargument
\def\strc_linenotes_traced_indeed#1%
@@ -179,14 +79,9 @@
\unexpanded\def\tracelinenotes
{\let\strc_linenotes_traced\strc_linenotes_traced_indeed}
-%D Use these when not properly nested:
-
-\let\fromlinenote\startlinenote
-\let\tolinenote \stoplinenote
-
% We predefine one, namely \type {\linenote} cum suis.
-\definelinenote[\v!linenote]
+% \definelinenote[\v!linenote]
% beware: line numbers are added later on so grouping setups is a bad idea
%