Open randrej opened 4 years ago
Thank you for bringing this up!
Smart Thesis was born out of a one-hour afternoon pair programming session with @jangop, and the only reason we originally did not implement Smart Thesis as a proper class was that we didn't know how to do this properly and were ‒ quite frankly ‒ too lazy to learn it.
The way we usually recommended other people to use this class was to tell them to just copy the .tex
file into their project and to edit it however they liked to.
That being said, I would be more than happy to accept PRs and work with you toward making Smart Thesis a proper LaTeX class. However, I can't promise that I will have a lot of time to do proper reviews in the next few weeks.
Just to be on the same page, I want to improve Smart Thesis so it has somewhat of a feature parity with ClassicThesis, but as a class and not a package.
I also want to add some typographical touches mentioned (and implemented) by Robert Bringhurst in his book, but left out of ClassicThesis.
For example, I want to put enumerate
and itemize
numbers and bullets in the margin, like demonstrated on pages 38, 70 and talked about on pages 70, 71 of EoTS. This isn't present in ClassicThesis.
I'll be doing this in my free time, so it won't bee too fast.
Now, let me reveal my motivation: I want to use Smart Thesis as a template for Pandoc and Sphinx.
I write a bunch of software documentation (and a personal wiki) in Pandoc Markdown, and I plan on using Smart Thesis in the template, similar to Eisvogel, but better.
I also want to use it as a LaTeX template for Sphinx. Sphinx is a tool for generating documentation for Python (and C/C++, when combined with Doxygen via Breathe). Apart from generating static HTML pages like you may have seen on readthedocs.io, it can also generate PDFs and EPUBs. If you look at the PDF, you'll find that the default LaTeX template is pretty ugly, and that it would greatly benefit from using Smart Thesis as the starting point.
I have a couple of opensource Python projects (https://gitlab.com/andrejr/csnake, https://gitlab.com/andrejr/srtools) which would benefit from this, and a few more embedded C and C++ projects coming, that's why I want to do this. But I don't plan on interfering with the basic purpose of Smart Thesis: to be a thesis / book class first.
Sounds good! Thank you for looking into this.
Since this package completely relies on
memoir
, it would make sense to turn it into a class (which extendsmemoir
).I also thought about adding a
kvoptions
- based option system, with options similar toClassicThesis
. For example, I find TOCs without dotted lines sorely missing, and page styles (header-footer) would benefit from more options. Font settings should also be optional as many people just set their own font.This would make this package CTAN-worthy, too.
Would You accept PRs with such changes or should I fork the project and send you the links when I'm done?