Document ClassesThesis (Super) Class :)

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

Thesis (Super) Class :)

Post by joaomlourenco »

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

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Re: Thesis (Super) Class :)

Post by Johannes_B »

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.
User avatar
Stefan Kottwitz
Site Admin
Posts: 10324
Joined: Mon Mar 10, 2008 9:44 pm

Thesis (Super) Class :)

Post by Stefan Kottwitz »

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
LaTeX.org admin
User avatar
Johannes_B
Site Moderator
Posts: 4182
Joined: Thu Nov 01, 2012 4:08 pm

Thesis (Super) Class :)

Post by Johannes_B »

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.
User avatar
Stefan Kottwitz
Site Admin
Posts: 10324
Joined: Mon Mar 10, 2008 9:44 pm

Thesis (Super) Class :)

Post by Stefan Kottwitz »

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 %:

Code: Select all

Code, edit and compile here:
\newcommand{\printcoverpage}{
...
\AddToShipoutPictureFG*{%
\AtPageUpperLeft{
...
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Stefan
LaTeX.org admin
joaomlourenco
Posts: 5
Joined: Wed Nov 19, 2014 5:07 pm

Re: Thesis (Super) Class :)

Post by joaomlourenco »

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

Thesis (Super) Class :)

Post by joaomlourenco »

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

Re: Thesis (Super) Class :)

Post by joaomlourenco »

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
User avatar
cgnieder
Site Moderator
Posts: 2000
Joined: Sat Apr 16, 2011 7:27 pm

Thesis (Super) Class :)

Post by cgnieder »

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:

Code: Select all

Code, edit and compile here:
\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Regards
site moderator & package author
Post Reply