헤더를 수정해야 합니다. 이제 다음과 같습니다.
내가 가지고 있어야 할 것:
여기서 "DZIAŁ 1. PRZEPISY OGÓLNE"은 장이고 "Rozdział 2. Zasady ogólne"은 섹션이고 "Art 6-13"은 섹션의 모든 하위 섹션 목록입니다. 하위 섹션은 \subsection*{Art. 6 Zasada legalności}
Is it even available 로 작성됩니다 . 내 코드:
\documentclass[a4paper,12pt,twoside]{report}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{sectsty}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\renewcommand{\chaptermark}[1]{%
\markboth{\space #1}{}}
\renewcommand{\sectionmark}[1]{
\markright{\thesection.\space #1}}%\hspace{0.5cm}}}
\begin{document}
\chapter{DZIAŁ I. PRZEPISY OGÓLNE}
\section{Rozdział 2. Zasady ogólne}
\subsection*{Art. 6 Zasada legalności }\noindent
\subsection*{Art. 7. Zasada uwzględniania interesu publicznego i słusznego interesu obywateli }
\subsection*{Art. 8. Zasada pogłębiania zaufania do organów państwa }\noindent
\subsection*{Art. 9. Obowiązek udzielania informacji faktycznej i prawnej stronom }\noindent
\subsection*{Art. 10. Zasada czynnego udziału stron w postępowaniu administracyjnym }\noindent
\subsection*{Art. 11. Zasada wyjaśniania zasadności decyzji lub postanowienia }\noindent
\subsection*{Art. 12. Zasada szybkości postępowania }\noindent
\subsection*{Art. 13. Załatwianie spornych spraw w drodze ugody administracyjnej }\noindent
\subsection*{Art. 14. Forma pisemna lub forma dokumentu elektronicznego }\noindent
\subsection*{Art. 15. Zasada dwuinstancyjności postępowania administracyjnego }\noindent
\subsection*{Art. 16. Zasady ogólne trybu odwoławczego }\noindent
\end{document}
답변1
귀하의 문제에 대한 해결책이 있지만 제 생각에는 코딩이 매우 좋지 않습니다. 작동하지만 빠른 수정처럼 이 좋은 코드를 호출하지 않겠습니다.
\documentclass[a4paper,12pt,twoside]{report}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{sectsty}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\lohead*{\rightmark}
\rohead*{\leftmark}
\lehead*{\rightmark}
\rehead*{\leftmark}
\renewcommand{\chaptermark}[1]{\markboth{\emph{\textbf{\Artborders}}}{#1}}
\renewcommand{\sectionmark}[1]{\markleft{#1~\emph{\textbf{\ArtBorders}}}}
\makeatletter
\IfFileExists{./\jobname.Art}{\input{\jobname.Art}}{}
\newwrite\ArtFile
\immediate\openout\ArtFile=\jobname.Art
\newcounter{Art@counter}
\newcommand{\Art}[2][]{%
\ifx\relax#1\relax%
\else%
\setcounter{Art@counter}{\numexpr #1-1}%
\fi%
\refstepcounter{Art@counter}%
\subsection*{Art.~\theArt@counter.~#2}%
\ifcsname Art@firstC\roman{chapter}S\roman{section}\endcsname\else%
\global\expandafter\edef\csname Art@firstC\roman{chapter}S\roman{section}\endcsname{\theArt@counter}%
\fi%
\expandafter\edef\csname Art@lastC\roman{chapter}S\roman{section}\endcsname{\theArt@counter}%
\edef\@@Artfirst{\csname Art@firstC\roman{chapter}S\roman{section}\endcsname}%
\edef\@@Artlast{\csname Art@lastC\roman{chapter}S\roman{section}\endcsname}%
\immediate\write\ArtFile{%
\expandafter\def\expandafter\noexpand\csname Art@markC\roman{chapter}S\roman{section}\endcsname{%
\csname Art@firstC\roman{chapter}S\roman{section}\endcsname%
\ifx\@@Artfirst\@@Artlast\else%
-%
\csname Art@lastC\roman{chapter}S\roman{section}\endcsname%
\fi%
}
}
}
\newcounter{Art@counterbak}%
\newenvironment{subArts}[1][]{%
\ifx\relax#1\relax%
\setcounter{Art@counterbak}{\theArt@counter}%
\else%
\def\subArt@test{#1}%
\def\subArt@string{step}%
\ifx\subArt@test\subArt@string%
\setcounter{Art@counterbak}{\numexpr\theArt@counter+1}%
\else%
\setcounter{Art@counterbak}{#1}%
\fi%
\fi%
\setcounter{Art@counter}{0}%
\renewcommand{\theArt@counter}{\arabic{Art@counterbak}\alph{Art@counter}}%
}{%
\setcounter{Art@counter}{\theArt@counterbak}%
}
\newcommand{\ArtBorders}{%
\ifcsname Art@markC\roman{chapter}S\roman{section}\endcsname%
Art.~\csname Art@markC\roman{chapter}S\roman{section}\endcsname%
\fi%
}
\AtEndDocument{\immediate\closeout\ArtFile}
\makeatother
\begin{document}
\chapter{DZIAŁ I. PRZEPISY OGÓLNE}
\section{Rozdział 2. Zasady ogólne}
%\thispagestyle{scrheadings}
\begin{subArts}[6]
\Art{Zasada legalności }\noindent
\Art{Zasada uwzględniania interesu publicznego i słusznego interesu obywateli }\noindent
\end{subArts}
\pagebreak
\Art{Zasada pogłębiania zaufania do organów państwa }\noindent
\pagebreak
\Art{Obowiązek udzielania informacji faktycznej i prawnej stronom }\noindent
\Art{Zasada czynnego udziału stron w postępowaniu administracyjnym }\noindent
\Art{Zasada wyjaśniania zasadności decyzji lub postanowienia }\noindent
\begin{subArts}
\Art{Zasada szybkości postępowania }\noindent
\Art{Załatwianie spornych spraw w drodze ugody administracyjnej }\noindent
\end{subArts}
\Art{Forma pisemna lub forma dokumentu elektronicznego }\noindent
\Art{Zasada dwuinstancyjności postępowania administracyjnego }\noindent
\begin{subArts}[step]
\Art{Zasady ogólne trybu odwoławczego }\label{art:zas}\noindent
\Art{test}
\Art{test2}\label{art:test2}
\end{subArts}
See Art. \ref{art:zas} and \ref{art:test2}.
\end{document}
subArts
편집: 이제 하나의 선택적 인수를 허용하는 환경이 생겼습니다 . 인수가 주어지지 않으면 현재 카운터 값만 사용하고, 인수가 주어지고 그것이 문자열이면 step
카운터를 증가시키고, 그렇지 않으면 카운터를 주어진 인수로 설정합니다.
EDIT2: 헤더가 올바른 것 같아요. 그런데 페이지 번호는 어디에서 원하시나요?
EDIT3: 아래 코드는 대략 동일하지만 를 호출할 때마다 .Art 파일로 인쇄하는 대신 \Art
각 에 대해 한 번만 인쇄하여 \Art@mark
필요한 인쇄를 크게 줄입니다. 불필요한 인쇄를 줄이고 변수를 더 많이 사용하는 것이 더 나은지 아니면 변수량을 줄이는 것이 더 나은지는 모르겠습니다.
\documentclass[a4paper,12pt,twoside]{report}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage{sectsty}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\lohead*{\rightmark}
\rohead*{\leftmark}
\lehead*{\rightmark}
\rehead*{\leftmark}
\renewcommand{\chaptermark}[1]{\markboth{\emph{\textbf{\ArtBorders}}}{#1}}
\renewcommand{\sectionmark}[1]{\markleft{#1~\emph{\textbf{\ArtBorders}}}}
\makeatletter
\newcount\Art@printcount
\Art@printcount=0
\newcount\Art@printpos
\Art@printpos=0
\def\Art@addprint{%
\global\advance\Art@printcount by 1%
\global\expandafter\edef\csname Art@printqueue\the\Art@printcount\endcsname{%
C\roman{chapter}S\roman{section}%
}%
}
\def\Art@print{%
\loop\ifnum\Art@printcount>\Art@printpos%
\advance\Art@printpos by 1%
\edef\@@ArtcurCS{\csname Art@printqueue\the\Art@printpos\endcsname}
\edef\@@Artfirst{\csname Art@first\@@ArtcurCS\endcsname}
\edef\@@Artlast{\csname Art@last\@@ArtcurCS\endcsname}
\immediate\write\ArtFile{%
\expandafter%
\def\expandafter\noexpand\csname Art@mark\@@ArtcurCS\endcsname{%
\@@Artfirst%
\ifx\@@Artfirst\@@Artlast\else%
-%
\@@Artlast%
\fi%
}%
}%
\repeat%
}
\IfFileExists{./\jobname.Art}{\input{\jobname.Art}}{}
\newwrite\ArtFile
\immediate\openout\ArtFile=\jobname.Art
\newcounter{Art@counter}[section]
\newcommand{\Art}[2][]{%
\ifx\relax#1\relax%
\else%
\setcounter{Art@counter}{\numexpr #1-1}%
\fi%
\refstepcounter{Art@counter}%
\subsection*{Art.~\theArt@counter.~#2}%
\edef\@@ArtcurCS{C\roman{chapter}S\roman{section}}%
\ifcsname Art@first\@@ArtcurCS\endcsname\else%
\global\expandafter\edef\csname Art@first\@@ArtcurCS\endcsname{%
\theArt@counter%
}%
\Art@addprint%
\fi%
\global\expandafter\edef\csname Art@last\@@ArtcurCS\endcsname{%
\theArt@counter%
}%
}
\newcounter{Art@counterbak}%
\newenvironment{subArts}[1][]{%
\ifx\relax#1\relax%
\setcounter{Art@counterbak}{\theArt@counter}%
\else%
\def\subArt@test{#1}%
\def\subArt@string{step}%
\ifx\subArt@test\subArt@string%
\setcounter{Art@counterbak}{\numexpr\theArt@counter+1}%
\else%
\setcounter{Art@counterbak}{#1}%
\fi%
\fi%
\setcounter{Art@counter}{0}%
\renewcommand{\theArt@counter}{\arabic{Art@counterbak}\alph{Art@counter}}%
}{%
\setcounter{Art@counter}{\theArt@counterbak}%
}
\newcommand{\ArtBorders}{%
\ifcsname Art@markC\roman{chapter}S\roman{section}\endcsname%
Art.~\csname Art@markC\roman{chapter}S\roman{section}\endcsname%
\fi%
}
\AtEndDocument{\Art@print\immediate\closeout\ArtFile}
\makeatother
\begin{document}
\chapter{DZIAŁ I. PRZEPISY OGÓLNE}
\section{Rozdział 2. Zasady ogólne}
%\thispagestyle{scrheadings}
\begin{subArts}[6]
\Art{Zasada legalności }\noindent
\Art{Zasada uwzględniania interesu publicznego i słusznego interesu obywateli }\noindent
\end{subArts}
\pagebreak
\Art{Zasada pogłębiania zaufania do organów państwa }\noindent
\pagebreak
\Art{Obowiązek udzielania informacji faktycznej i prawnej stronom }\noindent
\Art{Zasada czynnego udziału stron w postępowaniu administracyjnym }\noindent
\Art{Zasada wyjaśniania zasadności decyzji lub postanowienia }\noindent
\begin{subArts}
\Art{Zasada szybkości postępowania }\noindent
\Art{Załatwianie spornych spraw w drodze ugody administracyjnej }\noindent
\end{subArts}
\Art{Forma pisemna lub forma dokumentu elektronicznego }\noindent
\Art{Zasada dwuinstancyjności postępowania administracyjnego }\noindent
\begin{subArts}[step]
\Art{Zasady ogólne trybu odwoławczego }\label{art:zas}\noindent
\Art{test}
\Art{test2}\label{art:test2}
\end{subArts}
See Art. \ref{art:zas} and \ref{art:test2}.
\chapter{test chapter}
\Art{the art of war}
\end{document}