Pandoc 程式碼區塊未使用 Eisvogel 和 Markdown 對齊

Pandoc 程式碼區塊未使用 Eisvogel 和 Markdown 對齊

嘿,又是我,我帶著一些讓我無法入睡的東西回來了。

我用的是流行的艾斯沃格爾用於將 Markdown 檔案渲染為 PDF 的 Pandoc 範本。到目前為止,一切都運作良好,但我剛剛注意到區塊引用與文件的其餘部分不對齊。我檢查了乳膠文件,但我不知道問題是什麼..這讓我發瘋。由於某種原因,這些區塊太寬了幾個點...請參見下圖,但要注意這是觸發的。

在此輸入影像描述

縮放後,可以清楚地看到程式碼區塊比其餘內容寬幾個點(左側和右側都會受到影響)。

左邊:

在此輸入影像描述

正確的:

在此輸入影像描述

我尋求祢的幫助!我應該又可以睡覺了。 :(

答案1

當使用預設的 Haskell skylighting 庫進行程式碼突出顯示時,pandoc 在名為“ Shaded”的環境中排版程式碼列表,它定義為snugshade來自有框包裝

此環境被定義為文字的開頭位於其通常的位置,但陰影區域有填充,以便它延伸到通常的排版區域之外。

然而,該套件還提供了一個帶有星號的版本,它將陰影區域的填充保留在通常排版區域的內部而不是外部,因此內部的實際文字在兩側都略有縮排。

所以你可以做的一件事是重新定義 pandoc 的Shaded環境來使用它:

\renewenvironment{Shaded}{\begin{snugshade*}}{\end{snugshade*}}

您可以將其放在 markdown 文件中、yaml 選項中,或者最合適的方式是放在使用 pandoc 選項包含在序言中的文件header-includes:末尾。./LaTeX/headers.tex-H

由於我沒有您的my.theme突出顯示樣式,並且它所基於的 kate 主題使用白色背景,因此我無法對此進行測試,但這是使用該breezedark主題的結果:

帶有 snugshade 的程式碼區塊*

相關內容