Como posso usar unicode nesta condição?

Como posso usar unicode nesta condição?

Não entendo como obter ▼ (U+25BC; triângulo preenchido e invertido) no meu arquivo XeLaTeX. As linhas a seguir fazem parte do meu XeLaTeX que parece relevante para este problema. Desejo modificar o arquivo para obter ▼ (U+25BC; triângulo preenchido e invertido), mas não avança. Suponho que muitos pacotes estejam lutando entre si no arquivo. Eu ficaria muito grato se você gentilmente compartilhasse algum bom remédio para este caso.

Quanto à sua informação, estou usando o TeXShop versão 4.31 (XeLaTeX) baseado no MacBook Pro. Devo usar letras inglesas, sânscritas, tibetanas e chinesas tradicionais neste arquivo.

\usepackage{polyglossia, fontspec, xunicode} 
\usepackage[Apara, Bpara,Cpara]{ednotes} 
\usepackage{setspace}
\setmainlanguage{english}
\setotherlanguages{sanskrit}
\usepackage{xeCJK}

\setCJKsansfont[Path=/Users/XXX/Library/Fonts/]{NotoSerifCJK.ttc}

\usepackage{ucs} 
\usepackage[utf8x]{inputenc}
\usepackage{textcomp} 

\DeclareUnicodeCharacter{"2100}{\textcelsius}
\DeclareUnicodeCharacter{"2103}{\textcelsius}
\DeclareUnicodeCharacter{"25BC}{\textcelsius}

%%%%%Sigla and Symbols
\usepackage{enumitem}
\usepackage{setspace}
\usepackage{ltablex}

%%%%%critical_apparatus
\usepackage{bbding}
\usepackage{ulem}
\usepackage{xstring}
\usepackage{ifthen}
\usepackage{wasysym} %This line is related to \astrosun ⊙

\begin{document}

\char "2100\relax

\char "2103\relax

\char "25BC\relax

\end{document}

Responder1

Aqui está um MWE simplificado:

\documentclass{standalone}
\usepackage{polyglossia} % Includes fontspec
\usepackage{newunicodechar}

\defaultfontfeatures{Scale=MatchUppercase}

\setmainlanguage{english}
\setotherlanguage{sanskrit}
% \setmainfont, \newfontfamily\devanagarifontsf, \setCJKfont, etc.
% Alternatively, you could use babel.

\newfontfamily\symbolfont{DejaVu Sans Mono}

\newunicodechar{^^^^25bc}{{\symbolfont\symbol{"25BC}}} % ▼

\begin{document}
▼{^^^^25bc}
\end{document}

Amostra de fonte de cunha preta

Isso usa fontspec(que é carregado por polyglossia) para configurar uma fonte de símbolo contendo o glifo e newunicodecharmudar para essa fonte para esse símbolo. (Se você também quisesse usá-lo no modo matemático, precisaria de um comando mais complexo com \ifmmode, mas parece que não.)

Um problema é que você parece estar colando código de alguns exemplos que não são compatíveis entre si. Por exemplo, você usaria apenas inputenc, \DeclareUnicodeCharactere textcompcom fontes herdadas de 7 e 8 bits, não com fontes Unicode modernas. Eu recomendo que você retire todos os pacotes do seu preâmbulo que você não tem certeza se precisa.

Outra é que \charou \symbolseleciona o glifo na posição determinada na fonte atual. É isso que você deseja ao definir o comando no seu preâmbulo, mas não ao usá-lo no seu documento. Você ativa o caractere, para que ele seja substituído por um comando, e deseja algum código que o mecanismo TeX trate como se você tivesse digitado o próprio caractere. Isso é ^^^^xxxx.

Você também está combinando diferentes pacotes de internacionalização, o que pode ou não funcionar para você. Você pode tentar babeloferecer \babelfontsuporte a todos esses quatro idiomas com uma interface consistente.

Modelo multilíngue

Existem duas respostas possíveis para a pergunta complementar nos comentários, dependendo do que você deseja.

Se você estiver criando algo como um dicionário de símbolos e precisar apenas de glifos independentes, provavelmente desejará oucharclassespacote. Isso permite designar uma fonte para seus caracteres chineses obscuros, como Babelstone Han, outra para seus símbolos astrológicos e assim por diante. Em seguida, você digita um glifo e o XeTeX exibe cada glifo da fonte correta automaticamente.

Se você realmente precisa compor palavras e passagens inteiras em todos os quatro idiomas, o preâmbulo a seguir permite que você faça isso no formato babel. Requer XeLaTeX. (O HarfTeX experimental também pode funcionar.) Também configurei comandos e ambientes chamados como polyglossia.

\documentclass{article} % Or whatever is appropriate.
% The next line is only to make the output narrower, to fit into an image
% on TeX.SX:  Remove geometry from your document and just give the paper
% size as an option to the document class.
\usepackage[paperwidth=10cm]{geometry}
\usepackage{babel} % You would need the bidi option if using RTL.
\usepackage{newunicodechar} % For \newunicodechar
\usepackage{fontspec} % For \defaultfontfeature

% This allows you to typeset passages in these langauges.  If you only need
% to display individual, stand-alone glyphs, `ucharclasses` is simpler and
% allows you to just type the leeters in as UTF-8.
\babelprovide[import, main, language=Default]{english}
\babelprovide[import]{sanskrit-devanagari}
\babelprovide[import]{chinese-traditional}
\babelprovide[import]{tibetan}

\defaultfontfeatures{Scale=MatchUppercase}
% Set these to your fonts of choice:
\babelfont{rm}
          [Scale=1.0, Ligatures=Common]{Linux Libertine O}
\babelfont{sf}
          [Ligatures=Common]{Linux Biolinum O}
\babelfont[chinese-traditional]{rm}
          [Ligatures={Common, Discretionary}]{Noto Serif CJK TC}
\babelfont[chinese-traditional]{sf}
          {Noto Sans CJK TC}
\babelfont[sanskrit-devanagari]{rm}
          [Language=Default]{Noto Serif Devanagari}
\babelfont[sanskrit-devanagari]{sf}
          [Language=Default]{Noto Sans Devanagari}
\babelfont[tibetan]{rm} 
          [Language=Default]{Noto Sans Tibetan}
\babelfont[tibetan]{sf}
          [Language=Default]{Noto Sans Tibetan}

\newfontfamily\symbolfont{Linux Libertine}

% You might or might not need to set up these symbols specifically.  They
% might just work.
\newunicodechar{^^^^2100}{{\symbolfont\symbol{"2100}}} % ℀
\newunicodechar{^^^^2103}{{\symbolfont\symbol{"2103}}} % ℃
\newunicodechar{^^^^25bc}{{\symbolfont\symbol{"25BC}}} % ▼

\newcommand\textenglish[1]{\foreignlanguage{english}{#1}}
\newcommand\textchinese[1]{\foreignlanguage{chinese-traditional}{#1}}
\newcommand\textsanskrit[1]{\foreignlanguage{sanskrit-devanagari}{#1}}
\newcommand\texttibetan[1]{\foreignlanguage{tibetan}{#1}}

% Enables \begin{chinese}, etc., for full paragraphs in another language.
\newenvironment{english}%
{\begin{otherlanguage}{english}}%
{\end{otherlanguage}}

\newenvironment{chinese}%
{\begin{otherlanguage}{chinese-traditional}}%
{\end{otherlanguage}}

\newenvironment{sanskrit}%
{\begin{otherlanguage}{sanskrit-devanagari}}%
{\end{otherlanguage}}

\newenvironment{tibetan}%
{\begin{otherlanguage}{tibetan}}%
{\end{otherlanguage}}


\begin{document}
This document is in English, \textsanskrit{संस्कृतम्},
\textchinese{繁體字} and \texttibetan{བོད་སྐད་}, brought to you by the symbols
{^^^^2100}, {^^^^2103} and {^^^^25bc}.
\end{document}

Amostra de fontes Noto

A amostra usadaFontes Noto do Google,que você pode precisar baixar.

Talvez você não queira definir símbolos como graus Celsius desta forma: provavelmente deseja que correspondam à fonte atualmente selecionada. No entanto, se você precisar corrigir alguns glifos que sua fonte principal não possui, os exemplos mostram como.

Eu defini algumas opções nas fontes por causa de suas peculiaridades. Por exemplo, Language=Defaultexistem todas as opções para suprimir mensagens de aviso de que a fonte não suporta aquele idioma específico. Coisas como as fontes tibetanas do Noto que não suportam a etiqueta do idioma tibetano e são usadas DFLTsão inofensivas e você pode simplesmente ignorá-las. Se você quiser se preocupar com coisas como Numbers=OldStyle, o otfinfocomando é uma boa maneira de verificar quais recursos uma fonte suporta.

Minimizando o MWE

Você pergunta quais desses pacotes você não precisa. Você definitivamente não precisa inputencde ou textcomp. Esses pacotes são para fontes legadas de 8 bits. Você só precisa polyglossiaou xeCJKse não estiver usando babel, mas pode achar xeCJKconveniente se precisar apenas de um script ideográfico. Você não precisa carregar fontspecalém do polyglossia, que o carrega automaticamente, e carregá-lo duas vezes corre o risco de um conflito de opções. (Se você realmente quiser, carregue fontspecantes, não depois.) Você provavelmente não quer ucsou xunicode.

Os bbdingpacotes wasysyme carregam uma fonte de símbolos, portanto você não precisará deles se os símbolos usados ​​estiverem em Unicode. Por exemplo, o comentário sugere que wasysymestá sendo carregado para o símbolo astrológico do sol, que é ☉ (U+2609). Você ainda pode transformar o caractere em um alias para o \astrosunsímbolo from wasysym, mas recomendo que você opte pelo Unicode, se puder. Você obterá o dimensionamento correto e poderá copiar do seu arquivo PDF.

Os outros pacotes parecem mais importantes, mas você pode tentar remover um e ver se algo quebra. Caso contrário, provavelmente não está sendo usado.

Responder2

Primeiro, evite xunicode, ucse inputencquando \DeclareUnicodeCharacterusar XeLaTeX.

É muito estranho mapear U+2100 ACCOUNT OF ou U+25BC BLACK DOWN-POINTING TRIANGLE para \textcelsius.

A fonte Noto Serif CJK inclui os glifos para U+2100 e U+25BC, mas esses caracteres não acionam a mudança para a fonte CJK, portanto, tal fonte deve ser escolhida explicitamente.

Como outros mencionaram, newunicodecharpode fazer o trabalho:

\documentclass{article}
\usepackage{polyglossia, fontspec}
\usepackage{xeCJK}

\usepackage[Bpara,Cpara]{ednotes}
\usepackage{setspace}

%%%%%Sigla and Symbols
\usepackage{enumitem}
\usepackage{ltablex}

%%%%%critical_apparatus
\usepackage{bbding}
\usepackage{ulem}
\usepackage{xstring}
\usepackage{ifthen}
\usepackage{wasysym} %This line is related to \astrosun ⊙
\usepackage{newunicodechar}

\setmainlanguage{english}
\setotherlanguages{sanskrit}

\setCJKmainfont{NotoSerifCJK}[Path=./,Extension=.ttc]
\newfontfamily{\various}{NotoSerifCJK}[Path=./,Extension=.ttc]

\newunicodechar{℀}{{\various ℀}}
\newunicodechar{▼}{{\various ▼}}

\begin{document}




\end{document}

insira a descrição da imagem aqui

A propósito, não é possível definir a fonte CJK sans sem definir a fonte principal; além disso, Noto Serif CJK não é uma fonte sem serifa.

Claro, você pode usar fontes diferentes para os símbolos que faltam na fonte principal que você está usando.

Responder3

Como você já está carregando wasysym, você pode usar \DOWNarrowesse pacote. É um pouco maior que o caractere Unicode.

MWE, com agradecimentos aDavislor:

\documentclass{standalone}
\usepackage{polyglossia} % Includes fontspec
\usepackage{newunicodechar}
\usepackage{wasysym}

\defaultfontfeatures{Scale=MatchUppercase}

\setmainlanguage{english}
\setotherlanguage{sanskrit}
% \setmainfont, \newfontfamily\devanagarifontsf, \setCJKfont, etc.
% Alternatively, you could use babel.

\newfontfamily\symbolfont{DejaVu Sans Mono}

\newunicodechar{^^^^25bc}{{\symbolfont\symbol{"25BC}}} % ▼

\begin{document}
▼{^^^^25bc}\DOWNarrow
\end{document}

Resultado:

insira a descrição da imagem aqui

informação relacionada