\chapter{\TeX} % 第十一章
■ このスレッドは過去ログ倉庫に格納されています
halignとかで表を作るときに 行の高さを文字の3倍にする方法ってあるかな。 | AAA | BBBB |←こういう表組みを | | | | AAA | BBBB |←こういうのにしたい。(もちろん罫線は連続させたい) | | | >>491 その case insensitive/sensitive の状況は、 (一般ユーザにとって、より全く意識する必要がないようになったけど、) TeX Live 2018ではさらに複雑になっている。 大まかにいうと、 1. OSのファイルシステム側が大文字小文字を区別するかどうか、 2. kpathsearch libraryで大文字小文字を区別するかどうか、 で、TL18から libkpathseaがデフォルト設定だと大文字小文字を区別しないようになった。 なので、個人的にはファイルシステム側がどうであれ、 大文字小文字を区別すべきだと考えているので、 texmf_casefold_search = 0 を(どこかの段階の)texmf.cnfにわざわざ与えている。 詳細は、texmf-dist/web2c/texmf.cnfの該当箇所を読んでちょい。 >>492 multirow パッケージとかどう? $ texdoc multirow でマニュアルを見てみてちょ >>492 halignって素のTeXのコマンドじゃね? LaTeXにはもうちょっと扱いやすい表組みコマンドがあるからそれを使え。 ところで \vbox{\vss \hbox{AAA}\vss} ↑こういう風なボックスを作るのはどうだろう。 >>496 TeX Tricksではその方法だったな。 haignってプリミティブなのね。 かなり複雑な仕様だからマクロかと思ってた。 TeXで「-」ならハイフン,「--」ならen-スペース,「---」ならem-スペースみたいな挙動を マクロとして実装できますかね。 具体的にはある環境の内部で「<=」という文字列を「≤」に(自動的に)変換したいんだけど これをTeXと別のスクリプトではなくてTeX自身で処理できたら嬉しい。 なんか勝手に 5chan_nel っての付加されたんだけどw そういう仕様なのか? >>494 それにします。 >>495 さま、>>496 さまありがとうございます。 いまだに非LaTeXの因習から抜け出せない古い人間なので はやくLaTeX風の作法を身に付けたいです。 docmuteで長い文章を分割して部分ごとにコンパイルして書き進めてるんだけど, 個々のファイルで使ってたlabelをciteで引用してたのってinputで1つに纏めたコードをコンパイルして出来たpdfでは反映されないのな... マジかよ。 コンパイルに時間がかかるから、1ページ単位で作ってるから知らなんだ。 \include{<file>}じゃなくて\input{<file>}でもそうなるのか……。 \DeclareFontShapeのオプションで無理矢理に斜体にすることってできますか。 \DeclareFontShape{JT2}{hmc}{m}{it}{<-> XXX}{} ↑こういう指定のXXXの部分でfakeslantedなフォントを作成したいです。 LuaTeXやXeTeXではOpenTypeを無理矢理斜体にするオプションがあると思うのですが 同じようなことを(u)pLaTeXでもしたいです。 >>509 NFSSのfontの意味で、和文書体に対する slant を作る意味って、 実用上を考えてもあまり意味がないと思うけれども、 Tikz を使って、擬似的に斜体にすることは、できるよ。 >>510 TikZを使うという手がありましたか。 ちょっとやってみます。 >>511 本質的なコードは、xslant を使うだけだったと思う。 \node[xslant=0.167] (どっか) {擬似的にslantedにしちゃうよ!} >>512 あーそれってもしかして\textitを上書き定義するんですかね。 できれば\DeclareFontShapeにおいて定義して LaTeXのフォント選択機能を活用していんですけど やっぱ無理ですかね。 ちょっとTFMの弄りかた調べてみたら 自分には無理そうだったんで大人しくXeTeX使います。 ただの興味から訊くんですけど、LaTeXのパッケージやTeXのバンドルとかで「有償」のものってありますかね。 例えばLinuxは基本全てオープンソースかつ無償ですがRHのような特例もありますし 同じような状況もありえそうですけどね。 あー。なるほど。それこそmorisawaパッケージはモリサワフォントを購入しないと無意味ですもんね。 MacでTexshopを初めて使ったんですが、Beamerで日本語を使えません。対処法を教えてくださいませんか。 アドバイスありがとうございました、爆破せずとも解決できました。 UNIX版でMacのことを聞いてくる人って何なの? MacをUNIX的に使っているならアリかもしれないけど。 # とMacから書き込んでみる >>516 scientific workplaceがそうなんじゃない? >>523 へえ。TeXWorksみたいなエディタでかつ有料なんだね。 OSSを(サポート面とかが理由で)使いたくない企業にとってはいい選択子かもね。 日本語使えないらしいがw LaTeXで使える欧文フォントで ・Computer Modernとほとんど同じ(字面が細くて幅がすこし広い) ・合成でない太字とイタリック体、機械変形でないスモールキャプスがある で ・T1エンコーディング ・「@」がTimes系のように幅狭 なものを探しています。 このようなフォントをご存知でしたら、どうか教えてください。 >>525 基本的にLatin Modernフォントを使うようにして、 「@」だけ、newtx フォントを使うとかすればどうですか? そのような挙動をする仮想フォントを作れば、いけますよ。 \ifxetexっていうコマンドを乗っ取って無条件で真になるようにできない? pdfxっていうパッケージをupLaTeX&dvipdfmxで使いたいんですけど pdfxパッケージはdvipdfmxを使うのはXeLaTeXだけと思っているようでコンパイルが成功しない。 (upLaTeXがpdfLaTeXと誤認識されて\pdfXXXコマンドが用いられる。 当然そんなものはupLaTeXにはないので刎ねられる) そこでpdfxパッケージに(upLaTeXを)XeLaTeXを使っていると偽りたい。 >>528 Twitterで反応してくれた人がいるのか だけどちょっとやりたいことと違う気がする やっぱり直接出力したいな……。 まあ正直、いざとなれば\special{pdf:を使いまくって 自力でPDF/Aに適合したPDFにすりゃいいんだけどねw PDF/AはTeXで作るのは難しいんじゃないかな。 タグを付けたりメタデータをしっかりしなきゃいけないんでしょ。 規格を読んだわけじゃないからなんとも言えないけど upLaTeX&dvipdfmxで一先ず出力してからPDFCreater(OSSだよ)で 後からPDF/Aにするほうがいいんじゃない? >>529 PDF/Aは upLATeX&dvipdfmx で素直にやるのは難しいだろうな。 開発段階の tagpdf パッケージなら、pdflatex, lualatex で試せるよ。 >>531 529じゃないけど)あれってhyper系列の延長? hyper*パッケージって「行儀悪い」って聞くし, 実際セクションの定義とかを書き換えられてることに気が付かず苦労した 嫌な思い出がw \newtoksと\defってどういう場合に使い分ければいいんですかね STIX2パッケージの存在に最近気が付いた。 unicode-mathの「Unicodeで定められた全数式が利用できる」っていう部分だけが欲しいな というかそれ以外要らないからupLaTeXで使いたい,と思っていたところにこれは嬉しかった。 Unicodeの数式を使いたくてかつupLaTeXを使ってる人はSTIX2パッケージがお勧め。 >>534 なんかフォントがlatin modern系と合わないな >>535 unicode-math版Latin Modernを作ればいいんじゃないか? 実はもうある http://cm-unicode.sourceforge.net/ Computer Modernの字形をそのままにUnicodeに拡張したもの もちろんUnicode数学表現も使える(と思う……試してないからなんとも) bxjsarticleで\sectionの後ろに「節」という文字を付けたいのですが プリアンプルで \renewcommand{\postsectionname}{節} と定義しても反映されず なぜか \begin{document}の後ろでやると反映されるんですけどこれおかしくないですか。 TeXで\somecs{XXX:AA}という入力に対して \somecsX{XXX}\somecsA{AA} ↑こういう出力を返すマクロを作ろうと思ったら \def\somecs#1:#2{\somecsX{#1}\somecsA{AA}} という定義のマクロを用意すればいいですよね。 これをLaTeX2eの利用者定義命令で実現するにはどうすればいいですかね できればLaTeX2eで\defは使いたくないのです。 >>539 > LaTeX2eの利用者定義命令 の定義は、何だと据えておられるのでしょうか? >>540 LaTeX2eのマニュアルusrguide,clsguideに従うと \newcommandで定義された命令のことです。 もしかして,個人の勝手な定義だと思われたのでしょうか。 これは私個人ではなくLaTeX3プロジェクトチームが公に定義している用語です。 もちろん日本語にしたのは私ですが。 なんで\newcommandで定義できないかなー って書かないんだろう… オレオレ用語を使って逆ギレされてもな > これは私個人ではなくLaTeX3プロジェクトチームが公に定義している用語です。(ドヤ > もちろん日本語にしたのは私ですが。(ズコッ >>541 該当定義を確認できました。 では、逆に質問します。 その該当定義の下で、 >>539 は実装可能だと思いますでしょうか? \newcommand に拘るのであれば最初の \somecs{XXX:AA} は \somecs{XXX}{AA} と定義すべきなんじゃない? 今のtexはなんで実装されているのですか? Wikiによるとクヌース先生がWEBという言語で書いて、それをPascalやCに変換しているとありますが、 今現在もクヌース先生がWEBで書いたTexをCにコンバートしてそれをコンパイルしたのを使ってるのですか? だれかがC++で書き直してそれが使われてるとかじゃないのですか? わからないことがあるので教えてください。 1: \makeletter 2: \def\kenten#1{% 3: \ifvmode \leavemode \else \hskip \kanjiskip\fi 4: \setbox1= \hbox to \z@{・\hss}% 5: \ht1= .63zw 6: \@kenten#1 \end} 7: \def \@kenten#1{% 8: \ifx#1 \end \let\next=\relax \else 9: \raise .63zw\copy1\nobreak #1 \hskip\kanjiskip\relax 10: \let\next= \@kenten 11: \fi \next} 12:\makeatother という奥村先生の本の圏点を入れるコードです。 \kenten{強調}で強調の上に点が現れます。 \kentenと\@kentenの二つのコードからなっています。 わからないところは A: 3:の\hskip \kanjiskip ですが、hskipにはデフォールとで数字が入っていてその分だけスキップ するのでしょうか? B: それから 4:のto \z@{・\hss}ですが、ボックスの幅を0ポイントとしてしまうと、・\hss 自体が幅がないので潰れてしまってなくなるんじゃないかなと思うんですが、 なくならないのはなぜでしょうか? C: 9: \raise .63zw\copy1\nobreak #1 \hskip\kanjiskip\relax のところですが、まず\raise .63zw\copy1\nobreakまでが「・」を上に 書く部分ですよね。#1はkenten{強調}とした場合の「強調」(kentenというコマンドの 引数)です、この9の部分は強調の上に点を描くということをしているのでしょうか? (「・」の部分はraiseをし、そのあとはそうしてないことによって) D: 最後の@kentenもわかりません。tail recursionというものだそうです。 幾らかでも教えていただけるかなと期待をして書き込ませていただきました。 奥村先生の本面白いですよね。 latex2e入門ですが、難しいコードも書いてある。(そしてそのコードに ついての説明は十分ではない。(十分に書くと長くなりすぎるから)) 独習latex2eで調べながら理解しようとしています。(まだ最初の方ですが) D: ですが、まずは動作の概要をつかむために次のような定義で \kenten{強調} とするとどうなるかを考えてみてはいかがでしょう? \def\kenten#1{ \@kenten#1 \end} \def\@kenten#1{ \ifx#1 \end \let\next=\relax \else \let\next= \@kenten \fi \next} >>552 を書き直しました。>>552 はバグを含んでいます。 >>555 さん 少し待ってください \documentclass{jsarticle} \begin{document} \makeatletter \def\kenten#1{% \ifvmode\leavevmode\else\hskip\kanjiskip\fi \setbox1=\hbox to \z@{・\hss}% \ht1=.63zw \@kenten#1\end} \def\@kenten#1{% \ifx#1\end \let\next=\relax\else \raise.63zw\copy1\nobreak #1\hskip \kanjiskip\relax \let\next=\@kenten \fi\next} \makeatother \kenten{強調} \end{document} >>555 \documentclass{jsarticle} \begin{document} \makeatletter \def\kenten#1{% \@kenten#1\end} \def\@kenten#1{% \ifx#1\end \let\next=\relax\else \let\next=\@kenten \fi\next} \makeatother \kenten{強調} \end{document} だとエラーが出て概要すらつかめません。 >>557 それをコンパイルすることに意味はありません(実行結果は何も表示しないです) \kenten{強調} は \@kenten 強調\end に置き換えられ次に…と頭で考えてみてくださいということです >>552 D に関しては、for 文の例えば \@tfor を使っても実現できると思う。 要するに、1文字ずつ取ってきて、 頭の上にちょこんと「・」を乗せる ことを繰り返せば良いだけなんだから。 pxrubyパッケージの圏点コマンドでは不満足なんすかね。 >>560 圏点を打ちたいから質問をしているのではなく奥村氏の \kenten コマンドの仕組みを知りたくて質問しているんだから pxruby がどうたらとか関係ないんじゃないのか? TIPAパッケージにおいて提供されているコマンドの内、 なんの環境でもなく使える\textbetaなどのコマンドを無効にするにはどうすればいいですかね。 safeオプションなどは少し違う用途のようですし。 ギリシア語と混在させると、βがTIPAフォントのベータ記号になってしまうのですが これをギリシア語向けのフォントで表わしたいのです。 ギリシア語が出現する度に{\fontencoding{LGR}\selectfont β}などとはしたくないです。 英語と日本語の混合文書を処理するように、何ら特別な処理なくギリシア語を扱いたいのですが TIPAパッケージと共存できません……。お力を貸していただけませんか。 >>558 すみません。 もう少し教えてください。 \@kenten 強調は \nextに\@kentenを入れて、 それを繰り返していると、 強調が\endになるので、その時には \nextに\relaxを入れて、\nextを持って \@kenten強調とするということですか? 具体的にどういう感じになるんでしょう? 強調という二文字のうち一つずつ処理していく 形になるのはどうしてでしょう? >>563 ですがあとは自分で考えるというか そのうちできるようになる時には できるようになると思います。 返信は入りません。 LaTeXで均等割をするとOverfull \hboxとかの警告が生じるのが気になります。 欧文では文字の間がその文字自身と同じくらい開くことは不恰好ではあるのでしょうが 和文の組版においては自然な配置であり警告を出してほしくないです。 いま「\均等割」という命令を\makebox[#1][s]{#2}などという定義をして使っているのですが これに手を加えてOverfull関連の警告が「\均等割」マクロの処理中に発生しないようにできないですか? >>563 \kenten{強調} は \@kenten 強調\end と置き換えられ、\@kenten の定義(\def\@kenten#1{...})からとり得る引数の個数は「ただ一つ」である。 このことから \@kenten 強調\end は「 1 」は放置され、\@kenten#1{...} の引数 #1 には「 2 」が代入される。 みたいな感じかな?「 1 」「 2 」に入るものをそれぞれ考えてみてください。 ヒントって難しいね^^; >>566 ありがとうございます。 まだわかりません。僕にはまだこの コードは早いと思いました。 奥村先生の本、結構難しいですね。 LaTeX2ε辞典 増補改訂版をさらに買いました。 こういうコードは我慢して、解読しようと しないと上達しないのはわかっているので もう少し粘ってみようかなと思います。 >>567 勉強するならこんなのもあるよ 「LaTeX2eまくろの八衢」オンライン版 http://xymtex.my.coocan.jp/fujitas2/yatimata2/index.html これの書籍版のお世話になった人も多いんじゃないかな? >>563 引数の扱いについて勘違いしているんじゃないのかな? 例えば \def\tmpcs#1#2{#2#1} において \tmpcs あいう いろは の出力結果を想像したものと実際にコンパイルたものが一致しているか確認してみてはどうだろう? >>569 ありがとうございます。 \defの使い方については理解しているようです。 \def\tmpcs#1#2{#2#1} \tmpcs あいう いろは では、 いろは あいう がでます。それは知っていました。 >>568 1.1を読みました。わかりやすいですね。 >>555 さん \nextというコマンドなのですが、>>555 さんが 適当に書かれた文字列(というのか 要するに\nextという文字の並び)は 555さんが適当に作ったものなのでしょうか? それとも最初から\nextはTeXコマンドと して入っているものなのでしょうか? 申し訳ありません。教えてください >>570 少なくとも \next というのは、 「\その場でほかと干渉しない文字列名(csname)」でOKです。 闇だな (La)TeXを使うのを止めて、SATySFi か Vivliostyle を使ったらいいとおもうよ >>570 \def\tmpcs#1#2{#2#1} において \tmpcs あいう いろは とするとその出力は「いあう いろは」だよ 「#1」に「あ」「#2」に「い」が代入されて「あ」と「い」の順序が逆になる \tmpcs{あいう}{いろは} とすると「いろはあいう」だけどね 波括弧{}でグルーピングしていないもの(大雑把な言い方だけど)は一文字づつ処理される(ただし制御綴は制御綴のまま) これを参考 >>557 の \@kenten 強調\end はどうなるかを考えてみると理解できるようになるんじゃないかな? >>573 Knuth先生自身が著書の冒頭でgameと呼んでたのを思い出して knuth name of the game でぐぐてみたら全文PDF(ライオンイラスト除去版)が出てきた ttp://www.ctex.org/documents/shredder/src/texbook.pdf >>5 のリンク集に加えてもいいのかな (>>568 のurlも) LaTeXってフォントに関してはNFSSという構造化された体系があるのに \sectionや\partなどの文書構造に関しては何ら体系的にアクセスする手段を持ってないよね それこそ\DeclareHeaderみたいなコマンドが欲しい。 「どんなフォントを使うか」「見出しのあとに改行するのか」 っていう設定を\sectionコマンドを直接再\defしたりすることなく行えればいいのに。 LaTeX3では追加されることを期待している。 >>577 > 「どんなフォントを使うか」「見出しのあとに改行するのか」 各種見出しは、そんな単純に行かないよ。 >>578 そう? カウンタと相互参照に関してはLaTeX側がアクセスする手段を提供してくれているし \sectionや\chapterの定義だって多くのクラスファイルで10行そこらでしょ。 もちろんさらに細かい定義に分割できるので それらを合わせれば複雑になってしまうけど。 でもそれを言うならフォント選択機構だって単純ではないし。 >>580 型に決まった体裁の見出しなら、単純。 一般的に、各種見出しの体裁は、なんでもありな自由です。 すいません。この春からLATEXを使うこととなったのですが、 TeX Liveの最新版はどこで入手できますか? 「TeX Live 2019」などという語句をWebで検索して探したのですが その用語は見付かるもののISOのダウンロードリンクが見付かりません。。。 学校側から渡された教本には「TeX Live 2013(年の部分は適宜置き換えてください)」とあり TeX Live 2019をダウンロードしようと思ったのですが 同書にあるhttps://www.tug.org/texlive/ というリンクからTeX LiveのISOファイルをダウンロードすると TeX Live 2018という去年のバージョンになってしまいます。 TeX Liveを導入しようとしているOSはUbuntuです。 多分LATEXのプロからすればすごく下らないことだと思うのですが どうかご教示おねがいいたします。 >>582 初心者が最新版を使用することには反対です。 Ubuntuがリポジトリに準備しているTeXLiveを使いましょう。 Ubuntu (bionic) のリポジトリのTeXLiveのバージョンは texlive-full/bionic,bionic 2017.20180305-1 all TeX Live: metapackage pulling in all components of TeX Live です。 >>582 最新は2018で、2019はまだ開発版だからプログラマか人柱デバッガーでもなけりゃ用はないはずだぞ >>582 TeX Live 2019 の public release は4月30日予定だから >>584 さんのいうように TeX Live 2018 が今のところ最新版 最新版を使うのなら tlmgr restore など巻き戻しの方法をマスターしておいたほうがいいよ >>583 >>584 >>585 みなさん ありがとうございます。 私のバカな勘違いでご迷惑をお掛けしました。。。 TeX Live 2018は最新版でよかったんですね。 今年は2019年であるけれども、 まだTeX Live 2019は不安定なので末端利用者が使うのはTeX Live 2018という感じでしょうか? とりあえずTeX Live 2018を使います。 また、tlmgrというコマンドも覚えたいと思います どうもすいませんでした。。。 >>582 Ubuntuを使っているんだから、 Ubuntuの distro に含まれている TeX Live 環境を使えばいいと思います。 別に ubuntu を使っているからといってトロ臭い ubuntu のリポジトリの TeX Live を使うこともないだろ 「最新版」をなるべく使いたいという希望なんだから普通に TeX Wiki とか検索して最新版の TeX Live を使えるようにすればいいんじゃない 過去の資産とかがあるわけでもないし >>585 の tlmgr restore さえ使えれば問題ないだろ 例えばDebian sidならTeX Live 2019/devが使える >>575 ありがとうございます。 時間がかかるでしょうけど あとは自分で考えます。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる