From 0c3c3496a811da40b14ded783fb39f2d611f8f63 Mon Sep 17 00:00:00 2001 From: Arseny <20096ninja@gmail.com> Date: Wed, 15 Jul 2026 18:52:51 +0300 Subject: [PATCH] =?UTF-8?q?[FIX]=20=D1=81=D0=BE=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5:=20=D1=83=D0=B1=D1=80=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D1=80=D1=83=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BE=D0=BA?= =?UTF-8?q?,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20tocloft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- md2gost/handlers/heading.py | 16 +++++++++------- md2gost/latex/preamble.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/md2gost/handlers/heading.py b/md2gost/handlers/heading.py index d112c6b..ace926c 100644 --- a/md2gost/handlers/heading.py +++ b/md2gost/handlers/heading.py @@ -9,13 +9,14 @@ if TYPE_CHECKING: UNNUMBERED = { "АННОТАЦИЯ", - "СОДЕРЖАНИЕ", "ПЕРЕЧЕНЬ ПРИНЯТЫХ СОКРАЩЕНИЙ", "ВВЕДЕНИЕ", "ЗАКЛЮЧЕНИЕ", "СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ", } +TOC_HEADING = "СОДЕРЖАНИЕ" + NEWPAGE_BEFORE = { "ВВЕДЕНИЕ", "ЗАКЛЮЧЕНИЕ", @@ -32,6 +33,9 @@ def heading(r: Renderer) -> str: r.current_heading = text.upper() r.pos += 2 + if text.upper() == TOC_HEADING: + return "" + if text.upper() in UNNUMBERED: prefix = "" if text.upper() in NEWPAGE_BEFORE: @@ -45,15 +49,13 @@ def heading(r: Renderer) -> str: r.section += 1 r.subsection = 0 r.subsubsection = 0 - num = f"{r.section}. " + return f"\\section{{{text}}}" elif level == 2: r.subsection += 1 r.subsubsection = 0 - num = f"{r.section}.{r.subsection} " + return f"\\subsection{{{text}}}" elif level == 3: r.subsubsection += 1 - num = f"{r.section}.{r.subsection}.{r.subsubsection} " + return f"\\subsubsection{{{text}}}" else: - num = "" - - return f"\\textbf{{{num}{text}}}" + return f"\\textbf{{{text}}}" diff --git a/md2gost/latex/preamble.py b/md2gost/latex/preamble.py index 6d35ef0..657d986 100644 --- a/md2gost/latex/preamble.py +++ b/md2gost/latex/preamble.py @@ -49,9 +49,39 @@ PREAMBLE = r"""\documentclass[a4paper, 14pt]{extarticle} \usepackage[perpage]{footmisc} \usepackage{tabularx} \usepackage{titlesec} +\renewcommand{\thesection}{\arabic{section}} +\renewcommand{\thesubsection}{\thesection.\arabic{subsection}} +\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}} +\titleformat{\section}{\fontsize{14pt}{18pt}\selectfont\bfseries}{}{0em}{\thesection.\quad} +\titleformat{\subsection}{\fontsize{14pt}{18pt}\selectfont\bfseries}{}{0em}{\thesubsection.\quad} +\titleformat{\subsubsection}{\fontsize{14pt}{18pt}\selectfont\bfseries}{}{0em}{\thesubsubsection.\quad} \titlespacing*{\section}{1.25cm}{0.5ex plus 0.2ex minus 0.2ex}{0.3ex plus 0.1ex minus 0.1ex} \titlespacing*{\subsection}{1.25cm}{0.5ex plus 0.2ex minus 0.2ex}{0.3ex plus 0.1ex minus 0.1ex} \titlespacing*{\subsubsection}{1.25cm}{0.5ex plus 0.2ex minus 0.2ex}{0.3ex plus 0.1ex minus 0.1ex} +\usepackage{tocloft} +\addto\captionsrussian{% + \renewcommand{\contentsname}{СОДЕРЖАНИЕ}% +} +\renewcommand{\cfttoctitlefont}{\hfill\fontsize{14pt}{18pt}\selectfont\bfseries} +\renewcommand{\cftaftertoctitle}{\hfill\null} +\setlength{\cftbeforesecskip}{0pt} +\renewcommand{\cftsecaftersnum}{.} +\renewcommand{\cftsubsecaftersnum}{.} +\renewcommand{\cftsubsubsecaftersnum}{.} +\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} +\renewcommand{\cftdotsep}{1} +\cftsetpnumwidth{0.7em} +\cftsetrmarg{1em} +\renewcommand{\cftsecfont}{\mdseries} +\renewcommand{\cftsecpagefont}{\mdseries} +\renewcommand{\cftsubsecfont}{\mdseries} +\renewcommand{\cftsubsubsecfont}{\mdseries} +\setlength{\cftsecindent}{0em} +\setlength{\cftsecnumwidth}{1em} +\setlength{\cftsubsecindent}{0em} +\setlength{\cftsubsecnumwidth}{1.5em} +\setlength{\cftsubsubsecindent}{0em} +\setlength{\cftsubsubsecnumwidth}{2.1em} \newcommand{\sigline}[3][4cm]{% \begin{tabular}[t]{@{}c@{}}%