不久前我偶然发现了semantic
包 --- 特别是它的‘数学连字符’功能 --- 以及我在 LaTeX 中编写数学代码的整个方式发生了改变。
代替
\[
\sem{\sigma}_s^x \quad \defeq \quad
\setbuild
{ \sigma' \subseteq \Sigma }
{ \exists s' \in S: \config{s, \sigma} \longrightarrow \cdots \longrightarrow
\config{s', \sigma'} \land x \in \sigma' }
\]
(已使用特定用途的宏进行清理)我现在可以写
\[
[[ \sigma ]]_s^x =def
\setbuild
{ \sigma' <=set \Sigma }
{ .E. s' .in. S: <( s, \sigma )> --> ... --> <( s', \sigma' )> .and. x .in. \sigma' }
\]
并得到相同的结果(根据要求提供MWE)。
问题:我想知道是否还有其他类似的软件包:使你的 (La)TeX 代码更易于阅读的软件包。(也许甚至可以替代它semantic
自己,因为说实话,那个软件包有点旧,而且有些地方有点问题。)
编辑:请注意,我感兴趣的是任何包旨在增强源代码的可读性。它不必像我的例子那样。
答案1
使用unicode进行数学运算可以大大提高可读性:
\SEM σ_s^x ≝
\SETBUILD
{ σ' ⊆ Σ }
{ ∃s' ∈ S: \CONFIG {s, σ} ⇒ \cdots ⇒ \CONFIG {s', σ'} ∧ x ∈ σ'}
如果您的编辑器支持键盘快捷键(例如,imap
vimIMAP
中的 或`a -> α
emacs 中的类型映射),那么输入 unicode 符号一点也不难。(甚至有一个 vim 插件,可以在您保存文件时将 LaTeX 数学转换为 Unicode 数学)。
我主要使用 ConTeXt,它开箱即用地支持 Unicode(和 Unicode 数学)。对于 LaTeX,您需要加载该unicode-math
包。
答案2
我发现源样本中参差不齐且长度不规则的源线非常令人分心。
如果消除这些干扰,我发现遵循代码会更容易。
\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
:76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye