編集 - 1

編集 - 1

私は、Pandoc (もっと良い変換プログラムを持っている人がいたら、ぜひ教えてください。Ruby に依存しないで下さい) を使用して、Markdown ファイルを manpages に変換しようとしています。表を含むドキュメントを作成するまでは、問題なく動作します。これが私のテスト ドキュメントです。

% Author Man
% TEST(1) This is a test | Version .01
% 18-April-2016

# Header1

# Format

foo

+-----------+-----------+-----------+
| linenum-1 | two       | three     |
|===========+===========+===========+
| three     | four      | fove      |
| 6         | 7         | 8         |
+-----------+-----------+-----------+

| linenum-1 | two       | three     |
|-----------|-----------|-----------|
| three     | four      | fove      |
| 6         | 7         | 8         |

| linenum-1 | two       | three
|-----------|-----------|--------:
| three     | four      | fove
| 6         | 7         | 8

I WAS HERE

| linenum-1 | two       | three
|---        |---        |---
| three     | four      | fove
| 6         | 7         | 8

here is some text

_italics_

**bold**

私は使っていた

pandoc.exe -s -f markdown -t man ~/test.md | man -p t -l -

-p t(プリプロセッサを強制するためにありとなしで試しましたtbl) 結果は同じでした:

Author Man()                                                                        Author Man()

Header1
Format
       foo

       tab(@); lw(11.7n) lw(11.7n) lw(11.7n).  T{

       linenum-1 ===========+ three 6 T}@T{

       two ===========+ four 7 T}@T{

       three ===========+ fove 8 T}

       tab(@); l l l.  T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T}
       T{ 6 T}@T{ 7 T}@T{ 8 T}

       tab(@); l l r.  T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T}
       T{ 6 T}@T{ 7 T}@T{ 8 T}

       I WAS HERE

       tab(@); l l l.  T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T}
       T{ 6 T}@T{ 7 T}@T{ 8 T}

       here is some text

       italics

       bold

AUTHORS
       TEST(1) This is a test | Version .01.

                                          18-April-2016                             Author Man()

パイプしない生の出力は次のようにmanなります。

.\"t
.\" Automatically generated by Pandoc 1.17.0.2
.\"
.TH "Author Man" "" "18\-April\-2016" "" ""
.hy
.SH Header1
.SH Format
.PP
foo
.PP
.TS
tab(@);
lw(11.7n) lw(11.7n) lw(11.7n).
T{
.PP
linenum\-1 ===========+ three 6
T}@T{
.PP
two ===========+ four 7
T}@T{
.PP
three ===========+ fove 8
T}
.TE
.PP
.TS
tab(@);
l l l.
T{
linenum\-1
T}@T{
two
T}@T{
three
T}
_
T{
three
T}@T{
four
T}@T{
fove
T}
T{
6
T}@T{
7
T}@T{
8
T}
.TE
.PP
.TS
tab(@);
l l r.
T{
linenum\-1
T}@T{
two
T}@T{
three
T}
_
T{
three
T}@T{
four
T}@T{
fove
T}
T{
6
T}@T{
7
T}@T{
8
T}
.TE
.PP
I WAS HERE
.PP
.TS
tab(@);
l l l.
T{
linenum\-1
T}@T{
two
T}@T{
three
T}
_
T{
three
T}@T{
four
T}@T{
fove
T}
T{
6
T}@T{
7
T}@T{
8
T}
.TE
.PP
here is some text
.PP
\f[I]italics\f[]
.PP
\f[B]bold\f[]
.SH AUTHORS
TEST(1) This is a test | Version .01.

フラグを使用すると-d多くの情報が得られますが、適用可能なのは最後の部分だけです。

final search path = /mingw64/share/man:/usr/share/man
restore_cwd: 3 (null)
pre-processors `t' from command line
page_encoding = UTF-8
source_encoding = ISO-8859-1
roff_encoding = ISO-8859-1
Terminal width 102
Terminal width 102 not within cat page range [80, 80]
formatted_encoding = UTF-8
opening -
opened -

そして楽しい部分は...

私の Debian 8.3 ボックス上の Pandoc は同じ出力を生成しましたが、debian/linux 上の manpages ではそれが正常に表示されます。

比較のために

ウィンドウズ

  • パンドック 1.17.0.2
  • 男 2.7.4
  • GNU tbl (groff) バージョン 1.22.3

リナックス

  • パンドック 1.12.4.2 [Linux]
  • 男 2.7.0.2

何時間も読んできましたman man man groff_man man tblが、解決には至っていません。何かアイデアがあれば、ぜひ教えてください。

ありがとう - エリック

編集 - 1

この問題は間違いなくman、Windows/msys 上の関連groffシステムにあります。Pandoc 出力は Linux では正常に動作します。

代わりのレンダリング プログラムを見つけて試してみました:

参考:

問題なくpandocからの出力をフォーマットで表示します

mandoc.exe foo.man.1 | less

もう一度、もっと直接的な

cat foo.man.1 | nroff -mandoc -Tlatin1 | less

電話をかけるのと全く同じ効果がありますman -l -

その後、gnuwin32バイナリを直接ダウンロードしてみましたが、やはり同じ結果になりました。

cat foo.man.1 | Downloads/groff-1.20.1-bin/bin/nroff -mandoc -Tlatin1 | less

答え1

どうやら今週は少し遅いようです…

考えられる最も簡単な修正方法で、無駄にしたのはたった 3 日だけです。

pandoc.exe -s -f markdown -t man ~/test.md | dos2unix.exe | man -l -

(鍵となるのはdos2unix.exeミックスに

美しい結果が得られます:

Author Man()                                                                                                                                                                             Author Man()

Header1
Format
       foo

              linenum-1             two                   three
              ===========+          ===========+          ===========+
              three                 four                  fove
              6                     7                     8

       linenum-1   two    three
       ─────────────────────────
       three       four   fove
       6           7      8

       linenum-1   two    three
       ─────────────────────────
       three       four    fove
       6           7          8

       I WAS HERE

       linenum-1   two    three
       ─────────────────────────
       three       four   fove
       6           7      8

       here is some text

       italics

       bold

AUTHORS
       TEST(1) This is a test | Version .01.

                                                                                            18-April-2016                                                                                Author Man()

関連情報