我正在尝试使用列表包显示树的目录结构,如下所示:
├── controllers
│ ├── application_controller.rb
我得到的结果如下:
controllers
application_controller.rb
当我使用
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
给出的错误是:
Package inputenc Error: Unicode char \u8:\lst@FillFixed@\lst@EC not set up for use with LaTeX. [├── ]
尝试使用 utf8x 得到:
./directory_listing.txt:1: Package utf8x Error: MalformedUTF-8sequence. [├── ]
和
[U+FFFD][U+FFFD][U+FFFD]
1
controllers
[U+FFFD][U+FFFD][U+FFFD]
2
[U+FFFD][U+FFFD][U+FFFD]
a p p l i c a t i o n _ c o n t r o l l e r . rb
和
âŤIJâŤĂâŤĂ controllers
âŤĆÂăÂă âŤIJâŤĂâŤĂ application_controller.rb
如果我不包含 utf8 行。
有没有办法让它正确地编码破折号、竖线和三通竖线,以便它们显示在输出中?(我需要某种形式的 [T1]fontenc,否则下划线在其他地方无法正确显示。)
答案1
有一个解决方法,使用pmboxdraw
包和listings
'escapechar
命令,允许在列表环境中插入 Latex 代码:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pmboxdraw}
\usepackage{listings}
\begin{document}
Here is my code (note that I can insert \LaTeX code between ``@''):
\begin{lstlisting}[escapechar=@]
for i in @\LaTeX@:
print @$\sum_i$@
\end{lstlisting}
Now, let's print the characters you are interrested in:
\begin{lstlisting}[escapechar=@]
@\pmboxdrawuni{251D}\pmboxdrawuni{2501}@ controllers
@\textSFxi@ @\pmboxdrawuni{251D}\pmboxdrawuni{2501}\pmboxdrawuni{2501}@ application_controller.rb
\end{lstlisting}
\end{document}
可能有 Lualatex 或 XeLaTex 解决方案来使用 unicode 字符:这对您来说是一个选择吗?