
Ich möchte die horizontale Position des gesamten Codes ändern. Wenn möglich, entfernen Sie die Polsterung. Wie kann ich das machen?
\begin{algorithm}[t!]
\algrenewcommand\algorithmicindent{.1em}%
\caption{With intent no indent}
\begin{algorithmic}%\
\Function{\publish[$c, data$]}{}
\State{algorithmicindent works inside this block only}
\EndFunction
\end{algorithmic}%\
\end{algorithm}
Antwort1
algorithmicx
richtet die gesamte algorithmic
Umgebung einListeStruktur am Anfang der Umgebung. Es wird davon ausgegangen, dass eine Zeilennummerierung vorhanden sein wird, und daher bleibt ein horizontaler Einzug. Wenn Sie niemals Zeilennummerierung verwenden möchten, können Sie einfach Folgendes \leftmargin
erstellen \labelwidth
und \labelsep
ein0pt
xpatch
von \algorithmic
:
\documentclass{article}
\usepackage{algorithm,algpseudocode}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\algorithmic}{\ALG@tlm\z@}{\ALG@tlm\z@\leftmargin 0pt}{}{}
\makeatother
\begin{document}
\begin{algorithm}
\caption{With intent no indent}
\begin{algorithmic}
\Function{Publish[$c$, \textit{data}]}{}
\State algorithmicindent works inside this block only
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
\xpatchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
Die Einstellung von wird unmittelbar danach angehängt . \leftmargin 0pt
Beim \ALG@tlm\z@
Erstellen der Liste geschieht dies unmittelbar, nachdem alle Messungen der Listenumgebung festgelegt wurden.
Hier ist eine Ansicht der algorithmic
Umgebung, wie sie definiert ist inalgorithmicx.sty
, zusammen mit der Stelle, an der oben \xpatchcmd
der Code eingefügt wird:
\newenvironment{algorithmic}[1][0]%
{%
\edef\ALG@numberfreq{#1}%
\def\@currentlabel{\theALG@line}%
%
\setcounter{ALG@line}{0}%
\setcounter{ALG@rem}{0}%
%
\let\\\algbreak%
%
\expandafter\edef\csname ALG@currentblock@\theALG@nested\endcsname{0}%
\expandafter\let\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
%
\begin{list}%
{\ALG@step}%
{%
\rightmargin\z@%
\itemsep\z@ \itemindent\z@ \listparindent2em%
\partopsep\z@ \parskip\z@ \parsep\z@%
\labelsep 0.5em \topsep 0.2em%\skip 1.2em
\ifthenelse{\equal{#1}{0}}%
{\labelwidth 0.5em}%
{\labelwidth 1.2em}%
\leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep}% Ok. the perfect leftmargin :-))
\ALG@tlm\z@% <----- resetting of \leftmargin 0pt inserted here
}%
\setcounter{ALG@nested}{0}%
\ALG@beginalgorithmic%
}%
{% end{algorithmic}
% check if all blocks are closed
\ALG@closeloops%
\expandafter\ifnum\csname ALG@currentblock@\theALG@nested\endcsname=0\relax%
\else%
\PackageError{algorithmicx}{Some blocks are not closed!!!}{}%
\fi%
\ALG@endalgorithmic%
\end{list}%
}%