\newcommand의 \RaggedLeft가 예상대로 작동하지 않습니다.

\newcommand의 \RaggedLeft가 예상대로 작동하지 않습니다.

모든 하위 섹션에 두 줄(일종의 "페이지 메타데이터")을 오른쪽 정렬하고 싶습니다. 그 라인은절대전체 너비가 됩니다(하나에는 날짜만 포함됨).

이를 위해 나는 (1) 모든 "Underfull hbox" 경고를 피하고 (2) 그렇게 많이 입력하지 않기 위해 RaggedLeft 환경에 배치하는 명령을 정의하려고 했습니다.

그것은 단지 작동하지 않습니다.

% !TEX root = ./raggedleft.tex

\documentclass{article}

\usepackage[english,ngerman]{babel}
\usepackage[hidelinks]{hyperref}
\usepackage{lmodern,textcomp}
\usepackage{ifluatex}
\ifluatex
  \usepackage{luacode}
  \usepackage{fourier}
  \usepackage{fontspec}
  \setmainfont{Erewhon}
\else
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{fourier}
\fi
\usepackage[document]{ragged2e}

\setlength{\parskip}{1em}
\setlength{\parindent}{3em}
\renewcommand{\baselinestretch}{1.2}

%% new command: \postheader{datestring}{tagstring}
%% prints the post date and tags right-aligned
\newcommand\postheader[2]{%
  \begin{RaggedLeft}%
  #1\\#2%
  \end{RaggedLeft}%
}


\begin{document}

\postheader{Some weird words on the right}{and more words, hopefully right-bound}

Normal boring left-aligned text.

\end{document}

결과적으로 두 번째 줄은 왼쪽 경계이고 여전히 "hbox 가득 참 부족" 경고가 표시됩니다.

재미있는 사실: 이것을 \FlushRight작동하는 환경에 배치하면 작동하지만 이것은 (1) 내가 원하는 것이 아니며, (2) 여전히 경고가 표시되고, (3) 전혀 이해가 되지 않습니다. 내가 이해하지 못하는 것을 좋아하지 않습니다 ;) .

non-ragged2e 명령을 사용한 실험에서는 동일한 결과가 나타납니다.

저는 Mac에서 latexmk(luatex 1.10.0 / TeX live 2019 포함)를 사용하고 있습니다.

답변1

무슨 일이 일어나면 \end{RaggedLeft}단순히 오른쪽 플러시 조판이 종료되지만 단락 종료 명령이 실행되지 않으므로 두 번째 줄이 표준 설정으로 조판됩니다.

귀하의 경우에는 \RaggedLeft올바른 도구가 아닙니다. 짧은 줄을 사용하면 상자가 가득 차 있지 않기 때문입니다. 표준 \raggedleft선언을 사용하십시오.

불필요한 부분을 모두 제거하여 예제를 최소화했습니다.

\documentclass{article}

%% new command: \postheader{datestring}{tagstring}
%% prints the post date and tags right-aligned
\newcommand\postheader[2]{%
  \par\begingroup\raggedleft #1\\#2\\\endgroup
}


\begin{document}

\postheader{Some weird words on the right}{and more words, hopefully right-bound}

Normal boring left-aligned text.

\end{document}

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

관련 정보