From 8e115b46c29822c2e20ec62e1fb675771174c40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Wed, 9 Feb 2022 19:50:49 +0100 Subject: [PATCH] add header to simple tex formatter --- PyTeX/format/enums.py | 1 + PyTeX/format/pytex_formatter.py | 3 ++- PyTeX/format/simple_tex_formatter.py | 25 ++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/PyTeX/format/enums.py b/PyTeX/format/enums.py index bab9470..e0f3da3 100644 --- a/PyTeX/format/enums.py +++ b/PyTeX/format/enums.py @@ -111,6 +111,7 @@ class FormatterProperty(MacroReplacementAtomIF, Enum): pytex_dirty = 'pytex_dirty' tex_type = 'tex_type' tex_flavour = 'latex_flavour' + description = 'description' class Argument(MacroReplacementAtomIF, Enum): diff --git a/PyTeX/format/pytex_formatter.py b/PyTeX/format/pytex_formatter.py index 6b31cea..2c8daf4 100644 --- a/PyTeX/format/pytex_formatter.py +++ b/PyTeX/format/pytex_formatter.py @@ -152,7 +152,8 @@ class PyTeXFormatter(FormatterIF, ABC): FormatterProperty.pytex_dirty.value: self.git_version_info.pytex_version.dirty, FormatterProperty.tex_type.value: self.config.tex_type.value, FormatterProperty.tex_flavour.value: self.config.tex_flavour.value, - FormatterProperty.file_prefix.value: self.file_prefix + FormatterProperty.file_prefix.value: self.file_prefix, + FormatterProperty.description.value: self.config.description } @property diff --git a/PyTeX/format/simple_tex_formatter.py b/PyTeX/format/simple_tex_formatter.py index e8ccc8b..3404090 100644 --- a/PyTeX/format/simple_tex_formatter.py +++ b/PyTeX/format/simple_tex_formatter.py @@ -2,7 +2,7 @@ from .formatting_config import FormattingConfig from .tex_formatter import TexFormatter from pathlib import Path from typing import Optional, List, Tuple, Dict -from .enums import TeXFlavour, TeXType +from .enums import TeXFlavour, TeXType, FormatterProperty class SimpleTeXFormatter(TexFormatter): @@ -35,3 +35,26 @@ class SimpleTeXFormatter(TexFormatter): return '' if raw == '' else raw + '%' else: return line.rstrip() + + def format_post_header(self) -> None: + if self.config.tex_flavour == TeXFlavour.LaTeX2e: + self._shipout_line( + r'\Provides%s{%s}[%s - %s]' + % ( + self.config.tex_type.value.capitalize(), + self.name, + self.attribute_dict[FormatterProperty.date.value], + self.attribute_dict[FormatterProperty.description.value] + ) + ) + else: + self._shipout_line( + r'\ProvidesExpl%s{%s}{%s}{%s}{%s}' + % ( + self.config.tex_type.value.capitalize(), + self.name, + self.config.version, + self.attribute_dict[FormatterProperty.date.value], + self.config.description + ) + )