Редактировать, включая всю разметку и сгенерированный LaTeX:

Редактировать, включая всю разметку и сгенерированный LaTeX:

Я использую pandocдвижок XeLaTeX. У меня проблема с пространством вокруг некоторых символов, которое больше с одной стороны, чем с другой. Учитывая разметку вроде этой:

`X ≼   Y`  // 3 spaces on the right

`X ≼  Y`  // 2 spaces on the right

`X ≼ Y`  // 1 space on the right

Образующийся латекс (через pandoc) представляет собой:

\texttt{X\ ≼\ \ \ Y}

\texttt{X\ ≼\ \ Y}

\texttt{X\ ≼\ Y}

И вот результат:

асимметричное расстояние вокруг определенного символа

Обратите внимание, что один пробел слева равен примерно 3 пробелам справа. Более того, Yсимвол печатается с использованием неправильного шрифта при использовании после .

В чем может быть проблема? Это потому, что я используюрезервный шрифттолько для этого одного символа и как это влияет на интервал?

\usepackage{ucharclasses}
\newfontfamily{\fallbackfont}{FreeMono}
\newfontfamily{\mymainfont}{MyFont}
\setTransitionsForMathematics{\fallbackfont}{\mymainfont}

Редактировать, включая всю разметку и сгенерированный LaTeX:

Моя уценка:

# MWE

Test: `X ≼ Y` test test

`X ≼   Y`

`X ≼  Y`

`X ≼ Y`

X ≼ Y

metadata.yml:

---
title: Title title
author: Michał Miszczyszyn
rights: All rights reserved
lang: pl-PL
toc: yes
documentclass: scrbook
papersize: b5
geometry: b5paper
mainfont: Merriweather
monofont: Fira Code
indent: true
thanks: Thanks
---

header.latex:

\addtokomafont{disposition}{\rmfamily}

\usepackage{indentfirst}
\setlength\parindent{24pt}
\setlength{\parskip}{.2\baselineskip}

\usepackage{setspace}
\onehalfspacing

\makeatletter
\def\verbatim@nolig@list{}
\makeatother

\usepackage{ucharclasses}
\newfontfamily{\fallbackfont}{FreeMono}
\newfontfamily{\mymainfont}{Merriweather}
\setTransitionsForMathematics{\fallbackfont}{\mymainfont}

\usepackage[all]{nowidow}

Скрипт сборки Pandoc:

pandoc \
  -f markdown+line_blocks+escaped_line_breaks+smart+fenced_code_blocks+fenced_code_attributes+backtick_code_blocks+yaml_metadata_block+footnotes+inline_notes \
  -F pandoc-citeproc \
  --pdf-engine=xelatex \
  --standalone \
  --toc \
  --include-in-header=header.latex \
  --highlight-style=kate \
  chapters/metadata.yaml \
  chapters/test.md \
  -o out/out.latex

LaTeX, созданный Pandoc:

% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
  polish,
  b5paper,
]{scrbook}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
  \setmainfont[]{Merriweather}
  \setmonofont[]{Fira Code}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage{xcolor}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
  pdftitle={Title title},
  pdfauthor={Michał Miszczyszyn},
  pdflang={pl-PL},
  hidelinks,
  pdfcreator={LaTeX via pandoc}}
\urlstyle{same} % disable monospaced font for URLs
\usepackage[b5paper]{geometry}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\addtokomafont{disposition}{\rmfamily}

\usepackage{indentfirst}
\setlength\parindent{24pt}
\setlength{\parskip}{.2\baselineskip}

\usepackage{setspace}
\onehalfspacing

\makeatletter
\def\verbatim@nolig@list{}
\makeatother

\usepackage{ucharclasses}
\newfontfamily{\fallbackfont}{FreeMono}
\newfontfamily{\mymainfont}{Merriweather}
\setTransitionsForMathematics{\fallbackfont}{\mymainfont}

\usepackage[all]{nowidow}


\ifxetex
  % Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
  \usepackage{polyglossia}
  \setmainlanguage[]{polish}
\else
  \usepackage[shorthands=off,main=polish]{babel}
\fi

\title{Title title\thanks{Thanks}}
\author{Michał Miszczyszyn}
\date{}

\begin{document}
\frontmatter
\maketitle

{
\setcounter{tocdepth}{2}
\tableofcontents
}
\mainmatter
\hypertarget{mwe}{%
\chapter{MWE}\label{mwe}}

Test: \texttt{X\ ≼\ Y} test test

\texttt{X\ ≼\ \ \ Y}

\texttt{X\ ≼\ \ Y}

\texttt{X\ ≼\ Y}

X ≼ Y

\backmatter
\end{document}

решение1

Видимо, в вашем примере переключение обратно из резервного варианта выполнено неправильно, т.е. оно переключается на \mymainfontпосле того, как дажев пределах \texttt. Вот почему в итоге получаются пробелы разной длины.

введите описание изображения здесь

Если вам нужно совсем небольшое количество резервных символов, я предлагаю настроить их вручную:

\documentclass{scrbook}
\usepackage{unicode-math}
  \setmainfont{Merriweather}
  \setmonofont{FreeMono}
\usepackage{newunicodechar}
  \newfontfamily{\fallbackfont}{FreeMono}
  \DeclareTextFontCommand\textfallback{\fallbackfont}
  \newunicodechar{≼}{\textfallback{≼}}

\begin{document}
Test: \texttt{X\ ≼\ Y} test test

\texttt{X\ ≼\ \ \ Y}

\texttt{X\ ≼\ \ Y}

\texttt{X\ ≼\ Y}

X ≼ Y
\end{document}

введите описание изображения здесь

Связанный контент