![latex 中的伪代码无法格式化](https://linux22.com/image/392533/latex%20%E4%B8%AD%E7%9A%84%E4%BC%AA%E4%BB%A3%E7%A0%81%E6%97%A0%E6%B3%95%E6%A0%BC%E5%BC%8F%E5%8C%96.png)
我正在写我的作品,由于某种原因,最终 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}
我明白了
请将所使用的数学公式修正为您真正需要的。