我想要一个用于块字符的等宽字体,U+2580,U+2584,U+2588(见下文)。
对于那些字符,我使用 pmboxdraw。
\documentclass{article}
\usepackage{pmboxdraw}
\begin{document}\tiny\begin{verbatim}
████ ▄▄▄ █▄ ▄ ▄▄▄▄▀▀ ▄█▄ ▄▄▄ ▄ ▀█▄▀▄█▄▀ ▄█▀▀ ▀▄▀▄▀▄█ █████
████▄▀ ▀ █▄▀█▄▀▄▀ ▄ ▄ ▄█ ▀ ▀█ ██▄ ▄▀▀▀██ ▀▀▄▄▀▀ █▄▄▀▀█▄█████
████▄▀ ▀██▄ ▄▀█ ▄▀▀▀▄▄▄▄███▀ ▄█ ▄█▀ ▀████▀▀▀█▄ ▀█▀▀ ▄▄▄ ▄████
████▄▄▀ ▄▀▄█ ██ ▄▀█▀▀▄█▄▄▀▀▀▀▄██ █▀▀ ██▄ █▄ ▀ ▄▄▀▄ ▄█▄▄▀▄████
\end{verbatim}
\end{document}
然而,使用latex
,这会导致非等宽字体并且字符会发生偏移。
如何使用 pmboxdraw 获取等宽字符?
答案1
您可以更改空间的大小以获得与块相同的宽度:
\documentclass{article}
\usepackage{pmboxdraw}
\begin{document}
{%
\tiny\ttfamily \setbox0=\hbox{█}\fontdimen2\font=\wd0
\begin{verbatim}
████ ▄▄▄ █▄ ▄ ▄▄▄▄▀▀ ▄█▄ ▄▄▄ ▄ ▀█▄▀▄█▄▀ ▄█▀▀ ▀▄▀▄▀▄█ █████
████▄▀ ▀ █▄▀█▄▀▄▀ ▄ ▄ ▄█ ▀ ▀█ ██▄ ▄▀▀▀██ ▀▀▄▄▀▀ █▄▄▀▀█▄█████
████▄▀ ▀██▄ ▄▀█ ▄▀▀▀▄▄▄▄███▀ ▄█ ▄█▀ ▀████▀▀▀█▄ ▀█▀▀ ▄▄▄ ▄████
████▄▄▀ ▄▀▄█ ██ ▄▀█▀▀▄█▄▄▀▀▀▀▄██ █▀▀ ██▄ █▄ ▀ ▄▄▀▄ ▄█▄▄▀▄████
\end{verbatim}
}
\end{document}
答案2
默认情况下,字符pmboxdraw
是等宽的(因此逐字逐句不是严格必要的,尽管它可以方便地避免缩进、行尾等问题)。
但是,您绘制的空字符(例如第一行的第 5 个字符)是常规空格字符,不会被绘制pmboxdraw
。这意味着使用空格字符的默认排版,pmboxdraw
即使在等宽字体中,其宽度也不一定与字符相同。
为了避免这个问题,一个解决方法是绘制灰色(即阴影)框而不是空格,并重新定义阴影框以将其渲染为白色。当然,这意味着您不能再使用阴影框,但这是一个快速的解决方法。
梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pmboxdraw}
\usepackage{color}
\makeatletter
\def\pmbd@Shade#1#2{%
\pmbd@BeginBox{Shade}%
\ltx@ifundefined{textcolor}{%
\pmbd@colorwarning{#1}%
}{%
\textcolor{white}{\pmbd@Rule\pmbd@W\pmbd@H\z@}
}%
\pmbd@EndBox
}
\makeatother
\begin{document}\tiny
\begin{verbatim}
████░▄▄▄░█▄░░░▄░▄▄▄▄▀▀░▄█▄░▄▄▄░▄░▀█▄▀▄█▄▀░▄█▀▀░░▀▄▀▄▀▄█░█████
████▄▀░▀░█▄▀█▄▀▄▀░░▄░▄░▄█░▀░▀█░██▄░▄▀▀▀██░▀▀▄▄▀▀░█▄▄▀▀█▄█████
████▄▀░▀██▄░▄▀█░▄▀▀▀▄▄▄▄███▀░▄█░▄█▀░▀████▀▀▀█▄░▀█▀▀░▄▄▄░▄████
████▄▄▀░▄▀▄█░██░▄▀█▀▀▄█▄▄▀▀▀▀▄██░█▀▀░██▄░█▄░▀░▄▄▀▄░▄█▄▄▀▄████
\end{verbatim}
\end{document}
结果:
另一种方法是使用支持这些字符的字体并使用 XeLaTeX 或 LuaLaTeX 进行编译。在这种情况下pmboxdraw
不需要该包。
梅威瑟:
\documentclass{article}
\usepackage{fontspec}
\setmonofont{DejaVu Sans Mono}
\begin{document}
\begin{verbatim}
████ ▄▄▄ █▄ ▄ ▄▄▄▄▀▀ ▄█▄ ▄▄▄ ▄ ▀█▄▀▄█▄▀ ▄█▀▀ ▀▄▀▄▀▄█ █████
████▄▀ ▀ █▄▀█▄▀▄▀ ▄ ▄ ▄█ ▀ ▀█ ██▄ ▄▀▀▀██ ▀▀▄▄▀▀ █▄▄▀▀█▄█████
████▄▀ ▀██▄ ▄▀█ ▄▀▀▀▄▄▄▄███▀ ▄█ ▄█▀ ▀████▀▀▀█▄ ▀█▀▀ ▄▄▄ ▄████
████▄▄▀ ▄▀▄█ ██ ▄▀█▀▀▄█▄▄▀▀▀▀▄██ █▀▀ ██▄ █▄ ▀ ▄▄▀▄ ▄█▄▄▀▄████
\end{verbatim}
\end{document}
结果: