Стильовий файл pvntsh.cls

Цей файл можна завантажити тут https://pvntsh.nung.edu.ua/index.php/number/libraryFiles/downloadPublic/22 
При збереженні у себе на диску перейменуйте pvntsh-OTH-1.cls на pvntsh.cls
Якщо у вас не встановлений пакет pscyr, то закоментуйте відповідний рядок \usepackage{pscyr}
%%
%% This is file `pvntsh.cls'.
%%
%%
%% Copyright 2022 O.R. Nykyforchyn, 2023-2025 A.I. Bandura
%% All rights reserved.
%%
%% ---------------------------------------------------
%%   This system is distributed in the hope that it will be useful,
%%   but WITHOUT ANY WARRANTY; without even the implied warranty of
%%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
%%
%% IMPORTANT COPYRIGHT NOTICE:
%%
%% Permission is granted to customize the declarations in this file to
%% serve the needs of your installation.
%%
%% However, NO PERMISSION is granted to distribute a modified version
%% of this file under its original name.
%%
%%
%% MODIFICATION ADVICE:
%%
%% If you want to customize this file, it is best to make a copy of
%% the source file(s) from which it was produced.  Use a different
%% name for your copy(ies) and modify the copy(ies); this will ensure
%% that your modifications do not get overwritten when you install a
%% new release of the standard system.
%%
%% You can then easily distribute your modifications by distributing
%% the modified and renamed copy of the source file.
%%
%%
\ProvidesClass{pvntsh}
[2026/03/28 v0.4 article style for Prykarpatskyi Visnyk NTSH]
%
\def\pj@theoname{Theorem}
\def\pj@proponame{Proposition}
\def\pj@lemmaname{Lemma}
\def\pj@corolname{Corollary}
\def\pj@remarkname{Remark}
\def\pj@defname{Definition}
\def\pj@exampname{Example}
\def\pj@recname{Received by Editorial Board}
\def\pj@accname{Accepted by Editorial Board}
\def\pj@ddmain{english}
%
\DeclareOption{ua}{%
    \def\pj@ddmain{ukrainian}%
    \def\pj@theoname{\CYRT\cyre\cyro\cyrr\cyre\cyrm\cyra}%
    \def\pj@proponame{\CYRT\cyrv\cyre\cyrr\cyrd\cyrzh\cyre\cyrn\cyrn\cyrya}%
    \def\pj@lemmaname{\CYRL\cyre\cyrm\cyra}%
    \def\pj@corolname{\CYRN\cyra\cyrs\cyrl\cyrii\cyrd\cyro\cyrk}%
    \def\pj@remarkname{\CYRZ\cyra\cyru\cyrv\cyra\cyrzh\cyre\cyrn\cyrn\cyrya}%
    \def\pj@defname{\CYRO\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}%
    \def\pj@exampname{\CYRP\cyrr\cyri\cyrk\cyrl\cyra\cyrd}%
    \def\pj@recname{Стаття надійшла до редакційної колегії}%
    \def\pj@accname{Прийнято до друку}%
}
 
%
\DeclareOption{en}{%
    \def\pj@ddmain{english}%
    \def\pj@theoname{Theorem}%
    \def\pj@proponame{Proposition}%
    \def\pj@lemmaname{Lemma}%
    \def\pj@corolname{Corollary}%
    \def\pj@remarkname{Remark}%
    \def\pj@defname{Definition}%
    \def\pj@exampname{Example}%
    \def\pj@recname{Received by Editorial Board}%
    \def\pj@accname{Accepted by Editorial Board}%
}
 
\let\ifpj@times\iffalse %\else
\DeclareOption{times}{\let\ifpj@times\iftrue}
%
\DeclareOption{win}{\PassOptionsToPackage{cp1251}{inputenc}}
\DeclareOption{koi}{\PassOptionsToPackage{koi8-u}{inputenc}}
\PassOptionsToPackage{cp1251}{inputenc}
 
\let\ifpj@draft\iffalse %\else
\let\ifpj@othsec\iffalse %\else
\let\ifpj@thmsec\iffalse %\else
 
\DeclareOption{draft}{\let\ifpj@draft\iftrue \PassOptionsToClass{draft}{article}}
\DeclareOption{bysec}{\let\ifpj@othsec\iftrue}
\DeclareOption{thmbysec}{\let\ifpj@thmsec\iftrue \let\ifpj@othsec\iftrue}
 
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
 
\ProcessOptions
 
\LoadClass[b5paper,12pt]{article}
 
%%%%%%%%%%%%%%%%%%%%%%% Параметри сторінки %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\topmargin=-10mm
\oddsidemargin=5mm
\evensidemargin=-5mm
\headsep=0mm
\headheight=0pt
\headsep=6mm
\headheight=12pt
\paperwidth=182mm
\paperheight=257mm
\special{papersize=182mm,257mm}
\textheight=200mm
\textwidth=132mm
\parindent=25pt
\expandafter\def\expandafter\@listi\expandafter{\@listi
    \parsep 0pt plus 2.5pt minus 1pt
    \itemsep 0pt plus 2.5pt minus 1pt
    \relax}
\let\@listI\@listi
\expandafter\def\expandafter\@listii\expandafter{\@listii
    \parsep 0pt plus 2.5pt minus 1pt
    \itemsep 0pt plus 2.5pt minus 1pt
    \relax}
\expandafter\def\expandafter\@listiii\expandafter{\@listiii
    \parsep 0pt plus 2.5pt minus 1pt
    \itemsep 0pt plus 2.5pt minus 1pt
    \relax}
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\edef\pj@babelopts{english,ukrainian,\pj@ddmain}
\let\@xp\expandafter
\@xp\PassOptionsToPackage\@xp{\pj@babelopts}{babel}
 
\let\englishhyphenmins\undefined
\usepackage{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english,ukrainian]{babel}
\usepackage{amsmath,amsfonts,amsthm,amssymb,amstext,latexsym}
\usepackage{pscyr}
\usepackage{orcidlink}
\usepackage{doi}
\usepackage{ccicons}
%\usepackage{corruclc}
\lccode`\і=`\і
\uccode`\і=`\І
\lccode`\І=`\і
\uccode`\І=`\І
\lccode`\ї=`\ї
\uccode`\ї=`\Ї
\lccode`\Ї=`\ї
\uccode`\Ї=`\Ї
 
 
\ifpj@times
% MathTime fonts or Belleek free replacement
\let\Bbbk\undefined % to quiet amssymb.sty
%\usepackage{mtpro2}
\DeclareMathAlphabet{\mathbbi}{U}{mt2hrb}{m}{it}
 
% URWCyr text fonts (corrected by Nick)
%\usepackage{newtxtext}
\usepackage{mathptmx}
%\usepackage{helvet}
\renewcommand{\rmdefault}{ftm}
\renewcommand\sfdefault{far}
\renewcommand\ttdefault{mathptmx}
%
\fi
 
\def\th@plain{\itshape}
\theoremstyle{plain}
 
 
\ifpj@othsec
\newtheorem{theorem}{\pj@theoname}[section]
\newtheorem{proposition}{\pj@proponame}[section]
\newtheorem{lemma}{\pj@lemmaname}[section]
\newtheorem{corollary}{\pj@corolname}[section]
\newtheorem{remark}{\pj@remarkname}[section]
\newtheorem{definition}{\pj@defname}[section]
\newtheorem{example}{\pj@exampname}
\else
\newtheorem{theorem}{\pj@theoname}
\newtheorem{proposition}{\pj@proponame}
\newtheorem{lemma}{\pj@lemmaname}
\newtheorem{corollary}{\pj@corolname}
\newtheorem{remark}{\pj@remarkname}
\newtheorem{definition}{\pj@defname}
\newtheorem{example}{\pj@exampname}
\fi
 
\newtheorem*{theorem*}{\pj@theoname}
\newtheorem*{proposition*}{\pj@proponame}
\newtheorem*{lemma*}{\pj@lemmaname}
\newtheorem*{corollary*}{\pj@corolname}
\newtheorem*{remark*}{\pj@remarkname}
\newtheorem*{definition*}{\pj@defname}
\newtheorem*{example*}{\pj@exampname}
 
\renewcommand{\@seccntformat}[1]{\csname the#1\endcsname.\quad}
\renewcommand\section{\@startsection {section}{1}{\parindent}% {\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {1sp}%{2.3ex \@plus.2ex}%
                                   {\normalfont\bfseries}}
 
\let\@email\empty
\newcommand\email[1]{%
  \gdef\@email{\hfil e-mail:\ {\itshape #1} \hfil}}
 
\let\@volume\empty
\newcommand\volume[1]{%
  \gdef\@volume{#1}}
 
\@xp\gdef\@xp\@year\@xp{\the\year}
\newcommand\pyear[1]{%
  \gdef\@year{#1}}
 
\let\@ISSN\empty
\newcommand\ISSN[1]{%
  \gdef\@ISSN{#1}}
 
\let\@UDC\empty
\newcommand\UDC[1]{%
  \gdef\@UDC{#1}}
 
\let\@branchi\empty
\let\@branchii\empty
\newcommand\branch[2]{%
  \gdef\@branchi{#1}%
  \gdef\@branchii{#2}%
}
 
\let\@branchseci\empty
\let\@branchsecii\empty
\newcommand\branchsec[2]{%
\gdef\@branchseci{#1}%
\gdef\@branchsecii{#2}%
}
 
\let\@branchsubseci\empty
\newcommand\branchsubsec[1]{%
\gdef\@branchsubseci{#1}%
}
 
\let\@subjclass\empty
\newcommand\subjclass[1]{%
  \gdef\@subjclass{#1}}
 
\let\@received\empty
\newcommand\received[1]{%
  \gdef\@received{#1}}
 
\let\@accepted\empty
\newcommand\accepted[1]{%
\gdef\@accepted{#1}}
 
\author{\phantom{author}}
\title{\phantom{title}}
 
\let\@eninfo\empty
\let\@enaddress\empty
\let\@enauthor\empty
\let\@enkeywords\empty
\let\@entitle\empty
 
\newcommand\eninfo{}
\newcommand\uainfo{}
 
\long\def\eninfo#1#2#3#4#5{
  \gdef\@entitle{#1}
  \gdef\@enauthor{#2}%
  \gdef\@enaddress{#3}%
  \gdef\@enkeywords{#4}
  \global\long\def\@enabstract{#5}%
}
 
\let\@uainfo\empty
\let\@uaaddress\empty
\let\@uaauthor\empty
\let\@uakeywords\empty
\let\@uatitle\empty
 
\long\def\uainfo#1#2#3#4#5{
  \gdef\@uatitle{#1}
  \gdef\@uaauthor{#2}%
  \gdef\@uaaddress{#3}%
  \gdef\@uakeywords{#4}
  \global\long\def\@uaabstract{#5}%
}
 
\AtBeginDocument{%
    \let\volume\undefined
    \let\pyear\undefined
    \let\UDC\undefined
    \let\subjclass\undefined
    \let\received\undefined
    \let\accepted\undefined
}
 
\def\pj@printeninfo{%
           \selectlanguage{english}%
           \begin{center} \renewcommand{\baselinestretch}{1.1}%
           {\bfseries\expandafter\uppercase\expandafter{\@entitle}}
           \par
           \vspace{0.4cm}
           {\sffamily\bfseries {\@enauthor}}
           \par
           \vspace*{-0.2cm}
           \itshape
           \@enaddress\par
           \@email\par
           \end{center}%
           {\itshape
           \par\vspace{7pt plus 0.5pt}%
           \@enabstract
           \par
           {\bfseries Key words:}
           \@enkeywords.
           }
}
 
\def\pj@printuainfo{%
           \selectlanguage{ukrainian}%
           \begin{center} \renewcommand{\baselinestretch}{1.1}%
           {\bfseries\expandafter\uppercase\expandafter{\@uatitle}}
           \par
           \vspace{0.4cm}
           {\sffamily\bfseries {\@uaauthor}}
           \par
           \vspace*{-0.2cm}
           \itshape
           \@uaaddress\par
           \@email\par
           \end{center}%
           {\itshape
           \par\vspace{7pt plus 0.5pt}%
           \@uaabstract
           \par
           {\bfseries Ключові слова:}
           \@uakeywords.} 
           }
 
\long\def\maketitle{%
    \ifpj@draft
       \ifx\@enauthor\empty   \def\@enauthor{???}   \fi
       \ifx\@uaauthor\empty   \def\@uaauthor{???}   \fi
       \ifx\@entitle\empty    \def\@entitle{???}    \fi
       \ifx\@uatitle\empty    \def\@uatitle{???}    \fi
       \ifx\@ISSN\empty       \def\@ISSN{???}       \fi
       \ifx\@UDC\empty        \def\@UDC{???}        \fi
       \ifx\@volume\empty     \def\@volume{???}     \fi
       \ifx\@subjclass\empty  \def\@subjclass{???}  \fi
       \ifx\@branchi\empty    \def\@branchi{???}    \fi
       \ifx\@received\empty   \def\@received{???}   \fi
       \ifx\@accepted\empty   \def\@accepted{???}   \fi
       \ifx\@enkeywords\empty \def\@enkeywords{???} \fi
       \ifx\@uakeywords\empty \def\@uakeywords{???} \fi
       \ifx\@enabstract\empty \def\@enabstract{???} \fi
       \ifx\@uaabstract\empty \def\@uaabstract{???} \fi
    \fi
    \@xp\gdef\@xp\pj@firstpage\@xp{\the\c@page}%
    \gdef\@DOI{DOI: 10.31471/\@ISSN-\@year-\@volume-\pj@firstpage-\pageref{pj-LastPage}}
    \markboth{{\@branchi}}{{\@branchi}}%
    \ifx\@branchsecii\empty
    \else
    \phantom{t}
    \par
 % відступ перед галуззю знань
    \bgroup \itshape\bfseries\huge
    \noindent \@branchseci\
    \leaders
    \hbox{\parbox{15pt}{\par\noindent
    \hrule height 1pt width 5pt
    \vskip 1.5pt
    \hrule height 2pt width 5pt
    \vskip 1.5pt
    \hrule height 1pt width 5pt
    }}\hfill 
\vspace{1cm}
    \par\itshape\bfseries\huge
    \noindent\@branchsecii\
    \leaders
      \hbox{\parbox{15pt}{\par\noindent
                    \hrule height 1pt width 5pt
                    \vskip 1.5pt
                    \hrule height 2pt width 5pt
                    \vskip 1.5pt
                    \hrule height 1pt width 5pt
           }}\hfill
    \egroup
    \vspace{1cm} % відступ перед УДК i DOI
    \fi
    %лишень підрозділ не галузь знань
    \ifx\@branchsubseci\empty
    \else
    \phantom{t}
    \par
    % відступ перед галуззю знань
    \bgroup \itshape\bfseries\huge
    \noindent \@branchsubseci\
    \leaders
    \hbox{\parbox{15pt}{\par\noindent
    \hrule height 1pt width 5pt
    \vskip 1.5pt
    \hrule height 2pt width 5pt
    \vskip 1.5pt
    \hrule height 1pt width 5pt
    }}\hfill 
    \egroup
    \vspace{1cm} % відступ перед УДК i DOI
    \fi
    \par
    \ifx\@UDC\empty
    \else
        \noindent УДК \@UDC\\
    \fi
    \ifx\@subjclass\empty
    \else
        \noindent MSC 2020: \@subjclass\\
    \fi
    \noindent \@DOI\\
    % відступ перед назвою статті
    \def\@len{english}
    \def\@lua{ukrainian}
%    \show\@uclclist
    {%
    \ifx\pj@ddmain\@len %% Якщо стаття англійською мовою
      \pj@printeninfo
    \fi%
    \ifx\pj@ddmain\@lua %% Якщо стаття українською мовою
      \pj@printuainfo
    \fi
    }
    %\vskip-5pt %% відступ після анотації
} % end of \maketitle
 
\pagestyle{myheadings}
 
\newcommand{\pageno}[1]{\setcounter{page}{#1}}
 
%
%    Headlines
%
\newdimen\headruleskip
\renewcommand{\@evenhead}{\vtop{\setbox\@tempboxa\hbox to\textwidth
   {\normalsize \thepage\ \hfill {\selectlanguage{ukrainian}\leftmark}\hskip15pt}%
   \dp\@tempboxa=\z@\box\@tempboxa\vskip\headruleskip
   \hbox to\textwidth{%
       \hskip15pt
       \leaders
         \hbox{\parbox{5pt}{\par\noindent
                    \hrule height .3pt width 5pt
                    \vskip .5pt
                    \hrule height .3pt width 5pt
                    \vskip .5pt
                    \hrule height .3pt width 5pt
           }}\hfill
       \hskip15pt}%
   }}
\renewcommand{\@oddhead}{\vtop{\setbox\@tempboxa\hbox to\textwidth
   {\normalsize \hskip15pt{\selectlanguage{ukrainian}\leftmark}\ \hfill \thepage}%
   \dp\@tempboxa=\z@\box\@tempboxa\vskip\headruleskip
   \hbox to\textwidth{%
       \hskip15pt
       \leaders
         \hbox{\parbox{5pt}{\par\noindent
                    \hrule height .3pt width 5pt
                    \vskip .5pt
                    \hrule height .3pt width 5pt
                    \vskip .5pt
                    \hrule height .3pt width 5pt
           }}\hfill
       \hskip15pt}%
   }}
\headruleskip 4pt
\def\corauthor#1{\noindent\footnotetext{*Corresponding author}}
%\newdimen\footruleskip
%\renewcommand{\@evenfoot}{\vtop{\hrule height 1.3pt
%   \vskip\footruleskip
%   \setbox\@tempboxa\hbox to\textwidth
%     {\footnotesize  
%      ISSN \@ISSN.
%       \selectlanguage{ukrainian}%
%       Прикарпатський вісник НТШ. Число. -- \@year.
%       -- \No\ \@volume. -- с.\pj@firstpage-\pageref{pj-LastPage}.} \par
%   \dp\@tempboxa=\z@\box\@tempboxa
%}}
%    {%
% \ifx\pj@ddmain\@len %% Якщо стаття англійською мовою
% \pj@printuainfo
% \fi%
% \ifx\pj@ddmain\@lua %% Якщо стаття українською мовою
% \pj@printeninfo
% \fi
%}%
\newdimen\footruleskip
\renewcommand{\@evenfoot}{%
\vtop{%
\hrule height 1.3pt%
\vskip5pt
%\footruleskip
% ---- Основний рядок колонтитулу ----
\setbox\@tempboxa\hbox to\textwidth{%
\footnotesize
ISSN \@ISSN.\ 
\selectlanguage{ukrainian}%
Прикарпатський вісник НТШ. Число. -- \@year.
-- № \@volume. -- с.\pj@firstpage-\pageref{pj-LastPage}.%
}%
\par\dp\@tempboxa=\z@\box\@tempboxa
 
\ifnum\value{page}=\pj@firstpage
{\vskip-20pt
\footnotesize 
\ifx\pj@ddmain\@lua *Відповідальний автор \hfill\copyright\, 
\CopyName, \@year\fi%
\ifx\pj@ddmain\@len *Corresponding author \hfill\copyright\,
\CopyName, \@year\fi%
}
\else
% ======== ІНШІ СТОРІНКИ — порожній футер ========
{}
\fi
 
% ---- Додатковий рядок з текстом ліцензії ----
\ifnum\value{page}=\pj@firstpage
{\vskip-20pt
\setbox\@tempboxa\hbox to\textwidth{%
\footnotesize
\ifx\pj@ddmain\@lua%
Ця робота ліцензована на умовах\ %
\href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{CC BY-NC-ND 4.0}\ \ccbyncnd\hfill%
\fi%
\ifx\pj@ddmain\@len%
This work is licensed under\ %
\href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{CC BY-NC-ND 4.0}\ \ccbyncnd\hfill%
\fi
}%
\par\dp\@tempboxa=\z@\box\@tempboxa}
\else
% ======== ІНШІ СТОРІНКИ — порожній футер ========
{}
\fi
}%
}
 
 
\let\@oddfoot\@evenfoot
\footruleskip 12pt
 
 
 
%\renewcommand{\footnoterule}{\vspace*{-3pt}
%    \hrule width 5cm \vspace*{2.6pt}}
 
\renewcommand{\@makefntext}[1]{\parindent=1em\noindent  #1}
 
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
        \bfseries\itshape %% Стиль слова ``Доведення''/``Proof''
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
 
\let\pj@thebibliography\thebibliography
\def\thebibliography{\footnotesize\pj@thebibliography}
\renewcommand{\@biblabel}[1]{\hfill #1.}
\renewenvironment{thebibliography}[1]
     {%
      \centerline{\bfseries\itshape Література}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep %% Відступ зліва в списку літератури
            \advance\leftmargin by -5pt
            \itemindent 5pt
            \topsep 0pt
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
 
\long\def\@lastpage{%
    \par\hbox to \textwidth{\hfill \itshape\pj@recname\ \@received}
    \par\hbox to \textwidth{\hfill \itshape\pj@accname\ \@accepted}
    \vspace{1cm} % відступ перед назвою статті
    \def\@len{english}%
    \def\@lua{ukrainian}%
 
    {%
    \ifx\pj@ddmain\@len %% Якщо стаття англійською мовою
      \pj@printuainfo
    \fi%
    \ifx\pj@ddmain\@lua %% Якщо стаття українською мовою
      \pj@printeninfo
    \fi
    }%
    \label{pj-LastPage}%
} % end of \@lastpage
 
\AtEndDocument{\@lastpage}
 
%% End of file `pvntsh.cls'.