Week
- nicematrix submatrix fails when \Cdots is usedby projetmbc on December 24, 2025 at 2:52 pm
The following M(not)WE fails because of the \Cdots used. Is there a quick fix of this bug? The log file indicates the error below if I uncomment the failing sub matrix command. Package nicematrix Error: Impossible delimiter. (nicematrix) It's impossible to draw the right delimiter of (nicematrix) your \SubMatrix because all the cells are empty (nicematrix) in that column. (nicematrix) This \SubMatrix will be ignored. Here is the LaTeX code. \documentclass[border=5pt, varwidth]{standalone} \usepackage{nicematrix} \begin{document} $\begin{NiceArray}{*{7}{c}}[cell-space-limits=3pt] & & & & & & \Vdots \\ & & & & & & a[k]_{mj} \\ & & & & & & \Vdots \\ & & & & & & a[k]_{m'j} \\ & & & & & & \Vdots \\ & & & & & & \phantom{X} \\ \Cdots & 1 & \Cdots & 0 & \Cdots & \hspace{12.5pt} & a[k+1]_{ij} % \CodeAfter \SubMatrix({1-7}{5-7})[slim] % \SubMatrix({7-1}{7-5}) % <-- This fails! \SubMatrix({7-7}{7-7})%[slim] \end{NiceArray}$ $\begin{NiceArray}{*{7}{c}}[cell-space-limits=3pt] & & & & & & \Vdots \\ & & & & & & a[k]_{mj} \\ & & & & & & \Vdots \\ & & & & & & a[k]_{m'j} \\ & & & & & & \Vdots \\ & & & & & & \phantom{X} \\ Cdots & 1 & Cdots & 0 & Cdots & \hspace{12.5pt} & a[k+1]_{ij} % \CodeAfter \SubMatrix({1-7}{5-7})[slim] \SubMatrix({7-1}{7-5}) \SubMatrix({7-7}{7-7})%[slim] \end{NiceArray}$ \end{document} PS: for those who are curious, this is just to demonstrate how to calculate the number of paths of known length using an adjacency matrix.
- Incompatibility between KOMA-script classes and babel Spanishby mlg on December 24, 2025 at 10:57 am
While using [spanish]babel with a KOMA-script class (I've tried with scrartcl and scrbook) I get the following error: LaTeX hooks: Generic hooks cannot be added to '\@startsection'. How can I fix this? Here is my MWE. \documentclass{scrartcl} \usepackage[spanish]{babel} \begin{document} Buenos días. \end{document}
- How to get reproducible PDFby user2609605 on December 23, 2025 at 9:43 pm
For quite some span of time, I was sure to have solved that problem. I got the build time from the original PDF file, e.g. via pdfinfo. Then i made the next build with SOURCE_DATE_EPOCH using exactly that time. Also FORCE_SOURCE_DATE must be set. This worked with lualatex and PDF 1.7. Now, adding pdfa/A, tagging, PDF/UA and moving on to PDF2.0, it does not work any more. Some experiments show, the critical feature is tagging. It is a great feature and i dont want to do without it. I search for a way to keep reproducibility even if tagging is present. Well, in fact, reproducibility is no longer trustable, sometimes it works. I observe that sometimes the lengths of the files differ minimally. Visually, they are the same, also XMP data seems the same. But my old simple concept of bytewise equivalence is gone. I tried with uncompress as suggested by DavidCarlisle, << /Type /Namespace /NS (data:,AC8956-1B7-A6A9-1928-C381ECC1E1C) >> << /Type /Namespace /NS (data:,5F48FB81-AC9C-B85B-A0B9-890FA89F45CC) >> is the first difference. The next is in a sequence of xref 0 17537 0000000002 65535 f 0007003671 00000 n 0000000003 00000 f But i cannot interprete these... and remarkable that even the trailer IDs coincide. In my dark thougths I even read the PDF spec and found that the trailer ID may depend on the location of the PDF also... So maybe there is another problem I do face only if there are more developers compiling in different environments. Maybe latex compilers dont use location to create the trailer ID, do they? Any advice on a sound foundation for reproducibiliby also in the future? Future is >PDF1.7, and PDF/A, PDF/UA, including tagging.
- Is there a reference on how to make tables better, or a more standard way of pre-contemplating them?by Jasper on December 23, 2025 at 6:39 pm
Is there a reference on how to make tables better, or a more standard way of pre-contemplating them? I was trying to tabulate the elementary linear transformations, and noticed that my table was rather unaesthetic. My hope is that someone could guide me on how I could better pre-contemplate these tables, so that they don't come out looking like this: \documentclass[letterpaper]{book} \usepackage{nicematrix} \usepackage{booktabs} \usepackage{tikz} \usepackage{microtype} \usepackage{mathtools} \usepackage{unicode-math} \newcommand{\temp}{% \begin{tikzpicture} \draw (-1,-1) rectangle (1,1); \node at (0,0) {Blah.}; \end{tikzpicture}% } \begin{document} \begin{table} \centering \begin{tabular}{lll} \toprule Linear transformation & Example Matrix & Geometric effect \\ \midrule Scale & \({\begin{bNiceArray}{cc} t & 0 \\ 0 & 1 \end{bNiceArray}}\) & \temp \\ \midrule Shear & \({\begin{bNiceArray}{cc} 1 & t \\ 0 & 1 \end{bNiceArray}}\) & \temp \\ \midrule Swap & \({\begin{bNiceArray}{cc} 0 & 1 \\ 1 & 0 \end{bNiceArray}}\) & \temp \\ \bottomrule \end{tabular} \caption{The elementary matrices are blah blah blah.} \label{table:chap-elem-mat} \end{table} \end{document}
- Conflict between \hl command from soul package and \linenumbers command from lineno packageby Orcs River on December 23, 2025 at 5:54 pm
Activating line numbers on a latex document, causes text highlighted using the \hl command to disappear. Here is a minimal example: \documentclass{article} \usepackage{lipsum} \usepackage{soul} \usepackage{xcolor} \usepackage[left]{lineno} \linenumbers \begin{document} Conflict between \verb|\hl| and \verb|\linenumbers| commands \section{First section} \hl{This text will be hidden when line numbers are activated}. \lipsum[1] \end{document} Here are screenshots before and after activating line numbers. Thanks
- angle condition judge error in tikz?by Explorer on December 23, 2025 at 2:01 pm
I have the following code to plot the "outer" semicircle: \documentclass[tikz,border=5pt]{standalone} \usetikzlibrary{calc} % https://tex.stackexchange.com/a/666441/322482 \newcommand*\drawSemicircle[3][]{% \coordinate (mid) at ($(#2)!0.5!(#3)$); \draw[#1] (#2) let \p{A} = ($(#2)-(mid)$), \p{B} = ($(#3)-(mid)$), \n{cross} = {\x{A}*\y{B} - \y{A}*\x{B}}, \n{angA} = {atan2(\y{A},\x{A})}, \n{angB} = {atan2(\y{B},\x{B})}, \n{R} = {veclen(\x{A},\y{A})}, \n{start} = {(\n{cross}>0 ? \n{angA} : \n{angB})}, \n{endraw} = {(\n{cross}>0 ? \n{angB} : \n{angA})}, \n{end} = {(\n{endraw} < \n{start} ? \n{endraw} + 360 : \n{endraw})} in arc[start angle=\n{start},end angle=\n{end},radius=\n{R}]; } \begin{document} \begin{tikzpicture} \foreach \x in {1,...,60}{ \node[circle,draw=magenta,thick] (in-\x) at ({\x*6}:5cm) {}; \node[circle,draw=teal,thick] (out-\x) at ({\x*6}:5.5cm) {}; } \foreach \pstart[evaluate=\pstart as \pend using {int(mod(\pstart+9,60)+1)}] in {1,...,60}{ \drawSemicircle[semithick]{in-\pstart}{out-\pend} % \node[fill=white,circle,label={[label distance=-2em,text=magenta]\pstart*6:\pstart}] at (in-\pstart) {};%<-not elegant here % \node[fill=white,circle,label={[label distance=+1em,text=teal]\pstart*6:\pstart}] at (out-\pend) {}; } \end{tikzpicture} \end{document} Which gives: However, when I substitute: \node[circle,draw=teal,thick] (out-\x) at ({\x*6}:5.5cm) {}; with \node[circle,draw=teal,thick] (out-\x) at ({\x*6}:6cm) {}; Things broken, I guess that it's something like angle float error.... But I don't know how to fix this:
- Tikz to plot a part of a coneby Latexfan on December 23, 2025 at 10:30 am
I try to use tikz to plot the following image ... \documentclass[border=0.2cm]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{colormaps} \pgfplotsset{compat = newest} \begin{document} \begin{tikzpicture} \begin{axis}[ axis equal image, grid = both, minor tick num = 2, xlabel = {$x$}, ylabel = {$y$}, zlabel = {$z$}, major grid style = {draw = lightgray}, minor grid style = {draw = lightgray!25}, xmin = 0, xmax = 1, ymin = 0, ymax = 1, zmin = 0, zmax = 2, scale = 3, view = {60}{30}, samples = 30, samples y = 30, z buffer = sort, ] % Kjeglesektor \addplot3[ surf, shader = interp, opacity = 0.75, colormap/viridis, ] ({x},{y},{sqrt(3)*sqrt(x^2+y^2)}); \end{axis} \end{tikzpicture} \end{document} But I do not get similar image ... can you please help me?
- Running Lua function on biblatex outputby L33 on December 23, 2025 at 2:23 am
I want to automatically transliterate titles and author names I'm citing if they're written in another script. For example, given an author named مَحْمُود, I would like to be able to cite them inline as "(مَحْمُود maḥmūd 2020)". Supposing this author wrote a paper titled أَبْجَد هَوَّز, I would like to be able to cite it inline as "أَبْجَد هَوَّز ʾabjad hawwaz (مَحْمُود maḥmūd 2020)". Ideally the compiled bibliography should show these transliterations as well. I've written a Lua module transliteration.lua that exports a function transliterate() such that, for example, transliterate('مَحْمُود') returns the string 'maḥmūd'. However, I can't figure out where or if it's even possible to call my transliteration.transliterate() function within my paper in order for it to correctly apply to biblatex citations. This seems to interact in a complex way with the need to compile multiple times in order to format references correctly. Is there a combination of control sequences and compilation steps that will net exactly the citation formats I've described above? Is there a low-level way to override how names and titles and such are generated such that I can continue to use the default \cite(s), \parencite(s), \autocite(s), \citeauthor, etc. commands without redefining my own? This differs from prior transliteration questions like Auto transliteration in that I don't wish to directly write text in the other script. A question that seemed related was biblatex: Use field value in tex document before compilation but I couldn't figure out how to apply it to my situation. Below is a non-functioning example that demonstrates a rudimentary (and incorrect) understanding of \latelua, \expandafter, \DeclareCiteCommand, etc. (For demonstration, this is generic string substitution without reference to a specific script except in the comment about babel.) I am compiling this with the VSCode Latex Workshop extension's latexmk (lualatex) recipe, which as of writing runs latexmk -synctex=1 -interaction=nonstopmode -file-line-error -lualatex -outdir=%OUTDIR% %DOC%. -- transliteration.lua local exports = {} exports.transliterate = function(text) text = text:gsub("bb", "cc") text = text:gsub("aa", "bb") return text .. ' (this parenthetical indicates that the translit function ran)' end return exports \documentclass{article} \usepackage{biblatex} \directlua{tr = require("transliteration.lua")} \begin{filecontents}[overwrite]{test.bib} @misc{test, author = "aa", title = "bb", year = 2020} \end{filecontents} \addbibresource{test.bib} \DeclareCiteCommand{\translitciteauthor}{}{\directlua{tex.print(tr.transliterate("\\printnames{author}"))}}{}{} \begin{document} 1 % runs function but does not transliterate % additionally, if including babel and using an RTL script, this throws a "missing number, treated as zero" \directlua{tex.print(tr.transliterate("\\citeauthor{test}"))} 2 % runs function but does not transliterate \directlua{tex.print(tr.transliterate("\\expandafter{\\citeauthor{test}}"))} 3 % does nothing \latelua{pdf.print(tr.transliterate("\\citeauthor{test}"))} 4 % runs function but does not transliterate \translitciteauthor{test} \end{document}
- Graph of a projection functionby Octavius on December 22, 2025 at 9:49 pm
I have the following code, but I can’t manage to replicate the figure shown in the attached image. Could you help me with the code and provide the figure? Thank you very much. \documentclass[12pt]{article} % --- Márgenes (opcional) --- \usepackage[margin=2.2cm]{geometry} % --- Idioma y acentos --- \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[spanish]{babel} % --- Matemática y TikZ --- \usepackage{amsmath,amssymb} \usepackage{xcolor} \usepackage{tikz} \usetikzlibrary{arrows.meta,calc,3d} \pagestyle{empty} \begin{document} \begin{center} % --- TU FIGURA --- \begin{tikzpicture}[ scale=1.15, line cap=round, line join=round, x={(-0.95cm,-0.55cm)}, % Eje X: oblicuo hacia abajo-izquierda y={(1.15cm,0cm)}, % Eje Y: horizontal z={(0cm,1.15cm)} % Eje Z: vertical ] % Colores/estilos \definecolor{axisblue}{RGB}{20,90,130} \tikzset{ axis/.style={very thick, draw=axisblue, -Latex}, proj/.style={dashed, black, line width=0.8pt}, edge/.style={black, line width=0.9pt}, face/.style={draw=black, fill=gray!35, opacity=0.55}, topface/.style={draw=black, fill=gray!25, opacity=0.55}, frontface/.style={draw=black, fill=gray!45, opacity=0.55} } % Ejes \draw[axis] (0,0,0) -- (4.8,0,0) node[below left] {Eje X}; \draw[axis] (0,0,0) -- (0,5.4,0) node[right] {Eje Y}; \draw[axis] (0,0,0) -- (0,0,4.8) node[above] {Eje Z}; % Título \node[anchor=west] at (0.9,2.4,4.0) {\Large Gráfico de $g(x,y)=x$}; % -------- PRISMA 1: x in [0,1], y in [-1,1], altura 1 -------- \def\xa{0}\def\xb{1} \def\ya{-1}\def\yb{1} \def\hA{1} % Vértices base \coordinate (A1) at (\xa,\ya,0); \coordinate (B1) at (\xb,\ya,0); \coordinate (C1) at (\xb,\yb,0); \coordinate (D1) at (\xa,\yb,0); % Vértices top \coordinate (A1t) at (\xa,\ya,\hA); \coordinate (B1t) at (\xb,\ya,\hA); \coordinate (C1t) at (\xb,\yb,\hA); \coordinate (D1t) at (\xa,\yb,\hA); % Proyecciones (sombras) al plano z=0 \draw[proj] (A1) -- (A1t); \draw[proj] (B1) -- (B1t); \draw[proj] (C1) -- (C1t); \draw[proj] (D1) -- (D1t); % Caras visibles \filldraw[frontface] (A1) -- (B1) -- (B1t) -- (A1t) -- cycle; % cara "frontal" \filldraw[face] (B1) -- (C1) -- (C1t) -- (B1t) -- cycle; % cara derecha \filldraw[topface] (A1t) -- (B1t) -- (C1t) -- (D1t) -- cycle; % tapa % Aristas principales \draw[edge] (A1) -- (B1) -- (C1) -- (D1) -- cycle; \draw[edge] (A1t) -- (B1t) -- (C1t) -- (D1t) -- cycle; \draw[edge] (A1) -- (A1t); \draw[edge] (B1) -- (B1t); \draw[edge] (C1) -- (C1t); \draw[edge] (D1) -- (D1t); % Etiquetas \node at (\xa,\ya,\hA) [above left] {$1$}; \node at (0.55,0, -0.02) [below, yshift=-2pt] {$[0,1]\times(-1,1)$}; % -------- PRISMA 2: x in [2,3], y in [-1,1], altura 2 -------- \def\xc{2}\def\xd{3} \def\hB{2} \coordinate (A2) at (\xc,\ya,0); \coordinate (B2) at (\xd,\ya,0); \coordinate (C2) at (\xd,\yb,0); \coordinate (D2) at (\xc,\yb,0); \coordinate (A2t) at (\xc,\ya,\hB); \coordinate (B2t) at (\xd,\ya,\hB); \coordinate (C2t) at (\xd,\yb,\hB); \coordinate (D2t) at (\xc,\yb,\hB); % Proyecciones \draw[proj] (A2) -- (A2t); \draw[proj] (B2) -- (B2t); \draw[proj] (C2) -- (C2t); \draw[proj] (D2) -- (D2t); % Caras \filldraw[frontface] (A2) -- (B2) -- (B2t) -- (A2t) -- cycle; \filldraw[face] (B2) -- (C2) -- (C2t) -- (B2t) -- cycle; \filldraw[topface] (A2t) -- (B2t) -- (C2t) -- (D2t) -- cycle; % Aristas \draw[edge] (A2) -- (B2) -- (C2) -- (D2) -- cycle; \draw[edge] (A2t) -- (B2t) -- (C2t) -- (D2t) -- cycle; \draw[edge] (A2) -- (A2t); \draw[edge] (B2) -- (B2t); \draw[edge] (C2) -- (C2t); \draw[edge] (D2) -- (D2t); % Etiquetas \node at (\xc,\ya,\hB) [above left] {$2$}; \node at (2.55,0,-0.02) [below, yshift=-2pt] {$[2,3]\times(-1,1)$}; % Marcas -1 y 1 sobre eje Y (opcional) \node at (0,-1,0) [below] {$-1$}; \node at (0, 1,0) [below] {$1$}; \end{tikzpicture} \end{center} \end{document}
- circuitikz inverted voltage EU vs americanby MrI2C on December 22, 2025 at 8:49 pm
I was wondering why there's a different polarity used in EU vs american symbols for voltage sources. As one can see the eu version and the american version have oposite polarity, which make's it hard once you start mixing circuits with a EU base and american base. example: \documentclass[a4paper,11pt]{article} \usepackage{circuitikz} \usepackage{siunitx} %\sisetup{locale = DE} % komma als decimaalteken (optioneel) \begin{document} \begin{circuitikz}[american] \draw (0,0) to[V=10V] (2,0); \end{circuitikz} \begin{circuitikz}[european] \draw (0,0) to[V=10V] (2,0); \end{circuitikz} \begin{circuitikz} \draw (0,0) to[V=10V] (2,0); \end{circuitikz} \end{document} So I get a polarity swap between EU and american If a read the manual it should not invert (image/code 1 vs 3 )
- Booktabs cmidrule creates unwanted vertical spaceby profj on December 22, 2025 at 7:30 pm
I am making the following table using LaTeX. One way to do it is to make a separate row for the "Top Header" header. However, this results in space below that header and the "sub headers": \documentclass{article} \usepackage{booktabs} \begin{document} \begin{table} \centering \begin{tabular}{ll rr} \toprule (1) & (2) & (3) & (4) \\ \midrule & & \multicolumn{2}{c}{Top Header} \\ \cmidrule(lr){3-4} Main & Main & \\ Header 1 & Header 2 & Sub 1 & Sub 2 \\ \midrule 0.01 & 0.25 & 0.05 & 0.00 \\ 0.02 & 0.25 & 0.11 & 0.03 \\ 0.05 & 0.25 & 0.16 & 0.09 \\ \bottomrule \end{tabular} \end{table} \end{document} An alternative way is to include "Top Header" on the same line as the top line of the "Main Headers", but the use of \cmidrule creates awkward space for the two "Main Headers": \documentclass{article} \usepackage{booktabs} \begin{document} \begin{table} \centering \begin{tabular}{ll rr} \toprule (1) & (2) & (3) & (4) \\ \midrule Main & Main & \multicolumn{2}{c}{Top Header} \\ \cmidrule(lr){3-4} Header 1 & Header 2 & Sub 1 & Sub 2 \\ \midrule 0.01 & 0.25 & 0.05 & 0.00 \\ 0.02 & 0.25 & 0.11 & 0.03 \\ 0.05 & 0.25 & 0.16 & 0.09 \\ \bottomrule \end{tabular} \end{table} \end{document} A third way, with no \cmidrule gets the vertical spacing right, but I do want a to use \cmidrule to get a line under "Top Header": \documentclass{article} \usepackage{booktabs} \begin{document} \begin{table} \centering \begin{tabular}{ll rr} \toprule (1) & (2) & (3) & (4) \\ \midrule Main & Main & \multicolumn{2}{c}{Top Header} \\ Header 1 & Header 2 & Sub 1 & Sub 2 \\ \midrule 0.01 & 0.25 & 0.05 & 0.00 \\ 0.02 & 0.25 & 0.11 & 0.03 \\ 0.05 & 0.25 & 0.16 & 0.09 \\ \bottomrule \end{tabular} \end{table} \end{document} How can I get columns 1 and 2 to behave as in the first table, but columns 3 and 4 to behave as in the second table? In other words, I'd like the headers to take up two lines, as in the second table, and I'd like to use the \cmidrule command for columns 3 and 4, but I don't want the the extra space in between "Main" and "Header 1" and "Main" and "Header 2" that we see in the second table.
- CircuiTikZ inconsistent behaviour of voltage/distance from nodeby DraUX on December 22, 2025 at 2:40 pm
I found that the behaviour of the voltage/distance from node-key varies depending on the component, as can be seen in the mwe below. Is there a fix that I am missing? Also, when I set voltage/distance from node=0 there is still some distance to the actual center of the node (marked in red). I have no idea where this is coming from (maybe a TikZ-thing?). I thought, maybe the inner sep of the nodes was not being accounted for, but after some testing, I found that the distance differs from the standard inner sep of nodes. Does someone have an idea? \documentclass{standalone} \usepackage{tikz} \usepackage[straightvoltages]{circuitikz} \begin{document} \begin{tikzpicture} \draw (0,0) to[R,name=R,v=U,voltage/distance from node=0] (2,0); \draw (0,-1) to[open,name=v,v=U,voltage/distance from node=0] (2,-1); \draw (0,-1.25) to[open,v=U,voltage/distance from node=0,open voltage position = legacy] (2,-1.25); \draw[red] (0,0 |- R-Vfrom) -- (R-Vfrom) node[midway,below] {?}; \draw[red] (0,-1) -- (v-Vfrom) node[midway,below] {?}; \end{tikzpicture} \end{document}
- tikz with overlay and remember picture parameter doesn't work in TL2025by Chow Hui on December 22, 2025 at 1:27 pm
\documentclass{article} \usepackage[a4paper,margin=2cm]{geometry} \usepackage[fontset=fandol]{ctex} % 和原环境一致 \usepackage{tikz} \newdimen\X \newdimen\Y \X=89.62253pt \Y=85.35826pt \begin{document} 这里是普通正文。 \begin{tikzpicture}[remember picture,overlay] \node[inner sep=0pt, anchor=north west] at (current page.north west) ++ (\X, -\Y) (posblock-math-test) {SIMPLE}; \end{tikzpicture} \end{document} errlog: ! Package tikz Error: A node must have a (possibly empty) label text. See the tikz package documentation for explanation. Type H <return> for immediate help. ... l.18 + + (\X, -\Y)
- circuitikz: voltage arrow exactly from position to positionby cis on December 22, 2025 at 8:45 am
What is the correct syntax for placing a voltage arrow precisely between the two input terminals? By the way: To make the whole look nicer, I wanted to increase the pin lengths, but I couldn't manage it. I probably didn't place the current arrow quite correctly either, syntax-wise. \documentclass[margin=5pt, multi=circuitikz]{standalone} \usepackage{circuitikz} \begin{document} \begin{circuitikz} \node [en amp, %Increase pin length: %circuitikz/amplifiers/pin length=<*>, does not work ] (amp1) {}; \node [ocirc] at (amp1.-) {}; \node [ocirc] at (amp1.+) {}; \node [ocirc] at (amp1.out) {}; % v-arrow \draw[blue] ([xshift=-2mm]amp1.-) -- ([xshift=-2mm]amp1.+) node[midway, left] {$U$} node[sloped, currarrow, pos=1, blue] {}; % i-arrow \path[] (amp1.out) to[short, f=$\color{red}I$, color=red] ([xshift=5mm]amp1.out); \end{circuitikz} \end{document}
- How best to align a grid of expressions divided by vertical linesby Steven Thomas Hatton on December 22, 2025 at 8:12 am
That which is to be Rendered Pfaff, Johann Friedrich -- Methodus generalis, aequationes differentiarum partialium, nec non aequationes differentiales vulgares, utrasque primi ordinis inter quotcunque variabiles, complete integrandi The Current Effort % -*- mode: latex; TeX-engine: luatex; coding: utf-8 -*- \documentclass[a4paper,10pt]{article} \usepackage{amsmath} \usepackage{mathtools} \usepackage{unicode-math} \setmainfont{STIX Two Text} \setmathfont{STIX Two Math} \begin{document} \begin{equation*} \begin{array}{c|c|c|c|c} 0 =\,Z &dy+\phantom{p}\zeta & da+\zeta' &db+\zeta'' & dc.\\ \phantom{0}-pX &\phantom{dy}-p\chi & \phantom{da}-p\chi'&\phantom{db}-p\chi''& {}\\ \phantom{0}-\,q & {} & {} & {} & {} \end{array} \end{equation*} \end{document} The Result Discussion The current rendering isn't horrible, but it isn't as disciplined as I would like. Is there deterministic way to arrange content of this kind so that, for example, the '+' aligns vertically with the '-'? Discussion of Suggested Approach My original \begin{equation*} \begin{array}{c|c|c|c|c} 0 =\,Z &dy+\phantom{p}\zeta & da+\zeta' &db+\zeta''& dc.\\ \phantom{0}-pX &\phantom{dy}-p\chi & \phantom{da}-p\chi'&\phantom{db}-p\chi''&{}\\ \phantom{0}-\,q & {} & {} & {} &{} \end{array} \end{equation*} Suggested \begin{equation*} \begin{array}{c|c|c|c|l} \begin{aligned} 0 &= \; Z \\ &- pX \\ &- \;\; q \end{aligned} & \begin{aligned}[b] dy &+ \;\zeta \\ &- p\chi \end{aligned} & \begin{aligned}[b] da &+ \; \zeta' \\ &- p\chi' \end{aligned} & \begin{aligned}[b] db &+ \;\zeta'' \\ &- p\chi'' \end{aligned} & \begin{aligned}[b] dc. \\ & \end{aligned} \end{array} \end{equation*} This is not as robust as I would like. For example: Variations \begin{equation*} \begin{array}{c|c|c|c|c} 0 =\,\frac{Z}{t} &dy+\phantom{p}\zeta & da+\zeta' &db+\zeta''& dc.\\[1.6ex] \phantom{0}-\frac{pX}{2} &\phantom{dy}-p\chi & \phantom{da}-p\chi'&\phantom{db}-p\chi''&{}\\[1.6ex] \phantom{0}-\,\frac{q}{3} & {} & {} & {} &{} \end{array} \end{equation*} \begin{equation*} \begin{array}{c|c|c|c|l} \begin{aligned} 0 &=\,\frac{Z}{t} \\ &-\frac{pX}{2} \\ &- \;\; \,\frac{q}{3} \end{aligned} & \begin{aligned}[b] dy &+ \;\zeta \\ &- p\chi \end{aligned} & \begin{aligned}[b] da &+ \; \zeta' \\ &- p\chi' \end{aligned} & \begin{aligned}[b] db &+ \;\zeta'' \\ &- p\chi'' \end{aligned} & \begin{aligned}[b] dc. \\ & \end{aligned} \end{array} \end{equation*} I agree that the suggested version is an improvement in appearance to my original version in the specific case. If the content is varied so that different ``cells'' have different heights the horizontal alignment of the array of aligned environments no longer aligns grid rows. Perhaps there is no simple, ideal solution. I am hoping for something that will "naturally" align partitioned grid cells. I've done something similar in the past. The code that produced the following is listed below. I didn't really know what I was doing, I just tried things that I cribbed from this forum until it looked acceptable. % -*- mode: latex; TeX-engine: luatex; coding: utf-8 -*- \documentclass[a4paper,10pt]{article} \usepackage{amsmath} \usepackage{mathtools} \usepackage{unicode-math} \setmainfont{STIX Two Text} \setmathfont{STIX Two Math} \newcommand{\SBRAK}[1]{\left[#1\right]} \newcommand{\ARGS}[1]{\SBRAK{#1}} \newcommand{\CBRACE}[1]{\left\lbrace #1 \right\rbrace} \newcommand{\SPOT}{\smblkcircle} \newcommand{\CONST}[1]{\mathrm{#1}} \newcommand{\FTN}[1]{\mathscr{#1}} % scalar function \newcommand{\FTNA}[2]{\FTN{#1}\ARGS{#2}} \newcommand{\LNF}[1][L]{\mathfrak{#1}} % linear form representative \newcommand{\LNFC}[1][L]{\pmb{\LNF[#1]}} % linear form class \begin{document} \paragraph{My original} \begin{equation*} \begin{array}{c|c|c|c|c} 0 =\,Z &dy+\phantom{p}\zeta & da+\zeta' &db+\zeta''& dc.\\ \phantom{0}-pX &\phantom{dy}-p\chi & \phantom{da}-p\chi'&\phantom{db}-p\chi''&{}\\ \phantom{0}-\,q & {} & {} & {} &{} \end{array} \end{equation*} \paragraph{Suggested} \begin{equation*} \begin{array}{c|c|c|c|l} \begin{aligned} 0 &= \; Z \\ &- pX \\ &- \;\; q \end{aligned} & \begin{aligned}[b] dy &+ \;\zeta \\ &- p\chi \end{aligned} & \begin{aligned}[b] da &+ \; \zeta' \\ &- p\chi' \end{aligned} & \begin{aligned}[b] db &+ \;\zeta'' \\ &- p\chi'' \end{aligned} & \begin{aligned}[b] dc. \\ & \end{aligned} \end{array} \end{equation*} \paragraph{Variations} \begin{equation*} \begin{array}{c|c|c|c|c} 0 =\,\frac{Z}{t} &dy+\phantom{p}\zeta & da+\zeta' &db+\zeta''& dc.\\[1.6ex] \phantom{0}-\frac{pX}{2} &\phantom{dy}-p\chi & \phantom{da}-p\chi'&\phantom{db}-p\chi''&{}\\[1.6ex] \phantom{0}-\,\frac{q}{3} & {} & {} & {} &{} \end{array} \end{equation*} \begin{equation*} \begin{array}{c|c|c|c|l} \begin{aligned} 0 &=\,\frac{Z}{t} \\ &-\frac{pX}{2} \\ &- \;\; \,\frac{q}{3} \end{aligned} & \begin{aligned}[b] dy &+ \;\zeta \\ &- p\chi \end{aligned} & \begin{aligned}[b] da &+ \; \zeta' \\ &- p\chi' \end{aligned} & \begin{aligned}[b] db &+ \;\zeta'' \\ &- p\chi'' \end{aligned} & \begin{aligned}[b] dc. \\ & \end{aligned} \end{array} \end{equation*} \begin{equation*} \begin{array}{|c|c|} \hline \begin{aligned}[t]\\[\dimexpr-\normalbaselineskip] y&=+\CONST{m}x+\CONST{b} =\FTNA{y}{x} \vphantom{\frac{1}{\CONST{m}}}\\ &=-\frac{\CONST{y}_0}{\CONST{x}_0}x+\CONST{y}_0 % \\[\dimexpr-\normalbaselineskip] \\\hline \\[\dimexpr-\normalbaselineskip] % \CONST{m}&=-\frac{\CONST{y}_0}{\CONST{x}_0} =-\frac{\CONST{A}}{\CONST{B}}\\ \CONST{b}&=+\CONST{y}_0 =-\frac{\CONST{C}}{\CONST{B}}\\ 0&=+\CONST{b}+\CONST{m}x-y\vphantom{\frac{\CONST{Y}}{\CONST{m}}} % \\[\dimexpr-\normalbaselineskip] \\\hline \\[\dimexpr-\normalbaselineskip] % \LNFC&\doteq\phantom{-} \CBRACE{\CONST{b}:\CONST{m}:-1} \vphantom{\CBRACE{\frac{1}{\CONST{m}}}}\\ &=-\CBRACE{ \CONST{-\CONST{y}_0}:\CONST{\frac{\CONST{y}_0}{\CONST{x}_0}}:1 }\\ &=-\frac{\CBRACE{\CONST{C}:\CONST{A}:\CONST{B}}} {\CONST{B}} \\[\dimexpr-\normalbaselineskip]\\ \end{aligned} & \begin{aligned}[t]\\[\dimexpr-\normalbaselineskip] x&=+\frac{1}{\CONST{m}}y+\CONST{a}=\FTN{x}\ARGS{y}\\ &=-\frac{\CONST{x}_0}{\CONST{y}_0}y+\CONST{x}_0 % \\[\dimexpr-\normalbaselineskip] \\\hline \\[\dimexpr-\normalbaselineskip] % \frac{1}{\CONST{m}}&=-\frac{\CONST{x}_0}{\CONST{y}_0} =-\frac{\CONST{B}}{\CONST{A}}\\ \CONST{a}&=+\CONST{x}_0 =-\frac{\CONST{C}}{\CONST{A}}\\ 0&=+\CONST{a}-x+\frac{y}{\CONST{m}} % \\[\dimexpr-\normalbaselineskip] \\\hline \\[\dimexpr-\normalbaselineskip] % \LNFC&\doteq\phantom{-} \CBRACE{\CONST{a}:-1:\frac{1}{\CONST{m}}}\\ &=-\CBRACE {-\CONST{\CONST{x}_0}:1:\CONST{\frac{\CONST{x}_0}{\CONST{y}_0}}}\\ &=-\frac{\CBRACE{\CONST{C}:\CONST{A}:\CONST{B}}} {\CONST{A}} \end{aligned}\\ \hline \end{array} \end{equation*} \end{document}
- Using flowfram: Paragraphs keep previous page width when spanning across pages with different frame layoutsby John Stone on December 22, 2025 at 3:21 am
Related: This question follows from my previous one about dynamic page margins, where flowfram was suggested as a solution approach from MS-SPO @ms-spo. I'm trying to use the flowfram package to create a LaTeX document with different page layouts matching different background PDFs, as suggested in this comment on my previous question. My setup works well except for one issue: when a paragraph spans across pages with different frame widths, the text on the new page continues using the previous page's frame width, causing misalignment; please see the png attachment! MWE: \documentclass{article} \usepackage{lipsum} % ===== Load packages ===== \usepackage[margin=0pt]{geometry} % Disable geometry's margin control \usepackage{eso-pic, graphicx} \usepackage{flowfram} % ===== Define three page layouts ===== % 1. First page layout \newflowframe[1]{% \dimexpr\paperwidth-66mm\relax}{% width \dimexpr\paperheight-104mm\relax}{% height 52mm}{% left (x-coordinate) 38mm% top (y-coordinate from bottom) }[firstpage] % 2. Odd pages layout (except first) \newflowframe[3,5,7,9,11,13,15,17,19,21,23,25,27,29,31]{% \dimexpr\paperwidth-66mm\relax}{% width \dimexpr\paperheight-70mm\relax}{% height 62mm}{% left (x-coordinate) 38mm% top (y-coordinate from bottom) }[oddpage] % 3. Even pages layout \newflowframe[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30]{% \dimexpr\paperwidth-44mm\relax}{% width \dimexpr\paperheight-64mm\relax}{% height 30mm}{% left (x-coordinate) 34mm% top (y-coordinate from bottom) }[evenpage] % ===== Background images ===== \AddToShipoutPictureBG{ \ifnum\value{page}=1 \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]{c1b.pdf}} \else \ifodd\value{page} \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]{c3.pdf}} \else \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]{c2.pdf}} \fi \fi } % ===== Header/Footer handling (optional) ===== \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} % Clear defaults \fancyheadoffset[LE,RO]{0pt} % Ensure headers don't shift \begin{document} \section{earth} \lipsum[1-5] \lipsum*[6-7] \section{universe} \lipsum[1-6] \lipsum*[7-8] \lipsum[1-4] \lipsum*[5-6] \lipsum[1-7] \end{document} The Problem: In the generated PDF, paragraphs that continue from page 1 (width: paperwidth-66mm) to page 2 (width: paperwidth-44mm) still use the wider width on page 2, causing text to overflow or misalign with the background. What I've tried: The flowfram manual mentions using \framebreak to handle this: "If the flow frames are not all of the same width, the change in \hsize will not come into effect until the end of the paragraph. Provide a command to simulate a paragraph break..." However, I'm not sure: Where to insert \framebreak (at potential break points? automatically?) How to use it properly (the manual mentions grouping for \parfillskip and \parskip) If there are better alternatives for handling this Questions: How should \framebreak be used in practice to fix cross-page paragraph width issues? Is there a way to automate this, or must I manually insert break points? Are there alternative approaches within flowfram to handle different frame widths across pages? automatically?
- How to Enclose Long Text with a Single-Sized Set of Parentheses?by Jethro on December 21, 2025 at 10:01 pm
MWE: \documentclass[12pt]{article} \textwidth=3.5in \begin{document} \thispagestyle{empty} \begin{equation} \left( \frac{A}{B} \right) \end{equation} \vspace{35pt} \noindent How to enclose text extending over multiple lines with parentheses (\emph{as if} it were a fraction)? \end{document} The output: I would like to enclose text which extends over two or more lines by an appropriately sized set of parentheses. I have tried using \left( and \right) as if I were in a mathematical environment, such as shown in in the fractional expression. However, this does not work when in a text environment. Using $...$ does not help either. How may I enclose the given text, which extends over two lines, entirely with one set of appropriately sized parentheses?
- circuitikz: anchoring a circular path symbolby cis on December 21, 2025 at 1:02 pm
How do I choose the anchor so that the line starts exactly at the edge at a path-source to[american current source]? \documentclass[margin=5pt, multi=circuitikz]{standalone} \usepackage{circuitikz} \begin{document} \begin{circuitikz}[] %\ctikzset{bipoles/border margin=0.0}% no effect \draw[] (0,0) to[american current source, o-o, name=GS] (2,0); \draw[->] (GS.north east) -- +(45:1); \end{circuitikz} \end{document}
- \prime \dprime \tprime (not so much) \qprime (looks good) STIX TWOby Steven Thomas Hatton on December 21, 2025 at 6:20 am
The motivation Pfaff, Johann Friedrich: Methodus generalis, aequationes differentiarum partialium, nec non aequationes differentiales vulgares, utrasque primi ordinis inter quotcunque variabiles, complete integrandi The Problem \documentclass[a4paper,10pt]{article} \usepackage{amsmath} \usepackage{mathtools} \usepackage{unicode-math} \setmainfont{STIX Two Text} \setmathfont{STIX Two Math} \newcommand{\tprime}{\char"2034} % ‴ \newcommand{\qprime}{\char"2057} % ⁗ \begin{document} Prime notation: $x^{\prime},x^{\dprime},x^{\tprime},x^{\qprime}$ \end{document} Obviously, the desired result would be for the triple prime to look like the double prime with one more prime, and to look like the quadruple prime with one less prime. This appears to be a feature of unicode since it appears in browsers, in Kate, in Emacs, (differently un-uniform) in xterm. Is there a way to produce a uniform set of prime, double prime, triple prime, quadruple prime using LuaLaTeX? Preferably with STIX Two. Post Script. I was unaware that $x'''$ would work. I learned to author LaTeX using LyX which is WYSIWYM not WYSIWYG. I rarely compiled what I was writing. My reality was what I saw in LyX.
- Why cannot \par be printed here?by User23456234 on December 21, 2025 at 3:15 am
I ask this question only out of curiousity's sake. I am not actually planning on defining a new command called \cmd because the usual \cs macro has superior syntax. (\cmd<command name, including backslash> and \cs{<command name, omitting backslash>} would print the name of a command.) When defining and testing \cmd, I found a strange error where \cmd\par would issue an error even if \cmd is \long (+m in \NewDocumentCommand). So I think that the argument should accept \par tokens. After some trial and error, I randomly changed \texttt to \ttfamily and the error went away. My question is: Why did this fix the error? I don't understand why \texttt wouldn't work correctly in this case. I provide a MWE below to demonstrate the issue: \documentclass{article} \ExplSyntaxOn \NewDocumentCommand \cmdtesti { +m } { \__module_cmd_test_i:N #1 } \cs_new_protected:Npn \__module_cmd_test_i:N #1 { \group_begin: \ttfamily \token_to_str:N #1 \@ % works correctly when #1 is \par \group_end: } \NewDocumentCommand \cmdtestii { +m } { \__module_cmd_test_ii:N #1 } \cs_new_protected:Npn \__module_cmd_test_ii:N #1 { \texttt { \token_to_str:N #1 \@ } % This gives an error if #1 is \par. } \ExplSyntaxOff \begin{document} \cmdtesti\command % no error \cmdtestii\command % no error \cmdtesti\par % no error % \cmdtestii\par % gives an error % \cmdtestii{\par} % gives an error \end{document}
- Curves filled in in 3D plotby greg on December 20, 2025 at 5:28 pm
I am trying to plot the surface $z=x^2-y^2$ with the two curves $(t,0,t^2)$ and $(0,t,-t^2)$, but the curves keep getting filled in, and I can't seem to make it so they appear just as curves in the surface. \documentclass[10pt,t]{beamer} \usepackage{tikz} \usetikzlibrary{calc,arrows.meta,decorations.pathreplacing,positioning,patterns} \usepackage{pgfplots} \pgfplotsset{compat=1.18} \pgfplotsset{ samples=41, samples y=41, filter discard warning=false, unbounded coords=jump, } \begin{document} \begin{frame}%[This is driving me crazy] \begin{tikzpicture}[scale=0.75] \begin{axis}[ title={Graph of $z=x^2-y^2$}, view={45}{30}, width=\linewidth, height=8cm, xlabel={$x$}, ylabel={$y$}, zlabel={$z$}, domain=-2.5:2.5, y domain=-2.5:2.5, samples=31, samples y=31, z buffer=sort, shader=interp, legend style={at={(0.02,0.98)},anchor=north west,draw=none,fill=none,font=\footnotesize}, legend cell align=left ] % surface \addplot3[surf, opacity=0.9] {x^2 - y^2}; \addlegendentry{surface} % x=0 slice \addplot3[ very thick, color=green, variable=t, domain=-2.5:2.5, samples=200 ] (0, t, -t^2); \addlegendentry{$x=0$ slice} % y=0 slice \addplot3[ very thick, color=black, variable=t, domain=-2.5:2.5, samples=200, % samples t=1, t domain=-1:1 ] (t, 0, t^2); \addlegendentry{$y=0$ slice} % tangent plane at (0,0,0): z=0 \addplot3[ surf, shader=flat, draw=none, fill opacity=0.35, domain=-1.5:1.5, y domain=-1.5:1.5, samples=2, samples y=2 ] {0}; \addlegendentry{tangent plane $z=0$} % critical point \addplot3+[only marks, mark=*, mark size=1.5pt] coordinates {(0,0,0)}; \end{axis} \end{tikzpicture} \end{frame} \end{document}
- Striking out an entire exercise using amsart environmentsby Sebastiano on December 20, 2025 at 1:57 pm
Suppose I am writing an exercise with a amsart enviroment like the one shown in the MWE below, \documentclass[12pt,a4paper]{article} \usepackage{geometry} \usepackage{amsmath} \usepackage{amssymb} \begin{document} Studiare in $(0, 0)$ la continuità, l'esistenza delle derivate parziali e la differenziabilità della funzione \[ f(x, y) = \begin{cases} \dfrac{x^3 + 3x^2y + y^4}{x^2 + y^2} & \text{se } (x, y) \neq (0, 0) \\ 0 & \text{se } (x, y) = (0, 0). \end{cases} \] Studiamo la continuità in $(0,0)$. Si ha \[ |f(x,y)| = \left| \frac{x^3 + 3x^2y + y^4}{x^2+y^2} \right| \leq |x|+3|y|+|y|^2 \] e quando $(x,y)\to(0,0)$ l'ultima diseguaglianza tende a $0$ e anche la funzione di partenza lo sarà. Quindi \[ \lim_{(x,y)\to(0,0)} f(x,y) = 0 = f(0,0), \] cioè $f$ è continua in $(0,0)$. \end{document} and I want to strike out the entire exercise, while preserving any environments created with amsart, as in the image below. I'm searching something without use tcolorbox (mdframed or similar) using simple commands (without package) to create an "oblique rule" .
- How to create Tikz figure with surface and its shadow, as shown in imageby Latexfan on December 19, 2025 at 7:17 pm
I wish to make this figure with Tikz. I have tried but I can't make as in figure. Can you please assist me? \documentclass[tikz,border=10pt]{standalone} \usepackage{tikz} \usetikzlibrary{arrows.meta,3d,calc} \begin{document} \begin{tikzpicture}[ x={(1cm,0cm)}, y={(0.6cm,0.4cm)}, z={(0cm,1cm)}, >=Stealth ] % Axes \draw[->] (0,0,0) -- (4,0,0) node[below left] {$x$}; \draw[->] (0,0,0) -- (0,4,0) node[below right] {$y$}; \draw[->] (0,0,0) -- (0,0,4) node[left] {$z$}; % Origin \node at (0,0,0) [below left] {$O$}; % Bottom region D \fill[blue!15,opacity=0.6] plot[smooth cycle,variable=\t,domain=0:360] ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, 0); \node at (2,2,0) [below] {$D$}; % Boundary C' \draw[blue!70,thick,->] plot[smooth cycle,variable=\t,domain=0:360] ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, 0); \node at (3.8,2,0) {$C'$}; % Vertical dashed lines \foreach \t in {30,110,200,290} { \draw[dashed] ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, 0) -- ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, 2.3); } % Surface S : z = f(x,y) \fill[blue!40,opacity=0.7] plot[smooth cycle,variable=\t,domain=0:360] ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, {2+0.3*sin(\t)}); \node at (1.3,3.2,2.4) {$S$}; \node at (3.2,3.4,2.6) {$z=f(x,y)$}; % Boundary C \draw[blue!80,thick,->] plot[smooth cycle,variable=\t,domain=0:360] ({2+1.6*cos(\t)}, {2+1.1*sin(\t)}, {2+0.3*sin(\t)}); \node at (3.7,2.3,2.2) {$C$}; % Normal vector N \draw[red,very thick,->] (2,2,2.2) -- (2,2,3.6) node[above] {$\mathbf{N}$}; \end{tikzpicture} \end{document} ```
- Custom 3D line plot in plain tikz and/or luadrawby Dr. Manuel Kuehner on December 19, 2025 at 12:30 pm
Disclaimer This question is a bit of "do it for me" but there is a histrory behind it, see this question. User Jasper offered me a solution without using pgfplots. I plan to add a bounty as soon as it is possible. Question I want to create diagram with a 3D line plots. The main feature is to have several x axes that share the same y axis. Each x axis has its own F (or z) axis. There are only data points on specific y values (in the example below at +30, +15, 0, -15). In addition, the y axis is reversed (+ and - direction reversed). I need a grid in each F-x plane. Important ist also, that all F axes share the same min and max. Each axis should have a label and the diagram should have a title. The data is given in separate csv files, see example below. The MWE contains the data and plots the data (for testing) using pgfplots. Goal: The goal is to have a plain tikz solution and maybe in addition, a solution based on luadraw or lua-tikz3dtools respectively. I am looking for a easy-to-use custom interface for my plot task. If the result looks as it is created with pgfplots, then I am happy. S!#i, I forgot a key feature (not shown in the hand drawing) In addition to the x-F plots described above, there is ONE plot in the y-F plane (= from left to right). This works, because all F axes share the same min and max. \begin{filecontents*}{y_F_data.csv} y,F -15,20 -14,8 30,-4 \end{filecontents*} \documentclass{article} \usepackage{pgfplots} % ------------------------------- \begin{filecontents*}{x_zero.csv} x,F -30,12 -29,8 30,-4 \end{filecontents*} \begin{filecontents*}{x_neg_one.csv} x,F -30,12 -29,8 30,-4 \end{filecontents*} \begin{filecontents*}{x_pos_one.csv} x,F -30,12 -29,8 30,-4 \end{filecontents*} \begin{filecontents*}{x_pos_two.csv} x,F -30,12 -29,8 30,-4 \end{filecontents*} % ------------------------------- \begin{document} \begin{tikzpicture} \begin{axis}[ axis lines = center, title = {$x_0$}, xlabel = {$x_0$}, ylabel = {$F_0$}, xmin = -30, xmax = 30, ymin = -100, ymax = 100, ] \addplot table [x=x, y=F, col sep = comma] {x_zero.csv}; \end{axis} \end{tikzpicture} \begin{tikzpicture} \begin{axis}[ axis lines = center, title = {$x_{-1}$}, xlabel = {$x_{-1}$}, ylabel = {$F_{-1}$}, xmin = -30, xmax = 30, ymin = -100, ymax = 100, ] \addplot table [x=x, y=F, col sep = comma] {x_neg_one.csv}; \end{axis} \end{tikzpicture} \begin{tikzpicture} \begin{axis}[ axis lines = center, title = {$x_{1}$}, xlabel = {$x_{1}$}, ylabel = {$F_{1}$}, xmin = -30, xmax = 30, ymin = -100, ymax = 100, ] \addplot table [x=x, y=F, col sep = comma] {x_pos_one.csv}; \end{axis} \end{tikzpicture} \begin{tikzpicture} \begin{axis}[ axis lines = center, title = {$x_{2}$}, xlabel = {$x_{2}$}, ylabel = {$F_{2}$}, xmin = -30, xmax = 30, ymin = -100, ymax = 100, ] \addplot table [x=x, y=F, col sep = comma] {x_pos_two.csv}; \end{axis} \end{tikzpicture} \end{document}
- Combine numbers from custom commands into a rangeby taiwan12 on December 18, 2025 at 11:40 pm
I’m defining datas in LaTeX with a custom command that stores both a label and a number: \documentclass{article} \usepackage{parskip} \newcommand{\data}[3]{% \expandafter\newcommand\csname #1\endcsname[1][]{#2##1}% \expandafter\newcommand\csname #1Number\endcsname{#3}% } \newcommand{\getnumber}[1]{% \mbox{\textbf{(\csname #1Number\endcsname)}}% } \begin{document} \data{tempA}{aaa}{1} \data{tempB}{bbb}{2} \data{tempC}{ccc}{3} \data{tempD}{ddd}{4} \data{tempE}{eee}{5} \data{tempF}{fff}{6} Data: \tempA \newline Number: \getnumber{tempA} \end{document} For a single compound, \getnumber{tempA} outputs (1). Now I want to create a command that takes a list of compound names and outputs a range summary of their numbers. For example: \getnumberrange{tempA,tempB,tempC,tempF} % should produce (1-3,6) I’m not sure how to iterate over a list of command names, retrieve their numbers, and compress consecutive numbers into ranges. How can I implement this in LaTeX?
- Cannot access \varphi of Biolinumby Eros Jones on December 18, 2025 at 3:02 pm
I am using upright sans greek (Biolinum) for maths via libgreek. Everything is working fine, except that I am unable to use \varphi which gives phi in italics and, I think, in Libertinus font, so not even Biolinum. MWE: \documentclass{article} \usepackage[LGR,T1]{fontenc} \usepackage[libertinus,biolinum,greek=up]{libgreek} \begin{document} $\alpha\beta\gamma\iota\phi\varphi$ \end{document} This is the logfile: This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.12.15) 18 DEC 2025 16:15 entering extended mode restricted \write18 enabled. %&-line parsing enabled. **varphi-test.tex (./varphi-test.tex LaTeX2e <2024-11-01> patch level 2 L3 programming layer <2025-01-18> (c:/texlive/2025/texmf-dist/tex/latex/base/article.cls Document Class: article 2024/06/29 v1.4n Standard LaTeX document class (c:/texlive/2025/texmf-dist/tex/latex/base/size10.clo File: size10.clo 2024/06/29 v1.4n Standard LaTeX file (size option) ) \c@part=\count196 \c@section=\count197 \c@subsection=\count198 \c@subsubsection=\count199 \c@paragraph=\count266 \c@subparagraph=\count267 \c@figure=\count268 \c@table=\count269 \abovecaptionskip=\skip49 \belowcaptionskip=\skip50 \bibindent=\dimen141 ) (c:/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty Package: fontenc 2021/04/29 v2.0v Standard LaTeX package (c:/texlive/2025/texmf-dist/tex/latex/greek-fontenc/lgrenc.def File: lgrenc.def 2023-09-12 2.5 LGR Greek font encoding definitions Now handling font encoding LGR ... ... processing UTF-8 mapping file for font encoding LGR (c:/texlive/2025/texmf-dist/tex/latex/greek-inputenc/lgrenc.dfu File: lgrenc.dfu 2023-03-21 1.9 UTF-8 support for Greek defining Unicode char U+00A8 (decimal 168) defining Unicode char U+00AB (decimal 171) defining Unicode char U+00AF (decimal 175) defining Unicode char U+00B4 (decimal 180) defining Unicode char U+00B7 (decimal 183) defining Unicode char U+00BB (decimal 187) defining Unicode char U+0259 (decimal 601) defining Unicode char U+02D8 (decimal 728) defining Unicode char U+0374 (decimal 884) defining Unicode char U+0375 (decimal 885) defining Unicode char U+037A (decimal 890) defining Unicode char U+037E (decimal 894) defining Unicode char U+0384 (decimal 900) defining Unicode char U+0385 (decimal 901) defining Unicode char U+0386 (decimal 902) defining Unicode char U+0387 (decimal 903) defining Unicode char U+0388 (decimal 904) defining Unicode char U+0389 (decimal 905) defining Unicode char U+038A (decimal 906) defining Unicode char U+038C (decimal 908) defining Unicode char U+038E (decimal 910) defining Unicode char U+038F (decimal 911) defining Unicode char U+0390 (decimal 912) defining Unicode char U+0391 (decimal 913) defining Unicode char U+0392 (decimal 914) defining Unicode char U+0393 (decimal 915) defining Unicode char U+0394 (decimal 916) defining Unicode char U+0395 (decimal 917) defining Unicode char U+0396 (decimal 918) defining Unicode char U+0397 (decimal 919) defining Unicode char U+0398 (decimal 920) defining Unicode char U+0399 (decimal 921) defining Unicode char U+039A (decimal 922) defining Unicode char U+039B (decimal 923) defining Unicode char U+039C (decimal 924) defining Unicode char U+039D (decimal 925) defining Unicode char U+039E (decimal 926) defining Unicode char U+039F (decimal 927) defining Unicode char U+03A0 (decimal 928) defining Unicode char U+03A1 (decimal 929) defining Unicode char U+03A3 (decimal 931) defining Unicode char U+03A4 (decimal 932) defining Unicode char U+03A5 (decimal 933) defining Unicode char U+03A6 (decimal 934) defining Unicode char U+03A7 (decimal 935) defining Unicode char U+03A8 (decimal 936) defining Unicode char U+03A9 (decimal 937) defining Unicode char U+03AA (decimal 938) defining Unicode char U+03AB (decimal 939) defining Unicode char U+03AC (decimal 940) defining Unicode char U+03AD (decimal 941) defining Unicode char U+03AE (decimal 942) defining Unicode char U+03AF (decimal 943) defining Unicode char U+03B0 (decimal 944) defining Unicode char U+03B1 (decimal 945) defining Unicode char U+03B2 (decimal 946) defining Unicode char U+03B3 (decimal 947) defining Unicode char U+03B4 (decimal 948) defining Unicode char U+03B5 (decimal 949) defining Unicode char U+03B6 (decimal 950) defining Unicode char U+03B7 (decimal 951) defining Unicode char U+03B8 (decimal 952) defining Unicode char U+03B9 (decimal 953) defining Unicode char U+03BA (decimal 954) defining Unicode char U+03BB (decimal 955) defining Unicode char U+03BC (decimal 956) defining Unicode char U+03BD (decimal 957) defining Unicode char U+03BE (decimal 958) defining Unicode char U+03BF (decimal 959) defining Unicode char U+03C0 (decimal 960) defining Unicode char U+03C1 (decimal 961) defining Unicode char U+03C2 (decimal 962) defining Unicode char U+03C3 (decimal 963) defining Unicode char U+03C4 (decimal 964) defining Unicode char U+03C5 (decimal 965) defining Unicode char U+03C6 (decimal 966) defining Unicode char U+03C7 (decimal 967) defining Unicode char U+03C8 (decimal 968) defining Unicode char U+03C9 (decimal 969) defining Unicode char U+03CA (decimal 970) defining Unicode char U+03CB (decimal 971) defining Unicode char U+03CC (decimal 972) defining Unicode char U+03CD (decimal 973) defining Unicode char U+03CE (decimal 974) defining Unicode char U+03D0 (decimal 976) defining Unicode char U+03D1 (decimal 977) defining Unicode char U+03D5 (decimal 981) defining Unicode char U+03D6 (decimal 982) defining Unicode char U+03D8 (decimal 984) defining Unicode char U+03D9 (decimal 985) defining Unicode char U+03DA (decimal 986) defining Unicode char U+03DB (decimal 987) defining Unicode char U+03DC (decimal 988) defining Unicode char U+03DD (decimal 989) defining Unicode char U+03DE (decimal 990) defining Unicode char U+03DF (decimal 991) defining Unicode char U+03E0 (decimal 992) defining Unicode char U+03E1 (decimal 993) defining Unicode char U+03F0 (decimal 1008) defining Unicode char U+03F1 (decimal 1009) defining Unicode char U+03F4 (decimal 1012) defining Unicode char U+03F5 (decimal 1013) defining Unicode char U+1F00 (decimal 7936) defining Unicode char U+1F01 (decimal 7937) defining Unicode char U+1F02 (decimal 7938) defining Unicode char U+1F03 (decimal 7939) defining Unicode char U+1F04 (decimal 7940) defining Unicode char U+1F05 (decimal 7941) defining Unicode char U+1F06 (decimal 7942) defining Unicode char U+1F07 (decimal 7943) defining Unicode char U+1F08 (decimal 7944) defining Unicode char U+1F09 (decimal 7945) defining Unicode char U+1F0A (decimal 7946) defining Unicode char U+1F0B (decimal 7947) defining Unicode char U+1F0C (decimal 7948) defining Unicode char U+1F0D (decimal 7949) defining Unicode char U+1F0E (decimal 7950) defining Unicode char U+1F0F (decimal 7951) defining Unicode char U+1F10 (decimal 7952) defining Unicode char U+1F11 (decimal 7953) defining Unicode char U+1F12 (decimal 7954) defining Unicode char U+1F13 (decimal 7955) defining Unicode char U+1F14 (decimal 7956) defining Unicode char U+1F15 (decimal 7957) defining Unicode char U+1F18 (decimal 7960) defining Unicode char U+1F19 (decimal 7961) defining Unicode char U+1F1A (decimal 7962) defining Unicode char U+1F1B (decimal 7963) defining Unicode char U+1F1C (decimal 7964) defining Unicode char U+1F1D (decimal 7965) defining Unicode char U+1F20 (decimal 7968) defining Unicode char U+1F21 (decimal 7969) defining Unicode char U+1F22 (decimal 7970) defining Unicode char U+1F23 (decimal 7971) defining Unicode char U+1F24 (decimal 7972) defining Unicode char U+1F25 (decimal 7973) defining Unicode char U+1F26 (decimal 7974) defining Unicode char U+1F27 (decimal 7975) defining Unicode char U+1F28 (decimal 7976) defining Unicode char U+1F29 (decimal 7977) defining Unicode char U+1F2A (decimal 7978) defining Unicode char U+1F2B (decimal 7979) defining Unicode char U+1F2C (decimal 7980) defining Unicode char U+1F2D (decimal 7981) defining Unicode char U+1F2E (decimal 7982) defining Unicode char U+1F2F (decimal 7983) defining Unicode char U+1F30 (decimal 7984) defining Unicode char U+1F31 (decimal 7985) defining Unicode char U+1F32 (decimal 7986) defining Unicode char U+1F33 (decimal 7987) defining Unicode char U+1F34 (decimal 7988) defining Unicode char U+1F35 (decimal 7989) defining Unicode char U+1F36 (decimal 7990) defining Unicode char U+1F37 (decimal 7991) defining Unicode char U+1F38 (decimal 7992) defining Unicode char U+1F39 (decimal 7993) defining Unicode char U+1F3A (decimal 7994) defining Unicode char U+1F3B (decimal 7995) defining Unicode char U+1F3C (decimal 7996) defining Unicode char U+1F3D (decimal 7997) defining Unicode char U+1F3E (decimal 7998) defining Unicode char U+1F3F (decimal 7999) defining Unicode char U+1F40 (decimal 8000) defining Unicode char U+1F41 (decimal 8001) defining Unicode char U+1F42 (decimal 8002) defining Unicode char U+1F43 (decimal 8003) defining Unicode char U+1F44 (decimal 8004) defining Unicode char U+1F45 (decimal 8005) defining Unicode char U+1F48 (decimal 8008) defining Unicode char U+1F49 (decimal 8009) defining Unicode char U+1F4A (decimal 8010) defining Unicode char U+1F4B (decimal 8011) defining Unicode char U+1F4C (decimal 8012) defining Unicode char U+1F4D (decimal 8013) defining Unicode char U+1F50 (decimal 8016) defining Unicode char U+1F51 (decimal 8017) defining Unicode char U+1F52 (decimal 8018) defining Unicode char U+1F53 (decimal 8019) defining Unicode char U+1F54 (decimal 8020) defining Unicode char U+1F55 (decimal 8021) defining Unicode char U+1F56 (decimal 8022) defining Unicode char U+1F57 (decimal 8023) defining Unicode char U+1F59 (decimal 8025) defining Unicode char U+1F5B (decimal 8027) defining Unicode char U+1F5D (decimal 8029) defining Unicode char U+1F5F (decimal 8031) defining Unicode char U+1F60 (decimal 8032) defining Unicode char U+1F61 (decimal 8033) defining Unicode char U+1F62 (decimal 8034) defining Unicode char U+1F63 (decimal 8035) defining Unicode char U+1F64 (decimal 8036) defining Unicode char U+1F65 (decimal 8037) defining Unicode char U+1F66 (decimal 8038) defining Unicode char U+1F67 (decimal 8039) defining Unicode char U+1F68 (decimal 8040) defining Unicode char U+1F69 (decimal 8041) defining Unicode char U+1F6A (decimal 8042) defining Unicode char U+1F6B (decimal 8043) defining Unicode char U+1F6C (decimal 8044) defining Unicode char U+1F6D (decimal 8045) defining Unicode char U+1F6E (decimal 8046) defining Unicode char U+1F6F (decimal 8047) defining Unicode char U+1F70 (decimal 8048) defining Unicode char U+1F71 (decimal 8049) defining Unicode char U+1F72 (decimal 8050) defining Unicode char U+1F73 (decimal 8051) defining Unicode char U+1F74 (decimal 8052) defining Unicode char U+1F75 (decimal 8053) defining Unicode char U+1F76 (decimal 8054) defining Unicode char U+1F77 (decimal 8055) defining Unicode char U+1F78 (decimal 8056) defining Unicode char U+1F79 (decimal 8057) defining Unicode char U+1F7A (decimal 8058) defining Unicode char U+1F7B (decimal 8059) defining Unicode char U+1F7C (decimal 8060) defining Unicode char U+1F7D (decimal 8061) defining Unicode char U+1F80 (decimal 8064) defining Unicode char U+1F81 (decimal 8065) defining Unicode char U+1F82 (decimal 8066) defining Unicode char U+1F83 (decimal 8067) defining Unicode char U+1F84 (decimal 8068) defining Unicode char U+1F85 (decimal 8069) defining Unicode char U+1F86 (decimal 8070) defining Unicode char U+1F87 (decimal 8071) defining Unicode char U+1F88 (decimal 8072) defining Unicode char U+1F89 (decimal 8073) defining Unicode char U+1F8A (decimal 8074) defining Unicode char U+1F8B (decimal 8075) defining Unicode char U+1F8C (decimal 8076) defining Unicode char U+1F8D (decimal 8077) defining Unicode char U+1F8E (decimal 8078) defining Unicode char U+1F8F (decimal 8079) defining Unicode char U+1F90 (decimal 8080) defining Unicode char U+1F91 (decimal 8081) defining Unicode char U+1F92 (decimal 8082) defining Unicode char U+1F93 (decimal 8083) defining Unicode char U+1F94 (decimal 8084) defining Unicode char U+1F95 (decimal 8085) defining Unicode char U+1F96 (decimal 8086) defining Unicode char U+1F97 (decimal 8087) defining Unicode char U+1F98 (decimal 8088) defining Unicode char U+1F99 (decimal 8089) defining Unicode char U+1F9A (decimal 8090) defining Unicode char U+1F9B (decimal 8091) defining Unicode char U+1F9C (decimal 8092) defining Unicode char U+1F9D (decimal 8093) defining Unicode char U+1F9E (decimal 8094) defining Unicode char U+1F9F (decimal 8095) defining Unicode char U+1FA0 (decimal 8096) defining Unicode char U+1FA1 (decimal 8097) defining Unicode char U+1FA2 (decimal 8098) defining Unicode char U+1FA3 (decimal 8099) defining Unicode char U+1FA4 (decimal 8100) defining Unicode char U+1FA5 (decimal 8101) defining Unicode char U+1FA6 (decimal 8102) defining Unicode char U+1FA7 (decimal 8103) defining Unicode char U+1FA8 (decimal 8104) defining Unicode char U+1FA9 (decimal 8105) defining Unicode char U+1FAA (decimal 8106) defining Unicode char U+1FAB (decimal 8107) defining Unicode char U+1FAC (decimal 8108) defining Unicode char U+1FAD (decimal 8109) defining Unicode char U+1FAE (decimal 8110) defining Unicode char U+1FAF (decimal 8111) defining Unicode char U+1FB0 (decimal 8112) defining Unicode char U+1FB1 (decimal 8113) defining Unicode char U+1FB2 (decimal 8114) defining Unicode char U+1FB3 (decimal 8115) defining Unicode char U+1FB4 (decimal 8116) defining Unicode char U+1FB6 (decimal 8118) defining Unicode char U+1FB7 (decimal 8119) defining Unicode char U+1FB8 (decimal 8120) defining Unicode char U+1FB9 (decimal 8121) defining Unicode char U+1FBA (decimal 8122) defining Unicode char U+1FBB (decimal 8123) defining Unicode char U+1FBC (decimal 8124) defining Unicode char U+1FBD (decimal 8125) defining Unicode char U+1FBE (decimal 8126) defining Unicode char U+1FBF (decimal 8127) defining Unicode char U+1FC0 (decimal 8128) defining Unicode char U+1FC1 (decimal 8129) defining Unicode char U+1FC2 (decimal 8130) defining Unicode char U+1FC3 (decimal 8131) defining Unicode char U+1FC4 (decimal 8132) defining Unicode char U+1FC6 (decimal 8134) defining Unicode char U+1FC7 (decimal 8135) defining Unicode char U+1FC8 (decimal 8136) defining Unicode char U+1FC9 (decimal 8137) defining Unicode char U+1FCA (decimal 8138) defining Unicode char U+1FCB (decimal 8139) defining Unicode char U+1FCC (decimal 8140) defining Unicode char U+1FCD (decimal 8141) defining Unicode char U+1FCE (decimal 8142) defining Unicode char U+1FCF (decimal 8143) defining Unicode char U+1FD0 (decimal 8144) defining Unicode char U+1FD1 (decimal 8145) defining Unicode char U+1FD2 (decimal 8146) defining Unicode char U+1FD3 (decimal 8147) defining Unicode char U+1FD6 (decimal 8150) defining Unicode char U+1FD7 (decimal 8151) defining Unicode char U+1FD8 (decimal 8152) defining Unicode char U+1FD9 (decimal 8153) defining Unicode char U+1FDA (decimal 8154) defining Unicode char U+1FDB (decimal 8155) defining Unicode char U+1FDD (decimal 8157) defining Unicode char U+1FDE (decimal 8158) defining Unicode char U+1FDF (decimal 8159) defining Unicode char U+1FE0 (decimal 8160) defining Unicode char U+1FE1 (decimal 8161) defining Unicode char U+1FE2 (decimal 8162) defining Unicode char U+1FE3 (decimal 8163) defining Unicode char U+1FE4 (decimal 8164) defining Unicode char U+1FE5 (decimal 8165) defining Unicode char U+1FE6 (decimal 8166) defining Unicode char U+1FE7 (decimal 8167) defining Unicode char U+1FE8 (decimal 8168) defining Unicode char U+1FE9 (decimal 8169) defining Unicode char U+1FEA (decimal 8170) defining Unicode char U+1FEB (decimal 8171) defining Unicode char U+1FEC (decimal 8172) defining Unicode char U+1FED (decimal 8173) defining Unicode char U+1FEE (decimal 8174) defining Unicode char U+1FEF (decimal 8175) defining Unicode char U+1FF2 (decimal 8178) defining Unicode char U+1FF3 (decimal 8179) defining Unicode char U+1FF4 (decimal 8180) defining Unicode char U+1FF6 (decimal 8182) defining Unicode char U+1FF7 (decimal 8183) defining Unicode char U+1FF8 (decimal 8184) defining Unicode char U+1FF9 (decimal 8185) defining Unicode char U+1FFA (decimal 8186) defining Unicode char U+1FFB (decimal 8187) defining Unicode char U+1FFC (decimal 8188) defining Unicode char U+1FFD (decimal 8189) defining Unicode char U+1FFE (decimal 8190) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201A (decimal 8218) defining Unicode char U+2030 (decimal 8240) defining Unicode char U+2039 (decimal 8249) defining Unicode char U+203A (decimal 8250) defining Unicode char U+20AC (decimal 8364) defining Unicode char U+2126 (decimal 8486) defining Unicode char U+10144 (decimal 65860) defining Unicode char U+10145 (decimal 65861) defining Unicode char U+10146 (decimal 65862) defining Unicode char U+10147 (decimal 65863) ) (c:/texlive/2025/texmf-dist/tex/latex/greek-fontenc/greek-fontenc.def File: greek-fontenc.def 2023-09-12 2.5 Common Greek font encoding definitions ))) (c:/texlive/2025/texmf-dist/tex/latex/libgreek/libgreek.sty Package: libgreek 2022/11/11 1.1 Greek in math mode via libertinus-type1 (JFB) (c:/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) (c:/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty Package: keyval 2022/05/29 v1.15 key=value parser (DPC) \KV@toks@=\toks17 ) (c:/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) ) (c:/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) )) LaTeX Font Info: Redeclaring font encoding LGR on input line 191. \symlibgreekup=\mathgroup4 LaTeX Font Info: Overwriting symbol font `libgreekup' in version `bold' (Font) LGR/LibertinusSans-TLF/m/n --> LGR/LibertinusSans-TLF/b /n on input line 197. \symlibgreekit=\mathgroup5 LaTeX Font Info: Overwriting symbol font `libgreekit' in version `bold' (Font) LGR/LibertinusSans-TLF/m/it --> LGR/LibertinusSans-TLF/ b/it on input line 203. ) (c:/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def File: l3backend-pdftex.def 2024-05-08 L3 backend support: PDF output (pdfTeX) \l__color_backend_stack_int=\count270 \l__pdf_internal_box=\box52 ) (./varphi-test.aux) \openout1 = `varphi-test.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6. LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: Checking defaults for LGR/cmr/m/n on input line 6. LaTeX Font Info: Trying to load font information for LGR+cmr on input line 6 . (c:/texlive/2025/texmf-dist/tex/latex/cbfonts-fd/lgrcmr.fd File: lgrcmr.fd 2017/07/29 v1.2 Greek European Computer Regular ) LaTeX Font Info: ... okay on input line 6. LaTeX Font Info: External font `cmex10' loaded for size (Font) <7> on input line 7. LaTeX Font Info: External font `cmex10' loaded for size (Font) <5> on input line 7. LaTeX Font Info: Trying to load font information for LGR+LibertinusSans-TLF on input line 7. (c:/texlive/2025/texmf-dist/tex/latex/libertinus-type1/LGRLibertinusSans-TLF.fd File: LGRLibertinusSans-TLF.fd 2024/09/22 (autoinst) Font definitions for LGR/L ibertinusSans-TLF. ) LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/n' will be (Font) scaled to size 10.0pt on input line 7. LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/n' will be (Font) scaled to size 7.0pt on input line 7. LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/n' will be (Font) scaled to size 5.0pt on input line 7. LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/it' will be (Font) scaled to size 10.0pt on input line 7. LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/it' will be (Font) scaled to size 7.0pt on input line 7. LaTeX Font Info: Font shape `LGR/LibertinusSans-TLF/m/it' will be (Font) scaled to size 5.0pt on input line 7. [1 {c:/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{c:/texlive/2025/ texmf-dist/fonts/enc/dvips/libertinus-type1/lbn1_37i5h5.enc}{c:/texlive/2025/te xmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}] (./varphi-test.aux) *********** LaTeX2e <2024-11-01> patch level 2 L3 programming layer <2025-01-18> *********** ) Here is how much of TeX's memory you used: 2708 strings out of 473189 44000 string characters out of 5719957 410256 words of memory out of 5000000 25996 multiletter control sequences out of 15000+600000 563308 words of font info for 43 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 57i,5n,65p,466b,120s stack positions out of 10000i,1000n,20000p,200000b,200000s <c:/texlive/2025/texmf-dist/fonts/type1/public/libertinus-type1/LibertinusSan s-Regular.pfb><c:/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10 .pfb><c:/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb> Output written on varphi-test.pdf (1 page, 96602 bytes). PDF statistics: 25 PDF objects out of 1000 (max. 8388607) 15 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 500000) 1 words of extra memory for PDF output out of 10000 (max. 10000000) I have installed Biolinum for Windows as well. In Word or Visio I can access the glyphs with Insert/Symbol and selecting the correct one from the character table. This is what the phi should look like: Any ideas how to do it in Tex? PS >> libgreek does not seem to have \varphi defined, so this may already be a fault of Biolinum, I guess. I need the phi in two or three places only, so a per-case solution (using the unicode id of the glyph, for example) would be fine.
- Create macro with named argumentsby user1724887 on December 18, 2025 at 1:30 pm
I am new to latex. I need to create a text that has a bunch of entries that have the same structure, so I thought I would create a macro for it. However there are 7 moving parts, so it needs 7 arguments. It's becoming hard to read, hard to know which argument number I'm on. So I want to name the arguments (not so much in the definition of the macro, but at least when it's used). I tried searching on the net, but found no easy solution, and it gets very quickly highly unreadable (using xparse and things like that) for non-latex experts. I found out, using luatex, I can include lua code, which seems way more readable. So I switched to luatex. The usage that I am proposing is as follows. I'm open to other usages, but it should be at least easily readable, prone to extra spaces (and newlines), and close to the latex syntax. values can themselves have newlines, and latex code (such as \textbf). curly braces (the character ending the value) should be able to be escaped in the values. \myfunction { arg1 = {value1}, arg2 = {value2}, arg3 = {value3}, arg4 = {value4}, arg5 = {value5}, arg6 = {value6}, arg7 = {value7} } The way I tried to parse it is as follows. \documentclass{article} \usepackage{luacode} \begin{luacode} function parse_args(input) local result = {} local pattern = '(%w+)%s*=%s*{%s*([^}]+)%s*}' for key, value in input:gmatch(pattern) do result[key] = value end return result end function my_function(input) local args = parse_args(input) for key, value in args do tex.print(key .. " : " .. value .. "\\") end \end{luacode} \newcommand{\myfunction}[1]{% \directlua{ my_function([===[#1]===]) }% } \begin{document} \myfunction { arg1 = {value1}, arg2 = {value2}, arg3 = {value3}, arg4 = {value4}, arg5 = {value5}, arg6 = {value6}, arg7 = {value7} } \end{document} This doesn't work, I'm getting weird issues, it seems to closing bracket in the pattern string is interpreted as latex code and I get a closing bracket error within the string. I'm open to either making my code work with minimal changes, or to provide a whole other solution, if it's elegant and easy to read.
- How to adjust a table with fractions?by karry on December 18, 2025 at 11:51 am
\begin{table}[ht] \centering \setlength{\extrarowheight}{10pt} \setlength{\arraycolsep}{10pt} % \begin{tabular}{ |c|c|c|c|c|c| } \hline & $\bm{II}$ & $\bm{IX}$ & $\bm{ZI}$ & $\bm{ZX}$ & \textbf{others} \\ \hline $\bm{II}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $-\frac{1}{4}$ & $0$ \\ \hline $\bm{IX}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $-\frac{1}{4}$ & $0$ \\ \hline $\bm{ZI}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $\frac{1}{4}$ & $-\frac{1}{4}$ & $0$ \\ \hline $\bm{ZX}$ & $-\frac{1}{4}$ & $-\frac{1}{4}$ & $-\frac{1}{4}$ & $\frac{1}{4}$ & $0$ \\ \hline \textbf{others} & $0$ & $0$ & $0$ & $0$ & $0$ \\ \hline \end{tabular} \end{table} This is my code, but it shows that: This is not the table I want. All the fractions are not centered. I've tried many methods but none of them worked. How can I adjust it to make the table more attractive?
- Removing gap between bar and x-axis line in bar plotby user242399 on December 18, 2025 at 8:40 am
How can I make the bars start at the horizontal line, instead of having a small gap between the bar and the line? (I do not need to keep the 0 mark at the y-axis.) \documentclass{article} \usepackage{tikz} \usepackage{pgfplots} \pgfplotsset{width=12cm,compat=1.9} \begin{document} \begin{tikzpicture} \begin{axis}[ ymin=0, x tick label style={ /pgf/number format/1000 sep=}, enlargelimits=0.05, legend style={at={(0.5,-0.1)}, anchor=north,legend columns=-1}, ybar interval=0.7, ] \addplot[color=darkgray,fill=lightgray] coordinates { (1990,638) (1980,899) (1970,894) (1960,808) (1950,769) (1940,714) (1930,644) (1920,598) (1910,536) (1900,420)}; \end{axis} \end{tikzpicture} \end{document}
- How to use \setcapwidth with \maxof from calc in TeXLive 2025?by mforbes on December 18, 2025 at 7:51 am
As of TexLive 2025, I started running into an error with the following MnWE: \documentclass{scrartcl} \usepackage{calc} \setcapwidth{\maxof{\textwidth}{0.8\textwidth}} \begin{document} This fails with texlive 2025. \end{document} /Volumes/Data/apps/texlive/2025/texmf-dist/tex/latex/koma-script/typearea.sty) ) (/Volumes/Data/apps/texlive/2025/texmf-dist/tex/latex/tools/calc.sty) ! Missing number, treated as zero. <to be read again> \maxof l.5 ...capwidth{\maxof{\textwidth}{0.8\textwidth}} This seems to be related to a switch to LaTeX3-style command definitions. A workaround is to precompute the value before passing it to \setcapwidth. Is there a better solutions? \documentclass{scrartcl} \usepackage{calc} \setlength{\dimen255}{\maxof{\textwidth}{0.8\textwidth}} \setcapwidth{\dimen255} \begin{document} This works. \end{document}