我想右对齐子部分标题中的日期。标题文本的其余部分应围绕该日期排列。我尝试使用包裹图但它似乎在子部分命令中不起作用。
例子:
\titleformat{\subsection}{\bfseries}{}{0pt}{\noindent#1}
\setcounter{secnumdepth}{0}
\subsection{%
\SomehowFloatThisRight{2016-12-11}
Integer vitae neque vitae eros fringilla rutrum vestibulum in pede adipiscing
mi dapibus condimentum etiam felis risus
}
输出:
| Integer vitae neque vitae eros fringilla rutrum 2016-12-11 |
| vestibulum in pede adipiscing mi dapibus condimentum etiam |
| felis risus |
答案1
Piet 答案的一个变体,具有更清晰的界面:
\documentclass{article}
\usepackage{titlesec}
\usepackage{lipsum}
\titleformat{name=\subsection,numberless}
{\bfseries}
{}
{0pt}
{\typesetdatesubsection}
\newlength{\datespace}
\newcommand{\datesubsection}[2]{%
\settowidth{\datespace}{\bfseries #1}%
\def\thissubsectiondate{#1}\subsection*{#2}%
}
\newcommand{\typesetdatesubsection}[1]{%
\makebox[0pt][l]{\makebox[\columnwidth][r]{\thissubsectiondate}}%
\raggedright
\parshape 2
0pt \dimexpr\columnwidth-\datespace-3em\relax
0pt \columnwidth
#1%
}
\begin{document}
\lipsum[2]
\datesubsection{2016-12-11}{Integer vitae neque vitae eros fringilla rutrum
vestibulum in pede adipiscing mi dapibus condimentum etiam felis risus}
\lipsum[3]
\datesubsection{2016-11-11/2016-12-11}{Integer vitae neque vitae eros fringilla rutrum
vestibulum in pede adipiscing mi dapibus condimentum etiam felis risus}
\end{document}
我使用是\raggedright
因为否则排版会更加麻烦。
答案2
我必须说,我发现这种格式化小节标题的方式很奇怪,可能会让读者感到困惑。
也就是说,您可以使用 和 来执行此操作\hangindent
。\hangafter
但是,这些必须在段落开始之前给出,并且您需要“浮动”文本的大小。因此您必须指定此前章节标题,否则就太迟了。无论如何,这更好,以确保此代码不会进入目录,因为我确信它会在那里造成严重破坏。我假设此代码不应该进入目录。因此,它被放在 而不是\titleformat
中\subsection
。
无论如何,这是我的解决方案。我在日期前留出 1cm 的额外空间,以便将其与标题清晰地分开。
\documentclass{article}
\usepackage{titlesec}
\setcounter{secnumdepth}{0}
\newlength{\SubsectionFloatLength}
\newcommand{\FloatRightText}{}
\newcommand{\SubsectionFloatRight}[1]{\settowidth{\SubsectionFloatLength}{\hspace{1cm}\bfseries#1}%
\renewcommand{\FloatRightText}{#1}}
\titleformat{\subsection}{\bfseries}{}{0pt}{\hangindent-\SubsectionFloatLength\hangafter-1\noindent
\rlap{\makebox[\linewidth][r]{\FloatRightText}}}
\begin{document}
\tableofcontents
\SubsectionFloatRight{2016-12-11}
\subsection {Integer vitae neque vitae eros fringilla rutrum vestibulum in pede adipiscing
mi dapibus condimentum etiam felis risus}
\end{document}