So zentrieren Sie Überschriften bei KOMA-Script

So zentrieren Sie Überschriften bei KOMA-Script

Als Fortsetzung dieser Frage:Unterabschnitt mit Koma-Skript anpassen

Wie zentriere ich die Titel?

\renewcommand{\sectionlinesformat}[4]{%
    %\@tempswafalse
        \ifstr{#1}{section}{%
                \mbox{\@hangfrom{\underline{{#3}{#4}\adforn{12}}}}
        }
        {\ifstr{#1}{subsection}{%
                \mbox{\@hangfrom{\underline{{#3}{#4}\adforn{24}}}}%
        }
    {\@hangfrom{\hskip#2#3}{#4}}}%

Und hier ist MWE:

\documentclass{scrartcl}

\usepackage{fontspec,adforn}

\makeatletter
\renewcommand{\sectionlinesformat}[4]{%
    %\@tempswafalse
        \ifstr{#1}{section}{%
                \mbox{\@hangfrom{\underline{{#3}{#4}\adforn{12}}}}
        }
        {\ifstr{#1}{subsection}{%
                \mbox{\@hangfrom{\underline{{#3}{#4}\adforn{24}}}}%
        }
    {\@hangfrom{\hskip#2#3}{#4}}}%
}\makeatother

\begin{document}

\part{ABC}

\section{abc}

\subsection{def}
\end{document}

Bildbeschreibung hier eingeben

Ich möchte den Abschnittstitel und den Unterabschnittstitel zentrieren.

Antwort1

Sie können \centeringIhren geänderten Code einfach einfügen:

\documentclass{scrartcl}

\usepackage{fontspec,adforn}

\makeatletter
\renewcommand{\sectionlinesformat}[4]{%
    %\@tempswafalse
        \ifstr{#1}{section}{%
                \centering\mbox{\@hangfrom{\underline{{#3}{#4}\adforn{12}}}}
        }
        {\ifstr{#1}{subsection}{%
                \centering\mbox{\@hangfrom{\underline{{#3}{#4}\adforn{24}}}}%
        }
    {\@hangfrom{\hskip#2#3}{#4}}}%
}\makeatother

\begin{document}

\part{ABC}

\section{abc}

\subsection{def}
\end{document}

mit dem Ergebnis:

resultierendes PDF

Aber mal ehrlich, warum ändert man das interne Format von KOMA-Script? Das ist keine gute Idee. Besser ist folgendes (und bitte verzichtet bei Überschriften auf Unterstreichungen, verwendet stattdessen Fett- oder Kursivschrift):

\documentclass{scrartcl}

\usepackage{fontspec,adforn}


\begin{document}

\addtokomafont{section}{\centering}    % <==============================
\addtokomafont{subsection}{\centering} % <==============================

\part{ABC}

\section{abc test test test test test test test test test test test test 
  test test test test test test test test test test test test test test 
  test test test test test test \adforn{12}} % <========================

\subsection{def \adforn{24}} % <========================================
\end{document}

mit dem Ergebnis:

Besseres Ergebnis

Auf diese Weise funktioniert die Zentrierung auch bei langen Abschnittsüberschriften, bei der ersten Variante kann dies nicht funktionieren!

Antwort2

Sie können \raggedsectiondie Ausrichtung aller Überschriften durch Neudefinieren ändern \sectionlinesformat.

Unterstreichungen sind nur bei einzeiligen Überschriften möglich. Sie können \@hangfromsie also entfernen.

\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{adforn}
\renewcommand\raggedsection{\centering}% center headings like \section, \subsection etc.

\let\originalsectionlinesformat\sectionlinesformat
\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}{\hskip#2\underline{#3#4\adforn{12}}}%
    {\ifstr{#1}{subsection}{\hskip#2\underline{#3#4\adforn{24}}}
      {\originalsectionlinesformat{#1}{#2}{#3}{#4}}}}%

\usepackage{blindtext}% only for dummy text
\begin{document}
\section{abc}
\blindtext
\subsection{def}
\blindtext
\end{document}

Ergebnis:

Bildschirmfoto

Sollten auch längere Überschriften vorhanden sein, entfernen Sie die (hässliche) Unterstreichung.

\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{adforn}
\renewcommand\raggedsection{\centering}

\let\originalsectionlinesformat\sectionlinesformat
\renewcommand{\sectionlinesformat}[4]{%
  \originalsectionlinesformat{#1}{#2}{#3}{#4%
    \ifstr{#1}{section}{\adforn{12}}
      {\ifstr{#1}{subsection}{\adforn{24}}{}}%
  }%
}

\usepackage{blindtext}% only for dummy text
\begin{document}
\section{abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc}
\blindtext
\subsection{def}
\blindtext
\end{document}

Ergebnis:

Bildschirmfoto

verwandte Informationen