KOMA-Script scrreprt: Нумерация разделов и заголовки, встроенные в первую строку текста

KOMA-Script scrreprt: Нумерация разделов и заголовки, встроенные в первую строку текста

Используя пакет KOMA-Script, scrreprtмне нужно, чтобы нумерация разделов и заголовок были включены в первый абзац самого раздела, а нумерация разделов начиналась заново с каждой главы, т. е. вместо

Глава 1

Рим

1.1 Магия Рима

Ibam forte via sacra..............

1.2 Современный Рим

Идемте в любом случае через священную дорогу .......

Глава 2

Милан

2.1 Милан – это магия?

Ibam forte via sacra..............

2.2 Современный Милан

Идемте в любом случае через священную дорогу .......

===========:========== Я бы хотел:

Глава 1

Рим

1. Магия Рима.Ibam forte via sacra..............

2.Современный Рим.Идемте в любом случае через священную дорогу .......

Глава 2

Милан

1. Милан – это магия.Ibam forte via sacra..............

2.Современный Милан.Идемте в любом случае через священную дорогу .......

Как мне получить этот результат?

решение1

Для получения этого результата важны три вещи:

  1. Удалить компонент нумерации глав из нумерации разделов:

    \renewcommand*\thesection{\arabic{section}}
    
  2. Обновите \sectionкоманду, чтобы разрешить тексту следовать в строке с заголовком (так называемый заголовок run-in). Это зависит от пятого аргумента (илиафтерскип) to \@startsection. Это значение должно быть отрицательным. Определение по умолчанию для \section:

    \newcommand\section{\@startsection{section}{1}{\z@}%
      {-3.5ex \@plus -1ex \@minus -.2ex}%
      {2.3ex \@plus.2ex}%
      {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
        \setlength{\parfillskip}{\z@ plus 1fil}\fi
        \raggedsection\normalfont\sectfont\nobreak\size@section}%
    }
    

    гдеафтерскипдается как 2.3ex \@plus.2ex(положительный). Мы обновляем это, чтобы теперь быть

    \renewcommand\section{\@startsection{section}{1}{\z@}%
      {-3.5ex \@plus -1ex \@minus -.2ex}%
      {-2.3ex \@plus-.2ex}%{2.3ex \@plus.2ex}%
      {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
        \setlength{\parfillskip}{\z@ plus 1fil}\fi
        \raggedsection\normalfont\sectfont\nobreak\size@section}%
    }
    

    гдеафтерскипсейчас -2.3ex \@plus-.2ex(отрицательно).

    Для справки см.Где я могу найти файлы справки или документацию по командам, например \@startsectionдля LaTeX?

  3. Вставьте точку .после секционирования уровней с помощью

    \renewcommand*{\othersectionlevelsformat}[3]{#3.\enskip}
    

    Выше также добавлено \enskip, которое при необходимости можно удалить.

Вот полный MWE, содержащий вышеуказанные изменения:

введите описание изображения здесь

\documentclass[chapterprefix=true]{scrreprt}
\renewcommand*\thesection{\arabic{section}}
\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {-2.3ex \@plus-.2ex}%{2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\makeatother
\renewcommand*{\othersectionlevelsformat}[3]{#3.\enskip}
\begin{document}
\chapter{Rome}
\section{Magic of Rome}
Ibam forte via sacra \ldots
\section{Modern Rome}
Andavo per caso per la via sacra \ldots
\chapter{Milan}
\section{Is Milan magic?}
Ibam forte via sacra \ldots
\section{Modern Milan}
Andavo per caso per la via sacra \ldots
\end{document}

решение2

Вам необходимо переопределить счетчик\thesection

\documentclass[chapterprefix=true]{scrreprt}
\renewcommand*\thesection{\arabic{section}}
\begin{document}
\chapter{Rome}
\section{Magic of Rome}
Ibam forte via sacra \ldots
\section{Modern Rome}
Andavo per caso per la via sacra \ldots
\chapter{Milan}
\section{Is Milan magic?}
Ibam forte via sacra \ldots
\section{Modern Milan}
Andavo per caso per la via sacra \ldots
\end{document}

вот результат:

введите описание изображения здесь

Связанный контент