
Ich habe eine benutzerdefinierte Monospace-Schriftart. Ich möchte das gesamte Dokument damit schreiben. Die Ausgabe von Lorem Ipsum zeigt, dass meine Monospace-Schriftart nicht als Monospace-Schriftart wiedergegeben wird (d. h. einige Zeichenbreiten werden gestaucht, wahrscheinlich aufgrund der Zeilendarstellungsalgorithmen). Was muss ich auf LaTeX-Seite konfigurieren, damit dies richtig funktioniert? Ich verwende 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}
Ich möchte die genaue Zeilenanzahl pro Seite und die Anzahl der Zeichen pro Zeile anpassen (da Monospace-Format verwendet wird) oder zumindest eine Schriftgröße festlegen und das gesamte Dokument in dieser Größe Monospace-Format verwenden.
Antwort1
Wenn Sie verwenden, fullpage
haben Sie nicht die Möglichkeit, die Anzahl der Zeichen pro Zeile oder die Anzahl der Zeilen pro Seite festzulegen. Dies können Sie geometry
stattdessen mit tun.
Allerdings führt die Blocksatzfunktion dazu, dass die Zeichen nicht vertikal ausgerichtet werden, da es normalerweise unmöglich ist, dass Zeilen dasgenauAnzahl der Zeichen (einschließlich Leerzeichen). Wenn Sie eine vertikale Ausrichtung wünschen, benötigen Sie \raggedright
und \frenchspacing
.
Im Beispiel habe ich 72 Zeichen (maximal) pro Zeile und 48 Zeilen pro Seite festgelegt.
\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}
Die ersten Zeilen mit einem Rahmen um den Textblock, um deutlicher zu zeigen, wo das Problem liegt:
Wie Sie sehen, enden die ersten beiden Zeilen am Rand, aber in der dritten fehlen zwei Zeichen bis 72; selbst mit aktivierter Silbentrennung passt das nächste Wort nicht hinein, weil das Leerzeichen als ein Zeichen und der Bindestrich als ein weiteres gezählt würde.
Antwort2
Seien Sie bitte genauer. Vermeiden Sie zumindest in Bezug auf den Abstand flushleft
ungleichmäßige Abstände.
%!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}
In Bezug auf die Zeilen pro Seite könnte dies Ihre Aufmerksamkeit wert sein: Wie kann ich die maximale Zeilenanzahl einer Seite begrenzen?