• How to get the exact width of a tabbing row?
    by mbert on August 4, 2026 at 9:14 pm

    In source2e, the box \@curline is described as the contents of current line, excluding left margin skip, and excluding contents of current field Thus I would expect that the width of \@curline in the last field would be everything up to but not including the last field. This is almost correct, but it seems this width is slightly larger than expected. Here's an example. \documentclass{article} \newlength{\firstrowlen} \newlength{\secondrowlen} \begin{document} \makeatletter \begin{tabbing} some text \= some more text \= even more text \= blub \`\global\firstrowlen=\wd\@curline \\ abc \> def \> ghi \> jkl \`\global\secondrowlen=\wd\@curline \end{tabbing} \noindent \raisebox{36pt}[0pt]{\rule{\firstrowlen}{1pt}} \noindent \raisebox{36pt}[0pt]{\rule{\secondrowlen}{1pt}} \end{document} As can be seen, the length of the rules, which are the width of \@curline from each row, extend slightly farther than the actual content. It seems they extend the same amount for both rows. What is this extra amount and where is it coming from? I could not seem to figure this out from the code in source2e.

  • more hooks timing of `\SetTblrInner` in `tabularray`?
    by Explorer on August 4, 2026 at 4:14 pm

    This is the follow-up of my previous answer. Let's consider the following example: \documentclass{article} \usepackage{array} \usepackage{tabularray} \begin{document} \NewColumnType{W}[1]{>{\raggedright\hangindent=1em\arraybackslash}p{#1}}% \noindent\begin{tblr}{ colspec={@{}XW{20pc}@{}}, row{1} = {l,b}, cell{2}{1} = {c=2}{c,font=\itshape}, } \toprule Variable & Sources\break Bottom\\ \midrule Supply variables & \\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ \bottomrule \end{tblr} \end{document} It gives what we want: However, consider the following code, note the order: \documentclass{article} \usepackage{array} \usepackage{tabularray} \UseTblrLibrary{booktabs} \begin{document} \NewColumnType{W}[1]{>{\raggedright\hangindent=1em\arraybackslash}p{#1}}% \noindent\begin{tblr}{ row{1} = {l,b},%<-------------- colspec={@{}XW{20pc}@{}}, cell{2}{1} = {c=2}{c,font=\itshape}, } \toprule Variable & Sources\break Bottom\\ \midrule Supply variables & \\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ \bottomrule \end{tblr} \end{document} If I put row{1} = {l,b} before colspec={@{}XW{20pc}@{}}, the W would overwrite the b. Thus, row{1} = {l,b} not work. Now Let's consider original requirement, says that we have multiple tabulars with different colspec, now the global setting \SetTblrInner, could only insert the settings at the beginning of the Inner-Specification, that was not so fliexble, any suggestion or workaround? \documentclass{article} \usepackage{array} \usepackage{tabularray} \UseTblrLibrary{booktabs} \begin{document} \NewColumnType{W}[1]{>{\raggedright\hangindent=1em\arraybackslash}p{#1}}% \SetTblrInner{row{1} = {l,b}} \noindent\begin{tblr}{ colspec={@{}XW{20pc}@{}}, } \toprule Variable & Sources\break Bottom\\ \midrule Supply variables & \\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ \bottomrule \end{tblr} \bigskip \noindent\begin{tblr}{ colspec={@{}XW{15pc}X@{}}, } \toprule Variable & Sources\break Bottom & Variable\\ \midrule Supply variables & & \\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities & has been examined\\ \bottomrule \end{tblr} \bigskip \noindent\begin{tblr}{ colspec={@{}XW{12pc}XX@{}}, } \toprule Variable & Sources\break Bottom & Variable & Variable\\ \midrule Supply variables & & & \\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities & has been examined under three types of agglomeration externalities & has been examined\\ \bottomrule \end{tblr} \end{document} I want the \SetTblrInner{row{1} = {l,b}} could be inserted after variable colspec={@{}XW{12pc}XX@{}}, but I seemly found not built-in support.

  • table column heading bottom alignment - tabularray
    by MadyYuvi on August 4, 2026 at 2:33 pm

    I need to align the column heads are in base alignment format, my tags are: \documentclass{article} \usepackage{array} \usepackage{tabularray} \UseTblrLibrary{booktabs} \begin{document} \NewColumnType{W}[1]{>{\raggedright\hangindent=1em\arraybackslash}p{#1}}% \begin{tblr}{@{}XW{20pc}@{}} \toprule \SetCell[c=1]{l} Variable & \SetCell[c=1]{l} Sources\break Bottom\\ \midrule \SetCell[c=2]{c} \textit{Supply variables}\\ Entry of new nonprofits & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ Nonprofit employees & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ Nonprofit financials & The influence of industry structure on the countries innovation capacity has been examined under three types of agglomeration externalities\\ \bottomrule \end{tblr} \end{document}

  • Multiple cross-references with only hyperref
    by Akira on August 4, 2026 at 11:27 am

    I have a tex file \documentclass{article} \usepackage{amsthm} \usepackage{mathtools} % before hyperref \mathtoolsset{showonlyrefs} \usepackage[hypertexnames=false]{hyperref} \hypersetup{ colorlinks=true, linkcolor=blue, filecolor=blue, urlcolor=red, citecolor=magenta } \begin{document} \begin{align} B & = C , \label{thm:eq1} \\ X & = Y . \label{thm:eq4} \end{align} We have \eqref{thm:eq1,thm:eq4} and \autoref{thm:eq1,thm:eq4}. \end{document} Both cleveref and zref-clever seem not to be maintained anymore. So I would like to stick to hyperref. Can \eqref{thm:eq1,thm:eq4} and \autoref{thm:eq1,thm:eq4} produce Equations (0.1) and (0.2)? I am aware of the solution in Multiple references with \autoref, which is 15 years old. I wonder if recent development is able to provide a simpler solution.

  • Only prevent line breaks if text fits within one line
    by Rincewind on August 4, 2026 at 10:30 am

    I am trying to define a command which I do not want to line break if possible. I know this can be done by wrapping the entire command into an \mbox command. However, I may use this command with very long arguments which cannot fit into a single line. But as far as I am aware \mbox will prevent line breaks even if the argument is longer than one line. Is there a way to prevent line breaks only if the argument can fit within one line or do I have to define two separate commands, one that allows line breaking and one that does not? Edit: Here is a smallish example \documentclass[a4paper]{article} \newcommand{\ProdType}[2]{#1 \times #2} \newcommand{\Pair}[2]{{(#1,\mkern2mu#2)}} \newcommand{\Sum}[2]{{#1 \mathop{+} #2}} \newcommand{\AnnotateType}[2]{#1_{#2}} \newcommand{\SumType}[2]{#1 + #2} \newcommand{\listT}[1][\tau]{list~#1} \newcommand{\type}{\AnnotateType{(\SumType{\AnnotateType{unit}{\emptyset}}{\AnnotateType{(\ProdType{\tau}{\AnnotateType{\listT}{D}})}{\emptyset}})}{\emptyset}} \begin{document} This text defines a reasonably long type namely the type $\type$ that is broken up against my will. On the other hand if I mbox it, it is not broken up, even if it needs to be: \mbox{$\Pair{\SumType{\Pair{\type}{\type}}{\Pair{\type}{\type}}}{\SumType{\Pair{\type}{\type}}{\Pair{\type}{\type}}}$}. \end{document}

  • How can xeCJK support both the CJK main font and two fallback CJK extension fonts?
    by mathrm alpha on August 4, 2026 at 7:55 am

    I discovered that xeCJK has a fallback mechanism, but it can only apply to one fallback CJK font. If I use two fonts simultaneously, the following error occurs: Package xeCJK Warning: Redefining CJKfamily `rm/FallBack` (Jigmo2.ttf). Package xeCJK Warning: CJKfamily `Jigmo.ttf(0)` (FallBack/FallBack) does not contain glyph `𠀁` (U+20001) on line \documentclass{article} \usepackage[fallback]{xeCJK} \setCJKmainfont{Jigmo.ttf} \setCJKfallbackfamilyfont{rm}{Jigmo2.ttf} \setCJKfallbackfamilyfont{rm}{Jigmo3.ttf} \begin{document} Jigmo display: 1. 五 2. 𠀁 3. 𰀀 \end{document} How can I adjust the fallback font order to prioritize Jigmo2.ttf (which has Unicode characters) and then switch from Jigmo2.ttf to Jigmo3.ttf?

  • tabularray: Text does not wrap in a spanned \SetCell across X columns
    by Rounak Niloy on August 4, 2026 at 5:04 am

    I am using tabularray (v2024A on Overleaf) and have encountered an issue with a longtblr table. I have a table with one X column followed by eight X columns. For one row, I span the last eight columns using \SetCell[c=8]{l,m}{...}. However, the text inside the merged cell does not wrap. Instead, it continues beyond the page width as a single line. I expected the merged cell to have the combined width of the eight X columns and automatically wrap the text. The following MWE reproduces the problem: \usepackage{tabularray} \UseTblrLibrary{booktabs} \usepackage{pifont} \newcommand{\cmark}{\ding{51}} \newcommand{\xmark}{\ding{55}} \begin{document} \begin{longtblr}[ caption = {Dummy table}, label = {tab:test}, ]{ width = \linewidth, colsep = 2pt, rowsep = 2pt, colspec = {X[0.225,l,m] *{8}{X[0.2,c,m]}}, hline{1-Z} = {solid}, columns = {font=\footnotesize}, rowhead = 1, row{1} = {font=\footnotesize\bfseries}, } \SetCell{c} Reference & \SetCell{c} Col 1 & \SetCell{c} Col 2 & \SetCell{c} Col 3 & \SetCell{c} Col 4 & \SetCell{c} Col 5 & \SetCell{c} Col 6 & \SetCell{c} Col 7 & \SetCell{c} Col 8 \\ Foo & \cmark & \xmark & \cmark & \xmark & \cmark & \xmark & \cmark & \xmark \\ Bar & \xmark & \cmark & \xmark & \cmark & \xmark & \cmark & \xmark & \cmark \\ Baz & \xmark & \xmark & \xmark & \xmark & \xmark & \xmark & \xmark & \xmark \\ Qux & \SetCell[c=8]{l,m} {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.} \\ \midrule Present work & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\ \end{longtblr} \end{document} Output: The text extends beyond the page instead of wrapping within the merged cell. Expected behaviour: The merged cell should behave like a paragraph cell spanning the combined width of the eight X columns, with the text wrapped automatically. Is this expected behaviour of tabularray, or am I using \SetCell incorrectly? If this is the intended behaviour, what is the recommended way to create a multi-column paragraph cell that wraps automatically?

  • Placing text at the end of the last line of center environment
    by mbert on August 3, 2026 at 11:04 pm

    I'm working on some code to improve amsthm's \qedhere in various list-type environments, e.g., center. I'm having trouble getting the placement right in the last line of the center environment. The default of amsthm is to insert an \hfill which causes the text on the last line to be placed flush left. Here's an example showing the effect of \hfill and amsthm's default behavior. \documentclass{article} \usepackage[nopar]{kantlipsum} \usepackage{amsthm} \begin{document} \begin{center} \kant[1][1-2] \hfill\qedsymbol % not good \end{center} \begin{center} \kant[1][1-2]% this doesn't work \makebox[0pt]{\mbox{}\hfill\qedsymbol} \end{center} \begin{proof} \begin{center} \kant[1][1-2] \qedhere % not good \end{center} \end{proof} \end{document} Is there a way to place the \qedsymbol at the end of the line without affecting the text in that line? My first idea was to use a zero-width box but I couldn't figure out the right combination of (possibly nested) \makeboxes. Ideally, if the last line did not have room for the \qedsymbol, it would be moved to the end of the following line. I'm hoping to do this without writing to the aux with \pdfsavepos (as in the linegoal package).

  • Fairy chess pieces with xskak
    by baristocrona on August 3, 2026 at 10:23 pm

    A fews weeks ago I stumbled upon a strange bug: when I tried to place numbers on squares, I got some fairy chess pieces instead. The problem was related to the use of beamerposter. \documentclass{beamer} \usepackage[LSBC5, T1]{fontenc} \usepackage[orientation=portrait, size=custom,width=38,height=40.5,scale=1.0]{beamerposter} \usepackage{xskak} \usepackage{xcolor} \begin{document} \chessboard[ clearboard, % --- NUMBERS --- pgfstyle={[base, at={\pgfpoint{0pt}{-0.4ex}}]text}, % Degree 2 text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 158, markfield=a1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 138, markfield=a8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 168, markfield=h1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 168, markfield=h8, % Degree 3 text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=a2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=a7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=b1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=b8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=g1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=g8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=h2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 112, markfield=h7, % Degree 4 text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=a3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=a4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=a5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=a6, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=b2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=b7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=c1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=c8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=d1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=d8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=e1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=e8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=f1, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=f8, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=g2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=g7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=h3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=h4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=h5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 84, markfield=h6, % Degree 6 text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=b3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=b4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=b5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=b6, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=c2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=c7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=d2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=d7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=e2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=e7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=f2, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=f7, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=g3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=g4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=g5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 56, markfield=g6, % Degree 8 text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=c3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=c4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=c5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=c6, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=d3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=d4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=d5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=d6, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=e3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=e4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 131, markfield=e5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 10, markfield=e6, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=f3, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=f4, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 22, markfield=f5, text=\fontsize{1ex}{1ex}\bfseries\sffamily\color{black} 42, markfield=f6, boardfontsize=20pt] \end{document} Now, I'm actually working with fairy chess pieces, and the only way I see to get them is to build them myself. I don't have Overleaf Premium, so I can't check the project history from July 9th to see what happened. Could someone help me get those amazing pieces back? As a minimal working example I'm placing a board with just a knight. Could somebody make him vary its shape (i.e., turn it into a fairy chess piece)? \documentclass{article} \usepackage[LSBC5,T1]{fontenc} \usepackage{xskak} \begin{document} \chessboard[setpieces={Nd4}] \end{document} For the time being, I define new pieces using the following code: \makeatletter \cbDefineNewPiece{white}{E} {\raisebox{\depth}{\cfss@whitepiececolor $\includegraphics[width=0.5em]{white-eagle.png}$}} {\BlackEmptySquare% \makebox[0pt][r]{\cfss@whitepiececolor \raisebox{\depth}{% \makebox[1em]{$\includegraphics[width=1em]{white-eagle.png}$}}}}

  • Mixing different text and math fonts [closed]
    by scriptor on August 3, 2026 at 8:37 pm

    To be honest, I can't stand Computer Modern in text anymore, I think Libertinus Serif is much better, however I still wanna use CM (specifically NewCM) for maths. Is it okay to mix text and math fonts or should I stick with Libertinus across the board?

  • Octavo class. Is it possible to obtain a oneside document?
    by Yves on August 3, 2026 at 7:00 pm

    I am trying to evaluate the best possible option for a friend to compose a book of her poems. I have found that the poetrytex package has the necessary features. However I sense my friend could be attracted by the appearance created by the octavo class. She intends to have her book printed, but also wishes to obtain a pdf file to share easily with remote friends. I was unable to get the oneside option working in the octavo class, which may be by design. A file containing poems with a change of margins on each page is not visually attractive, while a book obviously is. \documentclass[12pt,oneside,titlepage,imperial]{octavo} \usepackage{lipsum} \begin{document} \title{Test octavo class} \maketitle \lipsum[1-10] \newpage \lipsum[5-9] \end{document}

  • Mathalpha mathbb font choice overwritten by Fourier package
    by Matthew on August 3, 2026 at 4:37 pm

    After being recommended it in a previous post, I'm using the mathalpha package to specify which alphabets use which package. I'm using the fourier package for the main text and math fonts, because I like the look of the greek letters in the Utopia font. I wish to use the blackboard bold font from mathpazo, which is done using \usepackage[bb=pazo]{mathalpha}, but importing the fourier package beforehand seems to overwrite this (but weirdly, does not overwrite the calligraphic font?). Here's an example: When I don't import fourier this displays as intended \documentclass{article} \usepackage{amsmath} %\usepackage{fourier} % not importing fourier \usepackage[cal=cm, bb=pazo]{mathalpha} \begin{document} $$ ABCDEFGHIJKLMNOPQRSTUVWXYZ $$ % CM math font $$ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ} $$ % CM calligraphic $$ \mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ} $$ % pazo blackboard bold \end{document} But when I import fourier the blackboard bold font now renders as Utopia blackboard bold, while the calligraphic font still (correctly) renders as computer modern \documentclass{article} \usepackage{amsmath} \usepackage{fourier} % importing fourier \usepackage[cal=cm, bb=pazo]{mathalpha} \begin{document} $$ ABCDEFGHIJKLMNOPQRSTUVWXYZ $$ % now Utopia font $$ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ} $$ % still CM calligraphic $$ \mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ} $$ % should be pazo blackboard bold, renders as Utopia \end{document} How can I use the Utopia font at the same time as pazo's blackboard bold? Cheers in advance.

  • \SI{}{} Units Are Converted into Multiple MathML Elements Instead of a Single MathML Element
    by rcv on August 3, 2026 at 3:36 pm

    Issue: Each \SI{}{} unit is converted into two separate MathML elements instead of a single MathML element. Requirement: How can each \SI{}{} expression be converted into a single MathML element? Example: For example, \SI{14.7}{\percent} is currently converted into two separate MathML elements—one for 14.7 and another for %. It should instead be converted into a single MathML element representing the complete SI value and unit. MWE: \documentclass{book} \usepackage{siunitx} \usepackage{algorithm2e} \usepackage{algpseudocode} \begin{document} Manufacturing decarbonization requires emission control that remains auditable under regulatory uncertainty. We propose Carbon-Conformal Manufacturing (CCM), which uses one-sided conformal upper bounds and Carbon Compliance Certificates to connect hourly control decisions with EU ETS and CBAM reporting logic in paper-mill energy systems. On 12 months of source-plant data, CCM reduces carbon emissions by \SI{14.7}{\percent} while maintaining \SI{99.1}{\percent} of production and achieving \SI{96.2}{\percent} empirical coverage at a \SI{95}{\percent} target. In two validated digital-twin variants, coverage remains between \SI{95.4}{\percent} and \SI{96.6}{\percent}, with carbon reduction between \SI{14.2}{\percent} and \SI{14.7}{\percent}. Point optimization reaches \SI{11.3}{\percent} reduction, Bayesian uncertainty intervals reach \SI{93.8}{\percent} coverage, and removing conformal calibration reduces coverage to \SI{87.0}{\percent} while increasing violation events by \SI{23}{\percent}. CCM improves carbon reduction per compute-hour by \SI{11.5}{\percent} over RL-noCP and yields annualized savings of 2,831 tCO$_2$e and 244 kEUR at 86 EUR/t. Temporal and stress tests show stable monthly coverage, and an 8-week shadow deployment sustains weekly monitoring performance under operator review. Live closed-loop actuation remains future work, and the paper's claim boundary is limited to source-plant, digital-twin, and shadow-deployment evidence. \end{document} Produced Output: <!--l. 8--><math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" ><mn>1</mn><mn>4</mn><mo class="MathClass-punc" stretchy="false">.</mo><mn>7</mn></math> <!--l. 8--><math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" ><mstyle mathvariant="normal"><mi >%</mi></mstyle></math>

  • Using a font package without overwriting the default \mathcal command
    by Matthew on August 3, 2026 at 3:18 pm

    I want to use the fourier package for the Utopia font, but I'm not a fan of how mathcal font changes to something reminiscent of mathscr. How do I use fourier while retaining the usual mathcal alphabet?

  • Code Review: A custom TikZ package for drawing Chemistry Reaction Progress Tables (ICE tables)
    by Natsu on August 3, 2026 at 2:33 pm

    As part of my workflow for typesetting educational materials, I frequently need to draw Chemistry Reaction Progress Tables (often known as ICE tables). To automate this, I am developing a small custom package using tikz called tkzPhysTab. The package calculates the grid coordinates automatically based on the number of reactants and products, places the $+$ and $\rightarrow$ signs, and allows adding rows dynamically. Here is the package code (tkzPhysTab.sty): \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tkzPhysTab}[2025/11/07 Physical Reaction Table by Khaldi] \RequirePackage{tikz} % ============================= % Default Values % ============================= \def\tkzPhysTabFirstColWidth{1.5} % Width of the first column \def\tkzPhysTabColWidth{2.5} % Width of the data columns \def\tkzPhysTabRowHeight{1.0} % Row height % ============================= % Setup pgfkeys % ============================= \pgfkeys{ /tkzPhysTab/.is family, /tkzPhysTab, firstcol/.store in = \tkzPhysTabFirstColWidth, colwidth/.store in = \tkzPhysTabColWidth, rowheight/.store in = \tkzPhysTabRowHeight, reset/.code = { \def\tkzPhysTabFirstColWidth{1.5} \def\tkzPhysTabColWidth{2.5} \def\tkzPhysTabRowHeight{1.0} } } % Counters (Note: I am aware calling \newcounter here might cause issues if called twice, looking for better alternatives) \newcounter{tkzcolsOne} \newcounter{tkzcolsTwo} \newcounter{tkzlevel} \newcounter{tkzrows} % ============================= % Table Initialization Command % ============================= \newcommand{\tkzPhysicsTabInit}[4][]{% % Reset default values \pgfkeys{/tkzPhysTab/reset} % Apply custom options from [options] \pgfkeys{/tkzPhysTab,#1} \setcounter{tkzcolsOne}{0} \setcounter{tkzcolsTwo}{0} \setcounter{tkzlevel}{1} \setcounter{tkzrows}{0} \foreach \c in {#3}{\stepcounter{tkzcolsOne}} \foreach \c in {#4}{\stepcounter{tkzcolsTwo}} \foreach \r in {#2}{\stepcounter{tkzrows}} \pgfmathtruncatemacro{\ncolData}{\thetkzcolsOne + \thetkzcolsTwo} \pgfmathtruncatemacro{\nrows}{\thetkzrows + 1} \pgfmathsetmacro{\W}{\tkzPhysTabFirstColWidth + \ncolData * \tkzPhysTabColWidth} \pgfmathsetmacro{\H}{\nrows * \tkzPhysTabRowHeight} \coordinate (T) at (0,0); \draw[very thick] (T) rectangle (\W,-\H); % Vertical lines \draw (\tkzPhysTabFirstColWidth, 0) -- (\tkzPhysTabFirstColWidth, -\H); \foreach \i in {1,...,\ncolData}{ \pgfmathsetmacro{\xpos}{\tkzPhysTabFirstColWidth + \i * \tkzPhysTabColWidth} \draw (\xpos, -\tkzPhysTabRowHeight) -- (\xpos, -\H); } % Horizontal lines \foreach \j in {1,...,\nrows}{ \draw (0, -\j*\tkzPhysTabRowHeight) -- (\W, -\j*\tkzPhysTabRowHeight); } % Reactants \foreach [count=\i from 1] \c in {#3} { \pgfmathsetmacro{\xcenter}{\tkzPhysTabFirstColWidth + (\i - 0.5) * \tkzPhysTabColWidth} \node at (\xcenter, -\tkzPhysTabRowHeight/2) {\c}; \ifnum\i>1 \pgfmathsetmacro{\xplus}{\tkzPhysTabFirstColWidth + (\i - 1) * \tkzPhysTabColWidth} \node at (\xplus, -\tkzPhysTabRowHeight/2) {$+$}; \fi } % Arrow between reactants and products \pgfmathtruncatemacro{\nReact}{\thetkzcolsOne} \pgfmathsetmacro{\xarrow}{\tkzPhysTabFirstColWidth + \nReact * \tkzPhysTabColWidth} \node at (\xarrow, -\tkzPhysTabRowHeight/2) {$\rightarrow$}; % Products \foreach [count=\i from 1] \c in {#4} { \pgfmathsetmacro{\xcenter}{\xarrow + (\i - 0.5) * \tkzPhysTabColWidth} \node at (\xcenter, -\tkzPhysTabRowHeight/2) {\c}; \ifnum\i>1 \pgfmathsetmacro{\xplus}{\xarrow + (\i - 1) * \tkzPhysTabColWidth} \node at (\xplus, -\tkzPhysTabRowHeight/2) {$+$}; \fi } % Row labels \foreach [count=\j from 1] \r in {#2} { \pgfmathsetmacro{\ycenter}{-(\j + 0.5) * \tkzPhysTabRowHeight} \node at (\tkzPhysTabFirstColWidth/2, \ycenter) {\r}; } } % ============================= % Add Row Command % ============================= \newcommand{\tkzPhysicsTabLine}[1]{% \stepcounter{tkzlevel} \foreach [count=\i from 1] \val in {#1} { \pgfmathsetmacro{\xcenter}{\tkzPhysTabFirstColWidth + (\i - 0.5) * \tkzPhysTabColWidth} \pgfmathsetmacro{\ycenter}{-(\thetkzlevel - 0.5) * \tkzPhysTabRowHeight} \node at (\xcenter, \ycenter) {\val}; } } And here is the Minimum Working Example (MWE) generating the table: \documentclass[border=5mm]{standalone} \usepackage{tkzPhysTab} \begin{document} \begin{tikzpicture} \tkzPhysicsTabInit[firstcol=2.0,colwidth=3,rowheight=1.2]% {$x=0$,$x=t$,$x=f$}% {$Fe_3O_4$,$4H_2$}% {$3Fe$,$4H_2O$} \tkzPhysicsTabLine{$2.18$,$9.65$,$0$,$0$} \tkzPhysicsTabLine{$2.18-x$,$-4x$,$?$,$?$} \tkzPhysicsTabLine{$2.18-x_{\max}$,$-4x_{\max}$,$??$,$??$} \end{tikzpicture} \end{document} My questions for the experts: I initially defined \newcounter inside \tkzPhysicsTabInit, which caused an error when calling the table twice. I fixed this by declaring the counters globally in the package file and using \setcounter inside the macro to reset them. Is this the standard LaTeX best practice, or is there a more elegant way to handle local counters/variables in this context without polluting the global namespace? Is manually calculating coordinates using \pgfmathsetmacro the most efficient way to draw this grid, or would you recommend using TikZ libraries like matrix or integrating with packages like tabularray? Are there any other optimizations or best practices you would suggest to make this package more robust for general users? Thank you in advance for your insights!

  • How to prevent the command \poemgroup of the poetrytex package from suppressing page numbering
    by Yves on August 3, 2026 at 11:54 am

    I am trying to figure a suitable option for an american friend who desires to write a book of her poems. I have found she is stranger to LaTeX, but wishes to group her poems by category, and possibly include drawings or pictures. These requirements led me to test the poetrytex package, which seems to do the job. However, I found that with both the "book" class and the KOMA class scrbook, the page numbering stops after the \poemgroup{} command is issued. This is annoying, of course, and I am trying to understand the cause and possibly to find a fix. \documentclass[12pt]{book} \usepackage[T1]{fontenc} \usepackage{poetrytex} \usepackage{lipsum} \begin{document} \title{Test poemgroup command with page numbering} \maketitle \listofpoems \poemgroup{Miscellaneous Authors} \begin{poem}{Untitled}{Anonymous} There was an old party of Lyme \\ Who married three wives at one time. \\ When asked: `Why the third?' \\ He replied: `One’s absurd, \\ And bigamy, sir, is a crime.' \end{poem} \begin{poem} Sunset and evening star, \\ And one clear call for me! \\ And may there be no moaning of the bar, \\ When I put out to sea, \\ But such a tide as moving seems asleep, \\ Too full for sound and foam, \\ When that which drew from out the boundless deep \\ Turns again home. \\ Twilight and evening bell, \\ And after that the dark! \\ And may there be no sadness of farewell, \\ When I embark; \\ For tho' from out our bourne of Time and Place \\ The flood may bear me far, \\ I hope to see my Pilot face to face \\ When I have cross'd the bar. \end{poem} \newpage \lipsum[1] \end{document}

  • Why new line is added when glue is zero?
    by Igor Liferenko on August 3, 2026 at 8:12 am

    The following two examples demonstrate that when \hskip becomes zero, an empty line is added: \hfuzz=10000pt \hsize=0pt \noindent\hskip0pt thirteen\hskip0pt---\hskip1sp dimensional \bye \hfuzz=10000pt \hsize=0pt \noindent\hskip0pt thirteen\hskip0pt---\hskip0sp dimensional \bye

  • Footnote order problem in old version of elsarticle
    by C.F.G on August 2, 2026 at 6:59 pm

    I encountered the following footnote ordering and numbering problem in old version of elsarticle.cls class. Footnotes in the main text should be placed after the footnotes for title and authors. I know that this problem does not occur in the new version of elsarticle i.e. cas-sc.cls. How can I fix this problem? (numbering and order of footnotes) MWE \documentclass[3p, times]{elsarticle} \usepackage{lipsum} \begin{document} \begin{frontmatter} \title{Angels of Minab} % Authors names \author[add1]{Makan Nasiri\fnref{label1}} \ead{email address} \author[add1]{Amir-Ali Jadavi\corref{cor1}\fnref{label2}} \ead{email address} %\ead[url]{home page} \fntext[label1]{Victim of the US attack; remains never recovered} \fntext[label2]{Victim of the US attack; remains never recovered} \cortext[cor1]{corresponding author} \address[add1]{Shajareh Tayyebeh Elementary School, Minab, Hormozgan province, Iran} \begin{abstract} %% Text of abstract This paper presents a study on the...\footnote{a footnote}\footnote{a footnote}\footnote{a footnote}\footnote{a footnote} \end{abstract} \begin{keyword} Makan Nasiri \sep Amir-Ali Jadavi \end{keyword} \end{frontmatter} \section{part 1} \lipsum[1-2] \section{part 2} \label{} \lipsum[1-2] \end{document}

  • How to put the content of a table in a separate file [duplicate]
    by Roland Chastain on August 2, 2026 at 5:59 pm

    The following file (demo5.tex) is generated by a program. 2026 & & & & & 18 fév. & 5 avr. & & & & & \\ 2027 & & & & & 10 fév. & 28 mars & & & & & \\ 2028 & & & & & 1er mars & 16 avr. & & & & & \\ 2029 & & & & & 14 fév. & 1er avr. & & & & & \\ 2030 & & & & & 6 mars & 21 avr. & & & & & \\ 2031 & & & & & 26 fév. & 13 avr. & & & & & \\ 2032 & & & & & 11 fév. & 28 mars & & & & & \\ 2033 & & & & & 2 mars & 17 avr. & & & & & \\ 2034 & & & & & 22 fév. & 9 avr. & & & & & \\ 2035 & & & & & 7 fév. & 25 mars & & & & & \\ 2036 & & & & & 27 fév. & 13 avr. & & & & & \\ 2037 & & & & & 18 fév. & 5 avr. & & & & & \\ 2038 & & & & & 10 mars & 25 avr. & & & & & \\ 2039 & & & & & 23 fév. & 10 avr. & & & & & \\ 2040 & & & & & 15 fév. & 1er avr. & & & & & \\ 2041 & & & & & 6 mars & 21 avr. & & & & & \\ 2042 & & & & & 19 fév. & 6 avr. & & & & & \\ 2043 & & & & & 11 fév. & 29 mars & & & & & \\ 2044 & & & & & 2 mars & 17 avr. & & & & & \\ 2045 & & & & & 22 fév. & 9 avr. & & & & & \\ I try to include it in my main document as follows (document.tex) : \documentclass[a4paper,landscape,12pt]{article} \usepackage{tabularray} \usepackage{showframe} \usepackage{geometry} \geometry{margin=1in} \usepackage{fontspec} \setmainfont{EBGaramond} \begin{document} \begin{tblr}{*{12}{c}} {Année du\\Seigneur} & {Litt.\\Dom.} & {Nb.\\d'or} & Epactae & {Septua-\\gésime} & Cendres & Pâques & Ascension & Pentecôte & {Fête-\\Dieu} & {Nb. dim.\\ap. Pent.} & {1er dim.\\Avent} \\ \input{demo5.tex} \end{tblr} \end{document} I get this error: $ lualatex document This is LuaHBTeX, Version 1.24.0 (TeX Live 2026/Mageia) restricted system commands enabled. (./document.tex LaTeX2e <2025-11-01> L3 programming layer <2026-01-19> (/usr/share/texmf-dist/tex/latex/base/article.cls Document Class: article 2025/01/22 v1.4n Standard LaTeX document class ... *geometry* driver: auto-detecting *geometry* detected driver: luatex (./demo5.tex ! Misplaced alignment tab character &. l.1 2026 & & & & & 18 fév. & 5 avr. & & & & & \\ ? I don't understand the error. If I paste manually the content of demo5.tex in my main document (document2.tex), I can compile the document. \documentclass[a4paper,landscape,12pt]{article} \usepackage{tabularray} \usepackage{showframe} \usepackage{geometry} \geometry{margin=1in} \usepackage{fontspec} \setmainfont{EBGaramond} \begin{document} \begin{tblr}{*{12}{c}} {Année du\\Seigneur} & {Litt.\\Dom.} & {Nb.\\d'or} & Epactae & {Septua-\\gésime} & Cendres & Pâques & Ascension & Pentecôte & {Fête-\\Dieu} & {Nb. dim.\\ap. Pent.} & {1er dim.\\Avent} \\ 2026 & & & & & 18 fév. & 5 avr. & & & & & \\ 2027 & & & & & 10 fév. & 28 mars & & & & & \\ 2028 & & & & & 1er mars & 16 avr. & & & & & \\ 2029 & & & & & 14 fév. & 1er avr. & & & & & \\ 2030 & & & & & 6 mars & 21 avr. & & & & & \\ 2031 & & & & & 26 fév. & 13 avr. & & & & & \\ 2032 & & & & & 11 fév. & 28 mars & & & & & \\ 2033 & & & & & 2 mars & 17 avr. & & & & & \\ 2034 & & & & & 22 fév. & 9 avr. & & & & & \\ 2035 & & & & & 7 fév. & 25 mars & & & & & \\ 2036 & & & & & 27 fév. & 13 avr. & & & & & \\ 2037 & & & & & 18 fév. & 5 avr. & & & & & \\ 2038 & & & & & 10 mars & 25 avr. & & & & & \\ 2039 & & & & & 23 fév. & 10 avr. & & & & & \\ 2040 & & & & & 15 fév. & 1er avr. & & & & & \\ 2041 & & & & & 6 mars & 21 avr. & & & & & \\ 2042 & & & & & 19 fév. & 6 avr. & & & & & \\ 2043 & & & & & 11 fév. & 29 mars & & & & & \\ 2044 & & & & & 2 mars & 17 avr. & & & & & \\ 2045 & & & & & 22 fév. & 9 avr. & & & & & \\ \end{tblr} \end{document} Why?

  • How to draw a complex shaded ribbon with a central jewel using TikZ? [closed]
    by Natsu on August 2, 2026 at 7:48 am

    I am looking for guidance on how to recreate the attached image (image.png) entirely within LaTeX using TikZ. The image consists of two main complex elements: A red ribbon with intricate curves and realistic 3D-like gradient shading. A multi-faceted jewel/diamond in the center with sharp light reflections. Initially, I thought simulating this 3D effect in TikZ would be too complex, but following the community's helpful feedback and advice on providing a Minimal Working Example (MWE), I decided to tackle both the ribbon and the central jewel to demonstrate my progress. I managed to draw the ribbons using manual Bézier curves and custom shadings to simulate the folds. For the jewel, I used a clipping mask and layered semi-transparent polygons (opacity) to mimic the glass facets and light reflections. Here is my current MWE: \documentclass[tikz,border=5mm]{standalone} \usetikzlibrary{shadings,calc} \definecolor{ribbonred}{RGB}{215,10,28} \begin{document} \begin{tikzpicture}[x=3cm,y=3cm] \begin{scope} \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=150] (-0.463,-0.006) .. controls (-0.497,-0.017) and (-0.649,-0.048) .. (-0.672,-0.073) .. controls (-0.680,-0.110) and (-0.637,-0.134) .. (-0.601,-0.158) .. controls (-0.563,-0.147) and (-0.467,-0.035) .. (-0.445,-0.010) .. controls (-0.423,0.015) and (-0.464,-0.008) .. (-0.468,-0.008); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=150] (-0.188,-0.128) .. controls (-0.204,-0.135) and (-0.236,-0.149) .. (-0.281,-0.167) .. controls (-0.320,-0.207) and (-0.380,-0.306) .. (-0.372,-0.502) .. controls (-0.372,-0.717) and (-0.372,-0.842) .. (-0.562,-0.776) .. controls (-0.684,-0.438) and (-0.369,-0.102) .. (-0.231,-0.080) .. controls (-0.199,-0.102) and (-0.195,-0.127) .. (-0.188,-0.136); \fill[% top color=ribbonred!50!black, bottom color=ribbonred!50!black, middle color=ribbonred!80, shading angle=140] (-0.182,-0.067) .. controls (-0.437,-0.096) and (-0.598,-0.685) .. (-0.497,-0.794) .. controls (-0.664,-0.762) and (-0.983,-0.545) .. (-0.870,-0.355) .. controls (-0.742,-0.221) and (-0.518,-0.079) .. (-0.410,0.012) .. controls (-0.295,0.059) and (-0.217,-0.054) .. (-0.180,-0.069) .. controls (-0.142,-0.084) and (-0.196,-0.091) .. (-0.199,-0.095); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=30] (-0.178,0.212) .. controls (-0.206,0.278) and (-0.189,0.365) .. (-0.246,0.416) .. controls (-0.280,0.438) and (-0.328,0.400) .. (-0.328,0.369) .. controls (-0.315,0.330) and (-0.208,0.214) .. (-0.182,0.186) .. controls (-0.157,0.159) and (-0.178,0.209) .. (-0.177,0.213); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=30] (-0.160,0.197) .. controls (-0.221,0.247) and (-0.283,0.409) .. (-0.387,0.469) .. controls (-0.469,0.505) and (-0.508,0.420) .. (-0.521,0.365) .. controls (-0.488,0.312) and (-0.254,0.183) .. (-0.192,0.154) .. controls (-0.129,0.125) and (-0.166,0.190) .. (-0.161,0.198); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=90] (-0.141,0.178) .. controls (-0.350,0.409) and (-0.606,0.510) .. (-0.676,0.366) .. controls (-0.690,0.282) and (-0.678,0.169) .. (-0.660,0.115) .. controls (-0.634,0.025) and (-0.692,-0.075) .. (-0.665,-0.108) .. controls (-0.604,0.016) and (-0.319,-0.044) .. (-0.258,-0.059) .. controls (-0.171,-0.008) and (-0.165,0.163) .. (-0.147,0.207); \end{scope} \begin{scope}[shift={(-0.04, 0.03)}, xscale=-1, shift={(0.04, -0.03)}] \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=30] (-0.463,-0.006) .. controls (-0.497,-0.017) and (-0.649,-0.048) .. (-0.672,-0.073) .. controls (-0.680,-0.110) and (-0.637,-0.134) .. (-0.601,-0.158) .. controls (-0.563,-0.147) and (-0.467,-0.035) .. (-0.445,-0.010) .. controls (-0.423,0.015) and (-0.464,-0.008) .. (-0.468,-0.008); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=30] (-0.188,-0.128) .. controls (-0.204,-0.135) and (-0.236,-0.149) .. (-0.281,-0.167) .. controls (-0.320,-0.207) and (-0.380,-0.306) .. (-0.372,-0.502) .. controls (-0.372,-0.717) and (-0.372,-0.842) .. (-0.562,-0.776) .. controls (-0.684,-0.438) and (-0.369,-0.102) .. (-0.231,-0.080) .. controls (-0.199,-0.102) and (-0.195,-0.127) .. (-0.188,-0.136); \fill[% top color=ribbonred!50!black, bottom color=ribbonred!50!black, middle color=ribbonred!80, shading angle=30] (-0.182,-0.067) .. controls (-0.437,-0.096) and (-0.598,-0.685) .. (-0.497,-0.794) .. controls (-0.664,-0.762) and (-0.983,-0.545) .. (-0.870,-0.355) .. controls (-0.742,-0.221) and (-0.518,-0.079) .. (-0.410,0.012) .. controls (-0.295,0.059) and (-0.217,-0.054) .. (-0.180,-0.069) .. controls (-0.142,-0.084) and (-0.196,-0.091) .. (-0.199,-0.095); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=160] (-0.178,0.212) .. controls (-0.206,0.278) and (-0.189,0.365) .. (-0.246,0.416) .. controls (-0.280,0.438) and (-0.328,0.400) .. (-0.328,0.369) .. controls (-0.315,0.330) and (-0.208,0.214) .. (-0.182,0.186) .. controls (-0.157,0.159) and (-0.178,0.209) .. (-0.177,0.213); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=160] (-0.160,0.197) .. controls (-0.221,0.247) and (-0.283,0.409) .. (-0.387,0.469) .. controls (-0.469,0.505) and (-0.508,0.420) .. (-0.521,0.365) .. controls (-0.488,0.312) and (-0.254,0.183) .. (-0.192,0.154) .. controls (-0.129,0.125) and (-0.166,0.190) .. (-0.161,0.198); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=90] (-0.141,0.178) .. controls (-0.350,0.409) and (-0.606,0.510) .. (-0.676,0.366) .. controls (-0.690,0.282) and (-0.678,0.169) .. (-0.660,0.115) .. controls (-0.634,0.025) and (-0.692,-0.075) .. (-0.665,-0.108) .. controls (-0.604,0.016) and (-0.319,-0.044) .. (-0.258,-0.059) .. controls (-0.171,-0.008) and (-0.165,0.163) .. (-0.147,0.207); \end{scope} \begin{scope} \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred, shading angle=0] (-0.189,-0.118) .. controls (-0.262,-0.210) and (-0.334,-0.412) .. (-0.198,-0.646) .. controls (-0.186,-0.647) and (0.020,-0.234) .. (-0.118,-0.126) .. controls (-0.131,-0.134) and (-0.179,-0.123) .. (-0.191,-0.123); \fill[% top color=ribbonred!20!black, bottom color=ribbonred, shading angle=60] (-0.131,-0.812) .. controls (-0.045,-0.966) and (0.098,-1.214) .. (0.060,-1.606) .. controls (0.142,-1.512) and (0.204,-1.281) .. (0.179,-1.065) .. controls (0.245,-1.127) and (0.337,-1.249) .. (0.337,-1.479) .. controls (0.516,-1.078) and (0.167,-0.702) .. (0.064,-0.552) .. controls (-0.015,-0.442) and (-0.101,-0.777) .. (-0.136,-0.819); \fill[% top color=ribbonred!20!black, bottom color=ribbonred!20!black, middle color=ribbonred!90, shading angle=0] (-0.167,-0.091) .. controls (0.030,-0.372) and (-0.401,-0.822) .. (-0.420,-1.051) .. controls (-0.489,-1.248) and (-0.417,-1.580) .. (-0.277,-1.714) .. controls (-0.351,-1.499) and (-0.303,-1.285) .. (-0.258,-1.233) .. controls (-0.250,-1.456) and (-0.057,-1.685) .. (0.073,-1.730) .. controls (-0.079,-1.540) and (-0.159,-1.035) .. (0.050,-0.742) .. controls (0.218,-0.479) and (0.235,-0.219) .. (0.058,-0.085) .. controls (0.019,0.022) and (-0.140,-0.101) .. (-0.179,-0.104); \end{scope} \begin{scope}[shift={(-0.04, 0.03)}] \shadedraw[draw=ribbonred, very thick, inner color=white, outer color=black!85] (0,0) circle (0.25); \begin{scope} \clip (0,0) circle (0.24); \def\rTable{0.12} \def\rEdge{0.25} \fill[black, opacity=0.35] (67.5:\rTable) -- (112.5:\rTable) -- (90:\rEdge) -- cycle; \fill[black, opacity=0.5] (202.5:\rTable) -- (247.5:\rTable) -- (225:\rEdge) -- cycle; \fill[black, opacity=0.2] (247.5:\rTable) -- (292.5:\rTable) -- (270:\rEdge) -- cycle; \fill[white, opacity=0.6] (22.5:\rTable) -- (67.5:\rTable) -- (45:\rEdge) -- cycle; \fill[white, opacity=0.4] (292.5:\rTable) -- (337.5:\rTable) -- (315:\rEdge) -- cycle; \fill[white, opacity=0.7] (112.5:\rTable) -- (135:\rEdge) -- (180:\rEdge) -- cycle; \fill[white, opacity=0.8] (0,0) -- (45:0.1) -- (0:0.15) -- cycle; \fill[white, opacity=0.5] (0,0) -- (135:0.1) -- (180:0.15) -- cycle; \draw[white, thin, opacity=0.7] (22.5:\rTable) \foreach \a in {67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5} { -- (\a:\rTable) } -- cycle; \foreach \a in {22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5} { \draw[white, thin, opacity=0.6] (\a:\rTable) -- (\a+22.5:\rEdge); \draw[white, thin, opacity=0.5] (\a:\rTable) -- (\a-22.5:\rEdge); } \draw[white, thin, opacity=0.8] (0:\rEdge) -- (180:\rEdge); \draw[white, thin, opacity=0.4] (90:\rEdge) -- (270:\rEdge); \end{scope} \tikzset{sparkle/.pic={ \fill[white, opacity=0.9] (0,0.03) .. controls (0.005,0.005) .. (0.03,0) .. controls (0.005,-0.005) .. (0,-0.03) .. controls (-0.005,-0.005) .. (-0.03,0) .. controls (-0.005,0.005) .. cycle; }} \pic at (0.08, 0.12) {sparkle}; \pic[scale=0.7] at (-0.12, 0.05) {sparkle}; \pic[scale=0.5] at (-0.05, -0.15) {sparkle}; \pic[scale=0.8] at (0.15, -0.08) {sparkle}; \end{scope} \end{tikzpicture} \end{document} And here is the resulting output I am very happy with the jewel, but I am looking for advice on how to improve the overall code structure (e.g., making the ribbon code more modular). Additionally, I really struggled with color coordination and picking the right shades for the gradients. If anyone could help me adjust the color palette to make the ribbon look more naturally glossy and realistic, I would be very grateful. I also want to thank kabenyuk for their excellent answer which showed how to modularize the ribbon drawing! Any further improvements or tips on combining these elements effectively would be greatly appreciated.

  • TexStudio "quit unexpectedly" [closed]
    by Rassine Orange on August 2, 2026 at 7:33 am

    When I work on TexStudio and I put my Mac to sleep, 8 times out of 10, when I reopen my laptop, I get the following message (see image). I have seen some similar post but either the problem is slightly different (only happens to me when I close the laptop, and files are not corrupt) or the suggested solutions do not work (I don't see the file mentionned in one similar discussion). What could I do?

  • \autoref gives wrong type for equations
    by Akira on August 1, 2026 at 7:12 pm

    I have a .tex file % Source - https://tex.stackexchange.com/a/737442 % Posted by Akira, modified by community. See post 'Timeline' for change history % Source - https://tex.stackexchange.com/a/737439 % Posted by egreg, modified by community. See post 'Timeline' for change history % Retrieved 2026-08-01, License - CC BY-SA 4.0 \documentclass{article} \usepackage{aliascnt} \usepackage{amsthm} \usepackage{mathtools} % before hyperref \mathtoolsset{showonlyrefs} \usepackage[notcite,notref]{showkeys} \usepackage[hypertexnames=false]{hyperref} \hypersetup{ colorlinks=true, linkcolor=blue, filecolor=blue, urlcolor=red, citecolor=magenta } \numberwithin{equation}{section} \newtheorem{theorem}{Theorem}[section] \newcommand{\addtheorem}[2]{% \newaliascnt{#1}{theorem}% \newtheorem{#1}[#1]{#2}% \aliascntresetthe{#1}% \ExpandArgs{c}\newcommand{#1autorefname}{#2}% } \addtheorem{corollary}{Corollary} \addtheorem{lemma}{Lemma} \addtheorem{proposition}{Proposition} \theoremstyle{definition} \addtheorem{definition}{Definition} \addtheorem{assumption}{Assumption} \addtheorem{remark}{Remark} \addtheorem{example}{Example} \renewcommand{\sectionautorefname}{Section} \begin{document} \section{Introduction} \label{chap} \begin{theorem} \label{thm} If A then \begin{align} B &= C , \label{thm:eq1} \\ X &= Y . \label{thm:eq4} \end{align} \end{theorem} From \autoref{thm} in \autoref{chap}, we have \autoref{thm:eq1}. \end{document} I expect \autoref{thm:eq1} produces something like Equation (1.1) or simply (1.1), and not Theorem 1.1. The problem is due to \mathtoolsset{showonlyrefs}. Nevertheless, I would like to keep this option? Is there anyway to resolve this wrong type?

  • Can reledpar delay the syncing of line-broken chunks until the next empty chunk?
    by Paul Langeslag on August 1, 2026 at 6:52 pm

    I am using reledpar to match up occasional lines of prose on my righthand (odd) pages with continuous verse on the lefthand (even) pages, treating each verse line and each prose entry as its own chunk to ensure they line up. I am using reledmac's \stanza command on the left; on the right it doesn't seem to make a difference which type of numbered text I use, but semantically \pstart and \pend better describe the content type than \stanza. Where I have no prose content, I enter an empty chunk (i.e. \pstart\pend, or & if using \stanza on righthand pages). Where right-hand prose content extends across more than one printed line, the sync process (in the second compilation run) inserts empty lines between the verse lines on the left. This is as designed, but not desired in my case. I am wondering if there is a way to forbid the sync process from creating empty lines on lefthand pages, by postponing the next righthand chunk by the number of line breaks within the content of an immediately preceding chunk (or, better: unbroken sequence of non-empty chunks) of content, and then returning to exact syncing as soon as the presence of empty chunks in the righthand content equals the number of surplus line breaks within preceding chunks on the same page. Bonus: I also don't mind if prose chunks are merged in the process; I don't need a new prose entry to start on a new line, I just want it to occur as close as possible vertically to the matching verse. In other words, I would rather have righthand content show up one or two lines late from time to time than seeing blank lines on the left, but it would be ideal if such a mismatch could then be resolved as soon as space allows. It doesn't seem to me the answer involves either of the shiftedpstarts options, as I need line-by-line syncing; accordingly, this answer doesn't seem to solve my issue. MWP (including fontspec to avoid special characters dropping out, but can be run without): \documentclass{scrbook}% \usepackage{fontspec}% \usepackage{reledmac}% \usepackage{reledpar}% \setmainfont{Junicode}% % % % \begin{document}% \setlength{\stanzaindentbase}{0pt}% \setcounter{secnumdepth}{0}% \begin{pages} \begin{Leftside} \setstanzaindents{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} \beginnumbering \setline{94} \stanza tho uuarð thiu tid cuman\ \ \ \ \ \ that thar gitald habdun& uuisa man mid uuordun\ \ \ \ \ \ that scolda thana uuih godes& zacharias bisehan\ \ \ \ \ \ tho uuarð thar gisamnod filu& thar te hierusalem\ \ \ \ \ \ iudeo liudi& uuerodes te them uuiha\ \ \ \ \ \ thar sie uualdand god& suuiðo theolico\ \ \ \ \ \ thiggean scoldun& herron is huldi\ \ \ \ \ \ that sie heƀancuning& leðes aleti\ \ \ \ \ \ thea liudi stodun& umbi that helaga hus\ \ \ \ \ \ endi geng im the giherodo man& an thana uuih innan\ \ \ \ \ \ that uuerod oðar bed& umbi thana alah utan\ \ \ \ \ \ ebreo liudi& huuan er the frodo man\ \ \ \ \ \ gifrumid habdi& uualdandes uuilleon\ \ \ \ \ \ so he tho thana uuiroc drog& ald aftar them alaha\ \ \ \ \ \ endi umbi thana altari geng& mid is rocfatun\ \ \ \ \ \ rikiun thionon& fremida ferhtlico\ \ \ \ \ \ fraon sines& godes iungarskepi\ \ \ \ \ \ gerno suuiðo& mid hluttru hugi\ \ \ \ \ \ so man herren scal& gerno fulgangan\ \ \ \ \ \ grurios quamun im& egison an them alahe\ \ \ \ \ \ hie gisah thar aftar thiu enna engil godes& an them uuihe innan\ \ \ \ \ \ hie sprac im mid is uuordun tuo& hiet that fruod gumo\ \ \ \ \ \ foroht ni uuari& hiet that hie im ni andriede\ \ \ \ \ \ thina dadi sind quathie& uualdanda uuerðe\ \ \ \ \ \ endi thin uuord so self& thin thionost is im an thanke\ \ \ \ \ \ that thu sulica githaht haƀes\& \endnumbering \end{Leftside} \begin{Rightside} \beginnumbering \setline{94} \pstart \textbf{Lc\,1.8} factum est autem cum sacerdotio fungeretur in ordine uicis suae ante deum \pend \pstart \textbf{Lc\,1.10} et omnis multitudo erat populi orans foris hora incensi \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \textbf{Lc\,1.9} secundum consuetudinem sacerdotii sorte exiit ut incensum poneret ingressus in templum domini \pend \pstart \textbf{Lc\,1.21} et erat plebs expectans zachariam et mirabantur quod tardaret ipse in templo \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \textbf{Lc\,1.11} apparuit autem illi angelus domini stans a dextris altaris incensi \pend \pstart \textbf{Lc\,1.13} ait autem ad illum angelus ne timeas zacharia quoniam exaudita est deprecatio tua et uxor tua elisabeth pariet tibi filium et uocabis nomen eius iohannem \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \pstart \pend \endnumbering \end{Rightside} \end{pages}% \Pages% \end{document}

  • Input command with line ranges
    by Maronite Monks on August 1, 2026 at 6:42 pm

    I'm using MacTeX 2022 on an antique Mojave 10.14.6 system. I employ XeLaTeX with a commercial font and document formatting via the memoir class. I've searched a bit into the minted and listings packages but they don't seem to do what I'd like. What I'd like to do is be able to select ranges of lines (e.g., lines 2-5, 6-9, etc.) and have the input be formatted (i.e., font/size, etc.) by what's in the preamble of the importing document. Minted seems to make what's imported a verbatim format, whereas I'd like any and all the text and markups processed, not printed. I haven't been able to get listings to do anything yet. Is there a package or command to use like this? \input[lines=2, 4, 5-10]{externalfile.tex} Or maybe something comparable to what the lipsum package does? Thanks for your help. fr. mgc Below is the minimum working example, followed by the contents of the external file. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %!TEX TS-program = xelatex %!TEX encoding = UTF-8 Unicode \documentclass[12pt]{memoir} \usepackage{fontspec,xltxtra,xunicode} \defaultfontfeatures{Mapping=tex-text} \setromanfont[Ligatures=TeX]{TeX Gyre Schola} \usepackage{lipsum} \pagestyle{plain} \begin{document} \lipsum[52] \bigskip \centerline{Psalm 1} \settowidth\versewidth{nor stands in the path with sinners} \begin{verse}[\versewidth] \input{./Ps1} \end{verse} And that says it all! \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % External file contents: Ps1.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \memgobble{1}Blessed indeed is the man\\ who follows not the counsel of the wicked,\\ nor stands in the path with sinners,\\ nor abides in the company of scorners,\\ \memgobble{2}but whose delight is the law of the Lord,\\ and who ponders his law day and night.\\! \memgobble{3}He is like a tree that is planted\\ beside the flowing waters,\\ that yields its fruit in due season,\\ and whose leaves shall never fade;\\ and all that he does shall prosper.\\! \memgobble{4}Not so are the wicked, not so!\\ For they, like winnowed chaff,\\ shall be driven away by the wind.\\! \memgobble{5}When the wicked are judged they shall not rise,\\ nor shall sinners in the council of the righteous;\\ \memgobble{6}for the Lord knows the way of the righteous,\\ but the way of the wicked will perish.

  • How to set `oneside` left-margin with geometry parameter elegantly?
    by Explorer on August 1, 2026 at 4:36 pm

    I want to get a oneside document, whose everypage holds left margin region as below: The target sketch above was the second page given by: \documentclass{book} \usepackage[ showframe, includemp, textwidth=12cm, marginparsep=0.5cm, marginparwidth=5cm, ]{geometry} \usepackage{amsmath} \usepackage{lipsum} \begin{document} \section{Test Test Test Test} \lipsum[1-3] \lipsum[1][1]\marginpar{\raggedright\lipsum[2][1-4]}\lipsum[2-3] \section{Test Test Test Test} \lipsum[1-3] \lipsum[1][1]\marginpar{\raggedright\lipsum[2][1-4]}\lipsum[2-3] \end{document} Now, I want to fix the geometry paramters, change to oneside, and add \reversemarginpar: \documentclass[oneside]{book} \usepackage[ showframe, includemp, textwidth=12cm, marginparsep=0.5cm, marginparwidth=5cm, ]{geometry} \usepackage{amsmath} \usepackage{libertinus-otf} \usepackage{lipsum} \reversemarginpar \begin{document} \section{Test Test Test Test} \lipsum[1-3] \lipsum[1][1]\marginpar{\raggedright\lipsum[2][1-4]}\lipsum[2-3] \section{Test Test Test Test} \lipsum[1-3] \lipsum[1][1]\marginpar{\raggedright\lipsum[2][1-4]}\lipsum[2-3] \end{document} The result was unexpected: My question is that, in my ideal "left margin region" oneside document, the settings: \usepackage[ showframe, includemp, textwidth=12cm, marginparsep=0.5cm, marginparwidth=5cm, ]{geometry} was enough to reverse the margin, I don't want to manually calculate something like left=? within geometry setting. I wonder how to get a "oneside" document with reversed "left margin region" everypage without specifying/calculating parameters other than textwidth=12cm,marginparsep=0.5cm,marginparwidth=5cm.

  • Stacking multiple number lines on top of each other
    by Muhannad Al Ayoubi on August 1, 2026 at 9:09 am

    I made the following diagram, which is supposed to depict how the intersection of two intervals can be determined. However, as you can see, I could include only one number line, which makes the diagram look rather empty, in my opinion. Is there a away to draw two more number lines above the original one, aligned with the "flying" blue intervals? I have thought about drawing three separate tikz pictures above each other, but then I can't draw the red dashed line, and it would also make it difficult to control the invisible space taken by the y-axis. \documentclass{book} \usepackage{pgfplots} \begin{document} \begin{tikzpicture}[every node/.style={font=\small},] \begin{axis}[ clip=false, axis x line=middle, axis y line=none, x axis line style={<->}, xmin=-3.4, xmax=7.4, ymin=-.5, ymax=3, xtick distance=1, x=.6cm, y=1cm, ] % Red dashed lines \draw [red,dashed] (axis cs:-1,0) -- (axis cs:-1,2.2) (axis cs:6,0) -- (axis cs:6,2.2); % Points \addplot[only marks,mark options={fill=white}] coordinates {(6,2) (-1,1) (6,0) (-1,0)}; % Uppermost number line for x < 6 \draw[<-,very thick] (axis cs:-3,2) -- (axis cs:6,2); % Middle number line for x > -1 \draw[->,very thick] (axis cs:-1,1) -- (axis cs:7,1); % Lower number line for intersection of inequalities \draw[very thick] (axis cs:-1,0) -- (axis cs:6,0); % Labels \draw (axis cs:8,2) node[right]{$x<6$} (axis cs:8,1) node[right]{$x>-1$} (axis cs:8,0) node[right]{$x<6$ and $x>-1$, or simply $-1<x<6$.}; \end{axis} \end{tikzpicture} \end{document} Here is what it looks like (note I have removed color and font information from the code to keep things simple).

  • How to format citation of a book reprinted within a multivolume set of works
    by Michael L. on August 1, 2026 at 2:40 am

    Code I am trying to reference a book which has been republished within a multivolume set of the author's works. Here are the relevant bibliography entries: @mvbook{OwenWorks, address={Edinburgh}, author = {Owen, John}, title = {The Works of John Owen}, shorttitle = {Works}, date = {1850}, editor = {William J. Goold}, publisher = {T\&T Clark}, volumes={24}, } @bookinbook{Pneumatologia, crossref={OwenWorks}, title={Pneumatologia}, volume={3}, pages={1–651} } A brief example of the file: \documentclass{turabian-thesis} \usepackage[backend=biber, notes, isbn=false, noibid]{biblatex-chicago} \addbibresource{example.bib} \begin{document} Example text.\autocite{OwenWorks} More example text.\autocite{Pneumatologia} \printbibliography \end{document} Output The footnote for Pneumatologia appears as: John Owen, Pneumatologia, vol. 3 of The Works of John Owen, ed. William J. Goold (Edinburgh: T&T Clark), 1–651. In accordance with Turabian 17.1.4.1, I would like it to read as: John Owen, Pneumatologia, in Works, 3:1–651. If I use \autocite[3:1–651]{OwenWorks}, I get: Owen, Works, 3:1–651. This does not include the title of the work Pneumatologia. If I use \footnote{Owen, *Pneumatologia*, in \cite[3:1–651]{OwenWorks}.}, I get: Owen, Pneumatologia, in Owen, Works, 3:1–651. This list Owen's name twice. What do I need to do to?

  • How can I format the derivative of a long vector function in LaTeX so it does not spill over the page margin?
    by Jasper on July 31, 2026 at 4:58 pm

    How can I format the derivative of a long vector function in LaTeX so it does not spill over the page margin? Is it better to stack the components in a column, use line breaks with hanging indents inside parentheses, or break it down component by component? \documentclass{article} \usepackage{mathtools} \usepackage{unicode-math} \begin{document} \begin{align*} \frac{d}{dt}\biggl( \frac{2at^2}{t^2+1}, \frac{2at^3}{t^2+1}, \frac{2at^4}{t^2+1} \biggr) &=\biggl( \frac{d}{dt}[2at^2](1+t^2)^{-1}+\frac{d}{dt}[(1+t^2)^{-1}](2at^2), \frac{d}{dt}[2at^3](1+t^2)^{-1}+\frac{d}{dt}[(1+t^2)^{-1}](2at^3), \frac{d}{dt}[2at^4](1+t^2)^{-1}+\frac{d}{dt}[(1+t^2)^{-1}](2at^4) \biggr) \end{align*} \end{document}

  • Centering a table
    by user446112 on July 31, 2026 at 9:20 am

    I'm struggling in centering a table in Beamer. The final result is a horizontally ill centered table. My code is: \documentclass{beamer} \usepackage{nicematrix} \begin{document} \begin{frame} My table \\[5pt] \begin{center} \begin{NiceTabular}{w{l}{1em}w{l}{7em}}[cell-space-limits=2.5pt] \textbf{i.} & My first item, \\ \textbf{ii.} & My second item is very looooooooooooooong, \\ \textbf{iii.} & My third item is not very long. \end{NiceTabular} \end{center} \end{frame} \end{document} (complied via LuaLaTeX). With thanks.

  • How to include a TikZ .tex file in a large document? I keep getting "LaTeX Error: Environment tikzpicture undefined."
    by ali bab613 on July 30, 2026 at 1:28 am

    I have a fairly complex document, but I extracted this MWE from it. I'm including a similar file tree as what's in the actual document to ensure that its as close to my document as possible. For extra context, I am using Overleaf, and compiling using LuaLaTeX (in case that's relevant). main.tex has this: \documentclass{article} \usepackage{standalone} \usepackage{hyperref} \begin{document} \input{Chapter1} \end{document} The content of Chapter1.tex is as follows: \input{Images/Chapter 1/Tester} and the Tester.tex file referenced is as follows: \documentclass{standalone} \usepackage{tikz} \usepackage{adjustbox} \begin{document} \begin{adjustbox}{margin=2} \begin{tikzpicture} \node [draw,circle,black,scale=0.7,minimum width=46] at (0,0) {Tester}; \end{tikzpicture} \end{adjustbox} \end{document} I should note that when I compile Tester.tex, it generates the circle fine. When I compile main.tex, however, it gives me the line of code itself in the pdf: I was using the standalone package as suggested in the answers to this question, but it was not enough. Any advice is appreciated!