KOMA 스크립트에서 밑줄 중앙 제목을 만드는 방법은 무엇입니까?

KOMA 스크립트에서 밑줄 중앙 제목을 만드는 방법은 무엇입니까?

그래서 밑줄이 있는 중심 제목을 만들어 보았습니다.
중심에 대한 답이 나왔습니다.여기그리고여기.

이제 제 질문은 어떻게 밑줄을 그어야 하느냐는 것입니다. \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}

추신 : 내가 답변을 얻은 부분에 대해여기하지만 그것도 작동하지 않습니다.
여기에 사용에 대한 내용이 있습니다.\ul또는\uline.
그리고 이것을 넣으면 내가 parbox얻는 것은 다음과 같습니다.
여기에 이미지 설명을 입력하세요 그리고 이것은 관련 라인입니다:

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

그것이 어떻게 제대로 작동하고 보일 수 있는지, 그리고 텍스트가 한 줄 이상 중앙에 있고 밑줄이 그어질 수 있는지 아시나요?

감사합니다!!

답변1

귀하의 경우 밑줄 문제를 시각화하려면 다음 코드를 참조하십시오. 그것은 기반내 대답에\ul{}package 의 명령에 밑줄을 사용합니다 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} 

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

보시다시피 if \ul{...}안에 긴 텍스트에 밑줄을 긋는 것이 가능합니다.\section\adforn{} 포함되지 않습니다\ul(위 이미지의 첫 번째 빨간색 원 참조) !

이제 다음과 같은 항목 \adforn에 포함하려고 할 수 있습니다 .\ul

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

9개의 오류가 발생했습니다.

위 이미지에서 두 번째 빨간색 원으로 표시된 대로 \protect\adfarn오류 없이 컴파일할 수 있지만 결과는 보기 흉합니다(두 번째 빨간색 원).

결론:

  • \adforn또는를 사용하지 않고 센터링으로 밑줄을 긋을 수 있습니다 .
  • \adforn밑줄 없이 센터링과 함께 사용할 수 있습니다.

밑줄은 생략하는 것이 좋습니다!

기반을 둔이 답변의 두 번째 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하지만 보세요: 그러면 보기 흉한 타이포그래피가 생길 수 있습니다., 사용된 제목 텍스트의 내용에 따라...

관련 정보