编辑:我尝试了@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}