![带有文本对齐的新命令](https://linux22.com/image/298944/%E5%B8%A6%E6%9C%89%E6%96%87%E6%9C%AC%E5%AF%B9%E9%BD%90%E7%9A%84%E6%96%B0%E5%91%BD%E4%BB%A4.png)
我想在 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
命令。只有两个约束:如果有新段落,则要使用纯 TeX 命令引入\endgraf
,并使用命令引入换行符\newline
,而不是以通常的方式。\postspeciskip
可以使用长度(默认为 1.5\baselineskip)来设置从规范到对话框文本的距离。
幕和场景被视为\chapter
s 和\section
s。它们在包的帮助下可以方便地格式化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