我正在写一篇医学/生理学文章。
我之前是在 Microsoft Word 中撰写手稿,但最近发现 LaTeX 可以渲染数学方程式,而且效果非常好;因此我想学习如何在文本模式下使用 LaTeX 来撰写这篇文章。
这是我第一次尝试使用 LaTeX 文本模式。我在 Windows XP 笔记本电脑上运行 MiKTeX 2.9。
我的文章多次使用标准生理学术语来表示以下变量,例如:
F\textsubscript{I}O\textsubscript{2}
(或者$F_IO_2$
在数学模式下 - 但我知道这样使用是错误的,因为数学模式不应该用于呈现文本,并且会使下标变为斜体!)
...或 SI 单位,例如:
L min\textsuperscript{-1)
(或$L min^(-1)$
在数学模式中)
我已阅读新闻组上有关类似问题的其他讨论,并尝试使用插件mchem
作为解决方法;但这只能识别化学中使用的标准公式,而不是生理学中使用的标准公式。
\textsuperscript
我在文本中非常频繁地使用这些单位和变量。每次我想写单位时,或者\textsubscript
每次声明变量时,都写两次,肯定有一种比这更简单的方法!
使用 LaTeX 进行此练习的目的是摆脱 Microsoft Word 及其非标准嵌入控制字符的困扰。然而,到目前为止,我发现 LaTeX 中的等效命令不仅不易于使用,而且似乎需要花费更多时间和精力来编写!
是否有其他命令、宏或插件可以帮助我以最少的击键次数完成相同的工作?
答案1
我可能会定义内部实际使用的宏mhchem
(您在问题中提到过)来表示这些变量。为了方便起见,可以定义一个宏,通过键名来调用它们。如果我理解正确的话,分子式之前的变量部分应该用斜体排版吗?
对于@Joseph 的单位siunitx
来说这在我看来,这是一条可行的路。
也许是这样的:
\documentclass{article}
\usepackage{siunitx}
\usepackage[version=3]{mhchem}
\makeatletter
\newcommand*\DeclarePhysio[3]{\@namedef{#1}{\ensuremath{#2}\ce{#3}}}
\newcommand*\physio[1]{\@nameuse{#1}}
\makeatother
% \DeclarePhysio{<key>}{<var>}{<chem>}
\DeclarePhysio{FIO2}{F_I}{O2}
\DeclarePhysio{FEO2}{F_E}{O2}
\DeclarePhysio{PaCO2}{P_a}{CO2}
\begin{document}
\physio{FIO2} or \physio{FEO2} or \physio{PaCO2}
\SI{.5}{\liter\per\minute} or a standalone unit: \si{\newton\per\kilo\gram}
\end{document}
答案2
\textsubscript
使用 LaTeX,您可以通过多种方式定制工作环境以满足您的需求。如果您喜欢和的效果\textsuperscript
,您可以为它们定义快捷方式:
\let\tsub=\textsubscript
\let\tsup=\textsuperscript
然后,您就可以书写F\tsub{I}O\tsub{2}
更长的格式了。
除了使用 这样的名称\tsub
,您还可以使用标点符号(例如\.
)作为快捷方式的名称。但要小心,因为它们中的大多数已经具有含义,您迟早会需要它们。
或者,您可以重新定义_
和,^
以便它们\textsubscript/\textsuperscript
在文本模式下扩展为,但它们在数学模式下照常工作。这可能会导致各种并发症(例如,它可能会使某些包混淆),所以我建议坚持使用第一个选项。
为 LaTeX 定义自己的命令既简单又强大(用于\newcommand
不太琐碎的快捷方式),并且具有以下优点:如果您以后改变了对最佳命令或符号的想法(可能是由于评论中的某些建议),您可以重新定义快捷方式,而不必编辑文本中的每个用法。
除了上述方法之外,当上标或下标为单个符号时,还可以通过省略花括号来加快速度(众说纷纭这是否是好的 LaTeX “风格”,但如果你是唯一一个编辑文档的人,那么你就有充分的理由了。)如果你的快捷方式和下标或上标都是字母,你需要一个空格来分隔它们,例如F\tsub I
。但对于数字则不是这样;你可以写 F\tsub IO\tsub2
,你会得到与以前完全相同的结果。
答案3
我是的忠实粉丝\newcommand
,所以当我需要在文档中多次使用长命令时,我通常会定义一个编写时间更短的命令:
\newcommand{\mrm}{\mathrm}
这样您就可以编写\mrm{O_2}
production O 2,而不是 \mathrm{O_2}。如果您要编写的标题很长、您记不住年份等内容,这也非常有用。在序言中输入 `\newcommand{\ttl}{supercalifragilisticexpialidocious},当您编写 Mary Poppins 歌曲分析等内容时,它会为您省去很多麻烦。
请注意,LaTeX 中已经有很多命令,因此您可能会遇到错误。例如,如果您写入,\newcommand{\year}{1557}
您将收到一条错误消息,指出该命令已定义。明智的做法是尝试在命令中使用不同的缩写,例如 \newcommand{\yr}{1557};但是,如果您谨慎使用,也可以使用 \renewcommand{\year}{1557}。您可能并不总是知道 LaTeX 如何使用命令。如果您像\year
我上面那样重新定义,然后使用该\maketitle
命令,看起来就像您正在写一篇非常古老的论文,因为在标题的日期字段中\maketitle
使用了。\year
所有这些的重点是,如果你对 LaTeX 还不太熟悉,并且还没有被“事情必须按部就班”所困扰,正确的所有 LaTeX 用户最终都会遇到的“方法”错误(相信我,我自己就遇到过严重的错误),这\newcommand
为轻松快速的破解和解决方法提供了一些很好的可能性。