Initial Commit
This commit is contained in:
commit
c6065a132d
1 changed files with 198 additions and 0 deletions
198
npr.cls
Normal file
198
npr.cls
Normal file
|
@ -0,0 +1,198 @@
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Document Setup
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Class Definition
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{npr}
|
||||
|
||||
\LoadClass[twocolumns, twoside]{article}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Package Imports
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\RequirePackage[top=20mm,bottom=25 mm, left= 10 mm, right = 10mm,columnsep=20pt]{geometry}
|
||||
% Basics
|
||||
\RequirePackage[english,french]{babel} % Language hyphenation and typographical rules
|
||||
\renewcommand*{\dotFFN}{} % Remove dot afer footnote markers
|
||||
\RequirePackage[utf8]{inputenc}
|
||||
\RequirePackage{tipa}
|
||||
\RequirePackage{nth} % Date Formatting for the Months
|
||||
\RequirePackage{yfonts} % Support for old german fonts
|
||||
\newcommand{\hsc}[1]{{\footnotesize\MakeUppercase{#1}}} % Cheaty small caps to handle italic and such % FIXME: WTF IS THAT
|
||||
\RequirePackage{lettrine} % The lettrine is the first enlarged letter at the beginning of the text
|
||||
|
||||
\RequirePackage{enumitem} % Customized lists
|
||||
\setlist[itemize]{noitemsep} % Make itemize lists more compact
|
||||
\RequirePackage{pdfpages}
|
||||
\RequirePackage{multicol}
|
||||
|
||||
\RequirePackage{blindtext} % Lorem ipsum
|
||||
\RequirePackage[sc]{mathpazo} % Use the Palatino font % Cringe
|
||||
\RequirePackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
|
||||
\linespread{1.05} % Line spacing - Palatino needs more space between lines
|
||||
\RequirePackage{microtype} % Slightly tweak font spacing for aesthetics
|
||||
\RequirePackage{abstract} % Allows abstract customization
|
||||
\renewcommand{\abstractnamefont}{\normalfont\bfseries} % Set the "Abstract" text to bold
|
||||
\renewcommand{\abstracttextfont}{\normalfont\small\itshape} % Set the abstract itself to small italic text
|
||||
|
||||
\RequirePackage{booktabs} % Horizontal rules in tables
|
||||
|
||||
% Maths
|
||||
\RequirePackage{siunitx}
|
||||
\RequirePackage{mathtools, mathrsfs}
|
||||
\RequirePackage{amssymb, amsthm}
|
||||
\RequirePackage{physics}
|
||||
\RequirePackage{fancybox}
|
||||
\RequirePackage{esvect}
|
||||
%\RequirePackage{tikz-feynman}
|
||||
%\RequirePackage{natbib}
|
||||
|
||||
\RequirePackage{graphicx} % Picture Input Customization
|
||||
\RequirePackage[absolute, overlay]{textpos} % Allows for absolute positioning of elements (namely date and number on the top of the first page)
|
||||
\RequirePackage[hang, small,labelfont=bf,up,textfont=it,up]{caption} % Custom captions under/above floats in tables or figures
|
||||
\RequirePackage{subcaption} % Multiple Captions
|
||||
\RequirePackage{wrapfig} % Figures with text next to it
|
||||
|
||||
\RequirePackage{tcolorbox} % Fancy Boxes
|
||||
\RequirePackage{xcolor}
|
||||
\definecolor{physics_blue}{RGB}{96, 165, 165} % Blue color used in the official graphical theme of the physics department
|
||||
|
||||
\RequirePackage{tikz} % TikZ ist kein Zeichenprogramm = Life = Time And Relative Dimension In Space
|
||||
\usetikzlibrary{decorations.markings, decorations.text} % Libs for fun arrows and nodes
|
||||
\usetikzlibrary{calc} % Lib for Relative Positioning
|
||||
\RequirePackage{varwidth}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Title Customisation
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\RequirePackage{titlesec} % Allows customization of titles
|
||||
\renewcommand\thesection{\Roman{section}} % Roman numerals for the sections
|
||||
\renewcommand\thesubsection{\roman{subsection}} % roman numerals for subsections
|
||||
\titleformat{\section}[block]{\Large\scshape\centering}{\thesection.}{1em}{}[] % Change the look of the section titles
|
||||
\titleformat{\subsection}[block]{\large\bfseries\sffamily\centering}{\thesubsection.}{1em}{} % Change the look of the subsection titles
|
||||
\titleformat{\subsubsection}[block]{\large\sffamily}{\thesubsubsection.}{1em}{} % Change the look of the subsubsection titles
|
||||
|
||||
% Modify ToC Name Lines
|
||||
\addto\captionsfrench{
|
||||
\renewcommand{\contentsname}%
|
||||
{\vspace{-1.2cm}}%
|
||||
}
|
||||
|
||||
% Main Title of Edition
|
||||
\RequirePackage{titling} % Customizing the title section
|
||||
\setlength{\droptitle}{-7\baselineskip} % Move the title up
|
||||
\pretitle{%
|
||||
\centering
|
||||
%\Huge
|
||||
\bfseries
|
||||
\textgoth
|
||||
}
|
||||
|
||||
|
||||
% Article title formatting
|
||||
\posttitle{\centering
|
||||
\begin{tikzpicture}
|
||||
\draw[white] (0, 1) -- (1, 1);
|
||||
\draw[draw=none, fill=physics_blue] (-6.5, -4.2) rectangle (6.5, -5.7);
|
||||
\draw[draw=none, shading=axis, left color = physics_blue, right color = white] (6.48, -4.2) rectangle (8, -5.7);
|
||||
\draw[draw=none, shading=axis, left color = white, right color = physics_blue] (-6.48, -4.2) rectangle (-8, -5.7);
|
||||
\draw (0, -3) node{\includegraphics[width=0.7\linewidth]{Main_pict/NPR.png}};
|
||||
\draw (-4.5, -4.95) node[text width=3cm, rectangle, text centered]{\large\sffamily Normale Physics Review};
|
||||
\draw (4.5, -4.95) node{\includegraphics[width=2.5cm]{Main_pict/Logo_DepPhys-ENS_Blanc_justeENS.pdf}};
|
||||
\draw (0, -6.5) node{\large\textit{--- Fights Bohr-dom ---}};
|
||||
\end{tikzpicture}
|
||||
|
||||
\vspace{-1.5cm}
|
||||
}
|
||||
|
||||
|
||||
% Blue highlight for title
|
||||
\newcommand{\highlight}[1]{\texorpdfstring{\begin{tikzpicture}[baseline=-4pt]
|
||||
\draw (0, 0) node[white](A){#1};
|
||||
\coordinate[shift={(0, -0.1)}] (B) at (A.north east);
|
||||
\coordinate[shift={(0, 0.05)}] (C) at (A.south east);
|
||||
\coordinate[shift={(0, 0.05)}] (D) at (A.south west);
|
||||
\coordinate[shift={(0, -0.1)}] (E) at (A.north west);
|
||||
\coordinate[shift={(0.5, 0)}] (F) at (B);
|
||||
\coordinate[shift={(0.5, 0)}] (G) at (C);
|
||||
\coordinate[shift={(-0.5, 0)}] (H) at (D);
|
||||
\coordinate[shift={(-0.5, 0)}] (I) at (E);
|
||||
\coordinate[shift={(-0.02, 0)}] (B2) at (B);
|
||||
\coordinate[shift={(-0.02, 0)}] (C2) at (C);
|
||||
\coordinate[shift={(0.02, 0)}] (D2) at (D);
|
||||
\coordinate[shift={(0.02, 0)}] (E2) at (E);
|
||||
\draw[draw=none, fill=physics_blue] (B) -- (C) -- (D) -- (E);
|
||||
\draw[draw=none, shading=axis, left color=physics_blue, right color=white] (B2) -- (F) -- (G) -- (C2) -- cycle;
|
||||
\draw[draw=none, shading=axis, right color=physics_blue, left color=white] (D2) -- (H) -- (I) -- (E2) -- cycle;
|
||||
\draw (0, 0) node{#1};
|
||||
\end{tikzpicture}}{#1}}
|
||||
|
||||
% Blue underlining for subsections
|
||||
\newcommand{\substyle}[2][0.47\textwidth]{\texorpdfstring{\begin{tikzpicture}[baseline=-4pt]
|
||||
\draw (0, 0) node[white](A){\begin{varwidth}{#1}\centering#2\end{varwidth}};
|
||||
\coordinate[shift={(0, 0.0)}] (C) at (A.south east);
|
||||
\coordinate[shift={(0, 0.0)}] (D) at (A.south west);
|
||||
\draw[draw=physics_blue, line width=1.5pt] (C) -- (D);
|
||||
\draw (0, 0) node{\begin{varwidth}{#1}\centering#2\end{varwidth}};
|
||||
\end{tikzpicture}}{#2}}
|
||||
|
||||
% Boxes to put aside text in (explanations, ...) % TODO: Think about modification with wrapfigures ? What usage ?
|
||||
\newcommand{\boxedtext}[2]{\begin{center}
|
||||
\begin{tikzpicture}
|
||||
\draw (0, 0) node[anchor=south, rectangle, text centered](A){\begin{varwidth}{0.85\linewidth}
|
||||
\sffamily #1
|
||||
\end{varwidth}};
|
||||
\draw[draw=none, fill=physics_blue] ([shift={(-0.1, 0)}]A.south west) -- ([shift={(-0.1, 0)}]A.north west) arc (180:90:0.1) -- ([shift={(0, 0.1)}]A.north east) arc (90:0:0.1) -- ([shift={(0.1, 0)}]A.south east) -- cycle;
|
||||
\draw[thick] (-0.475\linewidth, 0) -- (0.475\linewidth, 0);
|
||||
\draw (0, 0) node[anchor=south, rectangle, text centered]{\begin{varwidth}{0.85\linewidth}
|
||||
\sffamily #1
|
||||
\end{varwidth}};
|
||||
\draw (0, 0) node[anchor=north, rectangle, text justified, text width = 0.9\linewidth, shift={(0, -0.1)}](B){#2};
|
||||
\draw[thick] let \p1 = (B.south) in (-0.475\linewidth, \y1-0.5) -- (0.475\linewidth, \y1-0.5);
|
||||
\end{tikzpicture}
|
||||
\end{center}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Headers and footers
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\RequirePackage{fancyhdr}
|
||||
\RequirePackage{float}
|
||||
|
||||
\pagestyle{fancy} % All pages have headers and footers
|
||||
\fancyhead{} % Blank out the default header
|
||||
\fancyfoot{} % Blank out the default footer
|
||||
\fancyhead[C]{Normale Physics Review~$\bullet$~\datepubli~$\bullet$ \numedition} % Custom header text
|
||||
\fancyfoot[RO,LE]{\thepage} % Custom footer text
|
||||
\renewcommand{\footrulewidth}{1pt}
|
||||
|
||||
\fancypagestyle{plain}{
|
||||
\fancyhf{}
|
||||
\fancyfoot[C]{\thepage}
|
||||
\fancyfoot[L]{ISSN 2967-8919}
|
||||
\renewcommand{\headrulewidth}{0.0pt}
|
||||
}
|
||||
|
||||
\RequirePackage{perpage} % Make footnote numbering page-specific
|
||||
\MakePerPage{footnote}
|
||||
\renewcommand{\thefootnote}{\fnsymbol{footnote}} % Replace footnote numbering by symbol
|
||||
|
||||
|
||||
% TODO: Think about what the hell this is ?
|
||||
\def\restrictionaux#1#2{{#1\,\smash{\vrule height .8\ht1 depth .85\dp1}}_{\,#2}}
|
||||
\def\restriction#1#2{\mathchoice
|
||||
{\setbox1\hbox{${\displaystyle #1}_{\scriptstyle #2}$}
|
||||
\restrictionaux{#1}{#2}}
|
||||
{\setbox1\hbox{${\textstyle #1}_{\scriptstyle #2}$}
|
||||
\restrictionaux{#1}{#2}}
|
||||
{\setbox1\hbox{${\scriptstyle #1}_{\scriptscriptstyle #2}$}
|
||||
\restrictionaux{#1}{#2}}
|
||||
{\setbox1\hbox{${\scriptscriptstyle #1}_{\scriptscriptstyle #2}$}
|
||||
\restrictionaux{#1}{#2}}}
|
||||
|
||||
\newenvironment{Figure} % Fixes figures in multicols environments
|
||||
{\par\medskip\noindent\minipage{\linewidth}}
|
||||
{\endminipage\par\medskip}
|
||||
|
||||
% Hyperref breaks everything
|
||||
\RequirePackage[hidelinks]{hyperref} % For hyperlinks in the PDF
|
Loading…
Reference in a new issue