我有一个标题,用没有压缩字体的字体系列书写。但由于印刷原因,我仍然想让字母彼此更接近。
我找到了几种改变字母间距的方法:
使用
soulutf8
包:\sodef\cond{}{.01em}{.01em}{.01em}
使用
fontenc
并重新定义字体参数:\newfontfamily\headingfontcond[LetterSpace=.01]{MyFont-Bold}
如果字母间距大于 1,这两种方法都有效。但如果我尝试使文本变窄,但不使文本变宽,则不会发生任何变化。
顺便说一句,我无法使用microtype
包,因为我使用 XeLaTeX 渲染文本。
答案1
LetterSpace
也适用于负值:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Alegreya}
\newfontface{\titlingfont}[LetterSpace=-10]{Alegreya Bold}
\begin{document}
{\Large\titlingfont A HIDEOUS TITLE}
\Large\bfseries A HIDEOUS TITLE
\end{document}
您还可以\scalebox
使用graphicx
:
\documentclass{article}
\usepackage{fontspec}
\usepackage{graphicx}
\setmainfont[Ligatures=TeX]{Alegreya}
\newfontface{\titlingfont}[LetterSpace=-10]{Alegreya Bold}
\begin{document}
{\Large\titlingfont A HIDEOUS TITLE\par}
\scalebox{0.85}[1]{\Large\bfseries A HIDEOUS TITLE}
\end{document}
答案2
字母间距是非常糟糕的印刷习惯。我建议在宽处使用稍微线性的变形。
本题没有指定必须使用 LaTeX,所以我用了 plainTeX 方案,当然你也可以用 XeTeX。
\input opmac
\def\titlefont{\typosize[20/25]\bf}
\def\narrowerto #1\hbox#2{\hbox{\pdfsave
\pdfscale{#1}{1}\rlap{#2}\pdfrestore}}
\hbox{\titlefont This is text}
\bigskip
\narrowerto 0.95 \hbox{\titlefont This is text}
\end
您可以尝试运行xetex文档。
但如果您确实需要使用这种糟糕的印刷习惯,那么您可以尝试以下代码:
\input opmac
\def\letterspaced #1 #2{\def\tmpb{#2}%
\replacestrings{ }{\ }\replacestrings{}{\kern#1}\tmpb}
\def\titlefont{\typosize[20/25]\bf}
{\titlefont \letterspaced -1pt {This is text}}
\end
您可以尝试运行xetex文档。
答案3
如果它只是一个一次性的标题,并且您确定要这样做,只需手动定位它(如果您手写标题,无论如何都应该这样做)
\documentclass{article}
\begin{document}
\huge
This
T\hspace{-.09em}h\hspace{-.05em}i\hspace{-.06em}s
\end{document}