LaTeX forum ⇒ Document Classes ⇒ Thesis (Super) Class :)

Information and discussion about specific document classes and how to create your own document classes.
joaomlourenco
Posts: 5
Joined: Wed Nov 19, 2014 5:07 pm

Thesis (Super) Class :)

Hi,

In the last years I have been developing the “unlthesis” (super) template for academic thesis [1]. It has ben used by hundreds of students in my University and a few more elsewhere.

The template is highly customisable and has (direectyry-based) support for multiple schools (currently two schools are supported, but others are in the way). Just add your own directory with your customisation and it "just works".

I would appreciate feedback on the functionality of the package and on the TeX/LaTeX style as well. Contributors are also welcome.

Is there someone willing to help me to prepare a submission to CTAN? I would appreciate that **a lot**.

[1] https://github.com/joaomlourenco/unlthesis

João Lourenço
http://docentes.fct.unl.pt/joao-lourenco

Tags:

Johannes_B
Site Moderator
Posts: 3639
Joined: Thu Nov 01, 2012 4:08 pm
You created an own set of macros there that seem to ease the use for the authors, but they need to know the basics of LaTeX anyhow. So, in my opinion, it is more to learn.

On the other hand, it seems that usage is easier which might lead to the assumption that no knowledge is needed to properly use LaTeX.

I am very critical with respect of templates. Package hyperref is loaded in the class file (usually the last package loaded). In the template file, [ctan]glossaries[ctan] is one of the first packages loaded. It should be loaded after hyperref (which it is), but as hyperref should be loaded after all other packages ....
A template maintainer cannot deal with all the exceptions in a sane manner, you cannot take the responsibility off the author.
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.

Stefan Kottwitz
Posts: 8705
Joined: Mon Mar 10, 2008 9:44 pm
Location: Hamburg, Germany
Contact:
Hi João ,

thank you for sharing and discussing the template!

First quick thoughts:

• I like the key=value customization of the class. I just think, as class option this could be dangerous, I saw other class authors providing a command like \unlsetup{key=value, ...} for the customization purpose via keys.

• I noticed \textbf commands in the text. Such physical commands should only be in the preamble for defining logical user styles. So, document wide changes would be easy and consistent.

• I saw a figure with only [h] option, perhaps one of the beginning in chapter3.tex. I would always use [ht] as minimum, or more, like you did later.

Stefan

Johannes_B
Site Moderator
Posts: 3639
Joined: Thu Nov 01, 2012 4:08 pm
Stefan_K wrote:I saw a figure with only [h] option, perhaps one of the beginning in chapter3.tex. I would always use [ht] as minimum, or more, like you did later.

I would omit them completely for the drafting stage and add float placement specifiers once the content is done completely and not changing.

David Carlisle states that there are EOL-% missing, egreg says something a bit more obvious http://chat.stackexchange.com/transcrip ... 1#23065401
The smart way: Calm down and take a deep breath, read posts and provided links attentively, try to understand and ask if necessary.

Stefan Kottwitz
Posts: 8705
Joined: Mon Mar 10, 2008 9:44 pm
Location: Hamburg, Germany
Contact:
I noticed João often took care that the end-of-line "whitespace" is commented out after an opening brace, when defining a macro. There may be places where one % could be added. I would put them, as a rule of thumb, wherever I don't want to generate a blank by the end of line.

Line samples where I miss a %:

\newcommand{\printcoverpage}{...   \AddToShipoutPictureFG*{%     \AtPageUpperLeft{     ...

Stefan

joaomlourenco
Posts: 5
Joined: Wed Nov 19, 2014 5:07 pm
Guys,

Thank you very much for taking some time looking at the template and providing some suggestions. I'll definitely work on them!

Any further suggestions will be very welcome.

Cheers,
João

joaomlourenco
Posts: 5
Joined: Wed Nov 19, 2014 5:07 pm
Hi Stefan,

Stefan_K wrote:I like the key=value customization of the class. I just think, as class option this could be dangerous, I saw other class authors providing a command like \unlsetup{key=value, ...} for the customization purpose via keys.

Why do you say the customization as class options could be dangerous?

The support for a command like \unlsetup{key=value, ...} went to my todo list.

Stefan_K wrote:I noticed \textbf commands in the text. Such physical commands should only be in the preamble for defining logical user styles. So, document wide changes would be easy and consistent.

Thanks for the note. I will work on this.

Stefan_K wrote:I saw a figure with only [h] option, perhaps one of the beginning in chapter3.tex. I would always use [ht] as minimum, or more, like you did later.

That is old text. It has to be redone. But you are right, if it is there it should be all right! Fixed.

João

joaomlourenco
Posts: 5
Joined: Wed Nov 19, 2014 5:07 pm
Hi,

Thank you for following this thread.

I would like to let you know that most of the errors identified are already fixed in the latest version available at [1].

BTW, the template now includes builtin support for:
— 7 font sets
— 17 chapter styles
— 4 languages (EN, FR, IT, PT)
— 4 schools

Feedback is very welcome (joao.lourenco-AT-fct.unl.pt)

[1] https://github.com/joaomlourenco/unlthesis

cgnieder
Site Moderator
Posts: 1985
Joined: Sat Apr 16, 2011 7:27 pm
Location: Germany
Contact:
joaomlourenco wrote:
Stefan_K wrote:I like the key=value customization of the class. I just think, as class option this could be dangerous, I saw other class authors providing a command like \unlsetup{key=value, ...} for the customization purpose via keys.

Why do you say the customization as class options could be dangerous?

First of all it doesn't work reliably:
\RequirePackage{filecontents}\begin{filecontents*}{superduper.cls}\ProvidesClass{superduper}\RequirePackage{pgfopts}\pgfkeys{   superduper/.cd ,   key-option/.code = \def\foo{#1}}\ProcessPgfOptions{/superduper}\LoadClass{scrartcl}\end{filecontents*}% \documentclass[key-option={foo}]{superduper}% no error\documentclass[key-option={foo,bar}]{superduper}% error \begin{document}test\end{document}

Regards
Clemens
------------------------------
chemmacros · chemformula · leadsheets · xsim