是否可以创建没有垂直段落间距的 LyX 布局样式?

是否可以创建没有垂直段落间距的 LyX 布局样式?

Style当我在 LyX 布局中定义一个新内容时,在 LaTeX 输出中,LyX 段落后总会有两个换行符。

我可以删除 LyX 编辑器中显示的垂直间距(使用TopSepBottomSepTopSep),但我无法弄清楚如何避免\n\nLaTeX 输出中导致段落间距的 :

Style NoSpacingParagraph
    CopyStyle             Standard
    TopSep                0
    BottomSep             0
    ParSep                0
End

我已经尝试过LatexName使用自定义的乳胶命令进行自定义 - 但\n\n似乎是不可避免的。

有任何想法吗?

答案1

在 LaTeX 中,parskip下列的\vspace{-\parskip}通过在段落末尾添加一个长度为 parskip ( ) 的负垂直间距,即可删除段落。然后负间距和正 parskip 相互消除。

为了将此解决方案纳入 LyX 段落样式,我使用了以下内容:

Style NoSpacingParagraph
        CopyStyle             Standard
        LatexType             Command
        LatexName             noparskip
        TopSep                0.0
        ParSep                0.0
        BottomSep             0.0
        ParSkip               0.0
        Preamble
                \newcommand{\noparskip}[1]{#1\vspace{-\parskip}}
        EndPreamble
End

现在只需为一个段落选择这种新样式,它和下一个段落之间的 parskip 就会在呈现的输出中消失。

答案是受这个问题启发的:仅在特定段落之后抑制 parskip 吗?

答案2

定义经过验证的当地的布局(文档>设置...>本地布局)它将其作为选项添加到格式下拉菜单/工具栏中:

在此处输入图片描述

由于您使用Standard样式的“副本”来创建NoSpacingParagraph,因此您仍需要选择应使用设置的段落NoSpacingParagraph。或者,您需要Standard直接将其更改为本地布局(覆盖它)。

样式如下Standard(取自stdclass.inc):

Style Standard
    Category              MainText
    Margin                Static
    LatexType             Paragraph
    LatexName             dummy
    ParIndent             MM
    ParSkip               0.4
    Align                 Block
    AlignPossible         Block, Left, Right, Center
    LabelType             No_Label
    # FIXME This ought to be set dynamically.
    HTMLStyle
        div.standard {
            margin-bottom: 2ex;
        }
    EndHTMLStyle
End

其次,LaTeX 输出中有一个由变量 定义的段落间隙/跳过\parskip。如果你\parskip在某处定义了一个较大的段落间隙/跳过,这可能是原因。也可以通过添加以下代码轻松覆盖它:

\AtBeginDocument{\setlength{\parskip}{<your choice>}}

到您的文档 > 设置... > LaTeX 序言。

相关内容