Como fazer títulos centralizados sublinhados no script KOMA?

Como fazer títulos centralizados sublinhados no script KOMA?

Então tentei fazer títulos centralizados sublinhados:
A resposta para o centralizado veioaquieaqui.

Agora minha pergunta é: como faço para sublinhar: com \ulele não funciona (o arquivo não compila e com ulinefico com um sublinhado feio:
insira a descrição da imagem aqui

E aqui está o MWE:

\documentclass{scrartcl}

\usepackage{fontspec,adforn,ulem,soul}

\makeatletter

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

\begin{document}

\part{ABC}

\section{abc}

\subsection{abcd efgh abcd efgh iiii hhjjgghgg abcd efgh abcd efgh iiii hhjjgghgg abcd efgh abcd efgh iiii hhjjgghgg}
\end{document}

PS Para as partes que recebi respostaaquimas também não funciona.
e aqui é sobre como usar\ulou\uline.
E se estou colocando parboxisso, o que recebo:
insira a descrição da imagem aqui e esta é a linha relevante:

{\ifstr{#1}{subsection}{%
                {\@hangfrom{\uline{\parbox{\linewidth}{{#3}{#4}\adforn{24}}}}}%
        }

Você tem alguma ideia de como poderia funcionar e ter uma aparência adequada e o texto pode ter mais de uma linha centralizada e sublinhada?

Obrigado!!

Responder1

Para visualizar os problemas de sublinhado no seu caso, consulte o código a seguir. Baseia-sena minha respostae usa sublinhado com comando \ul{}de package soul. Observe também que o seu usado \adforn{}é colocado no título da seção e subseção:

\documentclass{scrartcl}

\usepackage{fontspec,adforn}
\usepackage{soul}


\begin{document}

\renewcommand\raggedsection{\centering}

\part{ABC}

\section{\ul{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{\ul{def} \adforn{24}} % <===================================

\section{\ul{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 \protect\adforn{12}}} % <===============
\end{document} 

com o resultado:

insira a descrição da imagem aqui

Como você pode ver \ul{...}é capaz de sublinhar texto longo dentro de um \sectionif o\adforn{} não está incluídopara \ul(veja o primeiro círculo vermelho na imagem acima)!

Agora você pode tentar incluir \adfornem \ullike

\subsection{\ul{def \adforn{24}}}

com o resultado de 9 erros.

Como você pode ver marcado com o segundo círculo vermelho na imagem acima você pode usar \protect\adfarnpara poder compilar sem erros mas o resultado é feio (segundo círculo vermelho).

Conclusão:

  • Você pode sublinhar com centralização sem usar \adfornou
  • você pode usar \adforncom centralização, mas sem sublinhar

Sugiro omitir o sublinhado!

Baseadono segundo MWE nesta respostavocê pode fazer

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage{adforn}
\usepackage{soul} % <===================================================

\renewcommand\raggedsection{\centering}

\let\originalsectionlinesformat\sectionlinesformat
\renewcommand{\sectionlinesformat}[4]{%
  \originalsectionlinesformat{#1}{#2}{#3}{\ul{#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}

para obter o título sublinhado com \sectione \subsectionsem símbolo adicionado automaticamente \adforn.Mas veja: isso pode resultar em uma tipografia feia, dependendo do conteúdo do texto do título usado ...

informação relacionada