2010-04-15 39 views
1

我一直在尋找更優雅的解決方案來解決以下排版問題。考慮在打印介質中找到的那些橫幅其中文本等對準:通過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 

尺寸調整,以使高度按比例縮小爲文本的更長的線路,使得每個線路具有相等的寬度的字體。我編寫了一個小腳本,分別運行每行,編譯,剪切生成的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} 

回答

2

我敢肯定,這可以改進,並且由於在不同的大小,然後它不會是精確的,但在這裏,不同字體的實現是一個快速和骯髒的方式做到這一點:

\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} 

實際上,它比4in小一點,但兩行文字的比例相同。

+0

有趣的解決方案安德魯 - 似乎在實踐中,使用圓形不會讓他們排隊_exactly_,而是非常接近。 – Hooked 2010-04-16 21:09:22

+0

是的,我不確定字體是否可以是非整數大小。我想他們可以,所以「圓」可能是多餘的。無論如何,你有更好的答案,所以這並不重要。 – 2010-04-17 15:41:28

1

查看包textfit。用法:

\scaletowidth{width}{text} 

\scaletoheight{height}{text} 
+0

您的示例: http://i56.photobucket.com/albums/g162/nakedwithbootson/temp.png – Geoff 2010-04-16 16:27:20

+0

在當前發佈的三個示例(Geoff,Stacey,AVB)中,這一個在對齊右側列時效果最差究竟。雖然它看起來很不錯,但對於短頭條,我正在尋找它的一些參差不齊的右側。 (+1)爲了向我介紹這個軟件包 - 它在它自己的方面似乎很有用! – Hooked 2010-04-16 21:07:18