在 LyX 中使用带有可选参数的数学宏时,我遇到了问题。我想要一个间隔[a,b]
作为参数,我需要将其分组在花括号中,否则 LaTeX 会混淆括号,如下所述:LaTeX:带方括号的可选参数
但是,重新加载文档后, 分组括号(在 LyX 中输入为\
+ )消失了。 我在 Kubuntu 下使用 LyX 版本 2.0.6,在 Win7 下使用较新的版本 2.1.4。 例如,创建一个带有一个可选参数的数学宏,使用默认值扩展为。我在导出为 .tex 格式时得到此信息,该格式可以正确显示括号。{
\foo
#1---
x
%% LyX 2.1.4 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{xargs}[2008/03/08]
\usepackage{babel}
\begin{document}
\newcommandx\foo[1][usedefault, addprefix=\global, 1=x]{#1---}
$\foo$
$\foo[[a,b]]$
$\foo[{[a,b]}]$
\end{document}
但是,当重新加载 .lyx 文件时,它们就消失了。请注意,我没有导出并重新导入,而只是保存文件并再次打开。
关于如何让 LyX 保留括号,有什么想法吗?非常感谢您的帮助!
编辑:以下是 .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
\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 default
\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 default
\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 Standard
\begin_inset FormulaMacro
\newcommand{\foo}[1][x]{#1---}
\end_inset
\end_layout
\begin_layout Standard
Call without argument:
\end_layout
\begin_layout Standard
\begin_inset Formula $\foo$
\end_inset
\end_layout
\begin_layout Standard
Call with argument, without braces for grouping
\end_layout
\begin_layout Standard
\begin_inset Formula $\foo[[b,a,r]]$
\end_inset
\end_layout
\begin_layout Standard
Call with argument and braces that disappear on reloading
\end_layout
\begin_layout Standard
\begin_inset Formula $\foo[{[bar]}]$
\end_inset
\end_layout
\begin_layout Standard
Something with braces that do not disappear
\end_layout
\begin_layout Standard
\begin_inset Formula ${baz}$
\end_inset
\end_layout
\end_body
\end_document
在文件中,括号按预期保存,但如果我将其加载到 LyX 中,它们就会消失。
答案1
看来,当重新加载文件时,lyx 会忽略分组括号。当实际[
括号]
出现在可选参数中时,这是致命的。(这也应被视为 lyx 中的设计缺陷。)
(la)tex 提供了一对\lbrack
和\rbrack
来替代它们。最初的原因是适应没有方括号的键盘(有时当一种语言有很多重音字母时,是在键盘上),但对于这种情况最好还是记住这一点。