Espacement des lignes de l'algorithme Latex
J'ai créé un algorithme en latex mais il y a un espacement de ligne supplémentaire inséré. J'ai actuellement le code suivant
\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}
et la sortie est un peu comme ceci:
Les trois états dans les images sont des appels de service identiques avec un changement mineur. Le changement mineur est l'utilisation de mots différents et donc une différence de longueur. L'exemple de code joint contient la longueur exacte. La sortie de l' état 7 est ce dont j'ai besoin pour les autres états également, mais en raison de quelques mots supplémentaires, il ne suit pas le format. Une idée comment corriger l' état 5 et ** l'état 6 ** pour qu'il ressemble à l' état 7 ?
Différence de couleur avec et sans mode mathématique
Merci
Réponses
Le mode mathématique est totalement inapproprié pour définir un contenu textuel comme des noms de variables. Les sauts de ligne manquants devraient être le cadet de vos soucis. Le crénage est foiré, les guillemets sont faux, les signes moins au lieu des tirets ...
Vous pouvez essayer avec du texte normal raggedright, mais je voudrais composer des éléments tels que le code source, par exemple en utilisant le listingspackage:
\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}
Ou si vous insistez sur la police italique:
\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}
Ou peut-être même avec de vraies listes avec des sauts de ligne, etc. pour rendre les choses plus lisibles:
\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}