\chapter{\TeX} % 第十一章
■ このスレッドは過去ログ倉庫に格納されています
s/入る/居る
つまり\ifinformulaみたいな命令があるのかね。 ifmmode
ttps://en.wikibooks.org/wiki/TeX/ifmmode \ifmmodeのみしか動かないってやるほうが、現実的かな。
インライン要素とブロック要素を分けるのもメンドイしな。
一応、every系のコマンドとして、
\everymath
\everydisplay
なんかもあるw pbibtexだけインストールしたいんですけど、どうやったらいいでしょうか? >>435
とりあえず、tlmgr は以下を返したぞ。
$ tlmgr search pbibtex
pbibtex-base - Bibliography styles and miscellaneous files for pBibTeX
$ tlmgr search --file pbibtex
pbibtex-base:
(中略)
ptex.arch:
bin/arch/pbibtex
uptex.arch:
bin/arch/upbibtex
だから、 tlmgr install pbibtex-base ptex uptex ぐらいやっとけ。
とりあえず、これで kpsewhich と (u)pbibtex ぐらいはインストールしとけ。
これで期待する動作がすべて動くかしらん。
まぁ、がんばれ。 TeXってプログラムとしてはどういう種類なんだろう。
ほとんどの命令や字句規則さえ書き換えられるのってあんまりないよね。
shellとかかな? htmlのようなマークアップ言語だとおもってたけど htmlはチューリング完全じゃないけど、TeXは疑いなくそうでしょ 計算完備っていうのもそうだけど
HTMLは例えばタグの開始文字を「[」にしたり
組み込まれてる非常に原始的な命令(<head>とか)を全く別物に置き換えたりできないじゃん。 使っているPDFTeX(系列の処理系)が何のバージョンのPDFを出力するかっていうのは
実際に出力してみないと分かりませんかね。
なにか文書として「LuaTeXはPDF 1.5を生成します」みたいな一覧など知っておられますか。 uplatexでは、nociteとhyperrefのpagebackrefを同時に用いるために、
ttps://tex.stackexchange.com/questions/2919/nocite-and-pagebackref-option
に従い、プリアンブルに
\let\oldnocite\nocite
\makeatletter
\renewcommand*{\nocite}[1]{\oldnocite{#1}\Hy@backout{#1}}
\makeatother
と記載していました。今般、luatex-jaにしたところ、
! Undefined control sequence.
\nocite #1->\oldnocite {#1}\Hy@backout
と叱られてしまいます。
どなたか回避方法を思いつきますか? 443ですが、hyperrefを読み込んでいませんでした
大変失礼しました
半年反省します LaTeXで行列を楽に書けるパッケージとかないですかね。
点線での省略とかを一々繰り返すのが面倒なんです……。 >>448
いや、べつに、いまでもLaTeXで十分に簡単にかけるやん?
「行列を楽に書ける」の”楽”な度合いって、人によって異なるわけだし。
それでも面倒ならば、
テキストエディタのLaTeX入力支援を使って、snippetでも作れば、
> 点線での省略とかを一々繰り返すのが面倒なんです……。
とならずに、全く楽に入力できているんだが。
まさか、メモ帳なんかで、LaTeX文章を書いているわけじゃないでしょう。
ちなみに、こちらはEmacsとVSCode。
それぞれのsnippetは、それぞれの入力支援の拡張として、自前で書いた。 スニペットを使う方法は
「やっぱり行列の成分表記を右下じゃなくて左下にしよう」なんかの変更に対して弱いんだよね。
それにLaTeXの機能じゃなくてエディタの機能に依存することになるし。
だから避けたい。できれば\easymatrixみたいなマクロがあって
\easymatrixとやると
[ a_11 a_12 ... a_1n ]
| a_21 a_22 ... a_2n |
| : : `; : |
| a_n1 a_n2 ... a_nn ] みたいなn次正方行列が,
\easymatrix[col=1..m, row=1:2:3]{b}とやると
[ b_11 b_12 b_13 ]
| : : : |
| b_m1 b_m2 b_m3 ]
みたいな行列が書ける。 >>450
それやりだすと、
ij成分とか、lk成分とかもほしくなりそうだな。
まぁ、amsmath の行列系マクロを元にして、
期待値になるように実装すれば、いけると思う。 >>451
まあ考えだすとキリないよね……
大したマクロでもないし,車輪の再発明は避けたいので
出来合いのものがあれば嬉しいんだけど。 すいません
\pdfvariable minorversion 7
これでいけました。 TeX Live以外にLinux向けのTeX環境を配布しているところない?
ていうかtexのバイナリとかってどこで入手できるの? >>455
(別にLinuxにかぎらず)MiKTeXがある。
ただ…、TeX Liveのインストール構成を小さくして入れたらいいと思う。 数学板だけでもTeXに対応せんかな?
読みにくいしダサすぎ TeXの技術的な問題じゃないんだけど
大抵の欧文フォントと大抵の日本語フォントを比べたときに欧文のほうが「太く」感じるのって俺だけかな。
日本語フォントに含まれる欧文フォントを使っても太く感じるので、多分俺の問題だとは思うんだけど。
欧文フォントのRegularに対して日本語フォントのSemiBoldがちょうど良いように見える。 >>459
変な話、NFSSのseries、weightに相当するRegular, Semiboldなんても、
どんな名前だってOKなんだから。 TeXで文字としての情報だけを取得するマクロとかありますか。(できればplain TeXとかに近い環境で)
PDFのタイトルやアウトラインを指定するときに\TeXなどのカーニング情報が入ったマクロではなく
プレーンテキストの形で渡したいんです。でも単にコマンドの名前をそのまま残すのではなく
「\myname」→「佐藤 敏夫」みたいな展開を行なってから装飾を剥ぎ取りたいです。 >>463
PDF化して pdftotext -raw でプレーンテキスト取り出すのではいかんの? >>464
できればTeXのマクロとして欲しいです。
というのも目的は
\special{pdf:docinfo <<
/Title (\@title)
>>}}
↑こういう文で\@titleの文字列をプレーンテキストにしたいんです。 >>465
.texをdetexとかじゃなくて、
普通にプレーンテキストに吐くTeXコンパイラを作ったほうがよさげ。 標準出力に対応してればパイプでpdftotextに繋げられるのに 突然だけど いわゆるplain (p)TeXって今時使ってる人いるのかな。
plain TeXがTeX Liveの最新版にも収録されているのはD. Knuthに敬意を払っているっていう話を聞いたことがあって
ということは実質plain TeXは彼一人を除いて誰も使っていないんじゃないか。 Windows10からw32texでtexを使い始め、2ヶ月まえからDebianでTexliveでもtexを使っているけど、どうしてLinuxではmain.texでのコンパイルができないのですが、うまくできているかた、Linuxの設定の詳細をお願いします。 >>469
>Linuxではmain.texでのコンパイルができない
ちょっと意味がわからないんだけどもっと詳しく書けるかな?
わたしの知識では仮に「main.tex」なるものがあったとすればそれはコンパイルする方じゃなくてされる方なんだけどね
これだと
$ main.tex hoge.tex
として hoge.tex をコンパイルしようとしているのかな?っと…
また「main.tex のコンパイルができない」と読んだとしてもその中身がわからなければ何もアドバイス等はできないしね
何らかの統合環境を用いて「main.tex」なるものを処理すると何かが起きるのであってもその統合環境がわからないとね >>469
特別な設定は不要です。Windowsよりも簡単なはずです。
難関のWindowsでコンパイルできる力量があるなら、
何もしなくてもよいDebianはとても楽チンなはずです。
エスパーしますが、main.texが必要とするパッケージをインストールしていないのではないですか?
Debianでは、TeXLiveは巨大なのでディスクスペースの無駄なので、
必要なものだけを選択的にインストールできるようになっています。
sudo apt install texlive*
と一生涯使わないものも含めて全てインストールするか、
あるいは、必要なパッケージを特定してインストールします。
例えば、tikz.styがないと言われたら、
$ apt-file search /tikz.sty
latexml: /usr/share/perl5/LaTeXML/Package/tikz.sty.ltxml
texlive-pictures: /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
で、texlive-picturesに入っていると分かります。
apt-fileを入れていなかったら、まずはapt-fileのインストールが必要。 luatex-jaで
lscape.sty
がうまく使えないのですが
そういうものですか? >>472
いえ、使えないのはあなた1人かもしれません。
luatex-jaでlscape.styを使えていますし、
使えないという話は聞いたことがないです。 PDFTeX系列でdvipdfmx用の\special拡張で利用できる@yposなどの特殊変数に相当するものってありますかね。 >>465
その先の目的は
「dvipdfmx使ってできるPDFのメタデータ領域のタイトルと作者に文字列を置きたい、
ただしhyperrefパッケージを使わないで」
ということでよろしゅおす?
以下2レスで示す例では%で始まる行を有効化して文字列にtexマクロを含ませると
hyperref不使用版でだけ確かにひどい結果になる
>>463 の質問はこれをマクロフィルタで防ごうという意図かと想像 %%hyperref使用版
\documentclass{jsarticle}
\usepackage[dvipdfmx,pdfusetitle]{hyperref}
\usepackage{pxjahyper}
\title{方法序説}
\author{デカルト}
%\title{Discours de la m\'ethode}
%\author{Ren\'e Descartes}
\date{1637}
\begin{document}
\maketitle
\end{document} %%hyperref不使用版
\documentclass[]{jsarticle}
\usepackage{atbegshi}
\title{方法序説}
\author{デカルト}
%\title{Discours de la m\'ethode}
%\author{Ren\'e Descartes}
\date{1637}
\AtBeginShipoutFirst{
\special{pdf:tounicode EUC-UCS2}
}
\makeatletter
\AtBeginDvi{
\special{pdf:docinfo <<
/Title (\@title)
/Author (\@author)>>}
}
\makeatother
\begin{document}
\maketitle
\end{document} >473
コメントありがとうございます。原因を究明してみます。 >>475
概ねその通りです。
hyperrefペッケージがどのようにその辺を処理しているのか不明だけど
出来ている以上方法はある筈…… pTeXで複数ページに跨る段落を組んだとき 組版は正しくできているのに
Underfull \vbox (badness 10000) has occurred while \output is active [...]
↑こういう警告が出るのですがなんとか抑制できないものでしょうか。 あけましておめでとうございます。エスパーしてくれたかたありがとうございます。
(1) main.texの内容
\documentclass[b5paper,10pt]{jsarticle}
\input{begin}
\renewcommand{\include}[1]{}
\renewcommand\documentclass[2][]{}
%\maketitle
%\tableofcontents
\input{file_1}
\input{file_2}
\input{file_3}
%\input{end}
です。またbegin.tex , end.texもあります。
(2)main.texをつかってコンパイル
main.texを使い file_1.tex, file_2.texなどをまとめてコンパイルし一つのPDFをつくるのが目的です。
Windows 10では、あるソフト(Texe)を使うとうまくいきます. Texmaker, Texstudioではうまくいきません。TexeがあるからWindows 10では問題なしです。
Linux (Debian 9)では、Texmaker, Texstudioとも『そんはファイルがないからコンパイルできない』旨のエラーが出てdviが生成されません。
またフルパスで\input{/home/hoge/TEX-DOC/Math/math-200701.tex}などとしても同じくコンパイルできません。
(3) どのような設定をLinuxですれば『そんはファイルがないからコンパイルできない』がでなくなるのでしょうか
解決策をお願いします。『Windows10で使えば』というのはなしでお願いします。 >>481
Debianを使っているが、まったく問題なくコンパイルできるね……。
普段はWindowsで使っているということで、コマンドラインでの操作は苦手かもしれないが
main.texなどがあるディレクトリに移動して、端末エミュレーターを開いて
$ platex ./main.tex
とした結果を教えてくれるか? ありがとうございます。自宅に戻り次第、$ platex ./main.tex をやってみます。
フルパスで\input{/home/hoge/TEX-DOC/Math/math-200701.tex}は、
フルパスで\input{/home/hoge/TEX-DOC/Math/main.tex}の間違いでした。 読み込んでいる begin.tex などは PDF に表示させたいただの文字列の羅列(TeXコマンドを含む)でいいのかな?
\begin{document} の前に \input すればどんな OS だろうとエラーを吐くんじゃないのかな?begin.tex に仕掛けがあるのならそれを公にしないとなぁ
file_1.tex 等が \documentclass や \begin{document} 等を含みそれ単体でコンパイルできるものならばあるスタイルファイルを用いればできたんじゃないかと… 以外とjsarticleが見つからないんだったりして エラーメッセージの意訳じゃなくて原文そのまま貼り付けた方がいい >>480
/Dev/nullにリダイレクト
せっかく「美しく組めなかった」って教えてくれてるのに、気にしなくていいの? すっごく古いTeXのファイルって往々にして\byeコマンドが付与されてないんだけど
なにか理由あるのかな。
個人的な予想だと、「組版に失敗したときにメモリやハードディスクが勿体ないので
失敗したと分かったら即座に結果を破棄できるようにしている」というものなんだけど
なにせその時代に産まれてすらいないので なんとも……。 >>481
>そんはファイルがないからコンパイルできない
だから、最重要な情報である「どのファイル」をなぜ隠蔽するのか?
問題の切り分け
1. TexmakerやTexstudioなど(の設定)に問題がある
2. TeXLiveの状態に問題がある(インストールが不完全)
3. そもそもtexファイルが間違い
どれであるかをまずははっきりさせるために、
>>482
の結果をそのままペーストする(ユーザ名などは適当に匿名化して)。
エスパーすると、単に存在しないファイルをinputしようとしているだけと思うが。
ケアレスミスをOSのせいにしているだけと推測。 ひとつ思いついた。
Windowsとその他のOSの大きな違いとして、
Windowsはcase insensitiveなのに対して、他のOSはcase sensitive。
つまり、Windows以外では、a.texとA.texとa.TEXとA.TEXは全て異なるファイル。
A.TEXが存在するところで、\input{a.tex} としても当然エラーになる。
A.TEXは存在してもa.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 ■ このスレッドは過去ログ倉庫に格納されています