@dataimago/css 0.1.0-alpha.15 → 0.1.0-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,618 @@
1
+ % @dataimago/css@0.1.0-alpha.18 dist/latex/dataimago.sty · sha256:deefadc765fb6c3fb673d7b4e71dcc7d12473f2ee4f0de1160af062b94d7e810 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.18 dataimago-sync
2
+ %%%
3
+ %%% dataimago.sty - LaTeX Style Package for dataimago Design System
4
+ %%%
5
+ %%% A unified LaTeX package providing consistent typography, colors, and layout
6
+ %%% for PDF documents aligned with the dataimago design system.
7
+ %%%
8
+ %%% Copyright (c) 2025 dataimago
9
+ %%% License: MIT (see LICENSE.md)
10
+ %%%
11
+ %%% Version: 0.1.0
12
+ %%% Date: 2025-10-19
13
+ %%%
14
+ %%% USAGE:
15
+ %%% \usepackage{dataimago}
16
+ %%%
17
+ %%% REQUIREMENTS:
18
+ %%% - XeLaTeX or LuaLaTeX (for fontspec and unicode-math)
19
+ %%% - System fonts: Noto Sans, Noto Sans Mono, Noto Sans Math, Josefin Sans
20
+ %%% - memoir document class (for full book/report features)
21
+ %%% - Or article class (basic features only)
22
+ %%%
23
+ %%% FEATURES:
24
+ %%% - dataimago typography (Noto Sans + Josefin Sans)
25
+ %%% - dataimago color tokens (surface, content, border, brand colors)
26
+ %%% - Custom memoir page styles and chapter/section formatting
27
+ %%% - Theorem and definition boxes styled with dataimago tokens
28
+ %%% - Front matter commands for title pages and abstracts
29
+ %%%
30
+ %%% For more information, see README.md
31
+ %%%
32
+
33
+ \NeedsTeXFormat{LaTeX2e}
34
+ \ProvidesPackage{dataimago}[2025/10/19 v0.1.0 dataimago Design System for LaTeX]
35
+
36
+ %%%
37
+ %%% PACKAGE IDENTIFICATION
38
+ %%%
39
+ \typeout{dataimago.sty v0.1.0 - dataimago Design System for LaTeX}
40
+ \typeout{Loading dataimago typography, colors, and layout...}
41
+
42
+ %%%
43
+ %%% REQUIRED PACKAGES
44
+ %%%
45
+
46
+ %% Font and math support (XeLaTeX/LuaLaTeX required)
47
+ \RequirePackage{fontspec}
48
+ \RequirePackage{unicode-math}
49
+
50
+ %% Color support
51
+ \RequirePackage[svgnames]{xcolor}
52
+ % Design-token colours (generated; ships beside this file in @dataimago/css dist/latex/)
53
+ \RequirePackage{dataimago-tokens}
54
+
55
+ %% Core LaTeX packages
56
+ \RequirePackage[obeyspaces,hyphens]{url}
57
+ \RequirePackage{graphicx}
58
+ \RequirePackage{rotating,bm,amsmath,amsfonts,amssymb,indentfirst,lscape}
59
+ \RequirePackage{caption}
60
+
61
+ %% Box and list support
62
+ \RequirePackage{tcolorbox}
63
+ \tcbuselibrary{most,skins,breakable}
64
+ \RequirePackage{enumitem}
65
+
66
+ %% Memoir-specific packages (loaded only if memoir class is detected)
67
+ \@ifclassloaded{memoir}{%
68
+ \RequirePackage{epigraph}
69
+ \RequirePackage{tabularx}
70
+ \typeout{dataimago: memoir class detected - loading enhanced features}
71
+ }{%
72
+ % Article class - load alternative packages
73
+ \RequirePackage{sectsty}
74
+ \RequirePackage{titling}
75
+ \typeout{dataimago: article class detected - loading basic features}
76
+ }
77
+
78
+ %%%
79
+ %%% SECTION 1: TYPOGRAPHY - FONTS
80
+ %%%
81
+ %%% dataimago font stack: Noto Sans (body/math) + Josefin Sans (headings)
82
+ %%% Using system fonts for portability across machines
83
+ %%%
84
+
85
+ %% Body Font: Noto Sans
86
+ % Token: font.family.sans = "Noto Sans, system-ui, sans-serif"
87
+ \setmainfont{Noto Sans}[
88
+ Scale=1.0,
89
+ Ligatures=TeX,
90
+ Numbers=OldStyle
91
+ ]
92
+
93
+ \setsansfont{Noto Sans}[
94
+ Scale=1.0,
95
+ Ligatures=TeX
96
+ ]
97
+
98
+ %% Monospace Font: Noto Sans Mono
99
+ % Token: font.family.mono = "Noto Sans Mono, ..."
100
+ \setmonofont{Noto Sans Mono}[
101
+ Scale=0.95,
102
+ Ligatures=TeX
103
+ ]
104
+
105
+ %% Math Font: Noto Sans Math
106
+ % Token: font.family.math = "Noto Sans Math, ..."
107
+ % OpenType MATH table support for proper equation rendering
108
+ \setmathfont{Noto Sans Math}[
109
+ Scale=1.0,
110
+ math-style=ISO,
111
+ bold-style=ISO
112
+ ]
113
+
114
+ %% Heading Font: Josefin Sans
115
+ % Token: font.family.display = "Josefin Sans, system-ui, sans-serif"
116
+ % Using system fonts for portability across machines
117
+ % Hierarchical weight variants for clear visual hierarchy
118
+ % Note: Font family names include the weight for non-Regular weights
119
+
120
+ % Bold (700) - Default, for Title, Chapters
121
+ \newfontfamily\HeadingFont[
122
+ Scale=MatchLowercase,
123
+ LetterSpace=0.5,
124
+ BoldFont=Josefin Sans
125
+ ]{Josefin Sans}
126
+ \let\HeadingFontBold\HeadingFont % Alias for clarity
127
+
128
+ % SemiBold (600) - For Subtitle
129
+ \newfontfamily\HeadingFontSemiBold[
130
+ Scale=MatchLowercase,
131
+ LetterSpace=0.5,
132
+ BoldFont=Josefin Sans
133
+ ]{Josefin Sans SemiBold}
134
+
135
+ % Medium (500) - For Sections
136
+ % Note: Josefin Sans doesn't have Medium weight, using Regular
137
+ \newfontfamily\HeadingFontMedium[
138
+ Scale=MatchLowercase,
139
+ LetterSpace=0.5,
140
+ BoldFont=Josefin Sans
141
+ ]{Josefin Sans}
142
+
143
+ % Regular (400) - For Subsections
144
+ \newfontfamily\HeadingFontRegular[
145
+ Scale=MatchLowercase,
146
+ LetterSpace=0.5,
147
+ BoldFont=Josefin Sans
148
+ ]{Josefin Sans}
149
+
150
+ % Light (300) - For Subsubsections
151
+ \newfontfamily\HeadingFontLight[
152
+ Scale=MatchLowercase,
153
+ LetterSpace=0.5,
154
+ BoldFont=Josefin Sans
155
+ ]{Josefin Sans Light}
156
+
157
+ % ExtraLight (200) - For future use (captions, labels)
158
+ % Note: Using Thin as ExtraLight equivalent
159
+ \newfontfamily\HeadingFontExtraLight[
160
+ Scale=MatchLowercase,
161
+ LetterSpace=0.5,
162
+ BoldFont=Josefin Sans
163
+ ]{Josefin Sans Thin}
164
+
165
+ %% Apply Josefin to section headings (article class only)
166
+ \@ifclassloaded{memoir}{%
167
+ % Memoir class - skip sectsty (incompatible with memoir)
168
+ % Section formatting handled in SECTION 3 below
169
+ }{%
170
+ % Article class - use sectsty
171
+ \allsectionsfont{\HeadingFont\color{ContentPrimary}}
172
+
173
+ % Make document title use Josefin
174
+ \pretitle{\begin{center}\HeadingFont\huge\color{ContentPrimary}}
175
+ \posttitle{\par\end{center}\vskip 1em}
176
+ \preauthor{\begin{center}\large\begin{tabular}[t]{c}}
177
+ \postauthor{\end{tabular}\par\end{center}}
178
+ \predate{\begin{center}\normalsize\color{ContentSecondary}}
179
+ \postdate{\par\end{center}\vskip 1.5em}
180
+ }
181
+
182
+ %%%
183
+ %%% SECTION 2: COLORS - dataimago Design Tokens
184
+ %%%
185
+ %%% All colors defined using dataimago design token values
186
+ %%%
187
+
188
+ % Every colour below is an ALIAS of a generated design token. The values live
189
+ % in dataimago-tokens.sty, generated from @dataimago/tokens at source and
190
+ % shipped in @dataimago/css dist/latex/ (sub-project A, 2026-10-29). The
191
+ % CamelCase names are kept so existing documents and forks keep compiling; new
192
+ % code may use the di-* names directly. Never put a colour literal here.
193
+
194
+ % Surface tokens (light theme)
195
+ \colorlet{SurfacePage}{di-surface-page}
196
+ \colorlet{SurfaceCode}{di-surface-code}
197
+ \colorlet{SurfaceElevated}{di-surface-elevated}
198
+
199
+ % Content tokens
200
+ \colorlet{ContentPrimary}{di-content-primary}
201
+ \colorlet{ContentSecondary}{di-content-secondary}
202
+
203
+ % Border tokens (alpha composited over surface.page by the generator)
204
+ \colorlet{BorderCode}{di-border-code}
205
+ \colorlet{BorderModerate}{di-border-moderate}
206
+
207
+ % Figure box background - subtle off-white for semi-transparent figure backgrounds
208
+ \colorlet{FigureBoxBg}{white!42!SurfacePage}
209
+
210
+ % Brand roles (mapped to tokens by maintainer decision, 2026-10-29)
211
+ \colorlet{DataimagoPrimary}{di-interactive-primary}
212
+ \colorlet{DataimagoAccent}{di-interactive-accent}
213
+ \colorlet{DataimagoEthical}{di-brand-mark-red}
214
+
215
+ % Functional tokens
216
+ \colorlet{InfoColor}{di-functional-info}
217
+ \colorlet{WarningColor}{di-functional-warning}
218
+ \colorlet{ErrorColor}{di-functional-error}
219
+ \colorlet{SuccessColor}{di-functional-success}
220
+
221
+ % Theorem boxes (maintainer decision, 2026-10-29: elevated surface, subtle edge)
222
+ \colorlet{CornsilkBox}{di-surface-elevated}
223
+ \colorlet{CornsilkBoxBorder}{di-border-subtle}
224
+
225
+ %% Apply page background color (dataimago surface token)
226
+ \pagecolor{SurfacePage}
227
+
228
+ %% Figure border parameters (\fbox)
229
+ % Token: border.width.subtle = 0.4pt (dataimago)
230
+ % Token: spacing.micro.xs = 0.25rem ≈ 3pt (dataimago)
231
+ \setlength{\fboxrule}{0.75pt} % Border line thickness
232
+ \setlength{\fboxsep}{0.5pt} % Padding between border and content
233
+
234
+ %%%
235
+ %%% SECTION 3: MEMOIR CLASS CONFIGURATION
236
+ %%%
237
+ %%% Page styles, chapter/section formatting, and book structure
238
+ %%% (Only loaded if memoir class is detected)
239
+ %%%
240
+
241
+ \@ifclassloaded{memoir}{%
242
+ %% Memoir divisions configuration
243
+ % Enable subsubsection numbering
244
+ \setsecnumdepth{subsubsection}
245
+ \maxsecnumdepth{subsubsection}
246
+
247
+ % Set TOC depth (chapters and sections only)
248
+ \settocdepth{section}
249
+
250
+ %% Page styles using memoir's built-in system
251
+ \makepagestyle{dataimago}
252
+ \makeevenhead{dataimago}{\small\normalfont\color{ContentSecondary}\thepage}{}{\small\normalfont\color{ContentSecondary}\leftmark}
253
+ \makeoddhead{dataimago}{\small\normalfont\color{ContentSecondary}\leftmark}{}{\small\normalfont\color{ContentSecondary}\thepage}
254
+ \makeevenfoot{dataimago}{}{}{}
255
+ \makeoddfoot{dataimago}{}{}{}
256
+ \makeheadrule{dataimago}{\textwidth}{0.4pt}
257
+
258
+ % Apply custom page style
259
+ \pagestyle{dataimago}
260
+
261
+ % Plain style for chapter openings
262
+ \makepagestyle{plain}
263
+ \makeevenfoot{plain}{}{\small\normalfont\thepage}{}
264
+ \makeoddfoot{plain}{}{\small\normalfont\thepage}{}
265
+
266
+ %% Front matter style (no headers, centered page numbers)
267
+ \makepagestyle{frontmatter}
268
+ \makeevenfoot{frontmatter}{}{\small\normalfont\thepage}{}
269
+ \makeoddfoot{frontmatter}{}{\small\normalfont\thepage}{}
270
+
271
+ %% Chapter and section spacing
272
+ \setlength{\beforechapskip}{0pt} % Space before chapter title
273
+ \setlength{\afterchapskip}{40pt} % Space after chapter title
274
+ \setbeforesecskip{-3.5ex plus -1ex minus -.2ex}
275
+ \setaftersecskip{2.3ex plus .2ex}
276
+ \setbeforesubsecskip{-3.25ex plus -1ex minus -.2ex}
277
+ \setaftersubsecskip{1.5ex plus .2ex}
278
+
279
+ %% Increase head height to accommodate headers
280
+ \setlength{\headheight}{18pt}
281
+
282
+ %% TOC Title formatting - use body font (Noto Sans), not heading font
283
+ \renewcommand{\printtoctitle}[1]{\normalfont\Large\bfseries\color{ContentPrimary}#1}
284
+
285
+ %% Customize TOC appearance
286
+ \renewcommand{\cftchapterfont}{\normalfont\bfseries\color{ContentPrimary}}
287
+ \renewcommand{\cftchapterpagefont}{\normalfont\bfseries\color{ContentPrimary}}
288
+ \renewcommand{\cftsectionfont}{\normalfont\color{ContentPrimary}}
289
+ \renewcommand{\cftsectionpagefont}{\normalfont\color{ContentPrimary}}
290
+
291
+ % Add dots to chapter TOC entries
292
+ \renewcommand{\cftchapterleader}{\color{ContentSecondary}\cftdotfill{\cftdotsep}}
293
+ \renewcommand{\cftsectionleader}{\color{ContentSecondary}\cftdotfill{\cftdotsep}}
294
+
295
+ % Adjust TOC spacing
296
+ \setlength{\cftbeforechapterskip}{0.8em}
297
+ \setlength{\cftbeforesectionskip}{0.3em}
298
+
299
+ %% Epigraph styling (for opening quotes)
300
+ \setlength{\epigraphwidth}{0.6\textwidth}
301
+ \setlength{\epigraphrule}{0pt}
302
+ \renewcommand{\textflush}{flushright}
303
+ \renewcommand{\epigraphsize}{\normalsize\itshape}
304
+
305
+ %% Abstract styling for memoir
306
+ \renewcommand{\abstractnamefont}{\Large\normalfont\bfseries\color{ContentPrimary}}
307
+ \renewcommand{\abstracttextfont}{\normalfont\normalsize}
308
+ \setlength{\absleftindent}{0pt}
309
+ \setlength{\absrightindent}{0pt}
310
+
311
+ %% Custom chapter style: dataimago-ell (modified ELL)
312
+ \makechapterstyle{dataimago-ell}{%
313
+ \chapterstyle{default}
314
+
315
+ % Font definitions using dataimago fonts
316
+ \renewcommand*{\chapnamefont}{\normalfont\large\HeadingFontBold\color{ContentSecondary}}
317
+ \renewcommand*{\chapnumfont}{\normalfont\HUGE\HeadingFontBold\color{ContentPrimary}}
318
+ \renewcommand*{\chaptitlefont}{\normalfont\huge\HeadingFontBold\color{ContentPrimary}}
319
+
320
+ % Calculate indent for right-side extension
321
+ \settowidth{\chapindent}{\chapnumfont 111}
322
+
323
+ % Remove default chapter heading elements
324
+ \renewcommand*{\printchaptername}{}
325
+ \renewcommand*{\chapternamenum}{}
326
+
327
+ % Custom chapter number printing (right-aligned)
328
+ \renewcommand*{\printchapternum}{%
329
+ % For numbered chapters - number right-aligned
330
+ \begin{adjustwidth}{0pt}{-0.0\chapindent}
331
+ \raggedleft%
332
+ {\chapnumfont\color{ContentPrimary}\thechapter}%
333
+ \par\vspace{0.3\onelineskip}%
334
+ \end{adjustwidth}%
335
+ }
336
+
337
+ % For unnumbered chapters (e.g., Preface, Acknowledgments)
338
+ \renewcommand\printchapternonum{%
339
+ \vphantom{\chapnumfont 1}%
340
+ \afterchapternum%
341
+ }
342
+
343
+ % Print chapter title (right-aligned above hrule)
344
+ \renewcommand*{\printchaptertitle}[1]{%
345
+ \begin{adjustwidth}{0pt}{-0.0\chapindent}
346
+ % Measure the title height
347
+ \setbox0=\vbox{%
348
+ \raggedleft%
349
+ {\chapnumfont\thechapter}%
350
+ \par\vspace{0.3\onelineskip}%
351
+ {\chaptitlefont\color{ContentPrimary}##1}%
352
+ \par\vspace{0.5\onelineskip}%
353
+ }%
354
+ \raggedleft%
355
+ {\chaptitlefont\color{ContentPrimary}##1}%
356
+ \par\vspace{0.5\onelineskip}%
357
+ % Horizontal rule with vertical rule extending upward at right end
358
+ \noindent\textcolor{BorderModerate}{%
359
+ \rule{\dimexpr\linewidth + 0.4\chapindent\relax}{0.4pt}%
360
+ \llap{\raisebox{0.4pt}[0pt][0pt]{\rule{0.4pt}{\ht0}}}%
361
+ }%
362
+ \end{adjustwidth}%
363
+ \par%
364
+ }
365
+
366
+ % Spacing after chapter title
367
+ \renewcommand*{\afterchaptertitle}{%
368
+ \par\vspace{1.5\onelineskip}%
369
+ }
370
+ }
371
+
372
+ % Apply the custom chapter style
373
+ \chapterstyle{dataimago-ell}
374
+
375
+ %% Chapter mark for headers (appears in page headers)
376
+ \renewcommand{\chaptermark}[1]{%
377
+ \markboth{\thechapter.\ #1}{}}
378
+
379
+ %% Unnumbered chapters still appear in TOC
380
+ \setcounter{tocdepth}{1}
381
+
382
+ %% Section formatting (inline numbering)
383
+ % Numbers in ContentSecondary, text in ContentPrimary
384
+ \setsecheadstyle{%
385
+ \Large\HeadingFontMedium\color{ContentPrimary}%
386
+ }
387
+
388
+ \setsubsecheadstyle{%
389
+ \large\HeadingFontRegular\color{ContentPrimary}%
390
+ }
391
+
392
+ \setsubsubsecheadstyle{%
393
+ \normalsize\HeadingFontLight\color{ContentPrimary}%
394
+ }
395
+
396
+ %% Section numbering format
397
+ \renewcommand{\thesection}{\thechapter.\arabic{section}}
398
+ \renewcommand{\thesubsection}{\thesection.\arabic{subsection}}
399
+ \renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}
400
+
401
+ %% TOC formatting for sections (indentation)
402
+ \cftsetindents{section}{1.5em}{2.5em}
403
+ \cftsetindents{subsection}{4.0em}{3.5em}
404
+ \cftsetindents{subsubsection}{7.5em}{4.5em}
405
+
406
+ %% Section number formatting (ContentSecondary color)
407
+ \renewcommand{\@seccntformat}[1]{%
408
+ \normalfont\HeadingFontMedium\textcolor{ContentSecondary}{\csname the#1\endcsname}\enspace
409
+ }
410
+
411
+ }{} % End memoir-specific configuration
412
+
413
+ %%%
414
+ %%% SECTION 4: CUSTOM BOXES AND ENVIRONMENTS
415
+ %%%
416
+ %%% Theorem boxes, definition boxes, and proof environment
417
+ %%%
418
+
419
+ %% Abstract Box suppression (for Quarto integration)
420
+ % Suppress Quarto's automatic abstract rendering by redefining as no-op
421
+ \@ifpackageloaded{comment}{}{%
422
+ \renewenvironment{abstract}{%
423
+ \setbox\z@\vbox\bgroup
424
+ }{%
425
+ \egroup
426
+ }
427
+ }
428
+
429
+ %% Theorem Box (using dataimago surface tokens)
430
+ \newtcolorbox{theorembox}[2][]{
431
+ enhanced,
432
+ breakable,
433
+ colback=SurfaceCode, % Token: color.surface.code
434
+ colframe=BorderCode, % Token: color.border.code
435
+ boxrule=0.6pt,
436
+ arc=3pt, % Token: radius.subtle
437
+ left=10pt,
438
+ right=10pt,
439
+ top=8pt,
440
+ bottom=8pt,
441
+ before skip=12pt,
442
+ after skip=12pt,
443
+ title={#2},
444
+ fonttitle=\HeadingFont\bfseries,
445
+ coltitle=ContentPrimary,
446
+ #1
447
+ }
448
+
449
+ %% Definition Box (lighter variant)
450
+ \newtcolorbox{definitionbox}[2][]{
451
+ enhanced,
452
+ breakable,
453
+ colback=SurfaceElevated, % Token: color.surface.elevated
454
+ colframe=BorderModerate, % Token: color.border.moderate
455
+ boxrule=0.8pt,
456
+ arc=4pt,
457
+ left=10pt,
458
+ right=10pt,
459
+ top=8pt,
460
+ bottom=8pt,
461
+ before skip=12pt,
462
+ after skip=12pt,
463
+ title={#2},
464
+ fonttitle=\HeadingFont\bfseries,
465
+ coltitle=ContentPrimary,
466
+ #1
467
+ }
468
+
469
+ %% Proof Environment (minimalist, dataimago style)
470
+ % Uses Noto Sans (body font), not Josefin Sans (heading font)
471
+ \AtBeginDocument{%
472
+ \renewenvironment{proof}{%
473
+ \noindent{\normalfont\bfseries\color{ContentPrimary}Proof.}\hspace{0.5em}%
474
+ }{\hfill$\blacksquare$}%
475
+ }
476
+
477
+ %%%
478
+ %%% SECTION 5: CAPTION AND LIST FORMATTING
479
+ %%%
480
+
481
+ %% Caption Formatting
482
+ \captionsetup{
483
+ font=small,
484
+ labelfont=bf,
485
+ textfont=normal,
486
+ justification=justified,
487
+ skip=8pt
488
+ }
489
+
490
+ %% List Styling
491
+ \setlist[enumerate]{
492
+ font=\normalfont,
493
+ leftmargin=*,
494
+ itemsep=0.5em,
495
+ parsep=0.25em
496
+ }
497
+
498
+ \setlist[itemize]{
499
+ font=\normalfont,
500
+ leftmargin=*,
501
+ itemsep=0.5em,
502
+ parsep=0.25em
503
+ }
504
+
505
+ %%%
506
+ %%% SECTION 6: CUSTOM COMMANDS
507
+ %%%
508
+
509
+ %% Software/Package names
510
+ \newcommand{\R}{{\textsf{R}\hspace{.3em}}}
511
+ \newcommand{\sgpFlow}{\textsf{{\textit{sgpFlow}\hspace{.2em}}}}
512
+
513
+ %% Section reference command
514
+ \newcommand{\sref}[1]{\hyperref[#1]{\S\ref*{#1}}}
515
+
516
+ %% Abstract name (uses Josefin Sans)
517
+ \renewcommand{\abstractname}{\normalsize\HeadingFont Abstract}
518
+
519
+ %%%
520
+ %%% SECTION 7: FRONT MATTER COMMANDS (Memoir only)
521
+ %%%
522
+
523
+ \@ifclassloaded{memoir}{%
524
+ %% dataimago logo command
525
+ \newcommand{\dataimagoLogo}{%
526
+ % AI Monogram logo
527
+ \href{https://dataimago.ai}{%
528
+ \includegraphics[width=0.75in]{assets/logos/ai_monogram.pdf}%
529
+ }%
530
+ }%
531
+
532
+ %% CC-BY-SA logo command
533
+ \newcommand{\ccbyLogo}{%
534
+ \href{https://github.com/dbetebenner/Betebenner_Braun_Paper_1/blob/main/LICENSE.md}{%
535
+ \IfFileExists{assets/logos/cc-by-sa.png}{%
536
+ \includegraphics[width=0.5in]{assets/logos/cc-by-sa.png}%
537
+ }{%
538
+ \small\color{DataimagoPrimary}CC BY-SA 4.0%
539
+ }%
540
+ }%
541
+ }%
542
+
543
+ %% Version command
544
+ \newcommand{\version}[1]{\def\theversion{#1}}
545
+ \version{v0.0.1} % Default version
546
+
547
+ %% Subtitle command (Quarto integration)
548
+ \providecommand{\subtitle}[1]{\gdef\thesubtitle{#1}}
549
+ \gdef\thesubtitle{}
550
+
551
+ %% Custom title page (right-justified, dataimago style)
552
+ \renewcommand{\maketitle}{%
553
+ % Set title page layout with 0.75in margins on each side
554
+ \settypeblocksize{9.0in}{7in}{*}
555
+ \setlrmargins{0.75in}{*}{1} % 0.75in left, equal right
556
+ \setulmargins{1in}{*}{*}
557
+ \checkandfixthelayout
558
+
559
+ \begin{titlingpage}
560
+ \begin{flushright}
561
+ \vspace*{1.5cm}
562
+
563
+ % Title
564
+ {\HeadingFontBold\color{ContentPrimary}\Huge\thetitle\par}
565
+ \vspace{0.8em}
566
+
567
+ % Subtitle
568
+ \ifx\thesubtitle\@empty
569
+ \else
570
+ {\LARGE\HeadingFontSemiBold\color{ContentSecondary}\thesubtitle\par}
571
+ \fi
572
+ \vspace{2em}
573
+
574
+ % Authors with superscript affiliations
575
+ {\large\normalfont%
576
+ Damian W. Betebenner$^{1}$\\[0.3em]
577
+ Henry I. Braun$^{2}$\par}
578
+ \vspace{1em}
579
+
580
+ % Affiliations
581
+ {\small\color{ContentSecondary}%
582
+ $^{1}$The National Center for the Improvement of Educational Assessment, Dover, NH, USA\\[0.3em]
583
+ $^{2}$Lynch School of Education, Boston College, Chestnut Hill, MA, USA\par}
584
+
585
+ \vspace{1.0in}
586
+
587
+ % Version, date, and license
588
+ {\normalsize\color{ContentSecondary}\theversion\par}
589
+ \vspace{0.2em}
590
+ {\normalsize\color{ContentSecondary}\thedate\par}
591
+ \vspace{0.7em}
592
+ \ccbyLogo
593
+
594
+ \vfill
595
+
596
+ % Bottom right: dataimago logo only
597
+ \dataimagoLogo
598
+
599
+ \end{flushright}
600
+ \end{titlingpage}
601
+
602
+ % Restore body page layout (1in margins)
603
+ \settypeblocksize{9.0in}{6.5in}{*}
604
+ \setlrmargins{1in}{*}{1}
605
+ \setulmargins{1in}{*}{*}
606
+ \checkandfixthelayout
607
+
608
+ \cleardoublepage
609
+ }
610
+ }{} % End memoir front matter commands
611
+
612
+ %%%
613
+ %%% END OF PACKAGE
614
+ %%%
615
+
616
+ \typeout{dataimago.sty loaded successfully!}
617
+ \endinput
618
+
@@ -0,0 +1,15 @@
1
+ {
2
+ "package": "@dataimago/css",
3
+ "version": "0.1.0-alpha.18",
4
+ "files": {
5
+ "dataviz/dataimago-dataviz.css": "128ed7ea829e6667ce3987e10df0fdbb0ccaf239f7dec629b019bae7481f0509",
6
+ "dataviz/dataimago-dataviz.json": "c9f11f24f9f485d087db124b25c52002bc52db4420751738180485f80f5269bd",
7
+ "dataviz/dataimago-dataviz.tex": "6fa584eed9fc11417cb7d7b29c19722e7c86d47eea3caac90022ecb36d01e2ca",
8
+ "dataviz/dataimago_dataviz.R": "a5e49ca7fe859df42f1013f2c4b37784c6a4306673494855b2072e6fd7ca6721",
9
+ "latex/dataimago-tokens.sty": "5db3f9be31a480ca38393f29bce535a7eb47c76cbf436eadcef17eaaf1bfae4f",
10
+ "latex/dataimago.sty": "2f3f9c8492607e5b58b3359043feb11d92b4a3beb04a0dbc4176a63e19e432cd",
11
+ "quarto/components.scss": "7370d1c1967f4fac2dc87a2cce394480f725967660847cb8b82e3d29b5aa4a30",
12
+ "quarto/dataimago-dark.scss": "8a99910b5c7e4cebdd39efc5223e3d086e1f362a678fd5d73851f97326df32d7",
13
+ "quarto/dataimago-light.scss": "46174d3e118e59493b75f6d80009dd09758337b6221b87343854f6f6f5c2211f"
14
+ }
15
+ }