So entfernen Sie Leerzeichen im Abschnittstitel bei KOMA-Script

So entfernen Sie Leerzeichen im Abschnittstitel bei KOMA-Script

Hier ist MWE:

\documentclass{scrartcl}
\usepackage{adforn}


\renewcommand{\sectionlinesformat}[4]{%
        \ifstr{#1}{section}{%
               {\adforn{30} {#3}. {#4} \adforn{58}}
        }
    {{\hskip#2#3}{#4}}%
}\makeatother

\begin{document}

\section{ABC}

\end{document} 

Die Ausgabe ist folgende:
Bildbeschreibung hier eingeben

Ich möchte, dass es so wird:1. ABCund nicht1. ABC (kein Leerzeichen zwischen der „1“ und dem „.“).
Es ist möglich? Und wenn es möglich ist, wie kann ich es tun?

Danke schön!

Antwort1

Das Makro enthält am Ende \sectionformatein . Sie können es ohne dieses neu definieren:\enskip

\documentclass{scrartcl}
\usepackage{adforn}

\def\sectionformat{\thesection\autodot}% \enskip
\renewcommand{\sectionlinesformat}[4]{%
        \ifstr{#1}{section}{%
               {\adforn{30} {#3}. {#4} \adforn{58}}
        }
    {{\hskip#2#3}{#4}}%
}\makeatother

\begin{document}

\section{ABC}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Sie sollten Gruppenklammern auf ein Minimum reduzieren und .entweder das Folgende hinzufügen \sectionformat:

\documentclass{scrartcl}
\usepackage{adforn}

\renewcommand*{\sectionformat}{\thesection.\enskip}% replaced \autodot by .
\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}%
    {\adforn{30} #3#4 \adforn{58}}%
    {\hskip#2#3#4}%
}\makeatother

\begin{document}

\section{ABC}

\end{document} 

oder wählen Sie aus numbers=withdot, dass der Punkt zu allen Abschnittsebenen hinzugefügt werden soll:

\documentclass[numbers=enddot]{scrartcl}
\usepackage{adforn}

\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}%
    {\adforn{30} #3#4 \adforn{58}}%
    {\hskip#2#3#4}%
}

\begin{document}

\section{ABC}

\end{document} 

Das Ergebnis beider Beispiele ist:

O 1. ABC o

Hinweis: Sie sollten ein \autodot„in“ nicht \sectionformatmit einem fest codierten kombinieren .(weder „in \autodot“ noch „on“ \sectionlinesformat, wenn es laut Spezifikation falsch platziert ist), weil dies zu zwei Punkten führen könnte.

Bitte schauen Sie sich dieKOMA-Script Handbuchfür den Standardwert \sectionformatund die Bedeutung von numbers=withdot, \sectionformatund \autodot.

BTW: Das \makeatotherin deinem Beispiel ist auch nicht notwendig und sollte entfernt werden (das habe ich auch getan).

Off-Topic: Sie sollten auch mögliche unerwünschte Leerzeichen durch Zeilenumbrüche nach }oder {und durch echte Leerzeichen in der Mitte des Codes vermeiden.


In einem Kommentar heißt es, dass dies nicht funktioniert mit hebrew:

\documentclass[numbers=enddot]{scrartcl}
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}
\usepackage{adforn}

\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}%
    {\adforn{30} #3#4 \adforn{58}}%
    {\hskip#2#3#4}%
}

\begin{document}

\section{גדה}

\end{document} 

Und

\documentclass{scrartcl}
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\hebrewfonttt[Script=Hebrew]{Miriam Mono CLM}
\newfontfamily\hebrewfontsf[Script=Hebrew]{Simple CLM}
\usepackage{adforn}

\renewcommand*{\sectionformat}{\thesection.\enskip}% replaced \autodot by .
\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}%
    {\adforn{30} #3#4 \adforn{58}}%
    {\hskip#2#3#4}%
}

\begin{document}

\section{גדה}

\end{document} 

beides führt zu:

o Nein .1 O

was für die Verwendung von RL richtig zu sein scheint.

verwandte Informationen