KOMA-script で下線付きの中央揃えのタイトルを作成するにはどうすればよいでしょうか?

KOMA-script で下線付きの中央揃えのタイトルを作成するにはどうすればよいでしょうか?

そこで私は下線付きの中央タイトルを作ってみました。
中央の答えはここそしてここ

さて、私の質問は、どうすれば下線を付けられるかということです。\ulこれは機能しません(ファイルはコンパイルされず、uline醜い下線が表示されます)。
ここに画像の説明を入力してください

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 回答を得た部分についてはここしかし、これも機能しません。
ここでは使用について説明します\ulまたは\uline.
そして、これを入力すると、parbox次のようになります。
ここに画像の説明を入力してください そして、これが関連する行です:

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

どのようにすれば正しく機能し、適切に表示されるか、またテキストを 1 行以上中央揃えにして下線を引くことができるか、ご存知ですか?

ありがとう!!

答え1

あなたのケースで下線を引いた場合の問題を視覚化するには、次のコードを参照してください。これは、私の答えについて\ul{}パッケージのコマンドで下線を使用します。セクションとサブセクションのタイトルに使用されてsoulいることも確認してください。\adforn{}

\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} 

結果:

ここに画像の説明を入力してください

ご覧のとおり、\ul{...}長いテキストに下線を引くことができます\section\adforn{} 含まれません(上の画像の最初の赤い円を参照)まで\ul

今、あなたは次のよう\adfornに含めることができます\ul

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

結果は9つのエラーでした。

上の画像の 2 番目の赤い円でマークされているように、\protect\adfarnエラーなしでコンパイルできますが、結果は醜いものになります (2 番目の赤い円)。

結論:

  • \adfornまたはを使わずに下線を中央揃えにすることができます。
  • \adforn中央揃えで下線なしでも使用できます

下線は省略することをお勧めします。

ベースこの回答の2番目のMWEについてできるよ

\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}

下線付きの見出しを取得し\section\subsection自動的に\adforn記号を追加しないようにします。しかし、それは醜いタイポグラフィにつながる可能性がある使用される見出しテキストの内容に応じて...

関連情報