\RaggedLeft en un \newcommand no funciona como se esperaba

\RaggedLeft en un \newcommand no funciona como se esperaba

Quiero tener dos líneas (una especie de "metadatos de página") en cada subsección alineadas a la derecha. Esas líneas sonnuncaserá de ancho completo (uno contiene solo una fecha).

Para eso estaba tratando de definir un comando que los coloque en un entorno RaggedLeft para (1) evitar todas esas advertencias de "Underfull hbox" y (2) no escribir tanto.

Simplemente no funciona.

% !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}

El resultado es que la segunda línea está orientada hacia la izquierda y todavía aparece una advertencia de "hbox insuficientemente lleno".

Dato curioso: si coloco esto en un \FlushRightentorno, funciona, pero esto (1) no es lo que quiero, (2) sigo recibiendo las advertencias y (3) no lo entiendo en absoluto, y no No me gustan las cosas que no entiendo ;) .

Los experimentos con comandos que no son de ragg2e arrojan los mismos resultados.

Estoy usando latexmk (con luatex 1.10.0/TeX live 2019) en Mac.

Respuesta1

Lo que sucede es que \end{RaggedLeft}simplemente finaliza la composición tipográfica alineada a la derecha, pero no emite ningún comando de finalización de párrafo, por lo que la segunda línea se compone con la configuración estándar.

En su caso \RaggedLeftno es la herramienta adecuada, porque con líneas cortas obtendría cuadros insuficientes. Utilice la \raggedleftdeclaración estándar.

Minimizé el ejemplo eliminando todos los bits no esenciales.

\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}

ingrese la descripción de la imagen aquí

información relacionada