Week
- How to Increase the Spacing Between Arched Letters?by DDS on June 30, 2026 at 10:57 pm
Consider the code: \documentclass[12pt]{book} \usepackage{tikz,xcolor} \usetikzlibrary{decorations.text} % Spaceout Algorithm \def\theLetterSpace{0.5pt} \def\theWordSpace{1.5\LocalLetterSpace} \newlength\LocalLetterSpace \newcommand\spaceout[2][\theLetterSpace]{% \setlength\LocalLetterSpace{#1}\expandafter\spaceouthelpA#2 \relax\relax} \def\spaceouthelpA#1 #2\relax{% \spaceouthelpB#1\relax\relax% \ifx\relax#2\else\ \kern\theWordSpace\spaceouthelpA#2\relax\fi } \def\spaceouthelpB#1#2\relax{% #1% \ifx\relax#2\else \kern\LocalLetterSpace\spaceouthelpB#2\relax% \fi } \begin{document} \thispagestyle{empty} Here is some text. \vspace{10pt} {\spaceout[2pt]{Here is some "spaced out" text.}} \vspace{65pt} \begin{tikzpicture} \draw[-latex,white,postaction={decorate},decoration={text along path, text={I WOULD LIKE TO INCREASE SPACING BETWEEN THESE ARCHED LETTERS},text color={blue!85!black},text align=center}] (7,0) arc [start angle=180,end angle=0,radius=8]; \end{tikzpicture} \end{document} which produces: The above "spaceout" algorithm (if I recall correctly) cf. Steven B. Segeletes. As you can see, I have encountered no difficulty in applying the algorithm to a regular sentence. However, I have not been apply to apply it correctly to the arched words above. QUESTION: How may I, using this algorithm or by some other method, increase the spacing between the displayed arched letters? I compile the code with xelatex. Thank you.
- Get an overbrace over a matrix, with entries aligned with columns and rows of matrixby jayant on June 30, 2026 at 7:32 pm
I am trying to get a matrix with an overbrace and sidebrace which looks like the following; I tried the following code so far, \documentclass[12pt]{article} \usepackage{epsfig} \usepackage{amssymb} %\usepackage[dvips]{color} \usepackage{amsmath} \usepackage{amsthm} \[ \begin{array}{ccc} \overbrace{\text{Col 1}}^{\text{Label A}} & %\overbrace{\text{Col 2 \quad Col 3}}^{\text{Label B}} & %\overbrace{\text{Col 4}}^{\text{Label C}} \\ \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} \end{array} \] \end{document} But it is not giving the desired output. Kindly help.
- Line endings in catchfilebetweentagsby Jim Hefferon on June 30, 2026 at 7:26 pm
I have a textbook, and from it I have derived slides. To ensure that the slide contents match the book's I use catchfilebetweentags. I'm now working on the book's new edition and this package still correctly fetches the material between the tags, but it now omits spaces where the source file book.tex has line endings. Here is the derived file slides.tex. \documentclass{article} \usepackage{catchfilebetweentags} \newcommand{\catchfilefn}{book.tex} \begin{document} Introductory text \ExecuteMetaData[\catchfilefn]{firsttag} \ExecuteMetaData[\catchfilefn]{secondtag} \end{document} Here is the source file book.tex. \documentclass{book} \usepackage{blindtext} \begin{document} \blindtext %<*firsttag> Contents of first tag. This is a sentence with a line break in the middle. %</firsttag> \blindtext %<*secondtag> Contents of \textit{second} tag. One word has an\index{test} index entry. %</secondtag> \blindtext \end{document} In the output slides.pdf there is no space between the tag. and This. Similarly there is no space between a and line. Linewise for tag. and One, and an and index. I have used this package for years and not seen this behavior (its last update on CTAN is 2011). I have today's TeX Live.
- Dimensionating of color blocks in a matrixby Carl Anderson on June 30, 2026 at 3:57 pm
By using nicematrix package and command \Block, I'm struggling to reduce the width and height of block colors, separately. Any hint? Below, find the code: \documentclass{article} \usepackage{nicematrix,tikz} \begin{document} \begin{equation*} \begin{bNiceArray}{cccc|c}[columns-width=5pt,margin] \Block[fill=red]{2-4}{} a_{11} & a_{12} & a_{13} & a_{14} & \Block[fill=yellow]{3-1}{} a_{15} \\ a_{21} & a_{22} & a_{23} & a_{24} & a_{25} \\ a_{31} & a_{32} & a_{33} & a_{34} & a_{35} \end{bNiceArray} \end{equation*} \end{document}
- how to align axis-coordinate system with tikzpicture-coordinate systemby flawr on June 30, 2026 at 3:13 pm
I'd like to use a pgfplots axis environment to render some plots. I'd like them to be aligned with the surrounding TiKz graphics. However, I have not yet managed to find the correct options. I'm also only interested in the plotted line itself, so no ticks or axes need to be drawn in addition. So far I have this (failed) example. My goal would be aligning the coordinate system the axis environment such that the two curves are right on top of each other. With the width/height I assumed I could set the exact dimensions, but that already seems to be off. Is there a way to modify this axis-environment to match the coordinate system of the tikzpicture-environment? \documentclass{standalone} \usepackage{tikz} \usepackage{pgfplots} \pgfplotsset{compat=1.18} \begin{document} \begin{tikzpicture} \draw[lightgray] (-2, -3) grid (4, 4); \fill[lightgray] (0,0) circle (0.2); % origin \draw[green] plot [red, domain=-2:4, samples=200] (\x, {exp(-abs(\x)^2)}); \begin{axis}[ xtick=\empty, ytick=\empty, hide axis, xmin=-2, xmax=4, axis equal, width=6cm, height=7cm, anchor=south west, at={(-2cm,-2cm)}, ] \addplot [red, domain=-2:5, samples=200] (\x, {exp(-abs(\x)^2)}); \end{axis} \end{tikzpicture} \end{document}
- skak, xskak, chessboard use black symbols font in move notationby Jielpe on June 30, 2026 at 12:40 pm
I'm writing chesboards and move notation, I would like to use a black symbol when writing black move, \documentclass{article} \usepackage{xskak} \begin{document} \newchessgame \mainline[style=styleC]{1. d4 d5 2. Bf4 Nf6} \end{document} The knight symbol is the one from the white font, I'd like it to be the black one, not sure if i'm clear... [edit] I found another question related : Chess notation: Switch between color and notation style I've tried using what i've foud there but it doesn't seems to work with the styleC i'm using, \documentclass{article} \usepackage{xskak} \makeatletter \def\cfssfixbaseline#1{\raisebox{-0.31ex}{\setboardfontsize{\f@size}#1}} \def\useblackfig{\def\cfss@figlanguage{@BLSB}} \def\usewhitefig{\def\cfss@figlanguage{@WLSB}} \def\cfss@king@@WLSB{\cfssfixbaseline{\cfss@WhiteKingOnWhite}} \def\cfss@queen@@WLSB{\cfssfixbaseline{\cfss@WhiteQueenOnWhite}} \def\cfss@rook@@WLSB{\cfssfixbaseline{\cfss@WhiteRookOnWhite}} \def\cfss@bishop@@WLSB{\cfssfixbaseline{\cfss@WhiteBishopOnWhite}} \def\cfss@knight@@WLSB{\cfssfixbaseline{\cfss@WhiteKnightOnWhite}} \def\cfss@pawn@@WLSB{\cfssfixbaseline{\cfss@WhitePawnOnWhite}} \def\cfss@king@@BLSB{\cfssfixbaseline{\cfss@BlackKingOnWhite}} \def\cfss@queen@@BLSB{\cfssfixbaseline{\cfss@BlackQueenOnWhite}} \def\cfss@rook@@BLSB{\cfssfixbaseline{\cfss@BlackRookOnWhite}} \def\cfss@bishop@@BLSB{\cfssfixbaseline{\cfss@BlackBishopOnWhite}} \def\cfss@knight@@BLSB{\cfssfixbaseline{\cfss@BlackKnightOnWhite}} \def\cfss@pawn@@BLSB{\cfssfixbaseline{\cfss@BlackPawnOnWhite}} % % https://tex.stackexchange.com/a/312066/46023 \def\instring#1#2{TT\fi\begingroup \edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@} % \def\isuppercase#1{% \instring{#1}{ABCDEFGHIJKLMNOPRSTUVYZ}% }% \makeatother \def\FirstArgX{text} \newcommand\skaksymb[2][]{\begingroup% \def\SecondArgX{#1}% \ifx\FirstArgX\SecondArgX \usetextfig\textsymfigsymbol{#2}\else% \if\isuppercase{#2}\textsymfigsymbol{#2}% \usewhitefig \else% \useblackfig\textsymfigsymbol{#2}\fi\fi% \endgroup} \begin{document} \xskaknewstyleitem[% template=UF,% I tried putting styleC here beforewhite={\usewhitefig}, beforeblack={\useblackfig}, afterblack=\color{black}\hspace{1.25ex} ]{myitems} \xskakaddtostyle[% font=\normalfont, styleitem=myitems ]{test} \newchessgame \hidemoves{1.d4 d5 2. Bf4 Nc6 } \printchessgame[style=test] \end{document} Gives :
- Parskip and itemize packages - space after and before itemize depending on surrounding textby Zlog on June 30, 2026 at 11:04 am
Below is my MWE: \documentclass[a4paper]{article} \usepackage{enumitem} \usepackage[skip=\baselineskip]{parskip} \setlist[itemize]{nosep} \newenvironment{nospitemize}{% \begin{itemize}[topsep=-\parskip]% }{ \end{itemize}% \leavevmode% } \begin{document} aaaa \begin{nospitemize} \item first item \item second item \end{nospitemize} bbbb \begin{nospitemize} \item first item \item second item \end{nospitemize} cccc \begin{nospitemize} \item first item of list that should be in "new" paragraph \item second item \end{nospitemize} dddd \end{document} What I want is so that \nospitemize does not start new paragraph on its own and also does not prevent from starting it. So the same as in code "aaaa", "bbbb" and "dddd" should stick to lists, but "cccc" should be in different paragraph then lists (at least visually). The closest I got is by also adding \leavevmode at the begining: \newenvironment{nospitemize}{% \leavevmode% \begin{itemize}[topsep=-\parskip]% }{ \end{itemize}% \leavevmode% } but that creates too large space between "cccc" and next itemize
- How to have multiple hyperlinks in a TikZ picture with alt text and valid tagging?by Senex on June 30, 2026 at 10:02 am
In the MWE below, the TikZ picture is a ‘roadmap’ showing how various lemmas combine in a proof (vastly simplified from my original), and I would like to have the hyperlinked \refs to the lemmas (which are spread over multiple pages in my original). But with alt={...}, VeraPDF complains that Link annotations that target different locations shall be in separate Link or Reference structure elements If I remove alt={...}, the PDF passes validation. If I change \ref to \ref* to remove the hyperlinks, the PDF passes validation. If there is only one hyperlink in the TikZ picture, the PDF passes validation. The same problem occurs replacing on alt={...} with artifact. I understand that tagging is in development, but is there any quick fix or workaround that allows multiple hyperlinks in a TikZ picture with alt text? (Or is there perhaps some fundamental incompatibility with tagging multiple hyperlinks inside a TikZ picture?) MWE: \DocumentMetadata{ pdfversion=2.0, pdfstandard=UA-2, lang=en-GB, tagging=on, } \documentclass{article} \usepackage{unicode-math} \usepackage{hyperref} \usepackage{tikz} \newtheorem{lemma}{Lemma} \title{Test} \begin{document} Roadmap of proving the theorem: \begin{tikzpicture}[alt={Roadmap}] \node (A) at (0,0) {$A$}; \node (B) at (2,0) {$B$}; \node (C) at (4,0) {$C$}; \draw[->] (A) edge node[auto] {Lem.~\ref{lem:ab}} (B); \draw[->] (B) edge node[auto] {Lem.~\ref{lem:bc}} (C); \end{tikzpicture} \begin{lemma} \label{lem:ab} If $A$, then $B$. \end{lemma} \begin{lemma} \label{lem:bc} If $B$, then $C$. \end{lemma} \end{document}
- Itemize bullets changed when loading fontsetupby rahotep on June 29, 2026 at 8:39 pm
I am experiencing a unexpected interaction between the New Computer Modern fonts and the bullets used for itemize environments. They are replaced by squared bullets and I didn't see any reference about it the documentation. Here is a MWE % !TEX TS-program = lualatex \documentclass[12pt,a4paper]{article} \usepackage[sansdefault]{fontsetup} \usepackage{lipsum} \begin{document} \lipsum[1][1-5] \begin{itemize} \item item 1 \item item 2 \item item 3 \end{itemize} \lipsum[1][1-5] \end{document}
- `memoize` and `PGFPlots`: multiple graphs get "merged" into one?by Thibault de Villèle on June 29, 2026 at 12:08 pm
I've got a bunch of figures which are PGFPlots elements side by side, as such: \begin{figure}[ht]% \centering% \begin{subfigure}{.49\textwidth}% \centering% \sizedplot{../path/to/plot-dir/bunny-multires}{p1-rmse.tikz}% \end{subfigure}\hfill% \begin{subfigure}{.49\textwidth}% \centering% \sizedplot{../path/to/plot-dir/bunny-multires}{p1-times-graph.tikz}% \end{subfigure}\\[1pt]% % Note: the `bunny-multires-plot` key is defined as the "legend name" in p1-rmse.tikz: \pgfplotslegendfromname{bunny-multires-plot}% \caption{Blah, blah, blah.}% \label{fig/bunny-multires}% \end{figure}% Where the \sizedplot command is defined as such: \NewDocumentCommand{\sizedplot}{s O{\textwidth} m m}{% \bgroup% \def\basepath{#3}% \def\fullpath{\basepath/#4}% \mmznext{meaning to salt={\fullpath}}% \begin{memoize}% \IfBooleanTF{#1}% If star, do not resize to #2. {\begin{tikzpicture}\input{\fullpath}\end{tikzpicture}}% {\resizebox{#2}{!}{\begin{tikzpicture}\input{\fullpath}\end{tikzpicture}}}% \end{memoize}% \egroup% }% This indirection is mainly due to the fact I include data from CSV files relative to the path of the plots, like: \addplot table [options] {\basepath/losses.csv}. When doing this, and enabling external compilation through the use of the memoize package, both graphs (the subfigure elements) are detected as the same "source", leading to one of the graphs (often the second one in the order they were defined) being copied in both sub-figures after memoization + recompilation. What could go wrong here? I've added -- as shown above -- the full path as a source for the salt in memoize's options, hoping they would thus get detected as two different graphs, but nothing seems to make that specific use case work. If I only have one TikZ / PGFPlots image in a figure environment, it compiles just fine. Here is a MWE, with all contents laid inline (sorry, the file is a bit long as a result): \documentclass{scrarticle} \usepackage{subcaption} \usepackage{siunitx} \usepackage{tikz} \usepackage{pgfplots} % IMPORTANT: switch this on/off to see the changes. \usepackage{nomemoize} %\usepackage{memoize} \NewDocumentCommand{\ValeurLegende}{m}{\num[output-exponent-marker=e,tight-spacing=true]{#1}}% \NewDocumentCommand{\ValeurAnnotation}{m}{\bgroup\scriptsize\num[output-exponent-marker=e,tight-spacing=true]{#1}\egroup}% \mmzset{padding=0pt, include context in ccmemo, trace} \pgfplotsset{% rmse/.style={table/col sep=comma,table/x={iteration}, table/y={classic}},% timings/.style={table/col sep=comma,table/x={iteration}, table/y={time-ms}},% }% \NewDocumentCommand{\sizedplot}{s O{\textwidth} m m}{% \bgroup% \def\basepath{#3}% \def\fullpath{\basepath/#4}% \mmznext{meaning to salt={\fullpath}}% \mmznext{meaning to context={\fullpath}}% \begin{memoize}% \IfBooleanTF{#1}% If star, do not resize to #2. {\begin{tikzpicture}\input{\fullpath}\end{tikzpicture}}% {\resizebox{#2}{!}{\begin{tikzpicture}\input{\fullpath}\end{tikzpicture}}}% \end{memoize}% \egroup% }% \begin{filecontents}{inline-loss-1.csv} iteration,time-ms,loss-abs,loss-cen,loss-fro 0,217.78973,9.07334387e-02,3.75475502e-04,2.29247450e-03 1,13.39216,8.98691937e-02,3.73302639e-04,3.80451954e-03 2,11.54511,8.92234743e-02,3.69715272e-04,4.83295647e-03 3,11.24531,8.90074968e-02,3.68322566e-04,5.51446620e-03 4,11.06645,8.86987820e-02,3.66538385e-04,6.02372689e-03 5,11.16146,8.89326632e-02,3.68111941e-04,6.37550279e-03 6,11.35311,8.90174806e-02,3.68967390e-04,6.63577626e-03 \end{filecontents} \begin{filecontents}{inline-loss-7.csv} iteration,time-ms,loss-abs,loss-cen,loss-fro 0,440.79675,4.83646780e-01,8.67330883e-08,4.42878436e-03 1,120.62730,4.86005545e-01,9.31322575e-10,5.97733771e-03 2,121.23386,4.86002266e-01,9.31322575e-10,6.64955098e-03 \end{filecontents} \begin{filecontents}{inline-rmse-1.csv} iteration,classic,normalized,normalizedpercent 00000,2.43285656e-01,1.58218700e+00,158.22 00001,8.82571621e-04,2.21190803e-01,22.12 00002,8.10880039e-04,2.27497900e-01,22.75 00003,7.84764765e-04,2.19129181e-01,21.91 00004,7.73038832e-04,2.14945569e-01,21.49 00005,7.67099671e-04,2.28823943e-01,22.88 00006,7.63582473e-04,2.29091554e-01,22.91 \end{filecontents} \begin{filecontents}{inline-rmse-7.csv} iteration,classic,normalized,normalizedpercent 00000,2.43285656e-01,1.58218700e+00,158.22 00001,7.45367841e-04,1.91473720e-01,19.15 00002,6.76008989e-04,1.71335431e-01,17.13 \end{filecontents} \begin{filecontents}{inline-rmse.tikz} \begin{semilogyaxis}[% width=7cm,% height=5cm,% legend columns=7,% legend to name={plot-loss},% xtick pos=bottom,% ytick pos=left,% ylabel={\texttt{Losses}},% ]% \addplot table [rmse] {\basepath/inline-rmse-7.csv};% \addlegendentry{\(\epsilon=\ValeurLegende{1e-7}\)}% \addplot table [rmse] {\basepath/inline-rmse-1.csv};% \addlegendentry{\(\epsilon=\ValeurLegende{1e-1}\)}% \end{semilogyaxis}% \end{filecontents} \begin{filecontents}{inline-timings.tikz} \begin{semilogyaxis}[% width=7cm, height=5cm,% xtick pos=bottom, ytick pos=left,% ylabel={\(t_i~(\unit{\milli\second})\)}, log ticks with fixed point,% ]% \addplot table [timings] {\basepath/inline-loss-7.csv};% \addplot table [timings] {\basepath/inline-loss-1.csv};% \end{semilogyaxis}% \end{filecontents} \begin{document} \begin{figure}[ht]% \centering% \begin{subfigure}{.49\textwidth}% \centering% \sizedplot{.}{inline-rmse.tikz}% \end{subfigure}\hfill% \begin{subfigure}{.49\textwidth}% \centering% \sizedplot{.}{inline-timings.tikz}% \end{subfigure}\\[1pt]% \pgfplotslegendfromname{plot-loss}% \caption{Blah, blah, blah.}% \label{fig/losses}% \end{figure}% \end{document} Passing include context in ccmemo and trace both helped me discover memoize does not expand the macro \fullpath when trying to memoize the second graph (inline-timings.tikz). Instead, it only receives this bit of code to generate the hash: Code: \IfBooleanTF {\BooleanFalse }{\begin {tikzpicture}\input {\fullpath }\end {tikzpicture}}{\resizebox {\textwidth }{!}{\begin {tikzpicture}\input {\fullpath }\end {tikzpicture}}} And since it is the same for both pictures, this means the second graph (encountered later) will be saved under the "common" hash when compiling for the first time, leading to the graphs being the same on the final PDF... Now that I've discovered the cause, I need to dig deeper into why it happens 🙂
- mhchem negative charge signs changes in math environmentsby Bekir Şahin on June 29, 2026 at 10:18 am
While using ce in the body, the - signs for the charge looks smaller. However, while using it in a math environment, the minus sign gets elongated and becomes more pronounced, which looks completely different than the previous one. I am using New CM, with lualatex. Is there a bypass for that? \ce{B-} \(\ce{B-}\), \ce{B+} \(\ce{B+}\), \ce{B^{2-}} \(\ce{B^{2-}}\), \ce{B^{2+}} \(\ce{B^{2+}}\)
- Node label style in TikZ cdby CarLaTeX on June 29, 2026 at 7:47 am
Is it possible to set the font style of the node labels in tikz-cd? Pay attention: the node labels, not the arrow labels or the node itself. I tried with every label/.append style={font=\scriptstyle,}, but it doesn't work. In the following MWE, I would like to have all the node labels \scriptstyle, without writing it in every label. \documentclass{article} \usepackage{tikz-cd} \tikzset{punto/.style={ circle, fill=red, inner sep=2pt } } \begin{document} \begin{tikzcd}[ cells={nodes={punto}}, ] |[label=left:{\scriptstyle 1}]| & |[label=right:{\scriptstyle 2}]|\\ |[label=left:{\scriptstyle 3}]| & |[label=right:{\scriptstyle 4}]|\\ \end{tikzcd} \end{document}
- draw line shadow or outlineby Abd el hamid BENAOUM on June 29, 2026 at 12:01 am
I am trying to draw a line in TikZ between two arbitrary points, for example, from $A(0,0)$ to $B(3,5)$, where the gradient (degradation) runs perpendicularly (transversely) to the path itself. The line should be solid black in the exact center and fade smoothly to white/transparent on both the top and bottom edges, looking like a soft or blurred brush stroke. like this: I managed to approximate this by drawing a manual path with calc offsets and calculating the specific shading angle manually: \begin{tikzpicture} % Define coordinates for the horizontal path (center-line) % A is the starting point, B is the ending point \coordinate (A) at (0,0); \coordinate (B) at (6,0); % Create a vertical degradation (fading) using a shaded rectangle. % We define a rectangle centered on the line, where: % - top color fades to white % - bottom color fades to white % - middle color is solid black % Adjust the height (e.g., 0.6cm) to make the bar and blur thicker or thinner. % Adjust the width (the X coordinate of B) to make it longer or shorter. \shade[top color=white, bottom color=white, middle color=black, line cap=butt] ($(A) + (0, 0.3cm)$) rectangle ($(B) + (0, -0.3cm)$); \end{tikzpicture}
- Stacking diacritics to small capitalsby Antonis on June 28, 2026 at 1:36 pm
A user asked how to stack diacritics on small capitals in NewCM. Small capitals are accessible via scmp from lowercase and via c2sc from uppercase, but stacking fails. For example, when A is followed by U+0304 (combining macron) with c2sc enabled, the letter switches to the plain capital A. When U+0304 is removed, the small capital A is produced correctly. NewCM contains information for stacking diacritics on its small capitals as well, but it seems there is a bug in the engine, or something else is happening that I do not understand. Here is an MWE: \documentclass{article} \usepackage[default]{fontsetup} \begin{document} \addfontfeatures{RawFeature=+c2sc} \textsc{ā, ī, ū, ṭ, ḍ, ḷ, ṁ, ṃ, ṇ, ṅ, ñ} \textsc{a}̄ \textsc{a} A Ā \end{document} Notice that small-cap n with tilde works because this character is precomposed in the font, but we cannot expect the font to have all characters precomposed, which is why we need stacking. The output is erratic. The line \textsc{a}̄ does not result from stacking but from the negative width of the macron, which is why it is not centered. Note that you may find another font that produces correct output, but this will only be because it has the above characters precomposed. Stacking still fails. We cannot precompose everything.
- Straight lines in a matrixby Andy Fletcher on June 28, 2026 at 12:14 pm
I'm trying to draw straight lines in a matrix using nicematrix, and I achived the code: \documentclass{article} \usepackage{nicematrix,tikz} \begin{document} \begin{equation*} \begin{bNiceMatrix} \CodeBefore[create-cell-nodes] \begin{tikzpicture} %\draw[blue,-] (3-1) -- (4-2) ; %\draw[blue,-] (4-2) -- (3-4) ; \draw[blue,-] (3-1.north west) -- (4-2.south east) ; \draw[blue,-] (4-2.south east) -- (3-4.north east) ; \end{tikzpicture} \Body a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ a_{41} & a_{42} & a_{43} & a_{44} \end{bNiceMatrix} \end{equation*} \end{document} My problem is the straight lines are not centered in the entries of the matrix (see image below); I considered also \draw[blue,-] (3-1) -- (4-2) ; \draw[blue,-] (4-2) -- (3-4) ; instead of \draw[blue,-] (3-1.north west) -- (4-2.south east) ; \draw[blue,-] (4-2.south east) -- (3-4.north east) ; but in this case the two line are not linked. Any hint (desirably keeping the matrix created by nicematrix)? Thanks.
- ! TeX capacity exceeded, sorry [save size=500000]. How to increase limit?by Nasser on June 28, 2026 at 7:16 am
I have large document with many \label{} and another document which does reference on these. This below is MWE to produce this error I get on my real document ! TeX capacity exceeded, sorry [save size=500000]. I tried to increase it in texmf.cnf but had no effect. (did rehash and rebuild formats, etc...) Is this hardcoded in lualatex? Is there a way to increase it? I know how to rebuild lualatex from source. I just now do not know where to look for this limit if it is hardcoded there or not to change it. \documentclass{book} \usepackage{hyperref} \begin{document} \chapter{A} \directlua{ for i = 1, 800000 do tex.print("\\section{" .. i .. "}\\label{".. i .."}") tex.print("some text") end } \end{document} Compile with lualatex gives (/usr/local/texlive/2026/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/usr/local/texlive/2026/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty ))) (/usr/local/texlive/2026/texmf-dist/tex/latex/l3backend/l3backend-luatex.def) (./A.aux) (./A.out) (./A.out ! TeX capacity exceeded, sorry [save size=500000]. \Hy@pstringdef ...->\begingroup \edef ~{\string ~} \xdef \Hy@gtemp {\pdf@esca... l.499937 ...4\0009\0009\0009\0003\0006}{chapter.1} % 499937 382 words of node memory still in use: 2 hlist, 1 rule, 1 dir, 3 kern, 1 glyph, 3 attribute, 49 glue_spec, 3 attrib ute_list, 1 if_stack, 1 write nodes avail lists: 2:12,3:2,4:1,5:3,6:1,7:2,9:3 ! ==> Fatal error occurred, no output PDF file produced! Transcript written on A.log. > info >which lualatex /usr/local/texlive/2026/bin/x86_64-linux/lualatex >lualatex --version This is LuaHBTeX, Version 1.24.0 (TeX Live 2026) Development id: 7724 I asked google AI but it did not know.
- How to remove the `:n` specifier when calling `\getdata:n { h }`?by xcn on June 28, 2026 at 4:41 am
If I replace in: \cs_new:Nn \getdata:n { \prop_item:Nn \g_landingslab_data_prop {#1} } \cs_set:Npn \getdata #1 { \prop_item:Nn \g_landingslab_data_prop {#1} } then I can use \getdata{ h } instead of \getdata:n { h } , is it the correct way to do this ? \documentclass[12pt]{article} \usepackage[UTF8]{ctex} \usepackage{amsmath,siunitx} \ExplSyntaxOn \prop_new:N \g_landingslab_data_prop \cs_new:Nn \getdata:n { \prop_item:Nn \g_landingslab_data_prop {#1} } \cs_new:Nn \putdata:nn { \prop_put:Nnn \g_landingslab_data_prop {#1} {#2} } \keys_define:nn { landingslab } { width .code:n = { \putdata:nn { width } {#1} }, length .code:n = { \putdata:nn { length } {#1} }, h .code:n = { \putdata:nn { h } {#1} }, c .code:n = { \putdata:nn { c } {#1} }, d .code:n = { \putdata:nn { d } {#1} }, s .code:n = { \putdata:nn { s } {#1} }, frontfaceload .code:n = { \putdata:nn { frontfaceload } {#1} }, rearfaceload .code:n = { \putdata:nn { rearfaceload } {#1} }, } \cs_new_protected:Nn \l_landingslab_calc:n { \keys_set:nn { landingslab } {#1} \putdata:nn { h0 } { \fp_eval:n { \getdata:n { h } - \getdata:n { c } - \getdata:n { d } / 2 } } landing~slab~thickness: ~$ h = \getdata:n { h } \, \unit{mm} $\par slab~effective~depth:~$ h\sb 0 = \getdata:n { h0 }\, \unit{mm} $\par } \NewDocumentCommand{\stairPTB}{m}{ \l_landingslab_calc:n {#1} } \ExplSyntaxOff \begin{document} \begin{center}{\large\bfseries civil air\ defence\ stair }\end{center} \stairPTB{ width = 1.5, length = 2.9, h = 120, c = 20, d = 12, s = 200, frontfaceload = 60, rearfaceload = 30 } \end{document}
- Formatting long division without the longdivision packageby Matt on June 28, 2026 at 3:59 am
I'm trying to make a worksheet where students need to fill out parts of a long division statement. I usually use the longdivision package, but realized that I can't cover up parts of it for students to fill out. Any suggestions? I've attached an image for reference.
- Display and execute Latex code with Pitonby Mariuslp on June 27, 2026 at 10:36 pm
I am trying to replicate an example in the nicematrix guide, using piton to display latex code, execute it, and add an annotation with the code. However, while the code gets correctly displayed and annotated, the matrix is not displayed. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%% MUST USE LuaLatex %%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass{article} \usepackage{amsmath} \usepackage{piton} % using github version from 2026-06-27 since 'annotation' key comes from oct. 2025 and is not available on overleaf yet % copy-pasted files piton.lua and piton.sty % Taken from https://github.com/fpantigny/nicematrix/blob/master/nicematrix.tex#L78 \let\myrlap\rlap \PitonOptions{language = verbatim, detected-commands = {myrlap, emph,textsl}, splittable = 4} \SetPitonStyle{ Number = , Comment = } \ExplSyntaxOn \dim_new:N \l__pantigny_width_dim \keys_define:nn { pantigny } { width .dim_set:N = \l__pantigny_width_dim , annotation .code:n = \PitonOptions { annotation = #1 } } \NewPitonEnvironment { Code } { O { } } { \char_set_catcode_other:N | \cs_set_eq:NN \emph \emphase \dim_zero:N \l__pantigny_width_dim \PitonOptions { annotation,indent-broken-lines,continuation-symbol=\empty,end-of-broken-line=\empty, continuation-symbol-on-indentation=\hspace{2em} } \keys_set:nn { pantigny } { #1 } \color{gray} \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim { \PitonOptions { width = \l__pantigny_width_dim } \begin{minipage}[c]{\l__pantigny_width_dim} } } { \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim { \end{minipage} } } \ExplSyntaxOff \begin{document} displays the code but not the matrix: \begin{Code}[width=9cm] $\begin{pmatrix} \frac{1}{2} & -\frac{1}{2}\\ \frac{1}{3} & \frac{1}{4} \\ \end{pmatrix}$ \end{Code} matrix can get normally displayed: $\begin{pmatrix} \frac{1}{2} & -\frac{1}{2}\\ \frac{1}{3} & \frac{1}{4} \\ \end{pmatrix}$ \end{document} What am I doing wrong? Alternatively, if there is a way to obtain a similar result with tcblisting (code displayed and executed + pdf annotation using e.g. pdfcomment, that works for me too. Bonus points for latex syntax highlighting.
- Beamer frame command without environment [duplicate]by Skeeve on June 27, 2026 at 7:37 am
I would like to write two commands, \bframe and \eframe, so that \bframe Lorem ipsum \eframe is equivalent to \begin{frame} Lorem ipsum \end{frame} However the straightforward solution \newcommand{\bframe}{\begin{frame}} \newcommand{\eframe}{\end{frame}} leads to the error File ended while scanning use of \beamer@collect@@body, which I cannot understand. Any hints? P.S. The environment works just fine (but I don't understand why the separate commands behave in a different way): \newenvironment{myframe}{\begin{frame}}{\end{frame}}
- Using two different fonts in math mode with LuaLaTeXby rahotep on June 27, 2026 at 5:55 am
I'm trying to do the following in LuaLaTeX: having the main font be Arial; having the upper case letters in math font be Arial (if posible, not a strong requierement); having the lower case letters in math font be latin modern; having the numbers in math font be in Arial. To achieve these goals, I found out that the package mathastext could be a solution (as mentionned in a previous post), if used with the option "noletters". However, this option doesn't work as intended (or maybe I didn't understand what it was meant to do). Here is a MWE, with the result % !TEX TS-program = lualatex \documentclass[12pt,a4paper,french]{article} \usepackage{mathtools,amsfonts} % amsthm \usepackage[margin=1.5cm]{geometry} \usepackage{babel} \usepackage[no-math]{fontspec} % [no-math] \setmainfont{Arial} \usepackage[noletters,frenchmath*]{mathastext} % \MTmathstandardletters % \MTversion*{sans} \usepackage{lipsum} \begin{document} \lipsum[11] 1234567890 $1234567890$ $ABCDEFGHIKLMNOPQRSTUVWXYZ$ $abcdefghijklmnopqrstuvwxyz$ \end{document}
- tcolorbox: Using tikz pattern for drop shadowby Craig on June 26, 2026 at 6:21 pm
MWE: \documentclass{standalone} \usepackage{tcolorbox,tikz} \usetikzlibrary{patterns,patterns.meta} \begin{document} \begin{tcolorbox}[ sharp corners, rounded corners=downhill, ] Hello world \end{tcolorbox} \end{document} I have a tcolorbox. I would like the drop shadow to be made of the tikz pattern north east lines. I know tikz patterns can be used to fill parts of the tcolorbox itself (such as with title style={preaction={fill=white},pattern=crosshatch dots,pattern color=black}), but can this same trick also be used for drop shadows?
- Interaction between drawing something in the background and a page of floatsby Werner on June 26, 2026 at 3:59 am
In the following setup, I have a couple of images that forms part of a very large figure. The float ends up on a page of floats (on its own), because of the size. I plan on drawing some elements in the background, simulated by the background fill being the example images via \AddToHookNext{shipout/background}{<background drawing>}: \documentclass{article} \usepackage{lipsum,tikz} \begin{document} \lipsum[1-2] \begin{figure} \centering \tikz [remember picture] \node [inner sep = 10pt] (image-a) {\includegraphics[width = 0.5\linewidth]{example-image-a}}; \bigskip \tikz [remember picture] \node [inner sep = 10pt] (image-b) {\includegraphics[width = 0.5\linewidth]{example-image-b}}; \bigskip \tikz [remember picture] \node [inner sep = 10pt] (image-c) {\includegraphics[width = 0.5\linewidth]{example-image-c}}; \caption{A large figure} \AddToHookNext{shipout/background}{% \begin{tikzpicture}[remember picture, overlay] \filldraw [draw = red, fill = red!10!white, thick] (image-a.south west) rectangle (image-a.north east); \filldraw [draw = blue, fill = blue!10!white, thick] (image-b.south west) rectangle (image-b.north east); \filldraw [draw = green, fill = green!10!white, thick] (image-c.south west) rectangle (image-c.north east); \end{tikzpicture}} \end{figure} \lipsum[3-10] \end{document} Using this approach, however, puts the background drawing on the page where the original figure is processed, rather than where the actual figure is placed. How can I adjust the code so that the background content is placed correctly on the page where the float ends up? Ideally I'd like to keep the code as part of the figure as it semantically belongs with the figure, rather than placing it at some other bizarre place in the document just to make sure it fits there.
- How can I generate random numbers that are unique using pgftikz?by Matt on June 25, 2026 at 7:50 pm
I am trying to generate worksheets where each time \A is called for in the document, a random number is generated. I use \NewNumbers to make sure each \A within a section is identical. How can I make it so that each \A after the \NewNumbers command is different? \documentclass[addpoints, 12pt, answers]{exam} \usepackage[margin=1in]{geometry} \usepackage{amsmath, amssymb, lmodern, pgfmath, tikz, tcolorbox, multicol} \renewcommand{\familydefault}{\sfdefault} \pointformat{} \renewcommand{\TheSolution}[1]{ \pgfmathparse{#1 <= 1 ? "Neither" : (isprime(#1) ? "Prime" : "Composite")} \pgfmathresult } \pgfmathsetseed{1} \newcommand{\NewNumbers}{ \pgfmathsetmacro{\A}{random(0,100)} } \begin{document} \printanswers \begin{questions} \begin{multicols}{3} \NewNumbers \question[1] $\A$ \fillin[\TheSolution{\A}] \NewNumbers \question[1] $\A$ \fillin[\TheSolution{\A}] \NewNumbers \question[1] $\A$ \fillin[\TheSolution{\A}] \end{multicols} \end{questions} \end{document}
- Using TikZ-CD's "shift left" outside TikZ-CD (in a "\draw")by Eduardo Ochs on June 25, 2026 at 7:11 pm
The manual for TikZ-CD has a section called "3.3 Drawing diagrams directly with TikZ" that shows how to use the TikZ-CD styles "outside Tikz-CD". For example, "shift left" and "shift right" are styles defined in tikzlibrarycd.code.tex, and by default they only work inside a \begin{tikzcd}...\end{tikzcd} block; the tricks from section 3.3 should make "shift left" and "shift right" work inside a \begin{tikzpicture}...\end{tikzpicture} block, but the last example below shows that that doesn't work, or at least don't work inside a \draw, with the syntaxes that I've tried... What am I missing? Any hints? \documentclass{article} \usepackage{tikz} \usepackage{tikz-cd} \begin{document} Tikz-CD: % \begin{tikzcd}[baseline=(A4.base)] |[alias=A4]| B & |[alias=A5]| A \arrow [from=A4, to=A5, <-, "L", shift left=1] \arrow [from=A4, to=A5, ->, "R"', shift right=1] \end{tikzcd} Tikzpicture, 1: % \begin{tikzpicture}[baseline=(A4.base)] \node [anchor=center] (A4) at (0,0) {$\textstyle B$}; \node [anchor=center] (A5) at (1.25,0) {$\textstyle A$}; \draw [<-] (A4) -- (A5) node[midway,above] {$\scriptstyle L$}; \draw [->] (A4) -- (A5) node[midway,below] {$\scriptstyle R$}; \end{tikzpicture} Tikzpicture, 2: % \begin{tikzpicture}[baseline=(A4.base), commutative diagrams/.cd,every arrow,every label] \node [anchor=center] (A4) at (0,0) {$\textstyle B$}; \node [anchor=center] (A5) at (1.25,0) {$\textstyle A$}; \draw [<-, commutative diagrams/shift left=1] (A4) -- (A5) node[midway,above] {$\scriptstyle L$}; \draw [->, commutative diagrams/shift right=1] (A4) -- (A5) node[midway,below] {$\scriptstyle R$}; \end{tikzpicture} \end{document} Update after egreg's answer... My question was a pgfkeys question in disguise! I am adding a TikZ backend to Dednat6/Dednat7 (big example), and I'm looking for a solution that at some point will have a readable syntax, like this one... \draw [<-,shift left=1] (A4) -- (A5) node[midway,above] {$\scriptstyle L$}; \draw [->,shift right=1] (A4) -- (A5) node[midway,below] {$\scriptstyle R$}; ...and to get there I will probably need several steps, like starting by copying some definitions around and then calling shift left and shift right with explicit pgfkeys paths, discovering the pgfkeys paths used by \draw, and defining a shift left and a shift right in the pgfkeys path for \draw that will call that shift left and the shift right in pgfk@/tikz/commutative diagrams/... By the way, if we run this: \documentclass{article} \usepackage{tikz} \usepackage{tikz-cd} \begin{document} \directlua{ for i,name in pairs(tex.hashtokens()) do local pat = "shift left" if name:match(pat) then print(name, token.get_macro(name)) end end } \end{document} The output in stdout is this (abbreviated): pgfk@/tikz/commutative diagrams/shift left/.@def +0.56ex pgfk@/tikz/commutative diagrams/shift left/.@cmd \pgfkeysalso (...)
- Marking the intersection of two wires in a circuitby Jarvis on June 25, 2026 at 6:02 pm
I am drawing a circuit using relative coordinates in which it contains a part like this. I used the following sample code to generate the above: \begin{circuitikz} \draw (0,0) node[op amp](OA){}; \draw (OA.-) to[R] ++(-4,0); \draw (OA.+) to[R] ++(-4,0); \draw (-2,-4) to[R] ++(0,2) |- (OA.-); \end{circuitikz} How do I place a dot where the vertical wire intersects inverting terminal input wire? Although I can find the coordinates in this example, the actual circuit I am drawing does not directly give away the coordinates. For reference, the actual circuit goes like below. (M1.D) to [R, l=$R8$, a=\SI{47}{k\ohm}] ++(0,2) |- (U2.-);
- Expanding token listby sgmoye on June 25, 2026 at 9:40 am
Clearly I'm missing something basic. I have a token list (expanded, I think) to \foo, that I want to use as an argument to the \SplitList macro, but apparently it is not expanded enough... \documentclass{article} \usepackage[papersize={5.5in,8.5in},margin=0.6in]{geometry} \usepackage{pgffor} \newcounter{expnum} \newtoks\revsett \NewDocumentCommand{\tohsett}{ >{\SplitList{,}}m }{\ProcessList{#1}{\tohsettaux}} \NewDocumentCommand{\tohsettaux}{m}{\stepcounter{expnum}\preit{#1}} \def\preit#1{\edef\bar{\global\revsett={#1,\the\revsett}}\bar}% reverses order \parindent0pt \begin{document} \toks0={1,2,3} \edef\foo{\the\toks0} This does not work, picks up only one argument:\\ \tohsett{\foo}\theexpnum, \the\revsett \revsett={} \setcounter{expnum}{0} This works, finds all three arguments...\\ \tohsett{1,2,3}\theexpnum, \the\revsett \revsett={} ...as does this\\ \foreach \n in \foo {\preit{\n}}\the\revsett \thispagestyle{empty} \end{document} I feel dumb, overlooking something embarrassingly basic...
- Vertically Center Text in Figure Environment [duplicate]by nebulisx on June 25, 2026 at 2:54 am
I am trying to vertically center text in an figure in relation to the graphic inserted in the environment Here is the figure environment code I am using \begin{document} ... \begin{figure}[h] \includegraphics[scale=0.15]{test.jpg} \begin{minipage}[c][\columnsep][c]{1.0\linewidth} \hspace{2em} {\Large \today} \end{minipage} \end{figure} \newpage \includepdf[pages=-]{pdf.pdf} \newpage \end{document} This is the result: I can't entirely tell, but from playing with the position options the height of the figure environment may be different from the height of the images. Also this is a problem I am less worried about but for some reason if the figure goes off the page, it goes to the page after the inserted pdf from \includepdf rather than to the next page.
- command within TikZ does not workby Sven on June 24, 2026 at 8:05 pm
I need to set multiple rows in TikZ matrices that are different ranges from the alphabet. \documentclass[tikz]{standalone} \usepackage{etoolbox} \usepackage{tikz} \usetikzlibrary{matrix} \newcommand{\setrowA}[1]{% \let\myrowA\empty \foreach \j in {#1}{ \begingroup\edef\x{\endgroup \noexpand\gappto\noexpand\myrowA{ \j \&}}\x }% \gappto\myrowA{\\}% } \begin{document} \begin{tikzpicture} \setrowA{A,...,Q,Z,...,R} % here it works \matrix (a) [ampersand replacement=\&,matrix of nodes ]{ % \setrowA{A,...,Q,Z,...,R} % here it does not work \myrowA }; \end{tikzpicture} \end{document} I would like to insert multiple rows into the matrix. But even if I move a single \setrowA{A,...,Q,Z,...,R} into the matrix, latex hangs.
- LaTeX index formatting: left alignment of multi-line entries [duplicate]by test on June 24, 2026 at 7:48 pm
I want the index entry to remain left-aligned even when it breaks onto a second line. How can I achieve that? \documentclass{scrbook} \usepackage{imakeidx} \usepackage{hyperref} \makeindex \begin{document} \section{First section} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam rutrum aliquet elit in pellentesque. Proin nulla eros, consequat nec convallis vel, vulputate vitae purus\index{purusu rusuru surus Schönheitswahnsinn}. Pellentesque consequat euismod sapien, ac porttitor diam laoreet id. Pellentesque habitant morbi tristique senectus\index{senectus} et netus et malesuada fames ac turpis egestas. Sed vehicula magna orci, nec congue sem congue ac. Sed fringilla aliquam interdum. Nullam quis commodo massa. \printindex \end{document}