Pandoc:不包括输入文件

Pandoc:不包括输入文件

我有一个 LaTeX 根文件,它引用了许多其他单个文件。这些文件被包含/引用

\input{somefolder/somefile}

但不知何故潘多克仅从主 tex 文件(入口点)生成输出,而不遵循输入。我做错了什么?

pandoc main.tex -t docx -o main.docx

评论:我正在尝试将 LaTeX 导入 Adob​​e Indesign,方法是先将其转换为 Docx,然后再转换为 Indesign。

更新:我创建了一个最小工作示例。似乎输入文件被正确引用,但我仍然收到大量其他错误,这些错误似乎与使用 Tkiz 图纸的公司布局有关。Pandoc 版本在 MacOS 10.12.4 (Sierra) 上为 1.19.2.1。Pandoc 命令是:

pandoc 小册子2016.tex -t docx -o 小册子2016.docx

答案1

Pandoc 确实包含输入文件


如果你有这样的结构

.
├── main.tex
└── somefolder
    └── somefile.tex

包含以下两个文件

1:主.tex

% !TeX program = XeLaTeX

\documentclass{article}
\begin{document}

\section*{Test}

    Input somefolder/somefile.tex:
    \input{somefolder/somefile}

\end{document}

2:somefile.tex

This is somefile

然后

pandoc main.tex -t docx -o main.docx

将为您提供一个 word 文档,其中包含以下内容某些文件夹/某些文件.tex

3:主要.docx

在此处输入图片描述


底线:它有效。如果你的项目和/或代码的结构更复杂,那么你应该先做一些预处理。


更新:您的 MWE 生成一个 docx 文件

在此处输入图片描述

如您所见,它包含所包含文件的内容。问题是 pandoc 无法解析\newcommand您使用的复杂宏 (),因此存在大量噪音,而信号不多。

答案2

我之前回答过这个问题这里

我知道这是一个老问题,但我还没有看到任何关于这个的答案:本质上,如果您使用 markdown 和 pandoc 将文件转换为 pdf,则在页面顶部的 yaml 数据中,您可以包含如下内容:

---
header-includes:
- \usepackage{pdfpages}
output: pdf_document
---

\includepdf{/path/to/pdf/document.pdf}

# Section

Blah blah

## Section 

Blah blah

由于 pandoc 使用 latex 转换所有文档,因此该header-includes部分调用 pdfpages 包。然后,当您包含它时,\includepdf{/path/to/pdf/document.pdf}它将插入该文档中包含的所有内容。此外,您可以通过这种方式包含多个 pdf 文件。

作为一个有趣的奖励,这只是因为我经常使用 markdown,如果你想包含除 markdown 之外的文件,例如 latex 文件。我已经修改了这个回答有点。假设你有一个 markdown 文件 markdown1.md:

---
title: Something meaning full
author: Talking head
---

还有两个附加的 Latex 文件 document1,如下所示:

\section{Section}

Profundity.

\subsection{Section}

Razor's edge.

另一个是 document2.tex,如下所示:

\section{Section

Glah

\subsection{Section}

Balh Balh

假设你想将 document1.tex 和 document2.tex 包含到 markdown1.md 中,你只需对 markdown1.md 执行此操作

title: Something meaning full
author: Talking head
---

\input{/path/to/document1}
\input{/path/to/document2}

在其上运行 pandoc,例如

在终端pandoc markdown1.md -o markdown1.pdf

答案3

我遇到了同样的问题,该解决方案可能会引起其他人的兴趣。我的控制台/终端的工作目录与 LaTeX 项目的基础目录不一致。我认为这不是问题,因为我使用过绝对路径。事实上,只要工作目录与 LaTeX 项目的基本目录匹配,处理 LaTeX 文件就可以正常工作。

答案4

我在包含包含大量 Latex 宏的文件时遇到了同样的问题。我使用了 LaTeX include 指令\include{macros}在标题中,\begin{document}. 这个问题很容易通过将其移入体内来解决

\begin{document}
\include{macros}
...
\end{document}

相关内容