调整算法浮动标题的间距

调整算法浮动标题的间距

背景

使用算法包显示源代码列表。

问题

LaTeX (LyX) 代码 ( test.lyx) 位于:http://pastebin.com/QRWDhA7E

示例图形 ( query.png) 文件位于:https://i.stack.imgur.com/8RRL5.png

结果:

在此处输入图片描述

注意第一条黑线和蓝色背景起点之间的间隙。

有关的

问题

  1. 如何使标题与顶线齐平?
  2. 使标题与底线齐平的正确方法是什么?(我想我使用 作弊了\vspace{-1ex}。)

谢谢你!

答案1

首先,我们中的许多人(如果不是大多数人的话)没有 LyX,所以最好提供 LaTeX 代码。其次,最好给出一个最小的示例代码,因为通常将代码缩减到最少是分析 LaTeX 问题时的第一步。

显示该问题的合理示例代码如下:

\documentclass{scrbook}
\usepackage{float}
\usepackage{caption}
\usepackage[dvipsnames,svgnames,x11names,table]{xcolor}

\usepackage{algorithm}

% Use a hyphen for captions, and make links give a bit of space.
\DeclareCaptionFormat{algorithm}{\vspace{-1ex}\colorbox[HTML]{A6BFF2}{%
  \parbox[c][1.75em][c]{\textwidth}{\hspace{0.25em}#1#2#3}}}
\captionsetup[algorithm]{format=algorithm}

\begin{document}
\begin{algorithm}
\caption{Blah\ldots}
A
\end{algorithm}
\end{document}

但现在让我们看看你的问题:额外的空格是由 float 包提供的“ruled”浮点样式排版的。可以通过定义自己的浮点样式并使用此样式而不是原始样式来创建算法环境来更改此设置。我通过复制“ruled”样式并对其进行修改来做到这一点:

% Define own float style called "algorithm"
\makeatletter
\newcommand\fs@algorithm{%
  \let\@fs@capt\floatc@algorithm
  \def\@fs@pre{\hrule height.8pt depth0pt\relax}% \kern2pt removed
  \def\@fs@mid{\hrule\kern2pt}%  \kern2pt removed
  \def\@fs@post{\kern2pt\hrule\relax}%
  \let\@fs@iftopcapt\iftrue}
\makeatother

% Make the algorithm environment use the algorithm float style
\floatstyle{algorithm}
\restylefloat{algorithm}

所以总共有:(请注意,我删除了\vspace您的多余部分。)

\documentclass{scrbook}
\usepackage{float}
\usepackage{caption}
\usepackage[dvipsnames,svgnames,x11names,table]{xcolor}

\usepackage{algorithm}

% Define own float style called "algorithm"
\makeatletter
\newcommand\fs@algorithm{%
  \let\@fs@capt\floatc@algorithm
  \def\@fs@pre{\hrule height.8pt depth0pt\relax}% \kern2pt removed
  \def\@fs@mid{\hrule\kern2pt}%  \kern2pt removed
  \def\@fs@post{\kern2pt\hrule\relax}%
  \let\@fs@iftopcapt\iftrue}
\makeatother

% Make the algorithm environment use the algorithm float style
\floatstyle{algorithm}
\restylefloat{algorithm}

% Use a hyphen for captions, and make links give a bit of space.
\DeclareCaptionFormat{algorithm}{\colorbox[HTML]{A6BFF2}{%
  \parbox[c][1.75em][c]{\textwidth}{\hspace{0.25em}#1#2#3}}}
\captionsetup[algorithm]{format=algorithm}

\begin{document}
\begin{algorithm}
\caption{Blah\ldots}
A
\end{algorithm}
\end{document}

请注意,此代码仍包含 2x \kern2pt,一个在算法主体之前,一个在算法主体之后。如果您也不喜欢这个额外的垂直空间,只需将其删除即可。

相关内容