新しいタイポグラフィの挑戦の時間です!さまざまなドキュメント形式間でコピーアンドペーストするときの一般的な問題:ハイフネーション 左揃えのレイアウトの不揃いや、正当なレイアウトの均等な間隔を減らしますが、PDFが適切に構築されず、レイアウト内にハイフンが保持されると、コピーしたテキストの編集やリフローが難しくなります。
幸いなことに、数え切れないほどのセルフヘルプの本を信じるなら、それを挑戦と見なしても何も問題はありません。これらの自助の本は例外なくPPCGに言及していると思います。PPCGでは、課題として提示された場合に問題が解決されます。あなたの仕事は、テキストから問題のあるハイフネーションと改行を削除して、テキストエディタに貼り付ける準備ができるようにすることです。
問題の説明
必要に応じて、ハイフネーションと改行を削除するプログラムまたは関数を作成します。入力は、上で文字列になりますstdin
(または最も近い代替)または関数の入力として。出力(上stdout
または一番近い代替または関数の出力)は、テキストを「修正」されます。このテキストは、直接コピーアンドペーストできる必要があります。つまり、先頭または末尾の出力は問題ありませんが、修正されたテキストの途中の追加出力(たとえば、各行の先頭のスペース)はそうではありません。
最も基本的なケースは次のとおりです(注:末尾のスペースはありません)
Lorem ipsum dolor sit amet, con-
sectetur adipiscing elit. Morbi
lacinia nisi sed mauris rhoncus.
問題のハイフンと改行は、取得するために削除する必要があります
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus.
ただし、いくつかの例外があります。
- 二重改行は段落区切りを示し、保持する必要があります。
- 適切な名詞と名前は、既にハイフンが含まれている場合を除き、2行に分かれることはありません(例:Navier-Stokes方程式)。改行を削除する必要がありますが、ハイフンは保持されます。これらのケースは、最初の文字のみを大文字にすることで識別できます。
- 場合によっては、ハイフンは単語グループを示します(たとえば、19世紀および20世紀)。これが2行にわたって発生する場合、次の行の先頭スペースで示されます。
例:(この例で表現されている見解は架空のものであり、必ずしも著者の見解を表しているわけではありません。ルンゲクッタフェルバーグ法の反対者もこの課題に参加することを歓迎します)
Differential equations can
be solved with the Runge-Kutta-
Fehlberg method.
Developed in the nineteenth-
or twentieth century, this
method is completely FANTAS-
TIC.
となります
Differential equations can be solved with the Runge-Kutta-Fehlberg method.
Developed in the nineteenth- or twentieth century, this method is completely FANTASTIC.
改行は、好みに応じてASCIIコードポイント\n
または\r\n
ASCIIコードポイントのいずれかであり、ハイフンは単純なASCII -
(マイナス記号)です。UTF-8サポートは必要ありません。この課題はcode-golfであるため、最短のコードが優先されます。