Como obter \ Box como símbolo com XeLaTeX
A fonte abaixo, quando processada com pdflatexproduz o símbolo matemático mostrado aqui:
Mas se eu processar a fonte com xelatex, recebo o erro:
./unitsquare.tex:26: LaTeX Error: Command \Box not provided in base LaTeX2e.
Pergunta: Como posso obter esse símbolo xelatexcom as fontes em uso para isso?
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage{amsmath} % avoid \dddot clash
\usepackage{mathtools} % avoid unicode-math clash
\usepackage{amsthm} % avoid openbox clash
\usepackage{iftex}
\ifTUTeX
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}[Scale=1.0]
\defaultfontfeatures{Scale=MatchLowercase, Ligatures=TeX}
\setmathfont{TeX Gyre Termes Math}
\else
\usepackage{newtxtext}
\usepackage{newtxmath}
\fi
\usepackage{scalerel}
\newcommand{\unitsq}{\mathord{\scalerel*{\Box}{X}}}
\begin{document}
The unit square is denoted by $\unitsq$.
\end{document}
Relacionado: Como digitar esses "círculo" e "quadrado"?
Respostas
Você pode ter a impressão de que pode preparar um documento compilado com pdflatexe xelatex. Isso não é verdade, receio.
De qualquer forma, o símbolo que você provavelmente está procurando \lgwhtsquarecorresponde a U + 2B1C WHITE LARGE SQUARE, que infelizmente não está disponível no TeX Gyre Termes Math ou \mdlgwhtsquare, correspondendo a U + 25A1 WHITE SQUARE.
Se quiser dimensionar o símbolo até a altura de uma letra maiúscula, você pode usar graphicx(ou scalerel, se preferir).
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsthm}
\usepackage{graphicx}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\newcommand{\unitsq}{\text{\resizebox{!}{\fontcharht\font`X}{$\mdlgwhtsquare$}}}
\begin{document}
The unit square is denoted by $\unitsq$.
\end{document}
Uma tentativa de obter um documento “universal”:
\documentclass{article}
\usepackage{iftex}
\usepackage{mathtools}
\usepackage{amsthm}
\usepackage{graphicx}
\iftutex
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\else
\usepackage[T1]{fontenc}
\usepackage{newtxtext,newtxmath}
\fi
\iftutex
\newcommand{\unitsq}{\text{\resizebox{!}{\fontcharht\font`X}{$\mdlgwhtsquare$}}}
\else
\newcommand{\unitsq}{\text{\resizebox{!}{\fontcharht\font`X}{$\Box$}}}
\fi
\begin{document}
The unit square is denoted by $\unitsq$.
\end{document}
Com pdflatexeu consigo
Por que o LaTeX hesita \Box? Porque você precisa amssymbdele, a menos que um pacote de fontes newtxmathforneça por si só os símbolos AMS. E não, unicode-mathnão fornece \Box. Talvez devesse ...
Se você preferir ter um quadrado maior do que o TeX Gyre Termes Math, você pode pegar um emprestado de outra fonte matemática.
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
\setmathfont{STIX Two Math}[
range=\lgwhtsquare,
Scale=MatchUppercase ]
\newcommand\unitsq{\lgwhtsquare}
\begin{document}
The unit square is denoted by $\unitsq$.
\end{document}
Existem inúmeros quadrados brancos em unicode-math, incluindo \lgwhtsquare, \mdlgwhtsquare, \mdwhtsquare, \mdsmwhtsquaree \smwhtsquare. Se nenhum deles tiver o tamanho exato que você deseja, você pode até carregar qualquer um deles com uma Scale=opção ajustada .