Necesito modificar mi encabezado. Ahora se ve así:
Lo que necesito tener:
Donde "DZIAŁ 1. PRZEPISY OGÓLNE" es un capítulo, "Rozdział 2. Zasady ogólne" es una sección y "Art 6-13" es una lista de todas las subsecciones de la sección. Las subsecciones están escritas como \subsection*{Art. 6 Zasada legalności}
¿Es posible? Mi código:
\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}
Respuesta1
Tengo una solución a tu problema, pero en mi opinión la codificación es bastante mala. Aunque funciona, no llamaré a este código bueno, simplemente como una solución rápida:
\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}
EDITAR: Ahora tienes el entorno subArts
, que acepta un argumento opcional. Si no se proporciona ningún argumento, simplemente usa el valor del contador actual; si se proporciona un argumento y si esa es la cadena, step
incrementa el contador; de lo contrario, establece el contador en el argumento dado.
EDITAR2: Creo que entendí bien los encabezados. ¿Pero dónde quieres los números de página?
EDITAR3: El siguiente código hace más o menos lo mismo, pero en lugar de imprimir en el archivo .Art en cada llamada de \Art
, solo se imprime una vez para cada \Art@mark
, lo que reduce drásticamente las impresiones necesarias. No sé si es mejor reducir las impresiones innecesarias pero usar más variables o reducir la cantidad de variables.
\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}