Meine Schriftart ist Monospace. Wird Latex sie als Monospace behandeln oder was soll ich tun?

Meine Schriftart ist Monospace. Wird Latex sie als Monospace behandeln oder was soll ich tun?

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, fullpagehaben Sie nicht die Möglichkeit, die Anzahl der Zeichen pro Zeile oder die Anzahl der Zeilen pro Seite festzulegen. Dies können Sie geometrystattdessen 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 \raggedrightund \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}

Bildbeschreibung hier eingeben

Die ersten Zeilen mit einem Rahmen um den Textblock, um deutlicher zu zeigen, wo das Problem liegt:

Bildbeschreibung hier eingeben

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 flushleftungleichmäß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}

Bildbeschreibung hier eingeben

In Bezug auf die Zeilen pro Seite könnte dies Ihre Aufmerksamkeit wert sein: Wie kann ich die maximale Zeilenanzahl einer Seite begrenzen?

verwandte Informationen