我对 LaTeX 还不太熟悉,我想让章节标题居中在两条水平线之间,并且都在同一行内。我现在做的是这样的。但是,我希望规则更长一些,但要适应章节名称的长度。
\titleformat{\section}[block]{\LARGE\scshape\centering}{\thesection.}{1em}{}
\newcommand{\newsection}[1]{\section*{\rule{0.25\textwidth}{0.3mm}\hfill#1\hfill\rule{0.25\textwidth}{0.3mm}}}
但在开发文件时,我遇到了一些问题,一些行与一些章节标题重叠。希望我的问题说清楚了...提前致谢
答案1
该解决方案使用保存框来测量标题的宽度。
\documentclass{article}
\usepackage{showframe}% MWE only
\newsavebox{\titlebox}
\newcommand{\newsection}[1]{\savebox\titlebox{\LARGE\scshape#1}%
\section*{\rule[0.6ex]{\dimexpr 0.5\textwidth-0.3em-0.5\wd\titlebox}{1pt}%
\hspace{0.3em}%
\usebox\titlebox
\hspace{0.3em}%
\rule[0.6ex]{\dimexpr 0.5\textwidth-0.3em-0.5\wd\titlebox}{1pt}}}
\begin{document}
\newsection{Short}
\newsection{A longer title}
\newsection{A much much much longer title}
\end{document}