所以我知道要写\LaTeX
才能得到符号,但是有没有办法逐个字母地写,以使第一个字母变粗?
答案1
注意:这里有一个类似的问题和答案: 给 \LaTeX word 中的每个字母上色
您可以在\TeX
(这真的,真的\LaTeX
\LaTeXe
latex.ltx
奇怪;-) )
最简单的方法是使用定义并将它们保存为新命令,\BLaTeX
例如Bold \LaTeX
;-)
但是,最初的字距是错误的,因此我稍微做了一些修改——如果给出的示例不太符合个人品味,请提供自己的字距值。
\documentclass{article}
\usepackage{xcolor}
\makeatletter
\newcommand{\Lletterstyle}[1]{%
\textcolor{red}{\textbf{#1}}%
}
\DeclareRobustCommand{\BLaTeX}{\Lletterstyle{L}\kern-.35em%
{\sbox\z@ T%
\vbox to\ht\z@{\hbox{\check@mathfonts
\fontsize\sf@size\z@
\math@fontsfalse\selectfont
A}%
\vss}%
}%
\kern-.15em%
\TeX%
}
\DeclareRobustCommand{\BLaTeXe}{\mbox{\m@th
\if b\expandafter\@car\f@series\@nil\boldmath\fi
\BLaTeX\kern.15em2$_{\textstyle\varepsilon}$}}
\makeatother
\begin{document}
\BLaTeX\ or \LaTeX
\BLaTeXe\ or \LaTeXe
Huge:\huge
\BLaTeX\ or \LaTeX
\BLaTeXe\ or \LaTeXe
\end{document}
答案2
您可以对包进行小小的扩展metalogo
,这样您就可以选择不同的首字母“L”。
\documentclass{article}
\usepackage{metalogo}
\usepackage{xpatch}
\makeatletter
\newcommand{\setLaTeXL}[1]{\def\xl@LaTeXL{#1}}
\xpatchcmd{\LaTeX}{L}{\xl@LaTeXL}{}{}
\makeatother
% initialize
\setLaTeXL{L}
\newcommand{\BLaTeX}{{\setLaTeXL{\textbf{L}}\LaTeX}}
\begin{document}
\LaTeX \BLaTeX \LaTeX
\setLaTeXL{\textbf{L}}
\LaTeX
\setLaTeXL{{\usefont{U}{rsfso}{m}{n}L}}
\setlogokern{La}{-.2em}
\LaTeX
\end{document}
如您所见,这些命令遵循通常的作用域规则。如果您想要全局重新定义,请\setLaTeXL{\textbf{L}}
在序言中发出。否则,请\BLaTeX
按所示定义,您将获得两个版本。