LaTeX forum ⇒ Document ClassesThesis (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 :)

Postby joaomlourenco » Tue Jul 28, 2015 3:17 pm

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:

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

Postby Johannes_B » Tue Jul 28, 2015 6:17 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.

User avatar
Stefan Kottwitz
Site Admin
Posts: 8453
Joined: Mon Mar 10, 2008 9:44 pm
Location: Hamburg, Germany
Contact:

Postby Stefan Kottwitz » Tue Jul 28, 2015 7:01 pm

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
Site admin

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

Postby Johannes_B » Tue Jul 28, 2015 7:07 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.

User avatar
Stefan Kottwitz
Site Admin
Posts: 8453
Joined: Mon Mar 10, 2008 9:44 pm
Location: Hamburg, Germany
Contact:

Postby Stefan Kottwitz » Tue Jul 28, 2015 7:20 pm

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

  1. \newcommand{\printcoverpage}{
  2. ...
  3. \AddToShipoutPictureFG*{%
  4. \AtPageUpperLeft{
  5. ...


Stefan
Site admin

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

Postby joaomlourenco » Wed Jul 29, 2015 1:08 am

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

Postby joaomlourenco » Wed Jul 29, 2015 2:02 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

Postby joaomlourenco » Thu Aug 27, 2015 1:14 am

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: 1974
Joined: Sat Apr 16, 2011 7:27 pm
Location: Germany
Contact:

Postby cgnieder » Fri Aug 28, 2015 6:32 pm

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:
  1. \RequirePackage{filecontents}
  2. \begin{filecontents*}{superduper.cls}
  3. \ProvidesClass{superduper}
  4. \RequirePackage{pgfopts}
  5. \pgfkeys{
  6. superduper/.cd ,
  7. key-option/.code = \def\foo{#1}
  8. }
  9. \ProcessPgfOptions{/superduper}
  10. \LoadClass{scrartcl}
  11. \end{filecontents*}
  12. % \documentclass[key-option={foo}]{superduper}% no error
  13. \documentclass[key-option={foo,bar}]{superduper}% error
  14.  
  15. \begin{document}
  16. test
  17. \end{document}


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


Return to “Document Classes”

Who is online

Users browsing this forum: No registered users and 4 guests