No memoir manual do página 183, este exemplo é dado:

\begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} 

Tentei descobrir qual é a diferença entre \hspace*{\fill} e \hfill é !?

A \hfill definição e \hspace definição não me ajudaram muito.

Comentários

  • Você pode usar: a\hfill b\hfill \hspace{0.01mm}

Resposta

Usando seu snippet de código como exemplo, \centering tem impacto apenas no \caption. No entanto,

\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} 

destina-se a definir ILLUSTRATION 1 e ILLUSTRATION 2 mesmo distribuído em \textwidth:

insira a descrição da imagem aqui

\documentclass{article} \usepackage{showframe}% http://ctan.org/pkg/showframe \begin{document} \begin{figure} \centering \hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2} \hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} \end{document} 

No entanto, substituindo \hspace*{\fill} por \hfill, o espaço da margem direita é " gobbled ":

insira a descrição da imagem aqui

\documentclass{article} \usepackage{showframe}% http://ctan.org/pkg/showframe \begin{document} \begin{figure} \centering \hfill%\hspace*{\fill} {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill%\hspace*{\fill} \caption{Example float with two illustrations} \label{fig:mult1} \end{figure} \end{document} 

dando valor à definição do comando para \hspace*:

LaTeX remove o espaço horizontal que vem no final de uma linha. Se você não quiser que o LaTeX remova este espaço, inclua o argumento opcional *. Então, o espaço nunca será removido.

Uma alternativa para usar se \hfill for mais intuitivo do que \hspace*{\fill} é inserir um texto fictício (como \null ou \mbox{}) no (início e) final da linha. Dessa forma, o \hfill sempre tenha " algo para esticar infinitamente ":

\null\hfill% {ILLUSTRATION 1} \hfill {ILLUSTRATION 2}% \hfill\null% 

Nos exemplos acima, showframe apenas destacou o bloco de texto.

Comentários

  • \hspace{\fill} e \hfill são iguais? Por que não há \hfill*?
  • Por que você precisa de \null no início da linha? Eu posso ' t ver o diff erence com ou sem.
  • @adl: Você não ' não precisa disso no início da linha. Ele apenas fornece codificação simétrica.

Resposta

Há uma discussão e respostas muito boas em Qual é a diferença entre ' fil ' e ' preencher '? .

Conforme relacionado aos detalhes de sua pergunta \hfill é um Primitivo TeX que se expande para,

 \hfill = \hskip 0pt plus 1fill minus 0pt 

enquanto \hspace*{\fill}, é uma macro LaTeX, que deixa um espaço igual a a 1fill. A versão estrela do comando é usada se a cola for inserida no início de uma linha.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *