Pandoc 的 ODT 模板中的彩色水平线
Posted
技术标签:
【中文标题】Pandoc 的 ODT 模板中的彩色水平线【英文标题】:Colored horizontal lines in ODT template for Pandoc 【发布时间】:2014-03-31 17:11:20 【问题描述】:我正在尝试在使用pandoc
从md
(Markdown 文本)文件转换获得的 ODT 文件(LibreOffice/OpenOffice 的 OpenDocumentText)的开头绘制一条彩色水平线。
首先我得到默认模板:
pandoc -D odt > template_odt.xml
我可以通过输入<text:p text:style-name="Horizontal_20_Line" />
来绘制一条黑色水平线,例如在template_odt.xml
中的这个位置:
...
$endif$
<text:p text:style-name="Horizontal_20_Line" />
$for(include-before)$
...
但是如何为这条线赋予颜色呢? Horizontal_20_line
的样式在styles.xml
文件中定义:
<style:style style:name="Horizontal_20_Line"
style:display-name="Horizontal Line" style:family="paragraph"
style:parent-style-name="Standard"
style:next-style-name="Text_20_body" style:class="html">
<style:paragraph-properties fo:margin-top="0in"
fo:margin-bottom="0.1965in" style:contextual-spacing="false"
style:border-line-width-bottom="0.0008in 0.0138in 0.0008in"
fo:padding="0in" fo:border-left="none" fo:border-right="none"
fo:border-top="none" fo:border-bottom="1.11pt double #808080"
text:number-lines="false" text:line-number="0"
style:join-border="false" />
<style:text-properties fo:font-size="6pt"
style:font-size-asian="6pt" style:font-size-complex="6pt" />
</style:style>
所以:
我可以在template_odt.xml
中添加一个属性直接,比如:
<text:p text:style-name="Horizontal_20_Line" line-color="red"?????/>
或者我应该修改Horizontal_20_line
的样式,如何修改?我不知道默认的styles.xml
文件在哪里,也不知道如何在template_odt.xml
中定义样式(我所有的天真尝试都失败了)。
【问题讨论】:
【参考方案1】:我找到了如何修改styles.xml
文件。首先在 pandoc 文件夹或github 上获取reference.odt
文件。然后,解压缩此文件。横线颜色默认为#808080
:
<style:style style:name="Horizontal_20_Line"
style:display-name="Horizontal Line" style:family="paragraph"
style:parent-style-name="Standard"
style:next-style-name="Text_20_body" style:class="html">
<style:paragraph-properties fo:margin-top="0in"
fo:margin-bottom="0.1965in" style:contextual-spacing="false"
style:border-line-width-bottom="0.0008in 0.0138in 0.0008in"
fo:padding="0in" fo:border-left="none" fo:border-right="none"
fo:border-top="none" fo:border-bottom="1.11pt double #808080"
text:number-lines="false" text:line-number="0"
style:join-border="false" />
<style:text-properties fo:font-size="6pt"
style:font-size-asian="6pt" style:font-size-complex="6pt" />
</style:style>
修改颜色并转到How does Open Office compress its files? 以拉回myreference.odt
。然后运行pandoc如下(假设template_odt.xml
和myreference.odt
都在当前目录下):
pandoc -f markdown -t odt --template=template_odt.xml --reference-odt=myreference.odt myfile.md -o myfile.odt
现在我有一个新问题:LibreOffice 必须修复输出odt
文件,但这是另一个问题...
【讨论】:
以上是关于Pandoc 的 ODT 模板中的彩色水平线的主要内容,如果未能解决你的问题,请参考以下文章