如何避免在每一页的最后一行打印特定命令?

如何避免在每一页的最后一行打印特定命令?

我遇到了一个小问题,故事标题文本打印\story{#1}在页面的最后一行,那么我该如何告诉 latex,如果它在\story{}最后一行找到文本,那么它将打印到下一页。无需修改文档部分,只需修改序言部分中的某些内容即可。这是我的 MWE

 \documentclass[twoside,letterpaper,11pt,openany]{book}

 \usepackage[margin=1.5cm]{geometry}
 \usepackage[T1]{fontenc}
 \usepackage{titletoc} %%% Table of contents 
 \usepackage{ebgaramond}
 \usepackage{lipsum}
 \usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
 \usepackage{paracol}
 \usepackage{microtype}
 \usepackage{graphicx}
 \usepackage{fancyhdr}
   \pagestyle{fancy}
   \fancyhf{}
   \fancyhead[RO,LE]{\rightmark}
   \fancyhead[LE,RO]{\leftmark} %% display chapter in header
   \renewcommand{\headrulewidth}{.5pt}
   \fancyhead[C]{\thepage} %% To display numbering on every page alternately left and right


 \setlength{\headwidth}{\textwidth}
 \setlength{\headheight}{15pt}
 \setlength{\headsep}{0pt}
 \setlength{\columnseprule}{0pt}
 \usepackage[colorlinks, unicode]{hyperref}



 %%%% End Add
 \makeatletter
 \newcommand\versenumcolor{red}
 \newcommand\chapnumcolor{red}
 \renewcommand\paragraph{%
   \@startsection{paragraph}{4}{\z@}%
                 {.25ex \@plus.25ex \@minus.1ex}%
                 {-.5em}%
                 {\normalfont\normalsize\bfseries\color{\versenumcolor}}}%
 \newlength{\biblechapskip}
   \setlength{\biblechapskip}{1em plus .33em minus .2em}
 \newcounter{biblechapter}
 \newcounter{bibleverse}[biblechapter]
 \renewcommand\chaptername{Book}
 \let\ltx@chapter=\chapter
 \let\ltx@paragraph=\paragraph
 \newcommand{\book}[1]{%
   \gdef\currbook{#1}
   \ltx@chapter{#1}}
 \newcount\biblechap@svdopt
 \newenvironment{biblechapter}[1][\thebiblechapter]
   {\biblechap@svdopt=#1
   \ifnum\c@biblechapter=\biblechap@svdopt\else
     \advance\biblechap@svdopt by -1\fi
   \setcounter{biblechapter}{\the\biblechap@svdopt}
   \refstepcounter{biblechapter}
   \lettrine{\color{\chapnumcolor}\lower-6pt\hbox{\thebiblechapter}}{}\ignorespaces}
   {\vspace{\biblechapskip}}
 \renewcommand{\verse}[1][\thebibleverse]{%
   \refstepcounter{bibleverse}
   \markright{{\scshape\currbook} \thebiblechapter:\thebibleverse}
   \ifnum\c@bibleverse=1\else
     \ltx@paragraph*{#1}\fi}%
 \makeatother


 \newcounter{jChapter}
 \newcommand{\jChapter}[1]{
 \noindent\scalebox{2.5}{\color{red}\textbf{#1}\hspace{0.3mm}}
 \setcounter{jChapter}{#1}
 }  
 \newcommand{\jverse}[1]{\noindent\textcolor{cyan}{\scalebox{1.0}{\textbf{#1\hspace{1.0mm}}}}\markboth{\scshape Mathiu\ \thejChapter : #1}{} }
 \newcommand{\story}[1]{\vfill\centering\it\textbf{#1}}



 \title{Translation}
 \date{}
 \author{}
 \usepackage{lipsum}
 \usepackage{ragged2e}
 \newcommand{\BookLine}{ \centering\noindent\rule{19cm}{1pt}}
 \newcommand{\BookNote}[1]{{\begin{center} \textbf{KEPACHINI} \justify

 #1
 \end{center}
 \BookLine
 \vspace{2mm}
 }}

 \newcommand{\ParallelLText}[2]{\begin{paracol}{2}\sloppy \switchcolumn[0]\noindent  #1 \switchcolumn[1]\noindent #2 \end{paracol}}

 \usepackage[perpage]{footmisc} %%% To restart footnote numbering on every new pages




 \usepackage{multicol,etoolbox}


 \setcounter{tocdepth}{2} %set depth of printed table of contets.

 \makeatletter


 \patchcmd{\l@section}
   {\hfil}
   {\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep     mu$}\hfill}
   {}{}

 \renewcommand\tableofcontents{%
     \begin{multicols}{2}[\section*{\contentsname
         \@mkboth{%
            \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}]%
     \printlist{toc}{}{}
     \thispagestyle{empty}
     \end{multicols}%
     }

 \makeatother %print dots in sections in toc.


 \begin{document}
 \renewcommand{\thefootnote}{\emph{\alph{footnote}}}

 \frontmatter
 \maketitle
 {\setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Barim\hfill~\\[2.5ex] }
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents
 }
 \mainmatter

 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Barim}
 }
 \pagenumbering{arabic}  
   \setlength{\columnseprule}{.5pt}
 \setcounter{page}{1}



 \setlength{\columnseprule}{0pt}

 \clearpage
 \setcounter{page}{1}


 {\pagestyle{empty}
 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Kemi}
 }

 \frontmatter
 \setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Kemi\hfill~\\[2.0em]}
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents

 \mainmatter
 }
   \setlength{\columnseprule}{.5pt}

 \ParallelLText{\jverse{4}Alangli det adang kurusar kethe lapen aron thekser atum aphan pangrumpetsi arjulo, “Khristo pirthe kehacheji adim kodakma?” }{\jverse{4}and calling together all the chief priests and scribes of the people, he inquired of them where the Messiah was to be born. }
 \ParallelLText{\jverse{5}Latum alangliphan thaksi pulo, “Ha Judia adet, Bethlehem arongsopi along. Pima ha montri ketok tekang lapuson helo; }{\jverse{5}They told him, “In Bethlehem of Judea; for so it has been written by the prophet: }
 \ParallelLText{\jverse{6}‘Judia adet a-Bethlehem, nanglike Judia adet kedo arongsopi kethe hei hei angbong akebineilo, lapu kali; pima nangli pen keja abang vangji, alangli ne rat, Israel aphan pangriji.’ ” }{\jverse{6}‘And you, Bethlehem, in the land of Judah, are by no means least among the rulers of Judah; for from you shall come a ruler who is to shepherd my people Israel.’” }
 \ParallelLText{\jverse{7}     Ansi Herod kethek kere atum aphan hangjoisi halabangso achiklo-longso keklangcheng ahut alamjir arju pamelo.  }{\jverse{7}Then Herod secretly called for the wise men and learned from them the exact time when the star had appeared. }
 \ParallelLText{\jverse{8}Lapen latum aphan ha Bethlehem toisi pulo, “Damra labangso a-oso aphan ridam pamenon. Lapen nanglitum la thekdam long-lote neli jokta damsi kardomkhrup thekji aphan neli long chevoira nethan thunon.”  }{\jverse{8}Then he sent them to Bethlehem, saying, “Go and search diligently for the child; and when you have found him, bring me word so that I may also go and pay him homage.” }
 \ParallelLText{\jverse{9}Latum recho alam arjudetsi damlo, lapen latum la keklangcheng ahut kethek-long achiklolongso latum aphrang aphrang damthusi hala oso kedo adim angdenchit an kele pen sangkok ketik ke dambomlo.  }{\jverse{9}When they had heard the king, they set out; and there, ahead of them, went the star that they had seen at its rising, until it stopped over the place where the child was. }
 \ParallelLText{\jverse{10}Halatum chiklolongso thek-longsi aning arong parpik-lo.  }{\jverse{10}When they saw that the star had stopped, they were overwhelmed with joy. }
 \ParallelLText{\jverse{11}Latum hem lut damsi oso lapen apei Meri aphan thek-long-lo, lapen latum akengphu patongruisi alangliphan ardomlo. Ansi latum akhi atelup chepursi alangliphan ning keme pen ser, hijung aphik lapen kenempru ajangthu adan hei hei pilo.  }{\jverse{11}On entering the house, they saw the child with Mary his mother; and they knelt down and paid him homage. Then, opening their treasure chests, they offered him gifts of gold, frankincense, and myrrh. }
 \ParallelLText{\jverse{12}Lapen Herod along damthuri pu Arnam ahukum amang pen longthusi latum atovar kaprek pen amethang adet chevoijuilo. }{\jverse{12}And having been warned in a dream not to return to Herod, they left for their own country by another road. }
 \ParallelLText{\story{Ijip Adet Kekat}}{\story{The Escape to Egypt}}
 \ParallelLText{\jverse{13}Latum chevoidet pen mamat Hemphu apherangke Joseph aphan amang pen cheklangsi pulo, “Thurra oso lapen apei aphan cheponra ha Ijip adet katnon, lapen neli nangliphan pupetik ke hadak-le donon; pima Herod ke kepavirjisi oso aphan riji dokdok-lo.”  }{\jverse{13}Now after they had left, an angel of the Lord appeared to Joseph in a dream and said, “Get up, take the child and his mother, and flee to Egypt, and remain there until I tell you; for Herod is about to search for the child, to destroy him.” }
 \ParallelLText{\jverse{14}Alangli thursi ajo amat oso lapen apei aphan cheponsi Ijip adet kat-lo,  }{\jverse{14}Then Joseph got up, took the child and his mother by night, and went to Egypt, }
 \ParallelLText{\jverse{15}lapen Herod thithetik an latum hadaksi dobomlo. Lake Hemphu pen ajok ha montri kepu tekang, “Neli neli sopo aphan Ijip adet pen hang-lo,” pu alam kechekokji aphanlo. }{\jverse{15}and remained there until the death of Herod. This was to fulfill what had been spoken by the Lord through the prophet, “Out of Egypt I have called my son.” }
 \ParallelLText{\story{Bethlehem A-osomar Atum Aphan Kepathi}}{\story{The Massacre of the Infants}}
 \ParallelLText{\jverse{16}Ansi kethek kere atum alangliphan pachereitang-lo pu chinisi Herod jasemet aning thilo, lapen alangli Bethlehem lapen adung arei kedo ningkan hini arta lapen ningkan hini pen kekom arta pinso a-osomar atum aphan kepavirkoiji ahukum pilo lake alangli alangli long kevang-akethek kere atum pen chiklolongso keklang alamjir karjulong ahut ateng pensi klemlo.  }{\jverse{16}When Herod saw that he had been tricked by the wise men, he was infuriated, and he sent and killed all the children in and around Bethlehem who were two years old or under, according to the time that he had learned from the wise men. }
 \ParallelLText{\jverse{17}Ansi Jeremiah montri kepu alam chekok-lo, atheke alangli pulo: }{\jverse{17}Then was fulfilled what had been spoken through the prophet Jeremiah: }
 \ParallelLText{\jverse{18}“Ha Ramah angbong ne kechiru chernap ase arjulong-lo; Rachel amethang asomar atum pen apot chiru chernap-lo; alangli aning kepliji aning hanghelo, athema halatum thikoilo.” }{\jverse{18}“A voice was heard in Ramah, wailing and loud lamentation,Rachel weeping for her children; she refused to be consoled, because they are no more.” }
 \ParallelLText{\story{Ijip Adet Pen Nangkechevoi}}{\story{The Return from Egypt}}
 \ParallelLText{\jverse{19}Herod thilot aphi Ijip adet Hemphu apherangke Joseph aphan amang pen cheklangsi pulo.  }{\jverse{19}When Herod died, an angel of the Lord suddenly appeared in a dream to Joseph in Egypt and said, }
 \ParallelLText{\jverse{20}“Thurra oso lapen apei aphan cheponra Israel adet chevoinon, pima kepathijisi oso aphan keri atum thitang-lo.”  }{\jverse{20}“Get up, take the child and his mother, and go to the land of Israel, for those who were seeking the child’s life are dead.” }
 \ParallelLText{\jverse{21}Lapen alangli thursi oso lapen apei aphan cheponsi Israel adet chevoilo. }{\jverse{21}Then Joseph got up, took the child and his mother, and went to the land of Israel. }

 \end{document}

输出 :在此处输入图片描述

答案1

我修改了解决方案以使用\ensurevspace。我不得不对 进行一些重大更改\ParallelLText(例如删除那些\noindent给我带来很多麻烦的 )。

我认为设计理念是允许\jverse\story独立于 paracol 使用,因此添加了\storygap处理\ensurevspace

但是,\vfill仍然无法正常工作。修复它的最佳方法是在 paracol 内部\pcol@output,但这超出了我的能力范围。

\documentclass[twoside,letterpaper,11pt,openany]{book}

 \usepackage[margin=1.5cm,showframe]{geometry}
 \usepackage[T1]{fontenc}
 \usepackage{titletoc} %%% Table of contents 
 \usepackage{ebgaramond}
 \usepackage{lipsum}
 \usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
 \usepackage{paracol}
 \usepackage{microtype}
 \usepackage{graphicx}
 \usepackage{fancyhdr}
   \pagestyle{fancy}
   \fancyhf{}
   \fancyhead[RO,LE]{\rightmark}
   \fancyhead[LE,RO]{\leftmark} %% display chapter in header
   \renewcommand{\headrulewidth}{.5pt}
   \fancyhead[C]{\thepage} %% To display numbering on every page alternately left and right

 \setlength{\headwidth}{\textwidth}
 \setlength{\headheight}{15pt}
 \setlength{\headsep}{0pt}
 \setlength{\columnseprule}{0pt}
 \usepackage[colorlinks, unicode]{hyperref}

 %%%% End Add
 \makeatletter
 \newcommand\versenumcolor{red}
 \newcommand\chapnumcolor{red}
 \renewcommand\paragraph{%
   \@startsection{paragraph}{4}{\z@}%
                 {.25ex \@plus.25ex \@minus.1ex}%
                 {-.5em}%
                 {\normalfont\normalsize\bfseries\color{\versenumcolor}}}%
 \newlength{\biblechapskip}
   \setlength{\biblechapskip}{1em plus .33em minus .2em}
 \newcounter{biblechapter}
 \newcounter{bibleverse}[biblechapter]
 \renewcommand\chaptername{Book}
 \let\ltx@chapter=\chapter
 \let\ltx@paragraph=\paragraph
 \newcommand{\book}[1]{%
   \gdef\currbook{#1}
   \ltx@chapter{#1}}
 \newcount\biblechap@svdopt
 \newenvironment{biblechapter}[1][\thebiblechapter]
   {\biblechap@svdopt=#1
   \ifnum\c@biblechapter=\biblechap@svdopt\else
     \advance\biblechap@svdopt by -1\fi
   \setcounter{biblechapter}{\the\biblechap@svdopt}
   \refstepcounter{biblechapter}
   \lettrine{\color{\chapnumcolor}\lower-6pt\hbox{\thebiblechapter}}{}\ignorespaces}
   {\vspace{\biblechapskip}}
 \renewcommand{\verse}[1][\thebibleverse]{%
   \refstepcounter{bibleverse}
   \markright{{\scshape\currbook} \thebiblechapter:\thebibleverse}
   \ifnum\c@bibleverse=1\else
     \ltx@paragraph*{#1}\fi}%
 \makeatother


 \newcounter{jChapter}
 \newcommand{\jChapter}[1]{
 \noindent\scalebox{2.5}{\color{red}\textbf{#1}\hspace{0.3mm}}
 \setcounter{jChapter}{#1}
 }  
 \newcommand{\jverse}[1]{\noindent\textcolor{cyan}{\scalebox{1.0}{\textbf{#1\hspace{1.0mm}}}}\markboth{\scshape Mathiu\ \thejChapter : #1}{} }
 \newcommand{\story}[1]{\vfill\noindent\parbox[t]{\columnwidth}{\centering\it\textbf{#1}}}% \centering contained within \parbox

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\storygap}{\vfill\ensurevspace{3\baselineskip}\switchcolumn*}% paracol specific code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 \title{Translation}
 \date{}
 \author{}
 \usepackage{lipsum}
 \usepackage{ragged2e}
 \newcommand{\BookLine}{ \centering\noindent\rule{19cm}{1pt}}
 \newcommand{\BookNote}[1]{{\begin{center} \textbf{KEPACHINI} \justify

 #1
 \end{center}
 \BookLine
 \vspace{2mm}
 }}

 \newcommand{\ParallelLText}[2]{\switchcolumn[0] #1\par \switchcolumn[1] #2\par \switchcolumn*}

 \usepackage[perpage]{footmisc} %%% To restart footnote numbering on every new pages

 \usepackage{multicol,etoolbox}

 \setcounter{tocdepth}{2} %set depth of printed table of contets.

 \makeatletter


 \patchcmd{\l@section}
   {\hfil}
   {\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep     mu$}\hfill}
   {}{}

 \renewcommand\tableofcontents{%
     \begin{multicols}{2}[\section*{\contentsname
         \@mkboth{%
            \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}]%
     \printlist{toc}{}{}
     \thispagestyle{empty}
     \end{multicols}%
     }

 \makeatother %print dots in sections in toc.


 \begin{document}
 \renewcommand{\thefootnote}{\emph{\alph{footnote}}}

 \frontmatter
 \maketitle
 {\setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Barim\hfill~\\[2.5ex] }
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents
 }
 \mainmatter

 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Barim}
 }
 \pagenumbering{arabic}  
   \setlength{\columnseprule}{.5pt}
 \setcounter{page}{1}



 \setlength{\columnseprule}{0pt}

 \clearpage
 \setcounter{page}{1}


 {\pagestyle{empty}
 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Kemi}
 }

 \frontmatter
 \setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Kemi\hfill~\\[2.0em]}
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents

 \mainmatter
 }
   \setlength{\columnseprule}{.5pt}
 \begin{paracol}{2}\sloppy
 \ParallelLText{\jverse{4}Alangli det adang kurusar kethe lapen aron thekser atum aphan pangrumpetsi arjulo, “Khristo pirthe kehacheji adim kodakma?” }{\jverse{4}and calling together all the chief priests and scribes of the people, he inquired of them where the Messiah was to be born. }
 \ParallelLText{\jverse{5}Latum alangliphan thaksi pulo, “Ha Judia adet, Bethlehem arongsopi along. Pima ha montri ketok tekang lapuson helo; }{\jverse{5}They told him, “In Bethlehem of Judea; for so it has been written by the prophet: }
 \ParallelLText{\jverse{6}‘Judia adet a-Bethlehem, nanglike Judia adet kedo arongsopi kethe hei hei angbong akebineilo, lapu kali; pima nangli pen keja abang vangji, alangli ne rat, Israel aphan pangriji.’ ” }{\jverse{6}‘And you, Bethlehem, in the land of Judah, are by no means least among the rulers of Judah; for from you shall come a ruler who is to shepherd my people Israel.’” }
 \ParallelLText{\jverse{7}     Ansi Herod kethek kere atum aphan hangjoisi halabangso achiklo-longso keklangcheng ahut alamjir arju pamelo.  }{\jverse{7}Then Herod secretly called for the wise men and learned from them the exact time when the star had appeared. }
 \ParallelLText{\jverse{8}Lapen latum aphan ha Bethlehem toisi pulo, “Damra labangso a-oso aphan ridam pamenon. Lapen nanglitum la thekdam long-lote neli jokta damsi kardomkhrup thekji aphan neli long chevoira nethan thunon.”  }{\jverse{8}Then he sent them to Bethlehem, saying, “Go and search diligently for the child; and when you have found him, bring me word so that I may also go and pay him homage.” }
 \ParallelLText{\jverse{9}Latum recho alam arjudetsi damlo, lapen latum la keklangcheng ahut kethek-long achiklolongso latum aphrang aphrang damthusi hala oso kedo adim angdenchit an kele pen sangkok ketik ke dambomlo.  }{\jverse{9}When they had heard the king, they set out; and there, ahead of them, went the star that they had seen at its rising, until it stopped over the place where the child was. }
 \ParallelLText{\jverse{10}Halatum chiklolongso thek-longsi aning arong parpik-lo.  }{\jverse{10}When they saw that the star had stopped, they were overwhelmed with joy. }
 \ParallelLText{\jverse{11}Latum hem lut damsi oso lapen apei Meri aphan thek-long-lo, lapen latum akengphu patongruisi alangliphan ardomlo. Ansi latum akhi atelup chepursi alangliphan ning keme pen ser, hijung aphik lapen kenempru ajangthu adan hei hei pilo.  }{\jverse{11}On entering the house, they saw the child with Mary his mother; and they knelt down and paid him homage. Then, opening their treasure chests, they offered him gifts of gold, frankincense, and myrrh. }
 \ParallelLText{\jverse{12}Lapen Herod along damthuri pu Arnam ahukum amang pen longthusi latum atovar kaprek pen amethang adet chevoijuilo. }{\jverse{12}And having been warned in a dream not to return to Herod, they left for their own country by another road. }
 \storygap
 \ParallelLText{\story{Ijip Adet Kekat}}{\story{The Escape to Egypt}}
 \ParallelLText{\jverse{13}Latum chevoidet pen mamat Hemphu apherangke Joseph aphan amang pen cheklangsi pulo, “Thurra oso lapen apei aphan cheponra ha Ijip adet katnon, lapen neli nangliphan pupetik ke hadak-le donon; pima Herod ke kepavirjisi oso aphan riji dokdok-lo.”  }{\jverse{13}Now after they had left, an angel of the Lord appeared to Joseph in a dream and said, “Get up, take the child and his mother, and flee to Egypt, and remain there until I tell you; for Herod is about to search for the child, to destroy him.” }
 \ParallelLText{\jverse{14}Alangli thursi ajo amat oso lapen apei aphan cheponsi Ijip adet kat-lo,  }{\jverse{14}Then Joseph got up, took the child and his mother by night, and went to Egypt, }
 \ParallelLText{\jverse{15}lapen Herod thithetik an latum hadaksi dobomlo. Lake Hemphu pen ajok ha montri kepu tekang, “Neli neli sopo aphan Ijip adet pen hang-lo,” pu alam kechekokji aphanlo. }{\jverse{15}and remained there until the death of Herod. This was to fulfill what had been spoken by the Lord through the prophet, “Out of Egypt I have called my son.” }
 \storygap
 \ParallelLText{\story{Bethlehem A-osomar Atum Aphan Kepathi}}{\story{The Massacre of the Infants}}
 \ParallelLText{\jverse{16}Ansi kethek kere atum alangliphan pachereitang-lo pu chinisi Herod jasemet aning thilo, lapen alangli Bethlehem lapen adung arei kedo ningkan hini arta lapen ningkan hini pen kekom arta pinso a-osomar atum aphan kepavirkoiji ahukum pilo lake alangli alangli long kevang-akethek kere atum pen chiklolongso keklang alamjir karjulong ahut ateng pensi klemlo.  }{\jverse{16}When Herod saw that he had been tricked by the wise men, he was infuriated, and he sent and killed all the children in and around Bethlehem who were two years old or under, according to the time that he had learned from the wise men. }
 \ParallelLText{\jverse{17}Ansi Jeremiah montri kepu alam chekok-lo, atheke alangli pulo: }{\jverse{17}Then was fulfilled what had been spoken through the prophet Jeremiah: }
 \ParallelLText{\jverse{18}“Ha Ramah angbong ne kechiru chernap ase arjulong-lo; Rachel amethang asomar atum pen apot chiru chernap-lo; alangli aning kepliji aning hanghelo, athema halatum thikoilo.” }{\jverse{18}“A voice was heard in Ramah, wailing and loud lamentation,Rachel weeping for her children; she refused to be consoled, because they are no more.” }
 \storygap
 \ParallelLText{\story{Ijip Adet Pen Nangkechevoi}}{\story{The Return from Egypt}}
 \ParallelLText{\jverse{19}Herod thilot aphi Ijip adet Hemphu apherangke Joseph aphan amang pen cheklangsi pulo.  }{\jverse{19}When Herod died, an angel of the Lord suddenly appeared in a dream to Joseph in Egypt and said, }
 \ParallelLText{\jverse{20}“Thurra oso lapen apei aphan cheponra Israel adet chevoinon, pima kepathijisi oso aphan keri atum thitang-lo.”  }{\jverse{20}“Get up, take the child and his mother, and go to the land of Israel, for those who were seeking the child’s life are dead.” }
 \ParallelLText{\jverse{21}Lapen alangli thursi oso lapen apei aphan cheponsi Israel adet chevoilo. }{\jverse{21}Then Joseph got up, took the child and his mother, and went to the land of Israel. }
\end{paracol}

 \end{document}

此解决方案使用 tikzpagenodes 来计算页面上剩余的空间,并使用此信息来实现自定义\vfill。但是,paracol 要求在页面底部留出最小空间才能开始一列,并且\needspace必须在页面底部运行,而不是下一页的顶部,因此每页底部的小间隙是不可避免的。

请注意,这需要 3 次运行(4 次以确保稳定性)才能实现。两次运行 tikz 来计算空间,另一次运行将信息发送回\needspace此页面上的先前调用。

\documentclass[twoside,letterpaper,11pt,openany]{book}

 \usepackage[margin=1.5cm,showframe]{geometry}
 \usepackage[T1]{fontenc}
 \usepackage{titletoc} %%% Table of contents 
 \usepackage{ebgaramond}
 \usepackage{lipsum}
 \usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
 \usepackage{paracol}
 \usepackage{microtype}
 \usepackage{graphicx}
 \usepackage{fancyhdr}
   \pagestyle{fancy}
   \fancyhf{}
   \fancyhead[RO,LE]{\rightmark}
   \fancyhead[LE,RO]{\leftmark} %% display chapter in header
   \renewcommand{\headrulewidth}{.5pt}
   \fancyhead[C]{\thepage} %% To display numbering on every page alternately left and right

 \setlength{\headwidth}{\textwidth}
 \setlength{\headheight}{15pt}
 \setlength{\headsep}{0pt}
 \setlength{\columnseprule}{0pt}
 \usepackage[colorlinks, unicode]{hyperref}

 %%%% End Add
 \makeatletter
 \newcommand\versenumcolor{red}
 \newcommand\chapnumcolor{red}
 \renewcommand\paragraph{%
   \@startsection{paragraph}{4}{\z@}%
                 {.25ex \@plus.25ex \@minus.1ex}%
                 {-.5em}%
                 {\normalfont\normalsize\bfseries\color{\versenumcolor}}}%
 \newlength{\biblechapskip}
   \setlength{\biblechapskip}{1em plus .33em minus .2em}
 \newcounter{biblechapter}
 \newcounter{bibleverse}[biblechapter]
 \renewcommand\chaptername{Book}
 \let\ltx@chapter=\chapter
 \let\ltx@paragraph=\paragraph
 \newcommand{\book}[1]{%
   \gdef\currbook{#1}
   \ltx@chapter{#1}}
 \newcount\biblechap@svdopt
 \newenvironment{biblechapter}[1][\thebiblechapter]
   {\biblechap@svdopt=#1
   \ifnum\c@biblechapter=\biblechap@svdopt\else
     \advance\biblechap@svdopt by -1\fi
   \setcounter{biblechapter}{\the\biblechap@svdopt}
   \refstepcounter{biblechapter}
   \lettrine{\color{\chapnumcolor}\lower-6pt\hbox{\thebiblechapter}}{}\ignorespaces}
   {\vspace{\biblechapskip}}
 \renewcommand{\verse}[1][\thebibleverse]{%
   \refstepcounter{bibleverse}
   \markright{{\scshape\currbook} \thebiblechapter:\thebibleverse}
   \ifnum\c@bibleverse=1\else
     \ltx@paragraph*{#1}\fi}%
 \makeatother


 \newcounter{jChapter}
 \newcommand{\jChapter}[1]{
 \noindent\scalebox{2.5}{\color{red}\textbf{#1}\hspace{0.3mm}}
 \setcounter{jChapter}{#1}
 }  
 \newcommand{\jverse}[1]{\noindent\textcolor{cyan}{\scalebox{1.0}{\textbf{#1\hspace{1.0mm}}}}\markboth{\scshape Mathiu\ \thejChapter : #1}{} }
 \newcommand{\story}[1]{\needspace{3\baselineskip}\noindent\parbox[b]{\columnwidth}{\centering\it\textbf{#1}}}% \centering contained within \parbox

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikzpagenodes}
\makeatletter
\newlength{\need@space}% reserve global register
\newcounter{need@space}[page]
\newcommand{\needspace}[1]{% #1 = space ndeded
  \vskip-\topskip\tikz[remember picture]{%
    \pgfextracty{\need@space}{\pgfpointanchor{current page text area}{south}}%
    \global\need@space=-\need@space}%
  \hrule height0pt
  \ifdim\need@space>#1\relax% add space here
    \stepcounter{need@space}%
    \@ifundefined{need@space\thepage}{\vfill}{\vspace{\csname need@space\thepage\endcsname}}
  \else% break page here
    \ifnum\c@need@space>0
      \advance\need@space by -\topskip% leave room for \needspace
      \divide\need@space by \c@need@space
      \@ifundefined{need@space\thepage}{}{\dimen0=\csname need@space\thepage\endcsname
        \ifdim\need@space=\dimen0\else \advance\need@space by \dimen0\fi}%
      \protected@write{\@auxout}{}{\string\newneedspace{\the\need@space}{\thepage}}%
    \fi
    \pagebreak
  \fi}
\newcommand{\newneedspace}[2]% #1=fill space, #2=page number
  {\expandafter\gdef\csname need@space#2\endcsname{#1}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 \title{Translation}
 \date{}
 \author{}
 \usepackage{lipsum}
 \usepackage{ragged2e}
 \newcommand{\BookLine}{ \centering\noindent\rule{19cm}{1pt}}
 \newcommand{\BookNote}[1]{{\begin{center} \textbf{KEPACHINI} \justify

 #1
 \end{center}
 \BookLine
 \vspace{2mm}
 }}

 \newcommand{\ParallelLText}[2]{\switchcolumn[0] #1\par \switchcolumn[1] #2\par \switchcolumn*}

 \usepackage[perpage]{footmisc} %%% To restart footnote numbering on every new pages

 \usepackage{multicol,etoolbox}

 \setcounter{tocdepth}{2} %set depth of printed table of contets.

 \makeatletter
 \patchcmd{\l@section}
   {\hfil}
   {\leaders\hbox{\normalfont$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep     mu$}\hfill}
   {}{}

 \renewcommand\tableofcontents{%
     \begin{multicols}{2}[\section*{\contentsname
         \@mkboth{%
            \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}]%
     \printlist{toc}{}{}
     \thispagestyle{empty}
     \end{multicols}%
     }
 \makeatother %print dots in sections in toc.


 \begin{document}
 \renewcommand{\thefootnote}{\emph{\alph{footnote}}}

 \frontmatter
 \maketitle
 {\setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Barim\hfill~\\[2.5ex] }
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents
 }
 \mainmatter

 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Barim}
 }
 \pagenumbering{arabic}  
   \setlength{\columnseprule}{.5pt}
 \setcounter{page}{1}



 \setlength{\columnseprule}{0pt}

 \clearpage
 \setcounter{page}{1}


 {\pagestyle{empty}
 {\pagenumbering{gobble}
 \part*{\scshape Kechejok Kemi}
 }

 \frontmatter
 \setlength{\columnsep}{130pt}
 \renewcommand{\contentsname}{\hfill\Huge Kechejok Kemi\hfill~\\[2.0em]}
 \startlist{toc}
  \hypersetup{linkcolor=blue}
 \tableofcontents

 \mainmatter
 }
   \setlength{\columnseprule}{.5pt}
 \begin{paracol}{2}\sloppy
 \ParallelLText{\jverse{4}Alangli det adang kurusar kethe lapen aron thekser atum aphan pangrumpetsi arjulo, “Khristo pirthe kehacheji adim kodakma?” }{\jverse{4}and calling together all the chief priests and scribes of the people, he inquired of them where the Messiah was to be born. }
 \ParallelLText{\jverse{5}Latum alangliphan thaksi pulo, “Ha Judia adet, Bethlehem arongsopi along. Pima ha montri ketok tekang lapuson helo; }{\jverse{5}They told him, “In Bethlehem of Judea; for so it has been written by the prophet: }
 \ParallelLText{\jverse{6}‘Judia adet a-Bethlehem, nanglike Judia adet kedo arongsopi kethe hei hei angbong akebineilo, lapu kali; pima nangli pen keja abang vangji, alangli ne rat, Israel aphan pangriji.’ ” }{\jverse{6}‘And you, Bethlehem, in the land of Judah, are by no means least among the rulers of Judah; for from you shall come a ruler who is to shepherd my people Israel.’” }
 \ParallelLText{\jverse{7}     Ansi Herod kethek kere atum aphan hangjoisi halabangso achiklo-longso keklangcheng ahut alamjir arju pamelo.  }{\jverse{7}Then Herod secretly called for the wise men and learned from them the exact time when the star had appeared. }
 \ParallelLText{\jverse{8}Lapen latum aphan ha Bethlehem toisi pulo, “Damra labangso a-oso aphan ridam pamenon. Lapen nanglitum la thekdam long-lote neli jokta damsi kardomkhrup thekji aphan neli long chevoira nethan thunon.”  }{\jverse{8}Then he sent them to Bethlehem, saying, “Go and search diligently for the child; and when you have found him, bring me word so that I may also go and pay him homage.” }
 \ParallelLText{\jverse{9}Latum recho alam arjudetsi damlo, lapen latum la keklangcheng ahut kethek-long achiklolongso latum aphrang aphrang damthusi hala oso kedo adim angdenchit an kele pen sangkok ketik ke dambomlo.  }{\jverse{9}When they had heard the king, they set out; and there, ahead of them, went the star that they had seen at its rising, until it stopped over the place where the child was. }
 \ParallelLText{\jverse{10}Halatum chiklolongso thek-longsi aning arong parpik-lo.  }{\jverse{10}When they saw that the star had stopped, they were overwhelmed with joy. }
 \ParallelLText{\jverse{11}Latum hem lut damsi oso lapen apei Meri aphan thek-long-lo, lapen latum akengphu patongruisi alangliphan ardomlo. Ansi latum akhi atelup chepursi alangliphan ning keme pen ser, hijung aphik lapen kenempru ajangthu adan hei hei pilo.  }{\jverse{11}On entering the house, they saw the child with Mary his mother; and they knelt down and paid him homage. Then, opening their treasure chests, they offered him gifts of gold, frankincense, and myrrh. }
 \ParallelLText{\jverse{12}Lapen Herod along damthuri pu Arnam ahukum amang pen longthusi latum atovar kaprek pen amethang adet chevoijuilo. }{\jverse{12}And having been warned in a dream not to return to Herod, they left for their own country by another road. }
 \ParallelLText{\story{Ijip Adet Kekat}}{\story{The Escape to Egypt}}
 \ParallelLText{\jverse{13}Latum chevoidet pen mamat Hemphu apherangke Joseph aphan amang pen cheklangsi pulo, “Thurra oso lapen apei aphan cheponra ha Ijip adet katnon, lapen neli nangliphan pupetik ke hadak-le donon; pima Herod ke kepavirjisi oso aphan riji dokdok-lo.”  }{\jverse{13}Now after they had left, an angel of the Lord appeared to Joseph in a dream and said, “Get up, take the child and his mother, and flee to Egypt, and remain there until I tell you; for Herod is about to search for the child, to destroy him.” }
 \ParallelLText{\jverse{14}Alangli thursi ajo amat oso lapen apei aphan cheponsi Ijip adet kat-lo,  }{\jverse{14}Then Joseph got up, took the child and his mother by night, and went to Egypt, }
 \ParallelLText{\jverse{15}lapen Herod thithetik an latum hadaksi dobomlo. Lake Hemphu pen ajok ha montri kepu tekang, “Neli neli sopo aphan Ijip adet pen hang-lo,” pu alam kechekokji aphanlo. }{\jverse{15}and remained there until the death of Herod. This was to fulfill what had been spoken by the Lord through the prophet, “Out of Egypt I have called my son.” }
 \ParallelLText{\story{Bethlehem A-osomar Atum Aphan Kepathi}}{\story{The Massacre of the Infants}}
 \ParallelLText{\jverse{16}Ansi kethek kere atum alangliphan pachereitang-lo pu chinisi Herod jasemet aning thilo, lapen alangli Bethlehem lapen adung arei kedo ningkan hini arta lapen ningkan hini pen kekom arta pinso a-osomar atum aphan kepavirkoiji ahukum pilo lake alangli alangli long kevang-akethek kere atum pen chiklolongso keklang alamjir karjulong ahut ateng pensi klemlo.  }{\jverse{16}When Herod saw that he had been tricked by the wise men, he was infuriated, and he sent and killed all the children in and around Bethlehem who were two years old or under, according to the time that he had learned from the wise men. }
 \ParallelLText{\jverse{17}Ansi Jeremiah montri kepu alam chekok-lo, atheke alangli pulo: }{\jverse{17}Then was fulfilled what had been spoken through the prophet Jeremiah: }
 \ParallelLText{\jverse{18}“Ha Ramah angbong ne kechiru chernap ase arjulong-lo; Rachel amethang asomar atum pen apot chiru chernap-lo; alangli aning kepliji aning hanghelo, athema halatum thikoilo.” }{\jverse{18}“A voice was heard in Ramah, wailing and loud lamentation,Rachel weeping for her children; she refused to be consoled, because they are no more.” }
 \ParallelLText{\story{Ijip Adet Pen Nangkechevoi}}{\story{The Return from Egypt}}
 \ParallelLText{\jverse{19}Herod thilot aphi Ijip adet Hemphu apherangke Joseph aphan amang pen cheklangsi pulo.  }{\jverse{19}When Herod died, an angel of the Lord suddenly appeared in a dream to Joseph in Egypt and said, }
 \ParallelLText{\jverse{20}“Thurra oso lapen apei aphan cheponra Israel adet chevoinon, pima kepathijisi oso aphan keri atum thitang-lo.”  }{\jverse{20}“Get up, take the child and his mother, and go to the land of Israel, for those who were seeking the child’s life are dead.” }
 \ParallelLText{\jverse{21}Lapen alangli thursi oso lapen apei aphan cheponsi Israel adet chevoilo. }{\jverse{21}Then Joseph got up, took the child and his mother, and went to the land of Israel. }
\end{paracol}

 \end{document}

相关内容