テキスト配置に関する新しいコマンド

テキスト配置に関する新しいコマンド

LaTeX でテキストを右揃えと左揃えにする新しいコマンドを作成したいと思います (以下の例を参照)。テキスト列が半ページ分の大きさであればよいのですが。

\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[a4paper, nohead, nofoot, top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\newcommand\sx{\fontfamily{lmss}\Large\flushright}
\newcommand\dx{\fontfamily{lmss}\Large\flushleft}
\begin{document}
\sx Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
\bigskip
\dx Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
\end{document}

望ましい出力:

ここに画像の説明を入力してください

答え1

あなたのリンクのおかげで、あなたの問題をよりよく理解できたので、すべての要件を満たしていると思われるこれを提案できます。

\character文字名を大文字にするコマンドを定義しますそして後続のテキストの値を定義しますhangindent。後続のテキストには複数の段落が含まれる場合があります。

コマンドも定義します\speci。制約は 2 つだけです。新しい段落がある場合は、プレーンな TeX コマンド で導入され\endgraf、改行は\newline通常の方法ではなく コマンドで導入されます。\postspeciskip長さ (デフォルトは 1.5\baselineskip) を使用して、仕様からダイアログ テキストまでの距離を設定できます。

\chapter幕と場面はと と見なされます\section。パッケージの助けを借りて、これらは便利にフォーマットされますtitlesec。仕様の要件が大文字ではなく小文字であれば、コーディングの一部が簡単になります。

段落がページ区切りで切り取られないようにするには、次の行を前文に追加します。

\interlinepenalty=10000 \parskip0pt plus \baselineskip

ファイルをインクルードすることができ、インクルードされたファイル内でさまざまな文字のショートカットを定義できます。

ここに例を示します(ゴルドーニの「ラ・ロカンディエラ」の冒頭)。

メインファイル:

\documentclass[a4paper,11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[italian]{babel}
\usepackage[noheadfoot, margin=2cm, showframe, nomarginpar]{geometry}
\usepackage{textcase}
\usepackage[explicit]{titlesec}

\newlength{\postspeciskip}
\postspeciskip = 1.5\baselineskip

\newcommand\character[1]{\par\everypar{\hangindent=0.3\linewidth\hangafter=1}\parskip=0.667\baselineskip plus
2pt\large\makebox[0.3\linewidth][r]{\MakeTextUppercase{#1}:\hskip0.1\linewidth }}

\newcommand\speci[1]{\everypar{\hangindent=0.42\linewidth\hangafter=0}\parskip=0.667\baselineskip plus
2pt\large\raggedright\textit{#1}\vskip\postspeciskip}%

\titleformat{\chapter}[block]{\centering\bfseries\LARGE}{\MakeTextUppercase\chaptername~\thechapter}{1em}{#1}
\titlespacing*{\chapter}{0pt}{2\baselineskip}{3\baselineskip}
\renewcommand\thechapter{\Roman{chapter}}
\newcommand\act[1][]{\chapter{#1}}

\setlength\fboxsep{0pt}
\titleformat{\section}[hang]{\Large}{\makebox[0.29\linewidth][l]{\MakeTextUppercase{\chaptername~\thechapter}} \makebox[0.1\linewidth][l]{\MakeUppercase{\sectionname~\thesection}\qquad}} {1em}{#1}
\titlespacing*{\section}{0pt}{1\baselineskip}{1\baselineskip}
\renewcommand\thesection{\arabic{section}}
\newcommand\scene[1][]{\section{#1}}

\AtBeginDocument{\def\chaptername{atto}\def\sectionname{scena}}
\setlength\parindent {0pt}%
\interlinepenalty = 1000\parskip0pt plus \baselineskip
\begin{document}

\sffamily
\include{1stact}

\end{document} 

含まれるファイル:(1stact.tex)%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\Marchese{\character{Marchese}}
\def\Conte{\character{Conte}}
\def\Fabrizio{\character{Fabrizio}}
%%%%%%%%%%%%%%%%%%%%%%%%%    \act

\scene
\speci{Sala di locanda.
\endgraf
Il Marchese di Forlipopoli ed il Conte d’Albafiorita}

\Marchese Fra voi e me vi è qualche differenza.
\Conte Sulla locanda tanto vale il vostro denaro, quanto vale il mio.
\Marchese Ma se la locandiera usa a me delle distinzioni, mi si convengono più che a voi.
\Conte Per qual ragione?
\Marchese Io sono il Marchese di Forlipopoli.
\Conte Ed io sono il Conte d’Albafiorita.
\Marchese Sì, Conte! Contea comprata.
    \Conte Io ho comprata la contea, quando voi avete venduto il marchesato.
 \Marchese Oh basta: son chi sono, e mi si deve portar rispetto.
 \Conte Chi ve lo perde il rispetto? Voi siete quello, che con troppa libertà parlando...
 \Marchese Io sono in questa locanda, perché amo la locandiera. Tutti lo sanno, e tutti devono rispettare una giovane che piace a me.
 \Conte Oh, questa è bella! Voi mi vorreste impedire ch’io amassi Mirandolina? Perché credete ch’io sia in Firenze? Perché credete ch’io sia in questa locanda?
 \Marchese Oh bene. Voi non farete niente.
 \Conte Io no, e voi sì?
 \Marchese Io sì, e voi no. Io son chi sono. Mirandolina ha bisogno della mia protezione.
 \Conte Mirandolina ha bisogno di denari, e non di protezione.
 \Marchese Denari? ... non ne mancano.
 \Conte Può essere che lo voglia sposare. Non sarebbe cosa mal fatta. Sono sei mesi che è morto il di lei padre. Sola una giovane alla testa di una locanda si troverà imbrogliata. Per me, se si marita, le ho promesso trecento scudi.

\dotfill

\scene

\speci{Fabrizio e detti.}

\Fabrizio Mi comandi, signore. (Al Marchese.)
\Marchese Signore? Chi ti ha insegnato la creanza?
\Fabrizio La perdoni.
\Conte Ditemi: come sta la padroncina? (A Fabrizio.)
\Fabrizio Sta bene, illustrissimo.

\dotfill 

ここに画像の説明を入力してください

ここに画像の説明を入力してください

関連情報