可能的 CSS 类型特征?

可能的 CSS 类型特征?

大家好,我正在为我的十年级平面设计课做一个项目,我们必须用大号、粗体和大写字母写一个鼓舞人心的东西,我想知道在 TeX 中是否有一种方法可以制作一个预先确定的单词列表,并对其产生影响,有点像 CSS 之于 HTML,我制作那个列表并告诉它产生那些效果,每当我输入它们时,它们都会输出我告诉它的效果。这里有一个例子

你好怎么样你的希望如此伟大的

答案1

当然,这只是个玩笑。需要 XeLaTeX。

\documentclass{article}
\usepackage{fontspec}

\usepackage{xesearch}
\SearchList{upper}{\textbf{\MakeUppercase{#1}}}{hi,your,great,I}

\begin{document}

Hi, how was your day? I hope it was great.

\StopList{upper}

Hi, how was your day? I hope it was great.

\end{document}

在此处输入图片描述

答案2

这是一个完全不同的方法,它允许你对每个单词应用格式,即literate使用包裹listings

在此处输入图片描述

笔记:

  • 该解决方案与使用逐字环境的其他问题一样。

进一步增强:

  • 我使用尾随空格来检查匹配的单词是否正确,而不是单词的一部分。但是,这需要单独检查尾随标点符号。此处的某种正则表达式匹配会很有帮助。

代码:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\lstdefinestyle{FormattedNumber}{%
    literate={great }{\textcolor{blue}{GREAT }}{1}%
             {great.}{\textcolor{blue}{GREAT}.}{1}%
             {hi }{\textcolor{red}{HI }}{1}%
             {I }{\textcolor{orange}{I }}{1}%
             {your }{\textbf{YOUR }}{1}%
             ,
}
\newcommand{\CSS}[1]{%
    \lstinline[style=FormattedNumber]{#1}%
}

\begin{document}
    \CSS{hi how was your day I hope it was great.}
\end{document}

答案3

好吧,这里有一种方法可以解决这个问题:将所需的文本放在环境中并在排版之前对其进行预处理。但是,我还不确定这是否符合答案的条件,因为我认为它确实需要某种扩展魔法才能将宏应用于\textbf{}所需的单词——我无法让它工作。但目前这可以进行一些简单的文本替换:

在此处输入图片描述

笔记:

  • 我用了包裹environ它提供了一个环境,您可以通过访问环境的完整主体\BODY
  • 此版本需要在环境主体中仅包含纯文本。
  • 下面\protected@edef用于防止“避免发生不好的事情“正如大卫卡莱尔的评论。

进一步增强:

  • 弄清楚如何将宏应用到选定的单词。
  • 有一个单词列表和一个要应用于每个单词的特定宏,并使用一种\foreach循环来处理。不确定这是否更简单。
  • 我使用尾随空格来检查匹配的单词是否正确,而不是单词的一部分。但是,这需要单独检查尾随标点符号。此处的某种正则表达式匹配会很有帮助。

代码:

\documentclass{article}
\usepackage{xstring}
\usepackage{environ}

\makeatletter
\newcommand{\AlteredBody}{}
\NewEnviron{CSS}{
    \protected@edef\AlteredBody{\BODY}
    \StrSubstitute{\AlteredBody}{great }{GREAT }[\AlteredBody]
    \StrSubstitute{\AlteredBody}{great.}{GREAT.}[\AlteredBody]
    \StrSubstitute{\AlteredBody}{hi }{HI }[\AlteredBody]
    \StrSubstitute{\AlteredBody}{your }{YOUR }[\AlteredBody]
    \AlteredBody
}
\makeatother

\newcommand{\Text}{hi how was your day I hope it was great.}%

\begin{document}

\Text

\medskip
\begin{CSS}
    \Text
\end{CSS}
\end{document}

相关内容