From 26f1a7a2e671a7a1b29a7a8349d44f464efcc406 Mon Sep 17 00:00:00 2001 From: Joseph Timothy Foley Date: Thu, 3 Feb 2022 10:17:26 +0000 Subject: [PATCH] Merge from earlier attempt to make two argement \title --- .gitignore | 1 + TODO.txt | 6 + rubook.sty | 422 --------------------------------------------------- ruthesis.sty | 22 ++- test.tex | 23 ++- 5 files changed, 45 insertions(+), 429 deletions(-) create mode 100644 TODO.txt delete mode 100644 rubook.sty diff --git a/.gitignore b/.gitignore index f9224e9..fc01ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ auto/* /BSC_MSC-NAME-YEAR.pdf /PHD-NAME-YEAR.pdf /instructions.pdf +/test.pdf diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..14617ab --- /dev/null +++ b/TODO.txt @@ -0,0 +1,6 @@ +Need to match new guidelines +https://en.ru.is/st/de/graduate-study/ +https://en.ru.is/media/skjol-td/TD_E-cover_2019.pdf +https://en.ru.is/media/skjol-lagadeildar/Instructions_2019.pdf +https://en.ru.is/rules/study-and-examination-rules/rules-on-submission-of-final-theses-at-ru/ +http://english.enicnaric.is/iqfhe.html diff --git a/rubook.sty b/rubook.sty deleted file mode 100644 index 46d3c98..0000000 --- a/rubook.sty +++ /dev/null @@ -1,422 +0,0 @@ -%% --------------------------------------------------------------------------------------------- -%% LaTeX Package for Reykjavík University Books, -%% --------------------------------------------------------------------------------------------- -%% Original Author: Bjórn Þór Jónsson (bjorn AT ru.is) -%% Modified by: Eyjólfur Ingi Ásgeirsson -%% Modified and Maintained by: Joseph Timothy Foley -%% Refactored/Simplified on 2020-02-03: Joseph Timothy Foley -%% Questions, comments, complaints: latex-help@LIST.RU.IS -%% Created on 2020-02-05 -%% This code is distributed under the MIT license -%% Details at LICENSE.md - -%% Reference for class/package writers -%% http://ctan.uib.no/macros/latex/doc/clsguide.pdf - -%% --------------- Identification ---------------------------- -\newcommand{\fileversion@rubook}{2.0} -\newcommand{\filedate@rubook}{2020/02/03}% must be YYYY/MM/DD! -\newcommand{\fileauthor@rubook}{Joseph Timothy Foley, foley at RU.IS} -\ProvidesPackage{rubook}[\filedate@rubook by \fileauthor@rubook] -\NeedsTeXFormat{LaTeX2e} -\typeout{Book Class for Reykjavik University \fileversion@rubook <\filedate@rubook>, by \fileauthor@rubook} - -%% ---------------- Critical packages ----------------------------- -% Toolbox of many many macros that make a lot of latex code smarter and more robust -% Incl: \newbool, \ifbool, etc. -% http://texdoc.net/texmf-dist/doc/latex/etoolbox/etoolbox.pdf -\RequirePackage{etoolbox} - -%\RequirePackage{ifdraft} -% \RequirePackage{templatetools} -%% Template Tools have a variety of useful macros for template authors -%% https://ctan.math.illinois.edu/macros/latex/contrib/templatetools/templatetools.pdf -%% WARNING: They seem to be incompatible with memoir -%% \SetTemplateDefinition{Group}{Property}{Code} -%% \UseDefinition{Group}{Property} - - - -%% ---------------- Boolean switches ----------------------------- -%% Booleans make it easy to enable and disable parts of the template -\newbool{debug} -\newbool{draftbool} -\newbool{online} -\newbool{IS} -\newbool{proof} - - -%% ---------------- Declaration of Class Options-------------------- -%% Remember that we have \AtEndOfClass{},\AtEndOfPackage{} -%% \AtBeginDocument{}, \AtEndDocument{} -%% If you want execution conditional on file existence -%% \IfFileExists{filename}{true}{false} -%% \InputIfFileExists{filename}{true}{false} -%% For error reporting -%% \ClassError{class-name}{error-text}{help-text} -%% \PackageError{class-name}{error-text}{help-text} - -% Generalized settings -\DeclareOption{debug}{% - \booltrue{debug} - \typeout{rubook option: debug}% - \typeout{DEBUG MODE ENABLED! PREPARE FOR VERBOSITY!}} - -\DeclareOption{draft}{\booltrue{draftbool}} - -\DeclareOption{IS}{\booltrue{IS}} - -\DeclareOption{online}{ - \setbool{online}{true} - \typeout{rubook option: online} -} - -\DeclareOption{forcegraphics}{% - \PassOptionsToPackage{final}{graphicx} - \PassOptionsToPackage{final}{pdfpages} - \PassOptionsToPackage{final}{hyperref} - %% add any other elements that should be included in draft - \finalifforcegraphics{graphicx}%We have to catch graphicx early - \setbool{forcegraphics}{true}\typeout{rubook option: forcegraphics}% -}% - -%%% Memoir test: Memoir Manual 21.2 p.367 -%% Only works with the memoir class!!!!!!!!!!!!!!! - -%% ---------------- Execution of Options ----------------------------- -\ProcessOptions\relax% this stops searching for a * in \ProcessOptions* -%% Read page 20 of http://latex-project.org/guides/clsguide.pdf -%% carefully before modifying any of the execution and previous section. -%% ---------------- Package Loading ----------------------------- - -\ifbool{online} -{\ExecuteOptions{openany}}%% Online format does not have right-vs-left -{\ExecuteOptions{openright}}%% All of our printed formats are going to be opening to the right - -%% Now to print the status of all the booleans if debug boolean is set -%% Any boolean testing must be after the \LoadClass otherwise the Option execution -%% has not completed. -\ifbool{debug}{% - \ifbool{online}{\typeout{rubook bool: online}}{} - \ifbool{forcegraphics}{\typeout{rubook bool: forcegraphics}}{} - \ifbool{proof}{\typeout{rubook bool: proof}}{} - \ifbool{debug}{\typeout{rubook bool: debug}}{} -}{} - -%% ---------------- Internationalization ----------------------------- -%% Unicode setup -\RequirePackage[T1]{fontenc} -\RequirePackage[utf8]{inputenc} -% allows UTF encoding, needed for Icelandic and other accented characters - -\ifbool{IS} -{\RequirePackage[english,icelandic]{babel}}%%Icelandic main language -{\RequirePackage[icelandic,english]{babel}}%%English main language - - -% \RequirePackage[autostyle,strict]{csquotes} -%% http://mirrors.concertpass.com/tex-archive/macros/latex/contrib/csquotes/csquotes.pdf -%% You invoke with \enquote{} and \blockquote{} -%% csquotes must be loaded before babel for AUCTeX -%% autostyle: update style as language changes in document -%% strict: any warnings become errors -%% Don't forget to load Babel! - -%% Babel allows various automatic text to be in selected languages -%% But to use the options, you have to always load it, even for english -%% The languages must be specified in order. - -%% ---------------- Graphics ------------------------------ -\RequirePackage{graphicx} -%% GraphicsX converts and includes graphics intelligently - -\graphicspath{{graphics/}{Graphics/}{./}} -%% This is a list of folders to search for graphics files to include -%% Each path should be in a {}. -%% Make sure that the upper/lowercase of the letters matches the folder or -%% you may have weird problems with partners using OSX or Linux. -%% Note that you don't have to put the folder where the .tex file is, it is -%% included automatically, though it is bad practice to put your -%% graphics there -%% LaTeX will search from left to right in the list, so you can put "cropped" versions -%% in the first directory and it will grab them first. e.g. -%\graphicspath{{graphics-cropped/}{graphics/}{Graphics/}{./}} -%% -%% If you put a // at the end of the path, it will recursively search for graphics -%% files on unix-based (OSX, Linux, etc.) platforms. - - -%% ---------------- URLs and Paths ----------------------------- -\PassOptionsToPackage{obeyspaces,spaces,hyphens,allowmove}{url} -\RequirePackage{url} -%% The url package typesets url's and unix file paths nicely when they -%% become long. \url{} -%% Also defines \path{} which works with filepaths including windows paths. -%% Watch out that you leave a space after a last \ e.g. \path{C:\ } -%% You need another verbatim environment to make those typeset properly. -%% Also defines the \path{} command for paths -%% Option: obeyspace to deal with spaces in a path/url -%% Option: spaces to do linebreaks at the spaces. -%% Option: hyphens to do linebreaks at hyphens. -%% Option: allowmove makes URLs not-fragile, so they can go in things that move -%% WARNING: If this breaks you will get very very weird errors - -%% ---------------- Miscellaneous Packages ---------------------- -\RequirePackage{booktabs} -%% Format tables properly as in a book -%% \toprule,\midrule,\bottomrule - -%% ---------------- Fonts ----------------------------- -%%% For help, read http://latex-project.org/guides/fntguide.pdf -%% -% save the current font size -\newlength{\normaltextsize} -\setlength{\normaltextsize}{\f@size pt} - -%% Font guide at -%% http://latex-project.org/guides/fntguide.pdf - -% set the font defaults (if they need to be further adjusted) -%\renewcommand{\encodingdefault}{t1} - -%\renewcommand{\rmdefault}{ptm} % adobe times -%\renewcommand{\sfdefault}{phv} % adobe helvetica -%\renewcommand{\ttdefault}{pcr} % adobe courier -%% cmr : computer modern roman -%% cmss : computer modern sans oblique -%% cmm : computer modern math -%% ptm : (postscript) Adobe Times -%% phv : (postscript) Adobe Helvetica -%% pcr : (postscript) Adobe Courier - -%\renewcommand{\familydefault}{\sfdefault} % switch to \sfdefault if you want to force sanserif -%% \familydefault should be one of the short letter codes such as "lm" or "ptm" -%\renewcommand{\familydefault}{\rmdefault} - -%\renewcommand{\seriesdefault}{m} -%% m : medium -%% b : bold -%% bx : bold extended -%% sb : semi bold -%% c : condensed - -%\renewcommand{\shapedefault}{n} -%% n : upshape (normal) -%% it : italics -%% sl : slanted -%% sc : small caps - -%%\fontsize{12pt}{14pt} % args: fontsize, baselineskip (font+space) -%% normal sequence of increasing sizes: 5,7,8,9,10,12,14.4,17.28,20.74,24.88 - -%% Specific fonts -%% Note that you can leave off elements and it will use the last value set (or default??) -% \def\myfont{\fontencoding{T1}\fontfamily{lm}\fontseries{m}\fontshape{n}\fontsize{14pt}{16pt}\selectfont} -% \fontsize{SIZE}{BASELINESKIP} - -\def\titletitlefont{\fontseries{b}\fontsize{17pt}{20pt}\selectfont} -\def\titletextfont{\fontsize{14pt}{16pt}\selectfont} -\def\titleinfofont{\fontsize{12}{14}\selectfont} -\def\sigtextfont{\fontsize{12pt}{14pt}\selectfont} -\def\warningfont{\fontseries{b}\fontsize{24pt}{28pt}\selectfont} - -%%%%%%%%%%%%%%%%% Colors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 -%% Setting colors in text -%% Usage: -%% \textcolor{rured}{Some text.} -%% {\color{rured}Some text.} -\RequirePackage{xcolor} -\definecolor{rugray}{rgb}{0.2,0.2,0.2} -\definecolor{rured}{rgb}{0.84,0.10,0.13} - -%% ---------------- Main Code ----------------------------- -%% Remember that we can declare commands (to make fragile things safe) -%% The * form is for ``short'' commands, not longer than a paragraph -%% \DeclareRobustCommand{cmd}[num][default]{definition} -%% \DeclareRobustCommand*{cmd}[num][default]{definition} -%% For checking if commands are redefined -%% \CheckCommand{cmd}[num][default]{definition} - - -%% Spacing modes from the memoir class -%\SingleSpacing{} % single spacing -%\OnehalfSpacing{} % one and a half -%\DoubleSpacing{} % Double spacing, very ugly. - -%% The official guidelines say to put the page in the middle bottom, but -%% that was clearly written for the MS Word users. We follow proper book setup. - -%% Comprehensive list of styles for memoir is in 7.2 (page 106) -%% If you need to adjust the style on the chapters, modify chapter -%% predefined styles: -%% empty: no header nor footer -%% plain: page num in bot center -%% simple: pagenum and marks on top outer edges -%\makeoddhead{chapter}{}{}{} %to change only one side - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% Some may need a different front logo -\newcommand{\frontlogo@rubook}{ru-logo} -\newcommand{\frontlogo}[1]{\renewcommand{\frontlogo@rubook}{#1}} - -\renewcommand{\maketitlehooka}{\begin{centering}\includegraphics[width=4cm]{\frontlogo@rubook}\par\end{centering}\vspace{2mm}}% -\renewcommand{\pretitle}{\begin{center}\titletitlefont}% -\renewcommand{\posttitle}{\par\end{center}} - -% \renewcommand{\maketitlehookb}{\begin{center}\titletextfont{}by\end{center}\vspace{1mm}} -% 1mm adjustment to center the "by". I've disabled it because I think the "by" looks unprofessional. - -\renewcommand{\preauthor}{\titletextfont\begin{center}\large\par} -\renewcommand{\postauthor}{\par\end{center}} -\newcommand{\titledetails}[1]{\renewcommand{\maketitlehookc}{#1}} -\renewcommand{\predate}{\begin{center}\large} -\renewcommand{\postdate}{\par\end{center}} -\aliaspagestyle{title}{empty} -%% ----- COPYRIGHT PAGE ----------------------------------------------------------------------- -\newcommand{\copyrightpage}{ - % actually in books, this is often on the left side - \begin{coverleft} - \begin{vplace}[1.0] % ratio of space above and below - \centering - \OnehalfSpacing% - Copyright\\ - \theauthor\\ - \thedate\\ - \end{vplace} - \end{coverleft} -} - -%% ---------- Page Styles -------------------------------------------------------------- -%% --------------------------------------------------------------------------------------------- -%% Setup the formatting at the beginning of the document (Front material) -%% TODO: use the memoir \frontmatter \mainmatter \backmatter -%% See documentation, page 73 - -%%%%%%%%% PARAGRAPH ADJUSTMENTS %%%%%%%%%%%%%%%%%%%%%%%%%%% -\newlength{\savedparindent} -\newcommand{\disableindents}{\setlength{\parindent}{0pt}} -\newcommand{\enableindents}{\setlength{\parindent}{\savedparindent}} - -\AtBeginDocument{ - \frontmatter - \setlength{\savedparindent}{\parindent} % save the current parindent - \SingleSpacing% -} - -%% Disable clearforchapter on formats that do not need blank pages -\ifbool{online}{\renewcommand{\clearforchapter}{\newpage}}{} -\ifbool{draftbool}{\renewcommand{\clearforchapter}{\newpage}} - % waste less blank pages in draft mode - % see p123 http://ctan.uib.no/macros/latex/contrib/memoir/memman.pdf - - -\newenvironment{cover}% commonalities for the cover material -{\thispagestyle{cover}% - \pagestyle{cover}% - \clearforchapter% clear to chapter setting if note online - \disableindents% - \titletextfont\SingleSpacing}% -{%\setlength{\TPMargin}{0mm} %% margins inside the textblock - \enableindents{}\newpage}% - - -\newenvironment{coverleft}%This is material that is OK being on the - %backside -{\thispagestyle{cover}% - \pagestyle{cover}% - \cleartoverso% - %\clearforchapter% clear to chapter setting - \disableindents% - \titletextfont\SingleSpacing}% -{%\setlength{\TPMargin}{0mm} %% margins inside the textblock - %% I don't remember why we need to mess with \TPmargin --foley - \enableindents{}\newpage}% - - - -%% ----- DEDICATIONS ---------- --------------------------------------------------------------- -\newenvironment{dedications}{\begin{cover}\begin{vplace}[0.33]% ratio of space above and below - \begin{center}\em} - {\end{center}\normalfont\end{vplace}\end{cover}} - -%%%%%%%%%%%% DRAFT AND PROOF MARKS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand{\draftmark}{} -\newcommand{\draftbigmark}{} - -\ifbool{proof}{\renewcommand{\draftmark}{{\color{blue}\textsc{Proof}}}% - \renewcommand{\draftbigmark}{{\color{blue}\warningfont{}*** \draftmark{} *** \\PLEASE DO NOT DISTRIBUTE\\}}}{} -\ifbool{draftbool}{\renewcommand{\draftmark}{{\color{red}\textsc{Draft}}}% - \renewcommand{\draftbigmark}{{\color{red}\warningfont{}*** \draftmark{} *** \\PLEASE DO NOT DISTRIBUTE\\}}}{}% -%%% Page styles Memoir Manual ch7.2 p109 -\aliaspagestyle{book}{simple} -\aliaspagestyle{chapter}{plain}%At the beginning we want page numbers on chapters -\aliaspagestyle{cleared}{simple} -\aliaspagestyle{part}{empty} -\aliaspagestyle{title}{simple} -\aliaspagestyle{titlinpage}{empty} - -% \ifboolexpr{bool {draftbool} or bool {proof}}{ -% \makeoddfoot{cover}{}{\thepage}{\draftmark} -% \makeevenfoot{cover}{\draftmark}{\thepage}{} -% %\makeoddfoot{plain}{}{\thepage}{\draftmark} -% %\makeevenfoot{plain}{\draftmark}{\thepage}{} -% \makeoddfoot{simple}{}{}{\draftmark} -% \makeevenfoot{simple}{\draftmark}{}{} -% }{} - -\makepagestyle{plain}% Just page numbers in corners -\makeevenhead{plain}{\thepage}{}{} -\makeoddhead{plain}{}{}{\thepage} - -\makepagestyle{cover}% The cover pages have no page numbers -\makeoddfoot{cover}{}{}{} -\makeevenfoot{cover}{}{}{} - -\newcommand{\coverchapter}[1]{\clearforchapter\pagestyle{cover}\chapter{#1}\thispagestyle{cover}} - - -%%% Section numbering and the Table of Contents -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 -\maxsecnumdepth{subsubsection} % default by \mainmatter in preamble -%\setsecnumdepth{subsubsection} % can be changed later -\maxtocdepth{subsubsection} % default by \mainmatter in preamble -%\settocdepth{subsubsection} % can be changed later - -%%% Code to include files if they exist -\newcommand{\InputIfExists}[1]{\IfFileExists{#1}{\input{#1}}{}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TWEAKS -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Some adjustments to float placement -\setcounter{topnumber}{5} \def\topfraction{1} \setcounter{bottomnumber}{4} -\def\bottomfraction{1} \setcounter{totalnumber}{10} \def\textfraction{0} -\def\floatpagefraction{.5} - -%\def\@makefnmark{\rlap{\@textsuperscript{\@thefnmark}}} -%% Not sure why there was a footnote adjustment on the cover -%% Disabling for now. - -%% Penalties for various text placement issues -\clubpenalty=10000%% orphan lines -\widowpenalty=10000%% widow lines -\hfuzz=1pt%% avoid overfilled hboxes -\vfuzz=5pt%% avoid overfilled vboxes -%\newcommand{\draftnote}[1]{\ifdraft{{\color{gray}#1}}} - -\AtEndDocument{ -\typeout{*******************************************************************} -\typeout{Make sure you print this at 100\% scaling on A4 paper.} -\typeout{This is not the default on many computers, so watch out!} -\typeout{Any adjustment to the size will mess up margins and text alignment.} -\typeout{*******************************************************************} -\typeout{} -} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "PHD-NAME-YEAR" -%%% End: diff --git a/ruthesis.sty b/ruthesis.sty index c6bfa3a..3bd6108 100644 --- a/ruthesis.sty +++ b/ruthesis.sty @@ -24,6 +24,10 @@ % http://texdoc.net/texmf-dist/doc/latex/etoolbox/etoolbox.pdf \RequirePackage{etoolbox} +% xparse: LateX3 Advanced Argument and macro definition +% http://ctan.uib.no/macros/latex/contrib/l3packages/xparse.pdf +\RequirePackage{xparse} + %% ---------------- Boolean switches ----------------------------- %% Booleans make it easy to enable and disable parts of the template \newbool{debug} @@ -277,7 +281,7 @@ \begin{vplace}[1.0] % ratio of space above and below \centering \OnehalfSpacing% - Copyright\\ + \iflanguage{icelandic}{Höfundarréttur}{Copyright}\\ \theauthor\\ \thedate\\ \end{vplace} @@ -496,9 +500,15 @@ {\begin{compactitem}[\hspace{10mm}]} {\end{compactitem}} - -\newcommand{\thetitleIS}{**Title in Icelandic**} -\newcommand{\titleIS}[1]{\renewcommand{\thetitleIS}{#1}} +\NewDocumentCommand\thesistitle{O{#2} m} +% ARGS: [optional use #2], {mandatory} +{ + \NewDocumentCommand\theenglishtitle{}{#2}%babel naming convetion? + \NewDocumentCommand\theicelandictitle{}{#1} + \iflanguage{icelandic} + {\title{\theicelandictitle}} + {\title{\theenglishtitle}} +} %% Clean up some formatting for the text \renewcommand{\thepage}{\roman{page}} @@ -697,7 +707,7 @@ \renewenvironment{abstract} {\begin{otherlanguage}{english}\begin{coverleft}{\centering% - {\titletitlefont\thetitle\\}%% + {\titletitlefont\theenglishtitle\\}%% \vspace{\baselineskip} \theauthor\\% \vspace{\baselineskip} @@ -710,7 +720,7 @@ \newenvironment{abstractIS} {\begin{otherlanguage}{icelandic}\begin{coverleft}{\centering% - {\titletitlefont\thetitleIS\\}%% + {\titletitlefont\theicelandictitle\\}%% \vspace{\baselineskip} \theauthor\\% \vspace{\baselineskip} diff --git a/test.tex b/test.tex index 68b830e..30655ee 100644 --- a/test.tex +++ b/test.tex @@ -1,11 +1,14 @@ \documentclass{memoir} \usepackage[online,IS]{ruthesis} \usepackage[useregional]{datetime2} +\usepackage{xparse}%Latex3 argument parsing + + %\usepackage{graphicx} \title{Minimal Document for Testing} \author{Joseph T. Foley \and Someone Else} % \author: Use \and as a separator and \thanks{details} for additional info -\date{\DTMdisplaydate{2020}{2}{2}{-1}} +\date{2020}{2}{2} %% TODO: use datetime2 to be smarter about dates % \usepackage[icelandic,english]{babel} @@ -17,6 +20,8 @@ %\ects{30} + + %% Titlepage the Memoir way \maketitle @@ -36,6 +41,22 @@ \newpage \chapter{Test Chapter} +\newcommand{\varEN}{***English***} +\newcommand{\varIS}{***Icelandic***} +\NewDocumentCommand{\setVar}{O{#2} m} +% ARGS: [optional use #2], {mandatory} +{ + \renewcommand{\varIS}{#1} + \renewcommand{\varEN}{#2} +} +\setVar{Universal Title} + + \begin{itemize} + \item English: \varEN{} + \item Icelandic: \varIS{} + \end{itemize} + + blah blah blah %\copyrightpage{}%%RUM: Not mentioned %\signaturepage{}%%RUM: "Signature page (standard format)