我正在尝试\phantom
在算法标题中使用。我正在使用algorithm
和algorithmic
包。\phantom
在我的文档中的普通文本中可以正常工作,但在标题中则不行。有没有解决方法可以将空白放入标题中?我尝试过\hbox
和使用来\includegraphics[width=0.25in]{smallWhiteImage.png}
创建一些空间。这些都不起作用。
任何帮助都非常好!请参阅下面的代码示例。
我拥有的:
\begin{algorithm}
\caption{ TestAlgorithm \newline
\textbf{SomeInputs} input1, \newline $\cdots$ input2, input3, input4, \newline $\cdots$ input5, input6, input7 \newline
\textbf{AnOutput} output1 }
\label{algo:TestAlgorithm}
\begin{algorithmic}[1]
\STATE $oh yeah!$
\end{algorithmic}
\end{algorithm}
我想要的是:
\begin{algorithm}
\caption{ TestAlgorithm \newline
\textbf{SomeInputs} input1, \newline \phantom{$\cdots$} input2, input3, input4, \newline \phantom{$\cdots$} input5, input6, input7 \newline
\textbf{AnOutput} output1 }
\label{algo:TestAlgorithm}
\begin{algorithmic}[1]
\STATE $oh yeah!$
\end{algorithmic}
\end{algorithm}
答案1
您可以根据需要\protect\phantom{$\cdots$}
使用\phantom
:
根据 egreg 的评论,您还可以使用\hspace*{2em}
来指定要添加的空间。您可以像 一样指定绝对水平空间\hspace*{1.0cm}
,但最好使用根据当前字体调整的测量值——1em
大约是字母上的水平宽度m
。您可以使用的其他有用的水平空间包括:
还有一个负薄空间,\!
在某些情况下很有用。
笔记:
如果您需要有关水平间距的更多信息,请参阅有哪些命令可以控制水平间距?。
如果您确实需要所使用的空间
$cdots$
,您可以使用来\settowidth
测量该尺寸:\newlength{\WidthOfCdots}\settowidth{\WidthOfCdots}{$\cdots$}
然后使用
\hspace*{\WidthOfCdots}
将产生所需的水平空间。
代码:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}
\newlength{\WidthOfCdots}\settowidth{\WidthOfCdots}{$\cdots$}
\begin{document}
\section{What you have:}
\begin{algorithm}
\caption{ TestAlgorithm \newline
\textbf{SomeInputs} input1, \newline $\cdots$ input2, input3, input4, \newline $\cdots$ input5, input6, input7 \newline
\textbf{AnOutput} output1 }
\label{algo:TestAlgorithm A}
\begin{algorithmic}[1]
\STATE $oh yeah!$
\end{algorithmic}
\end{algorithm}
\section{What you want:}
\begin{algorithm}
\caption{ TestAlgorithm \newline
\textbf{SomeInputs} input1, \newline \protect\phantom{$\cdots$} input2, input3, input4, \newline \protect\phantom{$\cdots$} input5, input6, input7 \newline
\textbf{AnOutput} output1 }
\label{algo:TestAlgorithm}
\begin{algorithmic}[1]
\STATE $oh yeah!$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{ TestAlgorithm \newline
\textbf{SomeInputs} input1, \newline \protect\phantom{$\cdots$} input2, input3, input4, \newline \hspace*{\WidthOfCdots} input5, input6, input7 \newline
\textbf{AnOutput} output1 }
\label{algo:TestAlgorithm B}
\begin{algorithmic}[1]
\STATE $oh yeah!$
\end{algorithmic}
\end{algorithm}
Comparison of horizontal spaces:\bigskip
\begin{tabular}{ll}
\verb|\,| & "\," \\
\verb|\thinspace| & "\thinspace" \\
\verb|\enspace| & "\enspace" \\
\verb|\quad| & "\quad" \\
\verb|\qquad| & "\qquad" \\
\end{tabular}
\end{document}
答案2
像 LaTeX 这样的排版系统肯定有在输出中产生空白的方法。
(人类)打印机使用的传统长度称为“四边形”和“双四边形”;该名称源自意大利语“quadrato”,即“正方形”。它是一块金属,表面为扁平方形,可以插入要设置的字符中,其边长等于字体大小。TeX 中四边形空间的类似物称为 ,\quad
双四边形称为\qquad
。
但是,\quad
会\qquad
产生一个在换行符处消失的空格,但是有办法产生一个在换行符处消失的空格没有消失。一般间距命令(在水平方向上)是,\hspace
并且\quad
相当于\hspace{1em}
;的 * 变体\hspace
是我们这里所需要的:
所以你的输入是
\caption{TestAlgorithm\newline
\textbf{SomeInputs} input1,\newline
\hspace*{1em}input2, input3, input4,\newline
\hspace*{1em}input5, input6, input7\newline
\textbf{AnOutput} output1}
或者,如果您更喜欢双四边形,则2em
用 代替。1em
参数\hspace
可以是任何合法的尺寸。单位取决于字体,如果没有其他原因(在某些情况下可能需要明确的长度,例如或) em
,最好坚持使用它。3cm
2in