원하는 출력을 위해 \hspace*{\fill}에 \null이 필요한 이유는 무엇입니까?

원하는 출력을 위해 \hspace*{\fill}에 \null이 필요한 이유는 무엇입니까?

줄넘기 없이 열거 목록 내에서 일부 수학을 중앙에 배치하려고 했습니다.

결국 찾았어요이 토론vs \hfill를 사용하면 RHS의 공간이 소모되는 것을 피할 수 있다고 \hspace*{\fill}제안하는 것 같습니다 . \hspace*{\hfill}그러나 구현해 보면 둘 사이의 렌더링에 아무런 차이가 없습니다.

NB: 를 포함하여 특정 문제를 해결했지만 \null어떤 오해로 인해 다른 출력이 예상되는지 알고 싶습니다.

\hspace*{\hfill}여전히 \null오른쪽 공간을 먹어 치워서는 안됩니까?

MWE:

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
    \item \hspace*{\fill} %
            % Some math content
            $y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$ 
            %
            \hspace*{\fill}
    %
    \item \hspace*{\fill} %
            % Some math content
            $y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
            %
            \hspace*{\fill}\null
\end{enumerate}
\end{document}

\null첫 번째 줄( 없음 )과 두 번째 줄( 있음 \null) 의 차이점을 확인하세요 .

여기에 이미지 설명을 입력하세요

답변1

라텍스를 사용 \centering하거나 사물을 중앙에 배치하는 것이 더 일반적이지만 수평 모드에서 사용하는 경우 이전 단락 끝의 수평 공간이 제거되기 때문에 center필요한 이유 \null입니다 .\item

이 두 줄 을 제거하면 %같은 방식으로 설정됩니다.

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
    \item \hspace*{\fill} %
            % Some math content
            $y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$ 
            %
            \hspace*{\fill}
    % > If you remove this % (or add a line above it) both will render the same.
    \item \hspace*{\fill} %
            % Some math content
            $y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
            %
            \hspace*{\fill}\null
\end{enumerate}
\end{document}

\hspace*{\fill} %또한 채우기 접착제와 한 단어 공간을 추가하면 사용법이 센터링을 깨뜨립니다. 아마도 의도했을 것입니다.\hspace*{\fill}%

답변2

가장 먼저:

  • \hspace*{\fill} %\hfill다음에 생성됩니다 .공간(퍼센트 문자 앞의 공백에 유의하십시오) 그러나 직접적으로 \hfill는 그렇지 않습니다.

  • \hspace*줄의 시작 부분에서는 보호를 수행하지만 끝 부분에서는 보호하지 않습니다.

  • TeX(LaTeX 아님!)는 다음을 수행할 때 마지막 접착제를 제거합니다 \par.

  • LaTeX의 \item매크로는 \unskip\unskip\par수평 모드에서 처리될 때 수행됩니다.

  • LaTeX의 \hspace*{\fill}매크로는 \vrule width0pt \hfill \hskip0pt수평 금속골에 배치됩니다.

다음 \hspace*{\fill} %\item주먹을 사용하여 백분율 문자 앞의 불필요한 공간을 제거한 다음 두 번째를 사용하여 \unskip제거 하고 마지막으로 제거합니다 . 이것이 뒤에 가 오면 your 가 사라지는 이유입니다 .\hskip0pt\unskip\par\hfill\hspace*{\fill} %\item

관련 정보