My method is roughly this:
1. Create a Python package that subclasses nbconvert.exporters.LatexExporter -- in the setup.py you register the class to 'nbconvert.exporters' in the 'entry_points' dict.
2. You can do general filtering/compiling by registering 'Exporter.filters'. The compile process can be modified by implementing a custom 'from_notebook_node()'
3. You can include a folder containing jinja template(s) in the package to implement whatever styling you want
4. I have some standard metadata that I pull from the notebook/cell metadata (using the standard Jupyter/lab frontend metadata sidebar) to define things like document titles, authors, etc.
5. Do the conversion like: jupyter nbconvert --to=myfancyexportformat notebook.ipynb