題:
是否有一種系統可以從類似標記的語言生成ODT文檔?
crobar
2015-04-02 13:30:51 UTC
view on stackexchange narkive permalink

我想(好吧,受工作環境的限制)創建ODT文檔(確實是MS Word文檔,但是我們可以從ODT那裡獲得)。但是,我不喜歡所見即所得的文檔創建範例。我喜歡對樣式和文檔結構進行適當的控制。我是LaTeX用戶,但是雖然可以進行LaTeX→ODT,但它又困難又脆弱,我不希望這些工具能很快成熟。

因此,我想知道嗎,在原理上類似於LaTeX工作流程的腳本腳本環境可用於生成ODT文檔,並讓您輕鬆控製文檔的樣式和格式(例如,與公司文檔模板匹配)?

理想情況下,系統將支持:

  • 編寫格式正確的方程式
  • 嚴格控製文檔結構
  • 控製樣式文檔,例如字體,不同級別的標題格式,頁面的頁眉和頁腳部分等,即構成普通文字處理文檔的所有內容
  • 插入圖形和圖像
您可以嘗試Pandoc(http://johnmacfarlane.net/pandoc/index.html)
我知道Pandoc,但是它可以滿足我的要求嗎?
您要的是DOCX,但可以通過ODT接受解決方法。因此Pandoc可以創建ODT-***但是Pandoc也可以直接從Markdown源文本創建DOCX,並且輸出可以直接樣式化***,其樣式與您引用的`--reference-docx = mydocx`文件相同到命令行上。那幾乎是您所能獲得的一切-在您切換到“ DOCX-from-聽寫”之前!
二 答案:
Steve Barnes
2015-04-02 22:25:00 UTC
view on stackexchange narkive permalink

我認為使用 Markdown ReStructuredText + Pandoc是一個好主意-您可以使用markdown /就像您在SO上一樣,然後將其轉換為多種文檔格式中的任何一種,包括ODT和MS .docx,而擴展的markdown則非常靈活和強大。

Pandoc輸入和輸出格式:

 輸入格式:docbook,haddock,html,json,latex,markdown,markdown_github,markdown_mmd,markdown_phpextra,markdown_strict,mediawiki,native,opml,org,rst,textile輸出格式:asciidoc,beamer,上下文,docbook,docx,dzslides,epub,epub3,fb2,html,html5,icml,json,latex,man,markdown,markdown_github,markdown_mmd,markdown_phpextra,markdown_strict,mediawiki,native,odt,opendocument,opml,org,pdf *普通,revealjs,rst,rtf,s5,滑動,滑動,texinfo,紡織品 
在查看了Pandoc之後,修改文檔樣式以使其符合公司模板似乎並不容易。似乎您必須對ODT文件格式有充分的了解,並以這種格式創建模板。這是一個嚴重的限制,因為我不知道ODT文件格式,也沒有時間學習它。
@crobar:您看到命令行參數`--reference-odt = myref.odt`嗎? Pandoc將讀取“ myref.odt”中定義的樣式,並將其應用於其生成的ODT輸出文檔。可能無法完美運行,或者無法用於非常非常奇怪的自定義公司樣式,但可以提供很大幫助!
用您需要的樣式為您的公司模板提供@crobar: Gimme,按我的標準費率給我(我是自由職業者),然後給您返回Pandoc命令行,Pandoc ODT模板和Pandoc參考-odt !好嗎**:-)**
@crobar:既然您想(最終)轉換為Word文檔,我也可以為Word做到這一點-可直接用於將Markdown轉換為DOCX。
Kurt Pfeifle
2015-04-18 15:49:26 UTC
view on stackexchange narkive permalink

pandoc ...它也是我最喜歡的用於此類任務的工具。

但是在先前的答案中缺少有關Pandoc的以下重要事實:

  • 命令行參數: -reference-odt = ...
    例如:-reference-odt = myref.odt

Pandoc將讀取在 myref.odt中定義的樣式代碼>並將它們應用於它生成的ODT輸出文檔。

對於非常非常怪異的自定義公司樣式,它可能無法完美工作,或者不能很好地工作。但是,在輕鬆地將與默認樣式不同的樣式添加到輸出的ODT文檔中時,這很有幫助。

OP在評論中寫道:“我知道Pandoc,但是確實

是的嗎?

  • “寫格式正確的方程式?”
    ,只需將LaTeX方程插入到Markdown源中的 $ 個字符之間,不能有任何空格,例如:
    $ \ cos( 2 \ theta)= \ cos ^ 2 \ theta-\ sin ^ 2 \ theta $

  • “要嚴格控製文檔結構嗎?”
    是的。 (嗯,我並沒有真正完全理解您的意思,但是我還是要確認一下!:)

  • 文檔的樣式...?”
    是的,請參見上面的-reference-odt = myref.odt 參數。

  • “要插入圖形和圖像嗎?”
    是的!-插入這樣的圖像(在其行的自己,用空白行分隔):

     ![圖像描述](./ path / to / image.png) 
好的,是的,但是創建樣式不是有效地要求您已經了解ODT文件格式嗎?我沒有時間去學習它,我希望在輸入文件中輕鬆指定這樣的內容。通過嚴格控製文檔結構,是指文檔的各個部分級別均由命令或類似內容嚴格控制,而不是由LibreOffice中的“樣式”控制。 Markdown和LaTeX允許對文檔結構進行嚴格控制,因此,Pandoc在一定程度上做到了這一點。
不可以,創建與--reference-odt參數一起使用的樣式文檔與為ODT輸出創建新的**模板**不同。樣式文檔只需要您了解LibreOffice或OpenOffice GUI,知道如何在LO / OO *“樣式和格式” *對話框中創建,編輯和更改文檔,段落和字符樣式,然後保存該文檔...
Markdown中的章節級別由*開頭的行中的##,第二個標題的##`等控制。Pandoc將其轉換為樣式'Heading 1',`Heading 2`,等。這不僅是LibreOffice中的樣式,而且*也是*結構元素!
“這不僅是LibreOffice中的樣式,還是結構元素!”,是的,這就是我不喜歡LibreOffice / Word等的原因,我希望將樣式與內容和結構盡可能地分開!因此,如果我理解正確(請查看pandoc網站上的docx示例),則--reference-odt只是定義了Heading 1,Heading 2等樣式的最小示例文檔。可以在何處準確定義可以定義哪些樣式?
-1
@crobar:我已經通過使用一些技巧成功地定義和應用了自己的樣式,即使使用自己的新發明的樣式名也是如此。其中之一是將“下一個樣式”設置用於任何標準樣式...
您說對了,沒有系統將樣式和內容完全分開。我的目標是至少自動且以我明確指定的方式處理所有小節,交叉引用,引用和編號。我想我真正想要的是樣式和結構主要由我可以看到和理解的明文命令指定,而不是單擊按鈕,而不是基於視覺的不確定性。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...