带有悬挂缩进的曲线标题条目

带有悬挂缩进的曲线标题条目

我试图获得悬挂缩进,即从第二行开始缩进。关于如何在一般文本或列表中实现这一点,有多种答案。但我无法将它们转移到环境curve中的包中rubric

梅威瑟:

% doc.tex
\documentclass[a4paper,11pt]{curve}

\begin{document}
\makerubric{history}
\end{document}

% history.tex
\begin{rubric}{History}
\entry*[2018]%
    \textbf{That's now}.
\entry*[2016 -- \rlap{$\:\:\dots$}\phantom{2016}]
    \textbf{Last two years}. Great times.
\entry*[2012 -- 2016]%
    \textbf{A few years before}. If there is a long entry like this one
    I would like to have a hanging indentation (i.\,e. indentation from second line).
\end{rubric}

MWE 看起来像这样

我试图研究一下,但这远远超出了我对 tex 的理解。我认为这与那里的命令curve.cls有关:\entry

\newcommand\@entry[2][]{%
  \gdef\@nextentry{}\@key{#1}%
  \egroup% end of \noalign opened in \entry.
  \@@key&\@prefix&#2\\\par}

\newcommand\@sentry[1][]{%
  \gdef\@nextentry{\\\par}\@key{#1}%
  \egroup% end of \noalign opened in \entry.
  \@@key&\@prefix&}

\newcommand\entry{%
  \@nextentry
  \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}%
  \@ifstar{\@sentry}{\@entry}}

看起来左边只有一个段落,上面有一个项目符号。我尝试了该hanging包,内置命令(参见例如https://stackoverflow.com/questions/3254054/),但现在我有点迷茫了。

答案1

感谢 John Kormylo(见上面的评论),我找到了以下解决方案。我不得不使用命令,\entry{}而不是\entry*让它工作。

后面有空格太小的问题parbox,已根据\strut用法进行了纠正,摘自此处:小页面后的垂直空间(编辑:在环境中)

我添加了第二条长线来显示更正后的间距。请注意 中的[t]\parbox[t]这是将项目符号放在第一行而不是 parbox 中心所必需的。在 parbox 中有多个段落的可疑情况下, 后面有花括号\hangindent。这将使其适用于所有段落,而不仅仅是第一个段落。

% doc.tex
\documentclass[a4paper,11pt]{curve}

\makeatletter
\renewcommand\@entry[2][]{%
    \gdef\@nextentry{}\@key{#1}%
    \egroup% end of \noalign opened in \entry.
    \@@key&\@prefix&\parbox[t]{\linewidth}{\hangindent=2em {\strut#2\strut}}\\\par}
\makeatother

\begin{document}
\makerubric{history}
\end{document}

% history.tex
\begin{rubric}{History}
\entry*[2018]%
    \textbf{That's now}.
\entry*[2016 -- \rlap{$\:\:\dots$}\phantom{2016}]
    \textbf{Last two years}. Great times.
\entry[2012 -- 2016]%
    {\textbf{A few years before}. If there is a long entry like this one
    I would like to have a hanging indentation (i.\,e. indentation from second line).}
\entry[2010]%
    {If there is a long entry like this one
    I would like to have a hanging indentation (i.\,e. indentation from second line).}
\end{rubric}

平均能量损失

相关内容