如果需要换行,请标记换行的位置

如果需要换行,请标记换行的位置

我想在特定位置对文本进行段落分隔,但前提是文本太长,无法容纳一行。在下面的 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

您可以测试内容宽度是否超​​出\linewidth在此处输入图片描述

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

相关内容