
Я хочу, чтобы в каждом подразделе были две строки (что-то вроде «метаданные страницы»), выровненные по правому краю. Эти строкиникогдабудет полной ширины (один содержит только дату).
Для этого я пытался определить команду, которая помещает их в среду RaggedLeft, чтобы (1) избежать всех этих предупреждений «Underfull hbox» и (2) не печатать так много.
Это просто не работает.
% !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) я вообще этого не понимаю, и мне не нравятся вещи, которых я не понимаю ;) .
Эксперименты с командами, отличными от ragged2e, дают те же результаты.
Я использую latexmk (с luatex 1.10.0 / TeX live 2019) на Mac.
решение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}