基于 LaTeX 宏的 LaTeMplate 宏

基于 LaTeX 宏的 LaTeMplate 宏

我正在尝试制作另一个类似 LaTeX 的宏。它应该完全基于原始的 LaTeX 组合,并进行一点小改动,然后就可以正常工作。长话短说,它没有。由于我对 LaTeX 和 TeX 宏中所有那些花哨的命令不太了解,所以我向你求助。我想要做的就是将 TeX 的 X 改为 M。后面跟着一个 MWE。

source2e.pdf 中的原始定义已被注释掉,但本质上,这是我试图使其工作的。好吧,我这样做的方式是一种糟糕的解决方法,因为它(几乎)适合标题,但我想在我的花哨标题中显示我的作品,当然,那里的 A 太大了。所以我需要使用原始定义,它使用相对大小,不能只使用漂亮的 raisebox 解决方法。

\documentclass{article}
\usepackage{lipsum}

%\def\latemplate{L\kern-.36em{\sbox\z@ T\vbox to\ht\z@{\hbox{\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont A}\vss}}\kern -.15emT\kern-.1667em\lower.5ex\hbox{E}\kern-.125emMplate\@}

\def\latemplate{L\kern-.3em\raisebox{.5ex}{\large A}\kern-.14emT\kern-.1667em\lower.5ex\hbox{E}\kern-.125emMplate\@}

\usepackage{fontspec}
\setmainfont{Linux Libertine O}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\footnotesize\latemplate}

\title{\latemplate{} fo' ma momma}

\begin{document}

\maketitle

\clearpage

\section{first section}

\lipsum[1]

\end{document}

文档标题看起来不错:

在此处输入图片描述

标题不太一样:

在此处输入图片描述

答案1

诀窍是根据当前字体大小计算较小的字体,这是通过\check@mathfonts和使用来完成的\sf@size

以下参数是为 Libertinus Serif(Linux Libertine 的后继者)定制的,其他字体将需要不同的值。请调整它们以适应。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Libertinus Serif}

\makeatletter
\DeclareRobustCommand{\LaTeMplate}{%
  L\kern-.27em
  {\sbox\z@ T%
   \vbox to\ht\z@{\hbox{%
     \check@mathfonts\fontsize\sf@size\z@
     \math@fontsfalse\selectfont
     A%
   }\vss}%
  }%
  \kern-.12em
  T\kern-.12em
  \lower.35ex\hbox{E}\kern-.125em Mplate%
}
\makeatother

\begin{document}

\LaTeMplate

{\footnotesize\LaTeMplate}

{\Large\LaTeMplate}

\end{document}

在此处输入图片描述

相关内容