summaryrefslogtreecommitdiff
path: root/language/churchslavonic/churchslavonic.sty
blob: 60f8c0e91e111d72c9f6d029bf72d424ea2cbeac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
% Copyright 2016 Slavonic Computing Initiative
% http://sci.ponomar.net
%
\ProvidesPackage{churchslavonic}[v0.2.4 2023.06.22 Typesetting in Church Slavonic]

\DeclareOption{autocolormarks}{
	\PassOptionsToPackage{\CurrentOption}{cu-kruk}
}
\DeclareOption{noautocolormarks}{
	\PassOptionsToPackage{\CurrentOption}{cu-kruk}
}
\DeclareOption*{
	\PassOptionsToPackage{\CurrentOption}{cu-kinovar}
}
\ProcessOptions\relax

\RequirePackage{ifluatex}
\RequirePackage{cu-num}
\RequirePackage{cu-calendar}
\RequirePackage{cu-util}
\RequirePackage{cu-kinovar}
\RequirePackage{cu-kruk}

% underscore is a valid character in Church Slavonic
\let\cu@oldunderscore=_
{%
\catcode`\_\active
\global\protected\def_{\ifmmode\cu@oldunderscore\else\textunderscore\discretionary{}{}{}\fi}%
}%
\AtBeginDocument{\catcode`\_\active}%

\ifluatex
\AtBeginDocument{\cu@set@hyphenchar@lualatex}
\else
\AtBeginDocument{\cu@set@hyphenchar@xelatex}
\fi

\def\cu@set@hyphenchar@lualatex{
  \@ifpackageloaded{polyglossia}{%
    \textchurchslavonic{\prehyphenchar=`\_}%
  }{%
  }%
}%

\def\cu@set@hyphenchar@xelatex{
}%

% suppress variable distance between lines
\lineskiplimit -1ex

% margin marks
\def\cu@mmark@counter{0}%
\def\cuMarginMarkSkip{0.6em}%
\def\cuMarginMarkText#1{#1}%
\protected\def\cuMarginMark#1{%
\leavevmode
\global\edef\cu@mmark@counter{\the\numexpr 1 + \cu@mmark@counter}%
\label{mnote.\cu@mmark@counter}%
\ifodd\getpagerefnumber{mnote.\cu@mmark@counter}\relax
  \vadjust{\hbox{\vbox to 0pt{\vss\hbox to 0pt{\hskip\textwidth\hskip\cuMarginMarkSkip \cuMarginMarkText{#1}\hss}\vskip 0.25\baselineskip}}}%
\else
  \vadjust{\hbox{\vbox to 0pt{\vss\hbox to 0pt{\hss \cuMarginMarkText{#1}\hskip\cuMarginMarkSkip}\vskip 0.25\baselineskip}}}%
\fi
}%


\endinput