diff options
author | Karl Berry <karl@freefriends.org> | 2024-06-14 21:41:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-06-14 21:41:45 +0000 |
commit | b18eebf8c60c2aaf7ab3d69c6293c41f903590c8 (patch) | |
tree | 8fd8be23fca6f9134f86f6501028469a69a1ece7 /Master/texmf-dist/tex/latex | |
parent | 67f2d087cbd99f34d7b14172eb033b9362513306 (diff) |
thermodynamics (14jun24)
git-svn-id: svn://tug.org/texlive/trunk@71522 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/thermodynamics/thermodynamics.sty | 957 |
1 files changed, 784 insertions, 173 deletions
diff --git a/Master/texmf-dist/tex/latex/thermodynamics/thermodynamics.sty b/Master/texmf-dist/tex/latex/thermodynamics/thermodynamics.sty index 87c22917702..fd2de467bb8 100644 --- a/Master/texmf-dist/tex/latex/thermodynamics/thermodynamics.sty +++ b/Master/texmf-dist/tex/latex/thermodynamics/thermodynamics.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2022-2023 by Karl D. Hammond +%% Copyright (C) 2022-2024 by Karl D. Hammond %% %% Karl D. Hammond, %% Department of Chemical Engineering @@ -25,8 +25,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesPackage{thermodynamics} - [2023/12/05 v2.01 thermodynamics notation] -%%^^A = C_i \gammamol_i \Henrymol_i + [2024/06/14 v2.02 thermodynamics notation] \ExplSyntaxOn \cs_generate_variant:Nn \tl_if_eq:nnTF { xxTF } \RequirePackage{amstext} @@ -91,7 +90,9 @@ \tl_gset:Nn \g__thermodynamics_internal_energy_symbol U \tl_gset:Nn \g__thermodynamics_Helmholtz_symbol A \tl_gset:Nn \g__thermodynamics_Gibbs_symbol G -\tl_gset:Nn \g__thermodynamics_Landau_symbol \Omega +\cs_if_exist:NTF \Omegait +{ \tl_gset:Nn \g__thermodynamics_Landau_symbol \Omegait } +{ \tl_gset:Nn \g__thermodynamics_Landau_symbol \Omega } \tl_gset:Nn \g__thermodynamics_enthalpy_symbol H \tl_gset:Nn \g__thermodynamics_entropy_symbol S \tl_gset:Nn \g__thermodynamics_area_symbol a @@ -203,7 +204,14 @@ } \cs_new:Npn \__thermodynamics_set_extensive_superscripts { - \cs_set:Nn \__thermodynamics_extensive:n {{##1}\c_math_superscript_token t} + \cs_set:Nn \__thermodynamics_extensive_one:n + { \c_math_superscript_token {##1\l__thermodynamics_super_separator_tl t} } + \cs_set:Nn \__thermodynamics_extensive:n + { + \peek_catcode_remove:NTF \c_math_superscript_token + { ##1 \__thermodynamics_extensive_one:n } + { ##1 \c_math_superscript_token t } + } \cs_set:Nn \__thermodynamics_intensive:n {##1} } \DeclareOption{extensive-plain}{\__thermodynamics_set_extensive_plain} @@ -212,40 +220,39 @@ \__thermodynamics_set_intensive_lowercase \AtEndOfPackage{ \__thermodynamics_set_lowercase_pms - \RenewDocumentCommand{\heatcapacitysymbol}{}{c} } } \DeclareOption{extensive-superscript}{% \__thermodynamics_set_extensive_superscripts - \AtEndOfPackage{% - \RenewDocumentCommand{\URt}{}{\g__thermodynamics_internal_energy_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\HRt}{}{\g__thermodynamics_enthalpy_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\FRt}{}{\g__thermodynamics_Helmoholtz_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\GRt}{}{\g__thermodynamics_Gibbs_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\VRt}{}{\g__thermodynamics_volume_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\SRt}{}{\g__thermodynamics_entropy_symbol - \c_math_superscript_token{\residual,t}} - \RenewDocumentCommand{\UEt}{}{\g__thermodynamics_internal_energy_symbol - \c_math_superscript_token{\excess,t}} - \RenewDocumentCommand{\HEt}{}{\g__thermodynamics_enthalpy_symbol - \c_math_superscript_token{\excess,t}} - \RenewDocumentCommand{\FEt}{}{\g__thermodynamics_Helmoholtz_symbol - \c_math_superscript_token{\excess,t}} - \RenewDocumentCommand{\GEt}{}{\g__thermodynamics_Gibbs_symbol - \c_math_superscript_token{\excess,t}} - \RenewDocumentCommand{\VEt}{}{\g__thermodynamics_volume_symbol - \c_math_superscript_token{\excess,t}} - \RenewDocumentCommand{\SEt}{}{\g__thermodynamics_entropy_symbol - \c_math_superscript_token{\excess,t}} - } -} -%%^^A \[ \left(\frac{\partial U}{\partial S}\right)_V \quad\text{versus}\quad -%%^^A \left(\frac{\partial U(S,V)}{\partial S}\right) \] +} +\bool_new:N \l__thermodynamics_longpm_bool +\DeclareOption{longpm}{\bool_set_true:N \l__thermodynamics_longpm_bool} +\cs_set_eq:NN \__thermodynamics_overline_copy:n \__thermodynamics_overline:n +\DeclareOption{shortpm}{ + \bool_set_false:N \l__thermodynamics_longpm_bool + \AtEndOfPackage{ + \RenewDocumentCommand{\cPpm}{} + { + \cs_set:Nn \__thermodynamics_overline:n {##1} + \partialmolar{\cPpmshort} + } + \RenewDocumentCommand{\cVpm}{} + { + \cs_set:Nn \__thermodynamics_overline:n {##1} + \partialmolar{\cVpmshort} + } + } +} +\NewDocumentEnvironment{thermolongpm}{}{% + \bool_set_true:N \l__thermodynamics_longpm_bool +}{} +\NewDocumentEnvironment{thermoshortpm}{}{% + \bool_set_false:N \l__thermodynamics_longpm_bool + \RenewSubscriptedSymbol{\cPpm}{\__thermodynamics_overline:n \heatcapacitysymbol} + {\g__thermodynamics_pressure_symbol} + \RenewSubscriptedSymbol{\cVpm}{\__thermodynamics_overline:n \heatcapacitysymbol} + {\g__thermodynamics_volume_symbol} +}{} \bool_new:N \l__thermodynamics_subscripted_bool \bool_set_true:N \l__thermodynamics_subscripted_bool \DeclareOption{subscripts}{\bool_set_true:N \l__thermodynamics_subscripted_bool} @@ -338,48 +345,339 @@ } } \DeclareOption{Bejan}{ - \ExecuteOptions{EUFGHAN,intensive-lowercase,delta} - \cs_set:Nn \__thermodynamics_specific:n {\text_lowercase:n {#1}} - \cs_set:Nn \__thermodynamics_intensive:n {\bar{\text_lowercase:n {#1}}} - \tl_gset:Nn \g__thermodynamics_volume_symbol v + \ExecuteOptions{EUFGHAN,intensive-lowercase,delta,shortpm} + \AtEndOfPackage{ + \cs_set:Nn \__thermodynamics_specific:n {\text_lowercase:n {#1}} + \cs_set:Nn \__thermodynamics_intensive:n {\bar{\text_lowercase:n {#1}}} + \cs_set:Nn \__thermodynamics_extensive:n {\text_uppercase:n {#1}} + \tl_gset:Nn \g__thermodynamics_volume_symbol v + \RenewExpandableDocumentCommand{\ncomponents}{}{n} + \RenewSubscriptedSymbol{\Lt}{\g__thermodynamics_Helmholtz_symbol}{\mu} + \RenewSubscriptedSymbol{\Lm} + {\bar{\text_lowercase:n \g__thermodynamics_Helmholtz_symbol}}{\mu} + \RenewSubscriptedSymbol{\Ls} + {\text_lowercase:n \g__thermodynamics_Helmholtz_symbol}{\mu} + \cs_new:Npn \Delta_vap_sym {} {} + \NewSubscriptedSymbol{\Delta_vap}{\Delta_vap_sym}{{fg}} + \RenewDocumentCommand{\Deltavap}{m}{ + \cs_set:Npn \Delta_vap_sym {} {#1} + \Delta_vap + } + \cs_new:Npn \Delta_fus_sym {} {} + \NewSubscriptedSymbol{\Delta_fus}{\Delta_fus_sym}{{sf}} + \RenewDocumentCommand{\Deltafus}{m}{ + \cs_set:Npn \Delta_fus_sym {} {#1} + \Delta_fus + } + \cs_new:Npn \Delta_sub_sym {} {} + \NewSubscriptedSymbol{\Delta_sub}{\Delta_sub_sym}{{sg}} + \RenewDocumentCommand{\Deltasub}{m}{ + \cs_set:Npn \Delta_sub_sym {} {#1} + \Delta_sub + } + \RenewExpandableDocumentCommand{\heatcapacitysymbol}{}{c} + \RenewSubscriptedSymbol{\cV}{\__thermodynamics_intensive:n {\heatcapacitysymbol}} + {\text_lowercase:n \g__thermodynamics_volume_symbol} + \RenewSubscriptedSymbol{\cVt}{\__thermodynamics_extensive:n {\heatcapacitysymbol}} + {\text_uppercase:n \g__thermodynamics_volume_symbol} + \RenewSubscriptedSymbol{\cVpm}{\heatcapacitysymbol} + {\text_lowercase:n \g__thermodynamics_volume_symbol} + \RenewSubscriptedSymbol{\cPpm}{\heatcapacitysymbol} + {\text_lowercase:n \g__thermodynamics_pressure_symbol} + \RenewExpandableDocumentCommand{\xrxn}{}{\zeta} + \RenewDocumentCommand{\fmix}{}{f} + \RenewDocumentCommand{\Qm}{}{Q} + \RenewDocumentCommand{\Qs}{}{Q} + \RenewExpandableDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewExpandableDocumentCommand{\expansivitysymbol}{}{\beta} + \RenewExpandableDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewSubscriptedSymbol{\muJT}{\JTsymbol}{J} + \RenewDocumentCommand{\Deltaf}{m} + { \tl_set:Nn \l__thermodynamics_Deltaf_sym_tl {#1} \__thermodynamics_Deltaf } + \RenewDocumentCommand{\Pstd}{}{P\c_math_subscript_token 0} + \RenewDocumentCommand{\Wm}{}{W} + \RenewDocumentCommand{\Ws}{}{W} + \cs_new:Nn \__thermodynamics_fpure_one:n + { + f\c_math_subscript_token{#1} + \peek_catcode_remove:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \RenewDocumentCommand{\fpure}{} + { + \peek_catcode_remove:NTF \c_math_subscript_token + { \__thermodynamics_fpure_one:n } + { f } + } + \cs_new:Nn \__thermodynamics_phipure_one:n + { + \phi\c_math_subscript_token{#1} + \peek_catcode:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \RenewDocumentCommand{\phipure}{} + { + \peek_catcode_remove:NTF \c_math_subscript_token + { + \__thermodynamics_phipure_one:n + } + {\phi} + } + \RenewDocumentCommand{\phimix}{}{\phi} + } } \DeclareOption{CBK}{ - \ExecuteOptions{EUAGHAN,intensive-lowercase} + \ExecuteOptions{EUAGHAN,intensive-lowercase,delta,shortpm} \AtEndOfPackage{ - \cs_set:Nn \__thermodynamics_overline:n {\widetilde{#1}} + \cs_set:Nn \__thermodynamics_overline:n {\widetilde #1} + \cs_set:Nn \__thermodynamics_overline_copy:n {\widetilde #1} \cs_set:Nn \__thermodynamics_specific:n {\text_lowercase:n {#1}} \cs_set:Nn \__thermodynamics_intensive:n {\bar{\text_lowercase:n{#1}}} + \tl_gset:Nn \g__thermodynamics_area_symbol A + \RenewExpandableDocumentCommand{\reaction}{}{R} + \cs_new:Npn \Delta_vap_sym {} {} + \NewSubscriptedSymbol{\Delta_vap}{\Delta_vap_sym}{{fg}} + \RenewDocumentCommand{\Deltavap}{m}{ + \cs_set:Npn \Delta_vap_sym {} {#1} + \Delta_vap + } + \cs_new:Npn \Delta_fus_sym {} {} + \NewSubscriptedSymbol{\Delta_fus}{\Delta_fus_sym}{{sf}} + \RenewDocumentCommand{\Deltafus}{m}{ + \cs_set:Npn \Delta_fus_sym {} {#1} + \Delta_fus + } + \cs_new:Npn \Delta_sub_sym {} {} + \NewSubscriptedSymbol{\Delta_sub}{\Delta_sub_sym}{{sg}} + \RenewDocumentCommand{\Deltasub}{m}{ + \cs_set:Npn \Delta_sub_sym {} {#1} + \Delta_sub + } \tl_gset:Nn \g__thermodynamics_pressure_symbol p - \RenewDocumentCommand{\Deltarxn}{m}{{#1}\c_math_subscript_token R} - \RenewDocumentCommand{\compressibilitysymbol}{}{\beta} - \RenewDocumentCommand{\expansivitysymbol}{}{\alpha} + \RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\alpha} + \RenewExpandableDocumentCommand{\expansivitysymbol}{}{\beta} + \RenewExpandableDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewExpandableDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewSuperscriptedSymbol{\Psat}{P}{v} + \RenewDocumentCommand{\Deltaf}{m} + { \tl_set:Nn \l__thermodynamics_Deltaf_sym_tl {#1} + \__thermodynamics_Deltaf + } + \RenewDocumentCommand{\Pstd}{}{P\c_math_subscript_token 0} + \RenewDocumentCommand{\Lm}{}{\__thermodynamics_intensive:n\omega} + \RenewDocumentCommand{\Ls}{}{\__thermodynamics_specific:n\omega} } } \DeclareOption{ElliottLira}{ + \ExecuteOptions{shortpm} \AtEndOfPackage{ + \cs_gset_eq:NN \__thermodynamics_specific:n \__thermodynamics_intensive:n + %^^A\RenewDocumentCommand{\partialmolar}{m}{\__thermodynamics_overline:n #1} \RenewDocumentCommand{\allcomponents}{O{} m}{#2} \RenewDocumentCommand{\Deltarxn}{m}{\Delta #1} - \RenewDocumentCommand{\IG}{}{{\text{ig}}} - \RenewDocumentCommand{\IGM}{}{{\text{ig}}} - \RenewDocumentCommand{\IS}{}{{\text{is}}} + \RenewDocumentCommand{\fusion}{}{{fus}} + \RenewDocumentCommand{\sublimation}{}{{sub}} + \RenewDocumentCommand{\vaporization}{}{{vap}} + \RenewDocumentCommand{\sat}{}{{sat}} + %^^A\RenewSubscriptedSymbol{\Henrymol}{/K}{H} %^^A FIXME + \RenewDocumentCommand{\IG}{}{{ig}} + \RenewDocumentCommand{\IGM}{}{{ig}} + \RenewDocumentCommand{\IS}{}{{is}} + \RenewDocumentCommand{\Cstd}{}{m\c_math_superscript_token \std} + \RenewDocumentCommand{\muJT}{}{\mu\c_math_subscript_token{JT}} + } +} +\DeclareOption{KlotzRosenberg}{ + \ExecuteOptions{delta} + \AtEndOfPackage{ + \tl_set:Nn \l__thermodynamics_sub_separator_tl {} + \cs_set:Nn \__thermodynamics_extensive:n {#1} + \cs_new:Nn \__thermodynamics_intensive_one:n + { + \c_math_superscript_token {#1} + \peek_catcode_remove:NTF \c_math_subscript_token + { \__thermodynamics_intensive_three:n } + { \c_math_subscript_token{\mathrm{m}} } + } + \cs_new:Nn \__thermodynamics_intensive_three:n + { \c_math_subscript_token{\mathrm{m}\l__thermodynamics_sub_separator_tl #1} } + \cs_new:Nn \__thermodynamics_intensive_two:n + { + \c_math_subscript_token{\mathrm{m}\l__thermodynamics_sub_separator_tl #1} + \peek_catcode:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \cs_set:Nn \__thermodynamics_intensive:n + { + #1 + \peek_catcode_remove:NTF \c_math_superscript_token + { \__thermodynamics_intensive_one:n } + { \peek_catcode_remove:NTF \c_math_subscript_token + { \__thermodynamics_intensive_two:n } + { \c_math_subscript_token{\mathrm{m}} } + } + } + \cs_new:Nn \__thermodynamics_fpure_one:n + { + f\c_math_subscript_token{#1} + \peek_catcode_remove:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \RenewDocumentCommand{\fpure}{} + { + \peek_catcode_remove:NTF \c_math_subscript_token + { \__thermodynamics_fpure_one:n } + { f } + } + \cs_new:Nn \__thermodynamics_phipure_one:n + { + \gamma\c_math_subscript_token{#1} + \peek_catcode_remove:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \RenewDocumentCommand{\phipure}{} + { + \peek_catcode_remove:NTF \c_math_subscript_token + { \__thermodynamics_phipure_one:n } + { \gamma } + } + \RenewDocumentCommand{\fmix}{}{f} + \RenewDocumentCommand{\phimix}{}{\gamma} + \RenewDocumentCommand{\phisat}{}{\gamma^\sat} + \cs_if_exist:NTF \gammaup + { \RenewDocumentCommand{\gamma}{}{\gammaup} } + { \cs_if_exist:NT \upgamma + { \RenewDocumentCommand{\gamma}{}{\upgamma} } + } + \RenewDocumentCommand{\gammarat}{}{\gamma} + \RenewDocumentCommand{\gammamol}{}{\gamma} + \cs_if_exist:NTF \muup + {\RenewDocumentCommand{\mu}{}{\muup}} + {\cs_if_exist:NT \upmu + {\RenewDocumentCommand{\mu}{}{\upmu}} + } + \cs_if_exist:NTF \alphaup + {\RenewExpandableDocumentCommand{\expansivitysymbol}{}{\alphaup}} + {\cs_if_exist:NTF \upalpha + {\RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\alphaup}} + {\RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\alpha}} + } + \cs_if_exist:NTF \betaup + {\RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\betaup}} + {\cs_if_exist:NTF \upbeta + {\RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\betaup}} + {\RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\beta}} + } + \cs_if_exist:NTF \xiup + {\RenewDocumentCommand{\xrxn}{}{\xiup}} + {\cs_if_exist:NT \upxi + {\RenewDocumentCommand{\xrxn}{}{\upxi}} + } + \RenewDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewSubscriptedSymbol{\muJT}{\JTsymbol}{\text{J.T.}} + \RenewDocumentCommand{\Deltarxn}{m}{\Delta #1} + \RenewDocumentCommand{\Deltaf}{}{\Delta\c_math_subscript_token\formation} + \RenewDocumentCommand{\Deltafus}{}{\Delta} + \RenewDocumentCommand{\Deltavap}{}{\Delta} + \RenewDocumentCommand{\Deltasub}{}{\Delta} + \RenewDocumentCommand{\Deltamix}{m}{ + \tl_set:Nn \l__thermodynamics_sub_separator_tl {,} + \Delta #1\c_math_subscript_token{\mixing} + } + \RenewDocumentCommand{\excess}{}{{\mathrm{E}}} + \RenewDocumentCommand{\residual}{}{{\mathrm{R}}} + \cs_set:Nn \__thermodynamics_overline:n {#1} + \RenewDocumentCommand{\IS}{}{{\mathrm{I}}} + \RenewDocumentCommand{\Psat}{} + { + \peek_catcode:NTF \c_math_subscript_token + {p\c_math_superscript_token\bullet} + {p} + } + \RenewDocumentCommand{\Cstd}{}{m^\std} + \RenewDocumentCommand{\Henryrat}{}{k} + \RenewDocumentCommand{\Henrymol}{}{k''} + + % Fix partial molar properties + \cs_set:Npn \__thermodynamics_pm_case_one #1 + { + \l__thermodynamics_pm_symbol_tl\c_math_subscript_token{\mathrm{m}#1} + } + \cs_set:Npn \__thermodynamics_pm_case_two [#1]#2 + { + \l__thermodynamics_pm_symbol_tl + \c_math_superscript_token{#1}\c_math_subscript_token{\mathrm{m}#2} + } + \cs_set:Npn \__thermodynamics_pm_case_three_part_two #1 + { + \l__thermodynamics_pm_symbol_tl + \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} + \c_math_subscript_token{\mathrm{m}#1} + } + \cs_set:Npn \__thermodynamics_pm_case_four #1 + { + \l__thermodynamics_pm_symbol_tl\c_math_superscript_token{#1} + \c_math_subscript_token{\mathrm{m}\l__thermodynamics_pm_arg_tl} + } + \cs_set:Npn \__thermodynamics_pm_case_five + { + \l__thermodynamics_pm_symbol_tl + \c_math_subscript_token{\mathrm{m}\l__thermodynamics_pm_arg_tl} + } + + % fix heat capacities + \RenewSubscriptedSymbol{\cP}{\heatcapacitysymbol} + {\g__thermodynamics_pressure_symbol\mathrm{m}} + \RenewSubscriptedSymbol{\cV}{\heatcapacitysymbol} + {\g__thermodynamics_volume_symbol\mathrm{m}} + \RenewDocumentCommand{\cPpm}{}{\partialmolar{\cPt}} + \RenewDocumentCommand{\cVpm}{}{\partialmolar{\cVt}} + + \cs_set:Npn \cP_two:n #1 + { \heatcapacitysymbol + \c_math_subscript_token{\g__thermodynamics_pressure_symbol\mathrm{m} + \l__thermodynamics_sub_separator_tl #1} + \peek_catcode:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + \cs_set:Npn \cV_two:n #1 + { \heatcapacitysymbol + \c_math_subscript_token{\g__thermodynamics_volume_symbol\mathrm{m} + \l__thermodynamics_sub_separator_tl #1} + \peek_catcode:NF \c_math_superscript_token + { \c_math_superscript_token\bullet } + } + } + \AtBeginDocument{ + \@ifpackageloaded{emf}{\RenewDocumentCommand{\Epot}{}{\emf}} + {% + \PackageWarningNoLine{thermodynamics} + {Package~emf~not~loaded;~load~to~make~Epot~match~Klotz~ + and~Rosenberg's~notation}% + } } } \DeclareOption{Koretsky}{ - \ExecuteOptions{EUAGHAn,brackets,intensive-lowercase,delta} + \ExecuteOptions{EUAGHAn,brackets,intensive-lowercase,delta,shortpm} \AtEndOfPackage{ - %^^A Undo part of intensive-lowercase + \tl_gset:Nn \g__thermodynamics_area_symbol {A} + \RenewExpandableDocumentCommand{\std}{}{o} + \RenewExpandableDocumentCommand{\ncomponents}{}{m} \RenewDocumentCommand{\partialmolar}{m} - { \tl_set:Nn \l__thermodynamics_pm_symbol_tl {#1} + { + \tl_set:Nn \l__thermodynamics_pm_symbol_tl {#1} \__thermodynamics_generic_pm: } \RenewDocumentCommand{\expansivitysymbol}{}{\beta} \RenewDocumentCommand{\IS}{}{{\text{ideal}}} \RenewDocumentCommand{\residual}{}{{\text{dep}}} - \RenewDocumentCommand{\IG}{}{{\text{ideal}}} + \RenewDocumentCommand{\IG}{}{{\text{ideal~gas}}} \RenewDocumentCommand{\IGM}{}{{\text{ideal}}} \RenewDocumentCommand{\Henryrat}{}{{\mathcal{H}}} \RenewDocumentCommand{\gammarat}{} {\gamma\c_math_superscript_token\text{Henry's}} + \RenewDocumentCommand{\gammamol}{}{\gamma\c_math_superscript_token{m}} \RenewDocumentCommand{\phipure}{}{\varphi} \RenewDocumentCommand{\phimix}{}{\hat\varphi} \RenewDocumentCommand{\phisat}{}{\varphi\c_math_superscript_token\sat} @@ -397,19 +695,100 @@ } \cs_new:Npn \Delta_sub_sym {} {} \NewSubscriptedSymbol{\Delta_sub}{\Delta_sub_sym}{\sublimation} - %^^A Undo part of intensive-lowercase \RenewDocumentCommand{\Deltasub}{m}{ \cs_set:Npn \Delta_sub_sym {} { \Delta #1 } \Delta_sub } + \tl_new:N \l__thermodynamics_Deltaf_superscript_tl + \tl_new:N \l__thermodynamics_Deltaf_subscript_tl + \bool_new:N \l__thermodynamics_Deltaf_parentheses_bool + \tl_new:N \l__thermodynamics_Deltaf_entity_tl + \cs_set:Nn \__thermodynamics_Deltaf_one:n + { + \tl_set:Nn \l__thermodynamics_Deltaf_superscript_tl {#1} + \peek_catcode_remove:NTF \c_math_subscript_token + { + \bool_set_true:N \l__thermodynamics_Deltaf_parentheses_bool + \__thermodynamics_Deltaf_two:n + } + { + \bool_if:NTF \l__thermodynamics_Deltaf_parentheses_bool + { + (\Delta\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + ) + \tl_if_empty:NF \l__thermodynamics_Deltaf_subscript_tl + { \c_math_subscript_token\l__thermodynamics_Deltaf_subscript_tl } + } + { + \Delta\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + } + } + } + \cs_set:Nn \__thermodynamics_Deltaf_two:n + { + \tl_set:Nn \l__thermodynamics_Deltaf_subscript_tl {#1} + % check for case 4 + \peek_catcode_remove:NTF \c_math_superscript_token + { \__thermodynamics_Deltaf_one:n } + { + \bool_if:NTF \l__thermodynamics_Deltaf_parentheses_bool + { + (\Delta\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + {\c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl} + ) + \tl_if_empty:NF \l__thermodynamics_Deltaf_subscript_tl + \c_math_subscript_token\l__thermodynamics_Deltaf_subscript_tl + } + { + \Delta\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + {\c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl} + } + } + } + \RenewDocumentCommand{\Deltaf}{m} + { + \tl_clear:N \l__thermodynamics_Deltaf_superscript_tl + \tl_clear:N \l__thermodynamics_Deltaf_subscript_tl + \tl_set:Nn \l__thermodynamics_Deltaf_entity_tl {#1} + \bool_set_false:N \l__thermodynamics_Deltaf_parentheses_bool + \peek_catcode_remove:NTF \c_math_superscript_token + { + \__thermodynamics_Deltaf_one:n + } + { + \peek_catcode_remove:NTF \c_math_subscript_token + { + \bool_set_true:N \l__thermodynamics_Deltaf_parentheses_bool + \__thermodynamics_Deltaf_two:n + } + { + \Delta #1\c_math_subscript_token \formation + } + } + } + \RenewDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewSubscriptedSymbol{\cV}{\__thermodynamics_intensive:n \heatcapacitysymbol} + {\__thermodynamics_intensive:n \g__thermodynamics_volume_symbol} + \RenewSubscriptedSymbol{\cVs}{\__thermodynamics_specific:n \heatcapacitysymbol} + {\__thermodynamics_intensive:n \g__thermodynamics_volume_symbol} + \RenewDocumentCommand{\Lm}{}{\omega} + \RenewDocumentCommand{\Ls}{}{\hat\omega} } } \DeclareOption{MSBB}{ - \ExecuteOptions{EUFGHAn,intensive-lowercase,delta} + \ExecuteOptions{EUFGHAn,intensive-lowercase,delta,shortpm} \AtEndOfPackage{ - \RenewDocumentCommand{\IGM}{}{\ast} + \RenewDocumentCommand{\IGM}{}{\ast} % FIXME: is this * or \circ? \RenewDocumentCommand{\IG}{}{\ast} \RenewDocumentCommand{\expansivitysymbol}{}{\beta} + \RenewDocumentCommand{\muJT}{}{\mu\c_math_subscript_token J} \RenewDocumentCommand{\allcomponents}{O{} m}{#2} \RenewDocumentCommand{\allbut}{O{j} m m} { @@ -419,29 +798,114 @@ } \tl_gset_eq:NN \g__thermodynamics_Helmholtz_symbol \psi \RenewDocumentCommand{\Ft}{}{\Psi} + \RenewDocumentCommand{\Fpm}{}{\partialmolar{\Psi}} \cs_set:Nn \__thermodynamics_intensive:n {\__thermodynamics_overline:n{\text_lowercase:n{#1}}} \cs_set:Nn \__thermodynamics_specific:n {\text_lowercase:n{#1}} \RenewDocumentCommand{\fmix}{}{\bar f} \RenewDocumentCommand{\phimix}{}{\bar\phi} \RenewDocumentCommand{\phimix}{}{\bar\phi} \tl_gset:Nn \g__thermodynamics_pressure_symbol p + \tl_gset:Nn \g__thermodynamics_volume_symbol v \RenewDocumentCommand{\partialmolar}{m} { - \tl_set:Nn \l__thermodynamics_pm_symbol_tl {#1} + \tl_set:Nn \l__thermodynamics_pm_symbol_tl {\text_uppercase:n #1} \__thermodynamics_generic_pm: } + \RenewDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewDocumentCommand{\mustd}{}{\Gm^\std} + \RenewExpandableDocumentCommand{\formation}{}{{\mathrm{f}}} + \RenewDocumentCommand{\Pstd}{} + {\g__thermodynamics_pressure_symbol\c_math_subscript_token\text{ref}} + \RenewExpandableDocumentCommand{\xrxn}{}{\varepsilon} + \RenewExpandableDocumentCommand{\Lm}{}{\__thermodynamics_intensive:n \omega} + \RenewExpandableDocumentCommand{\Ls}{}{\__thermodynamics_specific:n \omega} + \RenewExpandableDocumentCommand{\heatcapacitysymbol}{}{C} + \tl_new:N \l__thermodynamics_Deltaf_superscript_tl + \tl_new:N \l__thermodynamics_Deltaf_subscript_tl + \bool_new:N \l__thermodynamics_Deltaf_parentheses_bool + \tl_new:N \l__thermodynamics_Deltaf_entity_tl + \cs_set:Nn \__thermodynamics_Deltaf_one:n + { + \tl_set:Nn \l__thermodynamics_Deltaf_superscript_tl {#1} + \peek_catcode_remove:NTF \c_math_subscript_token + { + \bool_set_true:N \l__thermodynamics_Deltaf_parentheses_bool + \__thermodynamics_Deltaf_two:n + } + { + \bool_if:NTF \l__thermodynamics_Deltaf_parentheses_bool + { + (\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + ) + \tl_if_empty:NF \l__thermodynamics_Deltaf_subscript_tl + { \c_math_subscript_token\l__thermodynamics_Deltaf_subscript_tl } + } + { + \l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token{\formation} + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + } + } + } + \cs_set:Nn \__thermodynamics_Deltaf_two:n + { + \tl_set:Nn \l__thermodynamics_Deltaf_subscript_tl {#1} + % check for case 4 + \peek_catcode_remove:NTF \c_math_superscript_token + { \__thermodynamics_Deltaf_one:n } + { + \bool_if:NTF \l__thermodynamics_Deltaf_parentheses_bool + { + (\l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + ) + \tl_if_empty:NF \l__thermodynamics_Deltaf_subscript_tl + { \c_math_subscript_token\l__thermodynamics_Deltaf_subscript_tl } + } + { + \l__thermodynamics_Deltaf_entity_tl\c_math_subscript_token\formation + \tl_if_empty:NF \l__thermodynamics_Deltaf_superscript_tl + { \c_math_superscript_token\l__thermodynamics_Deltaf_superscript_tl } + } + } + } + \RenewDocumentCommand{\Deltaf}{m} + { + \tl_clear:N \l__thermodynamics_Deltaf_superscript_tl + \tl_clear:N \l__thermodynamics_Deltaf_subscript_tl + \tl_set:Nn \l__thermodynamics_Deltaf_entity_tl {#1} + \bool_set_false:N \l__thermodynamics_Deltaf_parentheses_bool + \peek_catcode_remove:NTF \c_math_superscript_token + { + \__thermodynamics_Deltaf_one:n + } + { + \peek_catcode_remove:NTF \c_math_subscript_token + { + \bool_set_true:N \l__thermodynamics_Deltaf_parentheses_bool + \__thermodynamics_Deltaf_two:n + } + { + \Delta #1\c_math_subscript_token \formation + } + } + } } } \DeclareOption{Prausnitz}{ - \ExecuteOptions{intensive-lowercase} + \ExecuteOptions{intensive-lowercase,shortpm} \AtEndOfPackage{ + \RenewExpandableDocumentCommand{\ncomponents}{}{m} \RenewDocumentCommand{\fmix}{}{f} - \RenewDocumentCommand{\phimix}{}{\phi} \RenewDocumentCommand{\fsat}{}{\fpure\c_math_superscript_token\sat} - % TODO: this should pick up H_2 and make it into H_{2,1} (assuming the - % solvent is always 1...?) + % TODO: this should pick up H_2 and make it into H_{2,1} (assuming + % the solvent is always 1...?) \RenewDocumentCommand{\Henryrat}{}{H} - \RenewDocumentCommand{\residual}{}{{{\mathcal{R}}}} + %^^A\RenewDocumentCommand{\residual}{}{{{\mathcal{R}}}} \RenewDocumentCommand{\allcomponents}{O{i} m} { {#2}\c_math_subscript_token{#1} } \RenewDocumentCommand{\allbut}{O{i} m m} @@ -449,14 +913,36 @@ { {#3}\c_math_subscript_token k } { {#3}\c_math_subscript_token{#1} } } + \tl_set:Nn \l__thermodynamics_sub_separator_tl {\,} + \tl_gset:Nn \g__thermodynamics_pressure_symbol {p} + \tl_gset:Nn \g__thermodynamics_volume_symbol {v} \RenewSubscriptedSymbol{\fpure}{f}{{\text{pure}}} - \RenewSubscriptedSymbol{\phipure}{\phi}{{\text{pure}}} + \RenewDocumentCommand{\phimix}{}{\varphi} + \RenewDocumentCommand{\phisat}{}{\varphi^\sat} + \RenewDocumentCommand{\sat}{}{s} + \RenewDocumentCommand{\mixing}{}{\text{mixing}} + \RenewDocumentCommand{\Lm}{}{\omega} + \RenewDocumentCommand{\Ls}{}{\__thermodynamics_specific:n \omega} + \RenewSubscriptedSymbol{\phipure}{\varphi}{{\text{pure}}} + \RenewDocumentCommand{\IG}{}{{\text{id}}} + \RenewDocumentCommand{\IGM}{}{{\text{id}}} + \RenewDocumentCommand{\IS}{}{{\text{(ideal)}}} + \RenewExpandableDocumentCommand{\compressibilitysymbol}{}{\beta} + \RenewDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewExpandableDocumentCommand{\std}{}{0} + \@ifpackageloaded{emf} + {\RenewDocumentCommand{\Epot}{}{\emf}} + {\RenewDocumentCommand{\Epot}{}{\mathcal{E}}} + \DeclareMathAlphabet{\mathdutchcal}{U}{dutchcal}{m}{n} + \RenewExpandableDocumentCommand{\actrel}{}{\mathdutchcal{a}} } } \DeclareOption{Sandler}{ - \ExecuteOptions{EUAGHaN,extensive-plain} + \ExecuteOptions{EUAGHaN,extensive-plain,shortpm} \AtEndOfPackage{ - \RenewDocumentCommand{\sat}{}{{\text{vap}}} + \RenewDocumentCommand{\Pvap}{} + {{P\c_math_superscript_token{\text{vap}}}} \RenewDocumentCommand{\excess}{}{{\text{ex}}} \RenewDocumentCommand{\residual}{}{{\text{r}}} \RenewExpandableDocumentCommand{\ncomponents}{}{\mathcal{C}} @@ -477,6 +963,12 @@ {\Delta\c_math_subscript_token\fusion #1} \RenewDocumentCommand{\Deltavap}{m} {\Delta\c_math_subscript_token\vaporization #1} + \RenewDocumentCommand{\Pstd}{}{\text{1~bar} + \peek_catcode_remove:NT \c_math_subscript_token {\use_none:n} + } + \RenewDocumentCommand{\Cstd}{}{\text{1~molal} + \peek_catcode_remove:NT \c_math_subscript_token {\use_none:n} + } \RenewDocumentCommand{\Henryrat}{}{H} \RenewSubscriptedSymbol{\cV} {\heatcapacitysymbol}{\g__thermodynamics_volume_symbol} @@ -486,10 +978,16 @@ {\Nt\heatcapacitysymbol}{\g__thermodynamics_volume_symbol} \RenewSubscriptedSymbol{\cPt} {\Nt\heatcapacitysymbol}{\g__thermodynamics_pressure_symbol} + \RenewDocumentCommand{\formation}{}{\mathrm{f}} + \RenewDocumentCommand{\Deltaf}{} + {\Delta\c_math_subscript_token\formation} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewDocumentCommand{\muJT}{}{\mu} + \RenewDocumentCommand{\xrxn}{}{X} } } \DeclareOption{SVNAS}{ - \ExecuteOptions{extensive-superscript} + \ExecuteOptions{extensive-superscript,shortpm} \AtEndOfPackage{ \RenewDocumentCommand{\allcomponents}{O{} m}{#2} \RenewDocumentCommand{\allbut}{O{j} m m} @@ -501,17 +999,44 @@ \RenewDocumentCommand{\IG}{}{{ig}} \RenewDocumentCommand{\IGM}{}{{ig}} \RenewDocumentCommand{\IS}{}{{id}} + \RenewDocumentCommand{\IS}{}{{id}} + \RenewDocumentCommand{\fusion}{}{{sl}} + \RenewDocumentCommand{\vaporization}{}{{vl}} + \RenewDocumentCommand{\sublimation}{}{{vs}} \RenewDocumentCommand{\expansivitysymbol}{}{\beta} + \RenewDocumentCommand{\xrxn}{}{\varepsilon} \RenewDocumentCommand{\Deltarxn}{m}{\Delta #1} + \RenewDocumentCommand{\Deltamix}{m}{\Delta #1} \RenewSubscriptedSymbol{\cVt} {\Nt\heatcapacitysymbol}{\g__thermodynamics_volume_symbol} \RenewSubscriptedSymbol{\cPt} {\Nt\heatcapacitysymbol}{\g__thermodynamics_pressure_symbol} + % FIXME + \RenewDocumentCommand{\cP}{} + {{\heatcapacitysymbol\c_math_subscript_token\g__thermodynamics_pressure_symbol}} + \RenewDocumentCommand{\cV}{} + {{\heatcapacitysymbol\c_math_subscript_token\g__thermodynamics_volume_symbol}} + \RenewDocumentCommand{\kappaT}{}{\compressibilitysymbol} + \RenewDocumentCommand{\alphaP}{}{\expansivitysymbol} + \RenewDocumentCommand{\muJT}{}{\mu} + \RenewDocumentCommand{\Cstd}{}{m\c_math_superscript_token\std + \peek_catcode_remove:NT \c_math_subscript_token {\use_none:n} + } + \RenewDocumentCommand{\mustd}{}{\Gm\c_math_superscript_token\std} + \RenewDocumentCommand{\Henryrat}{}{\mathcal{H}} + \RenewDocumentCommand{\formation}{} + { + \tl_set:Nn \l__thermodynamics_sub_separator_tl {} + f298 + } + \cs_set:Nn \__thermodynamics_specific:n {#1} } } +\DeclareOption{ModellReid}{\ExecuteOptions{TesterModell}} \DeclareOption{TesterModell}{ - \ExecuteOptions{EUAGHaN,delta} + \ExecuteOptions{EUAGHaN,delta,shortpm} \AtEndOfPackage{ + \cs_set:Nn \__thermodynamics_specific:n {\text_lowercase:n{#1}} \RenewExpandableDocumentCommand{\ncomponents}{}{n} \RenewDocumentCommand{\allcomponents}{O{i} m} { @@ -538,23 +1063,62 @@ \RenewDocumentCommand{\Henryrat}{} {f\c_math_superscript_token{\ast\ast}} \RenewDocumentCommand{\Henrymol}{}{f\c_math_superscript_token\ast} + \cs_if_exist:NTF \gammaup + { \RenewDocumentCommand{\gamma}{}{\gammaup} } + { \cs_if_exist:NT \upgamma + { \RenewDocumentCommand{\gamma}{}{\upgamma} } + } \RenewDocumentCommand{\gammarat}{} {\gamma\c_math_superscript_token{\ast\ast}} \RenewDocumentCommand{\gammamol}{} {\gamma\c_math_superscript_token\ast} \RenewExpandableDocumentCommand{\JTsymbol}{}{\alpha} \RenewSubscriptedSymbol{\muJT}{\JTsymbol}{H} + \cs_if_exist:NTF \xiup + { \RenewDocumentCommand{\xrxn}{}{\xiup} } + { \cs_if_exist:NT \upxi + { \RenewDocumentCommand{\xrxn}{}{\upxi} } + } + \cs_if_exist:NTF \phiup + { + \RenewDocumentCommand{\phipure}{}{\phiup} + \RenewDocumentCommand{\phimix}{}{\hat\phiup} + \RenewDocumentCommand{\phisat}{}{\phiup\c_math_superscript_token\sat} + } + { \cs_if_exist:NT \upphi + { + \RenewDocumentCommand{\phipure}{}{\upphi} + \RenewDocumentCommand{\phimix}{}{\hat\upphi} + \RenewDocumentCommand{\phisat}{}{\upphi\c_math_superscript_token\sat} + } + } + \RenewDocumentCommand{\Cstd}{}{m\c_math_superscript_token+ + \peek_catcode_remove:NT \c_math_subscript_token {\use_none:n} + } + \cs_if_exist:NTF \muup + { \RenewDocumentCommand{\mu}{}{\muup} } + { \cs_if_exist:NT \upmu + { \RenewDocumentCommand{\mu}{}{\upmu} } + } + \RenewDocumentCommand{\std}{}{o} + \RenewDocumentCommand{\Pstd}{}{P^\ast} + \tl_gset:Nn \g__thermodynamics_area_symbol {\text{\large\(\mathit{a}\)}} + \RenewDocumentCommand{\Epot}{}{\exists} + \tl_set:Nn \l__thermodynamics_sub_separator_tl {} + \tl_gset:Nn \g__thermodynamics_pressure_symbol {p} + \RenewSubscriptedSymbol{\cVt}{\__thermodynamics_extensive:n {\heatcapacitysymbol}}{v} + \RenewSubscriptedSymbol{\cV}{\__thermodynamics_intensive:n {\heatcapacitysymbol}}{v} + \RenewSubscriptedSymbol{\cVs}{\__thermodynamics_specific:n {\heatcapacitysymbol}}{v} } } \DeclareOption{Thompson}{ - \ExecuteOptions{EUAGHAn,delta} + \ExecuteOptions{EUAGHAn,delta,shortpm} \AtEndOfPackage { \RenewDocumentCommand{\excess}{}{{EX}} \RenewDocumentCommand{\residual}{}{{R}} - %^^A He uses k_H for both types of Henry's constant, but I changed - %^^A the rational basis one just so there is SOME difference - \RenewSubscriptedSymbol{\Henryrat}{k}{h} + \RenewDocumentCommand{\actrel}{}{\widehat{a}} + \RenewSubscriptedSymbol{\Henryrat}{k}{H} \RenewSubscriptedSymbol{\Henrymol}{k}{H} \RenewDocumentCommand{\allcomponents}{O{j} m} { @@ -591,7 +1155,8 @@ } } \cs_set:Nn \__thermodynamics_intensive:n - { #1 + { + #1 \peek_catcode_remove:NT \c_math_subscript_token { \__thermodynamics_intensive_two:n } } @@ -609,10 +1174,16 @@ } {\phi} } + \RenewDocumentCommand{\phimix}{}{\widehat\phi} + \RenewDocumentCommand{\fmix}{}{\widehat f} \RenewDocumentCommand{\mixing}{}{{MIX}} + \RenewDocumentCommand{\muJT}{}{\alpha\c_math_subscript_token H} \RenewDocumentCommand{\Deltamix}{m} {\Delta\c_math_subscript_token\mixing #1} - \RenewDocumentCommand{\Deltarxn}{m}{\Delta #1} + \RenewDocumentCommand{\reaction}{}{R} + \RenewDocumentCommand{\fusion}{}{{SL}} + \RenewDocumentCommand{\vaporization}{}{{LV}} + \RenewDocumentCommand{\sublimation}{}{{SV}} \RenewDocumentCommand{\allbut}{O{j} m m} { \tl_if_eq:nnTF {#1} {#2} { @@ -622,9 +1193,13 @@ {#3}\c_math_subscript_token{#1}\neq{#3}\c_math_subscript_token{#2} } } + \RenewDocumentCommand{\Cstd}{}{m^\std} + \RenewDocumentCommand{\mustd}{}{\Gamma} + \RenewDocumentCommand{\formation}{}{F} } } -\ExecuteOptions{EUAGHan,subscripts,parentheses,intensive-plain,moles-index} +\ExecuteOptions{EUAGHan,subscripts,parentheses,intensive-plain, + moles-index,longpm} \ProcessOptions \tl_const:Nn \c__thermodynamics_sort_order_tl {\Et\Em\Es\Ut\Um\Us\Ht\Hm\Hs\Ft\Fm\Fs\Gt\Gm\Gs\Lt\Lm\Ls T\St\Sm\Ss @@ -883,8 +1458,8 @@ \AtBeginDocument{% \@ifpackageloaded{amsmath}{}{% \PackageWarningNoLine{thermodynamics} - {Package~amsmath~not~loaded;~load~to~make~PartialBigg~and~friends - ~work~correctly}% + {Package~amsmath~not~loaded;~load~to~make~PartialBigg~and~friends~ + work~correctly}% \cs_set_eq:NN \PartialBigg \Partial \cs_set_eq:NN \Partialbigg \Partial \cs_set_eq:NN \PartialSecondBigg \PartialSecond @@ -984,13 +1559,13 @@ \__thermodynamics_set_extensive_superscripts } {} +\str_new:N \l__thermodynamics_tmp_str \cs_new:Npn \__thermodynamics_check_definable:nN #1#2 { - \bool_set_true:N \l__thermodynamics_arg_legal_bool \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nTF { - \str_set:Nx \l_tmp_str {\tl_to_str:n {#1}} - \int_compare:nNnT {\str_count:N \l_tmp_str} = 1 + \str_set:Nx \l__thermodynamics_tmp_str {\tl_to_str:n {#1}} + \int_compare:nNnT {\str_count:N \l__thermodynamics_tmp_str} = 1 { \PackageError{thermodynamics} {First~argument~of~'\tl_trim_spaces:o {\tl_to_str:n {#2}}'~ must~be~a~command} @@ -1011,6 +1586,10 @@ \MessageBreak Perhaps~a~backslash~is~missing?} } } +\tl_new:N \l__thermodynamics_super_separator_tl +\tl_new:N \l__thermodynamics_sub_separator_tl +\tl_set:Nn \l__thermodynamics_super_separator_tl {,} +\tl_set:Nn \l__thermodynamics_sub_separator_tl {,} \NewDocumentCommand{\NewSubscriptedSymbol}{m m m} { \__thermodynamics_check_definable:nN {#1} \NewSubscriptedSymbol @@ -1030,10 +1609,10 @@ } \cs_new:cpn {\cs_to_str:N #1_two:n} ##1 - { {#2}\c_math_subscript_token{#3,##1} } + { {#2}\c_math_subscript_token{#3\l__thermodynamics_sub_separator_tl ##1} } \cs_new:cpn {\cs_to_str:N #1_three:n} ##1 - { \c_math_subscript_token{#3,##1} } + { \c_math_subscript_token{#3\l__thermodynamics_sub_separator_tl ##1} } \NewDocumentCommand{#1}{} {% @branch @@ -1064,10 +1643,10 @@ } \cs_set:cpn {\cs_to_str:N #1_two:n} ##1 - { {#2}\c_math_subscript_token{#3,##1} } + { {#2}\c_math_subscript_token{#3\l__thermodynamics_sub_separator_tl ##1} } \cs_set:cpn {\cs_to_str:N #1_three:n} ##1 - { \c_math_subscript_token{#3,##1} } + { \c_math_subscript_token{#3\l__thermodynamics_sub_separator_tl ##1} } \RenewDocumentCommand{#1}{} {% @branch @@ -1078,7 +1657,6 @@ { {#2}\c_math_subscript_token{#3} } } } - } \NewDocumentCommand{\NewSuperscriptedSymbol}{m m m} { @@ -1099,10 +1677,10 @@ } \cs_new:cpn {\cs_to_str:N #1_two:n} ##1 - { {#2}\c_math_superscript_token{#3,##1} } + { {#2}\c_math_superscript_token{#3\l__thermodynamics_super_separator_tl ##1} } \cs_new:cpn {\cs_to_str:N #1_three:n} ##1 - { {#2}\c_math_superscript_token{#3,##1} } + { {#2}\c_math_superscript_token{#3\l__thermodynamics_super_separator_tl ##1} } \NewDocumentCommand{#1}{} { @@ -1133,10 +1711,10 @@ } \cs_set:cpn {\cs_to_str:N #1_two:n} ##1 - { {#2}\c_math_superscript_token{#3,##1} } + { {#2}\c_math_superscript_token{#3\l__thermodynamics_super_separator_tl ##1} } \cs_set:cpn {\cs_to_str:N #1_three:n} ##1 - { \c_math_superscript_token{#3,##1} } + { \c_math_superscript_token{#3\l__thermodynamics_super_separator_tl ##1} } \RenewDocumentCommand{#1}{} {% @branch @@ -1148,6 +1726,53 @@ } } } +\cs_new:Nn \__thermodynamics_subscripted_and_superscripted_core:nnnn +{ + \cs_set:cpn {\cs_to_str:N #1_one:n} ##1 + { + {#2}\c_math_superscript_token{##1} + \peek_catcode_remove:NTF \c_math_subscript_token + { \use:c {\cs_to_str:N #1_three:n} } + { \c_math_subscript_token{#3} } + } + \cs_set:cpn {\cs_to_str:N #1_two:n} ##1 + { + {#2}\c_math_subscript_token{#3 ##1} + \peek_catcode_remove:NTF \c_math_superscript_token + { \use:c {\cs_to_str:N #1_four:n} } + { \c_math_superscript_token{#4 \bullet} } + } + \cs_set:cpn {\cs_to_str:N #1_three:n} ##1 + { \c_math_subscript_token{#3 ##1} } + \cs_set:cpn {\cs_to_str:N #1_four:n} ##1 + { \c_math_superscript_token{#4 ##1} } +} +\NewDocumentCommand{\NewSubscriptedandSuperscriptedSymbol}{m m m m} +{ + \__thermodynamics_check_definable:nN {#1} \NewSubscriptedandSuperscriptedSymbol + \cs_if_exist:NT #1 + { \PackageError{thermodynamics} + {Command~'\tl_trim_spaces:o {\tl_to_str:n {#1}}'~already~defined} + {You~have~used~ + '\tl_trim_spaces:o + {\tl_to_str:n {\NewSubscriptedandSuperScriptedSymbol}}'~ + with~a~command~that~already~has~a~definition} + } + \__thermodynamics_subscripted_and_superscripted_core:nnnn {#1} {#2} {#3} {#4} + \NewDocumentCommand{#1}{} + { + \peek_catcode_remove:NTF \c_math_superscript_token + { \use:c {\cs_to_str:N #1_one:n} } + { \peek_catcode_remove:NTF \c_math_subscript_token + { \use:c {\cs_to_str:N #1_two:n} } + { {#2}\c_math_subscript_token{#3}\c_math_superscript_token{#4} } + } + } +} +\NewDocumentCommand{\RenewSubscriptedandSuperscriptedSymbol}{m m m m} +{ + \__thermodynamics_check_definable:nN {#1} \RenewSubscriptedandSuperscriptedSymbol +} \NewExpandableDocumentCommand{\heatcapacitysymbol}{}{C} \NewExpandableDocumentCommand{\compressibilitysymbol}{}{\kappa} \NewExpandableDocumentCommand{\expansivitysymbol}{}{\alpha} @@ -1170,7 +1795,7 @@ {\g__thermodynamics_entropy_symbol} \NewSubscriptedSymbol{\alphaP}{\expansivitysymbol}{\g__thermodynamics_pressure_symbol} \NewSubscriptedSymbol{\alphaS}{\expansivitysymbol}{\g__thermodynamics_entropy_symbol} -\NewSubscriptedSymbol{\muJT}{\JTsymbol}{JT} +\NewSubscriptedSymbol{\muJT}{\JTsymbol}{\text{JT}} \NewDocumentCommand{\sat}{}{{\text{sat}}} \NewDocumentCommand{\Psat}{}{P\c_math_superscript_token\sat} \NewDocumentCommand{\Pvap}{}{\Psat} @@ -1178,15 +1803,24 @@ \NewDocumentCommand{\fsat}{}{\fpure\c_math_superscript_token\sat} \NewDocumentCommand{\std}{}{\circ} \NewDocumentCommand{\Pstd}{}{P\c_math_superscript_token \std} +\NewDocumentCommand{\Cstd}{}{C\c_math_superscript_token \std} \NewDocumentCommand{\fstd}{}{f\c_math_superscript_token \std} +\NewDocumentCommand{\mustd}{}{\mu\c_math_superscript_token \std} +\NewDocumentCommand{\xrxn}{}{\xi} +\NewDocumentCommand{\fmix}{}{\hat{f}} +\NewDocumentCommand{\phimix}{}{\hat\phi} +\NewDocumentCommand{\fpure}{}{f} +\NewDocumentCommand{\phipure}{}{\phi} +\NewExpandableDocumentCommand{\actabs}{}{\lambda} +\NewExpandableDocumentCommand{\actrel}{}{a} \NewDocumentCommand{\mixing}{}{{\text{mix}}} \NewDocumentCommand{\Deltamix}{m} {\Delta{#1}\c_math_subscript_token\mixing} +\NewDocumentCommand{\formation}{}{f} \NewDocumentCommand{\fusion}{}{{\text{fus}}} \NewDocumentCommand{\reaction}{}{{\text{rxn}}} \NewDocumentCommand{\sublimation}{}{{\text{sub}}} \NewDocumentCommand{\vaporization}{}{{\text{vap}}} -\NewDocumentCommand{\formation}{}{f} \NewDocumentCommand{\Deltafus}{m} {\Delta #1\c_math_superscript_token\fusion} \NewDocumentCommand{\Deltasub}{m} @@ -1194,17 +1828,25 @@ \NewDocumentCommand{\Deltavap}{m} {\Delta #1\c_math_superscript_token\vaporization} \NewDocumentCommand{\Deltarxn}{m} - {\Delta #1\c_math_subscript_token\reaction} +{ + \cs_set:Npn \__thermodynamics_Deltarxn_one ##1 + { + \Delta #1\c_math_subscript_token{\reaction,##1} + } + \peek_catcode_remove:NTF \c_math_subscript_token + { + \__thermodynamics_Deltarxn_one + } + { + \Delta #1\c_math_subscript_token{\reaction} + } +} \tl_new:N \l__thermodynamics_Deltaf_sym_tl -\NewSubscriptedSymbol{\__thermodynamics_Deltaf}{\l__thermodynamics_Deltaf_sym_tl}{f} +\NewSubscriptedSymbol{\__thermodynamics_Deltaf}{\l__thermodynamics_Deltaf_sym_tl}{\formation} \NewDocumentCommand{\Deltaf}{m} { \tl_set:Nn \l__thermodynamics_Deltaf_sym_tl {\Delta #1} \__thermodynamics_Deltaf } -\NewDocumentCommand{\fmix}{}{\hat{f}} -\NewDocumentCommand{\phimix}{}{\hat\phi} -\NewDocumentCommand{\fpure}{}{f} -\NewDocumentCommand{\phipure}{}{\phi} \tl_new:N \l__thermodynamics_pm_symbol_tl \tl_new:N \l__thermodynamics_pm_arg_tl \NewDocumentCommand{\partialmolar}{m} @@ -1243,12 +1885,21 @@ } \cs_new:Npn \__thermodynamics_pm_case_one #1 { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token{#1}} + \bool_if:NTF \l__thermodynamics_longpm_bool + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token{#1}} } + { + \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl}\c_math_subscript_token{#1} + } } \cs_new:Npn \__thermodynamics_pm_case_two [#1]#2 { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{#1}\c_math_subscript_token{#2}} + \bool_if:NTF \l__thermodynamics_longpm_bool + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl + \c_math_superscript_token{#1}\c_math_subscript_token{#2}} + } + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl} + \c_math_superscript_token{#1}\c_math_subscript_token{#2} + } } \cs_new:Npn \__thermodynamics_pm_case_three #1 { @@ -1259,9 +1910,15 @@ } \cs_new:Npn \__thermodynamics_pm_case_three_part_two #1 { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} - \c_math_subscript_token{#1}} + \bool_if:NTF \l__thermodynamics_longpm_bool + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl + \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} + \c_math_subscript_token{#1}} + } + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl} + \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} + \c_math_subscript_token{#1} + } } \cs_new:Npn \__thermodynamics_pm_case_four_or_five #1 { @@ -1272,13 +1929,23 @@ } \cs_new:Npn \__thermodynamics_pm_case_four #1 { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_superscript_token{#1} - \c_math_subscript_token{\l__thermodynamics_pm_arg_tl}} + \bool_if:NTF \l__thermodynamics_longpm_bool + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_superscript_token{#1} + \c_math_subscript_token{\l__thermodynamics_pm_arg_tl}} + } + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl}\c_math_superscript_token{#1} + \c_math_subscript_token{\l__thermodynamics_pm_arg_tl} + } } \cs_new:Npn \__thermodynamics_pm_case_five { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_subscript_token{\l__thermodynamics_pm_arg_tl}} + \bool_if:NTF \l__thermodynamics_longpm_bool + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl + \c_math_subscript_token{\l__thermodynamics_pm_arg_tl}} + } + { \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl} + \c_math_subscript_token{\l__thermodynamics_pm_arg_tl} + } } \NewDocumentCommand{\NewThermodynamicProperty}{m m} { @@ -1287,7 +1954,7 @@ \NewResidualProperty{#1}{#2} \NewExcessProperty{#1}{#2} } -\NewDocumentCommand{\NewExtensiveProperty}{m m} +\ProvideDocumentCommand{\NewExtensiveProperty}{m m} { % Extensive property \exp_after:wN \NewDocumentCommand \exp_after:wN @@ -1305,7 +1972,7 @@ \exp_after:wN \NewDocumentCommand \exp_after:wN {\cs:w #1pm\cs_end:}{}{\partialmolar{#2}} } -\NewDocumentCommand{\NewExcessProperty}{m m} +\ProvideDocumentCommand{\NewExcessProperty}{m m} { \exp_after:wN \NewSuperscriptedSymbol \exp_after:wN {\cs:w #1 Et\cs_end:}{\__thermodynamics_extensive:n{#2}}{\excess} @@ -1314,13 +1981,12 @@ \exp_after:wN \NewSuperscriptedSymbol \exp_after:wN {\cs:w #1 Es\cs_end:}{\__thermodynamics_specific:n{#2}}{\excess} - %^^A TODO: make super- or subscripted partial molar quantities work % Excess partial molar property \exp_after:wN \NewDocumentCommand \exp_after:wN {\cs:w #1Epm\cs_end:}{}{\partialmolar{#2} \c_math_superscript_token\excess} } -\NewDocumentCommand{\NewResidualProperty}{m m} +\ProvideDocumentCommand{\NewResidualProperty}{m m} { \exp_after:wN \NewSuperscriptedSymbol \exp_after:wN {\cs:w #1 Rt\cs_end:}{\__thermodynamics_extensive:n{#2}}{\residual} @@ -1347,70 +2013,13 @@ \NewPartialMolarProperty{A}{\g__thermodynamics_area_symbol} \NewExtensiveProperty{Q}{\g__thermodynamics_heat_symbol} \NewExtensiveProperty{W}{\g__thermodynamics_work_symbol} -\NewDocumentCommand{\cPpm}{} -{ - \cs_set:Npn \__thermodynamics_pm_case_one ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token - {\g__thermodynamics_pressure_symbol,##1}} - } - \cs_set:Npn \__thermodynamics_pm_case_two [##1]##2 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_superscript_token{##1} - \c_math_subscript_token{\g__thermodynamics_pressure_symbol,##2}} - } - \cs_set:Npn \__thermodynamics_pm_case_three_part_two ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} - \c_math_subscript_token{\g__thermodynamics_pressure_symbol,##1}} - } - \cs_set:Npn \__thermodynamics_pm_case_four ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{##1}\c_math_subscript_token - {\g__thermodynamics_pressure_symbol,\l__thermodynamics_pm_arg_tl}} - } - \cs_set:Npn \__thermodynamics_pm_case_five - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token - {\g__thermodynamics_pressure_symbol,\l__thermodynamics_pm_arg_tl}} - } - \partialmolar{\heatcapacitysymbol} -} -\NewDocumentCommand{\cVpm}{} -{ - \cs_set:Npn \__thermodynamics_pm_case_one ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token - {\g__thermodynamics_volume_symbol,##1}} - } - \cs_set:Npn \__thermodynamics_pm_case_two [##1]##2 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{##1}\c_math_subscript_token - {\g__thermodynamics_volume_symbol,##2}} - } - \cs_set:Npn \__thermodynamics_pm_case_three_part_two ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{\l__thermodynamics_pm_arg_tl} - \c_math_subscript_token{\g__thermodynamics_volume_symbol,##1}} - } - \cs_set:Npn \__thermodynamics_pm_case_four ##1 - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl - \c_math_superscript_token{##1} - \c_math_subscript_token - {\g__thermodynamics_volume_symbol,\l__thermodynamics_pm_arg_tl}} - } - \cs_set:Npn \__thermodynamics_pm_case_five - { - \__thermodynamics_overline:n {\l__thermodynamics_pm_symbol_tl\c_math_subscript_token - {\g__thermodynamics_volume_symbol,\l__thermodynamics_pm_arg_tl}} - } - \partialmolar{\heatcapacitysymbol} -} +\NewPartialMolarProperty{cP}{\cP} +\NewPartialMolarProperty{cV}{\cV} +\NewSubscriptedSymbol{\cPpmshort}{\__thermodynamics_overline_copy:n{\heatcapacitysymbol}} + {\g__thermodynamics_pressure_symbol} +\NewSubscriptedSymbol{\cVpmshort}{\__thermodynamics_overline_copy:n{\heatcapacitysymbol}} + {\g__thermodynamics_volume_symbol} +\NewExpandableDocumentCommand{\Epot}{}{E} \NewDocumentCommand{\residual}{}{R} \NewDocumentCommand{\excess}{}{E} \NewDocumentCommand{\sumall}{m m} @@ -1427,8 +2036,10 @@ \NewDocumentCommand{\IS}{}{{\text{IS}}} \NewDocumentCommand{\Henryrat}{}{h} \NewDocumentCommand{\Henrymol}{}{\mathcal{H}} +\cs_gset_eq:NN \gammait \gamma +\cs_gset_eq:NN \muit \mu \AtBeginDocument{% - \providecommand*{\square}{% + \ProvideDocumentCommand{\square}{}{% \text{\leavevmode \hbox to.65em{% \hfil\vrule |