Lo estoy usando pandoc
con el motor XeLaTeX. Tengo un problema con el espacio alrededor de ciertos caracteres que es más grande en un lado que en el otro. Dada una rebaja como esta:
`X ≼ Y` // 3 spaces on the right
`X ≼ Y` // 2 spaces on the right
`X ≼ Y` // 1 space on the right
El látex generado (a través de pandoc
) es:
\texttt{X\ ≼\ \ \ Y}
\texttt{X\ ≼\ \ Y}
\texttt{X\ ≼\ Y}
Y el resultado es:
Observe que un espacio en el lado izquierdo de ≼
es igual a aproximadamente 3 espacios en el lado derecho. Además, el Y
carácter se imprime con una fuente incorrecta cuando se usa después ≼
.
¿Cual podría ser el problema? ¿Es porque estoy usando unfuente alternativa¿Solo para este único carácter e influye en el espaciado?
\usepackage{ucharclasses}
\newfontfamily{\fallbackfont}{FreeMono}
\newfontfamily{\mymainfont}{MyFont}
\setTransitionsForMathematics{\fallbackfont}{\mymainfont}
Edición que incluye rebajas completas y LaTeX generado:
Mi rebaja:
# 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}
Script de compilación de 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 generado por 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}
Respuesta1
Aparentemente, el cambio desde el respaldo está mal en su ejemplo, es decir, cambia a \mymainfont
después≼
inclusodentro \texttt
. Por eso terminas con espacios de diferentes longitudes.
Si solo desea una cantidad muy pequeña de caracteres alternativos, le sugiero configurarlos manualmente:
\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}