长诗句右对齐换行

长诗句右对齐换行

我很乐意使用该verse环境来排版法语诗歌。但是,我对长换行符的行为(当诗句太长而无法在页面上显示时)感到不满。

verse行为是为了: 

Most of verses are short
here is another
foo bar bar foo long things will at one moment
      break on another line
another short

法语排版惯例要求是: 

Most of verses are short
here is another
foo bar bar foo long things will at one moment
                          [break on another line
another short

也就是说长行的剩余部分右对齐,以打开的括号开始,而正常行仍然左对齐。

关于如何改变这种行为有什么想法吗?

答案1

可以使用 TeX 的段落设置进行如下设置:

\documentclass{article}
\usepackage{lipsum}
\newcommand*{\justlastragged}{%
\leftskip=0pt plus 1fil
\rightskip=-\leftskip
\parfillskip=\leftskip
\parindent=0pt}
\begin{document}
\justlastragged
This is a short poem line to see\\
what is this?

\lipsum[3]
\end{document}

下图显示了结果。

在此处输入图片描述

要进入中断并自动插入“[”,请使用以下简短定义:

\def\c[{\\\relax[$\!$}

您可以按如下方式使用它:

\justlastragged
This is a short poem line to see\c[ 
what is this?

编辑:

另一种更接近OP想要的方法:

\documentclass{article}
\def\X{\rightskip0pt \leftskip=0pt \parfillskip=0pt plus 1.0fil}
\long\def\B#1\par{%
\par
\rightskip0pt plus 1pt
\leftskip=0pt plus 2fill
\parfillskip=0pt  [#1{\par}\X}
\parindent0pt

\begin{document}

\hsize3in
Another short line to test what is happening \B this is a  test

Some more test to just see what is happening here\B Testing another stanza

Testing etc 
\end{document}

最终,最好的方法可能是 Barbara 所评论的方法,即让空格字符处于活动状态,但这是圣诞节之后的工作!第二种方法效果很好,但必须小心使用,才能将其\hsize设置为正确的值,使诗歌看起来正确。

答案2

如果您希望线条的断线部分位于页面右侧,您也可以将长度更改\vindent为您喜欢的宽度,以使其看起来右对齐。例如

\documentclass{article}
\usepackage{verse}
\setlength{\vindent}{0.6\textwidth}   % indent percent of page width

\begin{document}
\begin{verse}
    Some really really reallyreallyreally really really really really long line
\end{verse}
\end{document}

答案3

该软件包gmverse可以完成这项工作。你甚至可以使用括号选项squarebr,所有内容都在此处进行了解释:如何使段落首行左对齐,其他行右对齐

相关内容