如何强制文本压缩

如何强制文本压缩

我有一个标题,用没有压缩字体的字体系列书写。但由于印刷原因,我仍然想让字母彼此更接近。

我找到了几种改变字母间距的方法:

  1. 使用soulutf8包:

    \sodef\cond{}{.01em}{.01em}{.01em}
    
  2. 使用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}

相关内容