目标:以编程方式处理带有书目引文的word文档(最终来自EndNote)并将其转换为其他格式(LyX)。
如何查看文档以便重新创建文档?在引用发生的地方,我只想输出对引用作品的引用,而不是文档中出现的字符。在参考书目发生的地方,我只想输出一个命令来插入参考书目,而不是文本来源。
示例输入(当显示代码关闭时显示在MS Word中):
如前所述[1],提示还有很长的路要走
- Agha,S。,在大规模营销一年后使用女用避孕套的模式。 AIDS> Educ Prev,2001。13(1):p。 55-64。
醇>
所需的输出样式(伪LaTeX):
As was said\ref{bib526} it’s a long way to tip.
\bibliography
bib526
将从Field.Code
中提取。
以下计划说明了几个奇怪之处:</ p>
Document.Characters.Count
比文档范围内的实际字符数短得多。这似乎反映了许多隐藏的字符,例如Field.Code
,但我不确定参考书目中出现的字符数量。Field
似乎在&#34; [1]&#34;中的某些打印字符上重复出现。我如何保证只输出一次,并且我不输出任何打印的字符作为参考? (在某些情况下有2个字段,因为有引文字段和超链接字段)。Document
可能在StoryRanges
中有几个故事,尽管我的小测试只有一个故事。我应该注意哪些?[没有这个,下一个块没有正确格式化。不知道为什么。]
Public Sub inspect()
Dim a As Document
Dim r As Range
Set a = ActiveDocument
Set r = a.Range
Debug.Print "Document ranges from"; r.Start; "to"; r.End; "with";
r.Characters.Count; "Characters"
For ic = 11 To 16
Set r = a.Characters(ic)
Debug.Print "Character"; ic; r.Start; r.End; r.Fields.Count; r.Text
Next ic
End Sub
输出:
Document ranges from 0 to 6137 with 659 Characters
Columns are
A = position in `Document.Characters`
B, C = start, end of corresponding range (often more than 1 character!)
D = # of fields in the character
E = printed representation of the character
A B C D E
Character 11 10 11 0 d
Character 12 11 1559 2 [
Character 13 1559 1607 1 1
Character 14 1607 1609 2 ]
Character 15 1609 1610 0
Character 16 1610 1611 0 i
我可能用Python做实际的程序,而不是VBA。