上个月我问过这问题,我得到的答复基本解决了我遇到的问题,但是我注意到答案有一个小问题(少量错位),这是我的 MWE:
\documentclass[letter, 12pt]{article}
\usepackage{titlesec}
\newcounter{globalparagraph}
\titleformat{\section}[hang]{\bfseries}{\makebox[0.75in][l]{\thesection}}{0pt}{}
\titleformat{\subsection}[hang]{\itshape}{\makebox[0.75in][l]{\textup{\thesubsection}}}{0pt}{}
\titleformat{\paragraph}[runin]{\normalfont\normalsize}{%
\refstepcounter{globalparagraph}%
\sbox0{[0]}\makebox[\dimexpr0.75in-\wd0][l]{\theparagraph}}{0pt}{}
\setcounter{secnumdepth}{4}
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\Alph{subsection}.}
\renewcommand{\theparagraph}{[\arabic{globalparagraph}]}
\begin{document}
\section{ONE}
\subsection{SubSection}
\paragraph{} \textit{Subsection}
\end{document}
输出:
如您所见,段落的开头与章节和小节标题不完全对齐。我认为框的尺寸需要进一步调整,但我不知道该调整什么。
答案1
使用斜体使得判断对齐变得困难,因此我添加了\rule
s。
\documentclass[letter, 12pt]{article}
\usepackage{titlesec}
\newcounter{globalparagraph}
\titleformat{\section}[hang]{\bfseries}{\makebox[0.75in][l]{\thesection}}{0pt}{}
\titleformat{\subsection}[hang]{\itshape}{\makebox[0.75in][l]{\textup{\thesubsection}}}{0pt}{}
\titleformat{\paragraph}[runin]{\normalfont\normalsize}{%
\refstepcounter{globalparagraph}%
\makebox[\dimexpr 0.75in-1em][l]{\theparagraph}}{0pt}{}
\setcounter{secnumdepth}{4}
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\Alph{subsection}.}
\renewcommand{\theparagraph}{[\arabic{globalparagraph}]}
\begin{document}
\section{\rule{0.5pt}{\ht\strutbox}ONE}
\subsection{\rule{0.5pt}{\ht\strutbox}SubSection}
\paragraph{\unskip}\rule{0.5pt}{\ht\strutbox}\textit{Subsection}
\end{document}
答案2
OP 提到了两个问题:
A
和的对齐[1]
,和SubSection
和的对齐Subsection
。
第 1 期
下面的 MWE 在代码中演示了分段后的问题 1,问题不是出在方法上,而是出在字体上。我不会称其为问题,因为字体设计者有理由这样设置边界框。但实际情况是,紧靠在A
其边界框的左侧,而留下[
了一个小间隙。
节下方的排版显示了 和 的相同水平偏移A
,[
就像 OP 在节中显示的那样。此问题的一个可能的“修复”是在排版 时将括号向左调整\paragraph
,如下所示1pt
:
\titleformat{\paragraph}[runin]{\normalfont\normalsize}{%
\refstepcounter{globalparagraph}%
\sbox0{[0]}\makebox[\dimexpr0.75in-\wd0][l]{%
\kern-1pt% <-- THIS CHANGE HERE SHIFTS [ LEFTWARD
\theparagraph}}{0pt}{}
第 2 期
titlesec
我不完全理解问题 2 的原因。但是,我倾向于相信第二个问题与手册中的一条注释有关:“排版材料在垂直模式下具有悬挂、块和显示;在水平模式下具有运行“。
我运行了一些设置.75in
规则的测试,发现垂直模式\section
和的\subsection
制表符实际上比的要多.75in
,而水平模式的\paragraph
制表符正好是的.75in
。因此特别指定\section
我提供的“修复”是将 的开头和 的\subsection
起始文本左移-.6pt
。我是这样实现的:
\titleformat{\section}[hang]{\bfseries}{%
\makebox[0.75in][l]{\thesection}}%
{-.6pt}% <-- SHIFTS SUBSECTION ENTRY LEFT
{}
\titleformat{\subsection}[hang]{\itshape}{\makebox[0.75in][l]%
{\textup{\thesubsection}}}{-.6pt}% <-- SHIFTS SECTION ENTRY LEFT
{}
以下是最终的 MWE:
\documentclass[letter, 12pt]{article}
\usepackage{titlesec,xcolor}
\newcounter{globalparagraph}
\titleformat{\section}[hang]{\bfseries}{%
\makebox[0.75in][l]{\thesection}}%
{-.6pt}% <-- SHIFTS SUBSECTION ENTRY LEFT
{}
\titleformat{\subsection}[hang]{\itshape}{\makebox[0.75in][l]%
{\textup{\thesubsection}}}{-.6pt}% <-- SHIFTS SECTION ENTRY LEFT
{}
\titleformat{\paragraph}[runin]{\normalfont\normalsize}{%
\refstepcounter{globalparagraph}%
\sbox0{[0]}\makebox[\dimexpr0.75in-\wd0][l]{%
\kern-1pt% <-- THIS CHANGE HERE SHIFTS [ LEFTWARD
\theparagraph}}{0pt}{}
\setcounter{secnumdepth}{4}
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\Alph{subsection}.}
\renewcommand{\theparagraph}{[\arabic{globalparagraph}]}
\begin{document}
\section{ONE}
\subsection{SubSection}
\paragraph{}\textit{Subsection}
\noindent\rule{.75in}{3pt}
A
[
\fboxsep=0pt
\fboxrule=.1pt
\fbox{A}
\fbox{[}
\end{document}