Formatting Latex算法行间距

Formatting Latex算法行间距,formatting,latex,pdflatex,latex-environment,Formatting,Latex,Pdflatex,Latex Environment,我已经用latex创建了一个算法,但是插入了一些额外的行距。 我目前有以下代码 \documentclass{article} \usepackage{algorithm} \usepackage{algpseudocode} \usepackage{caption} \begin{document} This this this \begin{algorithm} \algblock[TryCatchFinally]{try}{endtry} \algcblock[Tr

我已经用latex创建了一个算法,但是插入了一些额外的行距。 我目前有以下代码

\documentclass{article}

\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{caption}

\begin{document}

This this this

\begin{algorithm}
    \algblock[TryCatchFinally]{try}{endtry}
    \algcblock[TryCatchFinally]{TryCatchFinally}{finally}{endtry}
    \algcblockdefx[TryCatchFinally]{TryCatchFinally}{catch}{endtry}
    [1]{\textbf{catch} #1}
    {\textbf{end try}}  
    \caption{Task}
    \begin{algorithmic}[1]
        \Procedure {Task Check}{}        
        \State \parbox[t]{313pt}{$aaaaaaaaa\textunderscore aaaaaaa = Thread(aaaaaa=call\textunderscore service,
            args=(
            "aaaaa\textunderscore aaaaaa\textunderscore generation\textunderscore aaaa",
            Craaaaalan,
            "load\textunderscore plan\textunderscore aaaa")
            )$}
        \State \parbox[t]{313pt}{$aaaa-aaaaaaaaa\textunderscore aaaaaaa = Thread(aaaaaa=call\textunderscore service,
            args=(
            "aaaaa\textunderscore aaaaaa\textunderscore generation\textunderscore aaaa",
            Craaaaalan,
            "load\textunderscore plan\textunderscore aaaa")
            )$}
        \State \parbox[t]{313pt}{$aaaaaa\textunderscore aaaaaaa = Thread(aaaaaa=call\textunderscore service,
            args=(
            "aaaaa\textunderscore aaaaaa\textunderscore generation\textunderscore aaaa",
            Craaaaalan,
            "load\textunderscore plan\textunderscore aaaa")
            )$}     
        \EndProcedure
    \end{algorithmic}
\end{algorithm}

\end{document}

输出结果有点像这样:

图像中的三种状态都是相同的服务调用,只是有一点小小的变化。细微的变化是使用不同的单词,因此长度不同。随附的示例代码包含准确的长度。状态7的输出也是其他状态所需的,但由于一些额外的单词,它不符合格式。你知道如何纠正状态5和**状态6**使其看起来像状态7

有无数学模式的色差


谢谢

数学模式完全不适合设置像变量名这样的逐字记录内容。缺少换行符应该是你最不担心的。字距混乱,引号错误,减号而不是连字符

您可以尝试使用raggedright普通文本,但我会对源代码等内容进行排版,例如使用
清单
软件包:

\documentclass{article}



\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{caption}

\usepackage{listings}
\lstset{basicstyle=\ttfamily, breaklines}

\begin{document}

\begin{algorithm}
    \algblock[TryCatchFinally]{try}{endtry}
    \algcblock[TryCatchFinally]{TryCatchFinally}{finally}{endtry}
    \algcblockdefx[TryCatchFinally]{TryCatchFinally}{catch}{endtry}
    [1]{\textbf{catch} #1}
    {\textbf{end try}}  
    \caption{Task}
    \begin{algorithmic}[1]
        \Procedure {Task Check}{}        
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaaaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaa-aaaaaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}     
        \EndProcedure
    \end{algorithmic}
\end{algorithm}

\end{document}

或者如果您坚持使用斜体字体:

\documentclass{article}



\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{caption}

\usepackage{listings}
\lstset{basicstyle=\itshape, breaklines}

\begin{document}

\begin{algorithm}
    \algblock[TryCatchFinally]{try}{endtry}
    \algcblock[TryCatchFinally]{TryCatchFinally}{finally}{endtry}
    \algcblockdefx[TryCatchFinally]{TryCatchFinally}{catch}{endtry}
    [1]{\textbf{catch} #1}
    {\textbf{end try}}  
    \caption{Task}
    \begin{algorithmic}[1]
        \Procedure {Task Check}{}        
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaaaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaa-aaaaaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}
        \State \parbox[t]{313pt}{\raggedright\lstinline{aaaaaa_aaaaaaa = Thread(aaaaaa=call_service, args=("aaaaa_aaaaaa_generation_aaaa", Craaaaalan, "load_plan_aaaa"))}}     
        \EndProcedure
    \end{algorithmic}
\end{algorithm}

\end{document}

或者甚至可以使用带有换行符等的真实列表,以提高可读性:

\documentclass{article}



\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{caption}

\usepackage{listings}
\lstset{basicstyle=\ttfamily, breaklines}

\begin{document}

\begin{algorithm}
    \algblock[TryCatchFinally]{try}{endtry}
    \algcblock[TryCatchFinally]{TryCatchFinally}{finally}{endtry}
    \algcblockdefx[TryCatchFinally]{TryCatchFinally}{catch}{endtry}
    [1]{\textbf{catch} #1}
    {\textbf{end try}}  
    \caption{Task}
    \begin{algorithmic}[1]
        \Procedure {Task Check}{}        
        \State \vspace*{-1.46\baselineskip}\begin{lstlisting}
aaaaaaaaa_aaaaaaa = Thread(
  aaaaaa=call_service, 
  args=(
    "aaaaa_aaaaaa_generation_aaaa", 
    Craaaaalan, 
    "load_plan_aaaa"
  )
)
\end{lstlisting}
        \State \vspace*{-1.46\baselineskip}\begin{lstlisting}
aaaa-aaaaaaaaa_aaaaaaa = Thread(
  aaaaaa=call_service, 
  args=(
    "aaaaa_aaaaaa_generation_aaaa", 
    Craaaaalan, 
    "load_plan_aaaa"
  )
)
        \end{lstlisting}
        \State \vspace*{-1.46\baselineskip}\begin{lstlisting}
aaaaaa_aaaaaaa = Thread(
  aaaaaa=call_service, 
  args=(
    "aaaaa_aaaaaa_generation_aaaa", 
    Craaaaalan, 
    "load_plan_aaaa"
  )
)
        \end{lstlisting}     
        \EndProcedure
    \end{algorithmic}
\end{algorithm}

\end{document}

请制作一个可编译的文件,不要滥用数学模式来排版多字母单词。从后果来看,断线是行不通的。请看一下
清单
包,它允许逐字记录材料中的换行符。或者使用一个专用于算法的软件包,里面没有公式。它们只是一个普通的英语单词,符合一些命名惯例。我编辑了代码,以便您可以轻松编译它。感谢这仍然是一段无法编译的代码片段。整个文档结构、包等都丢失了。“里面没有公式”这就是你永远不应该使用数学模式的原因谢谢。我想保留数学模式中使用的字体。我还有10种其他算法使用相同的字体、样式和颜色。如果没有数学模式,我是否可以使用相同的字体、样式和颜色?@MuhammadMustafa math font不适合。你不应该在其他10个算法中使用它。如果您想要类似的文本字体,请使用
\itshape
而不是
\ttfamily
谢谢。在一些算法中也涉及一些数学术语。我想为所有算法保留一个同构的格式。谢谢你的意见。他的风格和字体相同,但颜色不同。这条路比数学模式的路太黑了。在主要问题中添加了视觉差异作为图像。新的屏幕截图不是MWE的结果。您必须使用将字体更改为SAN的软件包serif@MuhammadMustafa对于其他算法:即使它们包含数学,因此必须使用数学模式,也不应在此模式下设置多字母变量名。查看
amsmath
包中的
\text{…}
宏,将它们设置为文本。