Pandoc 不维护从 .txt 文件到 Word 文件的换行符

Not*_*ina 5 markdown pandoc

我正在使用 Pandoc 将 Scrivener 与 Zotero 集成。我在 Scrivener 中编写,添加 Zotero 引文键,编译 .txt 文件,然后使用 Pandoc 将 .txt 文件转换为 Word 文件,其中引文键以我喜欢的引文风格(本例中为 APA)有效翻译。按照此网页上的说明,我还设置了“Marked 2”来显示我使用 Markdown 在 Scrivener 中编写的内容的输出。

问题来了:换行符。如果我用 Scrivener 写:

I want a newline after this.
This should be a newline.
Run Code Online (Sandbox Code Playgroud)

然后标记 2 显示:

I want a newline after this. This should be a newline.
Run Code Online (Sandbox Code Playgroud)

于是我在《Scrivener》中写道:

I want a newline after this.<br>
This should be a newline.
Run Code Online (Sandbox Code Playgroud)

标记2:

I want a newline after this.
This should be a newline.
Run Code Online (Sandbox Code Playgroud)

伟大的!现在我编译成 .txt 文件并得到:

I want a newline after this.<br>
This should be a newline.
Run Code Online (Sandbox Code Playgroud)

好的,现在是时候使用 Pandoc 了。

我在终端中输入以下命令:

pandoc -s -S --normalize --bibliography  
~/Dropbox/_Research/Master_Thesis/Master.bib --csl 
~/Dropbox/_Research/apa.csl 
-f markdown -t docx -o trial.docx /Users/S/Desktop/test_st.txt
Run Code Online (Sandbox Code Playgroud)

我得到了我的 .docx 文件(当我使用完整文档执行此操作时,我所有的引文都在那里,所以这有效!),但后来我读到:

I want a newline after this. This should be a newline.
Run Code Online (Sandbox Code Playgroud)

请注意,.txt 文件中存在的换行符命令已消失,但我仍然没有得到换行符。

tar*_*leb 5

其原因在于传统的方法是在行尾附加两个空格

\n\n
I want a newline after this.\xe2\x90\xa0\xe2\x90\xa0\nThis should be a newline.\n
Run Code Online (Sandbox Code Playgroud)\n\n

<br>元素被解释为原始 HTML,即,它将以任何支持 HTML 的格式呈现,例如 Markdown 或 HTML 本身。然而,Docx 不支持原始 HTML,因此<br>简单地删除。

\n\n

因此,要么使用上面解释的传统 Markdown 语法(恕我直言,这很丑陋),要么使用 pandoc 功能,该功能允许通过以反斜杠结束行来添加硬换行符,“转义”换行符:

\n\n
I want a newline after this.\\\nThis should be a newline.\n
Run Code Online (Sandbox Code Playgroud)\n

  • 谢谢。我发现的另一个选项是将 -f markdown+hard_line_breaks 添加到 pandoc 命令中。 (5认同)