编辑 \hfill 的最大长度

编辑 \hfill 的最大长度

如同编辑 \hfill 的最小长度,但我想保持最大间距,以便元素不会太分散。我还需要另外两个\hfill来使线居中。

\documentclass{article}
\usepackage{float}

\newcommand{\smarthfill}{\hfill} % change this

\begin{document}

\begin{figure}[H]
\hfill1\smarthfill2\hspace*{\fill}
\end{figure}
should work as
\begin{figure}[H]
\hfill1\qquad2\hspace*{\fill}
\end{figure}

while
\begin{figure}[H]
\hfill\rule{0.49\textwidth}{10pt}\smarthfill\rule{0.49\textwidth}{10pt}\hspace*{\fill}
\end{figure}
should work as
\begin{figure}[H]
\hfill\rule{0.49\textwidth}{10pt}\hfill\rule{0.49\textwidth}{10pt}\hspace*{\fill}
\end{figure}

more tests:
\begin{figure}[H]
\hfill\rule{0.40\textwidth}{10pt}\smarthfill\rule{0.40\textwidth}{10pt}\hspace*{\fill}
\end{figure}
\begin{figure}[H]
\hfill\rule{0.40\textwidth}{10pt}\hfill\rule{0.40\textwidth}{10pt}\hspace*{\fill}
\end{figure}

\begin{figure}[H]
\hfill\rule{0.25\textwidth}{10pt}\smarthfill\rule{0.25\textwidth}{10pt}\smarthfill\rule{0.25\textwidth}{10pt}\hspace*{\fill}
\end{figure}
\begin{figure}[H]
\hfill\rule{0.25\textwidth}{10pt}\hfill\rule{0.25\textwidth}{10pt}\hfill\rule{0.25\textwidth}{10pt}\hspace*{\fill}
\end{figure}

\end{document}

答案1

据我所知你想要

\newcommand{\smarthfill}{\hspace{2em minus 2em}} % change this

因此,如果需要的话,2em 的空间将缩小到 0pt。

如果您希望空间与外部空间保持平衡,则需要使它们都具有相同的(有限)拉伸组件,因此例如将 hfill 替换为 hspace 0pt 加 .5\textwidth,您将看到每个图第 3 行上的“b”版本非常接近您要求的间距(第 4 行)。

在此处输入图片描述

\documentclass{article}
\usepackage{float}

\newcommand{\smarthfill}{\hfill} % change this
\newcommand{\smarthfilla}{\nolinebreak\hspace{2em minus 2em}} % change this
\newcommand{\smarthfillb}{\nolinebreak\hspace{.1em plus 1.9em}} % change this

\begin{document}

\begin{figure}[H]
X\dotfill X

\hfill1\smarthfill2\hspace*{\fill}

\hfill1\smarthfilla2\hspace*{\fill}

\hspace*{0pt plus.5\textwidth}1\smarthfillb2\hspace*{0pt plus.5\textwidth}\hspace*{-0pt plus -1fil}

\hfill1\qquad2\hspace*{\fill}
\end{figure}

while
\begin{figure}[H]
\hfill\rule{0.49\textwidth}{10pt}\smarthfill\rule{0.49\textwidth}{10pt}\hspace*{\fill}

\hfill\rule{0.49\textwidth}{10pt}\smarthfilla\rule{0.49\textwidth}{10pt}\hspace*{\fill}

\hspace*{0pt plus.5\textwidth}\rule{0.49\textwidth}{10pt}\smarthfillb\rule{0.49\textwidth}{10pt}\hspace*{0pt plus.5\textwidth}\hspace*{-0pt plus -1fil}

\hfill\rule{0.49\textwidth}{10pt}\hfill\rule{0.49\textwidth}{10pt}\hspace*{\fill}
\end{figure}

\end{document}

相关内容