![第一行左对齐,第二行右对齐](https://linux22.com/image/374440/%E7%AC%AC%E4%B8%80%E8%A1%8C%E5%B7%A6%E5%AF%B9%E9%BD%90%EF%BC%8C%E7%AC%AC%E4%BA%8C%E8%A1%8C%E5%8F%B3%E5%AF%B9%E9%BD%90.png)
我正在排版手动创建的作者索引。我想将姓名放在左边距,将页码放在右边距。我设法将第二行右对齐,以防因为姓名太长而插入换行符。
问题是我想要\flushleft
第一行。但是使用 \flushleft
会破坏页码的对齐。
(一起跑xelatex
)
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\defaultfont}{Times New Roman}
\newfontfamily{\latinfont}{Times New Roman}
\usepackage[Latin]{ucharclasses}
\setDefaultTransitions{\defaultfont}{}
\setTransitionsForLatin{\latinfont}{}
\usepackage{multicol}
\begin{document}
\pagestyle{empty}
\begin{multicols*}{2}
%%% Right align second line
%%% https://tex.stackexchange.com/a/43239/2483
\leftskip=0pt plus 0.5fil%
\rightskip=0pt plus -0.5fil%
\parfillskip=0pt plus 0fil%
\noindent Lasserre, Jean\hfill{}Vol. 3, 3743\par
\noindent Logunov, Alexander (Александр Логунов)\hfill{}Vol.~2,~2361\par
\end{multicols*}
\end{document}
答案1
TeXbook 中“Bourbaki 技巧”的一个变体:
\documentclass{article}
\usepackage{fontspec}
\usepackage{ragged2e}
\usepackage{multicol}
\setmainfont{Times New Roman}
\newcommand{\entry}[2]{% #1 = author, #2 = ref
\par\noindent{\RaggedRight
#1%
\nobreak\hfill\penalty50\hskip1em\null\nobreak
\hfill\mbox{\normalfont(#2)}%
\parfillskip=-\rightskip\par}%
}
\begin{document}
\begin{multicols*}{2}
\entry{Lasserre, Jean}{Vol. 3, 3743}
\entry{Logunov, Alexander (Александр Логунов)}{Vol.~2,~2361}
\end{multicols*}
\end{document}
该条目的排版很乱,但会在最后一行或唯一一行中\parfillskip
和。\rightskip
名称和引用之间至少留出 1em。