• Is it useful to update TexLive
    by Rassine Orange on June 9, 2026 at 8:12 am

    I use LaTeX almost every day for my work and I'm wondering if I should update TeXLive. I currently have the 2024 version. I'm afraid that if I update either my code won't run or I will go into some issues that I cannot solve. What would you recommand ? And if you advise me to update it, how shall I proceed? I have read so many different things online that I get a bit lost. Best,

  • Incompatibility between memoize and luacolor
    by PHL on June 9, 2026 at 5:13 am

    The following MWE compile correctly, but if luacolor is uncommented the triangle is black instead of red. % !TEX TS-program = lualatex \documentclass{article} \usepackage{memoize} %\usepackage{luacolor} \usepackage{tikz} \begin{document} \begin{tikzpicture} \fill[red] (0,0)--(1,1)--(2,0)--cycle; \end{tikzpicture} \end{document} Is there a workaround? Or is this a bug in memoize and/or luacolor? (luacoloris needed for kerning reasons, that do not show in the above MWE.)

  • How can I get less than one frame per second in \animategraphics?
    by Jasper on June 9, 2026 at 3:50 am

    How can I get less than one frame per second in \animategraphics? \documentclass{article} \usepackage{animate} \usepackage{graphicx} \begin{document} \animategraphics{ % a framerate less than one, say 1/3. }{cow}{}{} \end{document}

  • pixel square draw spacing bad in LaTeX
    by mathrm alpha on June 8, 2026 at 11:32 pm

    The horizontal spacing is a bit bad when I'm drawing LaTeX pixel maps. \documentclass{article} \usepackage{setspace,parskip,newunicodechar,xcolor,fontspec} % parskip It's failing... \newunicodechar{█}{\fontspec{Arial}{█}} \newunicodechar{ }{\fontspec{Arial}{\color{white}{█}}} \begin{document} \vspace{-1mm} \color{blue}{█ ████ }\color{gray}{█ ████ }\\ \vspace{-1mm} \color{pink}{██ ████}\color{cyan}{█ ████ }\\ \vspace{-1mm} \color{yellow}{██████   ██}\color{blue}{██} \end{document}

  • Tex (MacOS) went to user mode by accident
    by Rassine Orange on June 8, 2026 at 7:34 pm

    I was trying to fix a bug in LaTeX and I ran a command in the terminal. The bug is now solved but I got a warning message "WARNING: you are switching to fmtutil's per-user formats." I have no idea what's the difference between user and system mode. Could someone explain what this means, and how to come back safely without spoiling again my LaTeX codes ? Thanks!

  • Automatically run the latexmk on the non-latex files changes or creation
    by Vladyslav Rehan on June 8, 2026 at 6:09 pm

    hello texstackexchange community! I was missing you! Input My approach uses this for an input: plots/*.py these files generate the pdf plots with matplotlib using the data on disk. data/*.drawio this files just get converted to the pdf files by the drawio utility in the mode wihtout UI. document.tex this file includes the rest of the *.tex sources by the subfile and other means. This means that any changes to the *.tex files are tracked by latexmk itself. Setup I have custom cmake+latexmk pipeline with the cmake target named continuous. The idea is to not keep the pdf files of the corresponding *.drawio files but generate them on demand. Same applies for matplotlib python plots that are made from the data on disk on demand so the version control never ever sees the images of the charts. The continuous target invokes latexmk in continuous mode and provides to it the generated .latexmkrc (the continuous target is created at the very bottom of the listing): set(MAIN_DOCUMENT "${CMAKE_CURRENT_SOURCE_DIR}/document.tex") set(OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/out") set(AUX_DIR "${CMAKE_CURRENT_BINARY_DIR}/aux") set(LATEXMK_OPTIONS "-verbose") set(DIPLOMA_DATA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/data") set(PLOTS_DIR "${CMAKE_CURRENT_BINARY_DIR}/plots") set(SCENARIOS_DIR "${CMAKE_CURRENT_BINARY_DIR}/commands") set(DRAWIO_DIR "${CMAKE_CURRENT_BINARY_DIR}/drawio") list(TRANSFORM SCENARIOS PREPEND "${SCENARIOS_DIR}/") file(GLOB DRAWIO_FILES CONFIGURE_DEPENDS "${DIPLOMA_DATA_DIR}/*.drawio") file(MAKE_DIRECTORY "${PLOTS_DIR}") file(MAKE_DIRECTORY "${SCENARIOS_DIR}") file(MAKE_DIRECTORY "${DRAWIO_DIR}") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/commands.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/commands.sh" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE @ONLY ) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/drawio.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/drawio.sh" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE @ONLY ) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/latexmkrc.in" "${CMAKE_CURRENT_BINARY_DIR}/latexmkrc" @ONLY ) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake.tex.in" "cmake.tex" @ONLY ) set(PLOTS_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/plots") set(PLOTS_COMMON_DEPS "${PLOTS_SRC_DIR}/common.py" "${PLOTS_SRC_DIR}/__init__.py" "${PLOTS_SRC_DIR}/__main__.py" ) # Trigger reconfigure when plot files are added or removed file(GLOB _PLOTS_PY_GLOB CONFIGURE_DEPENDS "${PLOTS_SRC_DIR}/*.py") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${_PLOTS_PY_GLOB}) execute_process( COMMAND "${Python3_EXECUTABLE}" -m plots --deps WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" OUTPUT_VARIABLE _RAW RESULT_VARIABLE _RC ) if(NOT _RC EQUAL 0) message(FATAL_ERROR "plots --deps failed") endif() string(STRIP "${_RAW}" _STRIPPED) string(REPLACE "\n" ";" _LINES "${_STRIPPED}") set(ALL_PLOT_PDFS "") foreach(_LINE ${_LINES}) if(_LINE) string(REGEX MATCH "^([^ ]+) ([01]) (.+)$" _ "${_LINE}") set(_NAME "${CMAKE_MATCH_1}") set(_HAS_CSV "${CMAKE_MATCH_2}") set(_FILE "${CMAKE_MATCH_3}") if(_NAME AND _FILE) set(_PDF "${PLOTS_DIR}/${_NAME}.pdf") set(_OUTPUTS "${_PDF}") if(_HAS_CSV STREQUAL "1") list(APPEND _OUTPUTS "${PLOTS_DIR}/${_NAME}.csv") endif() add_custom_command( OUTPUT ${_OUTPUTS} COMMAND "${Python3_EXECUTABLE}" -m plots --data-dir "${DIPLOMA_DATA_DIR}" --out "${PLOTS_DIR}" --generate "${_NAME}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DEPENDS "${_FILE}" ${PLOTS_COMMON_DEPS} "${DIPLOMA_DATA_DIR}" COMMENT "Generating plot ${_NAME}" VERBATIM ) list(APPEND ALL_PLOT_PDFS ${_OUTPUTS}) endif() endif() endforeach() add_custom_command( OUTPUT ${SCENARIOS} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/commands.sh DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/commands.sh.in" "${DIPLOMA_DATA_DIR}" COMMENT "Generating scenarios" VERBATIM ) set(ALL_DRAWIO_PDFS "") foreach(_DRAWIO ${DRAWIO_FILES}) get_filename_component(_NAME "${_DRAWIO}" NAME_WE) set(_PDF "${DRAWIO_DIR}/${_NAME}.pdf") add_custom_command( OUTPUT "${_PDF}" COMMAND ${CMAKE_CURRENT_BINARY_DIR}/drawio.sh "${_DRAWIO}" "${_PDF}" DEPENDS "${_DRAWIO}" "${CMAKE_CURRENT_BINARY_DIR}/drawio.sh" COMMENT "Converting draw.io diagram ${_NAME}" VERBATIM ) list(APPEND ALL_DRAWIO_PDFS "${_PDF}") endforeach() add_custom_target(pdf_generate DEPENDS ${ALL_PLOT_PDFS} DEPENDS ${SCENARIOS} DEPENDS ${ALL_DRAWIO_PDFS} ) add_custom_target(pdf COMMAND ${LATEXMK_EXECUTABLE} ${MAIN_DOCUMENT} -r "${CMAKE_CURRENT_BINARY_DIR}/latexmkrc" ${SILENT_OPTIONS} ${LATEXMK_OPTIONS} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" BYPRODUCTS "${OUT_DIR}" "${AUX_DIR}" DEPENDS pdf_generate COMMENT "Building pdf with latexmk" ) add_custom_target(continuous COMMAND ${LATEXMK_EXECUTABLE} ${MAIN_DOCUMENT} -cd -r '${CMAKE_CURRENT_BINARY_DIR}/latexmkrc' ${LATEXMK_OPTIONS} -pvc -view=none WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DEPENDS pdf_generate COMMENT "Running latexmk in continuous preview mode" USES_TERMINAL ) So in general, the target continuous is built only if the target pdf_generate is built. The pdf_generate makes sure that all of the python side mathplotlib diagrams and drawio diagrams are converted to the pdf files so the main document that references them may be built. The latex knows about the location of produced pdfs by including this file that is generated by cmake: \newcommand{\lrtbuild}{@CMAKE_CURRENT_BINARY_DIR@} \newcommand{\lrtresources}{@LRT_RESOURCES_DIR@} \newcommand{\lrtdocument}{@LRT_DOCUMENT@} \newcommand{\plotpath}{@PLOTS_DIR@} % so to include the plot generated by plots/distribution.py you % call \includegraphics{\plotpaht/distribution.pdf} \newcommand{\scenariopath}{@SCENARIOS_DIR@} \newcommand{\drawiopath}{@DRAWIO_DIR@} Here is the .latexmkrc template for cmake: $bibtex = "@BIBTEX_COMPILER@ %O %S"; $dvips = "@DVIPS_CONVERTER@ %O -o %D %S"; $latex = "@LATEX_COMPILER@ %O %S"; $make = "@CMAKE_MAKE_COMMAND@"; $makeindex = "@MAKEINDEX_COMPILER@ %O -o %D %S"; $out_dir = "@OUT_DIR@"; $aux_dir = "@AUX_DIR@"; $pdf_mode = 1; $pdflatex = "@LUALATEX_COMPILER@ -shell-escape -file-line-error -interaction=nonstopmode %O %S"; $ps2pdf = "@PS2PDF_CONVERTER@ %O %S %D"; $compiling_cmd = "@CMAKE_COMMAND@ --build @CMAKE_CURRENT_BINARY_DIR@ --target pdf_generate"; The last line ensures that the cmake checks if all of the pdf files have generated. Also if the python files were changed after the last generation, it regenerates them. This latexmk option is very neat to be honest. The problem So if I edit and save any of the *.tex files the latexmk picks it up right away, but if I change the plots/*.py of data/*.drawio the files won't get regenerated. I have to either: Run cmake . to tell cmake to update the pdf files, and the latexmk sees that the files used in \includegraphics macro have changed and recompiles the document, but cmake wont generate all of the pdfs at once so latexmk may run couple of times wasting cpu. Just add newline to any of the *.tex files and save it after which the latexmk runs the compiling_cmd before the trying to build the document. It works without wasting the cpu (cause latexmk waits for the cmake to finish) but it is still manual work of letting latexmk know about the changes by changing *.tex sources. My ideas I would like to know how could make the latexmk pick up the changes (or creation of files) in data/*.drawio or plots/*.py? I can not provide the extra sources to the latexmk with the config variables in the .latexmkrc, so i guess i could add the dependencies from the latex itself (like the \input{}) but without showing the file contents. Lets assume that comman that does what I have described is called \depend{}. Then I could generate the latex source file with all the files that produce the graphics for my document and include it. If any of them get changed, then the latexmk will try to compile the document but before that it will run the compile_cmd that will regenerate the pdfs of the plots. This wont detect new plot generation script files but anyway its something. As was explained in the 'The problem', letting the latexmk detect changes itself is better approach because it will wait for the cmake to finish before trying to build the document. Reproducing I have uploaded the minimal example to my google drive. Download it, unzip and inside the diploma_minimal: cd build cmake -B . -S .. cmake --build . -t continuous the output pdf will be in diploma_minimal/out/document.pdf. You have to make the drawio and python as well as cmake executables available in the path. Also the python will require pathlib mathplotlib and argparse packages installed. Why it looks so complicated Worth to note the point of all this so called complications - the user should be able to change only one drawio or py file and don't have to wait for ALL of the diagrams to rebuild. In simple case without tracking of the producer-result-consumer this is unavoidable(been there, tried that. project grew and I just could not take it anymore). Because CMake implements the per-target check of the generated assets and also allows to generate them in parallel this is what I have came up with. To be hones I would like to see the latexmk-only implementation. sorry Sorry if I am inventing the wheel here, just don't judge me hard on this. I tried my best, and knowing how toxic the community of the stackexhange network can be I am bit afraid of criticism.

  • ltx-talk overlay and tcolorbox?
    by Richard Wong on June 8, 2026 at 3:25 pm

    I'm trying to modify the theorem environment in ltx-talk so that it visually resembles the theorem environment in beamer. I was able to do so using talkthemetcolorbox. However, my attempt breaks the uncover overlay specification in a way that I don't quite understand. (MWE example below) \DocumentMetadata{tagging = on} \documentclass[aspect-ratio=4:3]{ltx-talk} \usepackage{talkthemetcolorbox} %Create a custom tcolorbox style for theorems \newtcolorbox{mythmbox}[1]{ title=#1, boxrule=0pt, enhanced, } \newtheorem{theorem}{Theorem} \RenewDocumentEnvironment{theorem}{D<>{all} +m}{ \begin{uncoverenv}<#1> \begin{mythmbox}{Theorem (#2)} }{ \end{mythmbox} \end{uncoverenv} } \begin{document} \begin{frame} Text \pause \begin{theorem}<3->{Pythagoras} The square of the hypotenuse is equal to the sum of the squares of the other two sides: \[ a^2 + b^2 = c^2 \] \end{theorem} Text \end{frame} \end{document} The code above changes the theorem environment visually as I desire, but it doesn't have the intended uncover behavior. (e.g. I see the theorem on all three slides). However, the code does have the right visual theorem environment and respects the overlay if I replace uncoverenv with onlyenv. (e.g. I see the theorem only on slide 3, but the spacing on slide 2 is not what I desire). It also has the right uncover behavior, but the wrong visual theorem environment if I replace D<>{all} +m with d<>{all} +m. (e.g. I see the theorem only on slide 3 , and the spacing on slide 2 is right, but there is no tcolorbox).

  • Fermata symbol not working properly in tables
    by rensemil on June 8, 2026 at 2:04 pm

    I previously asked How to add fermata symbol to metre package? The symbol works fine now with two exceptions: There is too much space to the right of the new \fer symbol. The dot that is placed in the symbol is not in the proper position when the symbol is placed inside a table. Here is my MWE: \documentclass{article} \usepackage{metrix} \usepackage[en]{metre} \newcommand{\fer}{\kern0.15em\raisebox{0.07em}{\rotatebox{180}{\rlap{\kern0.3em\raisebox{0.07em}{\scalebox{0.5}{.}}}\b}}} \makeatletter \renewcommand{\rs@size@warning}[3]{\relax} \makeatother \newcommand{\que}[1]{{\footnotesize #1}} \Magnitudo{+1} \InterSigna{.6} \begin{document} This is text, \metra{\a\m\b\bm\fer\b\m}, blablabla. \begin{table} \begin{tabular}{c} \metra{\a\m\b\bm\fer\b\m} \end{tabular} \end{table} \begin{table}[h]\centering \begin{tabular}{cccccccccccccccc} tr7 & \metra{\m} & \metra{\a} & \metra{\m} & \metra{\a} & \metra{\m} & \metra{\a} & \metra{\m} & \metra{\a} & \metra{\m} & \metra{\b} & \metra{\fer} & \metra{\a} & \metra{\m} & \metra{\b} & \metra{\m} \\ \hline & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \end{tabular} \end{table} \end{document} Which produces this result: As you can see, the error only occurs in the second table, not the first. I only noticed this while writing the MWE but I still cannot trace the error. Thanks in advance for any help!

  • \mathtt style \approx in Horizontal spacing is bad
    by mathrm alpha on June 8, 2026 at 1:29 pm

    Why my new command \mathtt style \approx spacing is bad? The spacing is too cramped. \documentclass{article} \newcommand\ttapprox{\mathrel{\rlap{\raisebox{\fontdimen4\textfont2}{$\texttt{\textasciitilde}$}}\raisebox{-0.2\fontdimen22\textfont2}{$\texttt{\textasciitilde}$}}} \begin{document} $\ttapprox$ \end{document} The spacing is too large. \documentclass{article} \newcommand\ttapprox{\mathrel{\rlap{\raisebox{\fontdimen5\textfont2}{$\texttt{\textasciitilde}$}}\raisebox{-0.2\fontdimen22\textfont2}{$\texttt{\textasciitilde}$}}} \begin{document} $\ttapprox$ \end{document} However, this new command part unspported decimal point value in \fontdimen4.5, because LaTeX code will report an error. Reference command code: Four line equality

  • Hyperref and xindy with new hyperxindexformat
    by Francesco Endrici on June 8, 2026 at 1:13 pm

    I have a file written about 10 years ago that at the moment is not working on an updated Texlive2026 due to a problem with the new \hyperxindexformat command of hyperref. This is a mwe \documentclass{article} \usepackage{imakeidx} \makeindex[name=alfabetico,title=Indice alfabetico,program=truexindy,options=-M texindy -C utf8 -L italian -M xindystyle] \newcounter{mynum} \newcommand{\mystring}[1]{% \stepcounter{mynum} #1.\themynum \index[alfabetico]{#1|textit{\themynum}}} \usepackage{hyperref} \begin{document} \mystring{pear} \mystring{apricot} \pagebreak \mystring{apple} \printindex[alfabetico] \end{document} (of course my real command is not \textit 🙂 ) If I compile his with lualatex I get an .idx file like: \indexentry{pear|hyperxindexformat{\textit{1}}}{1} \indexentry{apricot|hyperxindexformat{\textit{2}}}{1} \indexentry{apple|hyperxindexformat{\textit{3}}}{2} and when I run the command xindy -M texindy -C utf8 -L italian -M xindystyle alfabetico.idx I receive the error WARNING: unknown cross-reference-class `hyperxindexformat'! (ignored) and no valid .ind file is generated. If I manually change hyperxindexformat to hyperindexformat I get what I want. Any idea? xindystyle.xdy follows: ;; $Id: xindystyle.xdy,v 0.1 2015_10_25 Endrici $ ;; Define all attributes appearing in your document. Your attributes ;; are all encapsulators you use in your \index commands following the ;; vertical bar sign `|'. For example `foo' is the attribute in the ;; command \index{...|foo}. Here you specify the set of attributes ;; that appear in your document, the order in which they appear in the ;; index and which one superdes the other. ;; (define-crossref-class "indexanchor") (markup-crossref-list :class "indexanchor" :open "\indexanchor{" :sep ";" :close "}" ) (markup-index :open "\begin{theindex}~n \providecommand*\lettergroupDefault[1]{} \providecommand*\lettergroup[1]{% \par\penalty-50\textbf{#1}\nopagebreak }" :close "~n~n\end{theindex}~n" :tree) ;; The indexentries (item_<..> specifiers) (markup-indexentry :open "~n \item " :depth 0) (markup-indexentry :open "~n \subitem " :depth 1) (markup-indexentry :open "~n \subsubitem " :depth 2) ;; Location-references (markup-locclass-list :open "\dotfill" :sep ", ") (markup-crossref-layer-list :class "see" :sep ", ") ;; delim_n <string> ", " (markup-locref-list :sep "," :class "see") ;; delim_r <string> "--" (markup-range :sep "--") ;; Local Variables: ;; mode: lisp ;; End :

  • ⅌ apply in tikz text symbols?
    by mathrm alpha on June 8, 2026 at 11:58 am

    The original drawing instructions in ⅌: \documentclass{article} \usepackage{tikz} \usepackage[margin=0.5in]{geometry} \begin{document} \centering \begin{tikzpicture}[scale=2] % The stylized symbol is a calligraphic character, likely a script 'P' or 'V' with an ellipse. % We recreate it using thick paths and curves. % 1. The horizontal ellipse \draw[line width=6pt] (0.4, 0) ellipse (2.2 and 0.7); % 2. The main "U" shape (the stems) % Left stem starts from the flourish, goes down, curves at the bottom, and goes up to form the right stem. \draw[line width=14pt, line cap=round] (-0.6, 1.5) .. controls (-0.6, -3.2) and (0.6, -3.2) .. (0.6, 1.5); % 3. The flourish on the top left % A decorative hook and a small "bud" on top of the left stem. \draw[line width=14pt, line cap=round] (-0.6, 1.5) .. controls (-1.8, 2.8) and (-3.0, 1.5) .. (-2.2, 1.2); \fill (-0.5, 1.9) circle (0.25); % 4. The large loop on the right (completing the 'P' shape) % It starts from the top of the right stem, loops over to the right, and curves back down. \draw[line width=14pt, line cap=round] (0.6, 1.5) .. controls (0.6, 4.2) and (3.5, 3.2) .. (3.5, 0.5) .. controls (3.5, -0.8) and (2.5, -1.2) .. (1.8, -1.0); \end{tikzpicture} \end{document} However, after reading his/her command usage, This convert to can typed ⅌ text symbols method doesn't seem to work for multiple overlapping shapes in tikz (or maybe I just don't know how to use it). Is there better method to declare tikz picture with proper baseline and fontsize?

  • Why are Parts not appearing in the Table of Contents when I suppress their number with *? [closed]
    by Joanna Bryson on June 8, 2026 at 9:52 am

    I have parts clustering chapters in my books, and the \part command works fine for creating a sort of a title page for each part, but the parts weren't showing up in my ToC. All the (few) discussions of this I can find on the Internet are about changing how the Parts are formatted in the ToC but I don't care about that; I just want them to show up at all. The package documentation e.g. for tocloft certainly indicates they should be there by default. Is it possible some other package I'm using is suppressing them? Edit: I figured out that if I changed it from \part*{ to just \part{ they are in the ToC, but I have chapters (e.g. Acknowledgements) with * and they are in the ToC fine :-/ It is probably a stupid thing in my documentclass \documentclass[ebook,9pt,openany]{memoir} so maybe not worth fixing since I'm expecting someone more professional to reformat that later, but I leave this here for others.

  • \DeclareMathOperator doesn't working in math-fonts formating
    by mathrm alpha on June 8, 2026 at 9:14 am

    When I set \DeclareMathOperator to a word mathematical character, it will always only support the Roman style. What's the difference between \mathrm and \operatorname? Although there are differences, they all maintain the same fixed \mathrm style. \documentclass{article} \usepackage{amsmath} \DeclareMathOperator{\mathtest}{mathtest} \begin{document} $\mathtest,\ \mathbf{\mathtest},\ \mathsf{\mathtest},\ \mathtt{\mathtest}$ \end{document} However, when there is only one character, it can be set to math-font formatting. \documentclass{article} \usepackage{amsmath} \DeclareMathSymbol{\m}{\mathalpha}{operators}{`m} \DeclareMathSymbol{\h}{\mathalpha}{operators}{`h} \begin{document} $\m\h,\ \mathbf{\m\h},\ \mathsf{\m\h},\ \mathtt{\m\h}$ \end{document} However, when I try these modified LaTeX codes again, an error message pops up. \documentclass{article} \usepackage{amsmath} \DeclareMathSymbol{\mathtest}{\mathalpha}{operators}{`m`a`t`h`t`e`s`t} \begin{document} $\mathtest,\ \mathbf{\mathtest},\ \mathsf{\mathtest},\ \mathtt{\mathtest}$ \end{document} LaTeX Error: Missing \begin{document}. While this works, the LaTeX code is very messy. \documentclass{article} \usepackage{amsmath} \DeclareMathSymbol{\ml}{\mathalpha}{operators}{`m} \DeclareMathSymbol{\al}{\mathalpha}{operators}{`a} \DeclareMathSymbol{\tl}{\mathalpha}{operators}{`t} \DeclareMathSymbol{\hl}{\mathalpha}{operators}{`h} \DeclareMathSymbol{\el}{\mathalpha}{operators}{`e} \DeclareMathSymbol{\st}{\mathalpha}{operators}{`s} \newcommand{\mathtest}{\ml\al\tl\hl\tl\el\st\tl} \begin{document} $\mathtest,\ \mathbf{\mathtest},\ \mathsf{\mathtest},\ \mathtt{\mathtest}$ \end{document}

  • How can xeCJK expand its support to include "new standard Unihan characters"?
    by mathrm alpha on June 8, 2026 at 8:52 am

    The font is available as long as you type something like U+323B0, but xeCJK does not provide the newer CJK font standard (for example: CJK Unified Ideographs Extension J standard in Unicode 17.0). \documentclass{article} \usepackage{xeCJK} \setCJKmainfont{Jigmo3.ttf} \begin{document} xeCJK: \symbol{"323B0}\\ fontspec: \fontspec{Jigmo3.ttf}{\symbol{"323B0}} % U+323B0 Must force the display using fontspec. \end{document}

  • Example of how to set up a custom tagged structure
    by David Purton on June 8, 2026 at 3:29 am

    I'm trying to learn how to set up tagging for a document with a custom structure. For example, consider a document containing a quotation from the Bible. This has built in structure with things like chapters, verses, (potentially headings), different layouts, and maybe a reference at the end. At a minimum, I need to use the new block code to set up the blocks. But I'm guessing I also need to tag other elements like chapters and verses. But there's still minimal examples out there of how to do all this. If I want to to support tagging in my scripture package, I need to make good design decisions up front. And I don't really know what I'm doing. Here's a MWE example showing a basic structure for a quote from the Bible along with my best guesses relating to tagging. I'm interested in knowing if I'm on the right track or not, things that should be done differently or anything else to be aware of. MWE \DocumentMetadata{ lang=en, pdfstandard=ua-2, tagging=on } \documentclass{article} \pagestyle{empty} \DeclareInstance{blockenv}{scripture/main}{std} { , name = scripture/main , transparent-level = true , max-inner-levels = 0 , block-instance = scripture/main } \DeclareInstance{block}{scripture/main-1}{std} { , begin-vspace = 0pt , begin-extra-vspace = 0pt , left-margin = 0pt , right-margin = 0pt , para-indent = \parindent } \DeclareInstance{blockenv}{scripture/poetry}{std} { , name = scripture/poetry , transparent-level = true , max-inner-levels = 0 , block-instance = scripture/poetry , tagging-suppress-paras = true , final-code = \obeylines\ignorespaces } \DeclareInstance{block}{scripture/poetry-1}{std} { , begin-vspace = \medskipamount , begin-extra-vspace = 0pt , left-margin = 2em , right-margin = 0pt } \NewDocumentEnvironment{scripture}{o} {\SimpleBlockEnv{scripture/main}{}} { \IfNoValueF{#1}{% \par \reference{#1}}% \BlockEnvEnd } \NewDocumentEnvironment{poetry}{!O{}} {\SimpleBlockEnv{scripture/poetry}{#1}} {\BlockEnvEnd} \NewStructureName{scripture/reference} \AssignStructureRole{scripture/reference}{Span} \NewStructureName{scripture/chapter} \AssignStructureRole{scripture/chapter}{Span} \NewStructureName{scripture/verse} \AssignStructureRole{scripture/verse}{Span} \NewDocumentCommand\reference{m} {% \begingroup \leavevmode \UseTaggingSocket{inline/begin}{tag=\UseStructureName{scripture/reference}}% \hfill\textbf{(#1)}% \UseTaggingSocket{inline/end}% \endgroup } \NewDocumentCommand\ch{m} {% \begingroup \leavevmode \UseTaggingSocket{inline/begin}{tag=\UseStructureName{scripture/chapter}}% \textbf{#1}\kern0.5em% \UseTaggingSocket{inline/end}% \endgroup } \NewDocumentCommand\vs{m} {% \begingroup \leavevmode \UseTaggingSocket{inline/begin}{tag=\UseStructureName{scripture/verse}}% \textsuperscript{#1}% \UseTaggingSocket{inline/end}% \endgroup } \begin{document} \begin{scripture}[Book 1:1--5] \ch{1}A chapter start. \vs{2}A verse. A paragraph. \begin{poetry} \vs{3}A line Another line \vs{4}A line Another line \end{poetry} \vs{5}Another verse. \end{scripture} \end{document} Here's the output from show-pdf-tags: Document (http://iso.org/pdf2/ssn): └─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): └─Div (http://iso.org/pdf2/ssn): ├─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): │ └─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ ┝━━Attributes: │ │ └/Layout: │ │ └TextAlign: "Justify" │ ├─Span (http://iso.org/pdf2/ssn): │ │ └─Marked content on page 1: 1 │ ├─Marked content on page 1: A chapter start. │ ├─Span (http://iso.org/pdf2/ssn): │ │ └─Span (http://iso.org/pdf2/ssn): │ │ ┝━━Attributes: │ │ │ └/Layout: │ │ │ └TextPosition: "Sup" │ │ └─Marked content on page 1: 2 │ └─Marked content on page 1: A verse. ├─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): │ └─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ ┝━━Attributes: │ │ └/Layout: │ │ └TextAlign: "Justify" │ └─Marked content on page 1: A paragraph. ├─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): │ └─Div (http://iso.org/pdf2/ssn): │ ├─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ │ ┝━━Attributes: │ │ │ └/Layout: │ │ │ └TextAlign: "Justify" │ │ ├─Span (http://iso.org/pdf2/ssn): │ │ │ └─Span (http://iso.org/pdf2/ssn): │ │ │ ┝━━Attributes: │ │ │ │ └/Layout: │ │ │ │ └TextPosition: "Sup" │ │ │ └─Marked content on page 1: 3 │ │ └─Marked content on page 1: A line │ ├─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ │ ┝━━Attributes: │ │ │ └/Layout: │ │ │ └TextAlign: "Justify" │ │ └─Marked content on page 1: Another line │ ├─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ │ ┝━━Attributes: │ │ │ └/Layout: │ │ │ └TextAlign: "Justify" │ │ ├─Span (http://iso.org/pdf2/ssn): │ │ │ └─Span (http://iso.org/pdf2/ssn): │ │ │ ┝━━Attributes: │ │ │ │ └/Layout: │ │ │ │ └TextPosition: "Sup" │ │ │ └─Marked content on page 1: 4 │ │ └─Marked content on page 1: A line │ └─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ ┝━━Attributes: │ │ └/Layout: │ │ └TextAlign: "Justify" │ └─Marked content on page 1: Another line ├─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): │ └─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): │ ┝━━Attributes: │ │ └/Layout: │ │ └TextAlign: "Justify" │ ├─Span (http://iso.org/pdf2/ssn): │ │ └─Span (http://iso.org/pdf2/ssn): │ │ ┝━━Attributes: │ │ │ └/Layout: │ │ │ └TextPosition: "Sup" │ │ └─Marked content on page 1: 5 │ └─Marked content on page 1: Another verse. └─text-unit (https://www.latex-project.org/ns/dflt) / Part (http://iso.org/pdf2/ssn): └─text (https://www.latex-project.org/ns/dflt) / P (http://iso.org/pdf2/ssn): ┝━━Attributes: │ └/Layout: │ └TextAlign: "Justify" └─Span (http://iso.org/pdf2/ssn): └─Marked content on page 1: (Book 1:1–5) Out the PDF output:

  • How to place the `pic` in a recursive layer order more elegantly?
    by Explorer on June 7, 2026 at 2:06 pm

    What I want to replicate is something as below: My very first (failed) attempt is as below: \documentclass[tikz,border=5pt]{standalone} \definecolor{myyellow}{RGB}{224,239,158} \definecolor{myteal}{RGB}{47,89,85} \begin{document} \begin{tikzpicture}[ cover/.style={line width=3pt,myyellow,fill=myteal}, myrect/.pic={\draw[cover] (0,0) rectangle (3,3) --cycle;} ] \foreach \i in {0,45,...,315} {\pic[rotate=\i] {myrect};} % \foreach \i in {0,10,...,350} {\pic[rotate=\i] {myrect};} \end{tikzpicture} \end{document} The last layer's order should be at the behind of the first one, which is not easy to be handle within the forloop \pic. Here below is my workaround: \documentclass[tikz,border=5pt]{standalone} \definecolor{myyellow}{RGB}{224,239,158} \definecolor{myteal}{RGB}{47,89,85} \begin{document} \tikzset{cover/.style={line width=3pt,myyellow,fill=myteal},myrect/.pic={\draw[cover] (0,0) |- (3,3) --++(0,-\fpeval{3*(2-sqrt(2))}) --(45:3)--cycle;}} \begin{tikzpicture} \pic{myrect}; \end{tikzpicture} \begin{tikzpicture} \foreach \i in {0,45,...,315} {\pic[rotate=\i] {myrect};} % \foreach \i in {0,10,...,350} {\pic[rotate=\i] {myrect};} \end{tikzpicture} \end{document} However, if I want to extend the angle step: \foreach \i in {0,10,...,350} {\pic[rotate=\i] {myrect};} that is not quite easy to get the code: \draw[cover] (0,0) |- (3,3) --++(0,-\fpeval{3*(2-sqrt(2))}) --(45:3)--cycle; exactly, the ++(0,-\fpeval{3*(2-sqrt(2))}) here. Any suggestions to solve the layer order issues?

  • spacing is too tight inside \begin{array} using stix2 font. OK using default CM font. How to improve?
    by Nasser on June 7, 2026 at 1:14 pm

    This math is auto-generated by CAS. When using stix2 font, with lualatex, the letters on two rows of array are almost touching each others, making it little hard to read. Here is MWE. \documentclass[12pt]{article} \usepackage{amsmath} \usepackage{unicode-math} \setmainfont{STIX Two Text} \setmathfont{STIX Two Math} \begin{document} Since $n\neq -2$ then the solution of the reduced Riccati ode is given by \begin{align*} w & =\sqrt{x}\left\{ \begin{array}[c]{cc} c_{1}\operatorname{BesselJ}\left( \frac{1}{2k},\frac{1}{k}\sqrt{ab} x^{k}\right) +c_{2}\operatorname{BesselY}\left( \frac{1}{2k},\frac{1}% {k}\sqrt{ab}x^{k}\right) & ab>0\\ c_{1}\operatorname{BesselI}\left( \frac{1}{2k},\frac{1}{k}\sqrt{-ab}% x^{k}\right) +c_{2}\operatorname{BesselK}\left( \frac{1}{2k},\frac{1}% {k}\sqrt{-ab}x^{k}\right) & ab<0 \end{array} \right. \tag{1}\\ y & =-\frac{1}{b}\frac{w^{\prime}}{w}\nonumber\\ k &=1+\frac{n}{2}\nonumber \end{align*} \end{document} lualatex gives Notice how the bottom of 1/2k in first line is almost touching the letters on the second line. This is not the case with other fonts I tried: Removing the 3 lines so it now uses default CM font \usepackage{unicode-math} \setmainfont{STIX Two Text} \setmathfont{STIX Two Math} and compiling again, this is the result And replacing the 3 lines with this to try mlmodern \usepackage[T1]{fontenc} \usepackage{mlmodern} \DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n} This is the result I can't change the code itself. But why stix2 lines seem to be too close to each others making it little hard to read. Is this just the nature of the stix2 font? Is there something one can add to preamble to help with this? TL 2026, Linux.

  • convex glyphs in LaTeX symbols
    by mathrm alpha on June 7, 2026 at 11:03 am

    Does LaTeX have a for Glyphs to deform and convex from a specified glyphs? Because amssymb's \mathfrak symbols do not have other symbols. \documentclass{article} \usepackage{amssymb} \begin{document} $\mathfrak{ABC\Gamma\Delta\Theta}$ \end{document} It should be like this (is convex glyphs)

  • Why unicode-math \symbb not fully mathbb symbols glyphs
    by mathrm alpha on June 7, 2026 at 10:00 am

    Because I discovered that although unicode-math contains bbold bb glyphs, it only includes Unicode letters / only Greeks. \documentclass{article} \usepackage{unicode-math} \begin{document} $\symbb{\Gamma\Delta}$ \end{document} When I used LaTeX new code again, I encountered a LaTeX time compilation exception. \documentclass{article} \usepackage{unicode-math,bbold} \renewcommand{\symbb}[1]{\mathbb{#1}} \begin{document} $\symbb{\Gamma\Delta}$ \end{document} But it should display to (but it doesn't display as bbold full \symbb glyph symbols in unicode-math):

  • How to make new combining below letters in LaTeX
    by mathrm alpha on June 7, 2026 at 9:04 am

    I tried this command, but vertical spacing is bad; Even using part in $^\star$. \documentclass{article} \usepackage{amsmath} \makeatletter \long\def\bs#1{% {\mathop {#1}\limits _{\vbox to-1.4\ex@ {\kern -\tw@ \ex@ \hbox {\normalfont $^\star$}\vss }}}% } \makeatother \begin{document} $\bs{A}$ \end{document} Although there are similar posts, none mention accent below only. How to denote the fifth derivative in Newton’s notation? How to create a new accents notation

  • Using vertical fill produces lines at end of page and beginning of the next with longtable
    by mathbekunkus on June 7, 2026 at 2:11 am

    Here's my code: \documentclass[12pt,a4paper]{article} \usepackage[margin=2cm]{geometry} \usepackage{booktabs} \usepackage{longtable} \usepackage{xcolor} \usepackage{colortbl} \usepackage{chngcntr} \begin{filecontents}[overwrite]{tabula_x} \begin{longtable}{cccc} \multicolumn{4}{c}{In subsection \thesubsection}\\ \toprule \multicolumn{4}{c}{\ifodd\value{subsection} Odd \else Even \fi \hspace*{\fill} Here now!} \\ \endfirsthead \midrule \endhead \midrule \endfoot first & second & third & fourth \\\hline 9.060583 & 3.099301 & 1.304659 & 2.966522 \\ 7.099018 & 6.419018 & 6.834728 & 4.852705 \\ 4.187040 & 2.068783 & 4.898241 & 1.763889 \\ 5.016939 & 10.477702 & 8.975654 & 10.002336 \\ 2.277892 & 6.871933 & 8.414864 & 6.467176 \\ 6.563823 & 9.796346 & 1.875647 & 4.106242 \\ 2.160430 & 3.672068 & 2.165029 & 3.392034 \\ 1.440084 & 10.498921 & 2.728627 & 9.182959 \\ 3.610660 & 1.754062 & 7.281674 & 6.254935 \\ 5.419606 & 3.844363 & 6.129970 & 5.719383 \\ 6.901397 & 2.455204 & 8.342956 & 5.032185 \\ 7.047981 & 6.455106 & 2.105076 & 2.397603 \\ 4.438281 & 6.507701 & 4.445317 & 9.151459 \\ 3.297900 & 4.430763 & 7.793719 & 8.457399 \\ 8.666209 & 2.878122 & 9.074786 & 6.709299 \\ \end{longtable} \end{filecontents} \begin{document} \title{Bombastic Title} \author{Nobody} \date{Many years ago} \maketitle \section{Free} \subsection{Uno} \input{tabula_x} \vspace*{\fill} \subsection{Dos} \input{tabula_x} \vspace*{\fill} \subsection{Tres} \input{tabula_x} \vspace*{\fill} \subsection{Cuatro} \input{tabula_x} \vspace*{\fill} \end{document} These two lines are produced by the above code, at the end of the first page and start of the second: It gets even weirder if I comment out \endfirsthead: I need this 'preamble' (the first 8 lines after \begin{longtable}) for the longtable. In this example I'm using the same table, but in reality the number of rows may vary. The tables used in \input are produced automatically and as read-only, so the longtable cannot be replaced by another environment, nor the 'preamble' edited (the code producing the tables may be, in any case). The point is that I need both table and subsection to pass to the next page if they don't fit in the current page, that's why I used \vspace*{\fill}. Is there another way of doing this? Does \vspace interfere with longtable? As I said, the code producing the tables may be edited (not my code, BTW), so a solution involving tinkering with the table code is possible, except for the constraint of using longtable, which is a must. Apart from a solution (i.e. removing those lines) I'd like to understand why this happens. I know longtable is supposed to break tables along pages, but I don't understand why the 'preamble' produces the above pictures. EDIT: Just to be absolutely clear as to what I'm aiming for, this is what the document looks like if I remove the longtable preamble: I do need tables and subsection titles to go to the next page if they don't fit in the current one. (/EDIT) Thanks!

  • how to apply all arabic mathemticals alphabetics symbols in TeX Math? [closed]
    by ek opog on June 7, 2026 at 12:52 am

    Take a look at the picture below: i like arabic! Just what I'm going to use arabic alphabet! أحب اللغة العربية! سأستخدم الأبجدية العربية! PDF: https://www.unicode.org/charts/PDF/U1EE00.pdf

  • Is luaotfload now in l3kernel?
    by rallg on June 6, 2026 at 10:53 pm

    Lualatex, TeXlive 2026, Linux. Compiling via command line. Technical question. MWE: \documentclass{article} %% Compile with lualatex. \usepackage{fontspec} \setmainfont{LibertinusSerif} %% Or any OpenType font. \begin{document} Hello, World. \end{document} Even though \fontspec requires packages xparse and luaotfload, I do not see those files included in either the Terminal output, or the log file. But obviously they are used. The same with fontenc if using only OpenType with UTF-8. In fact, I can comment-out the associated \RequirePackage lines in the various fontspec files, and all is good. I recall reading that xparse has been in the l3kernel (or related files) for several years. I can see why fontenc is not needed for the situation here. My question: Is it the case that luaotfload is now in the l3kernel when lualatex is the compiler? How I discovered this: Using my own custom document class, I experimented (cargo cult) with code that invoked luaotfload, but forget to \RequirePackage{luaotfload}. Nevertheless, my code worked, just as if I had loaded the package.

  • Spacing between the last line of a paragraph inside minipage and the first line of next paragraph
    by Mikey on June 6, 2026 at 5:17 pm

    Hello, I want to understand the spacing after a minipage. As you can see in the image, after a minipage, it doesn't behave like two normal paragraphs. Please help me understand What does that space (marked '??' in the image) consist of? Is there anyway to make it automatically behave like two normal paragraphs or I can only fix it manually by adding \vspace? Thank you! Here is the MWE: \documentclass[12pt, a4paper]{article} \usepackage[ top = 1.6cm, bottom = 1.6cm, left = 1.8cm, right = 1.8cm ]{geometry} \setlength{\parskip}{10pt} \setlength{\parindent}{0pt} \linespread{1.2} \usepackage{enumitem} \setlist[enumerate, 1]{ label=\textit{\alph*.}, parsep=0pt, topsep=0pt, partopsep=0pt, itemsep=10pt } \begin{document} This is a plain text whose sole purpose is for the reader and composer of this document to see how the lines of text are spaced and to test the various spacing parameters that LaTeX offers. This text needs to be a little bit longer so I am currently typing nonsense. This is a plain text whose sole purpose is for the reader and composer of this document to see how the lines of text are spaced and to test the various spacing parameters that LaTeX offers. This text needs to be a little bit longer so I am currently typing nonsense. \begin{minipage}[t]{0.75\linewidth} \setlength{\parskip}{12pt} \setlength{\parindent}{0pt} This is a plain text paragraph that is inside a minipage, followed by an enumerate environment (in a separate paragraph). The list has its \textbackslash parsep, \textbackslash partopsep and \textbackslash topsep all set to 0pt. Look at the space between the last line of this paragraph and the first item of the list. What does it consist of? How do I make it exactly the same as one \textbackslash parskip? \end{minipage}\hfill \begin{enumerate} \item The first item of the long list of items. \item The second item of the long list of items. \item The third item of the long list of items. \end{enumerate} This is a plain text paragraph, followed by an enumerate environment (in a separate paragraph). The list has its \textbackslash parsep, \textbackslash partopsep and \textbackslash topsep all set to 0pt. Look at the space between this line and the first item below. It should be exactly one \textbackslash parskip, right? \begin{enumerate} \item The first item of the long list of items. \item The second item of the long list of items. \item The third item of the long list of items. \end{enumerate} \end{document}

  • double or triple ring above combining in math mode
    by mathrm alpha on June 6, 2026 at 11:03 am

    Since I found \ddot{A} and \dddot{A}, can I create \rring{A} or \rrring{A}, that is, a double ring, and a triple ring like Å but with two or three extra dots? There seems to be a usage like this: How to denote the fifth derivative in Newton’s notation?, However, I tried a similar usage(by adding \scriptscriptstyle), but many error messages popped up. \documentclass{article} \usepackage{amsmath} \makeatletter \long\def\rring#1{% {\mathop {#1}\limits ^{\vbox to-1.4\ex@ {\kern -\tw@ \ex@ \hbox {\normalfont {\scriptscriptstyle \circ\!\circ}}\vss }}}% } \long\def\rrring#1{% {\mathop {#1}\limits ^{\vbox to-1.4\ex@ {\kern -\tw@ \ex@ \hbox {\normalfont {\scriptscriptstyle \circ\!\circ\!\circ}}\vss }}}% } \makeatletter \begin{document} $\rring{A}\rrring{a}$ \end{document} The error message is as below: ! Missing $ inserted. <inserted text> $ l.19 $\rring{A} \rrring{a}$ ?

  • stix2, emacs/auctex and TeXShop 'degree' oddity
    by sgmoye on June 6, 2026 at 10:44 am

    With the following code (TeXLive 2026, Mac OS 26.5.1): \documentclass{article} %\usepackage{fontspec} \usepackage{stix2} %\setmainfont{STIX Two Text} \begin{document} \thispagestyle{empty} Some text and a use of the \textbf{degree} symbol: 50° or 50\char"00B0 \end{document} this is the output (emacs 30.2 and TeXShop): Something odd is happening to the degree symbol. Adding fontspec.sty: \documentclass{article} \usepackage{fontspec} \usepackage{stix2} \setmainfont{STIX Two Text} \begin{document} \thispagestyle{empty} Some text and a use of the \textbf{degree} symbol: 50° or 50\char"00B0 \end{document} produces this output: The degree symbol is correct, but the bold type is missing (same in TeXShop). Apple has helpfully (?) included TTF versions of STIX Two in /System/Library/Fonts/Supplemental/ (a locked directory). Adding the OTF versions of the STIX fonts to ~/Library/Fonts/ does not seem to change anything. I'm preparing some documentation for a package and would like to fix this. Update Using lualatex and the code provided by egreg: \documentclass{article} \usepackage{fontspec} \usepackage{stix2} \setmainfont{STIX Two Text} \begin{document} \thispagestyle{empty} Some text and a use of the\textbf{degree} symbol: 50° or 50\char"00B0 \end{document} There is a warning: LaTeX Font Warning: Font shape `TU/STIXTwoText(0)/b/n' undefined (Font) using `TU/STIXTwoText(0)/m/n' instead on input line 12. Moreover, luaotfload complains that "Font "STIX Two Math" not found." All the STIX Two fonts are installed in ~/Library/Fonts/ This is a completely novel problem for me.

  • pdfLaTeX sansmathfonts style custom to \mathsf full-working symbols style command
    by mathrm alpha on June 6, 2026 at 2:28 am

    I want some mathematical symbols to be sans-serif, but I don't need to apply sansmathfonts to every only letter. I just want a command that recommends applying \mathsf to mathematical symbols completely. Although \sfmath or \sansmath exist, not all symbols work in sans-serif style. \documentclass{article} \usepackage{sfmath} \begin{document} $\sum\alpha ABCabc$\\ or \documentclass{article} \usepackage{sansmath} \begin{document} {\sansmath $\sum\alpha ABCabc$}\\ \end{document} It's not that there's a difference, it's just that the mechanisms are the same and haven't changed. \sum or \alpha However, it would be ideally designed to have can typed custom \mathsf working symbols in sansmathfonts style + only normal \mathrm or other \mathbf style. (in the sansmathfonts usage, the command is used font command.) If possible, in the concept of \sansmathfonts, command-used fonts take precedence, and letters with an upright style would be even better, and would also be closer to the native \mathsf but extension symbols.

  • How to type \symfrak{\imath} glyphs?
    by mathrm alpha on June 5, 2026 at 2:01 pm

    While browsing NewCMMath on FontForge, I suddenly saw dotless i/j in other math fonts "example: \symbb, \symscr, \symfrak", but there was no Unicode standard. Typing unicode-math in LaTeX didn't produce any results. \documentclass{article} \usepackage{unicode-math} \setmathfont{NewCMMath-Book.otf} \begin{document} $\symbb{\imath\jmath}\symscr{\imath\jmath}\symfrak{\imath\jmath}$ \end{document}

  • How to get this angle symbol?
    by BlueNight on June 5, 2026 at 11:59 am

    I would like to reproduce the angle symbol in the picture below, but I don't know how. I found this similar question (How can I do this angle symbol?), but the symbol asked there is somewhat different than the one I want (notice that the arc in that question is way bigger than the one in my picture). The answer provided there produces that symbol, but I don't see a way to modify that code so that it would produce something closer to my symbol.

  • Some kinds of Multiplication tables
    by Vanellope on June 3, 2026 at 5:43 am

    Recently, I came across a multiplication table in Visual Group Theory (Fig. 4.6). I tried to reproduce it, including asking AI assistants (ChatGPT, Claude), but without success. It seems that AI struggles to handle the subtle blanks in this table. I believe TikZ could produce something similar, but the result would feel unnatural. Is it possible to construct this in the form of a table? The closest result I've achieved so far is as follows. It uses the package nicematrix . \documentclass{article} \usepackage{nicematrix} \usepackage{tikz} \usepackage{amsmath} \begin{document} \begin{NiceTabular}{c*{4}{c}}[ hvlines, corners = NW, ] & $N$ & $R$ & $B$ & $RB$ \\ $N$ & $N$ & $R$ & $B$ & $RB$ \\ $R$ & $R$ & $N$ & $RB$ & $B$ \\ $B$ & $B$ & $RB$ & $N$ & $R$ \\ $RB$ & $RB$ & $B$ & $R$ & $N$ \\ \end{NiceTabular} \end{document} The book also contains more intricate tables of this kind(same elements have a same color), and I'm curious how those might be reproduced as well.