我正在将文档从suftesi
类迁移到memoir
(由于打印尺寸问题)。我只剩下一个问题:我需要复制各部分parcenter
的样式suftesi
,可能无需加载包titlesec
(对我来说似乎有点过头了)。此外,我使用 LuaLaTeX,因此必须排除特定于 XeLaTeX 的解决方案。
了解以下信息可能也会有所帮助:我已修改“标准”分段,使其始终增加分段编号(即使对于带星号的命令也是如此),但不会在带星号的版本中打印分段名称(与普通带星号的命令相反)。我也包括了此代码。
以下是我的想法:
\documentclass[a4paper,showtrims, twoside, italian, openright,10pt]{memoir}
\usepackage{xparse}
\makeatletter
\let\@nt@ni\section
\RenewDocumentCommand{\section}{som}{%
\IfBooleanTF{#1}{%
\refstepcounter{section}%
\@nt@ni*{\thesection}
}{%
\IfValueTF{#2}{%
\@nt@ni[#2]{#3}%
}{%
\@nt@ni{#3}}}%
}
\usepackage{microtype}
\usepackage{lipsum}
\setsecheadstyle{\scshape\centering}
\begin{document}
\chapter{a}
\section{Text}
\lipsum[1]
\end{document}
结果如下(请不要介意字体):
这是通过以下方式获得的目标结果\documentclass[documentstructure=book,secstyle=parcenter,style=smallcaps8]{suftesi}
(请不要介意字体或文本,只介意格式)
编辑总结一下我想要的:小写部分标题,居中但一行以下章节编号。
答案1
这是一个可能的解决方案:
\documentclass[a4paper,showtrims, twoside, italian, openright,10pt]{memoir}
\usepackage{xparse}
\let\memoirsection\section
\RenewDocumentCommand{\section}{sO{#4}O{#4}m}{%
\begingroup
\IfBooleanTF{#1}{%
\refstepcounter{section}%
\memoirsection*{\thesection}%
}{%
\memoirsection[#2][#3]{#4}%
}%
\endgroup
}
\usepackage{microtype}
\usepackage{lipsum}
\setsecheadstyle{\twolinecenter}
\setsecindent{0pt}
\setsechook{%
\setsecnumformat{\csname the##1\endcsname\par}%
\sethangfrom{\noindent##1}%
}
\newcommand{\twolinecenter}[1]{%
\hbox{\parbox[t]{\textwidth}{\scshape\centering#1}}%
}
\begin{document}
\chapter{a}
\section{Text}
\lipsum[2]
\end{document}
请注意,与文档所memoir
暗示的相反,钩子中的\setsecnumformat
声明\sethangfrom
不是局部于所述节级,但会影响所有其他节级。这就是重新定义\begingroup
和的原因,我使其与 的两个可选参数兼容。\endgroup
\section
memoir
答案2
似乎在回忆录中你只需要
\setsecnumformat{\csname the#1\endcsname}
\sethangfrom{#1\par}
完整文件:
\documentclass[a4paper,showtrims, twoside, italian, openright,10pt]{memoir}
\usepackage{xparse}
\makeatletter
\let\@nt@ni\section
\RenewDocumentCommand{\section}{som}{%
\IfBooleanTF{#1}{%
\refstepcounter{section}%
\@nt@ni*{\thesection}
}{%
\IfValueTF{#2}{%
\@nt@ni[#2]{#3}%
}{%
\@nt@ni{#3}}}%
}
\setsecnumformat{\csname the#1\endcsname}
\sethangfrom{#1\par}
\usepackage{microtype}
\usepackage{lipsum}
\setsecheadstyle{\scshape\centering}
\begin{document}
\chapter{a}
\section{Text}
\lipsum[1]
\end{document}