diff --git a/.github/workflows/serve-ximera.yml b/.github/workflows/serve-ximera.yml index 2cddae2..5d90283 100644 --- a/.github/workflows/serve-ximera.yml +++ b/.github/workflows/serve-ximera.yml @@ -54,7 +54,7 @@ jobs: run: | ls -alrt chmod +x xmScripts/xmlatex # Overleaf sync might reset it :-() - # ./xmScripts/xmlatex veryclean testXourses.TODO # TO BE REMOVED + # ./xmScripts/xmlatex veryclean . # TO BE REMOVED ./xmScripts/xmlatex ghaction $XOURSES echo "✅ Published to $XIMERA_URL$XIMERA_NAME " >> $GITHUB_STEP_SUMMARY diff --git a/examples.TODO/math/math.tex b/examples.TODO/math/math.tex index 21cc7ed..1de8117 100644 --- a/examples.TODO/math/math.tex +++ b/examples.TODO/math/math.tex @@ -14,6 +14,23 @@ At this point, we use MathJax to display math. +With \verb|\[ ... \]| : +\[ +\frac{\sin^2(x^2+\pi)}{\sigma + 1} +\] + +With \verb|$$ ... $$| : +$$ +\frac{\sin^2(x^2+\pi)}{\sigma + 1} +$$ + +With \verb|$ ... $| : +$ +\frac{\sin^2(x^2+\pi)}{\sigma + 1} +$ + + +There may be problems with \verb|\d| : \[ \int f(x) \d x \] diff --git a/global.css b/global.css index 232ffc2..9a88758 100644 --- a/global.css +++ b/global.css @@ -297,3 +297,17 @@ e.g. use "P1", "Problem 1", "Prob 1", "Exciting Problem 1", etc. } */ +/* fix \begin{center} for tabular; to be done properly...) */ +div.center > .tabular { + /* margin: auto; */ +} + +/* try to make tabular not full-width by default ... */ +div.tabular { + /* width: fit-content; */ + /* max-width: max-content; */ +} + +table.tabular td { + /* padding: 0 15px; */ +} diff --git a/table/tableBase.tex b/table/tableBase.tex new file mode 100644 index 0000000..c46cd14 --- /dev/null +++ b/table/tableBase.tex @@ -0,0 +1,105 @@ +\documentclass{ximera} +\title{Tables} + +%\input{preamble.tex}% Only add a preamble file if it is actually necessary for the demo/test. +\begin{document} +\begin{abstract} +\end{abstract} +\maketitle + +\section{Basic Usage} + + + With \verb|tabular| (and \verb|center|): + \begin{center} + \begin{tabular}{lr} + x & 1 \\ + y & 2 \\ + z & 1 + \end{tabular} + \end{center} + + With \verb|tabular and @{} | (and \verb|center|): + \begin{center} + \begin{tabular}{@{}l@{ }r@{.}} + x & 1 \\ + y & 2 \\ + z & 1 + \end{tabular} + \end{center} + + With \verb|tabular and p{} | (and \verb|center|): + \begin{center} + \begin{tabular}{|p{1cm}|p{2cm}|p{3cm}|} + x & 1 & 2\\ + y & 2 & 3\\ + z & 1 & 4 + \end{tabular} + \end{center} + + With \verb|array|: + $$ + \begin{array}{l|r} + x & 1 \\ + \hline + y & 2 \\ + z & 1 + \end{array} + $$ + With \verb|array and @{} and p{}|: + $$ + \begin{array}{@{X }l@{|}p{2cm}|} + x & 1 \\ + \hline + y & 2 \\ + z & 1 + \end{array} + $$ + +\section{Intended Outcome of Test} + +The intended outcome section should show what the output of the demo case looks like, without actually using the DemoCom itself. +Any inconsistencies in formating/display should be noted as well as possible here as well, but it is important to not use the +DemoCom itself so that we have an objective ``anticipated output'' to use as a comparison to what is \textit{actually} output in +test. + +\section{Start of Test/Demo Area} + +This should contain the actual test/demonstration of DemoCom, which can then be compared to the description above to look for +unexpected behavior. + +\hrulefill + + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% For copy/paste into new files: %%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{ximera} +\title{Template} + +%\input{preamble.tex}% Only add a preamble file if it is actually necessary for the demo/test. +\begin{document} +\begin{abstract} + +\end{abstract} +\maketitle + +{{\Huge \bfseries Last Updated: \today}} \\ + + +\section{Basic Usage} + + +\section{Intended Outcome of Test} + + +\section{Start of Test/Demo Area} + + +\hrulefill + + +\end{document} diff --git a/table/tabularray.4ht b/table/tabularray.4ht new file mode 100644 index 0000000..8beaed0 --- /dev/null +++ b/table/tabularray.4ht @@ -0,0 +1,159 @@ +% tabularray.4ht (2025-06-20-11:36), generated from tex4ht-4ht.tex +% Copyright 2022-2025 TeX Users Group +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version 2025-06-20-11:36} + +\NewConfigure{tabularray}{8} +\NewConfigure{tabularrayignoredcell}{2} +\NewConfigure{tabularrayattributes}[1]{\concat:config\CellAttributes{#1\space}} +\NewConfigure{tabularraystyles}[1]{\concat:config\CellStyle{#1}} +\NewConfigure{tabularraycolumnwidth}{1} + +\ExplSyntaxOn +\NewConfigure{tabularrayhalign}[2]{% + \cs_set:cpn{tabularray_halign:#1}{#2} +} + +\NewConfigure{tabularrayvalign}[2]{% + \cs_set:cpn{tabularray_valign:#1}{#2} +} +\ExplSyntaxOff + +\ExplSyntaxOn +\long\def\:tempa#1#2#3#4{% + % insert ...
+ \a:tabularray\o:__tblr_environ_code:nnnn:{#1}{#2}{#3}{#4}\b:tabularray +} +\HLet\__tblr_environ_code:nnnn\:tempa + +\long\def\:tempa#1{\int_set:Nn \c@rownum {#1}\xdef\HRow{\@arabic\c@rownum}\c:tabularray\o:__tblr_build_row:N:{#1}\d:tabularray} +\HLet\__tblr_build_row:N\:tempa +\ExplSyntaxOff + +% disable rules +\ht:special{t4ht@_} +\ExplSyntaxOn +% #1 row number, #2 column, #3 hline number (there can be multiple), #4 css property to be set +\def\:tblr:hlinestyle#1#2#3#4{ + % get line height + \tl_set:Ne \l__tblr_h_tl{ \__tblr_spec_item:ne { hline } { [#1](#3) / @hline-height } } + % get dash style + \def\@tblr@dash{} % remove "dash" word from the variable for correct CSS string + \tl_set:Ne \l__tblr_f_tl{\__tblr_spec_item:ne { hline } { [#1][#2](#3) / @dash }} + % create CSS only when a dash style is set + \tl_if_empty:NF\l__tblr_f_tl{ + % get hline color + \tl_set:Ne \l__tblr_g_tl { \__tblr_spec_item:ne { hline } { [#1][#2](#3) / fg } } + \def\:hlinecolor{\#000000} + % convert color to CSS value if color is set + \tl_if_empty:NF\l__tblr_g_tl{\get:xcolorcss{\l__tblr_g_tl}\:hlinecolor} + % \Configure{tabularraystyles} doesn't expand attributes, so we need to expand it here + % otherwise, we would get wrong color and hline style in the last row, because this macro is called twice here + \cs_set:ce{#4:}{#4:\dim_to_decimal_in_unit:nn{\l__tblr_h_tl*2}{1px}px~\l__tblr_f_tl\space~\:hlinecolor;} + \Configure{tabularraystyles}{\csname#4:\endcsname} + } +} + +\def\:tblr:vlinestyle#1#2#3#4{ + \tl_set:Ne \l__tblr_t_tl{ \__tblr_spec_item:ne { vline } { [#2](#3) / @vline-width } } + \def\@tblr@dash{} % remove "dash" word from the variable for correct CSS string + \tl_set:Ne \l__tblr_f_tl{\__tblr_spec_item:ne { vline } { [#1][#2](#3) / @dash }} + \tl_if_empty:NF\l__tblr_f_tl{ + \tl_set:Ne \l__tblr_g_tl { \__tblr_spec_item:ne { vline } { [#1][#2](#3) / fg } } + \def\:hlinecolor{\#000000} + % convert color to CSS value if color is set + \tl_if_empty:NF\l__tblr_g_tl{\get:xcolorcss{\l__tblr_g_tl}\:hlinecolor} + % \Configure{tabularraystyles} doesn't expand attributes, so we need to expand it here + % otherwise, we would get wrong color and hline style in the last row, because this macro is called twice here + \cs_set:ce{#4:}{#4:\dim_to_decimal_in_unit:nn{\l__tblr_t_tl*2}{1px}px~\l__tblr_f_tl\space~\:hlinecolor;} + \Configure{tabularraystyles}{\csname#4:\endcsname} + } +} +\ExplSyntaxOff + +\ExplSyntaxOn +\long\def\:tempa#1#2{% +% find columns that are covered by rowspan and colspan + \xdef\HCol{\@arabic\c@colnum} + \xdef\HRow{\@arabic\c@rownum} + \xdef\HMultispan{\lTblrCellColSpanInt} + \xdef\HRowspan{\lTblrCellRowSpanInt} + \let\CellAttributes\@empty + \let\CellStyle\@empty + % calculate ignored cells, if the current cell uses colspan or rowspan + \int_step_inline:nnn{\c@rownum }{\c@rownum - 1 + \lTblrCellRowSpanInt}{ + \int_step_inline:nnn{\c@colnum }{\c@colnum - 1 + \lTblrCellColSpanInt}{ + % the loop always matches the current cell, we must ignore it + \str_if_eq:eeF{\HCol.\HRow}{####1.##1}{% + \cs_gset:cpn{ignoredcell-####1-##1}{} + } + } + } + \cs_if_exist_use:c{tabularray_halign:\g__tblr_cell_halign_tl} + \cs_if_exist_use:c{tabularray_valign:\g__tblr_cell_valign_tl} + % the vertical aligment can be set also in \g__tblr_cell_middle_tl, so we should try it as well + \cs_if_exist_use:c{tabularray_valign:\g__tblr_cell_middle_tl} + % calculate column width + \dim_compare:nNnT {\__tblr_data_item:nen{column}{\HCol}{@col-width}} > {0pt}{ + \__tblr_get_table_width:% initialize \tablewidth + \edef\HColWidth{\fp_eval:n{\__tblr_data_item:nen{column}{\HCol}{@col-width}/\tablewidth*100}\%} + % save table width, preferably in CSS + \a:tabularraycolumnwidth% + } + % there can be multiple hlines for each cell, but we only suport the first one, because of limitations of CSS + \:tblr:hlinestyle{#1}{#2}{1}{border-top} + \int_compare:nNnT{\HRow + \HRowspan - 1} = {\c@rowcount}{% + % draw hline below the last row + \:tblr:hlinestyle{\int_eval:n{\c@rownum + 1}}{#2}{1}{border-bottom} + } + % the same is true for vlines + \:tblr:vlinestyle{#1}{#2}{1}{border-left} + \int_compare:nNnT{\HCol + \HMultispan - 1} = {\c@colcount}{% + % draw hline below the last row + \:tblr:vlinestyle{#1}{\int_eval:n{\c@colnum + 1}}{1}{border-right} + } + % support for the background color + \tl_set:Ne \l__tblr_b_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { background } } + % save background color to the list of CSS, if it is set + \tl_if_empty:NF \l__tblr_b_tl{ + \get:xcolorcss{\l__tblr_b_tl}\:bgcolor + \Configure{tabularraystyles}{background-color: \:bgcolor;} + } + % We can use something like \Configure{tabularrayattributes}{rowspan="\HRowspan"} in \Configure{tabularray} + % to declare correct attributes for joined cells + \int_compare:nNnT {\HRowspan} > {1}{\g:tabularray} + \int_compare:nNnT {\HMultispan} > {1}{\h:tabularray} + \cs_if_exist:cTF{ignoredcell-\the\c@colnum-\the\c@rownum}{% + \a:tabularrayignoredcell\e:tabularray\o:__tblr_build_cell_content:NN:{#1}{#2}\f:tabularray\b:tabularrayignoredcell + }{% + \e:tabularray\o:__tblr_build_cell_content:NN:{#1}{#2}\f:tabularray + } + % the ignored cell is global, so we must undefine it after the thes + \cs_undefine:c{ignoredcell-\the\c@colnum-\the\c@rownum}% +} +\HLet\__tblr_build_cell_content:NN\:tempa + +\HLet\__tblr_get_vcenter_box:N\:gobble + + +\ExplSyntaxOff + +\Hinput{tabularray} +\endinput + diff --git a/table/tblr.tex b/table/tblr.tex new file mode 100644 index 0000000..2008a6f --- /dev/null +++ b/table/tblr.tex @@ -0,0 +1,93 @@ +\documentclass{ximera} + + + +\title{Tables: tblr} + +\begin{document} +\begin{abstract} +\end{abstract} + +\maketitle + +\section{Basic Usage} + +\subsection{A simple table with colspec lcr, textwidth: } + +\begin{center} +\begin{tblr}{ + colspec = {lcr}, + rowhead=1, +} +%\toprule %% THIS CAUSES COMPILATION TO HANG +%\hline %% THIS CAUSES COMPILATION TO HANG +Left aligned & Centered & Right aligned \\ +% \midrule +Some text & More text & Final text \\ +Math $x^2$ & \textbf{Bold text} & \textit{Italic text} \\ +%\bottomrule +\end{tblr} +\end{center} + +\subsection{Another table: } + +\begin{center} +\begin{tblr}{ + width=\linewidth, + rowhead=1, + colspec = { + X[t,l,wd=3cm] % max 3.cm + Q[t,c] % fixed + X[t,r,wd=3cm] % max 3cm + X[t,l] % stretchable + }, + row{1} = {font=\bfseries}, + column{2} = {font=\itshape}, % Italic text in 2nd column + rowsep = 6pt, +% hlines, %% THIS CAUSES COMPILATION TO HANG +% vlines, %% THIS CAUSES COMPILATION TO HANG +} +Top aligned, left aligned & Top aligned, centered (italic) & Top aligned, right aligned & Top-left regular \\ +\SetCell[r=2]{t,l}Multirow: top-left aligned & \SetCell[r=2]{t,c}Multirow: top-centered (italic) & \SetCell[c=2]{t,l}Multicolumn: top-left aligned over 2 cols & \\ +Bottom aligned, left aligned & Center aligned (italic) & Right aligned & Bottom-left regular \\ +\end{tblr} +\end{center} + +\subsection{One more table:} + +\begin{center} +\begin{tblr}{ + colspec = {Q[l] Q[c] Q[r] Q[l]}, % Q = flexible column, with alignment + rowhead = 1, + row{1} = {font=\bfseries}, % make header bold + column{2} = {font=\itshape}, % italicize second column + column{3} = {halign=center}, % center-align 3rd column + rowsep = 4pt, +% hlines, +% vlines, +} +Name & Role & Age & Remarks \\ +Alice & Developer & 30 & Works remotely \\ +Bob & Designer & 27 & \SetCell[r=2]{c}On leave \\ +Charlie & \SetCell[c=2]{l}Intern (UI + UX) & & \\ +Diana & Project Manager & 34 & Full time \\ +\end{tblr} +\end{center} + +\subsection{A simple table with colspec X: } + +\begin{tblr}{ + colspec = {X[l]X[c]X[r]}, +% rowhead=1, +% width = \textwidth +} +%\toprule %% THIS CAUSES COMPILATION TO HANG +%\hline %% THIS CAUSES COMPILATION TO HANG +Left aligned & Centered & Right aligned \\ +% \midrule +Some text & More text & Final text \\ +%\bottomrule +\end{tblr} + + +\end{document} \ No newline at end of file diff --git a/table/tblr_article.tex b/table/tblr_article.tex new file mode 100644 index 0000000..d8f0024 --- /dev/null +++ b/table/tblr_article.tex @@ -0,0 +1,92 @@ +\documentclass{article} +\usepackage{xcolor} +\usepackage{tabularray} +\UseTblrLibrary{booktabs} % Optional, for \toprule etc. + +\title{Tables: tblr (with documentclass article)} + +\begin{document} + +\maketitle + +\section{Basic Usage} + +\subsection{A simple table with colspec lcr, textwidth: } + +\begin{center} +\begin{tblr}{ + colspec = {lcr}, + rowhead=1, +} +%\toprule %% THIS CAUSES COMPILATION TO HANG +%\hline %% THIS CAUSES COMPILATION TO HANG +Left aligned & Centered & Right aligned \\ +% \midrule +Some text & More text & Final text \\ +Math $x^2$ & \textbf{Bold text} & \textit{Italic text} \\ +%\bottomrule +\end{tblr} +\end{center} + +\subsection{Another table: } + +\begin{center} +\begin{tblr}{ + width=\linewidth, + rowhead=1, + colspec = { + X[t,l,wd=3cm] % max 3.cm + Q[t,c] % fixed + X[t,r,wd=3cm] % max 3cm + X[t,l] % stretchable + }, + row{1} = {font=\bfseries}, + column{2} = {font=\itshape}, % Italic text in 2nd column + rowsep = 6pt, +% hlines, %% THIS CAUSES COMPILATION TO HANG +% vlines, %% THIS CAUSES COMPILATION TO HANG +} +Top aligned, left aligned & Top aligned, centered (italic) & Top aligned, right aligned & Top-left regular \\ +\SetCell[r=2]{t,l}Multirow: top-left aligned & \SetCell[r=2]{t,c}Multirow: top-centered (italic) & \SetCell[c=2]{t,l}Multicolumn: top-left aligned over 2 cols & \\ +Bottom aligned, left aligned & Center aligned (italic) & Right aligned & Bottom-left regular \\ +\end{tblr} +\end{center} + +\subsection{One more table:} + +\begin{center} +\begin{tblr}{ + colspec = {Q[l] Q[c] Q[r] Q[l]}, % Q = flexible column, with alignment + rowhead = 1, + row{1} = {font=\bfseries}, % make header bold + column{2} = {font=\itshape}, % italicize second column + column{3} = {halign=center}, % center-align 3rd column + rowsep = 4pt, +% hlines, +% vlines, +} +Name & Role & Age & Remarks \\ +Alice & Developer & 30 & Works remotely \\ +Bob & Designer & 27 & \SetCell[r=2]{c}On leave \\ +Charlie & \SetCell[c=2]{l}Intern (UI + UX) & & \\ +Diana & Project Manager & 34 & Full time \\ +\end{tblr} +\end{center} + +\subsection{A simple table with colspec X:} + +\begin{tblr}{ + colspec = {X[l]X[c]X[r]}, +% rowhead=1, +% width = \textwidth +} +%\toprule %% THIS CAUSES COMPILATION TO HANG +%\hline %% THIS CAUSES COMPILATION TO HANG +Left aligned & Centered & Right aligned \\ +% \midrule +Some text & More text & Final text \\ +%\bottomrule +\end{tblr} + + +\end{document} \ No newline at end of file diff --git a/table/ximera.cfg b/table/ximera.cfg new file mode 100644 index 0000000..caff69a --- /dev/null +++ b/table/ximera.cfg @@ -0,0 +1,202 @@ +%% +%% This is file `ximera.cfg', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ximera.dtx (with options: `cfgXimera') +%% src/pagesetup.dtx (with options: `cfgXimera') +%% src/packages.dtx (with options: `cfgXimera') +%% src/jax.dtx (with options: `cfgXimera') +%% src/sectioning.dtx (with options: `cfgXimera') +%% src/title.dtx (with options: `cfgXimera') +%% src/abstract.dtx (with options: `cfgXimera') +%% src/image.dtx (with options: `cfgXimera') +%% src/outcomes.dtx (with options: `cfgXimera') +%% src/textcolor.dtx (with options: `cfgXimera') +%% src/verbatim.dtx (with options: `cfgXimera') +%% src/html.dtx (with options: `cfgXimera') +%% src/ending.dtx (with options: `cfgXimera') +%% ------------:| ------------------------------------------------------------ +%% ximera:| Simultaneously writing print and online interactive materials +%% Author:| Jim Fowler and Oscar Levin and Jason Nowell and Wim Obbels and Hans Parshall and Bart Snapp +%% E-mail:| bart.snapp@gmail.com +%% License:| Released under the LaTeX Project Public License v1.3c or later +%% See:| http://www.latex-project.org/lppl.txt +%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Preamble{xhtml,mathjax} + +\ExplSyntaxOn +% Get the value of rowhead key and save it in the \lTblrRowHeadInt for later use +\def\:setrowhead{ + \int_set:Nn \lTblrRowHeadInt + { \__tblr_prop_item:ne { inner } { rowhead } + 0 } +} +% print either th or td, depending on the value of \lTblrRowHeadInt +\def\:celltype{\int_compare:nTF{\int_value:w\lTblrRowHeadInt>=\HRow}{th}{td}} +\ExplSyntaxOff + +% this is the configuration for the tabularray package with the support for +\catcode`\:=11 +\makeatletter +\Configure{tabularray}{% + \ifvmode\IgnorePar\fi\EndP% + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo% + \HCode{} +}{\ifvmode\IgnorePar\fi\EndP\HCode{
}} +{\:setrowhead\HCode{}}{\HCode{}} +{\HCode{<\:celltype\space id="cell\TableNo-\HRow-\HCol" style="\CellStyle" \CellAttributes>}}{\HCode{}} +{\Configure{tabularrayattributes}{rowspan="\HRowspan"}} +{\Configure{tabularrayattributes}{colspan="\HMultispan"}}{} +\catcode`\:=12 +\makeatother + + + + +\NoFonts + + + + +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@HEAD}{\HCode{\Hnewline}} + +\catcode`\%=11 +\Configure{@BODY}{\HCode{\Hnewline}} +\catcode`\%=14 + + + +\Configure{BVerbatimInput}{}{}{}{} + +\Configure{verbatiminput}{}{}{}{} + +\makeatletter +\def\FV@Space{\space} +\makeatother + +\Configure{BODY}{% +\HCode{\Hnewline}% +\Tg
% +%% 202501: removed .jax inclusion (see luaxake) + +%% Include the .ids file +\IfFileExists{\jobname.ids}{\HCode{\Hnewline}% +}{} +\Tg
% +}{% +\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline}% +} + + +\ScriptEnv{matlabEquation}{\ifvmode \IgnorePar\fi \EndP\HCode{}} + +\renewcommand{\paragraph}[1]{% + \HCode{}% + #1% + \HCode{}\par\IgnorePar} +\renewcommand{\subparagraph}[1]{% + \HCode{}% + #1% + \HCode{}\par\IgnorePar} + +\ifvmode\IgnorePar\fi\EndP +\ConfigureEnv{abstract}{\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline
}\par}{\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline
}\par}{}{} +%% Although we accept many formats, SVG is preferred on the web. +%% Since we have a different mechanism for producing |alt| text, we +%% want to ignore tex4ht's own method fo producing alt text. +%% 2024: is now in TeX4ht ... +\ifcsname ifstandalone\endcsname + \ifstandalone + \renewcommand\includegraphics[2][]{} + \fi +\renewcommand{\outcome}[1]{ + \Configure{@HEAD}{\HCode{\Hnewline}} +} +\IfFileExists{\jobname.oc}{\input{\jobname.oc}}{} + +\renewcommand{\outcome}[1]{% + \HCode{#1} +} +\makeatletter +\Configure{textcolor}{\HCode{}}{\HCode{}} +\let\oldtextcolor\textcolor + +\renewcommand\textcolor[2]{% + % we need to convert the current color to hexadecimal form usable in the style attribute + % the \tsf@color macro is used in the \Configure{textcolor} configuration to insert the + % CSS color + \extractcolorspec{#1}{\tsf@color}% + \expandafter\convertcolorspec\tsf@color{HTML}\tsf@color% + % call the original command + \oldtextcolor{#1}{#2}% +}% +\makeatother +\renewenvironment{javascriptCode}{\NoFonts}{\EndNoFonts} +\ScriptEnv{javascriptCode}{\stepcounter{identification}\ifvmode \IgnorePar\fi \EndP\HCode{
}} +%%% On the web, translate verbatim and lstlisting blocks into |
|
+%%% elements.
+%%%    \begin{macrocode}
+%%%<*cfgXimera>
+%%\ConfigureEnv{verbatim}{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{}{} +%%\ConfigureEnv{lstlisting}{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{}{} +%%% +%%% \end{macrocode} +\Configure{textbf}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} +\Configure{textit}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} +\Configure{emph}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} +\Configure{texttt}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} + + +\begin{document} +\EndPreamble +%% +%% Copyright (C) 2024 by Bart Snapp and Jim Fowler +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License (LPPL), either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in the file: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" (as per LPPL maintenance status) by +%% Bart Snapp. The source code can be found at: +%% +%% https://github.com/XimeraProject/ximeraLatex +%% +%% This work consists of the file ximera.dtx, the associated files +%% under src/, and a Makefile. +%% +%% Running "make" generates the derived files README, ximera.pdf, ximera.cls, xourse.cls. +%% +%% Running "make inst" installs the files in the user's TeX tree. +%% +%% Running "make install" installs the files in the local TeX tree. +%% +%% +%% End of file `ximera.cfg'. diff --git a/table/xmPreamble.tex b/table/xmPreamble.tex new file mode 100644 index 0000000..2ae1f30 --- /dev/null +++ b/table/xmPreamble.tex @@ -0,0 +1,3 @@ +\usepackage{tabularray} + +\UseTblrLibrary{booktabs} % Optional, for \toprule etc. \ No newline at end of file diff --git a/testXourses/tableTest.tex b/testXourses/tableTest.tex new file mode 100644 index 0000000..d38a7f0 --- /dev/null +++ b/testXourses/tableTest.tex @@ -0,0 +1,20 @@ +\documentclass{xourse} +\usepackage{tabularray} +\UseTblrLibrary{booktabs} % Optional, for \toprule etc. + +\title{Test: Tables} + +\begin{document} +\maketitle + +\activity{../table/tableBase} +% \begin{onlineOnly} +% \activity{../table/tableBase_css} %% DOES NOT WORK: only xourse-level .css files +% \end{onlineOnly} +\activity{../table/tblr} + +\ifonline + \activity{../table/tblr_article} +\fi + +\end{document} \ No newline at end of file diff --git a/xmScripts/config.txt b/xmScripts/config.txt index c520dd9..a393a03 100644 --- a/xmScripts/config.txt +++ b/xmScripts/config.txt @@ -3,7 +3,8 @@ # # : "${XAKE_BASE:=ximeralatex}" # : "${XAKE_VERSION:=v2.7.0}" -# : "${XAKE_VERSION:=v2.7.0-full}" # with texlive_full +: "${XAKE_VERSION:=latest}" # 2025 TESTING !!! +# : "${XAKE_VERSION:=v2.7.1-full}" # with texlive_full # # For publishing you'll need a GPG Key # To generate a key-pair, fill in your name and email, and run 'xmlatex genKey'