将章节标题居中,但多个标题相对于标题的第一行水平对齐

将章节标题居中,但多个标题相对于标题的第一行水平对齐

编辑:我尝试了@Bernard 和@egreg 的解决方案。

这两种解决方案都适用于多行标题,也就是说,标题居中所有标题行与计数器的距离都相同\thesection,但较短/正常的标题则不然。

我刚刚补充道,

\section{}
\section{Intro}
\section{Intro intro}

对你来说.tex,似乎

  • 对于@Bernard,空白部分确实居中\section{},但其他两个部分在视觉上似乎没有居中,因为与多行标题相比,文本太短了

  • 对于@egreg,空隙部分没有居中,短部分也没有居中。

现在所需要的正是多行标题所需要的,但对于普通标题也同样如此,这意味着number+title短标题的简单居中。

====================== 编辑结束 ===================

我使用这个article课程。

我的章节有多行标题,并且我希望章节编号+标题居中,但是当标题有多行时,我希望第二行从第一行开始的位置开始 [在编号章节之后]。

我还想避免在标题中使用连字符,所以有人告诉我这\raggedright是解决方案。

有人告诉我titlesec可以做到这一切,但我没能得到我想要的。我还有其他命令要输入,\renewcommand\section{但与风格无关。因此我想避免使用,titlesec而且我不介意直接使用\renewcommand\section{

\documentclass{article}
\tracinglostchars=2

\setlength\parindent{0pt}
\newcommand*\x{\rule{1cm}{1cm}}


%\usepackage{titlesec}
%\usepackage[extramarks]{titleps}
%\titleformat{\section}{\raggedright}{\textsc{\thesection}}{1em}{\normalfont}
\makeatletter
    \def\@seccntformat#1{\rmfamily\bfseries\upshape\llap{\csname the#1\endcsname\hspace{0.11em}Q8Q\hspace{0.11em}}\normalfont}


    \renewcommand\section{%
    %\clearpage
    % other code...
    %\penalty-9999
    \@startsection {section}{1}{0em}{0\parskip}{10em}{\centering\rmfamily\bfseries\scshape}%
    }

\makeatother
\begin{document}
\section{fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
}

\end{document}

目前,它是居中的,但是,我无法同时实现居中,加上\raggedright“第二行的开头位于第一行的开头”。

答案1

也许这就是您想要的。请注意,\bfseries\scshape对于大多数字体来说,它不起作用;它通常只提供\bfseries

\documentclass{article}
\usepackage{showframe} % just for the example

\usepackage{titlesec}

\titleformat{\section}
  {\centering}
  {}
  {0pt}
  {\sectionbox{\thesection}}

\titleformat{name=\section,numberless}
  {\centering}
  {}
  {0pt}
  {\sectionbox{}}

\newcommand{\sectionbox}[2]{%
  \parbox[t]{.7\columnwidth}{
    \normalfont\bfseries\raggedright
    \makebox[0pt][r]{#1\quad}%
    #2
  }%
}

\begin{document}

\section*{Some section title that should have a centered appearance,
but be ragged right; it is not clear how good this is}

\section{Some section title that should have a centered appearance,
but be ragged right; it is not clear how good this is}

\end{document}

在此处输入图片描述

答案2

这是一种可能的方法,即titlesec

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[showframe]{geometry}
\tracinglostchars=2
\usepackage{lettrine, graphicx, ltablex}
\usepackage[x11names]{xcolor}
\setlength\parindent{0pt}

\usepackage[explicit]{titlesec}
%\usepackage[extramarks]{titleps}

\titleformat{\section}[block]{\filcenter\bfseries}{}{0em}
{\begin{tabularx}{0.6\linewidth}{@{}l>{\arraybackslash\raggedright}X@{}}\raisebox{-0.7\height}{\scalebox{4}{\color{SlateGray4!60! LightSkyBlue1}\thesection}} & \parbox[t]{\linewidth}{#1}\end{tabularx}}

\titlespacing{\section}{0ex}{2.5\baselineskip}{3.5\baselineskip}


\usepackage{lipsum}

\begin{document}

\section{fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
fontspec warning: "only-luatex-feature" Ignored LuaTeX only feature: 'Renderer=Full/Basic'.
}
\lipsum[1]

\end{document} 

在此处输入图片描述

相关内容