Formatting Latex算法行间距
我已经用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
\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{…}
宏,将它们设置为文本。