我正在制作海报,在调整文本块内的算法块时遇到了问题。
我的代码在下面,其中包含包和代码。
\documentclass[a0,portrait]{a0poster}
\pagestyle{empty}
\setcounter{secnumdepth}{0}
\usepackage[absolute]{textpos}
\usepackage{ae} %% Font Encoding T1 (PDF)
\usepackage{lscape} %% Utilizar página em landscape
\usepackage{url} %% Trata URLs, e-mails e paths
\usepackage{float}
%\usepackage[num]{abntcite}
\usepackage[pdftex]{graphicx,color}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage[position=top]{subfig}
\usepackage{url}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb,amsfonts,textcomp}
\usepackage{color}
\usepackage{fancyhdr}
\usepackage[font={normal,it}]{caption}
\usepackage{fancyvrb}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{multirow}
\usepackage{textfit}
\usepackage{rotating}
\usepackage{boxedminipage}
\usepackage{setspace}
\usepackage{multicol}
\usepackage{subfig}
\usepackage{tikz}
\usepackage[a0paper,left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
%=========- Color -===========================================%
\usepackage{color}
\definecolor{DarkBlue}{rgb}{0.1,0.1,0.5}
\definecolor{Red}{rgb}{0.9,0.0,0.1}
\definecolor{DarkGreen}{rgb}{0.10,0.50,0.10}
%=========- Command -======================================%
\let\Textsize\normalsize
\def\Head#1{\noindent\hbox to \hsize{\hfil{\LARGE\color{DarkBlue} #1}}\bigskip}
\def\LHead#1{\noindent{\LARGE\color{DarkBlue} #1}\smallskip}
\def\Subhead#1{\noindent{\large\color{DarkBlue} #1}}
\newcommand{\quiteHuge}{\fontsize{70.3}{93}\selectfont}
\def\Title#1{\begin{center}\noindent{\quiteHuge\color{DarkBlue}\textbf{#1}}\end{center}}
\TPGrid[40mm,40mm]{14}{25} % 4 - 1 - 4 - 1 - 4 Columns
\parindent=0pt
\parskip=0.5\baselineskip
%================Begin===================================%
\begin{document}
\begin{textblock}{4.2}(0,3.6)
\begin{algorithm}[H]
\caption{Calculate $Q_{ij}$}\label{alg:calcqij}
\begin{algorithmic}[1]
\REQUIRE $\tau>0,A\ne\emptyset,N=|A|$
\ENSURE $Q_{ij}(\Delta t)\sum_{t\in A} e^{-\frac{|t-\delta t|}{\tau}}, \forall t\in A$
\STATE $\mathbf{A}\Leftarrow\mathrm{sort}(A)\;\{O(N\log N)\}$
\STATE $Q^-(1)\Leftarrow 1$
\STATE $Q^+(N)\Leftarrow 0$
\FOR{$k=1$ \TO $N-1$}
\STATE $ed(k)\Leftarrow e^{-\frac{\mathbf{A}(k+1)-\mathbf{A}(k)}{\tau}}$
\ENDFOR
\FOR{$k=1$ \TO $N-1$}
\STATE $Q^-(k+1)\Leftarrow 1+Q^-(k)\cdot ed(k)$
\STATE $Q^+(N-k)\Leftarrow (Q^+(N-k+1)+1)\cdot ed(N-k)$
\ENDFOR
\FOR{$k=1$ \TO $N$}
\STATE $Q_{ij}(A(k))\Leftarrow Q^+(k)+Q^-(k)$
\ENDFOR
\end{algorithmic}
\end{algorithm} %====ERROR LINE====%
\end{textblock}
\end{document}
我总是收到有关浮动列宽的错误消息。
未定义的控制序列。\endalgorithm ...oatbox \global \setbox \@currbox \float@makebox \columnwidt... l.82 \end{algorithm} 错误消息顶行末尾的控制序列从未被 \def'ed。如果您拼错了它(例如,
\hobx'), type
I' 和正确的拼写(例如,`I\hbox')。否则继续,我会忘记未定义的内容。
有人知道如何解决此问题吗?
如果你有任何疑问请告诉我。
谢谢。
答案1
textpos
旨在\textblock
将内容放置在当前页面的固定位置。因此,您不应在其中存储可以浮动的内容,即使float
包裹提供了一个非浮动的、保持在右侧[H]
的浮点说明符。相反,你可以通过使用以下方法欺骗 TeX,让它认为它正在处理浮点数:
\captionof{algorithm}{<your caption here>}
由提供caption
. 或者,capt-of
包裹提供类似的功能。因此,您的文档结构应该类似于:
\begin{textblock}{4.2}(0,3.6)
\captionof{algorithm}{Calculate $Q_{ij}$\label{alg:calcqij}}
\begin{algorithmic}[1]
%...
\end{algorithmic}
\end{textblock}