你知道大多数字体和排版都有各种宽度的字符/字形吗?就像你比较常规字体一样:
AEIOU
ZXCVB
aeiou
zxcvb
它们并不像固定宽度或等宽字体那样完美地排列:
艾欧 中兴通讯股份有限公司 艾尤 交流群
我刚刚发现了如何对齐 LaTeX 文档的各个部分(仍在掌握它),并且我很好奇是否可以对齐和居中普通字体的每个字符,以模拟等宽字体的固定宽度字符。
如果仔细观察,实际的字符不一定都是相同的宽度,但字符和它们周围的空白空间的尺寸相同,这让我认为这可能是可能的:
A
E
I
O
U
a
e
i
o
u
Z
X
C
V
B
z
x
c
v
b
一些更明显的比较:
1
I
!
|
.
0
W
?
—
…
无论如何,如果可能的话,它对我来说还是很有用的。虽然最终可能变得太丑陋,但如果有人能想到办法的话,我愿意尝试一下。
答案1
我使用制表符堆栈,将输入空格作为制表符(它不会显示在输出中)。我还强制所有列的宽度相等,这将采用矩阵中最宽的字符。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tabstackengine}
\begin{document}
\setstackTAB{ }
\fixTABwidth{T}
\tabbedCenterstack{
A E I O U\\
a e i o u\\
Z X C V B\\
z x c v b\\
1 I ! | .\\
0 W ? — …
}
\end{document}
我可以使用负制表符间隙\setstacktabbedgap{-4pt}
来将列挤压在一起,但破折号和省略号会重叠:
答案2
一个简单的解决方案是使用listings
具有固定宽度列的包:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\lstset{
columns=fixed,
literate={—}{{---}}1 {…}{{...}}1
}
\begin{document}
\begin{lstlisting}
A E I O U
a e i o u
Z X C V B
z x c v b
1 I ! | .
0 W ? — …
\end{lstlisting}
\end{document}
请注意,这listings
对 Unicode 字符不太适用(TeX.SX 对此事有几个疑问),所以我literate
在这里使用该选项作为快速修复。