这是我的文档(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}