gpt4 book ai didi

latex - 根据使用的字体有条件地执行宏

转载 作者:行者123 更新时间:2023-12-01 22:41:30 25 4
gpt4 key购买 nike

我是&符号的忠实粉丝 - 以至于我听取了 SimpleBits 对 “use the best available ampersand” 的建议非常虔诚。

为此,我在 LaTeX 中定义了以下快捷方式:

\let\amp\&
\renewcommand\&{{\scalebox{1.2}{\textnormal{\fontspec{Baskerville}\itshape\amp}}}}

简而言之,这将“正常”&符号的所有用法更改为时尚的变体,例如:

This is a text \& it contains an ampersand.

(使用 \& 而不是仅仅 &,因为这就是 LaTeX 的工作方式 - 后者已经被保留用于表环境中的单独列。)

但是,它总是使用相同的字体 - 这里是 Baskerville - 无论它是否合适。我想根据所使用的字体系列使用不同的字体。也就是说,我想将另一个 & 符号与无衬线文本结合使用,特别是我想防止在等宽字体上下文中重写 & 符号。所以在下面两种情况下,我不想触发上面的定义:

{\sffamily a \& b}
{\ttfamily a \& b}

我该怎么做?

我想象如下:

\renewcommand\&{
\ifsans
{\fontspec{Trebuchet MS}{\textnormal{\itshape\amp}}}
\else
\ifmono
\amp
\else
{\fontspec{Baskerville}\scalebox{1.2}{\textnormal{\itshape\amp}}}
\fi
\fi}

最佳答案

它的工作方式如下:

\documentclass[letterpaper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage{german}
\usepackage{geometry}
\geometry{margin=2cm}
\newcommand*\origsffamily{}
\let\origsffamily\sffamily
\renewcommand*\sffamily{\origsffamily\small {\renewcommand\&{{\scalebox{1.2}{\textnormal{\fontspec{Baskerville}\itshape\amp}}}}}}

\begin{document}


hello, this is \& a \sffamily test \&


\end{document}

这意味着,您将 & 符号的更改包含到(在我的示例中)\sffamily 的定义中。

当然,缺点是您必须对所有所需的字体系列执行此操作。

关于latex - 根据使用的字体有条件地执行宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com