2019-04-07 19:09:56 +00:00
|
|
|
|
#LyX 2.4 created this file. For more info see https://www.lyx.org/
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\lyxformat 614
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_document
|
|
|
|
|
\begin_header
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\save_transient_properties true
|
|
|
|
|
\origin unavailable
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\textclass article
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\use_default_options false
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\maintain_unincluded_children no
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\language english
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\language_package default
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\inputencoding auto-legacy
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\fontencoding auto
|
|
|
|
|
\font_roman "default" "default"
|
|
|
|
|
\font_sans "default" "default"
|
|
|
|
|
\font_typewriter "default" "default"
|
|
|
|
|
\font_math "auto" "auto"
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\font_default_family default
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\use_non_tex_fonts false
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\font_sc false
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\font_roman_osf false
|
|
|
|
|
\font_sans_osf false
|
|
|
|
|
\font_typewriter_osf false
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\font_sf_scale 100 100
|
|
|
|
|
\font_tt_scale 100 100
|
|
|
|
|
\use_microtype false
|
|
|
|
|
\use_dash_ligatures true
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\graphics default
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\default_output_format default
|
|
|
|
|
\output_sync 0
|
|
|
|
|
\bibtex_command default
|
|
|
|
|
\index_command default
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\paperfontsize default
|
|
|
|
|
\use_hyperref false
|
|
|
|
|
\papersize default
|
|
|
|
|
\use_geometry false
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\use_package amsmath 1
|
|
|
|
|
\use_package amssymb 1
|
|
|
|
|
\use_package cancel 1
|
|
|
|
|
\use_package esint 1
|
|
|
|
|
\use_package mathdots 0
|
|
|
|
|
\use_package mathtools 1
|
|
|
|
|
\use_package mhchem 1
|
|
|
|
|
\use_package stackrel 1
|
|
|
|
|
\use_package stmaryrd 1
|
|
|
|
|
\use_package undertilde 1
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\cite_engine basic
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\cite_engine_type default
|
|
|
|
|
\biblio_style plain
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\use_bibtopic false
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\use_indices false
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\paperorientation portrait
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\suppress_date false
|
|
|
|
|
\justification true
|
|
|
|
|
\use_refstyle 0
|
|
|
|
|
\use_minted 0
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\use_lineno 0
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\index Index
|
|
|
|
|
\shortcut idx
|
|
|
|
|
\color #008000
|
|
|
|
|
\end_index
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\secnumdepth 3
|
|
|
|
|
\tocdepth 3
|
|
|
|
|
\paragraph_separation indent
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\paragraph_indentation default
|
|
|
|
|
\is_math_indent 0
|
|
|
|
|
\math_numbering_side default
|
|
|
|
|
\quotes_style english
|
|
|
|
|
\dynamic_quotes 0
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\papercolumns 1
|
|
|
|
|
\papersides 1
|
|
|
|
|
\paperpagestyle default
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\tablestyle default
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\tracking_changes false
|
|
|
|
|
\output_changes false
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\change_bars false
|
|
|
|
|
\postpone_fragile_content false
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\html_math_output 0
|
|
|
|
|
\html_css_as_file 0
|
|
|
|
|
\html_be_strict false
|
2023-01-07 23:50:18 +00:00
|
|
|
|
\docbook_table_output 0
|
|
|
|
|
\docbook_mathml_prefix 1
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\end_header
|
|
|
|
|
|
|
|
|
|
\begin_body
|
|
|
|
|
|
|
|
|
|
\begin_layout Title
|
|
|
|
|
Macro Testcases
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Simple macro definitions with position awareness:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\newcommand{\bla}{42}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\bla\mbox{ should look like }42
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
2023-01-07 23:50:18 +00:00
|
|
|
|
now redefined as
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\bla}{21}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
2023-01-07 23:50:18 +00:00
|
|
|
|
,
|
|
|
|
|
such that
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\bla\mbox{ should look like }21.
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Redefinitions of macros appearing in the definition of another macro:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\newcommand{\fooa}{x}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\newcommand{\foob}[1]{(#1\fooa)}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\fooa}{y}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
with the \SpecialChar TeX
|
|
|
|
|
code
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset listings
|
|
|
|
|
inline false
|
|
|
|
|
status open
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_layout Plain Layout
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\backslash
|
|
|
|
|
newcommand{
|
|
|
|
|
\backslash
|
|
|
|
|
fooa}{x}
|
|
|
|
|
\end_layout
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_layout Plain Layout
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\backslash
|
|
|
|
|
newcommand{
|
|
|
|
|
\backslash
|
|
|
|
|
foob}[1]{(#1
|
|
|
|
|
\backslash
|
|
|
|
|
fooa)}
|
|
|
|
|
\end_layout
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_layout Plain Layout
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\backslash
|
|
|
|
|
renewcommand{
|
|
|
|
|
\backslash
|
|
|
|
|
fooa}{y}
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
gives the following:
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foob{\fooa}\mbox{ should look like }(yy)
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Arity change:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\newcommand{\foo}{-}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[2]{(#1,#2)}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foo{abc}d\mbox{ should look like }(abc,d)\mbox{ if the second foo is there, otherwise like }-{abc}d
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Arity change with incomplete arguments at line end:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}{-}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[2]{(#1,#2)}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\frac{\foo{abc}{}}{1}\mbox{ should be }\frac{(abc,\,)}{1}\mbox{ if the second foo is defined. Otherwise }\frac{-{abc}{}}{1}
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Recursion:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\renewcommand{\foo}[1]{\foo{#1}{}}
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
.
|
2019-04-07 19:09:56 +00:00
|
|
|
|
The inner foo should not we resolved as \SpecialChar TeX
|
|
|
|
|
would give a infinite recursion.
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Recursive usage:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[3]{\frac{{\displaystyle #1}\,{\displaystyle #2}}{{\displaystyle #3}}}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
can be used to create tree-like structures like this one:
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foo{\foo{42}{\foo{asdf}{asdf}{asdf}}{21}}{\foo{asdf}{asdf}{asdf}}{asdf}.
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
|
|
|
|
Folding/Unfolding:
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[2]{<#1|#2>}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
.
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Start using Ctrl-+ and Ctrl– when you are inside of the macro to fold and unfold,
|
|
|
|
|
e.g.
|
2015-12-18 06:56:20 +00:00
|
|
|
|
here:
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foo{\foo{42}{12}}{\foo{21}4}.
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
2023-01-07 23:50:18 +00:00
|
|
|
|
Scripts:
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[3][A][B]{(#1,#2)#3}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foo[a]{}^{4}[b]c_{1}\mbox{ should look like }(a,B)\sqcup^{4}[b]c_{1}
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Formula
|
|
|
|
|
\[
|
|
|
|
|
\foo[a]c^{3}\mbox{ should look like }(a,B)c^{3}
|
|
|
|
|
\]
|
2015-12-18 06:56:20 +00:00
|
|
|
|
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
|
|
|
|
Multiple optional parameters:
|
|
|
|
|
\begin_inset FormulaMacro
|
|
|
|
|
\renewcommand{\foo}[3][a][b][c]{(#1,#2,#3)}
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 19:09:56 +00:00
|
|
|
|
\begin_inset Separator latexpar
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
2015-12-18 06:56:20 +00:00
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_deeper
|
|
|
|
|
\begin_layout Enumerate
|
|
|
|
|
\begin_inset Formula $\foo[][B]123\mbox{ should be }(a,B,c)123$
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\begin_layout Enumerate
|
|
|
|
|
\begin_inset Formula $\foo[][][C]123\mbox{ should be }(a,b,C)123$
|
|
|
|
|
\end_inset
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end_layout
|
|
|
|
|
|
|
|
|
|
\end_deeper
|
|
|
|
|
\end_body
|
|
|
|
|
\end_document
|