diff options
-rw-r--r-- | ekdosis.dtx | 84 |
1 files changed, 63 insertions, 21 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx index 4a5a025..7ea82a5 100644 --- a/ekdosis.dtx +++ b/ekdosis.dtx | |||
@@ -341,7 +341,12 @@ Running "make install" installs the files in the local TeX tree. | |||
341 | \else\fi\fi\fi} | 341 | \else\fi\fi\fi} |
342 | \ExecuteOptionsX{} | 342 | \ExecuteOptionsX{} |
343 | \ProcessOptionsX\relax | 343 | \ProcessOptionsX\relax |
344 | \newcommand{\dontusepackage}[2][]{% | ||
345 | \@namedef{ver@#2.sty}{9999/12/31}% | ||
346 | \@namedef{opt@#2.sty}{#1}} | ||
347 | \dontusepackage{etex} | ||
344 | \RequirePackage{luacode} | 348 | \RequirePackage{luacode} |
349 | \RequirePackage{manyfoot} | ||
345 | \RequirePackage{paracol} | 350 | \RequirePackage{paracol} |
346 | \RequirePackage{keycommand} | 351 | \RequirePackage{keycommand} |
347 | \RequirePackage{xparse} | 352 | \RequirePackage{xparse} |
@@ -482,7 +487,25 @@ idno={}, msName={}, origDate={}][3]{% | |||
482 | {\luadirect{ekdosis.appin(\luastringO{#2})}} | 487 | {\luadirect{ekdosis.appin(\luastringO{#2})}} |
483 | {\luadirect{ekdosis.appin(\luastringO{#2}, \luastringO{#1})}}% | 488 | {\luadirect{ekdosis.appin(\luastringO{#2}, \luastringO{#1})}}% |
484 | } | 489 | } |
485 | \def\blfootnote{\gdef\@thefnmark{\relax}\@footnotetext} | 490 | %\def\blfootnote{\gdef\@thefnmark{\relax}\@footnotetext} |
491 | \def\blfootnote{\gdef\@thefnmark{}\@blfootnotetext} | ||
492 | \long\def\@blfootnotetext#1{\insert\footins{% | ||
493 | \reset@font\footnotesize | ||
494 | \interlinepenalty\interfootnotelinepenalty | ||
495 | \splittopskip\footnotesep | ||
496 | \splitmaxdepth \dp\strutbox \floatingpenalty \@MM | ||
497 | \hsize\columnwidth \@parboxrestore | ||
498 | \protected@edef\@currentlabel{% | ||
499 | \csname p@footnote\endcsname\@thefnmark | ||
500 | }% | ||
501 | \color@begingroup | ||
502 | \@makeblfntext{% | ||
503 | \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% | ||
504 | \color@endgroup}}% | ||
505 | \newcommand\@makeblfntext[1]{% | ||
506 | \parindent 1em% | ||
507 | \noindent | ||
508 | \hb@xt@0em{\hss\@makefnmark}#1} | ||
486 | \newif\ifrtl@app | 509 | \newif\ifrtl@app |
487 | \NewDocumentCommand{\SetRTLapp}{}{\rtl@apptrue} | 510 | \NewDocumentCommand{\SetRTLapp}{}{\rtl@apptrue} |
488 | \NewDocumentCommand{\SetLTRapp}{}{\rtl@appfalse} | 511 | \NewDocumentCommand{\SetLTRapp}{}{\rtl@appfalse} |
@@ -493,6 +516,10 @@ idno={}, msName={}, origDate={}][3]{% | |||
493 | \def\ekd@unit@delim{} | 516 | \def\ekd@unit@delim{} |
494 | \NewDocumentCommand{\SetUnitDelimiter}{m}{\def\ekd@unit@delim{#1}} | 517 | \NewDocumentCommand{\SetUnitDelimiter}{m}{\def\ekd@unit@delim{#1}} |
495 | \def\ekd@default@rule{\rule{2truein}{0.5pt}} | 518 | \def\ekd@default@rule{\rule{2truein}{0.5pt}} |
519 | % \def\ekd@default@rule{\vskip-\baselineskip\mbox{}\newline% | ||
520 | % \rule{2truein}{0.5pt}} | ||
521 | \def\footnoterule{} | ||
522 | \def\pcol@footnoterule{} | ||
496 | \NewDocumentCommand{\SetDefaultRule}{m}{% | 523 | \NewDocumentCommand{\SetDefaultRule}{m}{% |
497 | \def\@tempa{#1} | 524 | \def\@tempa{#1} |
498 | \ifx\@tempa\empty\def\ekd@default@rule{\mbox{}}% | 525 | \ifx\@tempa\empty\def\ekd@default@rule{\mbox{}}% |
@@ -501,10 +528,15 @@ idno={}, msName={}, origDate={}][3]{% | |||
501 | \fi} | 528 | \fi} |
502 | \newif\ifsubsq@unit | 529 | \newif\ifsubsq@unit |
503 | \subsq@unittrue | 530 | \subsq@unittrue |
531 | \SetFootnoteHook{\hskip -1.8em} | ||
532 | \newfootnote{@ekd} | ||
504 | \def\add@@apparatus{% | 533 | \def\add@@apparatus{% |
505 | % \blfootnote{\apparatus}% | ||
506 | \if@pkg@parnotes\parnotes\else\fi% | 534 | \if@pkg@parnotes\parnotes\else\fi% |
507 | \keyparbox[b!]{}{\ifrtl@app\setRL\else\setLR\fi% | 535 | \bgroup% |
536 | \ifrtl@app\setRL\fi% | ||
537 | \blfootnote{% | ||
538 | % \Footnotetext@ekd{\relax}{% | ||
539 | % \ifrtl@app\setRL\else\setLR\fi% | ||
508 | \if@pkg@parnotes% | 540 | \if@pkg@parnotes% |
509 | \if@parnotesroman% | 541 | \if@parnotesroman% |
510 | \renewcommand*{\theparnotemark}{\roman{parnotemark}}\else\fi% | 542 | \renewcommand*{\theparnotemark}{\roman{parnotemark}}\else\fi% |
@@ -512,6 +544,15 @@ idno={}, msName={}, origDate={}][3]{% | |||
512 | \footnotesize\apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi% | 544 | \footnotesize\apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi% |
513 | \if@pkg@parnotes\parnotes\parnotereset\else\fi% | 545 | \if@pkg@parnotes\parnotes\parnotereset\else\fi% |
514 | }% | 546 | }% |
547 | \egroup% | ||
548 | % \keyparbox[b!]{}{\ifrtl@app\setRL\else\setLR\fi% | ||
549 | % \if@pkg@parnotes% | ||
550 | % \if@parnotesroman% | ||
551 | % \renewcommand*{\theparnotemark}{\roman{parnotemark}}\else\fi% | ||
552 | % \parnoteclear\else\fi% | ||
553 | % \footnotesize\apparatus\unless\ifekd@mapps\ekd@end@apparatus\fi% | ||
554 | % \if@pkg@parnotes\parnotes\parnotereset\else\fi% | ||
555 | % }% | ||
515 | \unless\ifekd@mapps\unconditional@appin{% | 556 | \unless\ifekd@mapps\unconditional@appin{% |
516 | \expandafter{\ekd@default@rule}\newline}\fi | 557 | \expandafter{\ekd@default@rule}\newline}\fi |
517 | } | 558 | } |
@@ -664,25 +705,25 @@ idno={}, msName={}, origDate={}][3]{% | |||
664 | \luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}% | 705 | \luadirect{tex.sprint(ekdosis.getappdelim(\luastringO{\ekdan@type}))}}% |
665 | \fi% | 706 | \fi% |
666 | \ifekdl@nolem\edef\lem@app{% | 707 | \ifekdl@nolem\edef\lem@app{% |
667 | \hskip .75em | 708 | % \hskip .75em |
668 | \ifekd@mapps | 709 | \ifekd@mapps |
669 | \ifbool{subsq@unit@\ekdan@type}% | 710 | \ifbool{subsq@unit@\ekdan@type}% |
670 | {\expandafter\noexpand\ekd@munit@delim}{}% | 711 | {\ekd@munit@delim}{}% |
671 | \else% | 712 | \else% |
672 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 713 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% |
673 | \fi% | 714 | \fi% |
674 | \current@ref\hskip .25em}% | 715 | \current@ref}%\hskip .25em}% |
675 | \else% | 716 | \else% |
676 | \ifbool{al@rlmode}{% | 717 | \ifbool{al@rlmode}{% |
677 | \edef\lem@app{% | 718 | \edef\lem@app{% |
678 | \hskip .75em | 719 | % \hskip .75em |
679 | \ifekd@mapps | 720 | \ifekd@mapps |
680 | \ifbool{subsq@unit@\ekdan@type}% | 721 | \ifbool{subsq@unit@\ekdan@type}% |
681 | {\expandafter\noexpand\ekd@munit@delim}{}% | 722 | {\ekd@munit@delim}{}% |
682 | \else% | 723 | \else% |
683 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 724 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% |
684 | \fi% | 725 | \fi% |
685 | \current@ref\hskip .25em | 726 | \current@ref%\hskip .25em |
686 | \ifdefined\ekdlr@alt% | 727 | \ifdefined\ekdlr@alt% |
687 | \ifdefined\ekdlr@post% | 728 | \ifdefined\ekdlr@post% |
688 | \space\unexpanded\expandafter{\ekdlr@post}\space\else\fi | 729 | \space\unexpanded\expandafter{\ekdlr@post}\space\else\fi |
@@ -706,14 +747,14 @@ idno={}, msName={}, origDate={}][3]{% | |||
706 | }% | 747 | }% |
707 | {% | 748 | {% |
708 | \edef\lem@app{% | 749 | \edef\lem@app{% |
709 | \hskip .75em | 750 | % \hskip .75em |
710 | \ifekd@mapps | 751 | \ifekd@mapps |
711 | \ifbool{subsq@unit@\ekdan@type}% | 752 | \ifbool{subsq@unit@\ekdan@type}% |
712 | {\expandafter\noexpand\ekd@munit@delim}{}% | 753 | {\ekd@munit@delim}{}% |
713 | \else% | 754 | \else% |
714 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 755 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% |
715 | \fi% | 756 | \fi% |
716 | \current@ref\hskip .25em | 757 | \current@ref%\hskip .25em |
717 | \ifdefined\ekdlr@alt% | 758 | \ifdefined\ekdlr@alt% |
718 | \ifdefined\ekdlr@pre% | 759 | \ifdefined\ekdlr@pre% |
719 | \space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi | 760 | \space\unexpanded\expandafter{\ekdlr@pre}\space\else\fi |
@@ -852,27 +893,27 @@ idno={}, msName={}, origDate={}][3]{% | |||
852 | set.}\fi% | 893 | set.}\fi% |
853 | \ifbool{al@rlmode}% | 894 | \ifbool{al@rlmode}% |
854 | {\edef\note@contents{% | 895 | {\edef\note@contents{% |
855 | \hskip .75em | 896 | % \hskip .75em |
856 | \ifekd@mapps | 897 | \ifekd@mapps |
857 | \ifbool{subsq@unit@\ekdan@type}% | 898 | \ifbool{subsq@unit@\ekdan@type}% |
858 | {\expandafter\noexpand\ekd@munit@delim}{}% | 899 | {\ekd@munit@delim}{}% |
859 | \else% | 900 | \else% |
860 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 901 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% |
861 | \fi% | 902 | \fi% |
862 | \current@ref@arg{\ekdn@labelb}{\ekdn@labele}\hskip .25em | 903 | \current@ref@arg{\ekdn@labelb}{\ekdn@labele}%\hskip .25em |
863 | \ifdefined\ekdn@lem% | 904 | \ifdefined\ekdn@lem% |
864 | {\textdir TRT\unexpanded\expandafter{\ekdn@lem}}% | 905 | {\textdir TRT\unexpanded\expandafter{\ekdn@lem}}% |
865 | \unexpanded\expandafter{\ekdn@sep}\else\fi% | 906 | \unexpanded\expandafter{\ekdn@sep}\else\fi% |
866 | {\textdir TRT\unexpanded{#2}}}}% | 907 | {\textdir TRT\unexpanded{#2}}}}% |
867 | {\edef\note@contents{% | 908 | {\edef\note@contents{% |
868 | \hskip .75em | 909 | % \hskip .75em |
869 | \ifekd@mapps | 910 | \ifekd@mapps |
870 | \ifbool{subsq@unit@\ekdan@type}% | 911 | \ifbool{subsq@unit@\ekdan@type}% |
871 | {\expandafter\noexpand\ekd@munit@delim}{}% | 912 | {\ekd@munit@delim}{}% |
872 | \else% | 913 | \else% |
873 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% | 914 | \ifsubsq@unit\unexpanded\expandafter{\ekd@unit@delim}\fi% |
874 | \fi% | 915 | \fi% |
875 | \current@ref@arg{\ekdn@labelb}{\ekdn@labele}\hskip .25em | 916 | \current@ref@arg{\ekdn@labelb}{\ekdn@labele}%\hskip .25em |
876 | \ifdefined\ekdn@lem | 917 | \ifdefined\ekdn@lem |
877 | \ltx@ifpackageloaded{babel}% | 918 | \ltx@ifpackageloaded{babel}% |
878 | {\noexpand\selectlanguage{\languagename}% | 919 | {\noexpand\selectlanguage{\languagename}% |
@@ -1794,6 +1835,7 @@ function ekdosis.appout() | |||
1794 | end | 1835 | end |
1795 | -- table.insert(output, "END") | 1836 | -- table.insert(output, "END") |
1796 | else | 1837 | else |
1838 | table.insert(output, "\\vskip -\\baselineskip") | ||
1797 | local n = 1 | 1839 | local n = 1 |
1798 | while apparatuses[n] | 1840 | while apparatuses[n] |
1799 | do | 1841 | do |
@@ -1810,12 +1852,12 @@ function ekdosis.appout() | |||
1810 | end | 1852 | end |
1811 | if apparatuses[n].rule == "none" | 1853 | if apparatuses[n].rule == "none" |
1812 | then | 1854 | then |
1813 | table.insert(output, "\\par\\mbox{}\\newline{}") | 1855 | table.insert(output, "\\par\\noindent\\mbox{}\\newline{}") |
1814 | elseif apparatuses[n].rule ~= "" | 1856 | elseif apparatuses[n].rule ~= "" |
1815 | then | 1857 | then |
1816 | table.insert(output, "\\par\\mbox{}" .. apparatuses[n].rule .. "\\mbox{}\\newline{}") | 1858 | table.insert(output, "\\par\\noindent\\mbox{}" .. apparatuses[n].rule .. "\\mbox{}\\newline{}") |
1817 | else | 1859 | else |
1818 | table.insert(output, "\\par\\csname ekd@default@rule\\endcsname\\newline{}") | 1860 | table.insert(output, "\\par\\noindent\\csname ekd@default@rule\\endcsname\\newline{}") |
1819 | end | 1861 | end |
1820 | if apparatuses[n].bhook ~= "" | 1862 | if apparatuses[n].bhook ~= "" |
1821 | then | 1863 | then |