算法像带边框的图形一样浮动

算法像带边框的图形一样浮动

这是我的文档(LuaLaTeX):

\documentclass[a4paper,twoside,12pt]{scrreprt}
\usepackage{fontspec}
\usepackage{a4wide}
\usepackage[english]{babel} 
\usepackage{caption}
\usepackage{blindtext}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}
\Blindtext
\begin{minipage}{\textwidth}
   \begin{algorithmic}[1]
    \Require{lala}
    \Statex
    \Function{yolo}{x}
    \State $x \leftarrow 0$
    \EndFunction
  \end{algorithmic}
  \captionof{algorithm}{yolo bla bla bla}
\end{minipage}
\Blindtext
\end{document}

它看起来是这样的: 在此处输入图片描述

我希望它保持这种状态,但在伪代码/算法(当然不包括标题!)周围放置一个边框(与文本相同的宽度),并且整个事物周围应该有更多的空间,就像图形一样。

对于任何帮助:非常感谢!!

答案1

您正在使用 KOMA 脚本类,这意味着包tocbasic 已加载并可供使用。该接口是一个简单的键值列表,您只需定义一个类型(算法)、姓名(算法算法列表) 并决定它是否应该是一个浮动环境(float)(在这种情况下你必须做一些特别的事情)。

由于您的新目录由 KOMA 处理,因此您可以获得所有奇特的功能。您可以原生使用 listof 命令,toc如果设置了选项,它将获得一个条目,等等。

该软件包mdframed提供了一个简单的命令,用于用框架包围给定的环境。文档中提供了有关如何自定义它的说明。

\documentclass{scrreprt}
\usepackage{fontspec}
%\usepackage{a4wide}%JB: Do you really need this?
\usepackage[ngerman,english]{babel} 
\usepackage{blindtext}
\usepackage{algpseudocode}
\usepackage{mdframed}
\surroundwithmdframed{algorithmic}
\DeclareNewTOC[%
    type=algorithm,%
    float,%
    name=Algorithm,%JB: <- this isn't even necessary
    listname=List of Algorithms]
    {loa}

%JB: Just in case we want to switch the language to german ;-)
\newcaptionname{ngerman}{\listalgorithmname}{Liste der Algorithmen}
\newcaptionname{ngerman}{\algorithmname}{Algorithmus}

\KOMAoption{listof}{totoc}
\begin{document}
%\selectlanguage{ngerman}
\tableofcontents
\listofalgorithms
\chapter{let's have a look}
\Blindtext
\begin{algorithm}
   \begin{algorithmic}[1]
    \Require{lala}
    \Statex
    \Function{yolo}{x}
    \State $x \leftarrow 0$
    \EndFunction
  \end{algorithmic}
  \caption{yolo bla bla bla}
\end{algorithm}
\blindtext
\end{document}

相关内容