forked from tecosaur/BMC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
yMarginDesign.sty
127 lines (98 loc) · 3.71 KB
/
yMarginDesign.sty
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% yMarginDesign %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright Yves Zumbach 2017
%-------------------------------------------------------------------------------
% This work is distributed under the LPPL
%-------------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Yves Zumbach
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Required Packages
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{xparse}
\RequirePackage{marginnote}
\RequirePackage{marginfix}
\RequirePackage{ragged2e}
\RequirePackage{interfaces-base}
\LoadInterface{pgfkeys}
\RequirePackage{xcolor}
\RequirePackage{changepage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Global Options
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Configuration command
\DeclareDocumentCommand{\yMarginDesignConfiguration}{m}{\pgfkeys{/yMarginDesign/.cd, #1}}
% Color of the title, marginNoteMark, etc.
\pgfkeys{
/yMarginDesign/.cd,
color/.store as color,
color=black,
}
% Marginpar alignment
% Default: inner of the page, only compatible with memoir
\pgfkeys{
/yMarginDesign/alignment/.code = {\strictpagechecktrue\checkoddpage\ifoddpage\RaggedRight\else\RaggedLeft\fi}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Margin Paragraphs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Typeset a paragraph in the margin
\DeclareDocumentCommand{\marginElement}{m}{%
\marginpar{%
\pgfkeys{/yMarginDesign/alignment}%
\footnotesize%
#1%
}\unskip%
}%
% The mark for the marginNote
\DeclareDocumentCommand{\marginMark}{m}{{\color{\pgfkeysvalueof{/yMarginDesign/color}}#1.~}}
\DeclareDocumentCommand{\printMarginNoteMark}{}{%
\@ifpackageloaded{hyperref}%
{{\hypersetup{linkcolor=\pgfkeysvalueof{/yMarginDesign/color}}\footnotemark}}%
{\textcolor{\pgfkeysvalueof{/yMarginDesign/color}}{\footnotemark}}
}
% Typeset a paragraph in the margin with a number (as a footnote)
\DeclareDocumentCommand{\marginNote}{m}{%
\printMarginNoteMark
\ignorespaces%
\marginElement{%
\marginMark{\thefootnote}%
\ignorespaces%
#1%
}%
}%
% Typeset a paragraph in the margin exactly at the exact position where the command is called
\DeclareDocumentCommand{\forcedMarginElement}{m}{%
\marginnote{%
\pgfkeys{/yMarginDesign/alignment}\footnotesize%
#1%
}%
}
% Typeset a paragraph in the margin exactly at the exact position where the command is called with a number (as a footnote)
\DeclareDocumentCommand{\forcedMarginNote}{m}{%
\printMarginNoteMark
\ignorespaces%
\forcedMarginElement{%
\sideMark[#1]{\thefootnote}%
\ignorespaces%
#1%
}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Margin Design Elements
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\marginTitle}{m}{{\bfseries\large\color{\pgfkeysvalueof{/yMarginDesign/color}}#1}\\}