通过 pandoc 将 Markdown 转换为 PDF 时长地址换行

通过 pandoc 将 Markdown 转换为 PDF 时长地址换行

我有使用转换为 PDF 的 markdown 文档pandoc,它依赖于 latex 引擎来生成输出文件。

这些文档包含较长的网址以及磁盘中的目录和文件位置。这些通常以普通文本形式书写,有时则用反引号括起来。请注意,这些不使用\url{}或类似符号,因为这需要更改文档。

我希望这些地址能够自动换行。例如,如果在正斜杠 ( ) 处执行此操作/,我认为就足够了。目前,这是行为:

  • 反引号中的地址永不换行;
  • 解决连字符处的外部反引号换行问题;以及
  • 反引号外面的地址永远不会在正斜杠处换行。

示例输入

# Title

## Subtitle

This is a long address: /users/foo/home/somelonglocation/somelonglocation/break-it-break-it-break-it-break-it-break-it/index.html

http://www.thissitedoesnotexit.corn/abcabcabcabcabcabcabcabcabc/defdefdefdefdef/ghighighi/jkljkljkjkljkljkljkljkljkljkljkljkljkljkljkl/mno-pqr-stu/index.html

In code backticks: `http://www.thissitedoesnotexit.corn/abcabcabcabcabcabcabcabcabc/defdefdefdefdef/ghighighi/jkljkljkjkljkljkljkljkljkljkljkljkljkljkljkl/mno-pqr-stu/index.html`

The end.

编译命令:$ pandoc-local -o output.pdf input.md

电流输出

在此处输入图片描述

答案1

Pandoc 的手动的解释了它用于为每种格式添加设置信息的机制。对于 pdf 输出,Pandoc 使用 LaTeX。

使用以下命令:

Pandoc -D latex > default.latex

您将获得所用模板的副本。在其中,您将在第 199 行找到以下内容:

\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available

也许你的 LaTeX 安装缺少 xurl 包或需要微调。当然,不要忘记使用适当的参考链接句法。

我个人使用以下说明,这给了我令人满意的换行结束:

% Localizador de recursos uniformes (URL) -----------------------
\usepackage[obeyspaces,spaces,hyphens]{xurl}
\def\UrlBreaks{\do\/\do-}

如果你要包含其他类型的 uri,那么以下内容可能也会很方便:

\usepackage{uri} % Required url and hyperreference.
% \xxx{}, xxx: arxiv, asin, doi, hdl, nbn, pubmed, oid, tinyuri, 
% tinypuri, xmpp, citeurl, mailto, uref{target}{mostrado}

手册中写道:如果您使用自定义模板,则可能需要在 pandoc 更改时对其进行修改。我们建议跟踪默认模板中的更改,并相应地修改自定义模板。一个简单的方法是分叉 pandoc-templates 存储库并在每次 pandoc 发布后合并更改。

PS:您可以使用其他程序来生成 pdf。手册给出更多信息。

相关内容