这是我在这里的第一篇帖子。我通常可以通过其他人提出的问题找到我想要的东西,但这次我被难住了。有人能帮忙吗?我对 Latex 很陌生。
我正在尝试通过 sty sheet 将文本插入生成的 pdf 文件的正文部分的开头。但是,如果一个段落跨越 2 页,我不知道如何将文本放在第二页的 pdf 正文的开头。我不想更改文件的标题,我想通过 sty sheet 自动更改正文部分的开头。
有没有办法从样式表中定位和插入文本?我不确定这是否可行。或者也许在插入段落之前将文本添加到 pdf 文件的下一页?
预先感谢您的任何帮助。
更新:我继承了一个非常复杂的乳胶项目,我不确定如何给你提供最小化的示例代码。
也许这个我想要的 pdf 外观示例会有所帮助?
我希望每个段落都以人名开头。如果段落延伸到下一页,我希望 pdf 文件包含人名,并在段落的其余部分之前继续。像这样:
JOE 段落....
莎莉 段落....
- - 分页符
莎莉 — 继续本段剩余部分....
我不想修改任何章节或节文档。我希望样式文件在显示分页符时自动添加“SALLY-CONTINUED”。这可以吗?
答案1
不,这很难做到。
首先 TeX 将段落分成几行,然后稍后,如果调用输出例程,这些行将被放到页面上。TeX 在构建段落时并不知道分页符的位置。但由于添加了文本,这会影响段落的拆分。
标签方法
包soul
允许\label
在文本的每个断点处添加 s。然后可以检查这些标签,如果到达新页面,则可以将续行文本插入段落内。但是这种方法有严重的缺点:
软件包的限制
soul
,请参阅文档。(对于简单文本来说不太严重。)添加的文本可能会增加段落中的行数,从而影响后续的分页符。因此可能需要大量运行 LaTeX。
添加的文本可能会改变换行符,并且第二次运行时添加的文本会出现在错误的页面上。这很难处理,如果没有人工干预,文档可能永远无法稳定。(
varioref
如果插入的参考文本改变了参考的位置,包也会有类似的问题。)
商标登记
如果您可以将连续文本放在其他固定位置(在标题行中,在正文上方,...),那么标记寄存器会有所帮助:
\documentclass[a5paper]{article}
\usepackage{lipsum}
\usepackage{etex}
\usepackage{fancyhdr}
\newmarks\MarksPerson
\newcommand*{\Person}[2]{%
\par
\MakeUppercase{#1\marks\MarksPerson{(#1 continued)}}:%
\space
\ignorespaces
#2\par
\marks\MarksPerson{}%
}
\renewcommand*{\headrulewidth}{0pt}
\renewcommand*{\footrulewidth}{0pt}
\fancyhead{}
\fancyhead[L]{%
\raisebox{-\headsep}[0pt][0pt]{\topmarks\MarksPerson}%
}
\pagestyle{fancy}
\begin{document}
\Person{Sarah}{\lipsum[1]}
\Person{Joe}{\lipsum[2]}
\Person{Sally}{\lipsum[3]}
\Person{Jeremy}{\lipsum[4]}
\Person{Susanna}{\lipsum[5]}
\Person{Jeremy}{\lipsum[6]}
\end{document}
此处的延续文本位于文本主体上方: