diff options
Diffstat (limited to 'assets/texmf/tex/latex/scpzine')
| -rw-r--r-- | assets/texmf/tex/latex/scpzine/scpzine.sty | 467 |
1 files changed, 0 insertions, 467 deletions
diff --git a/assets/texmf/tex/latex/scpzine/scpzine.sty b/assets/texmf/tex/latex/scpzine/scpzine.sty deleted file mode 100644 index a46f0e0..0000000 --- a/assets/texmf/tex/latex/scpzine/scpzine.sty +++ /dev/null @@ -1,467 +0,0 @@ -% ============================================================ -% scpzine.sty — SCP Foundation Zine Package -% Reusable formatting for SCP personnel briefing zines -% -% Usage: \usepackage[options]{scpzine} -% -% PRINTING: -% Compile TWICE (TikZ needs two passes). -% Print > Booklet > A3 paper > flip on long edge. -% ============================================================ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{scpzine}[2026/04/23 SCP Foundation Zine Package] - -% ── Package options ───────────────────────────────────────── -\newif\ifscpzine@impose\scpzine@imposefalse -\DeclareOption{impose}{\scpzine@imposetrue} -\ProcessOptions\relax - -% ── Required packages ────────────────────────────────────── -\RequirePackage[a5paper, - top=9mm, bottom=9mm, - left=9mm, right=9mm]{geometry} -\RequirePackage[T1]{fontenc} -\RequirePackage[utf8]{inputenc} -\RequirePackage{lmodern} -\RequirePackage{courier} -\renewcommand{\familydefault}{\ttdefault} -\RequirePackage{microtype} -\RequirePackage{parskip} -\setlength{\parskip}{2pt plus 1pt minus 1pt} -\setlength{\parindent}{0pt} -\RequirePackage{setspace} -\RequirePackage{ragged2e} -\sloppy -\setlength{\emergencystretch}{3em} -\RequirePackage{graphicx} -\RequirePackage{wrapfig} -\RequirePackage[dvipsnames]{xcolor} -\RequirePackage{tikz} -\usetikzlibrary{calc} -\RequirePackage{booktabs} -\RequirePackage{tabularx} -\RequirePackage{array} -\RequirePackage{soul} -\RequirePackage{textcase} -\RequirePackage{eso-pic} -\RequirePackage[hidelinks]{hyperref} -\RequirePackage{fancyhdr} -\RequirePackage{environ} - -% ── Imposition (optional) ────────────────────────────────── -\ifscpzine@impose - \RequirePackage{pgfpages} - \pgfpagesuselayout{2 on 1}[a3paper,landscape,border shrink=3mm] -\fi - -% ============================================================ -% COLOUR PALETTE -% ============================================================ -\definecolor{paperbg}{RGB}{240, 232, 208} -\definecolor{fadedink}{RGB}{48, 44, 36} -\definecolor{stampred}{RGB}{158, 26, 26} -\definecolor{rulercolor}{RGB}{100, 88, 68} -\definecolor{redactbg}{RGB}{10, 10, 10} - -% ============================================================ -% PAGE BACKGROUND — aged paper on every page -% ============================================================ -\AddToShipoutPictureBG{% - \AtPageLowerLeft{% - \textcolor{paperbg}{\rule{\paperwidth}{\paperheight}}% - }% -} - -% ============================================================ -% DOCUMENT METADATA — set these in your document preamble -% ============================================================ -\newcommand{\scpnumber}[1]{\def\scp@number{#1}} -\newcommand{\scpclass}[1]{\def\scp@class{#1}} -\newcommand{\scpsite}[1]{\def\scp@site{#1}} -\newcommand{\scpsector}[1]{\def\scp@sector{#1}} -\newcommand{\scpdocid}[1]{\def\scp@docid{#1}} -\newcommand{\scpissue}[1]{\def\scp@issue{#1}} -\newcommand{\scpclearance}[1]{\def\scp@clearance{#1}} -\newcommand{\scptype}[1]{\def\scp@type{#1}} -\newcommand{\scpseries}[1]{\def\scp@series{#1}} - -% Defaults -\def\scp@number{SCP-XXX} -\def\scp@class{Euclid} -\def\scp@site{Site-19} -\def\scp@sector{Sector C} -\def\scp@docid{PB-XXX-X} -\def\scp@issue{1} -\def\scp@clearance{LEVEL 2} -\def\scp@type{HUMANOID} -\def\scp@series{SECTOR ORIENTATION SERIES} - -% ============================================================ -% HEADERS / FOOTERS -% ============================================================ -\pagestyle{fancy} -\fancyhf{} -\renewcommand{\headrulewidth}{0pt} -\renewcommand{\footrulewidth}{0pt} - -\fancyhead[L]{% - \scriptsize\underline{\texttt{RESTRICTED --- \scp@clearance\ PERSONNEL ONLY}}% -} -\fancyhead[R]{% - \scriptsize\underline{\texttt{\today}}% -} -\fancyfoot[R]{% - \scriptsize\textit{\texttt{continue to next page}}% -} -\fancyfoot[L]{% - \scriptsize\texttt{\scp@docid\ / ISSUE \scp@issue}% -} - -% Last page — no "continue" -\fancypagestyle{lastpage}{% - \fancyfoot[R]{}% - \fancyfoot[L]{\scriptsize\texttt{\scp@docid\ / ISSUE \scp@issue}}% -} - -% Cover pages — no header/footer -\fancypagestyle{coverpage}{% - \fancyhf{}% - \renewcommand{\headrulewidth}{0pt}% -} - -% Blank pages -\fancypagestyle{blankpage}{% - \fancyhf{}% - \renewcommand{\headrulewidth}{0pt}% -} - -% ============================================================ -% BASIC COMMANDS -% ============================================================ - -% Redaction — black box hiding text -\newcommand{\redact}[1]{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}{\textcolor{redactbg}{\texttt{#1}}}}% - }% -} - -% [DATA EXPUNGED] -\newcommand{\expunged}{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}{\textcolor{white}{\texttt{[DATA EXPUNGED]}}}}% - }% -} - -% [SEE LEVEL N FILE] — optional argument for clearance level -\newcommand{\seelevel}[1][3]{% - \NoCaseChange{% - \mbox{\colorbox{redactbg}% - {\textcolor{white}{\texttt{[SEE LEVEL #1 FILE]}}}}% - }% -} - -% Field label — bold inline label -\newcommand{\field}[1]{\textbf{#1}} - -% Horizontal rule -\newcommand{\ruleline}{% - \vspace{2pt}% - {\color{rulercolor}\hrule height 0.4pt}% - \vspace{2pt}% -} - -% Stamp overlay — \stampat[color]{rotation}{x}{y}{text} -\newcommand{\stampat}[5][stampred]{% - \begin{tikzpicture}[overlay, remember picture] - \node[ - rotate=#2, - text=#1, - font=\fontsize{13}{13}\selectfont\bfseries\ttfamily, - draw=#1, line width=1.6pt, - inner xsep=5pt, inner ysep=3pt, - opacity=0.55, anchor=center - ] at ($(current page.center)+(#3,#4)$) {#5}; - \end{tikzpicture}% -} - -% Photo with fallback placeholder -% Usage: \photoblock{filename}{caption} -\newcommand{\photoblock}[2]{% - \IfFileExists{#1}{% - \includegraphics[width=\linewidth, keepaspectratio]{#1}% - }{% - \begin{tikzpicture} - \draw[fill=black!5, draw=black!25, line width=0.5pt] - (0,0) rectangle (3.8cm, 3.2cm); - \draw[black!15, line width=0.4pt] - (0,0)--(3.8cm,3.2cm); - \draw[black!15, line width=0.4pt] - (3.8cm,0)--(0,3.2cm); - \node[font=\tiny\ttfamily, text=black!35] - at (1.9cm,1.7cm) {[PHOTO]}; - \node[font=\tiny\ttfamily, text=black!25] - at (1.9cm,1.3cm) {\texttt{#1}}; - \end{tikzpicture}% - }% - \par - \vspace{2pt} - {\tiny\texttt{#2}}% -} - -% Corner marks (used on covers) -\newcommand{\cornermarks}{% - \begin{tikzpicture}[overlay, remember picture] - \foreach \corner/\xd/\yd in { - north west/1/-1, north east/-1/-1, - south west/1/1, south east/-1/1}{ - \draw[fadedink, line width=1pt] - ($(current page.\corner)+(\xd*0.4cm,\yd*0.4cm)$) -- - ($(current page.\corner)+(\xd*0.9cm,\yd*0.4cm)$); - \draw[fadedink, line width=1pt] - ($(current page.\corner)+(\xd*0.4cm,\yd*0.4cm)$) -- - ($(current page.\corner)+(\xd*0.4cm,\yd*0.9cm)$); - } - \end{tikzpicture}% -} - -% ============================================================ -% ENVIRONMENTS -% ============================================================ - -% ── scpinterview — Interview/Dialog transcript ───────────── -% Usage: -% \begin{scpinterview}{Interview title}{Archive ref and notes} -% \say{Speaker}{Dialog text} -% \say{Speaker}{\textit{(action)} Dialog text} -% \end{scpinterview} -% -\newenvironment{scpinterview}[2]{% - \field{#1}% - \par\vspace{1pt}% - {\scriptsize\textit{#2}}% - \vspace{3pt}% - \ruleline% - \vspace{3pt}% -}{% - \vspace{3pt}% -} -\newcommand{\say}[2]{% - \vspace{2pt}% - \hspace{8pt}\field{#1:} #2% - \par% -} - -% ── scpextract — Interview sub-extract label ─────────────── -% Usage: \scpextract{Extract from Interview 049-INT-B-\redact{XX}:} -\newcommand{\scpextract}[1]{% - \textit{#1}% - \vspace{3pt}% -} - -% ── scptimeline — Incident timeline table ────────────────── -% Usage: -% \begin{scptimeline} -% \event{02:14}{Motion sensor alert.} -% \event{02:19}{Guard fails check-in.} -% \end{scptimeline} -% -\newenvironment{scptimeline}{% - \vspace{2pt}% - {\scriptsize% - \begin{tabular}{@{}p{1.1cm} p{6.1cm}@{}} - \toprule - \field{TIME} & \field{EVENT} \\ - \midrule -}{% - \bottomrule - \end{tabular}}% - \vspace{3pt}% -} -\newcommand{\event}[2]{% - \texttt{#1} & #2 \\[2pt]% -} - -% ── scpreftable — Reference/documentation table ─────────── -% Usage: -% \begin{scpreftable} -% \docref{049-INT-B}{Full interview series. Level 3.} -% \end{scpreftable} -% -\newenvironment{scpreftable}{% - \vspace{3pt}% - {\scriptsize% - \begin{tabular}{@{}p{2.4cm} p{4.8cm}@{}} - \toprule - \field{REFERENCE} & \field{CONTENTS} \\ - \midrule -}{% - \bottomrule - \end{tabular}}% -} -\newcommand{\docref}[2]{% - \texttt{#1} & #2 \\[2pt]% -} - -% ── scpincident — Incident summary header ───────────────── -% Usage: -% \begin{scpincident}{Breach BR-2012-049-\redact{7}} -% {Summarised for Level 2 distribution. Full report Level 3.} -% ... content ... -% \end{scpincident} -% -\newenvironment{scpincident}[2]{% - \field{Incident Summary: #1}% - \par\vspace{1pt}% - {\scriptsize\textit{#2}}% - \ruleline% -}{% -} - -% ── scpfoundnote — Hidden/found note ────────────────────── -% Usage: -% \begin{scpfoundnote}{Discovery context text}{Follow-up text} -% Note body text here... -% \end{scpfoundnote} -% -\NewEnviron{scpfoundnote}[2]{% - \begin{center} - \begin{minipage}{0.82\linewidth} - \setstretch{1.4} - {\scriptsize\textit{#1}}% - \vspace{8pt} - {\color{rulercolor}\hrule height 0.3pt} - \vspace{8pt} - {\small\itshape\BODY}% - \vspace{8pt} - {\color{rulercolor}\hrule height 0.3pt} - \vspace{5pt} - {\scriptsize\texttt{#2}}% - \end{minipage} - \end{center}% -} - -% ── scpaddendum — Classified addendum block ─────────────── -% Usage: -% \begin{scpaddendum}{Filed by \redact{XX}, Senior Researcher} -% \expunged -% {\scriptsize\textit{[Withheld from Level 2. Level 3 required.]}} -% \end{scpaddendum} -% -\newenvironment{scpaddendum}[1]{% - \vspace{3pt}% - \ruleline% - \field{Addendum --- #1:}% - \vspace{2pt}% -}{% -} - -% ── scpguidance — Personnel guidance numbered items ─────── -% Usage: -% \begin{scpguidance}{If SCP-049 Addresses You} -% \guidanceitem{Do not engage.}{Explanation text.} -% \guidanceitem{Do not argue.}{Explanation text.} -% \end{scpguidance} -% -\newenvironment{scpguidance}[1]{% - \field{Personnel Guidance --- #1:}% - \par% -}{% -} -\newcommand{\guidanceitem}[2]{% - \vspace{2pt}% - \field{#1} #2% - \par% -} - -% ── scpsidephoto — Wrapped sidebar photo ────────────────── -% Usage: \scpsidephoto{r}{0.42}{assets/photo.jpg}{Caption text} -\newcommand{\scpsidephoto}[4]{% - \begin{wrapfigure}{#1}{#2\linewidth} - \vspace{-4pt} - \photoblock{#3}{#4} - \vspace{-8pt} - \end{wrapfigure}% -} - -% ============================================================ -% COVER PAGE COMMANDS -% ============================================================ - -% Classification header (multilingual) -\newcommand{\classificationheader}[1]{% - \noindent - \begin{tabular*}{\linewidth}{@{}l@{\extracolsep{\fill}}r@{}} - {\scriptsize\texttt{RESTRICTED --- \scp@clearance\ PERSONNEL ONLY}} & - {\scriptsize\smash{\raisebox{-50pt}{\includegraphics[scale=0.03]{#1}}}} \\ - \end{tabular*}% - {\scriptsize\texttt{RESTREINT --- PERSONNEL DE NIVEAU 2 UNIQUEMENT}}\\ - {\scriptsize\texttt{VERTRAULICH --- NUR FUR PERSONAL DER STUFE 2}}\\ - {\scriptsize\texttt{RESERVADO --- SOLO PERSONAL DE NIVEL 2}}% -} - -% Cover metadata block -\newcommand{\covermetadata}{% - {\scriptsize\texttt{PERSONNEL BRIEFING DOCUMENT}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@series}}}\\[3pt] - {\normalsize\bfseries\texttt{\scp@number}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@type} / \MakeUppercase{\scp@class} / \MakeUppercase{\scp@sector}}}\\[3pt] - {\scriptsize\texttt{DOCUMENT: \scp@docid\quad ISSUE: \scp@issue}}% -} - -% Signature block -% Usage: \signatureblock{Name or \redact{XX}}{Title}{Location} -\newcommand{\signatureblock}[3]{% - \begin{tabular}{l} - {\scriptsize\texttt{Authorised for distribution by:}} \\[2pt] - \hline \\[-8pt] - {\scriptsize\texttt{#1, #2}} \\ - {\scriptsize\texttt{#3}} \\ - \hline \\[-4pt] - \end{tabular}% -} - -% Cover disclaimer block -\newcommand{\coverdisclaimer}[1]{% - \begin{minipage}{0.9\linewidth} - {\scriptsize\texttt{#1}}% - \end{minipage}% -} - -% Back cover info block -\newcommand{\backcoverbody}{% - {\small\bfseries\texttt{\scp@number}}\\[2pt] - {\scriptsize\texttt{\MakeUppercase{\scp@sector} PERSONNEL BRIEFING}}\\[1pt] - {\scriptsize\texttt{DOCUMENT \scp@docid\ / ISSUE \scp@issue}}\\[1pt] - {\scriptsize\texttt{\MakeUppercase{\scp@site} / CONTAINMENT DIVISION}}% -} - -% ============================================================ -% ITEM HEADER — standard SCP description header -% ============================================================ -% Usage: \scpheader (uses metadata set in preamble) -\newcommand{\scpheader}{% - \field{Item \#:} \scp@number \hfill - \field{Object Class:} \scp@class \hfill - \field{Site:} \scp@site% - \ruleline% -} - -% ============================================================ -% BLANK PAGE with centered message -% ============================================================ -\newcommand{\blankpagemessage}[1]{% - \thispagestyle{blankpage}% - \vspace*{\fill} - \begin{center} - {\small\texttt{#1}}% - \end{center} - \vfill% -} - -% ============================================================ -% SET DEFAULT TEXT COLOR -% ============================================================ -\AtBeginDocument{\color{fadedink}} - -\endinput |
