我想在我的文档中添加许多 ASCII 艺术图像。但如果我使用 verbatim 环境,输出结果会很丑陋!
如何解决?(我找到了一个解决方案,可以在我的 tex 文件中仅导入带有 ascii 图像的 txt 文件)
ASCII 文件
Monde de l'ordinateur
Monde réel Monde conceptuel +--------------------------------------+
| |
| .-------. |
+--------------+ +--------------+ |+--------------+ / \ |
| | | | || | ( ) |
| Objets | | Entités | || Tables | |`. ,'| |
| Propriétés |------->| Associations |---------->| Schémas |------> | Base | |
| Valeurs | | Attributs | || Attributs | | de | |
| | | | || | | données | |
+--------------+ +--------------+ |+--------------+ ( ) |
| | | `. ,' |
| | | `-----' |
| +--------+---------------------+-------+
| | |
v v v
+------------------+ +-------------+ +-------------+
| Modélisation | |Modélisation | |Modélisation |
| conceptuelle des | | logique des | |physique des |
| données | | données | | données |
+------------------+ +-------------+ +-------------+
.tex
\documentclass[12pt, french, a4paper]{report}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listings,fancyvrb}
\usepackage{verbatimbox}
\begin{document}
\begin{verbatim}
Monde de l'ordinateur
Monde réel Monde conceptuel +--------------------------------------+
| |
| .-------. |
+--------------+ +--------------+ |+--------------+ / \ |
| | | | || | ( ) |
| Objets | | Entités | || Tables | |`. ,'| |
| Propriétés |------->| Associations |---------->| Schémas |------> | Base | |
| Valeurs | | Attributs | || Attributs | | de | |
| | | | || | | données | |
+--------------+ +--------------+ |+--------------+ ( ) |
| | | `. ,' |
| | | `-----' |
| +--------+---------------------+-------+
| | |
v v v
+------------------+ +-------------+ +-------------+
| Modélisation | |Modélisation | |Modélisation |
| conceptuelle des | | logique des | |physique des |
| données | | données | | données |
+------------------+ +-------------+ +-------------+
\end{verbatim}
\end{document}
答案1
我的建议是使用较小的字体大小:
\begin{filecontents*}{\jobname.art}
Monde réel Monde conceptuel +--------------------------------------+
| |
| .-------. |
+--------------+ +--------------+ |+--------------+ / \ |
| | | | || | ( ) |
| Objets | | Entités | || Tables | |`. ,'| |
| Propriétés |------->| Associations |---------->| Schémas |------> | Base | |
| Valeurs | | Attributs | || Attributs | | de | |
| | | | || | | données | |
+--------------+ +--------------+ |+--------------+ ( ) |
| | | `. ,' |
| | | `-----' |
| +--------+---------------------+-------+
| | |
v v v
+------------------+ +-------------+ +-------------+
| Modélisation | |Modélisation | |Modélisation |
| conceptuelle des | | logique des | |physique des |
| données | | données | | données |
+------------------+ +-------------+ +-------------+
\end{filecontents*}
\documentclass[12pt, french, a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{fancyvrb}
\usepackage{lipsum} % for context
\begin{document}
\lipsum[3]
\begin{center}
\BVerbatimInput[fontsize=\scriptsize]{\jobname.art}
\end{center}
\lipsum[3]
\end{document}
环境filecontents*
只是为了表明您可以使用外部文件。我给它命名\jobname.art
只是为了避免破坏我的文件。
答案2
您可以使用 ASCII 到 SVG 转换器稍微改进这些图表,然后将其转换为 PDF 以用作简单图像。我以前从未这样做过,但有了asciitosvg-网格您的示例结果并不完美,但很有希望。您的里程可能会因其他图表和其他类似工具而有所不同。
我对原文做了一些改动:
Monde de l'ordinateur
Monde réel Monde conceptuel .--------------------------------------.
| |
| .-------. |
.--------------. .--------------. |.--------------. / \ |
| | | | || | . . |
| Objets | | Entités | || Tables | |` ------- ´| |
| Propriétés +------->| Associations +---------->| Schémas |------> | Base | |
| Valeurs | | Attributs | || Attributs | | de | |
| | | | || | | données | |
.--------------. .-----+--------. |.-------+------. . . |
| | | \ / |
| | | .-------. |
| .--------+---------------------+-------.
v | |
| v
.------------------. .----- v ------. .--------------.
| | | | | |
| Modélisation | | Modélisation | | Modélisation |
| conceptuelle des | | logique des | | physique des |
| données | | données | | données |
| | | | | |
.------------------. .--------------. .--------------.
...为了生成圆角框并避免将三个垂直箭头放在不同的高度(否则前两个会丢失,这似乎是转换器错误)。添加一些箭头之类的小缺陷可以通过在 Inkscape 中手动编辑 pdf 来修复,但这里显示的是未经任何修饰的原始图像。
MWE 的代码:
\documentclass[12pt, french, a4paper]{report}
\usepackage{graphicx}
\begin{document}
\fbox{\includegraphics[width=\linewidth]{foo.pdf}}
\section*{Instructions}
\begin{verbatim}
$ asciitosvg < foo.txt > foo.svg
$ inkscape foo.svg --export-pdf=foo.pdf
\end{verbatim}
\end{document}