• Colouring words using text colour of title block
    by Jo Jo on July 9, 2026 at 12:36 pm

    How can I use the text colour of a block title in some words of regular text in a frame? Below, find a code (of course, I have to replace \color{blue} by something else that gives the colour of the text in title block) \documentclass{beamer} \usetheme{AnnArbor} \begin{document} \begin{frame} \begin{block}{My title} This is block \end{block} Let me colour this {\color{blue}WORD} with title colour block \end{frame} \end{document}

  • Unicode-math interferes with float
    by Manuel Schmidt on July 9, 2026 at 11:49 am

    I am trying to figure out why tufte-latex labels are broken after I updated texlive using LuaLatex The following MWE has the problematic parts from tufte-latex and shows that the unicode-math package interferes with @float used by tufte-latex. \documentclass{article} \makeatletter \usepackage{unicode-math} % <- remove this \usepackage{graphicx} \usepackage{etoolbox} \newcommand{\@tufte@stored@caption}{} \newcommand{\@tufte@stored@label}{} \NewDocumentEnvironment { afigure }{ }{ \global\let\@tufte@orig@caption\caption% \global\let\@tufte@orig@label\label% % store caption and caption offset \RenewDocumentCommand{\caption}{O{0pt}m}{\gdef\@tufte@stored@caption{##2}}% % store label \RenewDocumentCommand{\label}{m}{\gdef\@tufte@stored@label{##1}}% \begin{figure} }{ \@tufte@orig@caption{\@tufte@stored@caption} \@tufte@orig@label{\@tufte@stored@label} \end{figure} } \makeatother \begin{document} \begin{afigure} \includegraphics[width=3cm]{example-grid-100x100pt} \caption{grid} \label{grid} \end{afigure} Label of Fig~\ref{grid} \end{document} With unicode-math, the \ref just shows ??. Without unicode-math, the correct label Fig. 1 is shown. Any idea how I can fix this?

  • Programmatically set the length of TikZ line so that both itself and an east anchored node at its starting point have a given length
    by Denis Bitouzé on July 9, 2026 at 10:18 am

    I would like to draw a TikZ line with an east anchored node at its starting point, such that both the line and the node globally having a given width. For example, in the following MCE example, how can I programmatically set the length \mywidth so that the line and the “Foo” node have a combined length of 50 mm? \documentclass{article} \usepackage{tikz} \usepackage[showframe,type=alledgesT]{fgruler} \newlength\mywidth \setlength\mywidth{40mm} \begin{document} \noindent% \tikz \draw (0,0) node[anchor=east,draw] {Foo} -- (\mywidth,0); \end{document}

  • Count the number of no-empty delimited arguments
    by myhsia on July 9, 2026 at 8:31 am

    I defined a function \__foo:w #1+#2+#3, like the MWE below \documentclass{article} \begin{document} \ExplSyntaxOn \cs_new:Npn \__foo:w #1 + #2 + #3 \q_stop { \textbf{#1},~ \textit{#2} \tl_if_blank:eF {#3} { ,~ \texttt{#3} } } \__foo:w tex + live + 2026 \q_stop % \__foo:w tex+live \q_stop \ExplSyntaxOff \end{document} But if users use \foo:w tex+live, due to the second delimiter + could not be founded, then error arises: File ended while scanning use of \foo:w <inserted text> Certainly, I know I can use l3seq, but I think it is not an elegant way. Is there a way to allow the usage \__foo:w tex+live \q_stop? Note \textbf, \textit, \texttt are just for demoing; in fact, I will use other personal defined functions.

  • How to make a relatively more beautiful classification table of quadratic functions?
    by D G on July 9, 2026 at 12:16 am

    Objectives: remove top left cell all contents are vertically and horizontally centered well balanced padding in each cell make it relatively much more beautiful \documentclass[12pt,border=12pt]{standalone} \usepackage{amsmath,array,tikz} \usetikzlibrary{math} \newcommand{\graph}[2][]{ \begin{tikzpicture}[baseline=(current bounding box.center)] \draw[blue,thick,->] (-1.5,#2)--(1.5,#2) node[right]{$x$}; \draw[red,thick,domain=-1.5:1.5,samples=100] plot(\x,{#1\x*\x/2}); \end{tikzpicture} } \renewcommand{\arraystretch}{1.8} \setlength{\tabcolsep}{18pt} \begin{document} \begin{tabular}{| >{\centering\arraybackslash}m{2.2cm}| >{\centering\arraybackslash}m{5.2cm}| >{\centering\arraybackslash}m{5.2cm}|} \cline{2-3} & $\mathbf{a>0}$ & $\mathbf{a<0}$ \\ \hline $\mathbf{D<0}$ & \graph{-1/2} & \graph[-]{1/2} \\ \hline $\mathbf{D=0}$ & \graph{0} & \graph[-]{0} \\ \hline $\mathbf{D>0}$ & \graph{1/2} & \graph[-]{-1/2} \\ \hline \end{tabular} \end{document} Any improvements are always welcome!

  • Inside a longtblr, how can I split an itemize list — wrapped in a minipage — across pages?
    by Ommo on July 8, 2026 at 9:54 pm

    I found that "itemize" works inside "longtblr" when it is wrapped with a "minipage": \usepackage [ a4paper, left = 0.2cm, right = 0.2cm, top = 0.1cm, bottom = 0.2cm, ] {geometry} \usepackage{tabularray} \usepackage{lipsum} \newcommand{\rowgap}{10pt} \begin{document} \begin{center} \DefTblrTemplate{firsthead, middlehead,lasthead}{default}{} \begin{longtblr}[presep=-4pt,postsep=0pt] {colspec = {p{3.2cm}X},width=\textwidth,colsep=0pt,rowsep=0pt} 1 December 1871 & Some intro text:\\ & \lipsum[1-3] \\[\rowgap] 15 June 2016 & Some text:\\ & \begin{minipage}[t]{\linewidth} \begin{itemize} \item \lipsum[7] \item \lipsum[8] \item \lipsum[9] \end{itemize} \end{minipage} \\[\rowgap] 30 March 2051 & Other intro text:\\ & Hello man! \\[\rowgap] \end{longtblr} \end{center} \end{document} That code produces the following output: However, if one of the "itemize" entries is made longer, for example, \item \lipsum[7] \item \lipsum[8] \item \lipsum[9-11] the "minipage" prevents the "itemize" environment from breaking across pages. As a result, the entire list is moved to the second page instead of being split between the first and second pages, producing the following output: My question: inside a "longtblr", how can I split an "itemize" list — wrapped in a "minipage" — across pages? Should I wrap my "itemize" list in a different environment that allows it to split across pages? If so, which one? Are there any other solutions for using "itemize" inside "longtblr"? EDIT (9 July 2026): Thanks, everyone, for your comments! I realize I didn't explain why I chose to use a table here. My intention is to take advantage of some features that — to my understanding — are specific to the table environment. For example, the ability to highlight particular rows and columns by applying different colors: \documentclass[11pt,english]{article} \usepackage [ a4paper, left = 0.2cm, right = 0.2cm, top = 0.1cm, bottom = 0.2cm, ] {geometry} \usepackage{tabularray} \usepackage{lipsum} \newcommand{\rowgap}{10pt} \usepackage{xcolor} \definecolor{MyColor1}{rgb}{0.22,0.45,0.70} % light blue \definecolor{MyColor2}{rgb}{0.55,0.75,0.65} % mint green \begin{document} \begin{center} \DefTblrTemplate{firsthead, middlehead,lasthead}{default}{} \begin{longtblr}[presep=-4pt,postsep=0pt] {colspec = {p{3.2cm}X},width=\textwidth,colsep=0pt,rowsep=0pt} 1 December 1871 & Some intro text:\\ & \lipsum[1-3] \\[\rowgap] \SetRow{bg=MyColor1!20} 15 June 2016 & Some text:\\ & \begin{minipage}[t]{\linewidth} \begin{itemize} \item \lipsum[7] \item \lipsum[8] \item \lipsum[9] \end{itemize} \end{minipage} \\[\rowgap] \SetRow{bg=MyColor2!20} 30 March 2051 & Other intro text:\\ & Hello man! \\[\rowgap] \end{longtblr} \end{center} \end{document} Which gives this output: I was therefore wondering whether \begin{description} ... \end{description} can provide the same functionality. So far, I have not been able to find a way to reproduce this feature within the "description" environment.

  • latexml: shows on web page
    by Nasser on July 8, 2026 at 5:26 pm

    this mwe \documentclass{article} \usepackage{longtable} \title{A longtable example} \begin{document} \begin{center} \begin{longtable}{|l|l|l|} \caption{A sample long table.} \label{tab:long} \\\hline One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\\hline \end{longtable} \end{center} \end{document} Compiled using latexml 0.8.8 >latexml --dest=B.xml B.tex latexml (LaTeXML version 0.8.8) processing B.tex Conversion complete: No obvious problems (reqd. 0.69s) >latexmlpost --format=html5 --dest=B.htm B.xml latexmlpost (LaTeXML version 0.8.8) paginating /mnt/g/public_html/my_notes/solving_ODE/current_version/TESTS/dvi_optimize/B.xml Postprocessing complete No obvious problems (reqd. 0.08s) The HTML shows this The raw HTML is &lt;!DOCTYPE html&gt;<html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>A longtable example</title> <!--Generated on Wed Jul 8 12:33:43 2026 by LaTeXML (version 0.8.8) http://dlmf.nist.gov/LaTeXML/.--> <link rel="stylesheet" href="LaTeXML.css" type="text/css"> <link rel="stylesheet" href="ltx-article.css" type="text/css"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body> ... Why does this happen with this input and is there a solution? which latexml /usr/bin/latexml Update Here is minimal example. It still happens. >cat B.tex \documentclass{article} \begin{document} text \end{document} > and >latexml --dest=B.xml B.tex latexml (LaTeXML version 0.8.8) processing B.tex Conversion complete: No obvious problems (reqd. 0.70s) >latexmlpost --format=html5 --dest=B.htm B.xml latexmlpost (LaTeXML version 0.8.8) paginating /mnt/g/public_html/my_notes/solving_ODE/current_version/TESTS/dvi_optimize/B.xml Postprocessing complete No obvious problems (reqd. 0.08s) > and >cat B.htm &lt;!DOCTYPE html&gt;<html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Untitled Document</title> <!--Generated on Wed Jul 8 13:32:28 2026 by LaTeXML (version 0.8.8) http://dlmf.nist.gov/LaTeXML/.--> I am using WSL 1.0 linux under windows 10. Do not know if this has anything to do with this. >which perl /usr/bin/perl >perl --version This is perl 5, version 38, subversion 2 (v5.38.2) built for x86_64-linux-gnu-thread-multi

  • tex4ht: error on longtable ! Misplaced \noalign
    by Nasser on July 8, 2026 at 5:04 pm

    This MWE \documentclass{article} \usepackage{longtable} \title{A longtable example} \begin{document} \begin{center} \begin{longtable}{|l|l|l|} \caption{A sample long table.} \label{tab:long} \\ \hline \multicolumn{1}{|c|}{\textbf{First column}} & \multicolumn{1}{c|}{\textbf{Second column}} & \multicolumn{1}{c|}{\textbf{Third column}} \\ \hline \endfirsthead \multicolumn{3}{c}% {{\bfseries \tablename\ \thetable{} -- continued from previous page}} \\ \hline \multicolumn{1}{|c|}{\textbf{First column}} & \multicolumn{1}{c|}{\textbf{Second column}} & \multicolumn{1}{c|}{\textbf{Third column}} \\ \endhead \multicolumn{3}{|r|}{{Continued on next page}} \\ \endfoot \hline \endlastfoot One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \\ One & abcdef ghjijklmn & 123.456778 \end{longtable} \end{center} \end{document} compiles OK with lualatex lualatex B.tex This is LuaHBTeX, Version 1.26.3 (TeX Live 2027/dev) restricted system commands enabled. (./B.tex LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> (/usr/local/texlive/2026/texmf-dist/tex/latex/base/article.cls Document Class: article 2025/01/22 v1.4n Standard LaTeX document class (/usr/local/texlive/2026/texmf-dist/tex/latex/base/size10.clo)) (/usr/local/texlive/2026/texmf-dist/tex/latex/tools/longtable.sty) (/usr/local/texlive/2026/texmf-dist/tex/latex/l3backend/l3backend-luatex.def) No file B.aux. [1 Non-PDF special ignored!{/usr/local/texlive/2026/texmf-var/fonts/map/pdftex/upd map/pdftex.map}] (./B.aux) LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) 426 words of node memory still in use: 3 hlist, 1 vlist, 1 rule, 2 glue, 3 kern, 1 glyph, 4 attribute, 52 glue_spec , 4 attribute_list, 1 write nodes avail lists: 2:268,3:42,4:2,5:37,6:2,7:904,9:222,10:1,11:28 </usr/local/texlive/2026/texmf-dist/fonts/opentype/public/lm/lmroman10-bold.otf ></usr/local/texlive/2026/texmf-dist/fonts/opentype/public/lm/lmroman10-regular .otf> Output written on B.pdf (1 page, 8949 bytes). Transcript written on B.log. and gives But gives compile error with tex4ht: make4ht -ulm default -a debug B.tex "mathjax,htm" ... This is LuaTeX, Version 1.26.3 (TeX Live 2027/dev) restricted system commands enabled. LaTeX2e <2025-11-01> L3 programming layer <2026-03-20> .... (/usr/local/texlive/2026/texmf-dist/tex/latex/l3backend/l3backend-dvips.def) (./B.aux) (/usr/local/texlive/2026/texmf-dist/tex/latex/lm/ot1lmtt.fd) ! Misplaced \noalign. \a:hline ->\ifx \ar:cnt \:UnDef \else \o:noalign: {\append:def \hline:s {\a:... l.13 \hline \multicolumn{1}{|c|}{\textbf{First column}} & \multicolumn{1}{c|... ? Why does this happen? Since the code compiles OK with lualatex, should it not also compile OK with tex4ht? TL 2026 >which make4ht /usr/local/texlive/2026/bin/x86_64-linux/make4ht >make4ht --version make4ht version v0.4e

  • How to escape @ character while inputting a file in TeXInfo?
    by niru on July 8, 2026 at 1:58 pm

    I want to load luaotfload.sty with TeXInfo and here is my minimal code: \input texinfo @documentencoding UTF-8 @setfilename sample.info @settitle sample @include luaotfload.sty @bye If I use PDFTEX=luatex texi2pdf inn.texi, it produces the following: : Undefined control sequence. l.3 %% by Elie Roux <elie.roux@telecom -bretagne.eu> ? If I understand correctly, TeXInfo treats @ as a special character and turns the words following it into TeX control sequences, but the issue is that it should ignore TeX comments, which it is not. This could be a bug, but I thought I might have missed something very obvious.

  • Trail or trace of a moving charged particle
    by Sebastiano on July 8, 2026 at 12:31 pm

    I think in 2019 I built the following image with Adobe Illustrator for my book. Now, since there are so many images in pdf, I am slowly creating them in TikZ code. I wanted to know if there is something to create a trail for the blue particle similar to the main image or any other idea you have. Thank you. \documentclass{article} \usepackage{tikz} \usetikzlibrary{arrows.meta} \tikzset{rhtip/.tip={Triangle[line width=1pt, fill=white, length=9pt, width=9pt]}, pics/clock/.style args={#1/#2}{ code={ \def\dist{0.38} \draw[thin] (0,0) circle (\dist); \draw[line width=.7pt] (0,0) -- ({0.16*cos(90-30*#1-0.5*#2)}, {0.16*sin(90-30*#1-0.5*#2)}); \draw[line width=.7pt] (0,0) -- ({0.28*cos(90-6*#2)}, {0.28*sin(90-6*#2)}); } } } \begin{document} \begin{tikzpicture}[scale=.8] \draw[->] (0,0) -- (4.8,0) node[right] {$x$}; \draw[->] (0,0) -- (0,4.8) node[above] {$z$}; \draw[->] (0,0) -- (1.8,1.1) node[above] {$y$}; \node at (-0.4,4.3) {$\Sigma$}; \shade[ball color=cyan] (2.7,1.2) circle (0.2); \draw[brown!80!black,line width=2pt,-rhtip] (2.9,1.2)--(3.8,1.2) node[midway,above left] {$\mathbf{u}$}; \pic at (2.5,2.5) {clock={1/10}}; \node[blue!60!black] at (3.35,2.9) {$C(u)$}; \begin{scope}[shift={(5,1)}] \draw[->] (0,0)--(4.5,0) node[right] {$x'$}; \draw[->] (0,0)--(0,4.8) node[above] {$z'$}; \draw[->] (0,0)--(1.8,1.1) node[above] {$y'$}; \node at (-0.4,4.3) {$\Sigma'$}; \draw[magenta,line width=2pt,-rhtip] (0,3.6)--(1.8,3.6) node[midway,above] {$\mathbf{v}$}; \draw[green!60!black,line width=2pt,-rhtip] (2.1,1.3)--(3.7,1.3) node[midway,below] {$\mathbf{u}'$}; \pic at (2.5,2.5) {clock={2/20}}; \node[blue!60!black] at (3.55,2.9) {$C'(u')$}; \end{scope} \end{tikzpicture} \end{document}

  • How to custom arrow style with `chemfig` within `\hreac`?
    by Explorer on July 8, 2026 at 12:23 pm

    This post is the follow-up of my previous question and jlab's answer, together with the comment: You can't use custom arrows with \hreac. It's why I redefined an existing one. Here below is the code to show "You can't use custom arrows with \hreac." % https://tex.stackexchange.com/a/764525 % https://tex.stackexchange.com/a/484655 \documentclass{article} \usepackage{chemfig} \ExplSyntaxOn \definearrow3{===}{% \CF_arrowshiftnodes{#3}% \path[allow ~ upside ~ down](\CF_arrowstartnode)--(\CF_arrowendnode)% node[pos=0,sloped,yshift=\CF_arrowdoublesep](\CF_arrowstartnode @u0){}% node[pos=0,sloped,yshift=-\CF_arrowdoublesep](\CF_arrowstartnode @d0){}% node[pos=1,sloped,yshift=\CF_arrowdoublesep](\CF_arrowstartnode @u1){}% node[pos=1,sloped,yshift=-\CF_arrowdoublesep](\CF_arrowstartnode @d1){};% \draw (\CF_arrowstartnode @u0)--(\CF_arrowstartnode @u1);% \draw (\CF_arrowstartnode @d1)--(\CF_arrowstartnode @d0);% \CF_arrowdisplaylabel{#1}{0.5}+\CF_arrowstartnode{#2}{0.5}-\CF_arrowendnode% } \ExplSyntaxOff \begin{document} \schemestart A\arrow{===}B \schemestop \hreac A >{===} B \endhreac \end{document} The custom arrow style === here, was allowed in \schemestart...\schemeend, but NOT within \hreac...\endhreac: \CF_error ...e {Package \CFname \space Error: #1.} l.28 >{===} ? Any suggestion on allowing === with \hreac? IMHO, === was common-seen with stoichiometric equation (see texdoc chemformula, sec 9. Arrows). If possible, if chemfig could provide more user-friendly interface to custom arrow, that would be better.

  • Nomenclature in 4 columns in 2 column document
    by Hkp on July 8, 2026 at 8:13 am

    I am trying to create a two-column nomenclature section in LaTeX. My goal is to have the nomenclature entries fill the first column and then continue automatically in the second column on the same page (similar to the normal behavior of a two-column document). I am currently using the following code: \input{nomenclature} \begin{multicols}{2} \printnomenclature[0.06\textwidth] \end{multicols} The code successfully creates two columns, but the nomenclature only fills the first column. Instead of continuing to the second column on the same page, it starts a new page. I have attached an example showing the issue. Could anyone please suggest how to fix this problem or recommend a better approach? Thank you very much for your help. Here is one one of my example with the same problem: \documentclass[10pt,twocolumn,a4paper]{article} \usepackage{nomencl} \makenomenclature \usepackage{multicol} \begin{document} \title{Test} \author{} \date{} \maketitle % Problematic part \begin{multicols}{2} \printnomenclature[0.06\textwidth] \end{multicols} \nomenclature[Y]{AR}{Aspect Ratio} \nomenclature[Y]{EOC}{Extended Outlet Channel} \nomenclature[Y]{HEx}{Heat Exchanger} %Roman \nomenclature[A]{$a$}{Dimensionless thermal diffusivity} \nomenclature[A]{${A_{cr,d}}$}{As-designed cross-sectional area of channels in the HEx} \nomenclature[A]{${A_{s,d}}$}{As-designed surface area of the channels in the HEx} \nomenclature[A]{${A_{s,Iso,eff.}}$}{Isolation effective surface area} \nomenclature[A]{$A_j$}{Eigenfunction coefficient} \nomenclature[A]{Bi}{Biot number} \nomenclature[A]{$c_{p,m}$}{Specific heat capacity under constant pressure} \nomenclature[A]{$c_{s}$}{Mean adiabatic speed of sound} \nomenclature[A]{$D_h$}{Hydraulic diameter} % Greek \nomenclature[G]{$\alpha$}{mean heat transfer coefficient (Biot number calculations)} \nomenclature[G]{$\alpha_{CWHF}$}{mean heat transfer coefficient with the constant wall heat flux calculation methodology} \nomenclature[G]{$\alpha_{CWT}$}{mean heat transfer coefficient with the constant wall temperature calculation methodology} \nomenclature[G]{$\Delta p$}{pressure drop} \nomenclature[G]{$\Delta\xi$}{standard error of the arithmetic mean} \nomenclature[G]{$\zeta$}{measured quantity} \nomenclature[G]{$\Theta$}{Dimensionless temperature} \nomenclature[G]{$\theta$}{Alternative dimensionless temperature notation (if used)} \nomenclature[G]{$\lambda$}{mean heat conductivity (Biot number calculations)} \nomenclature[G]{$\lambda_m$}{mean heat conductivity} \nomenclature[G]{$\lambda_j$}{Eigenvalue (j-th mode)} \nomenclature[G]{$\mu_m$}{mean dynamic viscosity} \nomenclature[G]{$\Phi_j$}{Eigenfunction (j-th mode)} \nomenclature[G]{$\xi$}{arithmetic mean} \nomenclature[G]{$\rho$}{mean density} \nomenclature[G]{$\sigma$}{standard deviation} % Subscripts \nomenclature[L]{$0$}{Reference (2D thermally fully developed length calculations)} \nomenclature[L]{$avg.$}{Average} \nomenclature[L]{$b$}{Bulk} \nomenclature[L]{$con$}{Contraction} \nomenclature[L]{$expn$}{Expansion} \nomenclature[L]{$h$}{Hydraulic} \nomenclature[L]{$hyd$}{Hydrodynamic} \nomenclature[L]{$i$}{individual data point over time} \nomenclature[L]{$in$}{Inlet} \nomenclature[L]{$j$}{individual measurement position at one axial position} \nomenclature[L]{$m$}{Mean} \nomenclature[L]{$out$}{Outlet} \nomenclature[L]{$w$}{Wall} \nomenclature[L]{$\infty$}{Infinity} \end{document} I also created one additional TEX file to create nomenclature: TEXFile name(without .tex extension)= latexmkrc add_cus_dep('nlo', 'nls', 0, 'makenomenclature'); sub makenomenclature { system("makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\""); }

  • How to tweak baseline in the state of chemical substances in chemfig `hreac` environment?
    by Explorer on July 8, 2026 at 8:11 am

    I want to replicate the following: Where (l) for liquid, and (g) for gas, now I have the following code: \documentclass{article} \usepackage[stixtwo]{fontsetup} \usepackage{chemfig} \usepackage{extarrows} \begin{document} \setchemfig{atom sep=1.5em} \hreac \chemfig{CO_2}(g) + \chemfig{[:210]O*3(--(-)-)}(g) % > ${}\xlongequal{\phantom{xxxx}}{}$ % not work with good baseline \chemfig{[:-90]O=*5(-O--(-)-O-)}(l) \endhreac \end{document}

  • How to prevent \setmainfont from affecting \mathbf in LaTeX? [duplicate]
    by Vincent on July 8, 2026 at 8:05 am

    I want to set the main text font to Arial using:\setmainfont{Arial} but I don't want the font used by \mathbf to be affected by Arial. I want \mathbf to keep the original default font. How can I achieve this? The following is my code: \documentclass{ctexart} \usepackage{amsmath,amssymb} \setmainfont{Arial} \begin{document} Hello world! with \verb|\setmainfont{Arial}| $\mathbf{N}_{+}$ \end{document} which gives: Noted that \mathbf also changed the N, which was not I was after, I want the Hello world! to be sans serif with Arial, while the \mathbf{N} gives the default bold N symbol with latinmodernmath.otf, the serif one as below:

  • Context: How to achieve the exact equivalent of LaTeX's [H] float placement for figures in ConTeXt? [duplicate]
    by Nasser on July 8, 2026 at 5:54 am

    ps. I had help with google AI working on this, but it could not figure how to do it either. I am translating a document from LaTeX to ConTeXt. In LaTeX, I use \begin{figure}[H] (from the float package) to entirely disable floating. It forces the image to stay exactly where it is written, and guarantees that any text written below the figure code stays below it on the page (instead of flowing backward to fill vertical gaps). I am trying to achieve this same behavior in ConTeXt using the export=yes backend, but my text written after the figure keeps jumping above it if the image is pushed to a new page. Here is my context code, and below that the latex code and screen shot showing the difference. context: \setupbackend[export=yes] \setupwhitespace[big] \starttext And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text \startplacefigure[ title={This is the figure caption}, reference={fig:myimage}, location={force,none} %location={here,always} ] \externalfigure[image][width=0.95\textwidth] \stopplacefigure THIS TEXT SHOULD ALWAYS BE BELOW the image above. \stoptext compiling using context B.tex gives Here is the latex compiled with lualatex \documentclass[12pt,oneside]{book} \usepackage{graphicx} \usepackage{float} \begin{document} And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text And this is some text. some random text \begin{figure}[H] \centering \includegraphics[width=0.95\textwidth]{example-image-a} \end{figure} THIS TEXT SHOULD ALWAYS BE BELOW the image above. \end{document} This is the PDF I have tried location={force}, location={here,always}, and location={force,none}, but none of them match the absolute non-floating behavior of [H]. If the image is large, the trailing text still flows backward to the previous page. How can I turn off floating entirely for a \startplacefigure block while preserving the automatic numbering, caption title, and cross-reference hook? TL 2026 on Linux. ps. google AI also asked me to add this to my question: "Mentions export=yes: This is critical because some custom box hacks in ConTeXt bypass the exporter. Telling them you need the XML export ensures they provide a solution that safely preserves your tags for your Python script."

  • tex4ht: different math generated for math in array on the HTML than PDF
    by Nasser on July 8, 2026 at 3:59 am

    This MWE \documentclass[12pt,oneside]{book} \usepackage{amsmath} \usepackage{array} \begin{document} \[ \begin {array}{>{\displaystyle }r @{\;} >{\displaystyle }l} y'&=y^{{1}/{3}}\\ y \left (0\right )&=1\\ \end {array} \] \end{document} compiled with lualatex gives But using make4ht -ulm default -a debug B.tex "mathjax,htm" gives The raw html is <!DOCTYPE html> <html lang='en-US' xml:lang='en-US'> <head><title></title> <meta charset='utf-8' /> <meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' /> <meta content='width=device-width,initial-scale=1' name='viewport' /> <link href='B.css' rel='stylesheet' type='text/css' /> <meta content='B.tex' name='src' /> <script>window.MathJax = { tex: { tags: "ams", }, }; </script> <script async='async' id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js' type='text/javascript'></script> </head><body> <div class='mathjax-block'>\[ \begin {array}{&gt;{\displaystyle }r @{\;} &gt;{\displaystyle }l} y'&amp;=y^{{1}/{3}}\\ y \left (0\right )&amp;=1\\ \end {array} \]</div> </body> </html> Is there a way to fix the formatting in HTML so it is like the PDF (i.e. the spacings around the = is off in mathjax) ps. I know I can change the latex. But I have important reason for using \begin {array}{>{\displaystyle }r @{\;} >{\displaystyle }l} instead of say align or something else (too long to explain here, it depends on context I am using this latex code in). This is only a MWE to show the difference. So I do not want to change the latex code. ps. It should be possible to correct this using new mathjax configuration in my .cfg, but I am not sure how. I think I know of only one person who would know how to do this 🙂 Update Here is screen shot showing difference between fonts used by V 3.5 and V 4.0

  • context: image location and the export folder created confusion
    by Nasser on July 8, 2026 at 12:01 am

    I am using context. When I add this line to the .tex file in order to export an XML file: (If I do not add this, no XML will be generated) \setupbackend[export=yes] and say my file is called A.tex, context automatically creates a folder called A-export/ and then puts the created XML file inside this folder. I am using python to convert the XML to HTML. But the problem is that my image folder is now one level above where the XML file is. Here is the tree I have A.tex images/image_1.pdf %this folder has all images A-export/A.xml In my .tex code I have \externalfigure[images/image_1][width=0.75\textwidth] So when I cd to A-export folder and try to convert A.xml to A.htm, all references inside A.xml point to images/image_1 but this is not the correct path now, as this is relative to the parent folder. Question is: Is there a way to tell context NOT to create A-export/ at all, and just put the XML file and any other files it generates using the command content A.tex in same folder? This will make life much simpler. This way I can use my python convert script and not have to manually copy things around or adjust image file paths in XML each time? TL 2026 on Linux

  • Cleveref custom cross-reference type gets swallowed in presence of amsmath
    by Ben Steffan on July 7, 2026 at 5:51 pm

    I am trying to solve the same problem as the OP of this question, that is, set up some way to distinguish between equations and diagrams in a document and have it automatically be recognized by cleveref. The top answer there works beautifully... that is, as long as you don't load amsmath. If you do load it, then \cref will start referring to diagrams as equations again. For sake of self-containedness, here's an MWE based on that in the linked answer: \documentclass{article} \usepackage{tikz} \usetikzlibrary{cd} %\usepackage{amsmath} \usepackage{hyperref} \usepackage[noabbrev]{cleveref} \newcounter{diagram} \newenvironment{diagram}[1][]{% \begin{equation}% \begin{tikzcd}[#1]% \setcounter{diagram}{\value{equation}}% \addtocounter{diagram}{-1}% \refstepcounter{diagram}% }{% \end{tikzcd}% \end{equation}% } \crefname{diagram}{diagram}{diagrams} \creflabelformat{diagram}{(#2#1#3)} \begin{document} \begin{diagram}\label{diag:a} A \ar[r] & B \end{diagram} The above is \cref{diag:a}. \end{document} This produces the diagram together with "The above is diagram (1).", as desired. If you uncomment line 5, it instead produces the diagram with "The above is equation (1)." I'd be grateful for a solution with a similar use pattern that works in the presence of amsmath. In particular, I'd like to avoid the triple nesting \begin{diagram} \begin{equation} \begin{tikzcd} % ... \end{tikzcd} \end{equation} \end{diagram} that is common to the other answers at the linked question, if possible.

  • What is the correct way to use the longextra style of glossaries-extra with groups?
    by Tristan Nemoz on July 7, 2026 at 3:12 pm

    I'm trying to use the longextra, and more particularly the long-name-desc-loc style of glossaries-extra, but I'm encountering one problem : the table overflows on the margin. MWE: \documentclass[a4paper, 11pt]{book} \usepackage{showframe} % Margins \usepackage[% a4paper,% inner=1.5in,% outer=1in,% top=1in,% bottom=1in% ]{geometry} \usepackage[linktocpage=true]{hyperref} \usepackage[ debug=true,% toc=false, section=section, acronym,% Define acronyms' glossary nomain,% Don't define main glossary record, stylemods=longextra, style=long-name-desc-loc ]{glossaries-extra} \setabbreviationstyle[acronym]{long-short} \newglossary[slg]{symbolslist}{syi}{syg}{Notations used throughout the thesis} \newcommand{\glsparam}[3][]{\glslink[#1]{#2}{\expandafter\csname #2\endcsname{#3}}} \renewcommand*{\glslongextraGroupHeading}[2]{% \glsxtrgetgrouptitle{#2}{\thisgrptitle}% \glslongextraHeaderFmt\thisgrptitle \tabularnewline*\noalign{\vskip\normalbaselineskip}% } %\glslongextraSetWidest{Generic functions} \glsxtrsetgrouptitle{glsgroupset}{Sets} \newcommand{\unitarygls}[1]{\ensuremath{\mathcal{U}_{#1}}} \newglossaryentry{unitarygls}{% user1={unitarygls},% name=\ensuremath{\unitarygls{d}},% description={The unitary group in dimension \(d\)}, type=symbolslist, group={glsgroupset} } \newcommand{\unitary}[1]{\glsparam{unitarygls}{#1}} \glsxtrsetgrouptitle{glsgroupfunctions}{Generic functions} \DeclareMathOperator{\Negl}{negl} \newcommand{\neglgls}[1]{\ensuremath{\Negl\left(#1\right)}} \newglossaryentry{neglgls}{% user1={neglsgls},% name={\neglgls{x}},% description={A negligible function of \(x\). That is, for any polynomial \(P\), we have \(\neglgls{x}<\frac{1}{P(x)}\) for sufficiently large \(x\)}, type=symbolslist, group={glsgroupfunctions} } \newcommand{\negl}[1]{\glsparam{neglgls}{#1}} %% Haar measures \glsxtrsetgrouptitle{glsgrouphaarmeasures}{Haar measures} \newcommand\haarugls[1]{\ensuremath{\mu_{\unitary{#1}}}} \newglossaryentry{haarugls}{% user1={haarugls},% name={\haarugls{d}},% description={The Haar measure on \(\unitary{d}\)}, type=symbolslist, group={glsgrouphaarmeasures} } \newcommand{\haaru}[1]{\glsparam{haarugls}{#1}} \begin{document} \setglossarysection{chapter} \printunsrtglossary[type=symbolslist] \newpage Let us use \unitary{d} here. \end{document} I'm compiling using latexmk with this .latexmkrc file and using LuaLaTeX. If I remove the groups, then the page doesn't overflow, but the page number still doesn't show up. I tried to use glslongextraSetWidest, which makes the table overflow less, but it still doesn't fit exactly right. Am I not using the right compilation method? What am I missing here?

  • `hidden` attribute in `\HCode` removed unless given value
    by Stephen Powell on July 7, 2026 at 3:00 pm

    When I convert this file \documentclass{article} \begin{document} \HCode{<span hidden>}abc\HCode{</span>} \HCode{<span hidden="true">}def\HCode{</span>} \end{document} to HTML using make4ht (MikTeX 24.4), the relevant part of the output is: <span>abc </span> <span hidden='true'>def</span> It seems that the attribute hidden has been stripped from the first <span>, where it has no value, but kept in the second <span>, where it is given a (redundant) value. Is this the intended behavior or a bug? Is it documented somewhere?

  • Equation numbers with symbol not colored in the alignat environment
    by Sebastiano on July 7, 2026 at 1:18 pm

    Why are equation numbers not colored in the alignat environment? Equation numbers are colored correctly in equation (for example), but not in alignat. Is this expected behavior, or am I missing some configuration? Related: An elegant aspect for enumerate the equations of a book \documentclass{book} \usepackage[most,theorems, breakable,skins]{tcolorbox} \usepackage{mathtools,amssymb,amsthm} \usepackage[margin=1in]{geometry} \usepackage[svgnames, dvipsnames, table, x11names]{xcolor} \usepackage{pifont} \definecolor{ocre}{RGB}{243,102,25} %---------------------------------------------------------------------------------- % Change number equations with sections %---------------------------------------------------------------------------------- \usepackage{chngcntr} \counterwithin{equation}{section} \renewcommand{\theequation}{\thesection-\arabic{equation}} \newcommand{\eqnnumsymbol}{\textcolor{ocre}{\reflectbox{\ding{228}}}} \makeatletter \newtagform{bbrackets}% <name> [\textbf]% Internal style {(}% Left bracket {\ifnum\pdfstrcmp{\@currenvir}{equation}=0 \eqnnumsymbol% \else \ifnum\pdfstrcmp{\@currenvir}{align}=0 \eqnnumsymbol% \fi \fi )}% Right bracket \makeatother \usetagform{bbrackets} \newcounter{dummy} \numberwithin{dummy}{section} \theoremstyle{ocrenumbox} \newtheorem{theoremeT}[dummy]{Teorema} \newtheorem{problem}{Problema}[chapter] \newtheorem{exerciseT}{Esercizio}[chapter] \theoremstyle{blacknumex} \newtheorem{exampleT}{Esempio}[chapter] \theoremstyle{blacknumbox} \newtheorem{vocabulary}{Vocabolario}[chapter] \newtheorem{definitionT}{Definizione}[section] \newtheorem{corollaryT}[dummy]{Corollario} \newtheorem{lemmaT}[dummy]{Lemma} \newtheorem{osservationT}[dummy]{Osservazione} \theoremstyle{ocrenum} \newtheorem{propositionT}[dummy]{Proposizione} % Definition box \newtcolorbox{dBox}{ enhanced, breakable, colback=LightGoldenrodYellow, colframe=LightSlateGray, boxrule=0pt, borderline west={4pt}{0pt}{LightSlateGray}, sharp corners, left=5pt, right=5pt, top=2pt, bottom=5pt, before skip=7pt, after skip=7pt } \newenvironment{definition} {\begin{dBox}\begin{definitionT}} {\end{definitionT}\end{dBox}} \begin{document} \begin{definition} Data $y_{0}\in\mathcal{C}^{1}([a,b])$ e $\delta>0$ si definiscono due intorni di $y_{0}$: \begin{alignat}{2} \mathcal{I}_{\delta}^{0}(y_{0}) &=\{y\in\mathcal{C}^{1}([a,b])\colon d_{0}(y,y_{0})<\delta\} &\qquad& \text{\textbf{intorno forte} di $y_{0}$ in $\mathcal{C}^{1}([a,b])$,}\\ \mathcal{I}_{\delta}^{1}(y_{0}) &=\{y\in\mathcal{C}^{1}([a,b])\colon d_{1}(y,y_{0})<\delta\} && \text{\textbf{intorno debole} di $y_{0}$ in $\mathcal{C}^{1}([a,b])$.} \end{alignat} \begin{equation} \mathcal{I}_{\delta}^{0}(y_{0}) \end{equation} \end{definition} \begin{equation} \mathcal{I}_{\delta}^{0}(y_{0}) \end{equation} \end{document} Addendum %------------------------------------------------------------------- % Change number equations with sections with ding %------------------------------------------------------------------- \usepackage{chngcntr} \counterwithin{equation}{section} \newcommand{\eqnnumsymbol}{\textcolor{ocre}{\reflectbox{\ding{228}}}} \newcommand{\eqnformat}{% \ifnum\pdfstrcmp{\@currenvir}{equation}=0 \bfseries\sffamily% \else \ifnum\pdfstrcmp{\@currenvir}{align}=0 \bfseries\sffamily% \else \ifnum\pdfstrcmp{\@currenvir}{multline}=0 \bfseries\sffamily% \else \ifnum\pdfstrcmp{\@currenvir}{gather}=0 \bfseries\sffamily% \else \mdseries \fi\fi\fi\fi} \newtagform{bbrackets}% <name> [\eqnformat]% Internal style {(\bgroup}% {\ifnum\pdfstrcmp{\@currenvir}{equation}=0 \eqnnumsymbol% \else \ifnum\pdfstrcmp{\@currenvir}{align}=0 \eqnnumsymbol% \else \ifnum\pdfstrcmp{\@currenvir}{multline}=0 \eqnnumsymbol% \else \ifnum\pdfstrcmp{\@currenvir}{gather}=0 \eqnnumsymbol% \fi\fi\fi\fi \egroup)}% Right bracket \usetagform{bbrackets}

  • Vertically center cells in tabularray [duplicate]
    by Thomas on July 7, 2026 at 12:19 pm

    I'm trying to display three logos for the first slide of a presentation, that have various sizes and dimensions. I'm trying to align them vertically, but I do not manage to set the option of my tblr environment right. I found a silimar question on this forum, but the solution proposed (vertically center the last column only) is not working in my case. The example of this previous topic works well, but when I try to use it with my images, the other cells are no longer vertically centered but aligned at the bottom... Here is a MWE, I my beamer I use \includegraphics instead of the TikZ macros here, but the results is the same. \documentclass{article} \usepackage{tikz} \usepackage{tabularray} \newcommand{\logoA}{\tikz \draw [fill=red!50] (0,0) rectangle (2,1);} \newcommand{\logoB}{\tikz \draw [fill=blue!50!yellow] (0,0) rectangle (3,1);} \newcommand{\logoC}{\tikz \draw [fill=green!50] (0,0) circle (1.2cm);} \begin{document} \begin{tblr}{colspec = {Q[c,m]Q[c,m]Q[c,m]}} \hline \logoA & \logoB & \logoC \\ \hline % hline only for visualize the border of the table \end{tblr} \end{document}

  • Cannot use the variable (obtained from shell) in hyperref
    by myhsia on July 7, 2026 at 10:37 am

    Inspired by \sys_get_shell:nnN seems to strip newlines from shell output, I want to use the variable obtained from the shell in hyperref: both the link and text. But two problems arise: For the text, it returns You can't use `the character t' after \the. <argument> t Then, I have to use \tl_gset:No (Only o-type works! For e-, x-, f- types, none of them work) instead of \tl_gset:Ne. The text appears correctly. For the link: \filename hasn't expanded (since o-type expands only once), and I cannot use e-, x-, or f- type. After I clicked the link in PDF, it returns https://test.xyz//tl_retokenize:n {tmpabc.myhsia} How to make it fully expanded in the first arg of \hyperref? MWE \documentclass{article} \usepackage{hyperref} \begin{filecontents}{tmpabc.myhsia} test \end{filecontents} \begin{document} \ExplSyntaxOn \NewDocumentCommand \Getfilename { m } { \__ctxdoc_shell_hash:e {#1} } \tl_new:N \filename \cs_new_protected:Nn \__ctxdoc_shell_hash:n { \sys_get_shell:nnN { ls ~ *. '#1' } { \cctab_select:N \c_other_cctab \endlinechar=10 } \l_tmpa_tl \tl_set:No \filename { \tl_retokenize:V \l_tmpa_tl } } \cs_generate_variant:Nn \__ctxdoc_shell_hash:n { e } \ExplSyntaxOff \Getfilename {myhsia} \title{zzz} \author{asjkl\thanks{% \href{https://test.xyz/\filename}{test~\filename} }} \maketitle \end{document} EDIT: I've also tried \endlinechar=13/15/12/11... as described in the TeX Book, but none of them work

  • `\lastpagenumber` is off by one [closed]
    by guemax on July 7, 2026 at 7:32 am

    I noticed that the \lastpagenumber is always one higher than the actual amount of pages (for example, showing 2 in a one page PDF instead of 1). It does not depend on the number of pages, I have seen this in one, two and three page PDFs. This is my MWE: \setuppagenumbering[location=,] \starttext Current: \pagenumber \\ Last: \lastpagenumber \stoptext This also applies to \totalnumberofpages, \lastpage. My version is 2026.02.19 11:49. Thanks in advance!

  • Left indices for atoms
    by Brasil on July 6, 2026 at 10:03 pm

    Is it possible to right align the left upper and lower indices that characterize atomic properties using \chemfig? Example: \chemfig{^{14}_6C} prints out the following: However, I would like to have the following: How to get it? EDIT: adding a MWE \documentclass[border=1mm]{standalone} \usepackage{chemfig} \begin{document} \chemfig{^{14}_6C} \end{document}

  • Simplest way to fill format text using a loop, preferably using built in loops?
    by scribe on July 6, 2026 at 9:29 pm

    Here is what I want to do in LaTeX but in Python, data = [ ('path/to/file1', 'Caption for file1.', 'fig:label1'), ('path/to/file2', 'Caption for file2.', 'fig:label2'), ('path/to/file3', 'Caption for file3.', 'fig:label3'), ('path/to/file4', 'Caption for file4.', 'fig:label4') ] for entry in data: print( f'\\begin{{figure}}[htbp]\n\ \\centering\n\ \\includegraphics[width=0.8\\textwidth]{{{entry[0]}}}\n\ \\caption{{{entry[1]}}}\n\ \\label{{{entry[2]}}}\n\\end{{figure}}' ) This will result in the following text over the console, \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{path/to/file1} \caption{Caption for file1.} \label{fig:label1} \end{figure} \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{path/to/file2} \caption{Caption for file2.} \label{fig:label2} \end{figure} \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{path/to/file3} \caption{Caption for file3.} \label{fig:label3} \end{figure} \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{path/to/file4} \caption{Caption for file4.} \label{fig:label4} \end{figure} How do I do this but in LaTeX? I know how to run simple loops like shown here: https://www.dickimaw-books.com/latex/admin/html/docsvlist.shtml \newcommand*{\mylist}{Parrot,Canary,Zebra,Arara,Duck}% \makeatletter \@for\thisitem:=\mylist\do{\thisitem. } \makeatother However, I not sure how to run a loop over a list of lists and index the inner list.

  • Heavy bold \mathsf{} in mtpro2
    by Sebastiano on July 6, 2026 at 2:45 pm

    What is the command to use in mtpro2 (here the v. lite https://ctan.org/pkg/mtp2lite) the heavy bold \mathsf{F}? Actually I not remembering this. I have tried with \boldsymbol, \boldmath but nothing. \documentclass{article} \usepackage{amsmath} \usepackage[lite]{mtpro2} \begin{document} $\mathsf{F}\mathbold{\mathsf{F}} \mbf{\mathsf{F}}$ \end{document} I can't use bm package because there is mtpro2. I have seen the pag. 6/7 of the documentation: https://tug.ctan.org/fonts/mtp2lite/texmf/doc/fonts/mtpro2/mtpro2.pdf.

  • Custom enumerate items using item options
    by profj on July 5, 2026 at 9:04 pm

    I'm trying to customize item labels within an enumerate list on the fly, using the item options. However, I don't fully understand how it works. The code below produces unexpected results, and different patterns emerge for the first layer of the list and the second layer of the list. I'm trying to do this without using the enumitem package, if possible. I know how to manually edit the items, but want the counter to be more automated in the inner list. Here is a minimum working example: \documentclass{article} \begin{document} \begin{enumerate} \item[\theenumi.] Why is this 0, instead of 1? \begin{enumerate} \item[\theenumii.] Why is this blank? \item[\theenumii.] Why is this blank? \item[\theenumii.] Why is this blank? \end{enumerate} \item And this adds one to the counter \item And this adds one to the counter \end{enumerate} \begin{enumerate} \setcounter{enumi}{1} \item[\theenumi.] Now this is 1, as expected. \begin{enumerate} \setcounter{enumii}{1} \item[\theenumii.] And this is a, as expected. \item[\theenumii.] Why doesn't this add one to the counter? \item[\theenumii.] Why doesn't this add one to the counter? \end{enumerate} \item And why does this still add one to the counter? \item And why does this still add one to the counter? \end{enumerate} \end{document} Here's the output:

  • PDF Type 6 shadings: How to properly build them using TeX?
    by Jasper Habicht on July 5, 2026 at 8:19 pm

    This question might be off-topic, but the reason I ask it here is that I want to eventually create a module for a LaTeX package to enable the use of conic gradients via PDF Type 6 shadings which are also known as Coons Patch Mash Tiling. Also, please do not read this as "fix my issue for me" question. Rather, I appreciate any pointers to where I could be wrong. I understand that this topic is highly specialised, so I don't expect anybody to actually fix it completely or even partially. Now, as far as I understand, such shadings are essentially encoded as object stream in a PDF with the following object structure as basis (of course the object number and the contents of the stream and its length are different in a real document): 1 0 obj << /ShadingType 6 /ColorSpace /DeviceRGB /BitsPerCoordinate 16 /BitsPerComponent 8 /BitsPerFlag 2 /Decode [ 0 100 0 100 0 1 0 1 0 1 ] /Length 0 >> stream 00... endstream The stream defines the patches. Each path can be thought of a (distorted) rectangle of which the four sides are described as cubic Bézier curves. Therefore, each of the four edges of the patch has four control points, which means that there are twelve such points needed to describe a patch. Also, each corner of the patch is assigned a color. Now, in a mesh, the patches are attached to each other so that they share a common edge. To identify the shared edge, a flag is added to each patch which describes which edge is shared. A 0 flag identifies the initial patch, a 1 flag means that the right edge of the previous patch is used as the left edge of the current patch. There are more flags, but we only need these two for this case. If edges are shared, the relevant control points and colors are omitted in the description of the patch in the stream. So, if we take the sizes as described by /BitsPerCoordinate, \BitsPerComponent and /BitsPerFlag (let us assume 16, 8, and 2 respectively, also let us assume RGB), we get the following binary representation of the a patch with flag 0: Flag: 2 bits Points: 12 points, 16 bits for the x coordinate, 16 bits for the y coordinate Colors: 4 colors, 8 bits for the red part, 8 bits for the green part, 8 bits for the blue part For a patch with flag 1, we get: Flag: 2 bits Points: 8 points, 16 bits for the x coordinate, 16 bits for the y coordinate Colors: 2 colors, 8 bits for the red part, 8 bits for the green part, 8 bits for the blue part Maybe I got something wrong here already, which might explain why things don't work. Anyways, my question is why the following does not result in the desired output. My idea for a conic shading was to create patches that look like slices of a pie. Like this: I first tried without the rounded edge and just set the control points to be equal to the relevant corner, hoping that this would result in a triangle-shaped rectangle. So my patches would adhere to the following logic: Patch 1: Flag = 0 Points: (50, 50) (50, 50) (100, 50) (100, 50) (100, 50) (50, 100) (50, 100) (50, 100) (50, 50) (50, 50) (50, 50) (50, 50) Colors: (255,0,0) (191,0,64) (191,0,64) (255,0,0) Patch 2: Flag = 1 Points: (50, 100) (0, 50) (0, 50) (0, 50) (50, 50) (50, 50) (50, 50) (50, 50) Colors: (128,0,128) (128,0,128) Patch 3: Flag = 1 Points: (0, 50) (50, 0) (50, 0) (50, 0) (50, 50) (50, 50) (50, 50) (50, 50) Colors: (64,0,191) (64,0,191) Patch 4: Flag = 1 Points (50, 0) (100, 50) (100, 50) (100, 50) (50, 50) (50, 50) (50, 50) (50, 50) Colors: (0,0,255) (0,0,255) But, the output is totally not what it should look like although I think that the stream is correct. Acrobat also complains about something being wrong. It looks like this: 21 0 obj << /ShadingType 6 /ColorSpace /DeviceRGB /BitsPerCoordinate 16 /BitsPerComponent 8 /BitsPerFlag 2 /Decode [ 0 100 0 100 0 1 0 1 0 1 ] /Length 350 >> stream 20002000200020003FFFE0003FFFE0003FFFE00020003FFFE0003FFFE0003FFFE00020002000200020002000200020003FC0002FC0102FC0103FC00018000FFFF00008000000080000000800080008000800080008000800080008000800080800080400020002000000020000000200000002000200020002000200020002000200010002FD0002FD80000000FFFF8000FFFF8000FFFF8000800080008000800080008000800080000000FF0000FF endstream endobj So, my question is: What am I missing? Where is the probably simple but basic problem? The following is an MWE intended for testing. It contains a few helper funcitons and the relevant functions from the package where the code eventually is supposed to be included. It should work with PDFLaTeX and LuaLaTeX: \DocumentMetadata{uncompress} \documentclass[]{article} \usepackage{l3draw} \ExplSyntaxOn % a few helper functions \cs_new:Npn \__hawkdraw_tuple_use_i:w ( #1 , #2 ) {#1} \cs_new:Npn \hawkdraw_tuple_use_i:n #1 { \fp_to_dim:n { \exp_last_unbraced:Ne \__hawkdraw_tuple_use_i:w { \fp_eval:n {#1} } } } \cs_new:Npn \__hawkdraw_tuple_use_ii:w ( #1 , #2 ) {#2} \cs_new:Npn \hawkdraw_tuple_use_ii:n #1 { \fp_to_dim:n { \exp_last_unbraced:Ne \__hawkdraw_tuple_use_ii:w { \fp_eval:n {#1} } } } \cs_new_protected:Npn \hawkdraw_support_pdfliteral:n #1 { \sys_if_engine_luatex:TF { \tex_pdfextension:D literal {#1} } { \tex_pdfliteral:D {#1} } } \cs_new_protected:Npn \hawkdraw_support_pdfxform:nnN #1#2#3 { \tex_immediate:D \tex_pdfxform:D \tl_if_empty:nF {#1} { attr {#1} } resources {#2} #3 } \cs_new_protected:Npn \hawkdraw_support_pdflastxform: { \tex_pdflastxform:D } \cs_new_protected:Npn \hawkdraw_support_pdfrefxform:N #1 { \tex_pdfrefxform:D \int_use:N #1 \scan_stop: } \cs_generate_variant:Nn \hawkdraw_support_pdfrefxform:N { c } % === % relevant code from the package \box_new:N \l__hawkdraw_shading_object_box \cs_new_protected:Npn \hawkdraw_shading_set:nnn #1#2#3 { \hbox_set_to_wd:Nnn \l__hawkdraw_shading_object_box { 100bp } { \vbox_to_ht:nn { 100bp } { \skip_vertical:n { 0pt plus 1fil } \hawkdraw_support_pdfliteral:n { /Sh ~ sh } } \skip_horizontal:n { 0pt plus 1fil } } \pdf_object_new:n { hawkdraw_shading_ #1 } \tl_if_empty:nTF {#3} { \pdf_object_write:nne { hawkdraw_shading_ #1 } { dict } { #2 } } { \pdf_object_write:nne { hawkdraw_shading_ #1 } { stream } { {#2} {#3} } } \hawkdraw_support_pdfxform:nnN { } { /Shading ~ << ~ /Sh ~ \pdf_object_ref:n { hawkdraw_shading_ #1 } ~ >> } \l__hawkdraw_shading_object_box \int_const:cn { c__hawkdraw_shading_ #1 _int } { \hawkdraw_support_pdflastxform: } } \cs_new_protected:Npn \hawkdraw_shading_use:n #1 { \hawkdraw_support_pdfrefxform:c { c__hawkdraw_shading_ #1 _int } } % === \cs_new:Npn \hawkdraw_convert_bin_to_hex:n #1 { \__hawkdraw_convert_bin_to_hex_aux:w #1 \q_stop } \cs_generate_variant:Nn \hawkdraw_convert_bin_to_hex:n { e } \cs_new:Npn \__hawkdraw_convert_bin_to_hex_aux:w #1 \q_stop { \int_compare:nNnF { \tl_count:n {#1} } < { 4 } { \__hawkdraw_convert_bin_to_hex_aux:NNNNw #1 \q_stop } } \cs_new:Npn \__hawkdraw_convert_bin_to_hex_aux:NNNNw #1#2#3#4#5 \q_stop { \int_format:nn { \int_from_bin:n {#1#2#3#4} } { 1X } \__hawkdraw_convert_bin_to_hex_aux:w #5 \q_stop } % === \cs_generate_variant:Nn \color_export:nnN { e } \cs_generate_variant:Nn \str_set_convert:Nnnn { Ne } \seq_new:N \l__hawkdraw_shading_conic_colors_seq \seq_new:N \l__hawkdraw_shading_conic_colors_bin_seq \cs_new_protected:Npn \hawkdraw_shading_conic_stream:N #1 { \tl_set:Ne #1 { \hawkdraw_convert_bin_to_hex:e { \seq_map_indexed_function:NN \l__hawkdraw_shading_conic_colors_bin_seq \__hawkdraw_shading_conic_stream_aux:nn } } } \cs_new:Npn \__hawkdraw_shading_conic_stream_aux:nn #1#2 { % skip first entry representing color at first edge \int_compare:nNnF {#1} = { 1 } { % flag (2 bit) \int_format:nn { \int_compare:nNnTF {#1} = { 2 } { 0 } { 1 } } { 0>2b } % four patches for each of the n colors % patch is pie segment going from 0 to 360 / ( n * 4 ) % points of first patch (12 points, 2 x 16 bits each \int_compare:nNnT {#1} = { 2 } { \prg_replicate:nn { 2 } { \__hawkdraw_shading_conic_stream_point_polar:nn { 0 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 2 ) } } \prg_replicate:nn { 2 } { \__hawkdraw_shading_conic_stream_point_polar:nn { 1 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 2 ) } } } \__hawkdraw_shading_conic_stream_point_polar:nn { 1 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 2 ) } \prg_replicate:nn { 3 } { \__hawkdraw_shading_conic_stream_point_polar:nn { 1 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 1 ) } } \prg_replicate:nn { 3 } { \__hawkdraw_shading_conic_stream_point_polar:nn { 0 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 1 ) } } \__hawkdraw_shading_conic_stream_point_polar:nn { 0 } { 360 / ( \seq_count:N \l__hawkdraw_shading_conic_colors_bin_seq - 1 ) * ( #1 - 2 ) } % colors (4 colors, 3 x 8 bits each) \int_compare:nNnT {#1} = { 2 } { \seq_item:Nn \l__hawkdraw_shading_conic_colors_bin_seq { #1 - 1 } } #2 #2 \int_compare:nNnT {#1} = { 2 } { \seq_item:Nn \l__hawkdraw_shading_conic_colors_bin_seq { #1 - 1 } } } } \cs_new:Npn \__hawkdraw_shading_conic_stream_point_polar:nn #1#2 { % get from point polar % normalize to 65535 \int_format:nn { \fp_to_int:n { \hawkdraw_tuple_use_i:n { ( 50bp , 50bp ) + ( \draw_point_polar:nn { #1 * 50bp } {#2} ) } / 100bp * 65535 } } { 0>16b } \int_format:nn { \fp_to_int:n { \hawkdraw_tuple_use_ii:n { ( 50bp , 50bp ) + ( \draw_point_polar:nn { #1 * 50bp } {#2} ) } / 100bp * 65535 } } { 0>16b } } \cs_new_protected:Npn \__hawkdraw_shading_color_set_bin_value:n #1 { \seq_put_right:Ne \l__hawkdraw_shading_conic_colors_bin_seq { \int_format:nn { \int_from_hex:n {#1} } { 0>24b } } } \cs_generate_variant:Nn \__hawkdraw_shading_color_set_bin_value:n { V } % start , % start!25!mid , start!50!mid , start!75!mid , mid , % mid!25!end , mid!50!end , mid!75!end , end \cs_new_protected:Npn \hawkdraw_shading_color_set_bin_values:n #1 { \seq_clear:N \l__hawkdraw_shading_conic_colors_bin_seq \seq_set_from_clist:Nn \l__hawkdraw_shading_conic_colors_seq {#1} \seq_map_indexed_inline:Nn \l__hawkdraw_shading_conic_colors_seq { \int_compare:nNnTF {##1} = { 1 } { \color_export:enN { \seq_item:Nn \l__hawkdraw_shading_conic_colors_seq { 1 } } { HTML } \l__hawkdraw_shading_color_value_tmp_tl \__hawkdraw_shading_color_set_bin_value:V \l__hawkdraw_shading_color_value_tmp_tl } { \color_export:enN { \seq_item:Nn \l__hawkdraw_shading_conic_colors_seq { ##1 - 1 } ! 75 ! ##2 } { HTML } \l__hawkdraw_shading_color_value_tmp_tl \__hawkdraw_shading_color_set_bin_value:V \l__hawkdraw_shading_color_value_tmp_tl \color_export:enN { \seq_item:Nn \l__hawkdraw_shading_conic_colors_seq { ##1 - 1 } ! 50 ! ##2 } { HTML } \l__hawkdraw_shading_color_value_tmp_tl \__hawkdraw_shading_color_set_bin_value:V \l__hawkdraw_shading_color_value_tmp_tl \color_export:enN { \seq_item:Nn \l__hawkdraw_shading_conic_colors_seq { ##1 - 1 } ! 25 ! ##2 } { HTML } \l__hawkdraw_shading_color_value_tmp_tl \__hawkdraw_shading_color_set_bin_value:V \l__hawkdraw_shading_color_value_tmp_tl \color_export:enN { ##2 } { HTML } \l__hawkdraw_shading_color_value_tmp_tl \__hawkdraw_shading_color_set_bin_value:V \l__hawkdraw_shading_color_value_tmp_tl } } } \cs_new_protected:Npn \hawkdraw_shading_conic:n #1 { \int_if_exist:cF { c__hawkdraw_shading_ conic . #1 _int } { \hawkdraw_shading_color_set_bin_values:n {#1} \hawkdraw_shading_conic_stream:N \l_tmpa_tl \hawkdraw_shading_set:nnn { conic . #1 } { /ShadingType ~ 6 ~ /ColorSpace ~ /DeviceRGB ~ /BitsPerCoordinate ~ 16 ~ /BitsPerComponent ~ 8 ~ /BitsPerFlag ~ 2 ~ /Decode ~ [ ~ 0 ~ 100 ~ % x 0 ~ 100 ~ % y 0 ~ 1 ~ % R 0 ~ 1 ~ % G 0 ~ 1 ~ % B ] ~ } { \tl_use:N \l_tmpa_tl } } } \ExplSyntaxOff \begin{document} \ExplSyntaxOn \hawkdraw_shading_conic:n { red , blue } \hbox_set:Nn \l_tmpa_box { \hawkdraw_shading_use:n { conic.red,blue } } \box_use:N \l_tmpa_box \ExplSyntaxOff \end{document}

  • French text in superscript
    by Phil8544 on July 5, 2026 at 4:08 pm

    What package I have to use if I want to get French text in superscript? I want to write "57ème croche sur 92" with the term "ème" in superscript.