使用带有左边距格式化的图像删除章节标题上方的空白

使用带有左边距格式化的图像删除章节标题上方的空白

我正在尝试删除带有格式的标题上方的空格leftmargin,并且该标题还包含图像。该问题与这个问题,但那里的解决方案对我不起作用,而且它没有使用leftmargin。还有许多其他类似的问题,但我找不到针对这种特定情况的解决方案。

当我删除leftmargin格式时,空间就消失了。

我的代码如下。我欢迎任何反馈,以了解是否有更好的方法来实现相同的结果(具有较宽的左边距)。

\documentclass[a4paper]{article}

\usepackage[document]{ragged2e}
\usepackage{graphicx,titlesec,lipsum}
\usepackage[vmargin=0.8cm,hmargin={8.3cm,0.8cm},showframe]{geometry}

% Unrelated: how do you include parameters to commands in \titleformat
\newcommand{\includerotate}[1]{\includegraphics[angle=180,origin=c]{#1}}

\titleformat{\section}[leftmargin]
{\huge}
{}
{0em}                         
{}
[\hspace{-7.5cm}\includerotate{3_lines.pdf}\\]

\titlespacing{\section}
{0cm}{0pt}{7.5cm}

\begin{document}
\section{service overview}
\lipsum[1-2]
\end{document}

这将生成以下文档。我试图删除的空白位于上边距和彩色线之间。以下是链接3_行.pdf如果您想编译代码。

示例文档

答案1

间距来自\huge格式参数中的 - 它导致在设置标题之前插入普通支柱。相反,您可以使用“代码之前”参数来\titleformat设置字体大小并放置图形规则。我还建议将标题放在一个狭窄的列中,而不是放在零宽度的列中,并带有溢出的框:

示例输出

\documentclass[a4paper]{article}

\usepackage[document]{ragged2e}
\usepackage{graphicx,titlesec}
\usepackage[vmargin=0.8cm,hmargin={8.3cm,0.8cm},showframe]{geometry}

\newcommand{\includerotate}[1]{\includegraphics[angle=180,origin=c,viewport=0
12 550 12]{#1}}

\titleformat{\section}[leftmargin]
{}
{}
{0em}                         
{\rlap{\includerotate{3_lines.pdf}}\endgraf\vspace{-15pt}\filright\huge}
[\strut]
\titlespacing{\section}
{3cm}{2ex plus 0.5ex minus 0.2ex}{4.5cm}

\usepackage{lipsum} %for dummy text
\usepackage[latin]{babel} %with correct hyphenation

\begin{document}
\section{service overview}
\lipsum[1-2]

\section{other details and material}
\lipsum[3-4]
\end{document}

之前通过 打印规则,在一个宽度为零的框中\rlap。然后它开始一个新段落,\par在这里不起作用,但\endgraf已经足够了。该段落设置为titlesecs 版本\raggedright,即\filright,并\huge选择大小。间距已更改,因此标题设置为列3cm宽,并在标题前添加了垂直间距。

答案2

我的解决方案是将彩色规则视为部分标题的标签,而不是在编写部分标题后添加的内容。使用可选参数\raisebox,您可以让 LaTeX 认为它没有高度,没有宽度。所以我不必包含、旋转等任何图形文件;当部分出现在页面顶部时,规则就会绘制在测试区域顶部限制的下方。

以下是代码:

\documentclass[a4paper]{article}

\usepackage[document]{ragged2e}
\usepackage{graphicx,lipsum}
\usepackage[explicit]{titlesec}
\usepackage[x11names]{xcolor}
\usepackage[vmargin=0.8cm,hmargin={8.3cm,0.8cm},reversemarginpar, showframe]{geometry}

\titleformat{\section}[leftmargin]
{\huge}
{\raisebox{0.575\baselineskip}[0pt][0pt]{\color{HotPink4}\rule{7cm}{3pt}\hspace{14.25pt}\rule{\textwidth}{3pt}}}
{0em}
{#1}
%[\hspace{-7.5cm}\includerotate{3_lines.pdf}\\]
%[\includegraphics{3_lines.pdf}\\]%
\titlespacing{\section}
{0cm}{1.5\baselineskip}{7.5cm}

\begin{document}
\section{service overview}
\lipsum[1-10]
\section{service overview 2}
\lipsum[11-15]
\end{document} 

结果:

在此处输入图片描述

回答您的附属问题:如果您使用该explicit选项加载 titlesec,则可以非常简单地使用 \titleformat 的一个参数,即章节标题。但也许您想传递其他参数?

相关内容