
Aqui está o 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}
Eu quero que seja:1. ABCe não1. abc (sem espaço entre "1" e ".").
É possível? e se for possível, como posso fazer isso?
Obrigado!
Responder1
A macro \sectionformat
contém um \enskip
no final. Você pode redefini-lo sem isso:
\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}
Responder2
Você deve reduzir as chaves de grupo ao mínimo e adicionar .
ao \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}
ou selecione numbers=withdot
para adicionar o ponto a todos os níveis de seção:
\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}
Ambos os exemplos resultam em:
Nota: Você não deve combinar um \autodot
in \sectionformat
com um hard coded .
(nem dentro \autodot
nem \sectionlinesformat
onde ele está mal colocado por especificação), pois isso pode resultar em dois pontos.
Por favor, dê uma olhada noManual KOMA-Scriptpara o padrão \sectionformat
e o significado numbers=withdot
de \sectionformat
e \autodot
.
BTW: O \makeatother
no seu exemplo também não é necessário e deve ser removido (foi o que fiz).
Fora do tópico: você também deve evitar possíveis espaços em branco falsos por novas linhas após }
ou {
por espaços reais no meio do código.
Como um comentário afirma que isso não funciona com 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}
e
\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}
ambos resultam em:
que parece estar correto para usar RL.