Minha fonte é monoespaçada, o Latex a tratará como monoespaçada ou o que devo fazer?

Minha fonte é monoespaçada, o Latex a tratará como monoespaçada ou o que devo fazer?

Eu tenho uma fonte monoespaçada personalizada. Quero escrever o documento inteiro usando-o. A saída de Lorem Ipsum mostra que minha fonte monoespaçada não está sendo renderizada como monoespaçada (ou seja, algumas larguras de caracteres são comprimidas, provavelmente devido aos algoritmos de renderização de linha). O que preciso configurar no LaTeX para que isso funcione corretamente? Estou usando o XeLaTeX.

\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{fullpage}
\setmainfont{MyFont}
\begin{document}
Hello world hello world Hello world hello world Hello world hello world Hello world hello worldHello world hello world Hello world hello worldHello world hello worldHello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world.
\end{document}

Gostaria de personalizar quantas linhas exatamente por página e quantos caracteres por linha (já que é monoespaçado), ou pelo menos definir um tamanho de fonte e fazer com que todo o documento seja monoespaçado nesse tamanho.

Responder1

O uso fullpagenão lhe dará a possibilidade de definir o número de caracteres por linha nem o número de linhas por página. Isso pode ser feito em geometryvez disso.

No entanto, a justificação fará com que os caracteres não sejam alinhados verticalmente, porque geralmente é impossível que as linhas contenham oexatonúmero de caracteres (incluindo espaços). Se você deseja alinhamento vertical, você precisa \raggedrightde e \frenchspacing.

No exemplo, defini 72 caracteres (máximo) por linha e 48 linhas por página.

\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{geometry}

\usepackage{kantlipsum}

\setmainfont{Latin Modern Mono}

\newlength{\characterwidth}
\settowidth{\characterwidth}{\normalfont x}
\geometry{textwidth=72\characterwidth,lines=48}
\AtBeginDocument{\raggedright\setlength{\parindent}{3\characterwidth}}
\frenchspacing

\begin{document}

\kant[1-4]

\end{document}

insira a descrição da imagem aqui

As primeiras linhas com uma moldura ao redor do bloco de texto para mostrar mais claramente onde está o problema:

insira a descrição da imagem aqui

Como você pode ver, as duas primeiras linhas terminam na margem, mas a terceira tem dois caracteres a menos de 72; mesmo com a hifenização ativada, a próxima palavra não cabe, pois o espaço contaria para um caractere e o hífen para outro.

Responder2

Por favor seja mais específico. Pelo menos no que diz respeito ao espaçamento, flushleftevita espaçamentos irregulares.

%!TEX program=xelatex
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{fullpage}
\setmainfont{DejaVu Sans Mono}
\begin{document}
\begin{flushleft}
Hello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello worldHello world hello worldHello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world.
\end{flushleft}
\end{document}

insira a descrição da imagem aqui

Escreva linhas por página, isso pode valer a sua atenção: Como posso limitar o número máximo de linhas em uma página?

informação relacionada