`\section*`을 재정의하여 숫자를 제외하고 `\section`과 *정확히* 작동하도록 합니다.

`\section*`을 재정의하여 숫자를 제외하고 `\section`과 *정확히* 작동하도록 합니다.

"번호가 없는 섹션을 목차에 어떻게 추가하나요?"라는 질문에는 다양한 변형이 있습니다. ...

답변 중 어느 것도 나에게 좋지 않습니다. 왜냐하면 모두 문서의 올바른 위치에 , \addcontentsline그리고 다른 항목( \mark, , ...?)을 고정하는 것과 관련되어 있기 때문입니다. \phantomsection내 경우에는 \section*명령이 패키지에 의해 실행되고 올바른 위치에 항목을 삽입할 수 있는 후크를 제공하지 않습니다. 또한 나에게 필요한 "기타 항목"이 정확히 무엇인지도 확실하지 않습니다. \section*섹션 번호를 인쇄하지 않는다는 점을 제외하면 별표가 없는 버전과 똑같이 작동하도록 재정의할 수 있다면 더 간단하고 강력할 것입니다.

어떻게 해야 하나요?저것?

참고: KOMA-Script 클래스는 옵션이 아닙니다. 나는 현재 article초안을 위해 plain을 사용하고 있으며 결국에는 저널 수업을 들어야 할 것입니다.

참고 2(답변 시도에 대한 의견에서): (a) 여전히 별표 표시가 없는 등의 일반 섹션 번호 매기기를 원하고 (b) 명령을 실행하는 패키지를 사용하도록 설득할 수 없기 \secnumdepth때문에 전체적으로 조정하는 것은 나에게 적합하지 않습니다. 대신에 평범합니다 .\section\section*\section

답변1

\section별표 버전이 사용되는 경우 캡처 및 조건을 재정의할 수 있습니다 . 을 찾으면 \section*원하는 대로 발행하세요 \section. 하지만카운터의 적절한 설정을 통해 숫자 인쇄 메커니즘을 제거합니다.secnumdepth.

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

\documentclass{article}

\usepackage{xparse}

\let\oldsection\section
\makeatletter
\newcounter{@secnumdepth}
\RenewDocumentCommand{\section}{s o m}{%
  \IfBooleanTF{#1}
    {\setcounter{@secnumdepth}{\value{secnumdepth}}% Store secnumdepth
     \setcounter{secnumdepth}{0}% Print only up to \chapter numbers
     \oldsection{#3}% \section*
     \setcounter{secnumdepth}{\value{@secnumdepth}}}% Restore secnumdepth
    {\IfValueTF{#2}% \section
       {\oldsection[#2]{#3}}% \section[.]{..}
       {\oldsection{#3}}}% \section{..}
}
\makeatother

\begin{document}

\tableofcontents

\section{TestA}

\section*{TestB}

\end{document}

xparsestar 버전과 선택적 인수가 있을 수 있는 명령을 (재)정의하기 위한 쉬운 인터페이스를 제공합니다 o.

관련 정보