背景

背景

背景

希望根据单词的宽度调整单词首字母的位置。

问题

计算类似于:

\define[1]\StyleChapterChar{%
  \cldcontext{string.sub("#1",1,1)}%
}

% Use a nested frame to keep the overlain large letter together with
% the chapter title.
\define[1]\StyleChapter{%
  \StyleChapterFramed{%
    \framed[align=right, frame=off]{%
      \startoverlay
        \color[blue]{%
          \StyleChapterChar{#1}%
        }
        \vskip-1.9em\hskip\dimexpr\averagecharwidth*33/10#1
      \stopoverlay
    }
  }
}

这里,3.3 * \averagecharwidth用于偏移文本。这会导致单词中强调的第一个字符的水平偏移在 和 之间变化很大AI我想要用3.3 * \averagecharwidth使用字符宽度的计算(例如3.3 * \charwidth{\StyleChapterChar})替换此计算()

问题

当您不知道该字符是什么时,如何获取单个字符的宽度?

想法

到目前为止我已经尝试了一些方法:

\define[1]\StyleChapterCharWidth{
  \dimexpr\fontcharwd\font`#1
}

\define[1]\StyleChapterCharWidth{
  \fontcharwd\font`#1
}

反引号(`)字符似乎表示下一个字符应按字面意思处理。

有关的

答案1

使用 Aditya 的线索:

\define[1]\StyleChapterChar{%
  \cldcontext{string.sub("#1",1,1)}%
}

\define[1]\StyleChapter{%
  \StyleChapterFramed{%
    \framed[align=right, frame=off]{%
      \startoverlay
        % Calculate the offset of the large letter based on the width of
        % the character. This allows the font to change without significantly
        % affecting the distance between the emphasized first character of the
        % chapter title and the complete chapter title.
        \setbox\scratchbox\hbox{%
          \StyleFontChapterCharacter\StyleChapterChar{#1}}%
        % Shift the first character back relative to the chapter title.
        \hskip-.55\wd\scratchbox%
        \color[blue]{%
          \StyleFontChapterCharacter%
          \StyleChapterChar{#1}%
        }
        \vskip-1.9em
        #1
      \stopoverlay
    }
  }
}

相关内容