Lyx 中的参数化环境

Lyx 中的参数化环境

好的,我有一组结构化数据,我想对其进行一致的格式化。在本例中,是一组角色扮演游戏的咒语。现在在 Latex 中,我隐约记得我可以使用来做某事,\DeclareDocumentEnvironment但已经有一段时间了,我想在 LyX 中做这件事。

所以我希望我的最终文档看起来像:

火球

铸造成本:2CP
施法动作:立即的
范围:短时间
对目标造成 2d12 伤害

连锁闪电

铸造成本:每个目标 1CP
施法动作:立即的
范围:
链闪电击中目标。
所有目标必须彼此相距很近。
每个目标受到 1d6 伤害

我该如何设置这样的功能?我想在我的文档中实现一致的外观和格式。我需要一个采用多个参数的环境。

我以前只使用过 Lyx 的一些基本功能,比如用于输入数学运算的宏(虽然我经常使用这些功能_

答案1

我首先使用 LyX 的结果:

在此处输入图片描述

步骤 1:在 LaTeX 中创建带参数的环境(或命令)

LyX 是 LaTeX 的一种包装器。因此,需要用 LaTeX 编写环境(或命令),并使用简短的 LaTeX 文档对其进行测试。例外情况:您是 LaTeX 专家,能够编写无错误且文本布局完美的 LaTeX。;-)

限制在 LaTeX 环境(或命令)上,这样就可以容易地映射到 LyX 样式。

  • LaTeX 环境仅允许一个可选参数。
  • LaTeX 命令仅允许使用两个参数,其中一个是可选参数。

因此,对于您的情况,我将为标题创建一个样式(例如“MyTitle”),并为每个详细信息创建一个样式。最后几行可以是纯文本,因为似乎不需要特殊格式。

第 2 步:在 LyX 中创建风格

每个使用的环境(或命令)都必须有一个 LyX 样式。这些样式定义放在一个.module文件中。它应该放在layout主目录中 lyx-tree 的文件夹中。需要通知 LyX 有关新模块的信息。这可以通过运行ReconfigureLyX 菜单Tools并重新启动 LyX 来完成。最后,对于您的文档,在菜单 Document - Settings... - Modules 下添加新模块(示例中为“MyModule”)。现在可以选择新样式(例如“MyTitle”),类似于“Section”或“Itemize”。

注意:如果 LaTeX 环境(或命令)允许使用可选参数,则 LyX 会将其表示为“短标题”。(这可能是因为部分标题可以有可选参数,而其目的是作为短标题)。此外,LyX 将其映射到第一个 LaTeX 参数#1。普通文本映射到#2

如果不允许使用可选参数,则 LyX 将把普通文本映射到#1

LyX 安装文件夹lyx/layout包含大量样式、模块和布局定义的示例。LyX 部分Steve Litt 的《LyX、LaTeX 和 TeX》可能值得一读。


以下是步骤 1 的 LaTeX 文档:

\documentclass[12pt]{article}
\setlength{\parindent}{0pt}
\newcommand{\mytitle}[1]{\bigskip\noindent\textbf{\large #1}\par\medskip}
\newcommand{\budget}[2][Dollar~]{\noindent\textbf{Budget:} #1#2\par}
\begin{document}
\mytitle{A Beautiful Mind}\budget[\$]{58 million}
This movie is about John Nash.........
\end{document}

MyModule.module步骤 2 的模块文件。

#\DeclareLyXModule{MyModule}
#DescriptionBegin
#Defines some styles for movies.....
#DescriptionEnd
#Author: me

Format 35

Style MyTitle
    Category              MyModule
    Margin                Static
    LatexType             Command
    LatexName             mytitle
    NextNoIndent          1
    TopSep                1.3
    BottomSep             0.7
    Align                 Block
    Font
      Series              Bold
      Size                Larger
    EndFont
    OptionalArgs          0
    Preamble
      \newcommand{\mytitle}[1]{\bigskip\noindent\textbf{\large #1}\par\medskip}
    EndPreamble
End

Style Budget
    Category              MyModule
    LatexType             Command
    Margin                First_Dynamic
    LatexName             budget
    LabelType             Static
    LabelString           "Budget:"
    NextNoIndent          1
    LabelSep              xx
    ParIndent             MMM
    ParSkip               0.4
    ItemSep               0.2
    TopSep                0.7
    BottomSep             0.7
    ParSep                0.3
    Align                 Block
    AlignPossible         Left
    OptionalArgs          1
    LabelFont
      Shape               Up
      Series              Bold
    EndFont
    Preamble
      \newcommand{\budget}[2][Dollar~]{\noindent\textbf{Budget:} #1#2\par}
    EndPreamble
End

以及生成上述图像的 LyX 文档:

#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass article
\use_default_options true
\begin_modules
MyModule
\end_modules
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 12
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_amsmath 1
\use_esint 1
\use_mhchem 1
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation 0pt
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout MyTitle
A Beautiful Mind
\end_layout

\begin_layout Budget
\begin_inset Argument
status open

\begin_layout Plain Layout
$
\end_layout

\end_inset

58 million
\end_layout

\begin_layout Standard
This movie is about John Nash.........

\end_layout

\end_body
\end_document

相关内容