我有一个 LaTeX 根文件,它引用了许多其他单个文件。这些文件被包含/引用
\input{somefolder/somefile}
但不知何故潘多克仅从主 tex 文件(入口点)生成输出,而不遵循输入。我做错了什么?
pandoc main.tex -t docx -o main.docx
评论:我正在尝试将 LaTeX 导入 Adobe 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}