Ich schreibe einen Code mit dem algorithm
Paket. Ich möchte jedoch kleinere Kanten einfügen. Ich habe die minipage
Boxen verwendet und es hat nicht funktioniert. Kann mir jemand einen Vorschlag machen?
ich habe das
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{algorithm}
%========================
\begin{document}
\section*{Example Algorithm}
%----------------------
\begin{algorithm}
\caption{Penalty function}
\begin{itemize}
\item Let $\{c_k\}$, $k=1,2,\ldots$, be a sequence tending to infinity such that for each $k$, $0 \leq c_k < c_{k+1}$.
\item Define the function $$q(\mu_{k},x) = f(x) + \mu_{k}P(x).$$
\item For each k solve the problem
\begin{gather*} minimize \ q(\mu_{k},x), \end{gather*}
obtaining a solution point $x_{k}$.
\end{itemize}
\end{algorithm}
%----------------------
\end{document}
welche Ergebnisse
aber ich möchte
Antwort1
Der algorithm
Float wird definiert durchfloat
's \newfloat
. Dadurch wird der gesamte Float für eventuelle Umstrukturierungen verbraucht (inkl. der Platzierung der \caption
, die vom Stil abhängt). Dies beeinträchtigt auch die Möglichkeit, die Breite des Floats anzupassen.
Eine Möglichkeit, dies zu umgehen, besteht darin, den Float in a zu platzieren minipage
und ihn nicht schweben zu lassen. Dies wird durch die Float-Spezifikation float
des Pakets unterstützt:[H]
\documentclass{article}
\usepackage{amsmath,algorithm}
\begin{document}
\section*{Example Algorithm}
\begin{algorithm}[H]
\caption{Penalty function}
\begin{itemize}
\item Let $\{c_k\}$, $k = 1,2,\dots$, be a sequence tending to infinity such that for each~$k$, $0 \leq c_k < c_{k+1}$.
\item Define the function $$q(\mu_{k},x) = f(x) + \mu_k P(x).$$
\item For each k solve the problem
\[ \text{minimize } q(\mu_k,x),c \]
obtaining a solution point~$x_k$.
\end{itemize}
\end{algorithm}
{\centering
\begin{minipage}{.7\linewidth}
\begin{algorithm}[H]
\caption{Penalty function}
\begin{itemize}
\item Let $\{c_k\}$, $k = 1,2,\dots$, be a sequence tending to infinity such that for each~$k$, $0 \leq c_k < c_{k+1}$.
\item Define the function $$q(\mu_{k},x) = f(x) + \mu_k P(x).$$
\item For each k solve the problem
\[ \text{minimize } q(\mu_k,x),c \]
obtaining a solution point~$x_k$.
\end{itemize}
\end{algorithm}
\end{minipage}
\par
}
\end{document}
Natürlich mit einemminipage
erforderteine zu verwendende \begin{algorithm}[H]
(um das schwebende Verhalten zu vermeiden). Wenn Sie dennoch ein schwebendes möchten algorithm
, können Sie den folgenden Workaround verwenden:
\begin{figure}[htb]
\centering
\begin{minipage}{.7\linewidth}
\begin{algorithm}[H]
% <your algorithm>
\end{algorithm}
\end{minipage}
\end{figure}
Wir platzieren das Nicht-Float algorithm
in einem Floatingfigure
ohneVerwenden Sie ein \caption
für figure
.
Antwort2
Die folgende Lösung hat bei mir funktioniert:
\documentclass{article}
\usepackage{amsmath,algorithm}
\begin{document}
\begin{algorithm}
\centering
\begin{minipage}{0.8\linewidth}
\centering
\caption{%caption
}
\label{%label
}
\begin{algorithmic}[1]
% Your algorithm here
\end{algorithmic}
\end{minipage}
\end{algorithm}
\end{document}