Typora换页问题请教
Albertchamberlain opened this issue · comments
houboxue commented
请问如何保证导出PDF时分页不切分代码块,😄
Keldos commented
(本人认为代码块是可以被分割的,应当允许长代码从上一页流排到下一页,因此其他主题,包括本主题都没有对这种分页做出限定。)
但如果您一定要确保分页不切分代码块,在基本版面确定的情况下,那就是代码块从新的一页开始排印。那请在代码块的前面加上该行:
<p style="page-break-before:always"></p>
如,您的文件可能写作:
下面是我们的演示代码:<p style="page-break-before:always"></p>
```python
from functools import cmp_to_key
def cmpkey2(x,y):
if x[1]>y[1]: return 1
elif x[1]<y[1]: return -1
elif x[0]>y[0]: return -1
elif x[0]<y[0]: return 1
return 0
while True:
ts = input()
if ts == '!!!!!': break
text += ' '; text += ts
text = text.lower()
for ch in '!.,:*?': text=text.replace(ch, ' ')
(code...)
(code...)
```
这样,您的python演示代码就可以在输出PDF时强制从新的一页开始输出。这个方法同时试用先导出HTML再在浏览器中打印PDF的流程。但显然,如果您的代码长度超过了一页,那还是无法解决您代码不被切分的需求。
Keldos commented
关于换页,这个方法是通用的。不管对于<p>
标签还是<div>
标签,亦或是<img>
、<table>
等标签,都适用page-break-before
或page-break-after
样式强制命令用户代理插入分页。若想在元素前换页,可以写
<div style="page-break-before:always">元素(或留空直接换页)</div>
如果想在元素结束后换页,可以写
<div style="page-break-after:always">元素(或留空直接换页)</div>
诸如此类。
比如,我放在仓库中的essay-template.md
的论文封面,第一行html就写到了这个样式,因此才会在这个div
结构结束之后强制换页。
对于page-break-before
,相关的参数值放在下面,page-break-after
的参数值也与之类似,不再赘述。
值 | 描述 |
---|---|
auto | 默认值。如果必要则在元素前插入分页符。 |
always | 在元素前插入分页符。 |
avoid | 避免在元素前插入分页符。 |
left | 在元素之前足够的分页符,一直到一张空白的左页为止。 |
right | 在元素之前足够的分页符,一直到一张空白的右页为止。 |
inherit | 规定应该从父元素继承 page-break-before 属性的设置。 |