Indesign将忽略ICML/XML属性

2024-04-29 08:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

设置

我正在用Indesign写一本大书。我用Scrivener编写并用python处理文本。在用python编译了我的文本之后,我通过Pandoc运行了整个手稿,以获得用于indesign的ICML。然后我把ICML分成几个章节,以防止Indesign被它扼杀。你知道吗

降价原稿中有一些表格。我试图做的是使这些表跨越文本列。(而不是在表中跨越列的单元格。)当我在Indesign中编辑副本使表跨越列并读取生成的ICML源代码时,我看到如下内容:

<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption" SpanColumnType="SpanColumns">
    <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Default">
        <Table Self="uf2i18802" HeaderRowCount="1" FooterRowCount="0" BodyRowCount="11" ColumnCount="2" AppliedTableStyle="TableStyle/Table" TableDirection="LeftToRightDirection">
            <Row Self="uf2i18802Row0" Name="0" SingleRowHeight="11.99688720703125" />

现在,我的Pandoc输出看起来更像这样:

<Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="11" ColumnCount="2">
    <Column Name="0" />

所以我要做的是将整个<Table>元素包装在<ParagraphStyleRange><CharacterStyleRange>元素中,并在段落上加上SpanColumnType="SpanColumns",因为当您将一个表设置为跨列时,ICML中显然会发生这种情况。你知道吗

问题

我得到的python脚本运行良好,甚至似乎插入了正确的元素并正确地缩进了<Table>元素:

<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption" SpanColumnType="SpanColumns">
  <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Default">
    <Table AppliedTableStyle="TableStyle/Table" HeaderRowCount="1" BodyRowCount="3" ColumnCount="2">
      <Column Name="0" SingleColumnWidth="120.0" />

但这种变化在设计中不起作用。

我甚至注意到,当我签出ICML并签回它时,相关的属性被删除了,就好像这个属性不被接受,因为它是无效的而被删除一样。你知道吗

我做错了吗?有没有更好的办法?有没有关于如何在某处做这类事情的文档?

我还没有找到很多ICML资源,所以我基本上是通过反复试验来完成这项工作的。显然,Pandoc本身是任何与ICML相关的搜索字符串上最相关的链接之一,这并没有多大帮助。This document对ICML文档的默认值有一个规范,但是我看不出我在这里尝试的解决方案有什么问题。最重要的是,StackOverflow上没有ICML标记,所以很明显这是非常罕见的。你知道吗


Tags: 文本元素tablepandocicmlcolumncountspancolumnsindesign