[英]Variable font height via tables in LaTeX
我一直在寻找一种更好的解决以下排版问题的方法。 考虑在印刷媒体中找到的横幅,其文字对齐方式如下:
B I G T E X T
small text small text small text
m o r e m e d i u m t e x t
调整字体大小,以便针对更长的文本行缩小高度,以使每一行具有相等的宽度。 我编写了一个小脚本,该脚本分别运行每一行,编译, \\includegraphics
生成的pdf,然后将\\includegraphics
到表中。 这样可以达到预期的效果,但是需要外部脚本和pdfcrop(仅裁剪到白色边框)。 由于大多数LaTeX都是自我意识的,我想可以让它识别盒子的宽度并适当地缩放它,以便任何文本都完全适合所需的宽度。
关于纯LaTeX实现可能如何工作的任何想法或想法?
编辑作为AVB建议的解决方案的补充(由于注释中的大代码看起来很糟糕),我在下面使用的代码下发布了内容,以便其他人可以轻松找到。
\documentclass[]{article}
\usepackage[pdftex]{graphicx}
\begin{document}
\begin{table}[l]
\resizebox{10cm}{!}{BIG Text} \\
\resizebox{10cm}{!}{small text small text small text} \\
\resizebox{10cm}{!}{Medium Text Medium Text}
\end{table} \end{document}
我确信可以改进此方法,并且由于不同大小的字体实现方式的不同,因此并不确定,但这是一种快捷方法:
\documentclass[10pt]{article}
\usepackage{pgfmath}
\usepackage{anyfontsize}
\newlength{\mywidth}
\newlength{\testwidth}
\setlength{\mywidth}{4in}
\newcommand{\fixedwidth}[1]{%
\settowidth{\testwidth}{#1}%
\pgfmathsetmacro{\x}{round(\mywidth/\testwidth * 10)}%
\pgfmathsetmacro{\y}{round(\mywidth/\testwidth * 15)}%
\bgroup\fontsize{\x pt}{\y pt}\selectfont#1\egroup}
\begin{document}
\fixedwidth{hello world}
\fixedwidth{greetings earthlings}
\end{document}
实际上,它比4英寸小一点,但是两行文本的确缩放到相同的数量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.