如同编辑 \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}