latex 中的伪代码无法格式化

latex 中的伪代码无法格式化

我正在写我的作品,由于某种原因,最终 pdf 中的伪代码无法格式化:

在此处输入图片描述

错误报告是这样的: 在此处输入图片描述

我正在使用的代码:

\documentclass[11pt,a4paper,openright]{report}
\let\openright=\cleardoublepage
\usepackage[czech]{babel}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}
%%% Další užitečné balíčky (jsou součástí běžných distribucí LaTeXu)
\usepackage{amsmath}        % rozšíření pro sazbu matematiky
\usepackage{amsfonts}       % matematické fonty
\usepackage{amsthm}         % sazba vět, definic apod.
\usepackage{bm}             % tučné symboly (příkaz \bm)
\usepackage{graphicx}       % vkládání obrázků
\usepackage{fancyvrb}       % vylepšené prostředí pro strojové \usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{fancyhdr}       % prostředí pohodlnější nastavení hlavy a paty stránek
\usepackage{icomma}         % inteligetní čárka v matematickém módu
\usepackage{dcolumn}        % lepší zarovnání sloupců v tabulkách
\usepackage{booktabs}       % lepší vodorovné linky v tabulkách
\makeatletter
\@ifpackageloaded{xcolor}{
   \@ifpackagewith{xcolor}{usenames}{}{\PassOptionsToPackage{usenames}{xcolor}}
  }{\usepackage[usenames]{xcolor}} % barevná sazba
\makeatother
\usepackage{multicol}       % práce s více sloupci na stránce
\usepackage{caption}
\usepackage{enumitem}


\subsubsection{Vytváření clusterů}
\begin{algorithm}
\caption{Určení sousedících clusterů}
\begin{algorithmic}[1]
\For {$a, b \in C$}
\State předpokládej, že $a, b$ jsou sousedící
\For {$k, l \in C$ a $k, l\neq a, b$}
\If {$P_a P_b \cap P_k P_l \neq\emptyset$}
\State $a, b$ nejsou sousedící clustery
\Else 
\If {\|$P_a P_b\|\geq \textbf{E}_r_\in_c\|P_a P_r\|$}
\State $a, b$ nejsou sousedící clustery
\EndIf
\EndIf
\EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

答案1

嗯,您的代码仍然\begin{document}缺少\end{document可编译:-) 我在以下 MWE 中添加了它们。

罪魁祸首是你代码中的以下一行

\If {\|$P_a P_b\|\geq \textbf{E}_r_\in_c\|P_a P_r\|$}
%      ^                          ^   ^

我改成了

\If {$\|P_a P_b\| \geq \textbf{E}_{r \in c} \|P_a P_r\|$}
%    ^                            ^ ^   ^ ^

您不能_像在您的行中那样嵌套,并且我将第一个移到$之前\|

完整代码如下

\documentclass[11pt,a4paper,openright]{report}

\let\openright=\cleardoublepage
\usepackage[czech]{babel}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}
%%% Další užitečné balíčky (jsou součástí běžných distribucí LaTeXu)
\usepackage{amsmath}        % rozšíření pro sazbu matematiky
\usepackage{amsfonts}       % matematické fonty
\usepackage{amsthm}         % sazba vět, definic apod.
\usepackage{bm}             % tučné symboly (příkaz \bm)
\usepackage{graphicx}       % vkládání obrázků
\usepackage{fancyvrb}       % vylepšené prostředí pro strojové \usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{fancyhdr}       % prostředí pohodlnější nastavení hlavy a paty stránek
\usepackage{icomma}         % inteligetní čárka v matematickém módu
\usepackage{dcolumn}        % lepší zarovnání sloupců v tabulkách
\usepackage{booktabs}       % lepší vodorovné linky v tabulkách
\makeatletter
\@ifpackageloaded{xcolor}{
   \@ifpackagewith{xcolor}{usenames}{}{\PassOptionsToPackage{usenames}{xcolor}}
  }{\usepackage[usenames]{xcolor}} % barevná sazba
\makeatother
\usepackage{multicol}       % práce s více sloupci na stránce
\usepackage{caption}
\usepackage{enumitem}


\begin{document}

\subsubsection{Vytváření clusterů}
\begin{algorithm}
\caption{Určení sousedících clusterů}
\begin{algorithmic}[1]
\For {$a, b \in C$}
\State předpokládej, že $a, b$ jsou sousedící
\For {$k, l \in C$ a $k, l\neq a, b$}
\If {$P_a P_b \cap P_k P_l \neq\emptyset$}
\State $a, b$ nejsou sousedící clustery
\Else 
\If {$\|P_a P_b\| \geq \textbf{E}_{r \in c} \|P_a P_r\|$} % <===============
\State $a, b$ nejsou sousedící clustery
\EndIf
\EndIf
\EndFor
\EndFor
\end{algorithmic}
\end{algorithm}

\end{document}

我明白了

在此处输入图片描述

请将所使用的数学公式修正为您真正需要的。

相关内容