将单词全局设置为小写字母(或斜体)

将单词全局设置为小写字母(或斜体)

我正在使用 Lyx 和 Preamble。我正在做一个项目,其中缩写“hon.”需要全局设置为小写。(/sc)。尝试使用\renewcommand,没有成功。

例子

答案1

我想我知道你想要什么。在 LyX 中,输入文本“LyX”并导出为 pdf。你会看到它被自动格式化。这就是你想要的吗?

没有方便用户添加自己的特殊短语的方法,因为这些短语(还有“TeX”、“LaTeX2e”、“LaTeX”)是硬编码的。但是,如果您可以编译 LyX,那么添加自己的短语就非常容易了:

(1)编辑src/Paragraph.cpp数组,内容special_phrase如下:

special_phrase const special_phrases[] = {
        { "LyX", from_ascii("\\LyX{}"), false },
        { "TeX", from_ascii("\\TeX{}"), true },
        { "LaTeX2e", from_ascii("\\LaTeXe{}"), true },
        { "LaTeX", from_ascii("\\LaTeX{}"), true },
        { "hon.", from_ascii("\\hon{}"), false },
};

(1.5,可选)请注意,src/tex2lyx/text.cpp如果您导入带有“hon”的 tex 文件,您还应该进行更改。LyX 会不是尝试改变它。这很容易——只需将“hon。”添加到known_phrasesknown_coded_phrases数组中。

(2)(重新)编译。

(3)然后在你的序言中加上

\newcommand{\hon}{{\sc hon.}}

拥有一个中间人是个好主意,\hon{}因为这样你就可以轻松地在序言中更改它,而不必重新编译。

这应该可以满足您的要求。不过我不确定这是否是个好主意。请注意,如果您输入Mathew is planning to run a marathon.hon.仍将被替换为 。如果您足够快地发现该错误,则marathon.输入而不是marathon[put an empty ERT box here].,输出将符合预期。

上述方法的替代方法是使用 python 脚本。

答案2

可能最简单的方法是使用专门针对“hon.”的宏,无论它出现在何处。

\documentclass{standalone}
\newcommand\Hon{\textsc{hon.}}
\begin{document}
Surely, if the \Hon\ Member found himself in that position \emph{etc.}
\end{document}

注意宏后面的反斜杠\Hon。几乎(但不是全部)宏都会占用出现后的所有空格,包括任何由\newcommand或定义的空格(\renewcommand通常情况下)。宏后面的反斜杠会保留紧随其后的空格。

相关内容