繁体   English   中英

通过LaTeX中的表格更改字体高度

[英]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} 

首先,阅读标题为更改字母之间的空格的TeX FAQ条目。 根据您的情况,该FAQ中的软件包和建议可能就足够了。

另外,请查看graphicx软件包中的\\scalebox\\resizebox命令。 它们按照名称的含义进行操作。

我确信可以改进此方法,并且由于不同大小的字体实现方式的不同,因此并不确定,但这是一种快捷方法:

\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英寸小一点,但是两行文本的确缩放到相同的数量。

检查软件包textfit 用法:

\scaletowidth{width}{text}

要么

\scaletoheight{height}{text}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM