背景
现在有三个场景:用latex,方便写报告,在内容比较长的时候排版效果很好;用markdown,方便写博客,特别是搭配typora,用起来很舒服;用word,这是我唯一一个被迫使用的工具,方便别人审阅,进行修改。
所以问题来了:在要给别人审阅的时候,怎么写的舒服,而且排版的效果好看?
调研
最简单的方法就是首先用markdown写个初稿,然后使用pandoc转成docx,
pandoc xxx.md --css xx.css -o mid.html
pandoc mid.html -o result.docx
当然,直接使用typora的导出也行。
为何不用latex?主要是配环境很麻烦,而且需要一些学习成本,比如得知道latex、pdflatex、xelatex等之前的区别,常用的命令,一般还得会一两个软件,像texstudio、lyx之类的,写起latex才方便。转格式也存在问题,比如我想把这个报告中的一部分给写成博客,直接转是存在问题的,一些格式不支持等等。
所以,当没有写博客的需求,而且对生成的结果的格式要求很高,一般是pdf,那么就用latex,如果不需要很复杂的格式,那么markdown是完全能满足需求的。word就不说了,如果不是要审阅批改,找不到使用的理由。
方便审阅
现在确实得用word了,那么latex和markdown哪个转成docx方便呢?我个人觉得差不多,因为直接使用pandoc转,都存在格式问题,一般给转成中间格式html,所以还是前面写的,格式要求很复杂的话,使用latex,比如图、表等等,其它的情况用markdown,方便,简单。
latex有专门的工具生成html,markdown的话主要是靠css样式,这里说下css样式要怎么搞。
首先推荐一个成品,知乎、github,里面的essay.css
可以对标题、目录、侧边栏加上编号,表格和图片加上编号,然后就可以加以修改了,想要什么格式,就是什么格式,比如这里我将二级标题、三级标题、正文分别改为小三、四号、小四,为什么这么改?因为当时毕业论文是这么要求的-_-,这里给下字号对照表:
字号 | 小三 | 四号 | 小四 | 五号 | 小五 |
---|---|---|---|---|---|
大小/pt | 15 | 14 | 12 | 10.5 | 9 |
然后那个编号有点问题,提issue了,这里写下我的:
/* 编辑器内标题 */
/** initialize css counter */
#write {
counter-reset: h2;
}
h1 {
counter-reset: h2;
}
h2 {
counter-increment: h2;
counter-reset: h3;
}
h3 {
counter-increment: h3;
counter-reset: h4;
}
h4 {
counter-increment: h4;
counter-reset: h5;
}
/** put counter result into headings */
#write h2:before {
content: counter(h2) ". "
}
#write h3:before {
content: counter(h2) "." counter(h3) ". "
}
#write h4:before {
content: counter(h2) "." counter(h3) "." counter(h4) ". "
}
可以在正文区基本属性里,加上一些实用定义,比如
text-align: justify; /* 两端对齐 */
text-indent: 2em; /* 首行缩进 */
line-height: 1.5em; /* 1.5倍行距 */
在定义首行缩进时,必须在h1,h2,h3,h4,h5,h6
、表格等里面定义text-indent: 0em;
,去掉section等的首行缩进,还没有找到只针对正文的方式。段落间隔通过margin
好像实现不了,暂时就这样。