我正在使用 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_phrases
和known_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
通常情况下)。宏后面的反斜杠会保留紧随其后的空格。