
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 fullpage
nã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 geometry
vez 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 \raggedright
de 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}
As primeiras linhas com uma moldura ao redor do bloco de texto para mostrar mais claramente onde está o problema:
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, flushleft
evita 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}
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?