我想制作 AsciiArt 风格的图表。
您建议以最简单但又清晰优雅的方式(遵循 KISS 原则)来
- 将 ditaa 图表嵌入到 Tex(LaTeX)文档中?
制作带有 eps->pdf 转换的 Makefile,然后包含此类 pdf。保持 asciiart 图表分离或以某种方式将其与 Tex/LaTex 集成(对于 asciidoc,我发现这很容易)。
我知道这更多的是高级用户的问题,但相关:
- 不幸的是,我无法弄清楚如何使其与最新的 ditaa 0.9 一起工作(它与 ditaa 0.6b 一起分发)
我是小组新人,因此如果问题不合适,请原谅(请提醒,我可以删除它)。
我是Linux程序员,所以命令行,make,sed,awk和其他工具可以组合。
答案1
如果您仅对在文档中添加 ascii-art 图表感兴趣,则可以在 verbatim 环境中转储 ascii-art 内容:
\documentclass{minimal}
\begin{document}% Taken from http://ditaa.sourceforge.net/
\begin{verbatim}
+--------+ +-------+ +-------+
| | --+ ditaa +--> | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| {d}| | | | |
+---+----+ +-------+ +-------+
: ^
| Lots of work |
+-------------------------+
\end{verbatim}
\end{document}
逐字环境使用字体按原样排版其内容\ttfamily
,保持对齐(空格)。
如果你对转换后的图形/图像感兴趣(ditaa
-处理如果您的 ascii-art 版本是 PNG(或 JPG/BMP),那么从 ditaa 输出导入 PNG(或 JPG/BMP)将是最容易的。然而,这会导致输出质量下降。如果 EPS 插件随时可用,那么使用它来生成 EPS 图像(甚至转换为 PDF)将获得最高质量。以下是网站上的一张图表,说明了使用以下插件时的质量差异光栅化对比向量图形:
最后,TikZ/PGF
和PStricks
两者都在 (La)TeX 中提供了丰富的原生绘图功能。TikZ/PGF
文档充满了例子,就像许多与以下软件包相关的文档PStricks
。它们各自带有一组自己的宏/命令,允许绘制类似于 的图表ditaa
。
与某些外部应用程序(如)相比,使用本机软件包的优势ditaa
在于它提供了在 (La)TeX 代码中更改“图像”的能力,而不是使用外部应用程序作为垫脚石。此外,由于 (La)TeX 独立于平台,本机编程的这些优势增加了更多价值。
答案2
如果您是emacs
用户,您可以考虑使用org-mode
扩展:http://orgmode.org/
我一直使用org-mode
LaTeX/Beamer 来准备文档和演示文稿。您可以使用org-mode
它来生成 LaTeX 文件和 html 文件。
要合并其他语言(例如 Python、Ruby、C++、ditaa、tikz 等)的代码,您需要使用以下功能babel
:http://orgmode.org/worg/org-contrib/babel/
尤其,这里,是org-mode
来自扩展的一个 ditaa 示例babel
。
答案3
我想要的正是这个问题所要求的功能。我想在我的 latex 文件中嵌入 ditaa asciiart,同时只需执行一次 pdflatex 即可嵌入由 ditaa 渲染的图像。
由于我通过这篇文章意识到没有这样的东西,所以我创建了它并在这里分享它。 https://gist.github.com/dakusui/160dba81fb7dc53d24b3596ef21bd979
重要提示:您需要使用 --enable-write18 选项进行编译。重要提示:您需要ditaa
事先安装命令。请尝试一下,希望您喜欢。
% Preamble
\documentclass[11pt]{article}
% Packages
\usepackage{a4wide}
\usepackage{environ}
\usepackage{fancyvrb}
\usepackage{graphicx}
\def\ImageResourcePath{./resources/graphics/}
\graphicspath{ {\ImageResourcePath} }
\newenvironment{ditaa}[2]
{
\def\ditaacaption{#1}
\def\ditaastem{#2}
\def\ditaadir{\ImageResourcePath/ditaa2}
\def\ditaafile{\ditaadir/\ditaastem.ditaa}
\VerbatimOut{\ditaafile}}
{\endVerbatimOut
\immediate\write18{ditaa "\ditaafile" "\ditaadir/\ditaastem.png"}
\begin{figure}
\caption{\ditaacaption}
\includegraphics[width=\columnwidth]{ditaa2/\ditaastem}
\end{figure}
}
%--------------------------------------------------
\begin{document}
This is a ditaa diagramm example.
\begin{ditaa}{ditaa caption example}{ditaaexample}
+--------+ +-------+ +-------+
| | --+ ditaa +--> | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| {d}| | | | |
+---+----+ +-------+ +-------+
: ^
| Lots of work |
+-------------------------+
\end{ditaa}
Enjoy!
\end{document}