我有一份文档,其标题页包含客户姓名。姓名的字体大小是固定的,对于较短的姓名,字体大小可以正常工作。但是,每当我遇到姓名较长的客户时,我的文本就会超出文档边距。
有没有办法根据输入自动调整名称的字体大小?文本被放置在带有一些背景的 tikz 图片中。
这是我目前得到的结果,MWE,这是我根据之前找到的答案尝试得到的。
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{calc}
\newsavebox\MyNameBox
\newsavebox\MySurnameBox
\newlength\MyNameLength
\newcommand{\nametag}[2]{
\sbox\MyNameBox{#1}
\sbox\MySurnameBox{#1~#2}
\setlength\MyNameLength{40mm-1mm}
\edef\boxtrue{0}
\begin{tikzpicture}
\node[anchor=south east,inner sep=0pt,outer sep=0pt,align=left] at (0mm,0mm) {
\ifdim \MyNameLength < \wd\MySurnameBox
% \ifdim \MyNameLength < \wd\MySurnameBox
\edef\boxtrue{1}
\resizebox{\MyNameLength}{!}{#1~#2}
\else
#1~#2
\fi
};
\end{tikzpicture}
}
%%%%%%
\begin{document}
\nametag{FirstName}{Reallylooooooooooonglastname}\\
\end{document}
如果我想在一行中写名字和姓氏,但想将它们分成两行:名字和姓氏下方,字体大小相同,那么这种方法是可行的。
如果我将名字(名字和姓氏)分开,会发生什么情况?我只能调整较大的一个的大小,而另一个的字体较大,如下所示。
这部分的代码是这样的。
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{calc}
\newsavebox\MyNameBox
\newsavebox\MySurnameBox
\newlength\MyNameLength
\newcommand{\nametag}[2]{
\sbox\MyNameBox{#1}
\sbox\MySurnameBox{#2}
\setlength\MyNameLength{40mm-1mm}
\edef\boxtrue{0}
\begin{tikzpicture}
\node[anchor=south east,inner sep=0pt,outer sep=0pt,align=left] at (0mm,-5mm) {
\ifdim \MyNameLength < \wd\MySurnameBox
% \ifdim \MyNameLength < \wd\MySurnameBox
\edef\boxtrue{1}
\resizebox{\MyNameLength}{!}{#2}
\else
#2
\fi
};
\node[anchor=south east,inner sep=0pt,outer sep=0pt] at (0mm,0mm) {
\ifdim \MyNameLength < \wd\MyNameBox
\resizebox{\MyNameLength}{!}{#1}
\else
#1
\fi
};
\end{tikzpicture}
}
%%%%%%
\begin{document}
\nametag{FirstName}{Reallylooooooooooooooooooonglastname}\\
\end{document}
任何帮助都将非常感谢。谢谢。