내가 찾은 섹션 스타일을 사용했습니다.여기. 문제는 번호가 없는 부분에 대해 별도의 스타일을 만들어 보았음에도 불구하고 참고문헌의 헤더가 상자로 되어 있다는 것입니다.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\usepackage{soul}
\definecolor{titleblue}{HTML}{4a7aa4}
\title{Sections and Chapters}
\author{Educ}
\date{\today}
\newbox\TitleUnderlineTestBox
\newcommand*\TitleUnderline[1]
{%
\bgroup
\setbox\TitleUnderlineTestBox\hbox{\colorbox{titleblue}\strut}%
\setul{\dimexpr\dp\TitleUnderlineTestBox-.3ex\relax}{.3ex}%
\ul{#1}%
\egroup
}
\newcommand*\SectionNumberBox[1]
{%
\colorbox{titleblue}
{%
\makebox[2.5em][c]
{%
\color{white}%
\strut
\csname the#1\endcsname
}%
}%
\TitleUnderline{\ \ \ }%
}
\titleformat{\section}
{\Large\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{section}}
{0pt}
{\TitleUnderline{#1}}
\titleformat{\subsection}
{\large\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{subsection}}
{0pt}
{\TitleUnderline{#1}}
\begin{document}
\maketitle
\section{The First Section}
\begin{thebibliography}{}
\bibitem{}
\end{thebibliography}
\end{document}
편집: 표시되는 오류 메시지는 다음과 같습니다.
그룹 중괄호로 묶인 하이픈을 넣을 수 있는 자료를 발견했는데 처리할 수 없습니다. 중괄호를 삭제하거나 \mbox(\hbox)를 사용하여 재료를 깨지지 않게 만드세요. 공백도 하이픈 넣기 가능 지점으로 간주됩니다. 설명서 4페이지를 참조하세요. 지금 제가 어디에 있는지 알 수 있도록 검은색 사각형을 남겨두겠습니다.
답변1
문제는 섹션의 확장되지 않은 이름인 것 같습니다(제가 착각한 것이 아니라면). 다음은 \edef
확장을 통해 주어진 이름을 완전히 확장합니다(이로 인해 새로운 문제가 발생할 수 있는지 확실하지 않습니다). 그러나 MWE에서는 작동합니다.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\usepackage{soul}
\definecolor{titleblue}{HTML}{4a7aa4}
\title{Sections and Chapters}
\author{Educ}
\date{\today}
\newbox\TitleUnderlineTestBox
\newcommand*\TitleUnderline[1]
{%
\bgroup
\setbox\TitleUnderlineTestBox\hbox{\colorbox{titleblue}\strut}%
\setul{\dimexpr\dp\TitleUnderlineTestBox-.3ex\relax}{.3ex}%
\edef\mytmp{#1}%
\expandafter\ul\expandafter{\mytmp}%
\egroup
}
\newcommand*\SectionNumberBox[1]
{%
\colorbox{titleblue}
{%
\makebox[2.5em][c]
{%
\color{white}%
\strut
\csname the#1\endcsname
}%
}%
\TitleUnderline{\ \ \ }%
}
\titleformat{\section}
{\Large\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{section}}
{0pt}
{\TitleUnderline{#1}}
\titleformat{\subsection}
{\large\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{subsection}}
{0pt}
{\TitleUnderline{#1}}
\begin{document}
\maketitle
\section{The First Section}
\begin{thebibliography}{}
\bibitem{}
\end{thebibliography}
\end{document}
대안
다음은 번호가 매겨진 섹션과 유사하게 번호가 매겨진 섹션의 형식을 지정하는 대체 스타일을 정의합니다(일치하는 것으로 사용 report
하고 정의합니다 \chapter
. 제거하기만 하면 됩니다 article
). 또한 \titleformat
단축 매크로를 정의하여 각 섹션화 수준에 대한 호출의 불필요한 반복을 제거합니다 .
\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\usepackage{soul}
\definecolor{titleblue}{HTML}{4a7aa4}
\title{Sections and Chapters}
\author{Educ}
\date{\today}
\newlength\SectionNumberBoxPad
\newcommand*\TitleUnderline[1]
{%
\begingroup
\setul{\dimexpr\dp\strutbox+\fboxsep-.3ex\relax}{.3ex}%
\edef\mytmp{#1}%
\expandafter\ul\expandafter{\mytmp}%
\endgroup
}
\newcommand*\SectionNumberBoxSep{\TitleUnderline{\ \ \ }}
\newcommand*\UnnumberedSectionNumberBox
{%
\colorbox{titleblue}
{\strut\hspace{\dimexpr\ht\strutbox+\dp\strutbox}}%
\SectionNumberBoxSep
}
\newcommand*\SectionNumberBox[1]
{%
\colorbox{titleblue}
{%
\begingroup
\color{white}%
\setlength\SectionNumberBoxPad{.5\dimexpr\ht\strutbox+\dp\strutbox}%
\hspace{\SectionNumberBoxPad}%
\strut\csname the#1\endcsname
\hspace{\SectionNumberBoxPad}%
\endgroup
}%
\SectionNumberBoxSep
}
\makeatletter
\newcommand*\setuptitleformat[2]
{%
\expandafter\setuptitleformat@\csname #1\endcsname{#1}{#2}%
}
\newcommand*\setuptitleformat@[3]
{%
\titleformat{#1}
{#3\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{#2}}
{0pt}
{\TitleUnderline{##1}}%
\titleformat{name=#1,numberless}
{#3\bfseries\sffamily\color{titleblue}}
{\UnnumberedSectionNumberBox}
{0pt}
{\TitleUnderline{##1}}%
}
\makeatother
\setuptitleformat{chapter}{\LARGE}
\setuptitleformat{section}{\Large}
\setuptitleformat{subsection}{\large}
\setuptitleformat{subsubsection}{}
\setcounter{secnumdepth}{3}
\setcounter{chapter}{10}
\begin{document}
\maketitle
\chapter{The First Chapter}
\section{The First Section}
\subsection{The First Subsection}
\subsubsection{The First Subsubsection}
Some text
\begin{thebibliography}{}
\bibitem{}
\end{thebibliography}
\end{document}
대안 2
이 버전은 인쇄 시 동일하게 보이지만 PDF 표시는 보는 사람에 따라 다릅니다(xpdf는 신뢰할 수 있습니다. 이는 ulem
선을 사용하는 것이 작은 세그먼트를 사용하여 작성되어 화면에서 앨리어싱 문제가 발생할 수 있기 때문입니다). 자동 하이픈 연결이 끊어지지만 줄 바꿈이 가능한 상태로 유지됩니다. ulem
패키지 대신 패키지를 사용합니다 soul
. ulem
더 견고해야 하므로 \edef
확장이 필요하지 않습니다.
\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage[explicit]{titlesec}
\usepackage[normalem]{ulem}
\definecolor{titleblue}{HTML}{4a7aa4}
\title{Sections and Chapters}
\author{Educ}
\date{\today}
\newlength\SectionNumberBoxPad
\newlength\TitleUnderlineSeg
\setlength\TitleUnderlineSeg{.05pt}
\newcommand*\TitleUnderline[1]
{%
\bgroup
\markoverwith
{%
\rule
[-\dimexpr\dp\strutbox+\fboxsep\relax]
{\TitleUnderlineSeg}
{.3ex}%
}%
\ULon{#1}%
}
\newcommand*\SectionNumberBoxSep
{%
\hspace{-\TitleUnderlineSeg}%
\TitleUnderline
{\hspace{\TitleUnderlineSeg}\hspace{\SectionNumberBoxPad}}%
}
\newcommand*\UnnumberedSectionNumberBox
{%
\begingroup
\setlength\SectionNumberBoxPad{.5\dimexpr\ht\strutbox+\dp\strutbox}%
\colorbox{titleblue}
{\strut\hspace{2\SectionNumberBoxPad}}%
\SectionNumberBoxSep
\endgroup
}
\newcommand*\SectionNumberBox[1]
{%
\begingroup
\setlength\SectionNumberBoxPad{.5\dimexpr\ht\strutbox+\dp\strutbox}%
\colorbox{titleblue}
{%
\begingroup
\color{white}%
\hspace{\SectionNumberBoxPad}%
\strut\csname the#1\endcsname
\hspace{\SectionNumberBoxPad}%
\endgroup
}%
\SectionNumberBoxSep
\endgroup
}
\makeatletter
\newcommand*\setuptitleformat[2]
{%
\expandafter\setuptitleformat@\csname #1\endcsname{#1}{#2}%
}
\newcommand*\setuptitleformat@[3]
{%
\titleformat{#1}
{#3\bfseries\sffamily\color{titleblue}}
{\SectionNumberBox{#2}}
{0pt}
{\TitleUnderline{##1}}%
\titleformat{name=#1,numberless}
{#3\bfseries\sffamily\color{titleblue}}
{\UnnumberedSectionNumberBox}
{0pt}
{\TitleUnderline{##1}}%
}
\makeatother
\setuptitleformat{chapter}{\LARGE}
\setuptitleformat{section}{\Large}
\setuptitleformat{subsection}{\large}
\setuptitleformat{subsubsection}{}
\setcounter{secnumdepth}{3}
\setcounter{chapter}{10}
\begin{document}
\maketitle
\chapter{The First Chapter}
\section{The First Section}
\subsection{The First Subsection}
\subsubsection{The First Subsubsection}
Some text
\section
{Really long section name that is really long, so long it takes two rows}
\begin{thebibliography}{}
\bibitem{}
\end{thebibliography}
\end{document}
선은 섹션 번호 상자와 수직으로 정렬됩니다( xpdf
2000% 배율로 확인). 불일치는 Gimp의 래스터화로 인한 것입니다.