我想在特定位置对文本进行段落分隔,但前提是文本太长,无法容纳一行。在下面的 MWE 中,第一个文本适合行宽,但第二个文本不适合。当然,只要\par
文本太长,我就可以手动添加,但我希望 LaTeX 能够自动发现这一点 [也许在第二遍?] 并在符号前分行\Rbar
。
\documentclass[]{article}
\usepackage{xcolor}
\usepackage{gregoriotex}
\begin{document}%
\newcommand\versicle[1]{%
\textbf{\color{red}\Vbar. }{#1 }%
\textbf{\color{red}\Rbar. }{#2}}%
%
%This fits in one line
\versicle{Dóminus vobíscum.}{Et cum spíritu túo.}\par%
%
%This should line break at the \Rbar.
\versicle{Panem de cælo præstitísti eis, allelúia.}{Omne delectaméntum in se habéntem, allelúia.}%
\end{document}
答案1
\documentclass[]{article}
\usepackage{xcolor}
\makeatletter
\newsavebox\testbox
\def\versicle#1#2{%
\savebox{\testbox}{\versicle@{red}{V.}~#1 \versicle@{red}{R.}~#2}
\versicle@{red}{V.}~#1
\ifdim\wd\testbox>\dimexpr\linewidth-\parindent\relax
\par
\fi
\versicle@{red}{R.}~#2
}
\def\versicle@#1#2{\textbf{\textcolor{#1}{#2}}}
\makeatother
\begin{document}%
%This fits in one line
\versicle{Dóminus vobíscum.}{Et cum spíritu túo.}\par%
%
%This should line break at the \Rbar.
\versicle{Panem de cælo præstitísti eis, allelúia.}{Omne delectaméntum in se habéntem, allelúia.}%
\end{document}