我使用latex
命令并想在我的.tex
文件中插入一个简单的 ASCII 图表:
┌───► Intensity transformation
┌───────────► Spatial │
│ (spatial domain processing)─┤
│ │
│ └───► Spatial Filtering
│
│
Image ───► which ──┤
processing domain? │
│
│
│
│
└───────────► Transform
(frequency domain processing)
但我得到了大量的LaTeX Error: Unicode character ... not set up for use with LaTeX
。例如,如何在不使用其他排版系统的情况下解决这个问题XeTeX
?
答案1
如果你有使用 ASCII 字符就不会有问题。
事实上,您可以使用(使用 unicode tex 更容易)支持 Unicode 框绘图范围的字体,但这里更多本着经典 tex 的精神,我用数学字符填充。
\documentclass{article}
\DeclareUnicodeCharacter{2500}{\makebox[\fontcharwd\font`x][l]{$-$}}
\DeclareUnicodeCharacter{2502}{\makebox[\fontcharwd\font`x][l]{$|$}}
\DeclareUnicodeCharacter{250C}{\makebox[\fontcharwd\font`x][l]{$\lceil$}}
\DeclareUnicodeCharacter{25BA}{\makebox[\fontcharwd\font`x][l]{$\rightarrow$}}
\DeclareUnicodeCharacter{2514}{\makebox[\fontcharwd\font`x][l]{$\lfloor$}}
\DeclareUnicodeCharacter{2524}{\makebox[\fontcharwd\font`x][c]{\llap{$-$}$|$}}
\begin{document}
\small
\begin{verbatim}
┌───► Intensity transformation
┌───────────► Spatial │
│ (spatial domain processing)─┤
│ │
│ └───► Spatial Filtering
│
│
Image ───► which ──┤
processing domain? │
│
│
│
│
└───────────► Transform
(frequency domain processing)
\end{verbatim}
\end{document}
答案2
例如,DejaVu-Mono Unicode 字体包含所需的字符。
我在 OpTeX 中尝试过:
\fontfam[DejaVu]
\famvardef\tt{\Dejavu\mono\setff{-liga;-tlig}\rm}
\begtt \typosize[8/10]
┌───► Intensity transformation
┌───────────► Spatial │
│ (spatial domain processing)─┤
│ │
│ └───► Spatial Filtering
│
│
Image ───► which ──┤
processing domain? │
│
│
│
│
└───────────► Transform
(frequency domain processing)
\endtt
\bye
结果正如预期: