有人可以提供文档或教程的链接,说明如何将 txt 文件转换为 tex 文件吗?你可能不得不推断这个问题,因为我还不够了解,无法提出更精确的问题。我想将一些 txt 文件转换为基本的 tex 文件。它们是 utf8,我不想用记事本或文本编辑器打印它们,而是让 LaTeX 排版它们。
我在设想我需要为 Pandoc 创建一个 LaTeX 模板。我对 LaTeX 有一点经验,知道如何使用基本类和基本命令创建基本文档,但如果我必须创建自己的包或类,我会不知所措。我对 pandoc 一无所知,只知道它是一个命令行转换工具,可以粗略地从一种文件类型转换为另一种文件类型,但由于文件类型的功能不同,格式可能会丢失。我的 txt 文件中没有编码的格式语法,它只是 utf8 txt 文件中的 unicode 字符。所有字符都是美国拉丁类型。
请有人为 pandoc 或文档提供有用的教程,或尽可能纠正我的无知。
答案1
考虑到 OP 的要求,最简单的方法是创建以下模板(并将其命名为templates.tex
)
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
$body$
\end{document}
然后可以使用以下命令调用 Pandoc
pandoc --template=templatex.tex <file.txt> -o <file.tex>
其中<file.txt>
是输入文件的名称txt
,<file.tex>
是 pandoc 要创建的输出的名称。
顺便说一下,Pandoc 模板文档可以在以下网址找到:http://pandoc.org/MANUAL.html#options-for-wrapper-scripts。
答案2
Pandoc txt 转 tex
严格意义这并不像看上去那么容易。
Pandoc
只能写入纯文本,不读纯文本,因此并不是完全正确的工具,除非你想让纯文本解释为 Markdown (然而,这很可能就是您真正想要的)。
我的 txt 文件中没有任何格式化语法
可能不是真的(从 的角度来看pandoc
)。转换后的文件中的文本可能受到 LaTeX 命令的困扰,无论您的模板有多简单,除非文本没有其他结构,只有普通的段落。但是带有简单标题或某些列表的文本,例如:
Heading
-------
Vivamus 12% nunc & nunc, molestie ut, ultricies vel, semper in,
velit. Ut porttitor. Praesent in sapien. Nam rutrum augue a leo.
- First item text
- Second item text
1. First subitem text
2. Second subitem text
...看起来像纯文本,但实际上有一些将转换为 LaTeX 的 Markdown 语法,因此使用 Guido 答案的模板的结果将是:
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
\subsection{Heading}\label{heading}
Vivamus 12\% nunc \& nunc, molestie ut, ultricies vel, semper in,
velit. Ut porttitor. Praesent in sapien. Nam rutrum augue a leo.
\begin{itemize}
\tightlist
\item
First itemtext
\item
Second itemtext
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
First itemtext
\item
Second itemtext
\end{enumerate}
\end{itemize}
\end{document}
今天你可以省略\usepackage[utf8]{inputenc}
(现在是默认的),但结果很好(PDF看起来很完美)......或者如果你严格要求你所要求的,这是一个主要的缺点。假设你不想要章节和列出 LaTeX 语法,只开始编辑没有结构的 LaTeX 文本。那么你只需要转义特殊字符($ & % # _ { } ~ ^ \
),因为这会导致一些文本丢失(任何之后的文本%
都将被视为注释)或致命的渲染错误,但据我所知,没有针对此的 pandoc 选项。
我需要为 Pandoc 创建一个 LaTeX 模板。
一般来说,不需要。您不必担心模板。默认情况下会应用在大多数情况下都有效的模板。因此,这也有效:
pandoc -s <file.txt> -o <file.tex>
但是,如果默认模板在某种程度上打扰了你,那么拥有自己的模板可能是一个好主意(例如,你想要一个更清晰的序言来开始编辑 LaTeX 文件)。另外,最好将其重命名file.txt
为file.md
(这样文本编辑器和你就可以正确地将其识别为 markdown 文本)。
但你也可以使用纯文本(markdown)无需 pandoc 转换并且仍能生成漂亮的 LaTeX PDF 打印件,只需使用具有以下结构的一个 LaTeX 文档即可:
\documentclass{article}
\usepackage{markdown}
\begin{document}
\begin{markdown}
Your plain text here
\end{markdown}
\end{document}
它必须用 进行编译lualatex
。您也可以使用pdflatex
,但它应该能够访问 shell 才能运行一些 Lua 代码(运行 texdoc markdown` 以获取更多信息)。
或者如果您仍然想维护/编辑原始内容<file.txt>
,您也可以:
\documentclass{article}
\usepackage{markdown}
\begin{document}
\markdownInput{<file.txt>}
\end{document}
最后,如果您不想要任何 Markdown 格式(只需生成纯文本编辑器中显示的 PDF),事情就会稍微复杂一些。最好的办法可能是清理一些 Markdown 语法,然后导入 LyX:
pandoc <file.md> -t plain -o <file.txt> && lyx --import text <file.txt>
然后按Ctrl+R获得 PDF。如果你想合并这些行,据我所知 LyX 中没有命令行选项,但可以通过 LyX 菜单File> Import>Plaint Text, Join Lines ...或不使用 LyX,直接使用 perl 脚本转换为 LaTeXtxt转latex:
pandoc <file.md> -t plain | txt2latex > <file.tex>
在这种情况下,结果很简单:
\documentclass{article}
\begin{document}
Heading
Vivamus 12\% nunc \& nunc, molestie ut, ultricies vel, semper in, velit. Ut
porttitor. Praesent in sapien. Nam rutrum augue a leo.
- First item text
- Second item text
1. First subitem text
2. Second subitem text
\end{document}
好处是,如果你不想在某个时刻加入队伍,那么\obeylines
在后面添加就足够了\begin{document}
或者,如果您只想逐字显示文本:
\documentclass{article}
\begin{document}
\begin{verbatim}
<Paste here your plain text>
\end{verbatim}
\end{document}
或者仅包含原始文件:
\documentclass{article}
\usepackage{verbatim}
\begin{document}
\verbatiminput{borra.md}
\end{document}
或者简单地,\markdownInput
通过\markdownRendererInputVerbatim
使用包在示例中进行更改markdown
。